This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

dm3730 同时打开两个相同的codec实例出错

Other Parts Discussed in Thread: DM3730

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;
    AUDENC_Handle  enc;
    AUDENC_Handle  enc_high;
    ce = Engine_open("audio_copy", NULL, NULL);
    /* Create codec at the configured priority */
    enc = AUDENC_create(ce, "audenc_copy", NULL);
    /* Create second instance of codec, overriding the
     * configured priority with a priority of 5 */
    enc_high = AUDENC_create(ce, "audenc_copy:5", NULL) ;      

我写了一个测试代码,在两个不同的线程中打开相同的codec,却出错:

程序main.c和*cfg文件请见附件。

请大家帮忙看下这个问题,谢谢!

codec-engine-test.rar
  • 具体是什么出错信息?

  • @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 call
    in main create codec success
    start 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 algorithm
    Failed to create video decoder: h264dec
    end thread
    End of application. ret[0].

    更详细log请见附件。

  • 你的问题解决了吗  我也遇到这个问题

  • 已经解决了,主要是修改内存分配。请参考下面这个

    http://processors.wiki.ti.com/index.php/Changing_the_DVEVM_memory_map

  • 楼主你好。

    我现在使用的是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.c
    CMEM Range Overlaps Kernel Physical - allowing overlap
    CMEM phys_start (0x86300000) overlaps kernel (0x80000000 -> 0x8e300000)
    allocated heap buffer 0xd1000000 of size 0x53d000
    cmemk 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的。现在我很迷茫。不知如何解决。请问楼主能给些意见么?

    谢谢了