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.
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:
Needles to say, comments and patches are welcome😉