dm3730 dvsdk_dm3730-evm_4_02_00_06 EVM MAIN REV G
我的目的是想在不同的线程中同时解两路h264码流,看了codec engine相关文档,是支持该操作的。
Codec Engine Application Developer User's Guide 第4.3.6节,同时打开了两个相同的codec,但是其优先级不一样。
Engine_Handle ce; |
我写了一个测试代码,在两个不同的线程中打开相同的codec,却出错:
程序main.c和*cfg文件请见附件。
请大家帮忙看下这个问题,谢谢!
Louis:
具体是什么出错信息?
fang zhang:
回复 Louis:
@0,009,338us: [+6 T:0x4001f0d0] CE – Engine_init> CE debugging on (CE_DEBUG=1; allowed CE_DEBUG levels: 1=min, 2=good, 3=max)@0,009,613us: [+2 T:0x4001f0d0] ti.sdo.dmai – [Dmai] Dmai log level set to '2'. Note that calling CERuntime_init after this point may cause unexpected change to DMAI tracing behavior.[DSP] @0x0000028e:[T:0x00000000] server – main> Welcome to DSP server's main().iNumAlgs[12]@0,227,112us: [+2 T:0x4001f0d0] ti.sdo.dmai – [Vdec2] Video decoder instance created@0,227,386us: [+2 T:0x4001f0d0] ti.sdo.dmai – [Vdec2] Made XDM_SETPARAMS control call@0,227,569us: [+2 T:0x4001f0d0] ti.sdo.dmai – [Vdec2] Made XDM_GETBUFINFO control callin main create codec successstart thread@0,246,063us: [+6 T:0x41b8e490] CE – Engine_createNode> Remote node creation FAILED (0x80008008).[DSP] @0,464,411tk: [+7 T:0x87c2d494] ti.sdo.ce.alg.Algorithm – Algorithm_create> Algorithm creation FAILED; make sure that 1) alg params are correct/appropriate, 2) there is enough internal and external algorithm memory available — check DSKT2 settings for heap assignments and scratch allocation[DSP] @0,464,602tk: [+6 T:0x87c2d494] CV – VISA_create2> FAILED to create local codec.@0,246,460us: [+6 T:0x41b8e490] CV – VISA_create2> FAILED to create remote codec (0x8).@0,246,490us: [+7 T:0x41b8e490] ti.sdo.dmai – [Vdec2] Failed to open video decode algorithmFailed to create video decoder: h264decend threadEnd of application. ret[0].
更详细log请见附件。
lbin nick:
你的问题解决了吗 我也遇到这个问题
fang zhang:
回复 lbin nick:
已经解决了,主要是修改内存分配。请参考下面这个
http://processors.wiki.ti.com/index.php/Changing_the_DVEVM_memory_map
wind chen:
回复 fang zhang:
楼主你好。
我现在使用的是Devkit8500.他的内存是512MB的,我现在加载cmem时。出现的串口信息是这样的。
CMEMK module: built on Oct 14 2010 at 13:14:41 Reference Linux version 2.6.32 File /sdk/build/DVSDK_4_00/4_00_00_22/arago-install/arago-tmp/work/dm37x-evm-none-linux-gnueabi/ti-linuxutils-1_2_25_05_11-r89d/linuxutils_2_25_05_11/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.cCMEM Range Overlaps Kernel Physical – allowing overlapCMEM phys_start (0x86300000) overlaps kernel (0x80000000 -> 0x8e300000)allocated heap buffer 0xd1000000 of size 0x53d000cmemk initialized
但是,在运行codec engine时却出现了如下的错误。
root@dm37x-evm:/usr/share/ti/ti-codec-engine-examples/video1_copy# ./video1_copy .xv5T@0x0000a056:[T:0x4001e980] ti.sdo.ce.examples.apps.video1_copy -Start address is covered by existing entry, can not create TLB entry for address: [0x86300000] size: [0x100000] main> ti.sdo.ce.examples.apps.v DSP_init status [0x80008050] ideo1_copy@0x0000a1a5:[T:0x4001e980] ti.sdo.ce.examples.apps.video1_copy – App-> Application started.app: error: can't open engine video1_copy@0x0000f86e:[T:0x4001e980] ti.sdo.ce.examples.apps.video1_copy – app done.
我查看了http://processors.wiki.ti.com/index.php/Changing_the_DVEVM_memory_map上面的介绍。里面说到,codec-engine的最大寻址空间是256M的。现在我很迷茫。不知如何解决。请问楼主能给些意见么?
谢谢了