NOTICE: The Processors Wiki will End-of-Life in December of 2020. 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

From Texas Instruments Wiki
Jump to: navigation, search

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/

  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[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.

  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[edit]

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
E2e.jpg {{
  1. switchcategory:MultiCore=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article ARM Open Source Codecs here.

Keystone=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article ARM Open Source Codecs here.

C2000=For technical support on the C2000 please post your questions on The C2000 Forum. Please post only comments about the article ARM Open Source Codecs here. DaVinci=For technical support on DaVincoplease post your questions on The DaVinci Forum. Please post only comments about the article ARM Open Source Codecs here. MSP430=For technical support on MSP430 please post your questions on The MSP430 Forum. Please post only comments about the article ARM Open Source Codecs here. OMAP35x=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article ARM Open Source Codecs here. OMAPL1=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article ARM Open Source Codecs here. MAVRK=For technical support on MAVRK please post your questions on The MAVRK Toolbox Forum. Please post only comments about the article ARM Open Source Codecs here. For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article ARM Open Source Codecs here.

}}

Hyperlink blue.png Links

Amplifiers & Linear
Audio
Broadband RF/IF & Digital Radio
Clocks & Timers
Data Converters

DLP & MEMS
High-Reliability
Interface
Logic
Power Management

Processors

Switches & Multiplexers
Temperature Sensors & Control ICs
Wireless Connectivity