video_copy 示例使用以下 ceapp.cfg 配置文件:/* ======== ceapp.cfg ======== */
/* use the tracing utility module */
var TraceUtil = xdc.useModule('ti.sdo.ce.utils.trace.TraceUtil');
//TraceUtil.attrs = TraceUtil.SOCRATES_TRACING;
/* set up OSAL */
var osalGlobal = xdc.useModule('ti.sdo.ce.osal.Global');
osalGlobal.runtimeEnv = osalGlobal.DSPLINK_LINUX;
/* ======== Engine Configuration ======== */
var Engine = xdc.useModule('ti.sdo.ce.Engine');
var myEngine = Engine.createFromServer(
"video_copy", // Engine name (as referred to in the C app)
"./video_copy.x64P", // path to server exe, relative to its package dir
"ti.sdo.ce.examples.servers.video_copy.evmDM6446" // server package
); 大部分此配置文件可以被引用。对于您的应用程序,您应该修改以粗体显示的部分:您引擎的名称(你的选择),服务器可执行文件的名称,和服务器可执行文件包的名称。包括在服务器中的编解码器将用其原始名称提供给该应用程序,为方便起见示出应用程序的编译,正如摘录所示:configuring ceapp.x470MV from package/cfg/ceapp_x470MV.cfg ...
Info: Configuring engine named 'video_copy' from the info file for DSP server
'./video_copy.x64P', located in package
'ti.sdo.ce.examples.servers.video_copy.evmDM6467':
Target app will look for the DSP server image 'video_copy.x64P' in its current
directory.
Adding codec 'viddec_copy'
(ti.sdo.ce.examples.codecs.viddec_copy.VIDDEC_COPY), scratch groupId=0
Adding codec 'videnc_copy'
(ti.sdo.ce.examples.codecs.videnc_copy.VIDENC_COPY), scratch groupId=0
Info: Reading DSP memory map from the info file for DSP server './video_copy.x64P',
located in package 'ti.sdo.ce.examples.servers.video_copy.evmDM6467':
... 这是很好的做法,以验证在编译日志(服务器可执行文件/包的名称,编解码器的名称,scratch groups)的信息,符合您的期望。即使该引擎是由存储在服务器软件包中的信息配置生成的,你还必须在你的软件包路径中,包含服务器中所有的编解码器。如果没有需要的编解码器软件包,编译将失败。如果你有一个与用来编译服务器不同版本的编解码器软件包,你会得到警告信息。
5.2.1 高级引擎创建
在前面配置示例的 Engine.createFromServer() 方法适用于 Codec Engine 2.00,它取代了较低级别的,用于最常见用例的 Engine.create() 方法。较低级别的引擎的创建方法允许你添加非本地编解码器,为远程编解码器使用不同的名称,省略你没有的编解码器,等等。你可能在一些高级用例中需要它。下面的示例使用较低级别 Engine.create() 方法:/* get various codec modules; i.e., implementation of codecs */
var VIDDEC_COPY =
xdc.useModule('ti.sdo.ce.examples.codecs.viddec_copy.VIDDEC_COPY');
var VIDENC_COPY =
xdc.useModule('ti.sdo.ce.examples.codecs.videnc_copy.VIDENC_COPY');
/* ======== Engine Configuration ======== */
var Engine = xdc.useModule('ti.sdo.ce.Engine');
var myEngine = Engine.create("video_copy", [
{name: "videnc_copy", mod: VIDENC_COPY, local: false},
{name: "viddec_copy", mod: VIDDEC_COPY, local: false}
]);
myEngine.server = "./video_copy.x64P";
/* ======== Server memory map (DSPLINK) configuration ========
* This table must match exactly the addresses and sizes of segments in the Server’s
* BIOS configuration (.tcf) script. There is exactly one "main", one "link", and
* one "reset" segment type, and zero or more of "other" types. */
myEngine.armDspLinkConfig = {
memTable: [
["DDRALGHEAP", {addr: 0x88000000, size: 0x07A00000, type: "other"}],
["DDR2", {addr: 0x8FA00000, size: 0x00400000, type: "main" }],
["DSPLINKMEM", {addr: 0x8FE00000, size: 0x00100000, type: "link" }],
["RESETCTRL", {addr: 0x8FF00000, size: 0x00000080, type: "reset"}],
],
}; 另外,用粗体显示的字符是你可能需要在应用程序中改变的地方。