ARM Open Source Codecs

'''  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</tt>
 * 10) Finally, host# cd madplayer-x.x.x</tt>
 * 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' </tt>
 * 12) Then host# make</tt> and host# make install</tt>
 * 13) Boot your EVM via TFTP/NFS
 * 14) From the target's serial prompt, target# LD_LIBRARY_PATH=/opt/madplay/lib:$LD_LIBRARY_PATH</tt>
 * 15) Edit /etc/ld.so.conf, add the line /opt/madplayer/lib</tt> then run target# ldconfig</tt>
 * 16) Play an MP3: target# /opt/madplay/bin/madplay myfile.mp3</tt>

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</tt>)
 * 4) First, host# cd MPlayer-x.x</tt>
 * 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/</tt>
 * 6) Make and install via: host# make</tt> then host# make install</tt>
 * 7) Boot your EVM via TFTP/NFS
 * 8) Play an AAC: target# /opt/MPlayer-1.0rc2/bin/mplayer myfile.aac</tt>
 * 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</tt>
 * 5) <tt>target# ./configure</tt>
 * 6) <tt>target# make</tt>
 * 7) <tt>target# make install</tt>
 * 8) <tt>target# cjpeg myfile.bmp > myfile.jpg</tt> for encode
 * 9) <tt>target# djpeg myfile.jpg > myfile.bmp</tt> for decode