commit:     186199b8c39dd9a6550c792c3840c6a18e168d24
Author:     Mart Raudsepp <leio <AT> gentoo <DOT> org>
AuthorDate: Fri Jul 18 01:02:51 2014 +0000
Commit:     Mart Raudsepp <leio <AT> gentoo <DOT> org>
CommitDate: Fri Jul 18 01:03:38 2014 +0000
URL:        
http://git.overlays.gentoo.org/gitweb/?p=dev/leio.git;a=commit;h=186199b8

Hacks to gst-plugins-bad ebuild to achieve a glimagesink that can play video on 
dispmanx on RPi

---
 .../gst-plugins-bad/gst-plugins-bad-1.3.91.ebuild  | 50 ++++++++++++++++++++--
 1 file changed, 46 insertions(+), 4 deletions(-)

diff --git a/media-libs/gst-plugins-bad/gst-plugins-bad-1.3.91.ebuild 
b/media-libs/gst-plugins-bad/gst-plugins-bad-1.3.91.ebuild
index 00c7eb1..c07e0c4 100644
--- a/media-libs/gst-plugins-bad/gst-plugins-bad-1.3.91.ebuild
+++ b/media-libs/gst-plugins-bad/gst-plugins-bad-1.3.91.ebuild
@@ -5,14 +5,17 @@
 EAPI="5"
 
 GST_ORG_MODULE="gst-plugins-bad"
-inherit eutils flag-o-matic gstreamer
+inherit autotools eutils flag-o-matic gstreamer
 
 DESCRIPTION="Less plugins for GStreamer"
 HOMEPAGE="http://gstreamer.freedesktop.org/";
 
 LICENSE="LGPL-2"
 KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd 
~x86-fbsd ~amd64-linux ~x86-linux"
-IUSE="egl +introspection +orc vnc"
+IUSE="egl gles2 +introspection +orc rpi vnc wayland"
+
+# FIXME: Some REQUIRED_USE dance for egl/gles2/rpi/wayland
+# FIXME: Any flags needed on raspberypi-userland for wayland or egl?
 
 # FIXME: we need to depend on mesa to avoid automagic on egl
 # dtmf plugin moved from bad to good in 1.2
@@ -21,7 +24,18 @@ RDEPEND="
        >=dev-libs/glib-2.34.3:2[${MULTILIB_USEDEP}]
        >=media-libs/gst-plugins-base-1.2:${SLOT}[${MULTILIB_USEDEP}]
        >=media-libs/gstreamer-1.2:${SLOT}[${MULTILIB_USEDEP}]
-       egl? ( >=media-libs/mesa-9.1.6[egl,${MULTILIB_USEDEP}] )
+       egl? (
+               rpi? ( media-libs/raspberrypi-userland )
+               !rpi? ( >=media-libs/mesa-9.1.6[egl,${MULTILIB_USEDEP}] )
+               wayland? (
+                       !rpi? ( media-libs/mesa[egl,wayland] )
+                       rpi? ( media-libs/raspberrypi-userland )
+               )
+       )
+       gles2? (
+               rpi? ( media-libs/raspberrypi-userland )
+               !rpi? ( >=media-libs/mesa-9.1.6[egl,${MULTILIB_USEDEP}] )
+       )
        introspection? ( >=dev-libs/gobject-introspection-1.31.1 )
        orc? ( >=dev-lang/orc-0.4.17[${MULTILIB_USEDEP}] )
 
@@ -31,6 +45,14 @@ DEPEND="${RDEPEND}
        >=dev-util/gtk-doc-am-1.12
 "
 
+src_prepare() {
+       # Make RPI egl stuff use pkg-config and related fixups - 
https://bugzilla.gnome.org/733248
+       epatch "${FILESDIR}"/egl-rpi-pkgconfig.patch
+       epatch "${FILESDIR}"/egl-gl_cflags.patch
+       epatch "${FILESDIR}"/gl_typechecks_cflags.patch
+       eautoreconf
+}
+
 src_configure() {
        strip-flags
        replace-flags "-O3" "-O2"
@@ -40,13 +62,33 @@ src_configure() {
 }
 
 multilib_src_configure() {
+       # For glimagesink on X11 we seem to want --enable-egl --enable-dispmanx
+       # For glimagesink on Wayland we seem to want --enable-egl 
--enable-wayland and wayland-egl.pc (on RPi provided by raspberrypi-userland + 
added pkg-config files)
+       # Figure out all the working combinations. e.g without --disable-glx on 
RPi, it could autodetect X11, yet not build the context. See gstglcontext.c
+       local myconf
+       myconf=""
+       if use rpi; then
+               myconf+=" --disable-glx --disable-x11"
+       fi
+       if use egl; then
+               myconf+=" --enable-egl --enable-gl"
+               if use wayland; then
+                       myconf+=" --enable-wayland"
+               else
+                       myconf+=" $(use_enable rpi dispmanx)" # can we enable 
it on wayland too and is it egl dependent?
+               fi
+       else
+               myconf+=" --disable-egl"
+       fi
+
        gstreamer_multilib_src_configure \
                $(multilib_native_use_enable introspection) \
                $(use_enable orc) \
                $(use_enable vnc librfb) \
                --disable-examples \
                --disable-debug \
-               --with-egl-window-system=$(usex egl x11 none)
+               $(use_enable gles2) \
+               ${myconf}
 }
 
 multilib_src_install_all() {

Reply via email to