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.

mpeg4 decoding problem

Hi,

For a few weeks, i write to forums(both of leopard and ti forums) about playing video, but still cannot succeed. I use LeopardSDK-840402 with dvsdk_2_00_00_22 and xdctools_3_10_05_61. Problem is about decoding, not about TI or Leopard boards. So i wrote to this forum too.

I tried below command

CE_DEBUG=2 DMAI_DEBUG=2 gst-launch -v filesrc location=/media/lost.mp4 ! dmaidec_mpeg4 ! TIDmaiVideoSink displayDevice=/dev/video3 displayStd=v4l2 videoStd=480P videoOutput=LCD sync=false

A part of response;

.........................

@2,052,621us: [+5 T:0x40f96490] CV - VISA_exit(visa=0xdb8e0): algHandle = 0x7cab0
@2,052,817us: [+0 T:0x40f96490] ti.sdo.ce.alg.Algorithm - Algorithm_deactivate>Enter(alg=0x7cab0)
@2,053,046us: [+0 T:0x40f96490] ti.sdo.ce.alg.Algorithm - Algorithm_deactivate>Exit
@2,053,238us: [+0 T:0x40f96490] ti.sdo.ce.video2.VIDDEC2 - VIDDEC2_process> Exit (handle=0xdb8e0, retVal=0xffffffff)
@2,053,438us: [+2 T:0x40f96490] ti.sdo.dmai - [Vdec2] VIDDEC2_process() ret -1 inId 1 inUse 898840 consumed 0
@2,053,638us: [+7 T:0x40f96490] ti.sdo.dmai - [Vdec2] VIDDEC2_process() failed with error (-1 ext: 0xc800)

@2,055,654us: [+2 T:0x40f96490] ti.sdo.dmai - [Buffer] Set user pointer 0x413e3b67 (physical 0x84ee4b67)
@2,056,216us: [+0 T:0x40f96490] ti.sdo.ce.video2.VIDDEC2 - VIDDEC2_process> Enter (handle=0xdb8e0, inBufs=0x40f9522c, outBufs=0x40f95220, inArgs=0x40f95a90, outArgs=0x40f952f0)

..............

Somehow  "fxns->process()" in "VIDDEC2_process()" return -1 and error code is 0xc800. What does error code mean? I couldnot find. And why does "fxns->process()" return -1.

"lost.mp4" file was converted to mpeg4 as simple profile, level 2 with ArcSoft MediaConverter 7. Is that right?

So thanks.

Mehmet.

  • Mehmet,

    The error codes can be found in the codec user's guide (dvsdk_2_00_00_22/dm355_codecs_1_13_000/packages/ti/sdo/codecs/mpeg4dec/dm355/docs/SPRUFE3.pdf)

    for 0xc800:

    bit 11 = 1 : XDM_CORRUPTEDDATA

    bit 14 = 1 : XDM_UNSUPPORTEDPARAM

    bit 15 = 1 : XDM_FATALERROR

    Please try your setup with a clip that is known to work. If this works, it means that the clip you are using is not correct.

    Thanks

    Cesar

  • Hi Cesar,

    Thank you four your reply.

    I tried same pipeline with workable file;

    CE_DEBUG=2 DMAI_DEBUG=3 gst-launch -v filesrc location=/media/davincieffect_ntsc.mpeg4 ! dmaidec_mpeg4 ! TIDmaiVideoSink displayDevice=/dev/video3 displayStd=v4l2 videoStd=480P videoOutput=LCD sync=false

    @1,147,369us: [+6 T:0x40f8e490] OM - Memory_contigAlloc> Warning: non-default alignment not supported for pool-based allocations, using default 0xffffffff.
    @1,147,786us: [+4 T:0x40f8e490] OM - Memory_contigAlloc> CMEM_alloc(4948) = 0x40f8f000.
    @1,148,080us: [+4 T:0x40f8e490] OM - Memory_contigAlloc> CMEM_getPhys(0x40f8f000) = 0x874d4000.
    @1,148,431us: [+6 T:0x40f8e490] OM - Memory_contigAlloc> Warning: non-default alignment not supported for pool-based allocations, using default 0xffffffff.
    @1,148,999us: [+4 T:0x40f8e490] OM - Memory_contigAlloc> CMEM_alloc(12288) = 0x40f91000.
    @1,149,358us: [+4 T:0x40f8e490] OM - Memory_contigAlloc> CMEM_getPhys(0x40f91000) = 0x874d8000.
    @1,149,807us: [+6 T:0x40f8e490] OM - Memory_contigAlloc> Warning: non-default alignment not supported for pool-based allocations, using default 0xffffffff.
    @1,150,474us: [+4 T:0x40f8e490] OM - Memory_contigAlloc> CMEM_alloc(5760) = 0x40fa5000.
    @1,150,793us: [+4 T:0x40f8e490] OM - Memory_contigAlloc> CMEM_getPhys(0x40fa5000) = 0x874d6000.
    @1,151,161us: [+6 T:0x40f8e490] OM - Memory_contigAlloc> Warning: non-default alignment not supported for pool-based allocations, using default 0xffffffff.
    @1,151,615us: [+4 T:0x40f8e490] OM - Memory_contigAlloc> CMEM_alloc(8192) = 0x40fa7000.
    @1,151,970us: [+4 T:0x40f8e490] OM - Memory_contigAlloc> CMEM_getPhys(0x40fa7000) = 0x874ec000.
    @1,154,232us: [+7 T:0x40f8e490] ti.sdo.ce.alg - ALG_create> algInit call failed 573440
    @1,156,322us: [+0 T:0x40f8e490] ti.sdo.ce.alg - ALG_create> Exit (algHandle=NULL)
    @1,156,616us: [+7 T:0x40f8e490] 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

    What does return code(573440) mean? I couln't find it too.

    In proprietary/dvsdk_2_00_00/dvsdk_2_00_00_22/codec_engine2_23_01/packages/ti/sdo/ce/alg/alg_create.c file there is ALG_creat function. And error message is from here.

    I checked debug messages, source code and google. I think,  problem is not about memory tables, it is about alg params. I tried to assign NULL to params variable in this function(I saw this suggestion in leopard forum) and rebuild system. But i couldn't compile alg_create.c file also  codec_engine2_23_01. How can i change and rebuild codec_engine?

     

    So thanks.

    Mehmet