Davinci软件架构——Codecs
2012-11-06 16:57
239 查看
一.Codecs
进入
jerry@jerry-laptop:~/dvsdk_3_00_01_42/codec_engine _2_24/examples/ti/sdo/ce/examples/codecs$ ls
auddec1_copy imgdec1_copy package.xdc universal_copy videnc1_copy
auddec1_ires imgdec_copy scale vidanalytics_copy videnc_copy
auddec_copy imgenc1_copy sphdec1_copy viddec1_copy vidtranscode_copy
audenc1_copy imgenc_copy sphdec_copy viddec2_copy
audenc_copy makefile sphenc1_copy viddec2split_copy
g711 package sphenc_copy viddec_copy
我们可以看到已经有很多算法了
我们看其中一个:
jerry@jerry-laptop:~/dvsdk_3_00_01_42/codec_engine _2_24/examples/ti/sdo/ce/examples/codecs/viddec_cop y$ ls
lib package.bld viddec_copy.c VIDDEC_COPY.xdc
makefile package.xdc viddec_copy_ti.h VIDDEC_COPY.xs
package package.xs viddec_copy_ti_priv.h
可以看出,一个算法有
1.makefile文件,我们编译算法执行make的时候就是使用的makefile.
2.viddec_copy_ti_priv.h,viddec_copy_ti.h,viddec_copy_ti.h是算法的源代码
3.Lib目录是编译后生成的库放在这个文件夹里
jerry@jerry-laptop:~/dvsdk_3_00_01_42/codec_engine _2_24/examples/ti/sdo/ce/examples/codecs/viddec_cop y/lib$ ls
viddec_copy.a470uC viddec_copy.a64P viddec_copy.a674 viddec_copy.a86U viddec_copy.av4TCE viddec_copy.av5T
可以看到有各个平台的库文件
4.package文件夹是存放编译过程的中间文件
5.package.bld,package.xdc ,package.xs,*.xs,*.xdc 是配置文件,xdc能够识别的配置文件
package.bld bld就是build的意思,所以这个文件是和编译配置相关的,比如是debug,还是release版本,源文件包包含哪些,以及要编译的目标平台版本,x86,linux,C64P,还是 MVARM9
这个目标平台的配置来自config.bld文件,这个文件位于CE_INSTALL_DIR/examples下,你可以修改来达到定制,这里面默认是从xdcpath.mak文件里配置读取的
var SRCS = ["viddec_copy"];
for (var i = 0; i < Build.targets.length; i++) {
var targ = Build.targets[i];
print("building for target " + targ.name + " ...");
Pkg.addLibrary("lib/viddec_copy", targ).addObjects(SRCS); } 这个就是生成各个平台的库
package.xdc.
就是静态属性配置文件,比如算法的名称,依赖项--包和配置等文件
requires ti.sdo.ce.video;
依赖这个包
package ti.sdo.ce.examples.codecs.viddec_copy {
module VIDDEC_COPY;
}
上面这个语句说明这个算法的包所在路径是"ti.sdo.ce.examples.codecs.viddec_copy” 它包含唯一的一个模块"VIDDEC_COPY",这个其实想当于告诉xdc会包含module的xdc,xs,这里是VIDDEC_COPY.xdc,VIDDEC_COPY.xs配置文件.
VIDDEC_COPY.xdc.
具体算法的静态配置文件,这个文件名字必须匹配package.xdc中module的名字。
包括这个算法的接口类型,实现。
metaonly module VIDDEC_COPY inherits ti.sdo.ce.video.IVIDDEC
{
override readonly config String ialgFxns = "VIDDECCOPY_TI_VIDDECCOPY";
}
inherits ti.sdo.ce.video.IVIDDEC,这个表明这个算法是一个VSIA中的视频解码算法。
ialgFxns = "VIDDECCOPY_TI_VIDDECCOPY";
表明这个算法的在代码的变量名称是 "VIDDECCOPY_TI_VIDDECCOPY",用来向外面导出算法实现函数集变量。
VIDDEC_COPY.xs.
这个定义了这个算法
的一些动态属性,必须实现.xdc中接口的方法。比如堆栈的大小。
function getStackSize(prog)
{
if (verbose) {
print("getting stack size for " + this.$name
+ " built for the target " + prog.build.target.$name
+ ", running on platform " + prog.platformName);
}
return (1024);
}
function getDaramScratchSize(prog)
{
if (verbose) {
print("getting DARAM scratch size for " + this.$name
+ " built for the target " + prog.build.target.$name
+ ", running on platform " + prog.platformName);
}
return (0);
}
进入
jerry@jerry-laptop:~/dvsdk_3_00_01_42/codec_engine _2_24/examples/ti/sdo/ce/examples/codecs$ ls
auddec1_copy imgdec1_copy package.xdc universal_copy videnc1_copy
auddec1_ires imgdec_copy scale vidanalytics_copy videnc_copy
auddec_copy imgenc1_copy sphdec1_copy viddec1_copy vidtranscode_copy
audenc1_copy imgenc_copy sphdec_copy viddec2_copy
audenc_copy makefile sphenc1_copy viddec2split_copy
g711 package sphenc_copy viddec_copy
我们可以看到已经有很多算法了
我们看其中一个:
jerry@jerry-laptop:~/dvsdk_3_00_01_42/codec_engine _2_24/examples/ti/sdo/ce/examples/codecs/viddec_cop y$ ls
lib package.bld viddec_copy.c VIDDEC_COPY.xdc
makefile package.xdc viddec_copy_ti.h VIDDEC_COPY.xs
package package.xs viddec_copy_ti_priv.h
可以看出,一个算法有
1.makefile文件,我们编译算法执行make的时候就是使用的makefile.
2.viddec_copy_ti_priv.h,viddec_copy_ti.h,viddec_copy_ti.h是算法的源代码
3.Lib目录是编译后生成的库放在这个文件夹里
jerry@jerry-laptop:~/dvsdk_3_00_01_42/codec_engine _2_24/examples/ti/sdo/ce/examples/codecs/viddec_cop y/lib$ ls
viddec_copy.a470uC viddec_copy.a64P viddec_copy.a674 viddec_copy.a86U viddec_copy.av4TCE viddec_copy.av5T
可以看到有各个平台的库文件
4.package文件夹是存放编译过程的中间文件
5.package.bld,package.xdc ,package.xs,*.xs,*.xdc 是配置文件,xdc能够识别的配置文件
package.bld bld就是build的意思,所以这个文件是和编译配置相关的,比如是debug,还是release版本,源文件包包含哪些,以及要编译的目标平台版本,x86,linux,C64P,还是 MVARM9
这个目标平台的配置来自config.bld文件,这个文件位于CE_INSTALL_DIR/examples下,你可以修改来达到定制,这里面默认是从xdcpath.mak文件里配置读取的
var SRCS = ["viddec_copy"];
for (var i = 0; i < Build.targets.length; i++) {
var targ = Build.targets[i];
print("building for target " + targ.name + " ...");
Pkg.addLibrary("lib/viddec_copy", targ).addObjects(SRCS); } 这个就是生成各个平台的库
package.xdc.
就是静态属性配置文件,比如算法的名称,依赖项--包和配置等文件
requires ti.sdo.ce.video;
依赖这个包
package ti.sdo.ce.examples.codecs.viddec_copy {
module VIDDEC_COPY;
}
上面这个语句说明这个算法的包所在路径是"ti.sdo.ce.examples.codecs.viddec_copy” 它包含唯一的一个模块"VIDDEC_COPY",这个其实想当于告诉xdc会包含module的xdc,xs,这里是VIDDEC_COPY.xdc,VIDDEC_COPY.xs配置文件.
VIDDEC_COPY.xdc.
具体算法的静态配置文件,这个文件名字必须匹配package.xdc中module的名字。
包括这个算法的接口类型,实现。
metaonly module VIDDEC_COPY inherits ti.sdo.ce.video.IVIDDEC
{
override readonly config String ialgFxns = "VIDDECCOPY_TI_VIDDECCOPY";
}
inherits ti.sdo.ce.video.IVIDDEC,这个表明这个算法是一个VSIA中的视频解码算法。
ialgFxns = "VIDDECCOPY_TI_VIDDECCOPY";
表明这个算法的在代码的变量名称是 "VIDDECCOPY_TI_VIDDECCOPY",用来向外面导出算法实现函数集变量。
VIDDEC_COPY.xs.
这个定义了这个算法
的一些动态属性,必须实现.xdc中接口的方法。比如堆栈的大小。
function getStackSize(prog)
{
if (verbose) {
print("getting stack size for " + this.$name
+ " built for the target " + prog.build.target.$name
+ ", running on platform " + prog.platformName);
}
return (1024);
}
function getDaramScratchSize(prog)
{
if (verbose) {
print("getting DARAM scratch size for " + this.$name
+ " built for the target " + prog.build.target.$name
+ ", running on platform " + prog.platformName);
}
return (0);
}
相关文章推荐
- Davinci软件架构——Codecs
- Davinci软件架构——概述
- Davinci软件架构——概述
- Davinci软件架构——servers
- Davinci软件架构——app
- 软件架构的历程
- 构建下一代软件架构
- 内部管理类软件基础架构思想(思路图解 + 配套免费视频)
- [软件架构训练基础教程-9]应用架构
- [Z]软件架构设计应该考虑的问题
- wpa_supplicant软件架构分析
- Java软件架构设计
- 高可用软件Keepalived学习之Keepalived架构学习
- linux音频子系统-ASoc软件架构简介
- [转]小议软件架构设计要点
- 软件开发架构
- 软件系统架构有感
- 软件架构设计中的同步与异步问题
- 软件系统架构 https://www.lanhusoft.com/Article/349.html
- 应用软件系统架构设计的“七种武器”