gst-openmax demo on the beagleboard

Here is a video showing off gst-openmax on the beagleboard.

It’s a 720×400 MPEG-4 video at 24 fps. Essentially gst-openmax is using TI’s OpenMAX IL implementation, which is using the DSP on the OMAP 3530 to decode the video.

The CPU usage on the ARM side is about 10% which leaves plenty of room to decode audio or anything else. When debugging is turned off on the dsp-bridge kernel driver, the CPU usage is less, but it’s more unstable.

So, if you want to try this out on your beagleboard, just follow these instructions. If you don’t have one, what are you waiting for?!

Everything is open source, ready for eager hackers, except the DSP software, which is provided as binaries and you need to run an installer that extracts them after you agree with the “free for non-commerical”-use license. Texas Instruments is also providing all the tools to write DSP software publicly, so you can write your own open source codecs if you want 🙂

There’s one minor “but”. Texas Instruments uploaded the wrong DSP socket nodes for MPEG-4 video, so it doesn’t really work out of the box, but they are working on that.

This is what we are going to use on the Maemo 5 devices so if you want to get your hands dirty early on, you just need a beagleboard, which is not expensive. This is a lot of improvement since previous Maemo releases, where Nokia developed custom DSP software which unfortunately wasn’t picked up by other parties, so it was pretty hard to develop on top of it, even if was more open.

Or you can try on x86 with STMicro‘s OpenMAX IL implementation, bellagio, which can use FFmpeg, as well as other open-source codec libraries.

Since bellagio is pretty extensible, that’s what will be used on Maemo 5 to run the audio codecs. More details on that later.

OpenMAX IL on x86 is not so much fun yet because you’ll not get much advantage, unless your graphic card somehow provides hardware acceleration through the OpenMAX IL interface (hint to ATI and NVIDIA).

You can find more information about gst-openmax on the freedesktop wiki. My personal repo is at github, where there’s the latest stuff and branches for things to come like tunneling support that NXP developed in collaboration with us.

So there’s many things you can help with. If you only have x86 you can help improve gst-openmax, or the core of bellagio. If you have an OMAP3 device then you can help with TI’s openmax, or dsp-bridge which needs a lot of cleanups before its merged into the Linux kernel.

If you happen to like git you can find my personal repos for all these technologies at github:

I even have an example DSP socket node (with instructions) that you can use for reference, or to test the dsp-bridge. The patches for the dsp-bridge are on a branch on the linux-omap tree here.

Needles to say, comments and patches are welcome 😉

6 thoughts on “gst-openmax demo on the beagleboard

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.