Angstrom OpenMAX

From OMAPpedia

Revision as of 10:11, 31 August 2012 by Bizulk (Talk | contribs)
Jump to: navigation, search

Contents

Enabling TI Hardware Accelerated Codecs

TI OpenMAX IL is released as open source (under LGPLv2) along with some DSP codecs are available under the OpenMax Project. v0.3.5 has support for MPEG-4 AAC and MPEG-4 decoders.

Extract and Install

This wiki assumes that you have unpacked, configured, and compiled the busybox file system, alsa, the kernel, and dspbrige. All of these are available on omappedia.org. You should follow the respective instructions to build each piece. Again, at this point, these pieces should be built and functioning.

Untar the main package & change to tiopenmax directory. You will find "TI-OMX-Sample-Firmware-0.X-Linux-x86-Install" in /lib/dsp. Run that installer by providing the path to the root of this package when asked for the destination directory. After installing, you should see files such as:

./lib/dsp/baseimage.dof
./lib/dsp/mp4vdec_sn.dll64P
.
.

Building

You need to set the following environment variables in order to succesfully build:

PREFIX - Where the output goes
CROSS - The cross compiler prefix (eg arm-none-linux-gnueabi-)
CROSS_COMPILER - same as above
TARGETDIR - should be $PREFIX/rootfs
OMXTESTOUTPUT - $PREFIX/rootfs/omx
BRIDGEINCLUDEDIR - Where your Bridge headers are (eg. dspbridge_mpu_api/mpu_api/inc)
BRIDGELIBDIR - Where you put your DSP libs (e.g. $TARGETDIR/rootfs/lib)

Change directory to 'tiopenmax' directory and run the following make commands:
make avplay.clobber avplay
This builds omx video decoder, display post processor, omx aac decoder & AV Play test application.
Similarly:
make video_display.clobber video_display
make image_display.clobber image_display

Check for the following files in your rootfs. If they are not present, they are included in the package for you.

/dspbridge 
cexec.out 
This application will load the DSP base image. 
/share 
Too many files to list. just copy the share tree from the location where you unpacked your tarball.
/lib 
libasound.so.2.0.0 
libasound.so.2 (softlink to the above) 
libdl-2.5.so 
libdl.so.2 (soflink to the above)

Testing

To run any test app, this step must be done first:

cd ./dspbridge  (This step need not be done if DSPBridge is built in to the kernel)
./uninstall_bridge
./install_bridge
mdev -s
./cexec.out /lib/dsp/baseimage.dof
../bin/OMXAudioManager &
../bin/OMXResourceManager &
echo -n 0 > /sys/power/enable_mpucoreoff
echo 0 > /sys/power/fb_timeout_value

These above OMX components could be used with the GStreamer plug-ins (using this library).

Please note that these steps haven't been validated yet on Zoom2 using L-O kernel as currently Zoom2 support is being added to the L-O sync kernel. 2.6.27 O-Z kernel could not be used successfully on Angstrom due to an Xserver crash that was observed.

TI OMX with Angstrom on Zoom36x

TI OMX source and binaries are available as part of the L23.i3.3 community release that has been made on Poky. The same can be used with Angstrom. The below lists the supported features in the Community Release

MM Use Cases (DSP)and TI OMX Components

 MPEG4/H263 Video Dec
 MPEG4/H263 Video Enc
 H264 Video Dec
 JPEG Dec
 JPEG Enc
 AAC Dec

The package containing DSP binaries and OMX Components can be obtained from the OpenMax project site for OMAP https://gforge.ti.com/gf/project/openmax/frs/ This package is referenced as RLS23.i3.3.

Angstrom Filesystem with Pre-built binaries

The release package also contains pre-built binaries that can be used directly with Angstrom file system.

Build / Add the various components to use TI OMX/DSP

Community Contribution: Add a script that would pull the TI references from the release package (detailed above) into the pre-built Angstrom filesystem so that it can be readily used before building the entire file system with TI components

Test TI OMX

Building TI OMX within OE/Angstrom

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox