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.

H264 Decoder for C6472 EVM

Hi, 

I have downloaded H264 Decoder, Version 2.00.002 from TI Web site. I read release note and known that the library supports C6472. I successfully compile the TestAppDecoder sample and load to the simulator. Console shows log as bellow:

[C64+_0]
*******************************************
Read Configuration Set 1
*******************************************
Running in Output Dump Mode
FileSize = 69161
Input File read successfully...
Creating Algorithm Instance...
Algorithm Instance Creation Done..

Using debug I know that program is suspended at:

/* Basic Algorithm process() call */
/*---------------------------------------------------------------------*/
/* Start the decode process for one frame/field by calling process */
/* function. */
/*---------------------------------------------------------------------*/
retVal = ividDecFxns->process((IVIDDEC2_Handle)handle,
(XDM1_BufDesc *)&inputBufDesc,
(XDM_BufDesc *)&outputBufDesc,
(IVIDDEC2_InArgs *)&inArgs.viddecInArgs,
(IVIDDEC2_OutArgs *)&outArgs);

Could you tell me how to debug, trace  and fix the problems.

 

  • Welcome to the TI E2E forum. I hope you will find many good answers here and in the TI.com documents and in the TI Wiki Pages (for processor issues). Be sure to search those for helpful information and to browse for the questions others may have asked on similar topics (e2e.ti.com). Please read all the links below my signature.

    We will get back to you on the above query shortly. Thank you for your patience.

  • Hi Nguyen,


    The h264 decoder version 2.00.002 is not validated on c6472. To Validate it on C6472 the memory command file (H264VDecApp.cmd in packages\ti\sdo\codecs\h264dec\app\Client\Build) need to be updated according to the C6472 memory map (Please refer to C6472 data sheet http://www.ti.com/lit/ds/symlink/tms320c6472.pdf

  • Hi Nguyen,

    Also, note that there is a latest h264 decoder available on C6678 and which can build and run on C6472 with some changes in the memory map file. The h264 decoder on C6678 can be downloaded from software-dl.ti.com/.../index_FDS.html

    Thanks,
    Praveen
  • Hi Praveen, 

    I changed memory command file as follow:

    + In linker.cmd :

    MEMORY
    {
    SL2RAM (RWX) : org = 0x200000, len = 0xc0000
    L1DSRAM (RW) : org = 0xf00000, len = 0x8000
    L1PSRAM (RWX) : org = 0xe00000, len = 0x8000
    LL2RAM (RWX) : org = 0x800000, len = 0x98000
    ERAM (RWX) : org = 0xe0000000, len = 0x10000000
    }

    + In H264VDecApp.cmd file:

    -stack 0x30000
    -heap 0x1D00000

    /* Sections related to BP H.264 decoder library */
    SECTIONS
    {
    .const:H264VDEC_TI_dSect1 > ERAM, align=0x80
    .far:H264VDEC_TI_uSect1 > ERAM, align=0x80
    .text:H264VDEC_TI_cSect1 > ERAM, align=0x10000
    }


    //_DMAN3_EDMA3BASE = 0x01C04000;
    /* Sections related to app */
    SECTIONS
    {
    /**********************/
    /* L1D Memory Section */
    /**********************/
    UDRAM_INTMEM : > LL2RAM

    /********************/
    /* Generic sections */
    /********************/
    .text : > ERAM
    .cinit : > ERAM
    .cio : > ERAM
    .const : > ERAM
    .switch : > ERAM
    .args : > ERAM
    .bss : > ERAM
    .bios : > ERAM

    /************************/
    /* RTS library sections */
    /************************/
    .rtsconst : { -lrts64plus.lib (.const) } > ERAM
    rts_sect : { -lrts64plus.lib (.text) } > ERAM

    /************************/
    /* External Heap Memory */
    /************************/
    .sysmem : align(0x100) > ERAM

    /******************************************/
    /* External Stack and I/O Memory Sections */
    /******************************************/
    .stack : fill=0xc0ffee align(0x8000) > ERAM
    .input_buffer : align(0x100) > ERAM
    .display_buffer: align(0x100) > ERAM
    .ref_buffer : align(0x100) > ERAM
    .far : align(0x100) > ERAM
    }

    I also change source code : 

    XDAS_Void TestApp_EnableCache(void)
    {
    BCACHE_Size size;

    size.l1psize = BCACHE_L1_32K; /* L1P cache size */
    size.l1dsize = BCACHE_L1_16K; /* L1D cache size */
    size.l2size = BCACHE_L2_64K; /* L2 cache size */

    /* Set L1P, L1D and L2 cache sizes */
    BCACHE_setSize(&size);

    /* Cache Enable External Memory Space */
    /* BaseAddr, length, MAR enable/disable */
    /* Cache 0x80000000 --- 0x8FFFFFFF */
    BCACHE_setMar((Ptr *)0xe0000000, 0x10000000, BCACHE_MAR_ENABLE);

    BCACHE_wbInvAll(); /* No need to call BCACHE_wait() */
    } /* TestApp_EnableCache */

    The issue is not fixed. The program is suspended at  H264MPVDEC_TI_QDMA_wait  function. Do you know what is the problem?

    About using h264 decoder for C6678. I study sample source code, it is more complex than 2.00.002 version and the C6678 uses RMAN. Do you think RMAN can run on c6472 ?

    Thanks,

    Lang

  • Also,  in disassembly H264MPVDEC_TI_QDMA_wait  function, I see the value 0x1c00000. The value is address EDMA3 CC for DM6446 version, in C6472 EDMA3 CC  address is 0x02A00000.


    e2be7b5c: EA62B300 .fphead n, l, W, HU, br, nosat, 1010011
    e2be7b60: 0333 || MVK.S2 32,B6
    e2be7b62: 2C2B [ B0] BNOP.S2 0xE2BE7BA0 (PC+96 = 0xe2be7ba0),1
    e2be7b64: 018C92F9 || SUB.L1X B4,A3,A3
    e2be7b68: 0380E069 || MVKH.S1 0x1c00000,A7
    e2be7b6c: B247 || MV.L2X A4,B5
    e2be7b6e: C876 || [!B0] MVK.D1 0,A0
    e2be7b70: 02906CE0 SHL.S1 A4,A3,A5

    Do you think the library can be work in C6472?

    Brs,

    Lang

  • Hi Lang, I would recommend you to use C66x H264 decoder (software-dl.ti.com/.../index_FDS.html) as Praveen mention above. However, this codec was build and test for C6678 and some modifications in the library would be needed. You can contact our third party CouthIT for help in getting a new H264 decoder library that works with C6472 (info@couthit.com).

    Thank you,

    Paula
  • Hi Paula,

    Thanks for your replying. I will contact them soon. But I get the H264 lib in your website free, could I get the new lib free from CouthIT?

    Brs,

    Lang

  • Hi Paula,

    If I want MPEG4 codec library for C6472, which TI third party I will contact ?


    Brs,

    Lang

  • Hi Lang, for MPEG4 codecs is also CouthIT.

    Thank you,

    Paula