[gnome-build-meta/abderrahim/remove-gstreamer: 3/4] use gstreamer from freedesktop-sdk, and rebuild the same version of the plugins



commit d7bc585ed606e1cc45e32fd4512a8e42d908076b
Author: Abderrahim Kitouni <akitouni gnome org>
Date:   Wed Nov 7 10:28:19 2018 +0100

    use gstreamer from freedesktop-sdk, and rebuild the same version of the plugins
    
    Fixes #97

 elements/core-deps/gnome-video-effects.bst         |   3 +-
 elements/core-deps/gupnp-dlna.bst                  |   3 +-
 elements/core-deps/tracker-miners.bst              |   3 +-
 elements/core/cheese.bst                           |   3 +-
 elements/core/gnome-contacts.bst                   |   3 +-
 elements/core/gnome-control-center.bst             |   3 +-
 elements/core/gnome-initial-setup.bst              |   3 +-
 elements/core/gnome-shell.bst                      |   3 +-
 elements/core/sushi.bst                            |   3 +-
 elements/core/totem.bst                            |   3 +-
 elements/sdk-platform.bst                          |   3 +-
 elements/sdk/clutter-gst.bst                       |   3 +-
 elements/sdk/cogl.bst                              |   3 +-
 elements/sdk/gst-libav.bst                         |  34 ++++--
 elements/sdk/gst-plugins-bad.bst                   | 114 +++++++++------------
 elements/sdk/gst-plugins-base.bst                  |  57 +++++++----
 elements/sdk/gst-plugins-good.bst                  |  43 ++++----
 elements/sdk/gstreamer.bst                         |  23 -----
 elements/sdk/gtk+.bst                              |   3 +-
 elements/world/evolution.bst                       |   3 +-
 elements/world/gnome-internet-radio-locator.bst    |   3 +-
 elements/world/gnome-sound-recorder.bst            |   3 +-
 ...v-avmux-Place-pva-case-after-generic-case.patch |  63 ++++++++++++
 .../gst-libav-decoders-fix-draining.patch          |  90 ++++++++++++++++
 files/gst-libav/gst-libav-disable-1.15-api.patch   |  20 ++++
 .../gst-libav/gst-libav-drop-1.15-dependency.patch |  15 +++
 .../gst-libav/gst-libav-stop-caching-codecs.patch  |  46 +++++++++
 project.conf                                       |   1 +
 28 files changed, 404 insertions(+), 153 deletions(-)
---
diff --git a/elements/core-deps/gnome-video-effects.bst b/elements/core-deps/gnome-video-effects.bst
index 0215bce..1eb246d 100644
--- a/elements/core-deps/gnome-video-effects.bst
+++ b/elements/core-deps/gnome-video-effects.bst
@@ -5,7 +5,8 @@ sources:
   track: master
 depends:
 - sdk/gnome-common.bst
-- sdk/gstreamer.bst
+- filename: desktop/gstreamer.bst
+  junction: freedesktop-sdk.bst
 - filename: base/intltool.bst
   junction: freedesktop-sdk.bst
   type: build
diff --git a/elements/core-deps/gupnp-dlna.bst b/elements/core-deps/gupnp-dlna.bst
index f503c39..228314d 100644
--- a/elements/core-deps/gupnp-dlna.bst
+++ b/elements/core-deps/gupnp-dlna.bst
@@ -7,11 +7,12 @@ depends:
 - sdk/glib.bst
 - sdk/gst-plugins-base.bst
 - sdk/gst-plugins-good.bst
-- sdk/gstreamer.bst
 - filename: sdk/gtk-doc.bst
   type: build
 - filename: sdk/vala.bst
   type: build
+- filename: desktop/gstreamer.bst
+  junction: freedesktop-sdk.bst
 - filename: base/buildsystem-autotools.bst
   junction: freedesktop-sdk.bst
   type: build
diff --git a/elements/core-deps/tracker-miners.bst b/elements/core-deps/tracker-miners.bst
index eeab6d7..d1b9598 100644
--- a/elements/core-deps/tracker-miners.bst
+++ b/elements/core-deps/tracker-miners.bst
@@ -14,8 +14,9 @@ depends:
 - sdk/gdk-pixbuf.bst
 - sdk/glib.bst
 - sdk/gst-plugins-base.bst
-- sdk/gstreamer.bst
 - sdk/libsecret.bst
+- filename: desktop/gstreamer.bst
+  junction: freedesktop-sdk.bst
 - filename: desktop/libseccomp.bst
   junction: freedesktop-sdk.bst
 - filename: base/intltool.bst
diff --git a/elements/core/cheese.bst b/elements/core/cheese.bst
index 9267052..4cdb4ff 100644
--- a/elements/core/cheese.bst
+++ b/elements/core/cheese.bst
@@ -15,7 +15,6 @@ depends:
 - sdk/gst-plugins-bad.bst
 - sdk/gst-plugins-base.bst
 - sdk/gst-plugins-good.bst
-- sdk/gstreamer.bst
 - sdk/gtk+-3.bst
 - filename: sdk/gtk-doc.bst
   type: build
@@ -23,6 +22,8 @@ depends:
 - sdk/librsvg.bst
 - filename: sdk/vala.bst
   type: build
+- filename: desktop/gstreamer.bst
+  junction: freedesktop-sdk.bst
 - filename: base/intltool.bst
   junction: freedesktop-sdk.bst
   type: build
diff --git a/elements/core/gnome-contacts.bst b/elements/core/gnome-contacts.bst
index ce362c8..834cc4e 100644
--- a/elements/core/gnome-contacts.bst
+++ b/elements/core/gnome-contacts.bst
@@ -12,9 +12,10 @@ depends:
 - core/gnome-desktop.bst
 - sdk/adwaita-icon-theme.bst
 - sdk/glib.bst
-- sdk/gstreamer.bst
 - sdk/gtk+-3.bst
 - sdk/vala.bst
+- filename: desktop/gstreamer.bst
+  junction: freedesktop-sdk.bst
 - filename: base/buildsystem-meson.bst
   junction: freedesktop-sdk.bst
   type: build
diff --git a/elements/core/gnome-control-center.bst b/elements/core/gnome-control-center.bst
index 8a72aa4..fec88c1 100644
--- a/elements/core/gnome-control-center.bst
+++ b/elements/core/gnome-control-center.bst
@@ -36,11 +36,12 @@ depends:
 - sdk/gdk-pixbuf.bst
 - sdk/glib.bst
 - sdk/gsettings-desktop-schemas.bst
-- sdk/gstreamer.bst
 - sdk/gtk+-3.bst
 - filename: sdk/gtk-doc.bst
   type: build
 - sdk/ibus.bst
+- filename: desktop/gstreamer.bst
+  junction: freedesktop-sdk.bst
 - filename: base/buildsystem-meson.bst
   junction: freedesktop-sdk.bst
   type: build
diff --git a/elements/core/gnome-initial-setup.bst b/elements/core/gnome-initial-setup.bst
index 821459e..262bb8c 100644
--- a/elements/core/gnome-initial-setup.bst
+++ b/elements/core/gnome-initial-setup.bst
@@ -19,9 +19,10 @@ depends:
 - sdk/adwaita-icon-theme.bst
 - sdk/geoclue.bst
 - sdk/glib.bst
-- sdk/gstreamer.bst
 - sdk/gtk+-3.bst
 - sdk/ibus.bst
+- filename: desktop/gstreamer.bst
+  junction: freedesktop-sdk.bst
 - filename: base/buildsystem-meson.bst
   junction: freedesktop-sdk.bst
   type: build
diff --git a/elements/core/gnome-shell.bst b/elements/core/gnome-shell.bst
index 040a912..5e50b3f 100644
--- a/elements/core/gnome-shell.bst
+++ b/elements/core/gnome-shell.bst
@@ -27,10 +27,11 @@ depends:
 - sdk/glib.bst
 - sdk/gobject-introspection.bst
 - sdk/gst-plugins-base.bst
-- sdk/gstreamer.bst
 - sdk/gtk+-3.bst
 - sdk/libcroco.bst
 - sdk/libsoup.bst
+- filename: desktop/gstreamer.bst
+  junction: freedesktop-sdk.bst
 - filename: base/docbook-xsl.bst
   junction: freedesktop-sdk.bst
   type: build
diff --git a/elements/core/sushi.bst b/elements/core/sushi.bst
index e963b8b..4981f92 100644
--- a/elements/core/sushi.bst
+++ b/elements/core/sushi.bst
@@ -14,8 +14,9 @@ depends:
 - sdk/gjs.bst
 - sdk/gobject-introspection.bst
 - sdk/gst-plugins-base.bst
-- sdk/gstreamer.bst
 - sdk/gtk+-3.bst
+- filename: desktop/gstreamer.bst
+  junction: freedesktop-sdk.bst
 - filename: base/buildsystem-meson.bst
   junction: freedesktop-sdk.bst
   type: build
diff --git a/elements/core/totem.bst b/elements/core/totem.bst
index 9ae7ae6..acf7311 100644
--- a/elements/core/totem.bst
+++ b/elements/core/totem.bst
@@ -24,9 +24,10 @@ depends:
 - sdk/gst-plugins-bad.bst
 - sdk/gst-plugins-base.bst
 - sdk/gst-plugins-good.bst
-- sdk/gstreamer.bst
 - sdk/gtk+-3.bst
 - sdk/yelp-tools.bst
+- filename: desktop/gstreamer.bst
+  junction: freedesktop-sdk.bst
 - filename: base/intltool.bst
   junction: freedesktop-sdk.bst
   type: build
diff --git a/elements/sdk-platform.bst b/elements/sdk-platform.bst
index d71457f..21ee484 100644
--- a/elements/sdk-platform.bst
+++ b/elements/sdk-platform.bst
@@ -31,7 +31,6 @@ depends:
 - sdk/gst-plugins-bad.bst
 - sdk/gst-plugins-base.bst
 - sdk/gst-plugins-good.bst
-- sdk/gstreamer.bst
 - sdk/gtk+.bst
 - sdk/gtk+-3.bst
 - sdk/gvfs.bst
@@ -105,6 +104,8 @@ depends:
   junction: freedesktop-sdk.bst
 - filename: desktop/graphite2.bst
   junction: freedesktop-sdk.bst
+- filename: desktop/gstreamer.bst
+  junction: freedesktop-sdk.bst
 - filename: desktop/harfbuzz.bst
   junction: freedesktop-sdk.bst
 - filename: desktop/hicolor-icon-theme.bst
diff --git a/elements/sdk/clutter-gst.bst b/elements/sdk/clutter-gst.bst
index 11df417..6a8599f 100644
--- a/elements/sdk/clutter-gst.bst
+++ b/elements/sdk/clutter-gst.bst
@@ -8,9 +8,10 @@ depends:
 - sdk/cogl.bst
 - sdk/gobject-introspection.bst
 - sdk/gst-plugins-base.bst
-- sdk/gstreamer.bst
 - filename: sdk/gtk-doc.bst
   type: build
+- filename: desktop/gstreamer.bst
+  junction: freedesktop-sdk.bst
 - filename: base/buildsystem-autotools.bst
   junction: freedesktop-sdk.bst
   type: build
diff --git a/elements/sdk/cogl.bst b/elements/sdk/cogl.bst
index 57a95cd..161c915 100644
--- a/elements/sdk/cogl.bst
+++ b/elements/sdk/cogl.bst
@@ -7,10 +7,11 @@ depends:
 - sdk/glib.bst
 - sdk/gobject-introspection.bst
 - sdk/gst-plugins-base.bst
-- sdk/gstreamer.bst
 - filename: sdk/gtk-doc.bst
   type: build
 - sdk/pango.bst
+- filename: desktop/gstreamer.bst
+  junction: freedesktop-sdk.bst
 - filename: desktop/wayland.bst
   junction: freedesktop-sdk.bst
 - filename: base/buildsystem-autotools.bst
diff --git a/elements/sdk/gst-libav.bst b/elements/sdk/gst-libav.bst
index b973fd7..3434283 100644
--- a/elements/sdk/gst-libav.bst
+++ b/elements/sdk/gst-libav.bst
@@ -1,20 +1,38 @@
 kind: autotools
 sources:
-- kind: git
-  url: git_freedesktop_org:gstreamer/gst-libav
-  track: master
-  submodules:
-    common:
-      checkout: True
-      url: git_freedesktop_org:gstreamer/common
+- kind: tar
+  # Snapshot used by debian so we can use their patches
+  url: 
https://deb.debian.org/debian/pool/main/g/gst-libav1.0/gst-libav1.0_1.15.0.1+git20180723+db823502.orig.tar.xz
+- kind: patch
+  path: files/gst-libav/gst-libav-stop-caching-codecs.patch
+- kind: patch
+  path: files/gst-libav/gst-libav-disable-1.15-api.patch
+- kind: patch
+  path: files/gst-libav/gst-libav-drop-1.15-dependency.patch
+- kind: patch
+  path: files/gst-libav/gst-libav-avmux-Place-pva-case-after-generic-case.patch
+- kind: patch
+  path: files/gst-libav/gst-libav-decoders-fix-draining.patch
 depends:
 - sdk/gst-plugins-base.bst
+- filename: desktop/orc.bst
+  junction: freedesktop-sdk.bst
+- filename: desktop/gstreamer.bst
+  junction: freedesktop-sdk.bst
 - filename: desktop/ffmpeg.bst
   junction: freedesktop-sdk.bst
+  type: build
+- filename: base/nasm.bst
+  junction: freedesktop-sdk.bst
+  type: build
 - filename: base/buildsystem-autotools.bst
   junction: freedesktop-sdk.bst
   type: build
 - filename: base-platform.bst
   junction: freedesktop-sdk.bst
 variables:
-  conf-local: --with-system-libav
+  conf-local: |
+    --with-system-libav
+  autogen: NOCONFIGURE=1 ./autogen.sh
+environment:
+  GST_CFLAGS: -DTRIPLET=\"%{gcc_triplet}\"
diff --git a/elements/sdk/gst-plugins-bad.bst b/elements/sdk/gst-plugins-bad.bst
index 2467667..310776c 100644
--- a/elements/sdk/gst-plugins-bad.bst
+++ b/elements/sdk/gst-plugins-bad.bst
@@ -1,83 +1,63 @@
-kind: meson
+kind: autotools
 sources:
-- kind: git
-  url: git_freedesktop_org:gstreamer/gst-plugins-bad
-  track: master
+- kind: tar
+  url: gstreamer:gst-plugins-bad/gst-plugins-bad-1.14.4.tar.xz
 depends:
+- filename: sdk/gobject-introspection.bst
+  type: build
 - sdk/gst-plugins-base.bst
 - sdk/librsvg.bst
-- filename: desktop/vulkan.bst
+- filename: desktop/orc.bst
+  junction: freedesktop-sdk.bst
+- filename: desktop/gstreamer.bst
+  junction: freedesktop-sdk.bst
+- filename: desktop/libdrm.bst
   junction: freedesktop-sdk.bst
 - filename: desktop/libfdk-aac.bst
   junction: freedesktop-sdk.bst
+- filename: desktop/libglvnd.bst
+  junction: freedesktop-sdk.bst
+- filename: desktop/libvdpau.bst
+  junction: freedesktop-sdk.bst
+- filename: desktop/mesa.bst
+  junction: freedesktop-sdk.bst
 - filename: desktop/openal.bst
   junction: freedesktop-sdk.bst
-- filename: base/opus.bst
+- filename: desktop/vulkan.bst
   junction: freedesktop-sdk.bst
-- filename: base/sndfile.bst
+- filename: desktop/wayland.bst
   junction: freedesktop-sdk.bst
-- filename: base/buildsystem-meson.bst
+- filename: desktop/wayland-protocols.bst
+  junction: freedesktop-sdk.bst
+  type: build
+- filename: base/buildsystem-autotools.bst
   junction: freedesktop-sdk.bst
   type: build
 - filename: base-platform.bst
   junction: freedesktop-sdk.bst
 variables:
-  meson-local: >
-    -Daom=disabled
-    -Dassrender=disabled
-    -Dbluez=disabled
-    -Dbs2b=disabled
-    -Dchromaprint=disabled
-    -Dcurl-ssh2=disabled
-    -Ddc1394=disabled
-    -Ddirectfb=disabled
-    -Ddts=disabled
-    -Dfaac=disabled
-    -Dfaad=disabled
-    -Dflite=disabled
-    -Dfluidsynth=disabled
-    -Dgme=disabled
-    -Dgsm=disabled
-    -Diqa=disabled
-    -Dkate=disabled
-    -Dladspa=disabled
-    -Dlibde265=disabled
-    -Dlibmms=disabled
-    -Dlv2=disabled
-    -Dmodplug=disabled
-    -Dmpeg2enc=disabled
-    -Dmplex=disabled
-    -Dmsdk=disabled
-    -Dmusepack=disabled
-    -Dneon=disabled
-    -Dnvdec=disabled
-    -Dnvenc=disabled
-    -Dofa=disabled
-    -Dopencv=disabled
-    -Dopenexr=disabled
-    -Dopenh264=disabled
-    -Dopenjpeg=disabled
-    -Dopenmpt=disabled
-    -Dopenni2=disabled
-    -Dopensles=disabled
-    -Dresindvd=disabled
-    -Drtmp=disabled
-    -Dsbc=disabled
-    -Dsctp=disabled
-    -Dsoundtouch=disabled
-    -Dspandsp=disabled
-    -Dsrt=disabled
-    -Dsrtp=disabled
-    -Dteletext=disabled
-    -Dtinyalsa=disabled
-    -Duvch264=disabled
-    -Dvdpau=disabled
-    -Dvoaacenc=disabled
-    -Dvoamrwbenc=disabled
-    -Dwasapi=disabled
-    -Dwebrtc=disabled
-    -Dwebrtcdsp=disabled
-    -Dwildmidi=disabled
-    -Dwpe=disabled
-    -Dx265=disabled
-    -Dzbar=disabled
+  conf-local: |
+    --enable-experimental \
+    --enable-introspection \
+    --enable-orc \
+    --enable-wayland
+public:
+  bst:
+    split-rules:
+      devel:
+        (>):
+        - '%{libdir}/libgstbadallocators-1.0.so'
+        - '%{libdir}/libgstbadbase-1.0.so'
+        - '%{libdir}/libgstcodecparsers-1.0.so'
+        - '%{libdir}/libgstplayer-1.0.so'
+        - '%{libdir}/libgstbadvideo-1.0.so'
+        - '%{libdir}/libgstbadaudio-1.0.so'
+        - '%{libdir}/libgstmpegts-1.0.so'
+        - '%{libdir}/libgstadaptivedemux-1.0.so'
+        - '%{libdir}/libgstinsertbin-1.0.so'
+        - '%{libdir}/libgsturidownloader-1.0.so'
+        - '%{libdir}/libgstbasecamerabinsrc-1.0.so'
+        - '%{libdir}/libgstphotography-1.0.so'
+        - '%{libdir}/libgstisoff-1.0.so'
+        - '%{libdir}/libgstwebrtc-1.0.so'
+        - '%{libdir}/libgstwayland-1.0.so'
diff --git a/elements/sdk/gst-plugins-base.bst b/elements/sdk/gst-plugins-base.bst
index 7fd5e23..0f69d42 100644
--- a/elements/sdk/gst-plugins-base.bst
+++ b/elements/sdk/gst-plugins-base.bst
@@ -1,32 +1,51 @@
-kind: meson
+kind: autotools
 sources:
-- kind: git
-  url: git_freedesktop_org:gstreamer/gst-plugins-base
-  track: master
+- kind: tar
+  url: gstreamer:gst-plugins-base/gst-plugins-base-1.14.4.tar.xz
 depends:
-- sdk/gobject-introspection.bst
-- sdk/gstreamer.bst
-- sdk/gtk+-3.bst
-- sdk/pango.bst
-- filename: sdk/gtk-doc.bst
+- filename: sdk/gobject-introspection.bst
   type: build
-- filename: desktop/alsa-lib.bst
-  junction: freedesktop-sdk.bst
+- sdk/pango.bst
 - filename: desktop/orc.bst
   junction: freedesktop-sdk.bst
+- filename: desktop/gstreamer.bst
+  junction: freedesktop-sdk.bst
+- filename: desktop/mesa.bst
+  junction: freedesktop-sdk.bst
 - filename: desktop/xorg-lib-xv.bst
   junction: freedesktop-sdk.bst
-- filename: base/opus.bst
+- filename: base/buildsystem-autotools.bst
   junction: freedesktop-sdk.bst
-- filename: base/buildsystem-meson.bst
+  type: build
+- filename: base/gettext.bst
   junction: freedesktop-sdk.bst
   type: build
 - filename: base-platform.bst
   junction: freedesktop-sdk.bst
 variables:
-  meson-local: >
-    -Dcdparanoia=disabled
-    -Dexamples=disabled
-    -Dgl-graphene=disabled
-    -Dlibvisual=disabled
-    -Dtremor=disabled
+  conf-local: |
+    --enable-experimental \
+    --enable-introspection \
+    --enable-ogg \
+    --enable-opus \
+    --enable-orc \
+    --enable-pango \
+    --enable-theora \
+    --enable-vorbis
+public:
+  bst:
+    split-rules:
+      devel:
+        (>):
+        - '%{libdir}/libgstfft-1.0.so'
+        - '%{libdir}/libgstrtp-1.0.so'
+        - '%{libdir}/libgstsdp-1.0.so'
+        - '%{libdir}/libgstvideo-1.0.so'
+        - '%{libdir}/libgstapp-1.0.so'
+        - '%{libdir}/libgstriff-1.0.so'
+        - '%{libdir}/libgstrtsp-1.0.so'
+        - '%{libdir}/libgstallocators-1.0.so'
+        - '%{libdir}/libgsttag-1.0.so'
+        - '%{libdir}/libgstaudio-1.0.so'
+        - '%{libdir}/libgstpbutils-1.0.so'
+        - '%{libdir}/libgstgl-1.0.so'
diff --git a/elements/sdk/gst-plugins-good.bst b/elements/sdk/gst-plugins-good.bst
index 656554a..34f4775 100644
--- a/elements/sdk/gst-plugins-good.bst
+++ b/elements/sdk/gst-plugins-good.bst
@@ -1,36 +1,41 @@
-kind: meson
+kind: autotools
 sources:
-- kind: git
-  url: git_freedesktop_org:gstreamer/gst-plugins-good
-  track: master
+- kind: tar
+  url: gstreamer:gst-plugins-good/gst-plugins-good-1.14.4.tar.xz
 depends:
-- sdk/gtk+-3.bst
+- filename: sdk/gobject-introspection.bst
+  type: build
 - sdk/gdk-pixbuf.bst
 - sdk/gst-plugins-base.bst
+- sdk/gtk+-3.bst
 - sdk/libsoup.bst
+- filename: desktop/cairo.bst
+  junction: freedesktop-sdk.bst
+- filename: desktop/orc.bst
+  junction: freedesktop-sdk.bst
 - filename: desktop/lame.bst
   junction: freedesktop-sdk.bst
 - filename: desktop/libpulse.bst
   junction: freedesktop-sdk.bst
 - filename: desktop/mpg123.bst
   junction: freedesktop-sdk.bst
-- filename: base/wavpack.bst
+- filename: desktop/gstreamer.bst
   junction: freedesktop-sdk.bst
-- filename: base/buildsystem-meson.bst
+- filename: base/buildsystem-autotools.bst
   junction: freedesktop-sdk.bst
   type: build
+# should be in base-platform
+- filename: base/wavpack.bst
+  junction: freedesktop-sdk.bst
 - filename: base-platform.bst
   junction: freedesktop-sdk.bst
 variables:
-  meson-local: >
-    -Daalib=disabled
-    -Ddv1394=disabled
-    -Ddv=disabled
-    -Dexamples=disabled
-    -Djack=disabled
-    -Dlibcaca=disabled
-    -Dqt5=disabled
-    -Dshout2=disabled
-    -Dtaglib=disabled
-    -Dtwolame=disabled
-    -Dv4l2=disabled
+  conf-local: |
+    --enable-cairo \
+    --enable-experimental \
+    --enable-introspection \
+    --enable-lame \
+    --enable-soup \
+    --enable-orc \
+    --enable-pulse \
+    --with-default-visualizer=autoaudiosink
diff --git a/elements/sdk/gtk+.bst b/elements/sdk/gtk+.bst
index 67f9dd0..bdbef25 100644
--- a/elements/sdk/gtk+.bst
+++ b/elements/sdk/gtk+.bst
@@ -12,12 +12,13 @@ depends:
 - sdk/graphene.bst
 - sdk/gst-plugins-bad.bst
 - sdk/gst-plugins-base.bst
-- sdk/gstreamer.bst
 - filename: sdk/gtk-doc.bst
   type: build
 - sdk/pango.bst
 - filename: desktop/cups.bst
   junction: freedesktop-sdk.bst
+- filename: desktop/gstreamer.bst
+  junction: freedesktop-sdk.bst
 - filename: desktop/wayland.bst
   junction: freedesktop-sdk.bst
 - filename: base/buildsystem-meson.bst
diff --git a/elements/world/evolution.bst b/elements/world/evolution.bst
index fa53fa4..488b565 100644
--- a/elements/world/evolution.bst
+++ b/elements/world/evolution.bst
@@ -18,11 +18,12 @@ depends:
 - sdk/geoclue.bst
 - sdk/glib.bst
 - sdk/gsettings-desktop-schemas.bst
-- sdk/gstreamer.bst
 - sdk/gtk+-3.bst
 - sdk/libnotify.bst
 - sdk/libsoup.bst
 - sdk/yelp-tools.bst
+- filename: desktop/gstreamer.bst
+  junction: freedesktop-sdk.bst
 - filename: base.bst
   junction: freedesktop-sdk.bst
 variables:
diff --git a/elements/world/gnome-internet-radio-locator.bst b/elements/world/gnome-internet-radio-locator.bst
index 83c75ac..89f7566 100644
--- a/elements/world/gnome-internet-radio-locator.bst
+++ b/elements/world/gnome-internet-radio-locator.bst
@@ -14,8 +14,9 @@ depends:
 - sdk/gst-plugins-bad.bst
 - sdk/gst-plugins-base.bst
 - sdk/gst-plugins-good.bst
-- sdk/gstreamer.bst
 - sdk/gtk+-3.bst
 - sdk/pango.bst
+- filename: desktop/gstreamer.bst
+  junction: freedesktop-sdk.bst
 - filename: base.bst
   junction: freedesktop-sdk.bst
diff --git a/elements/world/gnome-sound-recorder.bst b/elements/world/gnome-sound-recorder.bst
index e2ed55d..1fb5a0c 100644
--- a/elements/world/gnome-sound-recorder.bst
+++ b/elements/world/gnome-sound-recorder.bst
@@ -9,7 +9,8 @@ depends:
 - sdk/glib.bst
 - sdk/gst-plugins-base.bst
 - sdk/gst-plugins-good.bst
-- sdk/gstreamer.bst
 - sdk/gtk+-3.bst
+- filename: desktop/gstreamer.bst
+  junction: freedesktop-sdk.bst
 - filename: base.bst
   junction: freedesktop-sdk.bst
diff --git a/files/gst-libav/gst-libav-avmux-Place-pva-case-after-generic-case.patch 
b/files/gst-libav/gst-libav-avmux-Place-pva-case-after-generic-case.patch
new file mode 100644
index 0000000..c19878c
--- /dev/null
+++ b/files/gst-libav/gst-libav-avmux-Place-pva-case-after-generic-case.patch
@@ -0,0 +1,63 @@
+From 962d2a78fe28bb1fee6cd9259170d9f2ac2ce884 Mon Sep 17 00:00:00 2001
+From: Georg Ottinger <g ottinger gmx at>
+Date: Tue, 3 Jul 2018 13:15:54 +0200
+Subject: [PATCH] avmux: Place pva case after generic case
+
+In the function gst_ffmpeg_formatid_get_codecids() in the if / else if
+construct the special case !strcmp (format_name, "pva") should be
+handled before the generic case (plugin->audio_codec !=
+AV_CODEC_ID_NONE) || (plugin->video_codec != AV_CODEC_ID_NONE)
+This patch fixes the ordering.
+
+I stumbled accorss this issue while adding a new format to
+gst_ffmpeg_formatid_get_codecids()
+
+https://bugzilla.gnome.org/show_bug.cgi?id=796738
+---
+ ext/libav/gstavcodecmap.c | 22 +++++++++++-----------
+ 1 file changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/ext/libav/gstavcodecmap.c b/ext/libav/gstavcodecmap.c
+index 19fef71..be95828 100644
+--- a/ext/libav/gstavcodecmap.c
++++ b/ext/libav/gstavcodecmap.c
+@@ -3770,25 +3770,25 @@ gst_ffmpeg_formatid_get_codecids (const gchar * format_name,
+     };
+     *video_codec_list = gif_image_list;
+     *audio_codec_list = NULL;
+-  } else if ((plugin->audio_codec != AV_CODEC_ID_NONE) ||
+-      (plugin->video_codec != AV_CODEC_ID_NONE)) {
+-    tmp_vlist[0] = plugin->video_codec;
+-    tmp_alist[0] = plugin->audio_codec;
+-
+-    *video_codec_list = tmp_vlist;
+-    *audio_codec_list = tmp_alist;
+   } else if ((!strcmp (format_name, "pva"))) {
+-    static enum AVCodecID tgp_video_list[] = {
++    static enum AVCodecID pga_video_list[] = {
+       AV_CODEC_ID_MPEG2VIDEO,
+       AV_CODEC_ID_NONE
+     };
+-    static enum AVCodecID tgp_audio_list[] = {
++    static enum AVCodecID pga_audio_list[] = {
+       AV_CODEC_ID_MP2,
+       AV_CODEC_ID_NONE
+     };
+ 
+-    *video_codec_list = tgp_video_list;
+-    *audio_codec_list = tgp_audio_list;
++    *video_codec_list = pga_video_list;
++    *audio_codec_list = pga_audio_list;
++  } else if ((plugin->audio_codec != AV_CODEC_ID_NONE) ||
++      (plugin->video_codec != AV_CODEC_ID_NONE)) {
++    tmp_vlist[0] = plugin->video_codec;
++    tmp_alist[0] = plugin->audio_codec;
++
++    *video_codec_list = tmp_vlist;
++    *audio_codec_list = tmp_alist;
+   } else {
+     GST_LOG ("Format %s not found", format_name);
+     return FALSE;
+-- 
+2.19.0.rc2
+
diff --git a/files/gst-libav/gst-libav-decoders-fix-draining.patch 
b/files/gst-libav/gst-libav-decoders-fix-draining.patch
new file mode 100644
index 0000000..2f06868
--- /dev/null
+++ b/files/gst-libav/gst-libav-decoders-fix-draining.patch
@@ -0,0 +1,90 @@
+From ff3a8f6627811c95c51acf7a07c62b78bb02d0a0 Mon Sep 17 00:00:00 2001
+From: Mathieu Duponchelle <mathieu centricular com>
+Date: Tue, 31 Jul 2018 18:35:22 +0200
+Subject: [PATCH] decoders: fix draining
+
+https://bugzilla.gnome.org/show_bug.cgi?id=796900
+---
+ ext/libav/gstavauddec.c | 11 ++++++++---
+ ext/libav/gstavviddec.c | 14 +++++++++++---
+ 2 files changed, 19 insertions(+), 6 deletions(-)
+
+diff --git a/ext/libav/gstavauddec.c b/ext/libav/gstavauddec.c
+index dbec03c..fa2786c 100644
+--- a/ext/libav/gstavauddec.c
++++ b/ext/libav/gstavauddec.c
+@@ -539,10 +539,9 @@ gst_ffmpegauddec_audio_frame (GstFFMpegAudDec * ffmpegdec,
+       GST_BUFFER_FLAG_SET (*outbuf, GST_BUFFER_FLAG_CORRUPTED);
+   } else if (res == AVERROR (EAGAIN)) {
+     *outbuf = NULL;
+-  } else if (res == AVERROR_EOF) {      /* Should not happen */
++  } else if (res == AVERROR_EOF) {
+     *ret = GST_FLOW_EOS;
+-    GST_WARNING_OBJECT (ffmpegdec,
+-        "Tried to receive frame on a flushed context");
++    GST_DEBUG_OBJECT (ffmpegdec, "Context was entirely flushed");
+   } else if (res < 0) {
+     *ret = GST_FLOW_OK;
+     GST_WARNING_OBJECT (ffmpegdec, "Legitimate decoding error");
+@@ -611,6 +610,9 @@ gst_ffmpegauddec_drain (GstFFMpegAudDec * ffmpegdec)
+     GST_LOG_OBJECT (ffmpegdec,
+         "codec has delay capabilities, calling until libav has drained everything");
+ 
++    if (avcodec_send_packet (ffmpegdec->context, NULL))
++      goto send_packet_failed;
++
+     do {
+       GstFlowReturn ret;
+ 
+@@ -623,6 +625,9 @@ gst_ffmpegauddec_drain (GstFFMpegAudDec * ffmpegdec)
+     gst_audio_decoder_finish_frame (GST_AUDIO_DECODER (ffmpegdec),
+         ffmpegdec->outbuf, 1);
+   ffmpegdec->outbuf = NULL;
++
++send_packet_failed:
++  GST_WARNING_OBJECT (ffmpegdec, "send packet failed, could not drain decoder");
+ }
+ 
+ static void
+diff --git a/ext/libav/gstavviddec.c b/ext/libav/gstavviddec.c
+index 40ad991..de23954 100644
+--- a/ext/libav/gstavviddec.c
++++ b/ext/libav/gstavviddec.c
+@@ -1488,10 +1488,9 @@ gst_ffmpegviddec_video_frame (GstFFMpegVidDec * ffmpegdec,
+   /* No frames available at this time */
+   if (res == AVERROR (EAGAIN))
+     goto beach;
+-  else if (res == AVERROR_EOF) {        /* Should not happen */
++  else if (res == AVERROR_EOF) {
+     *ret = GST_FLOW_EOS;
+-    GST_WARNING_OBJECT (ffmpegdec,
+-        "Tried to receive frame on a flushed context");
++    GST_DEBUG_OBJECT (ffmpegdec, "Context was entirely flushed");
+     goto beach;
+   } else if (res < 0) {
+     *ret = GST_FLOW_OK;
+@@ -1721,12 +1720,21 @@ gst_ffmpegviddec_drain (GstVideoDecoder * decoder)
+     GST_LOG_OBJECT (ffmpegdec,
+         "codec has delay capabilities, calling until ffmpeg has drained everything");
+ 
++    if (avcodec_send_packet (ffmpegdec->context, NULL))
++      goto send_packet_failed;
++
+     do {
+       got_frame = gst_ffmpegviddec_frame (ffmpegdec, NULL, &ret);
+     } while (got_frame && ret == GST_FLOW_OK);
++    avcodec_flush_buffers (ffmpegdec->context);
+   }
+ 
++done:
+   return GST_FLOW_OK;
++
++send_packet_failed:
++  GST_WARNING_OBJECT (ffmpegdec, "send packet failed, could not drain decoder");
++  goto done;
+ }
+ 
+ static GstFlowReturn
+-- 
+2.19.0.rc2
+
diff --git a/files/gst-libav/gst-libav-disable-1.15-api.patch 
b/files/gst-libav/gst-libav-disable-1.15-api.patch
new file mode 100644
index 0000000..8dd22e5
--- /dev/null
+++ b/files/gst-libav/gst-libav-disable-1.15-api.patch
@@ -0,0 +1,20 @@
+Index: gst-libav1.0/ext/libav/gstavviddec.c
+===================================================================
+--- gst-libav1.0.orig/ext/libav/gstavviddec.c
++++ gst-libav1.0/ext/libav/gstavviddec.c
+@@ -1595,6 +1595,7 @@ gst_ffmpegviddec_video_frame (GstFFMpegV
+           GST_VIDEO_BUFFER_FLAG_INTERLACED);
+   }
+ 
++#if 0
+   {
+     AVFrameSideData *side_data =
+         av_frame_get_side_data (ffmpegdec->picture, AV_FRAME_DATA_A53_CC);
+@@ -1607,6 +1608,7 @@ gst_ffmpegviddec_video_frame (GstFFMpegV
+           GST_VIDEO_CAPTION_TYPE_CEA708_RAW, side_data->data, side_data->size);
+     }
+   }
++#endif
+ 
+   /* cleaning time */
+   /* so we decoded this frame, frames preceding it in decoding order
diff --git a/files/gst-libav/gst-libav-drop-1.15-dependency.patch 
b/files/gst-libav/gst-libav-drop-1.15-dependency.patch
new file mode 100644
index 0000000..a0279b3
--- /dev/null
+++ b/files/gst-libav/gst-libav-drop-1.15-dependency.patch
@@ -0,0 +1,15 @@
+Index: gst-libav1.0/configure.ac
+===================================================================
+--- gst-libav1.0.orig/configure.ac
++++ gst-libav1.0/configure.ac
+@@ -45,8 +45,8 @@ AG_GST_LIBTOOL_PREPARE
+ AS_LIBTOOL(GST, 1500, 0, 1500)
+ 
+ dnl *** required versions of GStreamer stuff ***
+-GST_REQ=1.15.0.1
+-GST_PBREQ=1.15.0.1
++GST_REQ=1.14.2
++GST_PBREQ=1.14.2
+ 
+ ORC_REQ=0.4.16
+ ORC_CHECK([$ORC_REQ])
diff --git a/files/gst-libav/gst-libav-stop-caching-codecs.patch 
b/files/gst-libav/gst-libav-stop-caching-codecs.patch
new file mode 100644
index 0000000..db518c7
--- /dev/null
+++ b/files/gst-libav/gst-libav-stop-caching-codecs.patch
@@ -0,0 +1,46 @@
+From 2c371f17af1695bd42f572d5ccdb837152b8b67a Mon Sep 17 00:00:00 2001
+From: Thomas Coldrick <othko97 gmail com>
+Date: Thu, 8 Nov 2018 17:46:53 +0000
+Subject: [PATCH] gst-libav-stop-caching-codecs
+
+---
+ ext/libav/gstav.c | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+diff --git a/ext/libav/gstav.c b/ext/libav/gstav.c
+index 2a88230..bfd19a1 100644
+--- a/ext/libav/gstav.c
++++ b/ext/libav/gstav.c
+@@ -138,6 +138,8 @@ gst_ffmpeg_log_callback (void *ptr, int level, const char *fmt, va_list vl)
+ static gboolean
+ plugin_init (GstPlugin * plugin)
+ {
++  char libdir[30];
++  char path[100];
+   GST_DEBUG_CATEGORY_INIT (ffmpeg_debug, "libav", 0, "libav elements");
+ 
+   /* Bail if not FFmpeg. We can no longer ensure operation with Libav */
+@@ -155,6 +157,20 @@ plugin_init (GstPlugin * plugin)
+   /* build global ffmpeg param/property info */
+   gst_ffmpeg_cfg_init ();
+ 
++  strcpy(libdir, "/usr/lib/");
++  strcat(libdir, TRIPLET);
++  strcpy(path, libdir);
++  strcat(path, ":/usr/local/lib:");
++  strcat(path, libdir);
++  strcat(path, "/ffmpeg/lib");
++
++  gst_plugin_add_dependency_simple (plugin, NULL,
++      path,
++      "libavcodec.so.58,"
++      "libavformat.so.58,"
++      "libswscale.so.5",
++      GST_PLUGIN_DEPENDENCY_FLAG_NONE);
++
+   gst_ffmpegaudenc_register (plugin);
+   gst_ffmpegvidenc_register (plugin);
+   gst_ffmpegauddec_register (plugin);
+-- 
+2.19.1
+
diff --git a/project.conf b/project.conf
index 9e9a7e3..0beb65c 100644
--- a/project.conf
+++ b/project.conf
@@ -49,6 +49,7 @@ aliases:
   gitlab_com: https://gitlab.com/
   gitlab_gnome_org: https://gitlab.gnome.org/
   gnome_download: https://download.gnome.org/
+  gstreamer: https://gstreamer.freedesktop.org/src/
   icon_theme_freedesktop_org: https://icon-theme.freedesktop.org/releases/
   iso_codes: https://pkg-isocodes.alioth.debian.org/downloads/
   people_freedesktop_org: https://people.freedesktop.org/


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]