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:
./configure --prefix="$HOME/omx" make make install
Register the components:
$HOME/omx/bin/omxregister-bellagio -v
You'll get an output like this:
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:
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:
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:
GStreamer-CRITICAL **: gst_segment_clip: assertion `segment->format == format' failed
If you want to see what's happening:
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