标签:这里没有描述如何设计和实现实际的xDAIS- 或xDM兼容的算法实例(xDAIS-DM User Guide-SPRUEC8)。这里主要讲的package配置,codec package目录下几个文件内容的含义,CE framework 与任何xDAIS兼容的算法配合使用,以创建个性化的RTSC(Real-Time System Component) xDAIS兼容的codec包。对于实现了xDM接口的xDAIS算法,可以参考examples各例程直接创建RTSC codec包;而对于未实现xDM接口的xDAIS算法,虽仍可以用在CE framework内,但需要先建立个性化的stub以及skeleton函数,创建一个扩展包(extension package),这种做法仍可以在examples中找到参考例程,如SCALE API.
1. package预览
TI提供CE配置包方便客户建立自己的个性化配置,也称之为XDC配置工具包。这个工具包使得开发人员可以自定义他们的配置目标内容,并做优化,发布,编译与测试。创建codec或算法包(package)的最简单的方法是从example拷贝一个最贴近的实例codec对之做修改。事实上,CE下提供的每个example包目录中都含有一个makefile文件,由它调用xdc命令来编译整个package包。此外,在examples下有一个供各个codec package共用的文件xdcpaths.mak,每个codec的makefile都会参考到它,获取全局的XDC路径及其它安装设置信息。
>编辑xdcpaths.mak
为使用XDC工具包,首先须配置以下三个项目:
>> XDCPATH环境变量(编辑xdcpaths.mak,同目录下还有user.bld,config.bld)
>> build 目标 (编辑同目录下的user.bld)
>> codegen tools并设置每个目标 (编辑同目录下的user.bld)
每个example的codecs,servers及applications下的makefiles都包含了xdcpaths.mak文件,在bulid package前需要设置该文件内的各工具路径,最好用全路径,不要用相对路径,因为相对路径被认为是相对于被编译的package,而不是被调用的xdc命令所在目录。
>编辑user.bld
在buidl所有脚本前要先run config.bld,它设置了缺省的build目标和平台,同时,它会寻找user.bld脚本,user.bld设置rootDir,为每个目标指定cgtoolsRootDir路径(不同对象各不相同),并设置其它(如build平台等)属性,替换在config.bld设置的缺省属性。
>编译(build)包
以包的方式发布一个可供CE调用的codec,这个包对应一个目录,该目录下包含所有文件需要用到的文件。每个包有个独特的名字,也是目录名,如"ti.sdo.ce.audio"是一个音频包名,必须在路径"ti/sdo/ce/audio"下。构成一个包需要以下5个类型的文件:
>>包定义文件: package.xdc, package.xs
>>模块定义文件: MODULE.xdc, MODULE.xs
>>包build配置脚本文件:package.bld---描述build和release包的步骤,包含build该包用到的库,目标文件或可执行文件的JAVA脚本指令。
2. 开发/创建一个xDM codec package
描述如何封装一个可以在codec Server应用中使用的xDAIS-DM算法包,使该算法可以用于Codec Server中。而创建算法或codec包最容易的办法是拷贝一个example package对之做修改,如ti.sdo.ce.examples.codecs.viddec_copy,这些都是随CE发布提供的实例包。以viddec_copy包为例分析创建release包及其内容:
以下是我们需要编辑的包文件:
>package.xdc : 定义包的静态属性,如包名字和依赖性等;
>package.xs : 可以依平台和配置而改变的包属性,如库名
>VIDDEC_COPY.xdc : Codec的静态属性,如xDM类,IALG Fxn表,IDMA Fxn表等,这个文件的名字随codecs不同而做相应变化
>VIDDEC_COPY.xs : Codec随平台和配置而变化的属性,如stack size等,文件名同样可变
以下是build包需要编辑的文件:
>package.bld : 包的build/release 脚本文件,定义release内容,如src文件等
>viddec_copy_ti.h/viddec_copy_ti.priv.h : public and private 头文件,文件名随变
>viddec_copy.c : codec的xDAIS-DM实现在这里
>makefile : 用于编译codec, 对于本实例,makefile文件包含了xdcpaths.mak 和 xdcrules.mak文件
以下文件是编译codec后产生的,不应该被修改,任何以.开头的文件和package子目录下的文件也不应该被修改,它们都是自动生成的:
>.xdcenv.mak : 描述编译包是的用户环境
>package.mak : 从package.bld产生
>viddec_copy.a##.mak : 针对特殊target 和 release的编译文件,由package.bld产生
>.dlls,.executables,.interfaces,.libraries : 这些文件提供build相关信息,均在build过程中产生
>package子目录 : 里面的文件用于XDC配置包,均在build过程中产生
>viddec_copy.a## : 编译后生成的该平台下的codec library,这是我们最终所需要的
======>>>>>>>>>以上每个文件内容的具体解释见工程:ffmpeg_06_06\codecs\videnc_copy
3. Non-xDM 算法的支持
描述如何创建stubs and skeletons,以允许non-xDM算法用于远程Codec Server应用中。同样在examples中有实例SCALE example。