Looking for help: iOMX interface for gst-omx plugin

Umashankar Chikkamath umashankar.chikkamath at yahoo.com
Wed May 7 05:14:08 PDT 2014


Hello Sebastian,
Thanks for your inputs. My goal is to video transcoding on Android 4.3 version.I'm able to do transcoding (accessing available encoder and decoder hardware) using androidmedia gstreamer plugin successfully, however while re-encoding stream I'm looking for more encoding parameters to control bitrate and quality of the video, hence I'm trying accessing hardware codec via gst-omx plugin.
Thanks,
-Umashankar 
On Tuesday, May 6, 2014 11:58 PM, Sebastian Dröge <sebastian at centricular.com> wrote:
 
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
_______________________________________________
gstreamer-android mailing list
gstreamer-android at lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/gstreamer-android
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-android/attachments/20140507/786a50ea/attachment.html>


More information about the gstreamer-android mailing list