Video streaming from a live source: It’s a technology not yet addressed by standard Android APIs. The result? CPU taxation, battery drainage, and choppier performance due to software decoding.
Fortunately, when you’re developing Android apps on select devices with Snapdragon™ processors, you can access the dedicated video hardware core. Be warned, you’ll have to get your hands dirty to get it to work, but we’ve made available a session from our Uplinq conference for a brief overview. The video from the presentation is called Accessing Hardware-Accelerated Video Codecs on Android. It’s a quick, 20-minute high-level discussion that will get you on the road to freeing up cycles on your CPU for other apps and tasks.
Here’s a quick recap of what you will see in the presentation:
- Requirements – the hardware and software that you need on both the device and your development PC
- OpenMAX IL – the set of hardware- and OS-agnostic, open-source APIs from The Khronos Group, designed for a number of multimedia features, including encoding and decoding raw video streams
- iOMX – an Android abstraction wrapper over OpenMAX IL
- Sample code – improved code with documentation you can use right out of the box (Apk or command-line) as a starting point for understanding how to integrate hardware-accelerated video into your own apps
- Languages – C, C++, Java
If you’re still getting your feet wet in video acceleration on dedicated hardware, have a look at Get Your Video Off My CPU, an article from the QDevNet newsletter, for more background. You can also visit the OpenMAX IL site to find out more about understanding the OpenMAX IL APIs which this is heavily based on.
Give it a shot and send me your questions and suggestions in the comments below.