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
