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 Encoder on C6455

I am trying to run TI's h264encoder (dm6446_h264enc_02_02_00_02_production) on C6455.

I am using Framework_component_2_26_00_01 and bios_5_41_07_24.

For the bios lib I am using biosTCI6482.a64p.

I have changed the file H264VEncApp.cmd since L1DRAM in the C6455 is only 32K bytes.

The section .intDataMem is in L2DRAM.

When the main program calls ividEncfxns->process it enters an endless loop in H264VENC_TI_QDMA_wait.

Halting the program, it shows chan_num 34 and p_qdma_state_local.

Can you tell me how to solve this problem?

Thanks,

Chaim Broit

  • Hello Chaim,

    Can you please share the modified cmd file or the lines which are changed in cmd file for working it on C6455?

    (Also I am assuming that you are running the package in stand-alone mode i.e. not on DVTB)

    Regards,

    Jaydeep

  • If I didn't know better, I think there are special hw accelerators on dm6446. And h264 encoder uses that..

  • Hello jaydeep,

    These are the changed lines:

    -stack 0x3000

    -heap 0x40000

    MEMORY{

        L1DRAM : o = 0x00F00000, l = 0x00008000

        L2DRAM : o = 0x00800000, l = 0x00100000

        ERAM     : o = 0xe0000000, l = 0x01000000

    }

    _DMAN3_EDMA3BASE = 0x02A00000

    and in the SECTIONS

    .intDataMem  > L2DRAM

    all other lines are the same as in the original cmd file.

    Thanks,

    Chaim Broit

  • Hello Chaim,

    I have tried to direct .intDataMem to L2DRAM i.e. .intDataMem  > L2DRAM for DM6446. No problem is observed for the same.

    One point here is that, if you are using L2DRAM, you need to take care of cache settings, as by default L2 cache is used in our package test application.

    Please check with disabling the cache inside test application given in the package and confirm

    Regards,

    Jaydeep

     

     

  • Hello Jaydeep,

    thanks for your reply.

    Disabling the cache didn't help.

    Looking into the disassembly window where the program loops indefinitely it seems to me that the program attempt to read from around address 0x01c01070

    which does not exist in the C6455, but is in the CFG of the dm6446.

    So, my question is: can I use this software on the C6455, and if so what is needed for this?

    Regards, Chaim Broit

     

  •  

    No. This software will not work for C6455 as the design is based on QDMA and C6455 uses EDMA.

    Regards,

    Jaydeep

  • Hello Chaim,

    Please refer to the following Twiki page that provides some compatibility information:
    http://processors.wiki.ti.com/index.php/C64x%2B_and_Davinci_codec_performance_tables

    In section 10.1 you will see some importants notes as well as a workaround.

    Best regards,

    Anthony