cerbero and gst-omx

Christian Werner cwerner at ibr.cs.tu-bs.de
Thu Jan 12 12:37:25 UTC 2017


Hello,

I am Christian and my project goal is to get hardware accelerated H.264 playback with gstreamer on my android tablet.

Therefore, I am trying to integrate the gst-omx wrapper into the android development package created by cerbero. First, I followed the instructions at https://blogs.s-osg.org/kickstart-gstreamer-android-development-6-easy-steps/ and everything seems to work smoothly (cerbero is really impressive!).

Then I have tried to write a new cerbero recipe for building and integrating gst-omx. This is the result:

==
cwerner at matrix ~/gstreamer/cerbero $ cat recipes/gst-omx.recipe
# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python

class Recipe(custom.GStreamer):
     name = 'gst-omx'
     licenses = [License.LGPLv2Plus]
     remotes = {'origin': 'git://anongit.freedesktop.org/gstreamer/gst-omx'}
     config_sh = 'sh ./autogen.sh --noconfigure && ./configure'
     configure_options = "--program-prefix= --disable-examples --enable-static "
     deps = ['gstreamer-1.0', 'gst-plugins-base-1.0', 'gst-plugins-good-1.0']

#    files_devel = ['include/gstreamer-1.0/omx', 'lib/pkgconfig/gst-omx.pc']
     files_plugins_codecs = ['lib/gstreamer-1.0/libgstomx%(mext)s']

     def prepare(self):
         self.append_env['CFLAGS'] = " -Wno-error "
         self.append_env['CXXFLAGS'] = " -Wno-error "
         self.append_env['CPPFLAGS'] = " -Wno-error "
         if self.config.target_platform != Platform.LINUX:
             self.configure_options += ' --disable-gtk-doc --with-omx-target=generic'
==

If have also defined a new dependency in packages/gstreamer-1.0-core.package as follows:
===
[...]
     platform_files = {
             Platform.DARWIN: ['gstreamer-1.0-osx-framework'],
             Platform.IOS: ['gstreamer-ios-templates'],
             Platform.ANDROID: ['gst-android-1.0','gst-omx'],
             }
[...]
===

After running

./cerbero-uninstalled -c config/cross-android.cbc package gstreamer-1.0

and a lot of magic happening the android development packages got created:
===
cwerner at matrix ~/gstreamer/cerbero $ ls -l gstreamer-1.0-android-arm-1.11.0*
-rw-r--r-- 1 cwerner cwerner  93056016 Jan 12 13:21 gstreamer-1.0-android-arm-1.11.0-runtime.tar.bz2
-rw-r--r-- 1 cwerner cwerner 150352520 Jan 12 13:21 gstreamer-1.0-android-arm-1.11.0.tar.bz2
===

Configuring, building, and installing gst-omx during packaging seems to have worked properly:
===
cwerner at matrix ~/gstreamer/cerbero $ ls -l /home/cwerner/gstreamer/cerbero/build/dist/android_arm/lib/gstreamer-1.0/libgstomx.*
-rw-r--r-- 1 cwerner cwerner 2334520 Jan 12 12:50 /home/cwerner/gstreamer/cerbero/build/dist/android_arm/lib/gstreamer-1.0/libgstomx.a
-rwxr-xr-x 1 cwerner cwerner    2510 Jan 12 12:50 /home/cwerner/gstreamer/cerbero/build/dist/android_arm/lib/gstreamer-1.0/libgstomx.la
-rwxr-xr-x 1 cwerner cwerner 1076328 Jan 12 12:50 /home/cwerner/gstreamer/cerbero/build/dist/android_arm/lib/gstreamer-1.0/libgstomx.so
===

Unfortunately, these files are not included in the packages created by cerbero!

I have noticed that no "pkg-config magic" is happening when building gst-omx. Is this a requirement for the integration in the cerbero packaging process?

At this point I've got stuck. Has anybody some hints for me how integrate the libs into the packages?

Best regards,

Christian



More information about the gstreamer-android mailing list