在开发TI提供的video_copy例程的时候,对于例程当中有一些代码的作用或远离不太理解,有以下三个问题想请教诸位。
1.video_copy分为codecs, app, servers三部分,其中apps和servers当中的cfg配置文件都有这样一段内容
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');
看起来和后面具体调用的算法有密切的关系,所以想请教一下useModule本身这个函数大概起到一个什么作用?以及产生的VIDDEC_COPY这个变量内容大概是什么样的,或者说在后面调用算法当中起到什么作用。
2.servers端的main.c文件当中的内容是这样的:
Void main(Int argc, Char *argv[])
{
/* init Codec Engine */
CERuntime_init();
/* init trace */
GT_init();
/* create a mask to allow a trace-print welcome message below */
GT_create(>Mask, "servers.video_copy.evmDM6446");
/* ...and initialize all masks in this module to "on" */
GT_set("servers.video_copy.evmDM6446=01234567");
GT_0trace(gtMask, GT_4CLASS, "main> Welcome to DSP server's main().\n");
}
看起来是一些和跟踪打印信息相关的函数,所以我不太明白main函数起到一个什么样的作用?Server本身是在什么地方启动的。
3.codecs端有函数名为VIDDECCOPY_TI_process
应该就是对应ARM端的process函数。请问在这个调用过程当中DSP端的process是怎么样对应到ARM端的函数的?我看到可能相关的代码如下,但不知道具体的原理所以想请教一下。
metaonly module VIDDEC_COPY inherits ti.sdo.ce.video.IVIDDEC
{
/*!
* ======== ialgFxns ========
* name of this algorithm's xDAIS alg fxn table
*/
override readonly config String ialgFxns = "VIDDECCOPY_TI_VIDDECCOPY";
}
IVIDDEC_Fxns VIDDECCOPY_TI_VIDDECCOPY = { /* module_vendor_interface */
{IALGFXNS},
VIDDECCOPY_TI_process,
VIDDECCOPY_TI_control,
};
|