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.

VISA_create2> FAILED to create local codec



hi ,

i am trying to play a mp4 file using OMX (openmax interface) hardware codecs on DM365 platform .i have ported Android froyo on DM365 platform .

dvsdk version used is dvsdk_3_00_01_10.i am not able to see the CE Debug messages even after exporting the variable CE_DEBUG=2.

somehow managed to print some log messages and the problem got traced to VISA_create2 function.

E/libnav  ( 1707): Into Codec Engine VIDDEC2_create fun
E/libnav  ( 1707): Into Codec Engine VISA_create fun
E/libnav  ( 1707): Into Codec Engine VISA_create2 fun
E/libnav  ( 1707): VISA_create2> FAILED to create local codec.
E/libnav  ( 1707): VISA_create2 failed
E/libnav  ( 1707): out from Codec Engine VIDDEC2_create fun
E/libnav  ( 1707): Failed to open video decode algorithm
I/omx-dsp ( 1707): 0273928317 [VIDEO.ERROR] Failed to open decoder 'mpeg4dec'

 

can anyone help me whats going wrong when i try to play a mp4 file ?also please let me know the correct params variable to be passed to Videc2_create function in the DMAI layer.

thanks

SRK

  • hi, Sivaramkrishna 

    i'm facing with the same issue on our target board, i just want to know if you get your problem solved.

    regards, Mike

    Thanks.

  • Does CE_DEBUG=3 generate any additional trace? Are you able build your application with 'debug' profile components and step into the VISA create function? If you have the algorithm package source you may also want to put a breakpoint in its algorithm IALG::algAlloc function. (external symbols should be published with the algorithm documentation).

    A creation error would likely be due to running out of a system resource (memory, dma channels, vicp, ... ) perhaps posting relevant information of your application configuration might have some clues.

    Best regards,

    Murat

  • Hi, Murat.
    Thanks for you post.
    this is what i have done :

    status = VIDDEC2_process(pvideodec->hDecoder, &inBufs, &outBufs, &inArgs, &outArgs);
    status Failed with -1 and getlastererror: 0

    printf("decodedBufs.extendedError 0x%x\n" , (int)outArgs.decodedBufs.extendedError);
    decodedBufs.extendedError return with 0x0
    
    
    with CE_DEBUG=3 i get 
    
    

    @83,574,873us: [+0 T:0x41b15490 S:0x41b141e4] ti.sdo.ce.video2.VIDDEC2 - VIDDEC2_process> Enter (handle=0x335dd8, inBufs=0x41b14ac0, outBufs=0x41b14ab4, inArgs=0x41b14aa8, outArgs=0x41b14308)

    @83,575,113us: [+5 T:0x41b15490 S:0x41b141c4] CV - VISA_enter(visa=0x335dd8): algHandle = 0x335e10

    @83,575,351us: [+0 T:0x41b15490 S:0x41b141b4] ti.sdo.ce.alg.Algorithm - Algorithm_activate> Enter(alg=0x335e10)

    @83,575,553us: [+0 T:0x41b15490 S:0x41b1417c] ti.sdo.ce.osal.SemMP - Entered SemMP_pend> sem[0x335c28] timeout[0xffffffff]

    @83,575,774us: [+0 T:0x41b15490 S:0x41b1417c] ti.sdo.ce.osal.SemMP - Leaving SemMP_pend> sem[0x335c28] status[0]

    @83,576,059us: [+0 T:0x41b15490 S:0x41b141c4] ti.sdo.ce.alg.Algorithm - Algorithm_activate> Exit

    @83,576,359us: [+5 T:0x41b15490 S:0x41b141cc] CV - VISA_exit(visa=0x335dd8): algHandle = 0x335e10

    @83,576,565us: [+0 T:0x41b15490 S:0x41b141bc] ti.sdo.ce.alg.Algorithm - Algorithm_deactivate> Enter(alg=0x335e10)

    @83,576,772us: [+0 T:0x41b15490 S:0x41b1419c] ti.sdo.ce.osal.SemMP - Entered SemMP_post> sem[0x335c28]

    @83,576,981us: [+0 T:0x41b15490 S:0x41b1419c] ti.sdo.ce.osal.SemMP - Leaving SemMP_post> sem[0x335c28]

    @83,577,168us: [+0 T:0x41b15490 S:0x41b141cc] ti.sdo.ce.alg.Algorithm - Algorithm_deactivate> Exit

    @83,577,344us: [+0 T:0x41b15490 S:0x41b141e4] ti.sdo.ce.video2.VIDDEC2 - VIDDEC2_process> Exit (handle=0x335dd8, retVal=0xffffffff)

    any ideas ????

    regards, Mike

    thanks in advance.

  • Hi Mike,

    It looks like you are farther along, past the 'create' phase, and now bumping into issues as to how to use the codec. (Curious what the issue was with creation before.)

    Your trace here shows that as far as Codec Engine is concerned everything went as expected. However, your decoder has returned -1, which is a general non-specific failure.

    This could be due to a lot of codec specific reasons, so you will have to ensure that you have created the codec with the supported creation parameters, and are passing everything as expected by the codec's process() function. These include the sizes of the inBufs and outBufs, and the other attributes of the inArgs and outArgs. I am not a codec expert, so you would need to rely on documentation about the codec.

    You may also want to check the 'extendedError' fields of the  outArgs after the process() function returns, to see if there is any more specific error information.

    Best regards,

    Murat

  • hi, Murat.

    Thanks very much.

    it was found out that if the app is running not in the script but the active shell, the timeout message gone:

    Entered SemMP_pend> sem[0x335c28] timeout[0xffffffff].

    I have checked "extendedError"

    i don't know why if CE_DEBUG=2/3 is set, i get none zero value with the "extendedError" or else it was always 0. 

    Regards, Mike.

    thanks again.

  • hi, Murat.

    now i get  extendedError of 0x40211620

    the LSB 0x20 tell us that the error is :

    IH264VDEC_EX_ERR_FRAME_NUM_ERROR

    which tell me that Error in frame number.

    what's that referring to ???

    i'm reading the 264 file form sps, pps, and I form the beginning.

     

    any coments will be thankfull.

    regards, Mike

    Thanks.

  • I am not familiar with the codec specifics or the extended error code you are observing. My advice is to read up on the documentation and check your usage.

    Perhaps someone in the community with better insight might reply.

    Murat

  • hi,Murat

    thanks any way. 

    i get my problem solved

    i check every thing passed to the code engine, and compare it  with the one using DMAI interface.

    now it works.

    regards, Mike