ARM Open Source Codecs
From Texas Instruments Embedded Processors Wiki
Contents |
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/
- 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.
- Download libid3tag, libmad, and madplay tars from the above URL, then untar on host
- Add Montavista tools to your path (e.g. host# export PATH=/opt/montavista/pro/devkit/arm/v5t_le/bin:$PATH)
- To compile libmad: host# cd libmad-x.x.x
- 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
- Make and install via: host# make then host# make install
- Cross compile libid3tag: host# cd libid3tag-x.x.x
- 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
- Make and install via: host# make then host# make install
- Finally, host# cd madplayer-x.x.x
- 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'
- Then host# make and host# make install
- Boot your EVM via TFTP/NFS
- From the target's serial prompt, target# LD_LIBRARY_PATH=/opt/madplay/lib:$LD_LIBRARY_PATH
- Edit /etc/ld.so.conf, add the line /opt/madplayer/lib then run target# ldconfig
- 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.
- 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.
- Download MPlayer from the above URL and unzip
- Add Montavista tools to your path (e.g. host# export PATH=/opt/montavista/pro/devkit/arm/v5t_le/bin:$PATH)
- First, host# cd MPlayer-x.x
- 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/
- Make and install via: host# make then host# make install
- Boot your EVM via TFTP/NFS
- Play an AAC: target# /opt/MPlayer-1.0rc2/bin/mplayer myfile.aac
- 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.
- Download the JPEG library from http://www.ijg.org/
- Untar the JPEG library on the target file system
- Boot your EVM using TFTP boot/NFS file system
- target# cd /opt/jpeg-xx
- target# ./configure
- target# make
- target# make install
- target# cjpeg myfile.bmp > myfile.jpg for encode
- target# djpeg myfile.jpg > myfile.bmp for decode
Comments
Does it make sense to mention FFmpeg here? Currently FFmpeg is quite popular at BeagleBoard. Unfortunately, I don't know anything about it...
