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.

H.264 BP encoder integration on C6678



Hi,

I'm trying to use H.264 BP encoder for C66x (version 1.24.00.01) on C6678 evm.

I used this codec on C64+ in the past and now I work on migration to C66x platform

I don't use SYS/BIOS and RTSC in the project

As I understand this library uses ECPY external library for EDMA implementation. 

When I tried to link it with my project I saw many undefined symbols from ecpy library. Then I added the following library:

framework_components_3_20_02_29/packages/ti/sdo/fc/ecpy/lib/release/ecpy.ae674

But I still get the following linkage error:

undefined first referenced
symbol in file
--------- ----------------
ECPY_CFG_PARAMS /opt/ti/framework_components_3_20_02_29/packages/ti/sdo/fc/ecpy/lib/release/ecpy.ae674<ecpy_impl.oe674>

First of all I wanted to ask for some documentation about this connection and interface between h264 encoder library and ecpy library and what actions should I do in order to make it work: define and fill structures, initialize edma, etc.

Which ecpy library should I use? In the H.264 encoder sample application (which by the way requires many changes in order to be compiled on linux) I saw ecpy.ae674 usage.

Is it complatible with c66?

Whats the differences in edma initialization that I should do?

Who is responsible for edma initialization in the framework and how can it be done?

As I understand there is another library called RMAN than can manage it. Can I use my own code that manage edma channels instead?

Thanks,

Oleg Fomenko

  • Hi Oleg,

    ecpy.ae674 is compatible with c66. However, in order to use C6678 H264BP encoder lib which builds on framework components (FC), just linking ECPY lib is not sufficient.

    With FC, codec lib uses ECPY + IRES, and codec unit test App uses RMAN. To my best knowledge, in order to use codec lib which builds on FC, we must use RTSC project that builds on SYS/BIOS. Please refer to C6678 H264BP encoder unit test project (C66x_h264venc_01_24_00_01_ELF\packages\ti\sdo\codecs\h264venc\App\Client\Build\TestAppEncoder) as one example. The FC related major items are summarized as below:

    1) H264VEncApp6678.cfg: specify FC modules to be used by the project, such as DSKT2, RMAN, ECPY, and etc (after the line of /*Added for using ECPY */). With this, all the required FC libs will be automatically linked (this can seen from the following file generated from compilation: Client\Build\TestAppEncoder\Debug_Mcore\configPkg\package\cfg\H264VEncApp6678_pe66.xdl)

    2) Use RMAN in TestAppEncoder.c: RMAN_init() for initialize RMAN. Before calling RMAN_init, EDMA3 region configuration has been specified in C6608_config[ ] (defined in edmaConfig.c). After ALG_create(), do RMAN_assignResources() and RMAN_activateAllResources() to assign and activate EDMA3 resources. At the end before ALG_delete, free RMAN: RMAN_deactivateAllResources(), RMAN_freeResources().

    Thanks,

    Hongmei