commit: 06628fd6b1502247251ea52cb9bd55410a6affb0 parent: 88c92dfc6176a26c14621d8bbe66babd4a6dcdf3 Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me> Date: Thu, 1 Oct 2020 03:06:23 +0200 GStreamer: list plugins instead of trying to parse meson_options.txtDiffstat:
M | eclass/gstreamer-meson.eclass | 57 | ++++++++++++++++++++++++++++++++++++--------------------- |
D | media-libs/gst-plugins-bad/gst-plugins-bad-1.18.0-r1.ebuild | 83 | ------------------------------------------------------------------------------- |
A | media-libs/gst-plugins-bad/gst-plugins-bad-1.18.0-r2.ebuild | 78 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
D | media-libs/gst-plugins-base/gst-plugins-base-1.18.0-r0.ebuild | 144 | ------------------------------------------------------------------------------- |
A | media-libs/gst-plugins-base/gst-plugins-base-1.18.0-r2.ebuild | 140 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
D | media-libs/gst-plugins-good/gst-plugins-good-1.18.0-r1.ebuild | 46 | ---------------------------------------------- |
A | media-libs/gst-plugins-good/gst-plugins-good-1.18.0-r2.ebuild | 39 | +++++++++++++++++++++++++++++++++++++++ |
D | media-libs/gst-plugins-ugly/gst-plugins-ugly-1.18.0-r1.ebuild | 33 | --------------------------------- |
A | media-libs/gst-plugins-ugly/gst-plugins-ugly-1.18.0-r2.ebuild | 29 | +++++++++++++++++++++++++++++ |
9 files changed, 322 insertions(+), 327 deletions(-)
diff --git a/eclass/gstreamer-meson.eclass b/eclass/gstreamer-meson.eclass @@ -38,12 +38,38 @@ case "${EAPI:-0}" in ;; esac -# @ECLASS-VARIABLE: GST_PLUGINS_BUILD +# @ECLASS-VARIABLE: GST_PLUGINS_ENABLED # @DESCRIPTION: # Defines the plugins to be built. # May be set by an ebuild and contain more than one indentifier, space # seperated (only src_configure can handle mutiple plugins at this time). -: ${GST_PLUGINS_BUILD:=${PN/gst-plugins-/}} +: ${GST_PLUGINS_ENABLED:=${PN/gst-plugins-/}} + +# @ECLASS-VARIABLE: GST_PLUGINS_DISABLED +# @DESCRIPTION: +# Defines the plugins to not be built, GST_PLUGINS_ENABLED overrides it. +# May be set by an ebuild and contain more than one indentifier, space +# seperated (only src_configure can handle mutiple plugins at this time). +case "${GST_ORG_MODULE}" in + # copied GST_PLUGINS_DISABLED from media-libs/${GST_ORG_MODULE} then added GST_PLUGINS_ENABLED + gst-plugins-bad) + # removed from list: shm ipcpipeline gl + GST_PLUGINS_DISABLED="aom avtp androidmedia applemedia assrender bluez bs2b bz2 chromaprint closedcaption colormanagement curl curl-ssh2 d3dvideosink d3d11 dash dc1394 decklink directfb directsound dtls dts dvb faac faad fbdev fdkaac flite fluidsynth gme gsm iqa kate kms ladspa libde265 libmms lv2 mediafoundation microdns modplug mpeg2enc mplex msdk musepack neon nvcodec ofa openal openexr openh264 openjpeg openmpt openni2 opensles opus resindvd rsvg rtmp sbc sctp smoothstreaming sndfile soundtouch spandsp srt srtp svthevcenc teletext tinyalsa transcode ttml uvch264 va voaacenc voamrwbenc vulkan wasapi wasapi2 webp webrtc webrtcdsp wildmidi winks winscreencap x265 zbar zxing wpe magicleap v4l2codecs hls" + GST_PLUGINS_DISABLED="${GST_PLUGINS_DISABLED} accurip adpcmdec adpcmenc aiff asfmux audiobuffersplit audiofxbad audiolatency audiomixmatrix audiovisualizers autoconvert bayer camerabin2 coloreffects deb ugutils dvbsubenc dvbsuboverlay dvdspu faceoverlay festival fieldanalysis freeverb frei0r gaudieffects gdp geometrictransform id3tag inter interlace ivfpars e ivtc jp2kdecimator jpegformat librfb midi mpegdemux mpegpsmux mpegtsdemux mpegtsmux mxf netsim onvif pcapparse pnm proxy rawparse removesilence rist rtmp2 rtp sdp segmentclip siren smooth speed subenc switchbin timecode videofilters videoframe_audiolevel videoparsers videosignal vmnc y4m" + ;; + gst-plugins-base) + GST_PLUGINS_DISABLED="cdparanoia libvisual opus tremor" + GST_PLUGINS_DISABLED="${GST_PLUGINS_DISABLED} adder app audioconvert audiomixer audiorate audioresample audiotestsrc compositor encoding gio gio-typefinder overlaycomposition pbtypes playback rawparse subparse tcp typefind videoconvert videorate videoscale videotestsrc volume" + ;; + gst-plugins-good) + GST_PLUGINS_DISABLED="aalib cairo directsound dv dv1394 flac gdk-pixbuf gtk3 jack jpeg lame libcaca mpg123 oss oss4 osxaudio osxvideo png pulse qt5 shout2 soup speex taglib twolame vpx waveform wavpack" + GST_PLUGINS_DISABLED="${GST_PLUGINS_DISABLED} alpha apetag audiofx audioparsers auparse autodetect avi cutter debugutils deinterlace dtmf effectv equalizer flv flx goom goom2k1 icydemux id3demux imagefreeze interleave isomp4 law level matroska monoscope multifile multipart replaygain rtp rtpmanager rtsp shapewipe smpte spectrum udp videobox videocrop videofilter videomixer wavenc wavparse y4m" + ;; + gst-plugins-ugly) + GST_PLUGINS_DISABLED="a52dec amrnb amrwbdec cdio dvdread mpeg2dec sidplay x264" + GST_PLUGINS_DISABLED="${GST_PLUGINS_DISABLED} asfdemux dvdlpcmdec dvdsub realmedia xingmux" + ;; +esac # @ECLASS-VARIABLE: GST_PLUGINS_BUILD_DIR # @DESCRIPTION: @@ -84,7 +110,6 @@ SRC_URI="https://gstreamer.freedesktop.org/src/${GST_ORG_MODULE}/${GST_ORG_MODUL LICENSE="GPL-2" case ${GST_ORG_PVP} in - 0.10) SLOT="0.10"; GST_MIN_PV="0.10.36-r2" ;; 1.*) SLOT="1.0"; GST_MIN_PV="1.2.4-r1" ;; *) die "Unkown gstreamer release." esac @@ -133,16 +158,6 @@ gstreamer_environment_reset() { xdg_environment_reset } -# @FUNCTION: gstreamer_get_plugins -# @INTERNAL -# @DESCRIPTION: -# Get the list of plugins requiring external dependencies. -gstreamer_get_plugins() { - # Must be called from src_prepare/src_configure - GST_PLUGINS_LIST=$(sed -rn "s/^option\('(\w+)',\stype\s:\s'feature'.*/ \1 /p" \ - "${EMESON_SOURCE:-${S}}"/meson_options.txt) -} - # @FUNCTION: gstreamer_get_plugin_dir # @USAGE: gstreamer_get_plugin_dir [<build_dir>] # @INTERNAL @@ -171,15 +186,15 @@ gstreamer_get_plugin_dir() { gstreamer_multilib_src_configure() { local plugin emesonargs=() EMESON_SOURCE=${EMESON_SOURCE:-${S}} - gstreamer_get_plugins gstreamer_environment_reset - for plugin in ${GST_PLUGINS_LIST} ; do - if has ${plugin} ${GST_PLUGINS_BUILD} ; then - emesonargs+=( -D${plugin}=enabled ) - else - emesonargs+=( -D${plugin}=disabled ) - fi + # app-editor/vis regex for meson_options.txt: :x/option\('([^']*)'.*/ c/\1/ + for plugin in ${GST_PLUGINS_DISABLED} ; do + emesonargs+=( -D${plugin}=disabled ) + done + + for plugin in ${GST_PLUGINS_ENABLED} ; do + emesonargs+=( -D${plugin}=enabled ) done if grep -q "option(\'orc\'" "${EMESON_SOURCE}"/meson_options.txt ; then @@ -202,7 +217,7 @@ gstreamer_multilib_src_configure() { emesonargs+=( $(meson_feature nls) ) fi - einfo "Configuring to build ${GST_PLUGINS_BUILD} plugin(s) ..." + einfo "Configuring to build ${GST_PLUGINS_ENABLED} plugin(s) ..." emesonargs+=( -Dexamples=disabled -Dpackage-name="Gentoo GStreamer ebuild" diff --git a/media-libs/gst-plugins-bad/gst-plugins-bad-1.18.0-r1.ebuild b/media-libs/gst-plugins-bad/gst-plugins-bad-1.18.0-r1.ebuild @@ -1,83 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -GST_ORG_MODULE="gst-plugins-bad" - -# List done from editing meson_options.txt in app-editors/vis -# - Get only the ones with no-external deps (nicely in their own block) -# - :x/option\('([^']*)'.*/ c/\1/ -# - Press J -GST_PLUGINS_BUILD="accurip adpcmdec adpcmenc aiff asfmux audiobuffersplit audiofxbad audiolatency audiomixmatrix audiovisualizers autoconvert bayer camerabin2 coloreffects deb ugutils dvbsubenc dvbsuboverlay dvdspu faceoverlay festival fieldanalysis freeverb frei0r gaudieffects gdp geometrictransform id3tag inter interlace ivfpars e ivtc jp2kdecimator jpegformat librfb midi mpegdemux mpegpsmux mpegtsdemux mpegtsmux mxf netsim onvif pcapparse pnm proxy rawparse removesilence rist rtmp2 rtp sdp segmentclip siren smooth speed subenc switchbin timecode videofilters videoframe_audiolevel videoparsers videosignal vmnc y4m" - -inherit flag-o-matic gstreamer-meson virtualx - -DESCRIPTION="Less plugins for GStreamer" -HOMEPAGE="https://gstreamer.freedesktop.org/" - -LICENSE="LGPL-2" - -# TODO: egl and gtk IUSE only for transition -IUSE="X bzip2 +egl gles2 gtk +introspection +opengl +orc vnc wayland" # Keep default IUSE mirrored with gst-plugins-base where relevant - -# X11 is automagic for now, upstream #709530 - only used by librfb USE=vnc plugin -# We mirror opengl/gles2 from -base to ensure no automagic openglmixers plugin (with "opengl?" it'd still get built with USE=-opengl here) -RDEPEND=" - >=dev-libs/glib-2.40.0:2[${MULTILIB_USEDEP}] - >=media-libs/gstreamer-${PV}:${SLOT}[${MULTILIB_USEDEP},introspection?] - >=media-libs/gst-plugins-base-${PV}:${SLOT}[${MULTILIB_USEDEP},egl?,introspection?,gles2=,opengl=] - introspection? ( >=dev-libs/gobject-introspection-1.31.1:= ) - - bzip2? ( >=app-arch/bzip2-1.0.6-r4[${MULTILIB_USEDEP}] ) - vnc? ( X? ( x11-libs/libX11[${MULTILIB_USEDEP}] ) ) - wayland? ( - >=dev-libs/wayland-1.4.0[${MULTILIB_USEDEP}] - >=x11-libs/libdrm-2.4.55[${MULTILIB_USEDEP}] - >=dev-libs/wayland-protocols-1.4 - ) - - gtk? ( >=media-plugins/gst-plugins-gtk-${PV}:${SLOT}[${MULTILIB_USEDEP}] ) - orc? ( >=dev-lang/orc-0.4.17[${MULTILIB_USEDEP}] ) -" - -DEPEND="${RDEPEND} - dev-util/glib-utils - >=dev-util/gtk-doc-am-1.12 -" - -RESTRICT="test" - -src_prepare() { - default - addpredict /dev # Prevent sandbox violations bug #570624 -} - -multilib_src_configure() { - local emesonargs=( - -Dshm=enabled - -Dipcpipeline=enabled - $(meson_feature orc) - $(meson_feature vnc librfb) - $(meson_feature wayland) - ) - - if use opengl || use gles2; then - myconf+=( -Dgl=enabled ) - else - myconf+=( -Dgl=disabled ) - fi - - gstreamer_multilib_src_configure -} - -multilib_src_test() { - unset DISPLAY - # Tests are slower than upstream expects - CK_DEFAULT_TIMEOUT=300 virtx eninja check -} - -multilib_src_install_all() { - DOCS="AUTHORS ChangeLog NEWS README RELEASE" - einstalldocs - find "${ED}" -name '*.la' -delete || die -} diff --git a/media-libs/gst-plugins-bad/gst-plugins-bad-1.18.0-r2.ebuild b/media-libs/gst-plugins-bad/gst-plugins-bad-1.18.0-r2.ebuild @@ -0,0 +1,78 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +GST_ORG_MODULE="gst-plugins-bad" + +GST_PLUGINS_ENABLED="accurip adpcmdec adpcmenc aiff asfmux audiobuffersplit audiofxbad audiolatency audiomixmatrix audiovisualizers autoconvert bayer camerabin2 coloreffects deb ugutils dvbsubenc dvbsuboverlay dvdspu faceoverlay festival fieldanalysis freeverb frei0r gaudieffects gdp geometrictransform id3tag inter interlace ivfpars e ivtc jp2kdecimator jpegformat librfb midi mpegdemux mpegpsmux mpegtsdemux mpegtsmux mxf netsim onvif pcapparse pnm proxy rawparse removesilence rist rtmp2 rtp sdp segmentclip siren smooth speed subenc switchbin timecode videofilters videoframe_audiolevel videoparsers videosignal vmnc y4m" + +inherit flag-o-matic gstreamer-meson virtualx + +DESCRIPTION="Less plugins for GStreamer" +HOMEPAGE="https://gstreamer.freedesktop.org/" + +LICENSE="LGPL-2" + +# TODO: egl and gtk IUSE only for transition +IUSE="X bzip2 +egl gles2 gtk +introspection +opengl +orc vnc wayland" # Keep default IUSE mirrored with gst-plugins-base where relevant + +# X11 is automagic for now, upstream #709530 - only used by librfb USE=vnc plugin +# We mirror opengl/gles2 from -base to ensure no automagic openglmixers plugin (with "opengl?" it'd still get built with USE=-opengl here) +RDEPEND=" + >=dev-libs/glib-2.40.0:2[${MULTILIB_USEDEP}] + >=media-libs/gstreamer-${PV}:${SLOT}[${MULTILIB_USEDEP},introspection?] + >=media-libs/gst-plugins-base-${PV}:${SLOT}[${MULTILIB_USEDEP},egl?,introspection?,gles2=,opengl=] + introspection? ( >=dev-libs/gobject-introspection-1.31.1:= ) + + bzip2? ( >=app-arch/bzip2-1.0.6-r4[${MULTILIB_USEDEP}] ) + vnc? ( X? ( x11-libs/libX11[${MULTILIB_USEDEP}] ) ) + wayland? ( + >=dev-libs/wayland-1.4.0[${MULTILIB_USEDEP}] + >=x11-libs/libdrm-2.4.55[${MULTILIB_USEDEP}] + >=dev-libs/wayland-protocols-1.4 + ) + + gtk? ( >=media-plugins/gst-plugins-gtk-${PV}:${SLOT}[${MULTILIB_USEDEP}] ) + orc? ( >=dev-lang/orc-0.4.17[${MULTILIB_USEDEP}] ) +" + +DEPEND="${RDEPEND} + dev-util/glib-utils + >=dev-util/gtk-doc-am-1.12 +" + +RESTRICT="test" + +src_prepare() { + default + addpredict /dev # Prevent sandbox violations bug #570624 +} + +multilib_src_configure() { + local emesonargs=( + -Dshm=enabled + -Dipcpipeline=enabled + $(meson_feature vnc librfb) + $(meson_feature wayland) + ) + + if use opengl || use gles2; then + myconf+=( -Dgl=enabled ) + else + myconf+=( -Dgl=disabled ) + fi + + gstreamer_multilib_src_configure +} + +multilib_src_test() { + unset DISPLAY + # Tests are slower than upstream expects + CK_DEFAULT_TIMEOUT=300 virtx eninja check +} + +multilib_src_install_all() { + DOCS="AUTHORS ChangeLog NEWS README RELEASE" + einstalldocs + find "${ED}" -name '*.la' -delete || die +} diff --git a/media-libs/gst-plugins-base/gst-plugins-base-1.18.0-r0.ebuild b/media-libs/gst-plugins-base/gst-plugins-base-1.18.0-r0.ebuild @@ -1,144 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -GST_ORG_MODULE="gst-plugins-base" - -inherit flag-o-matic gstreamer-meson - -DESCRIPTION="Basepack of plugins for gstreamer" -HOMEPAGE="https://gstreamer.freedesktop.org/" - -LICENSE="GPL-2+ LGPL-2+" -#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris" - -# For OpenGL we have three separate concepts, with a list of possibilities in each: -# * opengl APIs - opengl and/or gles2; USE=opengl and USE=gles2 enable these accordingly; if neither is enabled, OpenGL helper library and elements are not built at all and all the other options aren't relevant -# * opengl platforms - glx and/or egl; also cgl, wgl, eagl for non-linux; USE="X opengl" enables glx platform; USE="egl" enables egl platform. Rest is up for relevant prefix teams. -# * opengl windowing system - x11, wayland, win32, cocoa, android, viv_fb, gbm and/or dispmanx; USE=X enables x11 (but for WSI it's automagic - FIXME), USE=wayland enables wayland, USE=gbm enables gbm (automagic upstream - FIXME); rest is up for relevant prefix/arch teams/contributors to test and provide patches -# With the following limitations: -# * If opengl and/or gles2 is enabled, a platform has to be enabled - x11 or egl in our case, but x11 (glx) is acceptable only with opengl -# * If opengl and/or gles2 is enabled, a windowing system has to be enabled - x11, wayland or gbm in our case -# * glx platform requires opengl API -# * wayland, gbm and most other non-glx WSIs require egl platform -# Additionally there is optional dmabuf support with egl for additional dmabuf based upload/download/eglimage options; -# and optional graphene usage for gltransformation and glvideoflip elements and more GLSL Uniforms support in glshader; -# and libpng/jpeg are required for gloverlay element; - -# Keep default IUSE options for relevant ones mirrored with gst-plugins-gtk and gst-plugins-bad -IUSE="alsa +egl gbm gles2 +introspection ivorbis +ogg +opengl +orc +pango theora +vorbis wayland +X" -GL_REQUIRED_USE=" - || ( gbm wayland X ) - wayland? ( egl ) - gbm? ( egl ) -" -REQUIRED_USE=" - ivorbis? ( ogg ) - theora? ( ogg ) - vorbis? ( ogg ) - opengl? ( || ( egl X ) ${GL_REQUIRED_USE} ) - gles2? ( egl ${GL_REQUIRED_USE} ) -" - -# Dependencies needed by opengl library and plugin (enabled via USE gles2 and/or opengl) -# dmabuf automagic from libdrm headers (drm_fourcc.h) and EGL, so ensure it with USE=egl (platform independent header used only, thus no MULTILIB_USEDEP); provides dmabuf based upload/download/eglimage options -GL_DEPS=" - >=media-libs/mesa-9.0[egl?,gbm?,gles2?,wayland?,${MULTILIB_USEDEP}] - egl? ( - x11-libs/libdrm - ) - gbm? ( - >=dev-libs/libgudev-147[${MULTILIB_USEDEP}] - >=x11-libs/libdrm-2.4.55[${MULTILIB_USEDEP}] - ) - wayland? ( - dev-libs/wayland[${MULTILIB_USEDEP}] - ) - - media-libs/libpng:0[${MULTILIB_USEDEP}] - virtual/jpeg:0[${MULTILIB_USEDEP}] -" # graphene for optional gltransformation and glvideoflip elements and more GLSL Uniforms support in glshader; libpng/jpeg for gloverlay element -# >=media-libs/graphene-1.4.0[${MULTILIB_USEDEP}] - -RDEPEND=" - app-text/iso-codes - >=dev-libs/glib-2.40.0:2[${MULTILIB_USEDEP}] - >=media-libs/gstreamer-${PV}:1.0[introspection?,${MULTILIB_USEDEP}] - >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] - alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] ) - introspection? ( >=dev-libs/gobject-introspection-1.31.1:= ) - ivorbis? ( >=media-libs/tremor-0_pre20130223[${MULTILIB_USEDEP}] ) - ogg? ( >=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}] ) - orc? ( >=dev-lang/orc-0.4.24[${MULTILIB_USEDEP}] ) - pango? ( >=x11-libs/pango-1.36.3[${MULTILIB_USEDEP}] ) - theora? ( >=media-libs/libtheora-1.1.1[encode,${MULTILIB_USEDEP}] ) - vorbis? ( >=media-libs/libvorbis-1.3.3-r1[${MULTILIB_USEDEP}] ) - X? ( - >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}] - >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}] - >=x11-libs/libXv-1.0.10[${MULTILIB_USEDEP}] - ) - - gles2? ( ${GL_DEPS} ) - opengl? ( ${GL_DEPS} ) - - !<media-libs/gst-plugins-bad-1.15.0:1.0 -" -DEPEND="${RDEPEND} - dev-util/glib-utils - >=dev-util/gtk-doc-am-1.12 - X? ( x11-base/xorg-proto ) -" - -DOCS="AUTHORS NEWS README RELEASE" - -multilib_src_configure() { - filter-flags -mno-sse -mno-sse2 -mno-sse4.1 #610340 - - gstreamer_environment_reset - - # opus: split to media-plugins/gst-plugins-opus - local emesonargs=( - -Dexamples=disabled - -Dpackage-name="Gentoo GStreamer ebuild" - -Dpackage-origin="https://www.gentoo.org" - -Dopus=disabled - - $(meson_feature alsa) - $(meson_feature ogg) - $(meson_feature orc) - $(meson_feature pango) - $(meson_feature theora) - $(meson_feature vorbis) - $(meson_feature X x11) - $(meson_feature X xshm) - $(meson_feature X xvideo) - ) - - if use opengl || use gles2; then - # because meson doesn't likes extraneous commas - local gl_platform=( $(use X && echo glx) $(use egl && echo egl) ) - local gl_winsys=( - $(use X && echo x11) - $(use wayland && echo wayland) - $(use egl && echo egl) - $(use gbm && echo gbm) - ) - - emesonargs+=( - -Dgl=enabled - -Dgl_api=opengl$(use gles2 && echo ,gles2) - -Dgl_platform=$(IFS=, ; echo "${gl_platform[*]}") - -Dgl_winsys=$(IFS=, ; echo "${gl_winsys[*]}") - ) - else - emesonargs+=( - -Dgl=disabled - -Dgl_api= - -Dgl_platform= - -Dgl_winsys= - ) - fi - - meson_src_configure -} diff --git a/media-libs/gst-plugins-base/gst-plugins-base-1.18.0-r2.ebuild b/media-libs/gst-plugins-base/gst-plugins-base-1.18.0-r2.ebuild @@ -0,0 +1,140 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +GST_ORG_MODULE="gst-plugins-base" +GST_PLUGINS_ENABLED="adder app audioconvert audiomixer audiorate audioresample audiotestsrc compositor encoding gio gio-typefinder overlaycomposition pbtypes playback rawparse subparse tcp typefind videoconvert videorate videoscale videotestsrc volume" + +inherit flag-o-matic gstreamer-meson + +DESCRIPTION="Basepack of plugins for gstreamer" +HOMEPAGE="https://gstreamer.freedesktop.org/" + +LICENSE="GPL-2+ LGPL-2+" +#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris" + +# For OpenGL we have three separate concepts, with a list of possibilities in each: +# * opengl APIs - opengl and/or gles2; USE=opengl and USE=gles2 enable these accordingly; if neither is enabled, OpenGL helper library and elements are not built at all and all the other options aren't relevant +# * opengl platforms - glx and/or egl; also cgl, wgl, eagl for non-linux; USE="X opengl" enables glx platform; USE="egl" enables egl platform. Rest is up for relevant prefix teams. +# * opengl windowing system - x11, wayland, win32, cocoa, android, viv_fb, gbm and/or dispmanx; USE=X enables x11 (but for WSI it's automagic - FIXME), USE=wayland enables wayland, USE=gbm enables gbm (automagic upstream - FIXME); rest is up for relevant prefix/arch teams/contributors to test and provide patches +# With the following limitations: +# * If opengl and/or gles2 is enabled, a platform has to be enabled - x11 or egl in our case, but x11 (glx) is acceptable only with opengl +# * If opengl and/or gles2 is enabled, a windowing system has to be enabled - x11, wayland or gbm in our case +# * glx platform requires opengl API +# * wayland, gbm and most other non-glx WSIs require egl platform +# Additionally there is optional dmabuf support with egl for additional dmabuf based upload/download/eglimage options; +# and optional graphene usage for gltransformation and glvideoflip elements and more GLSL Uniforms support in glshader; +# and libpng/jpeg are required for gloverlay element; + +# Keep default IUSE options for relevant ones mirrored with gst-plugins-gtk and gst-plugins-bad +IUSE="alsa +egl gbm gles2 +introspection ivorbis +ogg +opengl +orc +pango theora +vorbis wayland +X" +GL_REQUIRED_USE=" + || ( gbm wayland X ) + wayland? ( egl ) + gbm? ( egl ) +" +REQUIRED_USE=" + ivorbis? ( ogg ) + theora? ( ogg ) + vorbis? ( ogg ) + opengl? ( || ( egl X ) ${GL_REQUIRED_USE} ) + gles2? ( egl ${GL_REQUIRED_USE} ) +" + +# Dependencies needed by opengl library and plugin (enabled via USE gles2 and/or opengl) +# dmabuf automagic from libdrm headers (drm_fourcc.h) and EGL, so ensure it with USE=egl (platform independent header used only, thus no MULTILIB_USEDEP); provides dmabuf based upload/download/eglimage options +GL_DEPS=" + >=media-libs/mesa-9.0[egl?,gbm?,gles2?,wayland?,${MULTILIB_USEDEP}] + egl? ( + x11-libs/libdrm + ) + gbm? ( + >=dev-libs/libgudev-147[${MULTILIB_USEDEP}] + >=x11-libs/libdrm-2.4.55[${MULTILIB_USEDEP}] + ) + wayland? ( + dev-libs/wayland[${MULTILIB_USEDEP}] + ) + + media-libs/libpng:0[${MULTILIB_USEDEP}] + virtual/jpeg:0[${MULTILIB_USEDEP}] +" # graphene for optional gltransformation and glvideoflip elements and more GLSL Uniforms support in glshader; libpng/jpeg for gloverlay element +# >=media-libs/graphene-1.4.0[${MULTILIB_USEDEP}] + +RDEPEND=" + app-text/iso-codes + >=dev-libs/glib-2.40.0:2[${MULTILIB_USEDEP}] + >=media-libs/gstreamer-${PV}:1.0[introspection?,${MULTILIB_USEDEP}] + >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] + alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] ) + introspection? ( >=dev-libs/gobject-introspection-1.31.1:= ) + ivorbis? ( >=media-libs/tremor-0_pre20130223[${MULTILIB_USEDEP}] ) + ogg? ( >=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}] ) + orc? ( >=dev-lang/orc-0.4.24[${MULTILIB_USEDEP}] ) + pango? ( >=x11-libs/pango-1.36.3[${MULTILIB_USEDEP}] ) + theora? ( >=media-libs/libtheora-1.1.1[encode,${MULTILIB_USEDEP}] ) + vorbis? ( >=media-libs/libvorbis-1.3.3-r1[${MULTILIB_USEDEP}] ) + X? ( + >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}] + >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}] + >=x11-libs/libXv-1.0.10[${MULTILIB_USEDEP}] + ) + + gles2? ( ${GL_DEPS} ) + opengl? ( ${GL_DEPS} ) + + !<media-libs/gst-plugins-bad-1.15.0:1.0 +" +DEPEND="${RDEPEND} + dev-util/glib-utils + >=dev-util/gtk-doc-am-1.12 + X? ( x11-base/xorg-proto ) +" + +DOCS="AUTHORS NEWS README RELEASE" + +multilib_src_configure() { + filter-flags -mno-sse -mno-sse2 -mno-sse4.1 #610340 + + # opus: split to media-plugins/gst-plugins-opus + local emesonargs=( + -Dtools=enabled + + $(meson_feature alsa) + $(meson_feature ogg) + $(meson_feature orc) + $(meson_feature pango) + $(meson_feature theora) + $(meson_feature vorbis) + $(meson_feature X x11) + $(meson_feature X xshm) + $(meson_feature X xvideo) + ) + + if use opengl || use gles2; then + # because meson doesn't likes extraneous commas + local gl_platform=( $(use X && echo glx) $(use egl && echo egl) ) + local gl_winsys=( + $(use X && echo x11) + $(use wayland && echo wayland) + $(use egl && echo egl) + $(use gbm && echo gbm) + ) + + emesonargs+=( + -Dgl=enabled + -Dgl_api=opengl$(use gles2 && echo ,gles2) + -Dgl_platform=$(IFS=, ; echo "${gl_platform[*]}") + -Dgl_winsys=$(IFS=, ; echo "${gl_winsys[*]}") + ) + else + emesonargs+=( + -Dgl=disabled + -Dgl_api= + -Dgl_platform= + -Dgl_winsys= + ) + fi + + gstreamer_multilib_src_configure +} diff --git a/media-libs/gst-plugins-good/gst-plugins-good-1.18.0-r1.ebuild b/media-libs/gst-plugins-good/gst-plugins-good-1.18.0-r1.ebuild @@ -1,46 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -GST_ORG_MODULE="gst-plugins-good" - -# List done from editing meson_options.txt in app-editors/vis -# - Get only the ones with no-external deps (nicely in their own block) -# - :x/option\('([^']*)'.*/ c/\1/ -# - Press J -GST_PLUGINS_BUILD="alpha apetag audiofx audioparsers auparse autodetect avi cutter debugutils deinterlace dtmf effectv equalizer flv flx goom goom2k1 icydemux id3demux imagefreeze interleave isomp4 law level matroska monoscope multifile multipart replaygain rtp rtpmanager rtsp shapewipe smpte spectrum udp videobox videocrop videofilter videomixer wavenc wavparse y4m" - -inherit flag-o-matic gstreamer-meson - -DESCRIPTION="Basepack of plugins for GStreamer" -HOMEPAGE="https://gstreamer.freedesktop.org/" - -LICENSE="LGPL-2.1+" -KEYWORDS="alpha amd64 ~arm arm64 ~hppa ia64 ~mips ppc ppc64 ~sh ~sparc x86" -IUSE="+orc" - -RDEPEND=" - >=dev-libs/glib-2.40.0:2[${MULTILIB_USEDEP}] - >=media-libs/gst-plugins-base-${PV}:${SLOT}[${MULTILIB_USEDEP}] - >=media-libs/gstreamer-${PV}:${SLOT}[${MULTILIB_USEDEP}] - >=app-arch/bzip2-1.0.6-r4[${MULTILIB_USEDEP}] - >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] - orc? ( >=dev-lang/orc-0.4.17[${MULTILIB_USEDEP}] ) -" -DEPEND="${RDEPEND} - >=dev-util/gtk-doc-am-1.12 -" - -multilib_src_configure() { - local emesonargs=( - -Dbz2=enabled - ) - - gstreamer_multilib_src_configure -} - -multilib_src_install_all() { - DOCS="AUTHORS ChangeLog NEWS README RELEASE" - einstalldocs - find "${ED}" -name '*.la' -delete || die -} diff --git a/media-libs/gst-plugins-good/gst-plugins-good-1.18.0-r2.ebuild b/media-libs/gst-plugins-good/gst-plugins-good-1.18.0-r2.ebuild @@ -0,0 +1,39 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +GST_ORG_MODULE="gst-plugins-good" +GST_PLUGINS_ENABLED="alpha apetag audiofx audioparsers auparse autodetect avi cutter debugutils deinterlace dtmf effectv equalizer flv flx goom goom2k1 icydemux id3demux imagefreeze interleave isomp4 law level matroska monoscope multifile multipart replaygain rtp rtpmanager rtsp shapewipe smpte spectrum udp videobox videocrop videofilter videomixer wavenc wavparse y4m" + +inherit flag-o-matic gstreamer-meson + +DESCRIPTION="Basepack of plugins for GStreamer" +HOMEPAGE="https://gstreamer.freedesktop.org/" + +LICENSE="LGPL-2.1+" +#KEYWORDS="alpha amd64 ~arm arm64 ~hppa ia64 ~mips ppc ppc64 ~sh ~sparc x86" +IUSE="+orc" + +RDEPEND=" + >=dev-libs/glib-2.40.0:2[${MULTILIB_USEDEP}] + >=media-libs/gst-plugins-base-${PV}:${SLOT}[${MULTILIB_USEDEP}] + >=media-libs/gstreamer-${PV}:${SLOT}[${MULTILIB_USEDEP}] + >=app-arch/bzip2-1.0.6-r4[${MULTILIB_USEDEP}] + >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] + orc? ( >=dev-lang/orc-0.4.17[${MULTILIB_USEDEP}] ) +" +DEPEND="${RDEPEND} + >=dev-util/gtk-doc-am-1.12 +" + +multilib_src_configure() { + local emesonargs=( -Dbz2=enabled ) + + gstreamer_multilib_src_configure +} + +multilib_src_install_all() { + DOCS="AUTHORS ChangeLog NEWS README RELEASE" + einstalldocs + find "${ED}" -name '*.la' -delete || die +} diff --git a/media-libs/gst-plugins-ugly/gst-plugins-ugly-1.18.0-r1.ebuild b/media-libs/gst-plugins-ugly/gst-plugins-ugly-1.18.0-r1.ebuild @@ -1,33 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -GST_ORG_MODULE="gst-plugins-ugly" - -# List done from editing meson_options.txt in app-editors/vis -# - Get only the ones with no-external deps (nicely in their own block) -# - :x/option\('([^']*)'.*/ c/\1/ -# - Press J -GST_PLUGINS_BUILD="asfdemux dvdlpcmdec dvdsub realmedia xingmux" - -inherit gstreamer-meson - -DESCRIPTION="Basepack of plugins for gstreamer" -HOMEPAGE="https://gstreamer.freedesktop.org/" - -LICENSE="LGPL-2+" # some split plugins are LGPL but combining with a GPL library - -RDEPEND=" - >=dev-libs/glib-2.40.0:2[${MULTILIB_USEDEP}] - >=media-libs/gstreamer-${PV}:${SLOT}[${MULTILIB_USEDEP}] - >=media-libs/gst-plugins-base-${PV}:${SLOT}[${MULTILIB_USEDEP}] -" -DEPEND="${RDEPEND} - >=dev-util/gtk-doc-am-1.12 -" - -multilib_src_install_all() { - DOCS="AUTHORS ChangeLog NEWS README RELEASE" - einstalldocs - find "${ED}" -name '*.la' -delete || die -} diff --git a/media-libs/gst-plugins-ugly/gst-plugins-ugly-1.18.0-r2.ebuild b/media-libs/gst-plugins-ugly/gst-plugins-ugly-1.18.0-r2.ebuild @@ -0,0 +1,29 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +GST_ORG_MODULE="gst-plugins-ugly" + +GST_PLUGINS_ENABLED="asfdemux dvdlpcmdec dvdsub realmedia xingmux" + +inherit gstreamer-meson + +DESCRIPTION="Basepack of plugins for gstreamer" +HOMEPAGE="https://gstreamer.freedesktop.org/" + +LICENSE="LGPL-2+" # some split plugins are LGPL but combining with a GPL library + +RDEPEND=" + >=dev-libs/glib-2.40.0:2[${MULTILIB_USEDEP}] + >=media-libs/gstreamer-${PV}:${SLOT}[${MULTILIB_USEDEP}] + >=media-libs/gst-plugins-base-${PV}:${SLOT}[${MULTILIB_USEDEP}] +" +DEPEND="${RDEPEND} + >=dev-util/gtk-doc-am-1.12 +" + +multilib_src_install_all() { + DOCS="AUTHORS ChangeLog NEWS README RELEASE" + einstalldocs + find "${ED}" -name '*.la' -delete || die +}