gst-openmax is a GStreamer plug-in that allows communication with OpenMAX IL components.

OpenMAX IL is an industry standard that provides an abstraction layer for computer graphics, video, and sound routines.

This project is a collaboration between Nokia, NXP, Collabora, STMicroelectronics, Texas Instruments, and the open source community.

What's the status?

Many component wrappers have been developed for different OpenMAX IL implementations

ti (OMAP-3430)

Hardware-accelerated through DSP.

  • H.264 video encoder/decoder
  • H.263 video encoder/decoder
  • MPEG4 video encoder/decoder
  • WMV video decoder
  • JPEG image encoder

Maemo

Uses bellagio.

  • MP3 audio decoder
  • AAC audio encoder/decoder
  • G.711 audio encoder/decoder
  • G.719 audio encoder/decoder
  • iLBC audio encoder/decoder
  • AMR-NB audio encoder/decoder
  • AMR-WB audio encoder/decoder

bellagio

  • MP3 audio decoder (libmad)
  • Vorbis audio decoder
  • MPEG4 video decoder (FFmpeg)
  • H.263 video decoder (FFmpeg)
  • Audio sink (ALSA... not maintained) We are missing:

  • OpenMAX IL facilities (tunneling, clock)

How to get it

gst-openmax is already distributed in many embedded platforms, such as Angstrom and Maemo. If you need the source-code it's available just as any other GStreamer modules.

How to try it

It depends on your platform, but if want to try on x86 you can use Bellagio's implementation:

omxil

So, first install Bellagio's omxil from here, or direct link. Version 0.9.1 is recommended.

Install as usual:

[[!format txt """ ./configure --prefix="$HOME/omx" make make install """]] Register the components:

[[!format txt """ $HOME/omx/bin/omxregister-bellagio -v """]] You'll get an output like this:

[[!format txt """ Scanning directory /home/felipec/omx/lib/bellagio/

Scanning openMAX libary /home/felipec/omx/lib/bellagio/libomxvorbis.so Component OMX.st.audio_decoder.ogg.single registered Specific role OMX.st.audio_decoder.ogg.single registered

1 OpenMAX IL ST static components with 1 roles successfully scanned """]] Make sure you have:

  • "OMX.st.audio_decoder.mp3.mad" for MP3 decoding
  • "OMX.st.audio_decoder.ogg.single" for Vorbis decoding
  • "OMX.st.video_decoder.mpeg4" for MPEG4 video decoding

gst-openmax

It's always better to get the latest code:

[[!format txt """ git clone git://anongit.freedesktop.org/gstreamer/gst-openmax ./autogen.sh --noconfigure ./configure --prefix="$HOME/omx" make install """]]

Running

To actually use the plug-in: [[!format txt """ export GST_PLUGIN_PATH=$HOME/omx/lib/gstreamer-0.10 export LD_LIBRARY_PATH=$HOME/omx/lib """]] You'll be able to play audio and video with MP3, Vorbis, MPEG4, H.264, or H.263 content using Bellagio's components.

For MP3 you'll also need the mp3parse element, otherwise you'll get: [[!format txt """ GStreamer-CRITICAL **: gst_segment_clip: assertion `segment->format == format' failed """]] If you want to see what's happening: [[!format txt """ export GST_DEBUG=omx:4 """]]

How to contribute

We have a mailing list. You can subscribe, check the archives or send a direct e-mail to gstreamer-openmax@lists.sourceforge.net.

If you find any issues please fill a bug report here.

Roadmap

  • Merge tunneling branch
  • Documentation
  • More unit tests
  • First real release

News

External Links