NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.

OMX AAC LC Encoder Integration in EZSDK

From Texas Instruments Wiki
Jump to: navigation, search

How to integrate AAC LC Encoder in EZSDK


Introduction[edit]


The EZSDK supports AAC-LC Encoder . However, AAC-LC Encoder is not part of the EZSDK package and needs to be downloaded separately. This article explains the steps to download, install, integrate, build and test AAC-LC Encoder in EZSDK.

The following should be noted with respect to the pre-built DSP & IL Client omx examples -

1. The pre-built DSP binary & A8 IL Client does not support AAC-LC Encoder. The steps mentioned in this article needs to be followed to add AAC-LC Encoder & encode in AAC-LC format. The pre-built dsp binary is available at /usr/share/ti/ti-media-controller-utils/*.xe674 in the EZSDK.

2. Sample IL client is intended for encoding of a PCM stream .  The pre-built sample IL Client is available at /usr/share/ti/ti-omx

Throughout this document there will be commands spelled out to execute. Some are to be executed on the Linux development host, some on the Linux target and some on the u-boot (bootloader) prompt. They are distinguished by different command prompts as follows:

host $ <this command is to be executed on the host>

target # <this command is to be executed on the target>



Version Information and Compatibility[edit]

Note! These instructions have been validated on EZSDK 5.02.03.09. These instructions are applicable to DM816x and DM814x devices.

Installing AACLC Encoder[edit]


Users may download AAC-LC Encoder from the following URL - http://software-dl.ti.com/dsps/dsps_public_sw/codecs/C674X_Audio_Codecs/01_00_001/index_FDS.html.

This URL contains linux installer for AAC-LC Encoder. Although users may install AAC-LC Encoder anywhere in the linux filesystem, it is recommended to install the AAC-LC Encoder in the EZSDK host filesystem under component-sources. This simplifies setting up the build environment variables to point to the AAC-LC Encoder package.

Integration and Build steps[edit]

1. Update / provide the path of aaclc encoder in $EZSDK/ Rules.mk file.

Update the path in OMX_BUILD_VARS <syntaxhighlight lang='make'> aaclcdec_PATH=${AACLCDEC_INSTALL_DIR} aaclcenc_PATH=${AACLCENC_INSTALL_DIR} </syntaxhighlight>

Provide the path of aaclc codec installed - <syntaxhighlight lang='make'> AACLCDEC_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/component-sources/c674x_aaclcdec_01_41_00_00_elf AACLCENC_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/component-sources/c674x_aaclcenc_01_00_01_00_elf </syntaxhighlight>


2. Update the build environment variables in $EZSDK/component-sources/omx_xx_yy_zz_bb/makerules/env.mk to point to the installation of AAC-LC Encoder. Here xx_yy_zz_bb represents the installed omx version. See example below -

host $ vi $EZSDK/component-sources/omx_xx_yy_zz_bb/makerules/env.mk

<syntaxhighlight lang="make">

  1. AACENC - AAC Encoder

aaclcenc_PATH = $(EXTERNAL_SW_ROOT)/c674x_aaclcenc_01_00_01_00_elf aaclcenc_INCLUDE = $(aaclcenc_PATH)/packages </syntaxhighlight>

Also append in XDCPATH $(aaclcenc_PATH)/packages;


3. Modify the Codec Engine create parameters in $EZSDK/component-sources/omx_xx_yy_zz_bb/examples/ti/omx/demos/dm81xx/DspAppMain.cfg to include AAC-LC Encoder as shown below -

 host $ vi $EZSDK/component-sources/omx_xx_yy_zz_bb/examples/ti/omx/demos/dm81xx/DspAppMain.cfg

<syntaxhighlight lang="javascript"> // use aaclc-enc var aaclcenc = xdc.useModule('ti.sdo.codecs.aaclcenc.ce.AACLCENC');

// ======== Engine Configuration ======== var Engine = xdc.useModule('ti.sdo.ce.Engine'); var myAENCEngine = Engine.create("aenc", [ {

   name : "aaclcenc",
   mod : aaclcenc,
   local: true

} ]); </syntaxhighlight>

This results in the inclusion of AAC-LC Encoder libraries in the build.


4. Add AACLC Encoder to the list of codecs in $EZSDK/component-sources/omx_xx_yy_zz_bb/examples/ti/omx/demos/dm81xx/app_properties.mk as shown below -

 host $ vi $EZSDK/component-sources/omx_xx_yy_zz_bb/examples/ti/omx/demos/dm81xx/app_properties.mk

<syntaxhighlight lang="make"> CODECS_IN_APP = aaclcdec aaclcenc </syntaxhighlight>


5. Add AENC to the list of components in $EZSDK/component-sources/omx_xx_yy_zz_bb/examples/ti/omx/demos/dm81xx/makefile as shown below -

 host $ vi $EZSDK/component-sources/omx_xx_yy_zz_bb/examples/ti/omx/demos/dm81xx/makefile

<syntaxhighlight lang="make"> COMP_LIST_c6xdsp = memcfg omxbase domx omxcore vlpb adec aenc </syntaxhighlight>

This step completes modifications on DSP side.


6. Add AACLC Encoder to the list of codecs in $EZSDK/component-sources/omx_xx_yy_zz_bb/examples/ti/omx/demos/audio_encode/app_properties.mk as shown below -

 host $ vi $EZSDK/component-sources/omx_xx_yy_zz_bb/examples/ti/omx/demos/audio_encode/app_properties.mk

<syntaxhighlight lang="make"> CODECS_IN_APP = aaclcenc </syntaxhighlight>

This step completes modification on A8 side (IL Client)


7. Go to the root directory of EZSDK and execute the following make command to rebuild omx -

host $ cd $EZSDK
host $ make omx_clean
host $ make omx


8. The following DSP and A8 side binaries are rebuilt as a result of 5 above -

For DM816x:

  • $EZSDK/component-sources/omx_xx_yy_zz_bb/bin/dm81xx/bin/ti816x-evm/dm81xx_c6xdsp_debug.xe674
  • $EZSDK/component-sources/omx_xx_yy_zz_bb/bin/audio_encode/bin/ti816x-evm/audio_encode_a8host_debug.xv5T


9. For DM814x:

  • $EZSDK/component-sources/omx_xx_yy_zz_bb/bin/dm81xx/bin/ti814x-evm/dm81xx_c6xdsp_debug.xe674
  • $EZSDK/component-sources/omx_xx_yy_zz_bb/bin/audio_encode/bin/ti814x-evm/audio_encode_a8host_debug.xv5T


10. Copy the newly generated A8 binary to the target filesystem under /usr/share/ti/ti-omx

How to test[edit]



Load the DSP image by


target # firmware_loader 0 dm81xx_c6dsp_debug.xe674 start

The IL Client executable audio_encode_a8host_debug.xv5T is used in the following way to test AACLC Encoder -

target # ./audio_encode_a8host_debug.xv5T -i input.pcm -o output.aac -c aaclc -n 2 -b 192000 -s 44100 -f ADTS

Download the Latest EZSDK[edit]

The latest EZSDK is available for download from http://software-dl.ti.com/dsps/dsps_public_sw/ezsdk/latest/index_FDS.html.

The current version is 5.05.02.00. The supported platforms are DM816x and DM814x.

EZSDK Support
E2e.jpg {{
  1. switchcategory:MultiCore=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article OMX AAC LC Encoder Integration in EZSDK here.

Keystone=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article OMX AAC LC Encoder Integration in EZSDK here.

C2000=For technical support on the C2000 please post your questions on The C2000 Forum. Please post only comments about the article OMX AAC LC Encoder Integration in EZSDK here. DaVinci=For technical support on DaVincoplease post your questions on The DaVinci Forum. Please post only comments about the article OMX AAC LC Encoder Integration in EZSDK here. MSP430=For technical support on MSP430 please post your questions on The MSP430 Forum. Please post only comments about the article OMX AAC LC Encoder Integration in EZSDK here. OMAP35x=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article OMX AAC LC Encoder Integration in EZSDK here. OMAPL1=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article OMX AAC LC Encoder Integration in EZSDK here. MAVRK=For technical support on MAVRK please post your questions on The MAVRK Toolbox Forum. Please post only comments about the article OMX AAC LC Encoder Integration in EZSDK here. For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article OMX AAC LC Encoder Integration in EZSDK here.

}}

Hyperlink blue.png Links

Amplifiers & Linear
Audio
Broadband RF/IF & Digital Radio
Clocks & Timers
Data Converters

DLP & MEMS
High-Reliability
Interface
Logic
Power Management

Processors

Switches & Multiplexers
Temperature Sensors & Control ICs
Wireless Connectivity