Looking for help: iOMX interface for gst-omx plugin

Sebastian Dröge sebastian at centricular.com
Tue May 6 10:54:40 PDT 2014


On Mo, 2014-05-05 at 00:50 -0700, Umashankar Chikkamath wrote:
> Hello Everyone,
> From past more than 2 weeks I’m trying to resolve issue of
> running simple gstreamer pipeline on Android 4.3. Here I’m using gst-omx plugin
> to access hardware codec (omxh264enc) of Samsung S4 device(qualcomm
> chipset).(Device has stock OS and unrooted)  I’ve set the right gstomx.conf
> file as per Samsung S4 device 
> Gstremer pipeline( Cerbero GST SDK  for android build is using to run gst app)
> and  pipeline is  filesrc location=/mnt/sdcard/akiyo_qcif_nv12.yuv
> ! videoparse format=nv12 width=176 height=144 ! omxh264enc ! filesink
> location=/mnt/sdcard/Test.264
> Device details:  Samsung Galaxy S4 GT-I9506 Android version 4.3
>  
> and I can see the messages from adb logcat that
> “gst_omx_core_acquire Successfully loaded core '/system/lib/libmm-omxcore.so'”
> and “gst_omx_core_acquire Successfully initialized core '/system/lib/libmm-omxcore.so'”
> . However I’m facing issue of accessing hardware and error is :
> “gstomx.c:686:gst_omx_component_new:<omxh264enc-omxh264enc0> Failed to
> get component handle 'OMX.qcom.video.encoder.avc' from core
> '/system/lib/libmm-omxcore.so': 0x80001000”.
> After debugging and going through documents” In order to
> access the OMXIL functionality from a multimedia application, Android provides
> IOMX interface and where the OMXIL components are owned by mediaserver
> process”.
> I haven’t find any such code with gst-omx plugin about iOMX
> interface  i.e IMediaPlayerService in
> mediaserver implements getOMX() function.
>  
> Is anyone tried to access hardware codec using gst-omx on
> any android platform?. How should I approach to resolve this issue. I don’t
> think so it’s easy to implement such that iOMX can communicate with gst-omx
> plugin. 

Hi,

neither the IOMX interface nor OpenMAX IL is public API on Android, and
if and how they work highly depends on your specific device.

You can easily write GStreamer plugins around the IOMX interface, but
keep in mind that the ABI and also API of that interface is changing
between different Android versions and also devices.

For gst-omx and OpenMAX IL, you have to provide a configuration file for
your specific device and then it also only works (as you said already)
if the hardware is not occupied by anything else like the mediaserver
process. gst-omx can work on Android though and is used successfully by
people on some devices.


The public API for accessing the hardware codecs on Android is the
android.media.MediaCodec Java API, which is used by the androidmedia
GStreamer plugin. This one should work for audio and video decoding on
all Android devices since version 4.1 and patches for video encoding
support are currently in Bugzilla.

-- 
Sebastian Dröge, Centricular Ltd - http://www.centricular.com
Expertise, Straight from the Source
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 966 bytes
Desc: This is a digitally signed message part
URL: <http://lists.freedesktop.org/archives/gstreamer-android/attachments/20140506/8e31ce0b/attachment.sig>


More information about the gstreamer-android mailing list