use android binary omx codec

Mohammed Sameer msameer at foolab.org
Wed Feb 25 16:19:40 PST 2015


On Wed, Feb 25, 2015 at 04:52:35PM +0800, Aihua Zhao wrote:
>  Hi Experts:

Hi,

>  I'm trying to use android omx binary codec in some way, and noticed the
>  implementation from Ubuntu and Jolla.
>  Ubuntu
>  touch: [1]https://launchpad.net/distros/ubuntu/+source/gst-plugins-bad1
>  .0
>  Jolla: [2]https://github.com/sailfishos/gst-omx

I created the implementation for Jolla.
Just note that this implementation is for GStreamer 0.10

Currently Jolla is migrating to GStreamer 1.x with a new homegrown
modules that integrate with Android at stagefright level for media decoding
and encoding and at camera service level for camera access.

The code is open and I can point you at it if you are interested. It's still
in development but the results are promising.

Just note that even though the code is meant to be generic, it's meant to be
built per device against the specific version of Android used by Sailfish OS.

>  from my understanding, Jolla uses omx binary directly
>  by android_dlopen(); while Ubuntu touch uses the codec from android
>  media codec service. both are in gstreamer world.

True for Jolla, we load android OMX libraries via libhybris and enable Android
native buffers. The code is heavily patched for only this use-case.

I had plans to forward port the needed changes to GStreamer 1.x and push them
to upstream gst-omx after discussing it with slomo but I unfortunately got busy.

>  I wonder one possible implementation away from gstreamer:
>  the Android MediaCodec API is also convenient to use. on non-android
>  Linux, is it possible to load omx binary by hybris, then simply wrapped
>  it into MediaCodec interface?

This is going to be a huge task, Each OMX codec has its own set of quirks.
I also noticed that if you deviate much from the "Android behavior" then
the binary you are using can at best case error out and at worst case crash on you.

>  you may say that is what android does; however, I think the
>  implementation in Android is over-complex and depends on android
>  toolkit.

It's just tailored to Android :-)

Cheers,

-- 
GPG-Key: 0xA3FD0DF7 - 9F73 032E EAC9 F7AD 951F  280E CB66 8E29 A3FD 0DF7
Debian User and Developer.
Homepage: www.foolab.org


More information about the gstreamer-devel mailing list