在开发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,
- };
|