summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMart Raudsepp <leio@gentoo.org>2014-07-18 04:02:51 +0300
committerMart Raudsepp <leio@gentoo.org>2014-07-18 04:03:38 +0300
commit186199b8c39dd9a6550c792c3840c6a18e168d24 (patch)
tree234ec0d19c1145311c806933cb8e59f2c0d4d149
parentAdd media-libs/clutter with EGL support and optional X (diff)
downloadleio-186199b8c39dd9a6550c792c3840c6a18e168d24.tar.gz
leio-186199b8c39dd9a6550c792c3840c6a18e168d24.tar.bz2
leio-186199b8c39dd9a6550c792c3840c6a18e168d24.zip
Hacks to gst-plugins-bad ebuild to achieve a glimagesink that can play video on dispmanx on RPi
-rw-r--r--media-libs/gst-plugins-bad/gst-plugins-bad-1.3.91.ebuild50
1 files 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() {