Please note as of Wednesday, August 15th, 2018 this wiki has been set to read only. If you are a TI Employee and require Edit ability please contact x0211426 from the company directory.

ARM Open Source Codecs

From Texas Instruments Wiki
Jump to: navigation, search

Content is no longer maintained and is being kept for reference only!

Introduction

There are a number of open source codecs available that will run on an ARM, which make them suitable for devices like DM355, DM6446, or OMAP3. Below are a list of projects you may find useful and instructions to assist you in your port.

MP3 - madplay

madplay is an MPEG Audio Decoder player, available from: http://www.underbit.com/products/mad/

  1. These instructions are for ARM9 using MV Tools, and may need to be modified for other devices. See the README included with madplay for further instructions.
  2. Download libid3tag, libmad, and madplay tars from the above URL, then untar on host
  3. Add Montavista tools to your path (e.g. host# export PATH=/opt/montavista/pro/devkit/arm/v5t_le/bin:$PATH)
  4. To compile libmad: host# cd libmad-x.x.x
  5. Configure libmad for cross compile, where prefix is your desired installation directory: host# ./configure --prefix=/home/user/target/opt/madplayer CC=arm_v5t_le-gcc --host=arm-linux
  6. Make and install via: host# make then host# make install
  7. Cross compile libid3tag: host# cd libid3tag-x.x.x
  8. Configure libid3tag for cross compile, where prefix is your desired installation directory: host# ./configure --prefix=/home/user/target/opt/madplayer CC=arm_v5t_le-gcc --host=arm-linux
  9. Make and install via: host# make then host# make install
  10. Finally, host# cd madplayer-x.x.x
  11. Configure like: CC=arm_v5t_le-gcc ./configure --build=i686-linux --host=arm-linux --prefix=/home/user/target/opt/madplayer CFLAGS='-I/home/user/target/opt/madplayer/include' LIBS='-L/home/user/target/opt/madplayer/lib'
  12. Then host# make and host# make install
  13. Boot your EVM via TFTP/NFS
  14. From the target's serial prompt, target# LD_LIBRARY_PATH=/opt/madplay/lib:$LD_LIBRARY_PATH
  15. Edit /etc/ld.so.conf, add the line /opt/madplayer/lib then run target# ldconfig
  16. Play an MP3: target# /opt/madplay/bin/madplay myfile.mp3

Audio/Video codecs - mplayer

mplayer is a multimedia player available from http://www.mplayerhq.hu. To see the (very long) list of supported codecs, see http://www.mplayerhq.hu/DOCS/codecs-status.html. Obviously the audio codecs work better on ARM9s than video codecs. On ARM9: MP3 seems to have a high load so madplay may be a better option; AAC runs well though.

  1. These instructions are for ARM9 using MV Tools, and may need to be modified for other devices. See the README included with mplayer for further instructions.
  2. Download MPlayer from the above URL and unzip
  3. Add Montavista tools to your path (e.g. host# export PATH=/opt/montavista/pro/devkit/arm/v5t_le/bin:$PATH)
  4. First, host# cd MPlayer-x.x
  5. Configure mplayer for cross compile, where prefix is your desired installation directory: host# ./configure --enable-cross-compile --cc=arm_v5t_le-gcc --host-cc=gcc --target=arm-linux-gnu --prefix=/home/user/target/opt/MPlayer-1.0rc2/
  6. Make and install via: host# make then host# make install
  7. Boot your EVM via TFTP/NFS
  8. Play an AAC: target# /opt/MPlayer-1.0rc2/bin/mplayer myfile.aac
  9. See mplayer documentation to play other file types

JPEG encoder/decoder - IJG

IJG's JPEG library supports JPEG encode and decode; file formats include PPM, PGM, BMP, Targa, and RLE.

  1. Download the JPEG library from http://www.ijg.org/
  2. Untar the JPEG library on the target file system
  3. Boot your EVM using TFTP boot/NFS file system
  4. target# cd /opt/jpeg-xx
  5. target# ./configure
  6. target# make
  7. target# make install
  8. target# cjpeg myfile.bmp > myfile.jpg for encode
  9. target# djpeg myfile.jpg > myfile.bmp for decode