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.
ARM Open Source Codecs
Content is no longer maintained and is being kept for reference only!
Introduction[edit]
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[edit]
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[edit]
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[edit]
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