Title: [267139] trunk/Tools
Revision
267139
Author
[email protected]
Date
2020-09-16 00:10:23 -0700 (Wed, 16 Sep 2020)

Log Message

[GStreamer] Update Flatpak SDK to 1.18.0
https://bugs.webkit.org/show_bug.cgi?id=216270

Reviewed by Žan Doberšek.

Update to GStreamer 1.18.0, removing the patches now being shipped in this release.

* buildstream/elements/sdk/gst-libav.bst:
* buildstream/elements/sdk/gst-plugins-bad.bst:
* buildstream/elements/sdk/gst-plugins-base.bst:
* buildstream/elements/sdk/gst-plugins-good.bst:
* buildstream/elements/sdk/gst-plugins-ugly.bst:
* buildstream/elements/sdk/gstreamer.bst:
* buildstream/patches/gst-libav-stop-caching-codecs.patch: Removed.
* buildstream/patches/gst-plugins-bad-0001-h264parse-Post-a-WARNING-when-data-is-broken.patch: Removed.
* buildstream/patches/gst-plugins-base-0001-glupload-Fix-fallback-from-direct-dmabuf-to-dmabuf-u.patch: Removed.
* buildstream/patches/gst-plugins-base-0001-oggstream-Workaround-for-broken-PAR-in-VP8-BOS.patch: Removed.
* buildstream/patches/gst-plugins-base-0001-playbin-Handle-error-message-with-redirection-indica.patch: Removed.
* buildstream/patches/gst-plugins-base-0002-glupload-fix-segfault.patch: Removed.
* buildstream/patches/gst-plugins-base-0003-glbasefilter-add-support-for-changing-the-display.patch: Removed.
* buildstream/patches/gst-plugins-good-qtdemux-Specify-REDIRECT-information-in-error-messag.patch: Removed.
* buildstream/patches/libav-0001-gstavviddec-Limit-default-number-of-decoder-threads.patch: Removed.

Modified Paths

Removed Paths

Diff

Modified: trunk/Tools/ChangeLog (267138 => 267139)


--- trunk/Tools/ChangeLog	2020-09-16 07:08:03 UTC (rev 267138)
+++ trunk/Tools/ChangeLog	2020-09-16 07:10:23 UTC (rev 267139)
@@ -1,3 +1,28 @@
+2020-09-16  Philippe Normand  <[email protected]>
+
+        [GStreamer] Update Flatpak SDK to 1.18.0
+        https://bugs.webkit.org/show_bug.cgi?id=216270
+
+        Reviewed by Žan Doberšek.
+
+        Update to GStreamer 1.18.0, removing the patches now being shipped in this release.
+
+        * buildstream/elements/sdk/gst-libav.bst:
+        * buildstream/elements/sdk/gst-plugins-bad.bst:
+        * buildstream/elements/sdk/gst-plugins-base.bst:
+        * buildstream/elements/sdk/gst-plugins-good.bst:
+        * buildstream/elements/sdk/gst-plugins-ugly.bst:
+        * buildstream/elements/sdk/gstreamer.bst:
+        * buildstream/patches/gst-libav-stop-caching-codecs.patch: Removed.
+        * buildstream/patches/gst-plugins-bad-0001-h264parse-Post-a-WARNING-when-data-is-broken.patch: Removed.
+        * buildstream/patches/gst-plugins-base-0001-glupload-Fix-fallback-from-direct-dmabuf-to-dmabuf-u.patch: Removed.
+        * buildstream/patches/gst-plugins-base-0001-oggstream-Workaround-for-broken-PAR-in-VP8-BOS.patch: Removed.
+        * buildstream/patches/gst-plugins-base-0001-playbin-Handle-error-message-with-redirection-indica.patch: Removed.
+        * buildstream/patches/gst-plugins-base-0002-glupload-fix-segfault.patch: Removed.
+        * buildstream/patches/gst-plugins-base-0003-glbasefilter-add-support-for-changing-the-display.patch: Removed.
+        * buildstream/patches/gst-plugins-good-qtdemux-Specify-REDIRECT-information-in-error-messag.patch: Removed.
+        * buildstream/patches/libav-0001-gstavviddec-Limit-default-number-of-decoder-threads.patch: Removed.
+
 2020-09-15  David Kilzer  <[email protected]>
 
         WebKit should support building with clang ThreadSanitizer enabled

Modified: trunk/Tools/buildstream/elements/sdk/gst-libav.bst (267138 => 267139)


--- trunk/Tools/buildstream/elements/sdk/gst-libav.bst	2020-09-16 07:08:03 UTC (rev 267138)
+++ trunk/Tools/buildstream/elements/sdk/gst-libav.bst	2020-09-16 07:10:23 UTC (rev 267139)
@@ -1,13 +1,8 @@
 kind: meson
 sources:
 - kind: tar
-  url: gst_downloads:gst-libav/gst-libav-1.16.2.tar.xz
-  ref: c724f612700c15a933c7356fbeabb0bb9571fb5538f8b1b54d4d2d94188deef2
-- kind: patch
-  path: patches/libav-0001-gstavviddec-Limit-default-number-of-decoder-threads.patch
-- kind: patch
-  path: patches/gst-libav-stop-caching-codecs.patch
-
+  url: gst_downloads:gst-libav/gst-libav-1.18.0.tar.xz
+  ref: 42f93f5ce9a3fc22051e5f783a4574b56ebf213f331f75dcbc3552459bd3a06a
 build-depends:
 - freedesktop-sdk.bst:public-stacks/buildsystem-meson.bst
 - freedesktop-sdk.bst:components/nasm.bst
@@ -18,8 +13,9 @@
 - freedesktop-sdk.bst:bootstrap-import.bst
 
 variables:
-  meson-local: |
-    '-Dc_args=-DTRIPLET=\"%{gcc_triplet}\"'
+  meson-local: >-
+    -Dc_args=-DTRIPLET=\"%{gcc_triplet}\"
+    -Ddoc=disabled
 
 public:
   bst:

Modified: trunk/Tools/buildstream/elements/sdk/gst-plugins-bad.bst (267138 => 267139)


--- trunk/Tools/buildstream/elements/sdk/gst-plugins-bad.bst	2020-09-16 07:08:03 UTC (rev 267138)
+++ trunk/Tools/buildstream/elements/sdk/gst-plugins-bad.bst	2020-09-16 07:10:23 UTC (rev 267139)
@@ -1,11 +1,8 @@
 kind: meson
 sources:
 - kind: tar
-  url: gst_downloads:gst-plugins-bad/gst-plugins-bad-1.16.2.tar.xz
-  ref: f1cb7aa2389569a5343661aae473f0a940a90b872001824bc47fa8072a041e74
-- kind: patch
-  path: patches/gst-plugins-bad-0001-h264parse-Post-a-WARNING-when-data-is-broken.patch
-
+  url: gst_downloads:gst-plugins-bad/gst-plugins-bad-1.18.0.tar.xz
+  ref: f382ab1caddd64aaa7acb7c4787487f63fd39bd0fde9c757655cbaa457c1185f
 build-depends:
 - freedesktop-sdk.bst:public-stacks/buildsystem-meson.bst
 depends:
@@ -40,6 +37,7 @@
     -Dintrospection=disabled
     -Dexamples=disabled
     -Dassrender=disabled
+    -Davtp=disabled
     -Dbluez=disabled
     -Dbs2b=disabled
     -Dchromaprint=disabled
@@ -52,6 +50,7 @@
     -Ddecklink=disabled
     -Ddirectfb=disabled
     -Ddirectsound=disabled
+    -Ddoc=disabled
     -Ddts=disabled
     -Ddvb=disabled
     -Dfaac=disabled
@@ -66,6 +65,8 @@
     -Dlibde265=disabled
     -Dlibmms=disabled
     -Dlv2=disabled
+    -Dmagicleap=disabled
+    -Dmicrodns=disabled
     -Dmodplug=disabled
     -Dmpeg2enc=disabled
     -Dmplex=disabled
@@ -83,7 +84,6 @@
     -Dopenmpt=disabled
     -Dopenni2=disabled
     -Dopensles=disabled
-    -Dopensles=disabled
     -Dresindvd=disabled
     -Drsvg=disabled
     -Drtmp=disabled
@@ -92,9 +92,11 @@
     -Dsoundtouch=disabled
     -Dspandsp=disabled
     -Dsrt=disabled
+    -Dsvthevcenc=disabled
     -Dteletext=disabled
     -Dtinyalsa=disabled
     -Dttml=disabled
+    -Dva=disabled
     -Dvaacenc=disabled
     -Dvdpau=disabled
     -Dvoaacenc=disabled
@@ -101,6 +103,7 @@
     -Dvoamrwbenc=disabled
     -Dvulkan=disabled
     -Dwasapi=disabled
+    -Dwasapi2=disabled
     -Dwebp=disabled
     -Dwebrtcdsp=disabled
     -Dwildmidi=disabled
@@ -109,7 +112,8 @@
     -Dwpe=disabled
     -Dx265=disabled
     -Dzbar=disabled
-    
+    -Dzxing=disabled
+
 public:
   bst:
     split-rules:

Modified: trunk/Tools/buildstream/elements/sdk/gst-plugins-base.bst (267138 => 267139)


--- trunk/Tools/buildstream/elements/sdk/gst-plugins-base.bst	2020-09-16 07:08:03 UTC (rev 267138)
+++ trunk/Tools/buildstream/elements/sdk/gst-plugins-base.bst	2020-09-16 07:10:23 UTC (rev 267139)
@@ -1,19 +1,8 @@
 kind: meson
 sources:
 - kind: tar
-  url: gst_downloads:gst-plugins-base/gst-plugins-base-1.16.2.tar.xz
-  ref: b13e73e2fe74a4166552f9577c3dcb24bed077021b9c7fa600d910ec6987816a
-- kind: patch
-  path: patches/gst-plugins-base-0001-playbin-Handle-error-message-with-redirection-indica.patch
-- kind: patch
-  path: patches/gst-plugins-base-0001-glupload-Fix-fallback-from-direct-dmabuf-to-dmabuf-u.patch
-- kind: patch
-  path: patches/gst-plugins-base-0002-glupload-fix-segfault.patch
-- kind: patch
-  path: patches/gst-plugins-base-0003-glbasefilter-add-support-for-changing-the-display.patch
-- kind: patch
-  path: patches/gst-plugins-base-0001-oggstream-Workaround-for-broken-PAR-in-VP8-BOS.patch
-
+  url: gst_downloads:gst-plugins-base/gst-plugins-base-1.18.0.tar.xz
+  ref: 762abdd1a950809a1cea62fff7f86b5f7d6bd5f6841e3e585c700b823cdb7897
 build-depends:
 - freedesktop-sdk.bst:public-stacks/buildsystem-meson.bst
 depends:
@@ -44,6 +33,7 @@
     -Dtremor=disabled
     -Dexamples=disabled
     -Dgtk_doc=disabled
+    -Ddoc=disabled
     -Dtests=disabled
 
 public:

Modified: trunk/Tools/buildstream/elements/sdk/gst-plugins-good.bst (267138 => 267139)


--- trunk/Tools/buildstream/elements/sdk/gst-plugins-good.bst	2020-09-16 07:08:03 UTC (rev 267138)
+++ trunk/Tools/buildstream/elements/sdk/gst-plugins-good.bst	2020-09-16 07:10:23 UTC (rev 267139)
@@ -1,11 +1,8 @@
 kind: meson
 sources:
 - kind: tar
-  url: gst_downloads:gst-plugins-good/gst-plugins-good-1.16.2.tar.xz
-  ref: 40bb3bafda25c0b739c8fc36e48380fccf61c4d3f83747e97ac3f9b0171b1319
-- kind: patch
-  path: patches/gst-plugins-good-qtdemux-Specify-REDIRECT-information-in-error-messag.patch
-
+  url: gst_downloads:gst-plugins-good/gst-plugins-good-1.18.0.tar.xz
+  ref: 6329bc377a3afea5cf1ab329a91cc4a906f075781780d1edc59e8bea8c1a8bac
 build-depends:
 - freedesktop-sdk.bst:public-stacks/buildsystem-meson.bst
 depends:
@@ -26,6 +23,7 @@
 - freedesktop-sdk.bst:components/libpulse.bst
 - freedesktop-sdk.bst:components/libvpx.bst
 - freedesktop-sdk.bst:components/mpg123.bst
+- freedesktop-sdk.bst:components/nasm.bst
 - freedesktop-sdk.bst:components/orc.bst
 - freedesktop-sdk.bst:components/speex.bst
 - freedesktop-sdk.bst:components/wavpack.bst
@@ -34,11 +32,12 @@
   meson-local: >-
     -Dpackage-origin="webkit-sdk"
     -Daalib=disabled
+    -Ddoc=disabled
     -Djack=disabled
     -Dlibcaca=disabled
     -Ddv=disabled
     -Ddv1394=disabled
-    -Dqt5=disabled
+    -Drpicamsrc=disabled
     -Dshout2=disabled
     -Dtaglib=disabled
     -Dtwolame=disabled

Modified: trunk/Tools/buildstream/elements/sdk/gst-plugins-ugly.bst (267138 => 267139)


--- trunk/Tools/buildstream/elements/sdk/gst-plugins-ugly.bst	2020-09-16 07:08:03 UTC (rev 267138)
+++ trunk/Tools/buildstream/elements/sdk/gst-plugins-ugly.bst	2020-09-16 07:10:23 UTC (rev 267139)
@@ -1,9 +1,8 @@
 kind: meson
 sources:
 - kind: tar
-  url: gst_downloads:gst-plugins-ugly/gst-plugins-ugly-1.16.2.tar.xz
-  ref: 5500415b865e8b62775d4742cbb9f37146a50caecfc0e7a6fc0160d3c560fbca
-
+  url: gst_downloads:gst-plugins-ugly/gst-plugins-ugly-1.18.0.tar.xz
+  ref: 686644e45e08258ae240c4519376668ad8d34ea6d0f6ab556473c317bfb7e082
 build-depends:
 - freedesktop-sdk.bst:public-stacks/buildsystem-meson.bst
 depends:

Modified: trunk/Tools/buildstream/elements/sdk/gstreamer.bst (267138 => 267139)


--- trunk/Tools/buildstream/elements/sdk/gstreamer.bst	2020-09-16 07:08:03 UTC (rev 267138)
+++ trunk/Tools/buildstream/elements/sdk/gstreamer.bst	2020-09-16 07:10:23 UTC (rev 267139)
@@ -1,9 +1,8 @@
 kind: meson
 sources:
 - kind: tar
-  url: gst_downloads:gstreamer/gstreamer-1.16.2.tar.xz
-  ref: e3f044246783fd685439647373fa13ba14f7ab0b346eadd06437092f8419e94e
-
+  url: gst_downloads:gstreamer/gstreamer-1.18.0.tar.xz
+  ref: 0ff09245b06c0aeb5d9a156edcab088a7e8213a0bf9c84a1ff0318f9c00c7805
 build-depends:
 - freedesktop-sdk.bst:components/gobject-introspection.bst
 - freedesktop-sdk.bst:public-stacks/buildsystem-meson.bst
@@ -26,6 +25,7 @@
     -Ddbghelp=disabled
     -Dbash-completion=disabled
     -Dgtk_doc=disabled
+    -Ddoc=disabled
     -Dpackage-origin="webkit-sdk"
 
 public:

Deleted: trunk/Tools/buildstream/patches/gst-libav-stop-caching-codecs.patch (267138 => 267139)


--- trunk/Tools/buildstream/patches/gst-libav-stop-caching-codecs.patch	2020-09-16 07:08:03 UTC (rev 267138)
+++ trunk/Tools/buildstream/patches/gst-libav-stop-caching-codecs.patch	2020-09-16 07:10:23 UTC (rev 267139)
@@ -1,30 +0,0 @@
-From 2c371f17af1695bd42f572d5ccdb837152b8b67a Mon Sep 17 00:00:00 2001
-From: Thomas Coldrick <[email protected]>
-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
-@@ -155,6 +155,13 @@ plugin_init (GstPlugin * plugin)
-   /* build global ffmpeg param/property info */
-   gst_ffmpeg_cfg_init ();
- 
-+  gst_plugin_add_dependency_simple (plugin, NULL,
-+      "/app/lib/" TRIPLET "/ffmpeg:/app/lib/ffmpeg:/usr/lib/" TRIPLET ":/usr/local/lib:/usr/lib/" TRIPLET "/ffmpeg",
-+      "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
-

Deleted: trunk/Tools/buildstream/patches/gst-plugins-bad-0001-h264parse-Post-a-WARNING-when-data-is-broken.patch (267138 => 267139)


--- trunk/Tools/buildstream/patches/gst-plugins-bad-0001-h264parse-Post-a-WARNING-when-data-is-broken.patch	2020-09-16 07:08:03 UTC (rev 267138)
+++ trunk/Tools/buildstream/patches/gst-plugins-bad-0001-h264parse-Post-a-WARNING-when-data-is-broken.patch	2020-09-16 07:10:23 UTC (rev 267139)
@@ -1,25 +0,0 @@
-From 475628c20e548a18c55e6bd8e9c3e3a73cf7192d Mon Sep 17 00:00:00 2001
-From: Thibault Saunier <[email protected]>
-Date: Fri, 31 May 2019 10:12:54 -0400
-Subject: [PATCH] h264parse: Post a WARNING when data is broken
-
----
- gst/videoparsers/gsth264parse.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/gst/videoparsers/gsth264parse.c b/gst/videoparsers/gsth264parse.c
-index 41a31eafa..fa64671de 100644
---- a/gst/videoparsers/gsth264parse.c
-+++ b/gst/videoparsers/gsth264parse.c
-@@ -1313,6 +1313,8 @@ gst_h264_parse_handle_frame (GstBaseParse * parse,
-         /* broken nal at start -> arrange to skip it,
-          * otherwise have it terminate current au
-          * (and so it will be skipped on next frame round) */
-+        GST_ELEMENT_WARNING (h264parse, STREAM, DECODE,
-+            (NULL), ("Broken bit stream"));
-         if (current_off == 0) {
-           GST_DEBUG_OBJECT (h264parse, "skipping broken nal");
-           *skipsize = nalu.offset;
--- 
-2.21.0
-

Deleted: trunk/Tools/buildstream/patches/gst-plugins-base-0001-glupload-Fix-fallback-from-direct-dmabuf-to-dmabuf-u.patch (267138 => 267139)


--- trunk/Tools/buildstream/patches/gst-plugins-base-0001-glupload-Fix-fallback-from-direct-dmabuf-to-dmabuf-u.patch	2020-09-16 07:08:03 UTC (rev 267138)
+++ trunk/Tools/buildstream/patches/gst-plugins-base-0001-glupload-Fix-fallback-from-direct-dmabuf-to-dmabuf-u.patch	2020-09-16 07:10:23 UTC (rev 267139)
@@ -1,175 +0,0 @@
-From 6ceaf111870b31bff922ea35fe943d853e44afa3 Mon Sep 17 00:00:00 2001
-From: Chris Lord <[email protected]>
-Date: Mon, 9 Mar 2020 10:21:53 +0000
-Subject: [PATCH 1/2] glupload: Fix fallback from direct dmabuf to dmabuf
- upload method
-
-In the situation that the direct dmabuf path is chosen, but with an
-unsupported texture format, this causes accept to fail rather than
-continue and fail at the upload stage. It is also possibly necessary to
-reconfigure after falling back from direct to non-direct dmabuf upload
-paths.
----
- gst-libs/gst/gl/egl/gsteglimage.c         | 29 ++++++++++++++-----
- gst-libs/gst/gl/egl/gsteglimage_private.h | 35 +++++++++++++++++++++++
- gst-libs/gst/gl/gstglupload.c             | 17 +++++++++--
- 3 files changed, 72 insertions(+), 9 deletions(-)
- create mode 100644 gst-libs/gst/gl/egl/gsteglimage_private.h
-
-diff --git a/gst-libs/gst/gl/egl/gsteglimage.c b/gst-libs/gst/gl/egl/gsteglimage.c
-index 85fbefa6e..13e204dcd 100644
---- a/gst-libs/gst/gl/egl/gsteglimage.c
-+++ b/gst-libs/gst/gl/egl/gsteglimage.c
-@@ -39,6 +39,7 @@
- #endif
- 
- #include "gsteglimage.h"
-+#include "gsteglimage_private.h"
- 
- #include <string.h>
- 
-@@ -673,8 +674,20 @@ _drm_direct_fourcc_from_info (GstVideoInfo * info)
-   }
- }
- 
--static gboolean
--_gst_egl_image_check_dmabuf_direct (GstGLContext * context, int fourcc)
-+/*
-+ * gst_egl_image_check_dmabuf_direct:
-+ * @context: a #GstGLContext (must be an EGL context)
-+ * @in_info: a #GstVideoInfo
-+ * @target: a #GstGLTextureTarget
-+ *
-+ * Checks whether the video format specified by the given #GstVideoInfo is a
-+ * supported texture format for the given target.
-+ *
-+ * Returns: %TRUE if the format is supported.
-+ */
-+gboolean
-+gst_egl_image_check_dmabuf_direct (GstGLContext * context,
-+    GstVideoInfo * in_info)
- {
-   EGLDisplay egl_display = EGL_DEFAULT_DISPLAY;
-   GstGLDisplayEGL *display_egl;
-@@ -684,6 +697,7 @@ _gst_egl_image_check_dmabuf_direct (GstGLContext * context, int fourcc)
-   EGLBoolean *external_only;
-   int num_modifiers;
-   gboolean ret;
-+  int fourcc;
-   int i;
- 
-   EGLBoolean (*gst_eglQueryDmaBufFormatsEXT) (EGLDisplay dpy,
-@@ -692,6 +706,10 @@ _gst_egl_image_check_dmabuf_direct (GstGLContext * context, int fourcc)
-       int format, int max_modifiers, EGLuint64KHR * modifiers,
-       EGLBoolean * external_only, int *num_modifiers);
- 
-+  fourcc = _drm_direct_fourcc_from_info (in_info);
-+  if (fourcc == -1)
-+    return FALSE;
-+
-   gst_eglQueryDmaBufFormatsEXT =
-       gst_gl_context_get_proc_address (context, "eglQueryDmaBufFormatsEXT");
-   gst_eglQueryDmaBufModifiersEXT =
-@@ -812,13 +830,10 @@ gst_egl_image_from_dmabuf_direct (GstGLContext * context,
-   guintptr attribs[41];         /* 6 + 10 * 3 + 4 + 1 */
-   gint atti = 0;
- 
--  fourcc = _drm_direct_fourcc_from_info (in_info);
--  if (fourcc == -1)
--    return NULL;
--
--  if (!_gst_egl_image_check_dmabuf_direct (context, fourcc))
-+  if (!gst_egl_image_check_dmabuf_direct (context, in_info))
-     return NULL;
- 
-+  fourcc = _drm_direct_fourcc_from_info (in_info);
-   with_modifiers = gst_gl_context_check_feature (context,
-       "EGL_EXT_image_dma_buf_import_with_modifiers");
- 
-diff --git a/gst-libs/gst/gl/egl/gsteglimage_private.h b/gst-libs/gst/gl/egl/gsteglimage_private.h
-new file mode 100644
-index 000000000..8326bdd05
---- /dev/null
-+++ b/gst-libs/gst/gl/egl/gsteglimage_private.h
-@@ -0,0 +1,35 @@
-+/*
-+ * GStreamer
-+ * Copyright (C) 2020 Igalia S.L.
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Library General Public
-+ * License as published by the Free Software Foundation; either
-+ * version 2 of the License, or (at your option) any later version.
-+ *
-+ * This library is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+ * Library General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU Library General Public
-+ * License along with this library; if not, write to the
-+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
-+ * Boston, MA 02110-1301, USA.
-+ */
-+
-+#ifndef _GST_EGL_IMAGE_PRIVATE_H_
-+#define _GST_EGL_IMAGE_PRIVATE_H_
-+
-+#include <gst/gl/gstgl_fwd.h>
-+#include <gst/gl/gstglformat.h>
-+
-+G_BEGIN_DECLS
-+
-+G_GNUC_INTERNAL
-+gboolean                gst_egl_image_check_dmabuf_direct       (GstGLContext * context,
-+                                                                 GstVideoInfo * in_info);
-+
-+G_END_DECLS
-+
-+#endif /* _GST_EGL_IMAGE_PRIVATE_H_ */
-diff --git a/gst-libs/gst/gl/gstglupload.c b/gst-libs/gst/gl/gstglupload.c
-index e3e02ebb7..7d19f683a 100644
---- a/gst-libs/gst/gl/gstglupload.c
-+++ b/gst-libs/gst/gl/gstglupload.c
-@@ -30,6 +30,7 @@
- 
- #if GST_GL_HAVE_PLATFORM_EGL
- #include "egl/gsteglimage.h"
-+#include "egl/gsteglimage_private.h"
- #include "egl/gstglmemoryegl.h"
- #include "egl/gstglcontext_egl.h"
- #endif
-@@ -691,9 +692,12 @@ _dma_buf_upload_accept (gpointer impl, GstBuffer * buffer, GstCaps * in_caps,
-     fd[i] = gst_dmabuf_memory_get_fd (mems[i]);
-   }
- 
--  if (dmabuf->direct)
-+  if (dmabuf->direct) {
-+    /* Check if this format is supported by the driver */
-     dmabuf->n_mem = 1;
--  else
-+    if (!gst_egl_image_check_dmabuf_direct (dmabuf->upload->context, in_info))
-+      return FALSE;
-+  } else
-     dmabuf->n_mem = n_planes;
- 
-   /* Now create an EGLImage for each dmabufs */
-@@ -755,6 +759,15 @@ _dma_buf_upload_perform (gpointer impl, GstBuffer * buffer, GstBuffer ** outbuf)
- {
-   struct DmabufUpload *dmabuf = impl;
- 
-+  /* The direct path sets sinkpad caps to RGBA but this may be incorrect for
-+   * the non-direct path, if that path fails to accept. In that case, we need
-+   * to reconfigure.
-+   */
-+  if (!dmabuf->direct &&
-+      GST_VIDEO_INFO_FORMAT (&dmabuf->upload->priv->in_info) !=
-+      GST_VIDEO_INFO_FORMAT (&dmabuf->out_info))
-+    return GST_GL_UPLOAD_RECONFIGURE;
-+
-   gst_gl_context_thread_add (dmabuf->upload->context,
-       (GstGLContextThreadFunc) _dma_buf_upload_perform_gl_thread, dmabuf);
- 
--- 
-2.25.1
-

Deleted: trunk/Tools/buildstream/patches/gst-plugins-base-0001-oggstream-Workaround-for-broken-PAR-in-VP8-BOS.patch (267138 => 267139)


--- trunk/Tools/buildstream/patches/gst-plugins-base-0001-oggstream-Workaround-for-broken-PAR-in-VP8-BOS.patch	2020-09-16 07:08:03 UTC (rev 267138)
+++ trunk/Tools/buildstream/patches/gst-plugins-base-0001-oggstream-Workaround-for-broken-PAR-in-VP8-BOS.patch	2020-09-16 07:10:23 UTC (rev 267139)
@@ -1,32 +0,0 @@
-From 2e40379e7ace9c43d9edebe9556b37b541c67da7 Mon Sep 17 00:00:00 2001
-From: Philippe Normand <[email protected]>
-Date: Mon, 13 Jan 2020 09:06:02 +0000
-Subject: [PATCH] oggstream: Workaround for broken PAR in VP8 BOS
-
-Similarily to the Theora mapping, process 0:N, N:0 and 0:0 pixel aspect ratios
-as 1:1.
-
-Fixes #719
----
- ext/ogg/gstoggstream.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/ext/ogg/gstoggstream.c b/ext/ogg/gstoggstream.c
-index cdb6fa6ad..3894ae741 100644
---- a/ext/ogg/gstoggstream.c
-+++ b/ext/ogg/gstoggstream.c
-@@ -677,6 +677,11 @@ setup_vp8_mapper (GstOggStream * pad, ogg_packet * packet)
-   pad->n_header_packets = 2;
-   pad->frame_size = 1;
- 
-+  /* PAR of 0:N, N:0 and 0:0 is not explicitely allowed, but the best we can do
-+   * here is to map to 1:1 so that caps negotiation doesn't break downstream. */
-+  if (par_n == 0 || par_d == 0)
-+    par_n = par_d = 1;
-+
-   pad->caps = gst_caps_new_simple ("video/x-vp8",
-       "width", G_TYPE_INT, width,
-       "height", G_TYPE_INT, height,
--- 
-2.26.2
-

Deleted: trunk/Tools/buildstream/patches/gst-plugins-base-0001-playbin-Handle-error-message-with-redirection-indica.patch (267138 => 267139)


--- trunk/Tools/buildstream/patches/gst-plugins-base-0001-playbin-Handle-error-message-with-redirection-indica.patch	2020-09-16 07:08:03 UTC (rev 267138)
+++ trunk/Tools/buildstream/patches/gst-plugins-base-0001-playbin-Handle-error-message-with-redirection-indica.patch	2020-09-16 07:10:23 UTC (rev 267139)
@@ -1,100 +0,0 @@
-From 6e503b6e34000a18a49d2966df2c01c2ef14bd5c Mon Sep 17 00:00:00 2001
-From: Thibault Saunier <[email protected]>
-Date: Tue, 3 Sep 2019 16:03:49 -0400
-Subject: [PATCH] playbin: Handle error message with redirection indication
-
-There are in the wild (mp4) streams that basically contain no tracks
-but do have a redirect info[0], in which case, qtdemux won't be able
-to expose any pad (there are no tracks) so can't post anything but
-an error on the bus, as:
-  - it can't send EOS downstream, it has no pad,
-  - posting an EOS message will be useless as PAUSED state can't be
-    reached and there is no sink in the pipeline meaning GstBin will
-    simply ignore it
-
-In that case, currently the application could try to handle that but it
-is pretty complex as it will get the REDIRECT message on the bus at
-which point it could set the URL but playbin will ignore it, as
-it will only be for the next EOS, it thus need to set the pipeline to
-NULL (READY won't do as it is already in READY at that point). And it
-needs to figure out the following ERROR message on the bus needs to be
-ignored, which is not really simple.
-
-The approach here is to allow element to add details to the ERROR
-message with a `redirect-location` field which elements like playbin handle
-and use right away.
-
-We could also use the element 'redirect' message in playbin, but the
-issue with that approach is that the element will still emit the ERROR
-message on the bus, leading to wrong behaviour. That can't be avoided
-since in the case the app/parent pipeline is not handling the redirect
-instruction, the ERROR message is necessary (and there is no way to
-detect that the message has been "handled" from the element emitting the
-redirect).
-
-[0]: http://movietrailers.apple.com/movies/paramount/terminator-dark-fate/terminator-dark-fate-trailer-2_480p.mov
----
- gst/playback/gstplaybin2.c | 40 ++++++++++++++++++++++++++++++++++++++
- 1 file changed, 40 insertions(+)
-
-diff --git a/gst/playback/gstplaybin2.c b/gst/playback/gstplaybin2.c
-index c8bfd388e..6997a957c 100644
---- a/gst/playback/gstplaybin2.c
-+++ b/gst/playback/gstplaybin2.c
-@@ -170,6 +170,10 @@
-  * type. The new location may be a relative or an absolute URI. Examples
-  * for such redirects can be found in many quicktime movie trailers.
-  *
-+ * NOTE: playbin will internally handle the redirect messages in the case
-+ * that the redirecting stream doesn't contain any tracks and thus
-+ * needs to report an error message on the bus.
-+ *
-  * ## Examples
-  * |[
-  * gst-launch-1.0 -v playbin uri=file:///path/to/somefile.mp4
-@@ -3025,6 +3029,42 @@ gst_play_bin_handle_message (GstBin * bin, GstMessage * msg)
-           no_more_pads_cb (NULL, group);
-         }
-       }
-+    } else {
-+      const GstStructure *details = NULL;
-+
-+      gst_message_parse_error_details (msg, &details);
-+      if (details && gst_structure_has_field (details, "redirect-location")) {
-+        gchar *uri = NULL;
-+        const gchar *location =
-+            gst_structure_get_string ((GstStructure *) details,
-+            "redirect-location");
-+
-+        if (gst_uri_is_valid (location)) {
-+          uri = g_strdup (location);
-+        } else {
-+          uri = gst_uri_join_strings (group->uri, location);
-+        }
-+
-+        if (g_strcmp0 (uri, group->uri)) {
-+          GST_PLAY_BIN_LOCK (playbin);
-+          if (playbin->next_group && playbin->next_group->valid) {
-+            GST_DEBUG_OBJECT (playbin,
-+                "User already setup next uri %s, using it",
-+                playbin->next_group->uri);
-+          } else {
-+            GST_DEBUG_OBJECT (playbin,
-+                "Using newly configured redirect URI: %s", uri);
-+            gst_play_bin_set_uri (playbin, uri);
-+          }
-+          GST_PLAY_BIN_UNLOCK (playbin);
-+
-+          setup_next_source (playbin, GST_STATE_PAUSED);
-+          gst_message_unref (msg);
-+          msg = NULL;
-+        }
-+
-+        g_free (uri);
-+      }
-     }
-   }
- 
--- 
-2.21.0
-

Deleted: trunk/Tools/buildstream/patches/gst-plugins-base-0002-glupload-fix-segfault.patch (267138 => 267139)


--- trunk/Tools/buildstream/patches/gst-plugins-base-0002-glupload-fix-segfault.patch	2020-09-16 07:08:03 UTC (rev 267138)
+++ trunk/Tools/buildstream/patches/gst-plugins-base-0002-glupload-fix-segfault.patch	2020-09-16 07:10:23 UTC (rev 267139)
@@ -1,53 +0,0 @@
-From a91ab7908955aa57f4c9ca52765d7cbe1cf5e71f Mon Sep 17 00:00:00 2001
-From: Haihao Xiang <[email protected]>
-Date: Thu, 26 Mar 2020 13:46:56 +0800
-Subject: [PATCH 2/2] glupload: fix segfault
-
-Without this fix, it is possible that outbuf is not initialized, which
-will result in segfault when call gst_buffer_replace (&outbuf, NULL). In
-addition, the patch fixes potential memory leak in restart path.
-
-The segfault can be reproduced by the pipeline below:
-
-GST_GL_PLATFORM=egl \
-gst-launch-1.0 videotestsrc ! msdkh265enc ! msdkh265dec ! \
-'video/x-raw(memory:DMABuf)' ! glimagesink
-
-https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/619
----
- gst-libs/gst/gl/gstglupload.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/gst-libs/gst/gl/gstglupload.c b/gst-libs/gst/gl/gstglupload.c
-index 7d19f683a..2ef00a49b 100644
---- a/gst-libs/gst/gl/gstglupload.c
-+++ b/gst-libs/gst/gl/gstglupload.c
-@@ -1975,7 +1975,7 @@ gst_gl_upload_perform_with_buffer (GstGLUpload * upload, GstBuffer * buffer,
-     GstBuffer ** outbuf_ptr)
- {
-   GstGLUploadReturn ret = GST_GL_UPLOAD_ERROR;
--  GstBuffer *outbuf;
-+  GstBuffer *outbuf = NULL;
-   gpointer last_impl = upload->priv->method_impl;
- 
-   g_return_val_if_fail (GST_IS_GL_UPLOAD (upload), FALSE);
-@@ -2016,6 +2016,8 @@ restart:
-         break;
-       }
-     }
-+
-+    gst_buffer_replace (&outbuf, NULL);
-     goto restart;
-   } else if (ret == GST_GL_UPLOAD_DONE || ret == GST_GL_UPLOAD_RECONFIGURE) {
-     if (last_impl != upload->priv->method_impl) {
-@@ -2030,6 +2032,7 @@ restart:
-     /* we are done */
-   } else {
-     upload->priv->method_impl = NULL;
-+    gst_buffer_replace (&outbuf, NULL);
-     NEXT_METHOD;
-   }
- 
--- 
-2.25.1
-

Deleted: trunk/Tools/buildstream/patches/gst-plugins-base-0003-glbasefilter-add-support-for-changing-the-display.patch (267138 => 267139)


--- trunk/Tools/buildstream/patches/gst-plugins-base-0003-glbasefilter-add-support-for-changing-the-display.patch	2020-09-16 07:08:03 UTC (rev 267138)
+++ trunk/Tools/buildstream/patches/gst-plugins-base-0003-glbasefilter-add-support-for-changing-the-display.patch	2020-09-16 07:10:23 UTC (rev 267139)
@@ -1,660 +0,0 @@
-From 56d9fb13f93abbf5aa5af81e39ae73642016fe95 Mon Sep 17 00:00:00 2001
-From: Matthew Waters <[email protected]>
-Date: Wed, 5 Feb 2020 12:26:54 +1100
-Subject: [PATCH] glbasefilter: add support for changing the display
-
-Each element will remove its usage of the old display and context and
-try to retrieve a new GL context.
----
- ext/gl/gstglcolorconvertelement.c |  44 ++++---
- gst-libs/gst/gl/gstglbasefilter.c | 195 ++++++++++++++++++++++--------
- gst-libs/gst/gl/gstglbasefilter.h |   4 +
- tests/check/elements/glfilter.c   | 131 ++++++++++++++++++++
- tests/check/meson.build           |   1 +
- 5 files changed, 310 insertions(+), 65 deletions(-)
- create mode 100644 tests/check/elements/glfilter.c
-
-diff --git a/ext/gl/gstglcolorconvertelement.c b/ext/gl/gstglcolorconvertelement.c
-index 25e7daab9..256e5ef5a 100644
---- a/ext/gl/gstglcolorconvertelement.c
-+++ b/ext/gl/gstglcolorconvertelement.c
-@@ -36,15 +36,14 @@ G_DEFINE_TYPE_WITH_CODE (GstGLColorConvertElement, gst_gl_color_convert_element,
-         "glconvertelement", 0, "convert");
-     );
- 
--static gboolean gst_gl_color_convert_element_set_caps (GstBaseTransform * bt,
--    GstCaps * in_caps, GstCaps * out_caps);
-+static gboolean gst_gl_color_convert_element_gl_set_caps (GstGLBaseFilter *
-+    base_filter, GstCaps * in_caps, GstCaps * out_caps);
- static GstCaps *gst_gl_color_convert_element_transform_caps (GstBaseTransform *
-     bt, GstPadDirection direction, GstCaps * caps, GstCaps * filter);
- static gboolean gst_gl_color_convert_element_get_unit_size (GstBaseTransform *
-     trans, GstCaps * caps, gsize * size);
--static gboolean
--gst_gl_color_convert_element_filter_meta (GstBaseTransform * trans,
--    GstQuery * query, GType api, const GstStructure * params);
-+static gboolean gst_gl_color_convert_element_filter_meta (GstBaseTransform *
-+    trans, GstQuery * query, GType api, const GstStructure * params);
- static gboolean gst_gl_color_convert_element_decide_allocation (GstBaseTransform
-     * trans, GstQuery * query);
- static GstFlowReturn
-@@ -52,8 +51,8 @@ gst_gl_color_convert_element_prepare_output_buffer (GstBaseTransform * bt,
-     GstBuffer * inbuf, GstBuffer ** outbuf);
- static GstFlowReturn gst_gl_color_convert_element_transform (GstBaseTransform *
-     bt, GstBuffer * inbuf, GstBuffer * outbuf);
--static GstCaps *gst_gl_color_convert_element_fixate_caps (GstBaseTransform *
--    bt, GstPadDirection direction, GstCaps * caps, GstCaps * othercaps);
-+static GstCaps *gst_gl_color_convert_element_fixate_caps (GstBaseTransform * bt,
-+    GstPadDirection direction, GstCaps * caps, GstCaps * othercaps);
- static GstStateChangeReturn
- gst_gl_color_convert_element_change_state (GstElement * element,
-     GstStateChange transition);
-@@ -70,34 +69,33 @@ GST_STATIC_PAD_TEMPLATE ("sink",
-     GST_PAD_ALWAYS,
-     GST_STATIC_CAPS (GST_GL_COLOR_CONVERT_VIDEO_CAPS));
- 
--static gboolean
--gst_gl_color_convert_element_stop (GstBaseTransform * bt)
-+static void
-+gst_gl_color_convert_element_gl_stop (GstGLBaseFilter * filter)
- {
--  GstGLColorConvertElement *convert = GST_GL_COLOR_CONVERT_ELEMENT (bt);
-+  GstGLColorConvertElement *convert = GST_GL_COLOR_CONVERT_ELEMENT (filter);
- 
-   if (convert->convert) {
-     gst_object_unref (convert->convert);
-     convert->convert = NULL;
-   }
- 
--  return GST_BASE_TRANSFORM_CLASS (parent_class)->stop (bt);
-+  GST_GL_BASE_FILTER_CLASS (parent_class)->gl_stop (filter);
- }
- 
- static void
- gst_gl_color_convert_element_class_init (GstGLColorConvertElementClass * klass)
- {
-+  GstGLBaseFilterClass *filter_class = GST_GL_BASE_FILTER_CLASS (klass);
-   GstBaseTransformClass *bt_class = GST_BASE_TRANSFORM_CLASS (klass);
-   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
- 
-   bt_class->transform_caps = gst_gl_color_convert_element_transform_caps;
--  bt_class->set_caps = gst_gl_color_convert_element_set_caps;
-   bt_class->get_unit_size = gst_gl_color_convert_element_get_unit_size;
-   bt_class->filter_meta = gst_gl_color_convert_element_filter_meta;
-   bt_class->decide_allocation = gst_gl_color_convert_element_decide_allocation;
-   bt_class->prepare_output_buffer =
-       gst_gl_color_convert_element_prepare_output_buffer;
-   bt_class->transform = gst_gl_color_convert_element_transform;
--  bt_class->stop = gst_gl_color_convert_element_stop;
-   bt_class->fixate_caps = gst_gl_color_convert_element_fixate_caps;
- 
-   bt_class->passthrough_on_same_caps = TRUE;
-@@ -113,6 +111,9 @@ gst_gl_color_convert_element_class_init (GstGLColorConvertElementClass * klass)
-       "OpenGL color converter", "Filter/Converter/Video",
-       "Converts between color spaces using OpenGL shaders",
-       "Matthew Waters <[email protected]>");
-+
-+  filter_class->gl_stop = gst_gl_color_convert_element_gl_stop;
-+  filter_class->gl_set_caps = gst_gl_color_convert_element_gl_set_caps;
- }
- 
- static void
-@@ -123,10 +124,14 @@ gst_gl_color_convert_element_init (GstGLColorConvertElement * convert)
- }
- 
- static gboolean
--gst_gl_color_convert_element_set_caps (GstBaseTransform * bt,
-+gst_gl_color_convert_element_gl_set_caps (GstGLBaseFilter * base_filter,
-     GstCaps * in_caps, GstCaps * out_caps)
- {
--  GstGLColorConvertElement *convert = GST_GL_COLOR_CONVERT_ELEMENT (bt);
-+  GstGLColorConvertElement *convert =
-+      GST_GL_COLOR_CONVERT_ELEMENT (base_filter);
-+
-+  if (!convert->convert && base_filter->context)
-+    convert->convert = gst_gl_color_convert_new (base_filter->context);
- 
-   if (!gst_gl_color_convert_set_caps (convert->convert, in_caps, out_caps))
-     return FALSE;
-@@ -141,16 +146,21 @@ gst_gl_color_convert_element_transform_caps (GstBaseTransform * bt,
-   GstGLColorConvertElement *convert = GST_GL_COLOR_CONVERT_ELEMENT (bt);
-   GstGLBaseFilter *base_filter = GST_GL_BASE_FILTER (bt);
-   GstGLContext *context;
-+  GstCaps *ret;
- 
-   if (base_filter->display && !gst_gl_base_filter_find_gl_context (base_filter))
-     return NULL;
- 
--  context = GST_GL_BASE_FILTER (bt)->context;
-+  context = gst_gl_base_filter_get_gl_context (base_filter);
- 
-   if (!convert->convert && context)
-     convert->convert = gst_gl_color_convert_new (context);
- 
--  return gst_gl_color_convert_transform_caps (context, direction, caps, filter);
-+  ret = gst_gl_color_convert_transform_caps (context, direction, caps, filter);
-+
-+  gst_clear_object (&context);
-+
-+  return ret;
- }
- 
- static gboolean
-diff --git a/gst-libs/gst/gl/gstglbasefilter.c b/gst-libs/gst/gl/gstglbasefilter.c
-index 155d9002b..1d57b4051 100644
---- a/gst-libs/gst/gl/gstglbasefilter.c
-+++ b/gst-libs/gst/gl/gstglbasefilter.c
-@@ -48,6 +48,9 @@ struct _GstGLBaseFilterPrivate
- 
-   gboolean gl_result;
-   gboolean gl_started;
-+
-+  GRecMutex context_lock;
-+  gboolean new_gl_context;
- };
- 
- /* Properties */
-@@ -91,6 +94,8 @@ static void gst_gl_base_filter_gl_stop (GstGLContext * context, gpointer data);
- static gboolean gst_gl_base_filter_default_gl_start (GstGLBaseFilter * filter);
- static void gst_gl_base_filter_default_gl_stop (GstGLBaseFilter * filter);
- 
-+static gboolean gst_gl_base_filter_find_gl_context_unlocked (GstGLBaseFilter *
-+    filter);
- static void
- gst_gl_base_filter_class_init (GstGLBaseFilterClass * klass)
- {
-@@ -131,6 +136,8 @@ gst_gl_base_filter_init (GstGLBaseFilter * filter)
-   gst_base_transform_set_qos_enabled (GST_BASE_TRANSFORM (filter), TRUE);
- 
-   filter->priv = gst_gl_base_filter_get_instance_private (filter);
-+
-+  g_rec_mutex_init (&filter->priv->context_lock);
- }
- 
- static void
-@@ -141,6 +148,8 @@ gst_gl_base_filter_finalize (GObject * object)
-   gst_caps_replace (&filter->in_caps, NULL);
-   gst_caps_replace (&filter->out_caps, NULL);
- 
-+  g_rec_mutex_clear (&filter->priv->context_lock);
-+
-   G_OBJECT_CLASS (parent_class)->finalize (object);
- }
- 
-@@ -171,32 +180,30 @@ gst_gl_base_filter_get_property (GObject * object, guint prop_id,
-   }
- }
- 
--static void
--gst_gl_base_filter_set_context (GstElement * element, GstContext * context)
--{
--  GstGLBaseFilter *filter = GST_GL_BASE_FILTER (element);
--  GstGLBaseFilterClass *filter_class = GST_GL_BASE_FILTER_GET_CLASS (filter);
--
--  GST_OBJECT_LOCK (filter);
--  gst_gl_handle_set_context (element, context, &filter->display,
--      &filter->priv->other_context);
--  if (filter->display)
--    gst_gl_display_filter_gl_api (filter->display,
--        filter_class->supported_gl_api);
--  GST_OBJECT_UNLOCK (filter);
--
--  GST_ELEMENT_CLASS (parent_class)->set_context (element, context);
--}
--
- static gboolean
- _find_local_gl_context (GstGLBaseFilter * filter)
- {
-+  GstGLContext *context = filter->context;
-+
-   if (gst_gl_query_local_gl_context (GST_ELEMENT (filter), GST_PAD_SRC,
--          &filter->context))
--    return TRUE;
-+          &context)) {
-+    if (context->display == filter->display) {
-+      filter->context = context;
-+      return TRUE;
-+    }
-+    if (context != filter->context)
-+      gst_clear_object (&context);
-+  }
-+  context = filter->context;
-   if (gst_gl_query_local_gl_context (GST_ELEMENT (filter), GST_PAD_SINK,
--          &filter->context))
--    return TRUE;
-+          &context)) {
-+    if (context->display == filter->display) {
-+      filter->context = context;
-+      return TRUE;
-+    }
-+    if (context != filter->context)
-+      gst_clear_object (&context);
-+  }
-   return FALSE;
- }
- 
-@@ -211,7 +218,9 @@ gst_gl_base_filter_query (GstBaseTransform * trans, GstPadDirection direction,
-     {
-       if (direction == GST_PAD_SINK
-           && gst_base_transform_is_passthrough (trans)) {
-+        g_rec_mutex_lock (&filter->priv->context_lock);
-         _find_local_gl_context (filter);
-+        g_rec_mutex_unlock (&filter->priv->context_lock);
- 
-         return gst_pad_peer_query (GST_BASE_TRANSFORM_SRC_PAD (trans), query);
-       }
-@@ -220,10 +229,10 @@ gst_gl_base_filter_query (GstBaseTransform * trans, GstPadDirection direction,
-     case GST_QUERY_CONTEXT:
-     {
-       gboolean ret;
--      GST_OBJECT_LOCK (filter);
-+      g_rec_mutex_lock (&filter->priv->context_lock);
-       ret = gst_gl_handle_context_query ((GstElement *) filter, query,
-           filter->display, filter->context, filter->priv->other_context);
--      GST_OBJECT_UNLOCK (filter);
-+      g_rec_mutex_unlock (&filter->priv->context_lock);
-       if (ret)
-         return TRUE;
-       break;
-@@ -239,17 +248,14 @@ gst_gl_base_filter_query (GstBaseTransform * trans, GstPadDirection direction,
- static void
- gst_gl_base_filter_reset (GstGLBaseFilter * filter)
- {
--  GstGLBaseFilterClass *filter_class = GST_GL_BASE_FILTER_GET_CLASS (filter);
--
-+  g_rec_mutex_lock (&filter->priv->context_lock);
-   if (filter->context) {
--    if (filter_class->gl_stop != NULL) {
--      gst_gl_context_thread_add (filter->context, gst_gl_base_filter_gl_stop,
--          filter);
--    }
--
-+    gst_gl_context_thread_add (filter->context, gst_gl_base_filter_gl_stop,
-+        filter);
-     gst_object_unref (filter->context);
-     filter->context = NULL;
-   }
-+  g_rec_mutex_unlock (&filter->priv->context_lock);
- }
- 
- static gboolean
-@@ -280,6 +286,7 @@ gst_gl_base_filter_gl_start (GstGLContext * context, gpointer data)
-   GstGLBaseFilter *filter = GST_GL_BASE_FILTER (data);
-   GstGLBaseFilterClass *filter_class = GST_GL_BASE_FILTER_GET_CLASS (filter);
- 
-+  GST_INFO_OBJECT (filter, "starting");
-   gst_gl_insert_debug_marker (filter->context,
-       "starting element %s", GST_OBJECT_NAME (filter));
- 
-@@ -297,6 +304,7 @@ gst_gl_base_filter_gl_stop (GstGLContext * context, gpointer data)
-   GstGLBaseFilter *filter = GST_GL_BASE_FILTER (data);
-   GstGLBaseFilterClass *filter_class = GST_GL_BASE_FILTER_GET_CLASS (filter);
- 
-+  GST_INFO_OBJECT (filter, "stopping");
-   gst_gl_insert_debug_marker (filter->context,
-       "stopping element %s", GST_OBJECT_NAME (filter));
- 
-@@ -311,33 +319,53 @@ _gl_set_caps (GstGLContext * context, GstGLBaseFilter * filter)
- {
-   GstGLBaseFilterClass *filter_class = GST_GL_BASE_FILTER_GET_CLASS (filter);
- 
-+  GST_INFO_OBJECT (filter, "set GL caps input %" GST_PTR_FORMAT,
-+      filter->in_caps);
-+  GST_INFO_OBJECT (filter, "set GL caps output %" GST_PTR_FORMAT,
-+      filter->out_caps);
-+
-   if (filter_class->gl_set_caps)
-     filter->priv->gl_result =
-         filter_class->gl_set_caps (filter, filter->in_caps, filter->out_caps);
- }
- 
- static gboolean
--gst_gl_base_filter_decide_allocation (GstBaseTransform * trans,
--    GstQuery * query)
-+gl_set_caps_unlocked (GstGLBaseFilter * filter)
- {
--  GstGLBaseFilter *filter = GST_GL_BASE_FILTER (trans);
-   GstGLBaseFilterClass *filter_class = GST_GL_BASE_FILTER_GET_CLASS (filter);
- 
--  if (!gst_gl_base_filter_find_gl_context (filter))
--    return FALSE;
--
-   if (filter_class->gl_set_caps) {
-     gst_gl_context_thread_add (filter->context,
-         (GstGLContextThreadFunc) _gl_set_caps, filter);
--    if (!filter->priv->gl_result)
--      goto error;
-+    return filter->priv->gl_result;
-   }
- 
-+  return TRUE;
-+}
-+
-+static gboolean
-+gst_gl_base_filter_decide_allocation (GstBaseTransform * trans,
-+    GstQuery * query)
-+{
-+  GstGLBaseFilter *filter = GST_GL_BASE_FILTER (trans);
-+
-+  g_rec_mutex_lock (&filter->priv->context_lock);
-+  if (!gst_gl_base_filter_find_gl_context_unlocked (filter)) {
-+    g_rec_mutex_unlock (&filter->priv->context_lock);
-+    return FALSE;
-+  }
-+
-+  if (!gl_set_caps_unlocked (filter))
-+    goto error;
-+
-+  g_rec_mutex_unlock (&filter->priv->context_lock);
-+
-   return GST_BASE_TRANSFORM_CLASS (parent_class)->decide_allocation (trans,
-       query);
- 
- error:
-   {
-+    g_rec_mutex_unlock (&filter->priv->context_lock);
-     GST_ELEMENT_ERROR (trans, LIBRARY, INIT,
-         ("Subclass failed to initialize."), (NULL));
-     return FALSE;
-@@ -389,6 +417,7 @@ gst_gl_base_filter_change_state (GstElement * element,
- 
-   switch (transition) {
-     case GST_STATE_CHANGE_READY_TO_NULL:
-+      g_rec_mutex_lock (&filter->priv->context_lock);
-       if (filter->priv->other_context) {
-         gst_object_unref (filter->priv->other_context);
-         filter->priv->other_context = NULL;
-@@ -403,6 +432,7 @@ gst_gl_base_filter_change_state (GstElement * element,
-         gst_object_unref (filter->context);
-         filter->context = NULL;
-       }
-+      g_rec_mutex_unlock (&filter->priv->context_lock);
-       break;
-     default:
-       break;
-@@ -411,21 +441,49 @@ gst_gl_base_filter_change_state (GstElement * element,
-   return ret;
- }
- 
--/**
-- * gst_gl_base_filter_find_gl_context:
-- * @filter: a #GstGLBaseFilter
-- *
-- * Returns: Whether an OpenGL context could be retrieved or created successfully
-- *
-- * Since: 1.16
-- */
--gboolean
--gst_gl_base_filter_find_gl_context (GstGLBaseFilter * filter)
-+static void
-+gst_gl_base_filter_set_context (GstElement * element, GstContext * context)
-+{
-+  GstGLBaseFilter *filter = GST_GL_BASE_FILTER (element);
-+  GstGLBaseFilterClass *filter_class = GST_GL_BASE_FILTER_GET_CLASS (filter);
-+  GstGLDisplay *old_display, *new_display;
-+
-+  g_rec_mutex_lock (&filter->priv->context_lock);
-+  old_display = filter->display ? gst_object_ref (filter->display) : NULL;
-+  gst_gl_handle_set_context (element, context, &filter->display,
-+      &filter->priv->other_context);
-+  if (filter->display)
-+    gst_gl_display_filter_gl_api (filter->display,
-+        filter_class->supported_gl_api);
-+  new_display = filter->display ? gst_object_ref (filter->display) : NULL;
-+
-+  if (old_display && new_display) {
-+    if (old_display != new_display) {
-+      gst_clear_object (&filter->context);
-+      if (gst_gl_base_filter_find_gl_context_unlocked (filter)) {
-+        if (filter->in_caps && filter->out_caps) {
-+          gl_set_caps_unlocked (filter);
-+        }
-+      }
-+    }
-+  }
-+  g_rec_mutex_unlock (&filter->priv->context_lock);
-+  gst_clear_object (&old_display);
-+  gst_clear_object (&new_display);
-+
-+  GST_ELEMENT_CLASS (parent_class)->set_context (element, context);
-+}
-+
-+static gboolean
-+gst_gl_base_filter_find_gl_context_unlocked (GstGLBaseFilter * filter)
- {
-   GstGLBaseFilterClass *filter_class = GST_GL_BASE_FILTER_GET_CLASS (filter);
-   GError *error = NULL;
-   gboolean new_context = FALSE;
- 
-+  GST_DEBUG_OBJECT (filter, "attempting to find an OpenGL context, existing %"
-+      GST_PTR_FORMAT, filter->context);
-+
-   if (!filter->context)
-     new_context = TRUE;
- 
-@@ -449,6 +507,8 @@ gst_gl_base_filter_find_gl_context (GstGLBaseFilter * filter)
-     } while (!gst_gl_display_add_context (filter->display, filter->context));
-     GST_OBJECT_UNLOCK (filter->display);
-   }
-+  GST_INFO_OBJECT (filter, "found OpenGL context %" GST_PTR_FORMAT,
-+      filter->context);
- 
-   if (new_context || !filter->priv->gl_started) {
-     if (filter->priv->gl_started)
-@@ -499,3 +559,42 @@ error:
-     return FALSE;
-   }
- }
-+
-+/**
-+ * gst_gl_base_filter_find_gl_context:
-+ * @filter: a #GstGLBaseFilter
-+ *
-+ * Returns: Whether an OpenGL context could be retrieved or created successfully
-+ *
-+ * Since: 1.16
-+ */
-+gboolean
-+gst_gl_base_filter_find_gl_context (GstGLBaseFilter * filter)
-+{
-+  gboolean ret;
-+  g_rec_mutex_lock (&filter->priv->context_lock);
-+  ret = gst_gl_base_filter_find_gl_context_unlocked (filter);
-+  g_rec_mutex_unlock (&filter->priv->context_lock);
-+  return ret;
-+}
-+
-+/**
-+ * gst_gl_base_filter_get_gl_context:
-+ * @filter: a #GstGLBaseFilter
-+ *
-+ * Returns: (transfer full) (nullable): the #GstGLContext found by @filter
-+ *
-+ * Since: 1.18
-+ */
-+GstGLContext *
-+gst_gl_base_filter_get_gl_context (GstGLBaseFilter * filter)
-+{
-+  GstGLContext *ret;
-+
-+  g_return_val_if_fail (GST_IS_GL_BASE_FILTER (filter), NULL);
-+
-+  g_rec_mutex_lock (&filter->priv->context_lock);
-+  ret = filter->context ? gst_object_ref (filter->context) : NULL;
-+  g_rec_mutex_unlock (&filter->priv->context_lock);
-+  return ret;
-+}
-diff --git a/gst-libs/gst/gl/gstglbasefilter.h b/gst-libs/gst/gl/gstglbasefilter.h
-index 15361ade1..57fb3df5b 100644
---- a/gst-libs/gst/gl/gstglbasefilter.h
-+++ b/gst-libs/gst/gl/gstglbasefilter.h
-@@ -70,6 +70,8 @@ struct _GstGLBaseFilter
-  * @gl_start: called in the GL thread to setup the element GL state.
-  * @gl_stop: called in the GL thread to setup the element GL state.
-  * @gl_set_caps: called in the GL thread when caps are set on @filter.
-+ *               Note: this will also be called when changing OpenGL contexts
-+ *               where #GstBaseTransform::set_caps may not.
-  *
-  * The base class for GStreamer GL Filter.
-  */
-@@ -90,6 +92,8 @@ struct _GstGLBaseFilterClass
- 
- GST_GL_API
- gboolean        gst_gl_base_filter_find_gl_context          (GstGLBaseFilter * filter);
-+GST_GL_API
-+GstGLContext *  gst_gl_base_filter_get_gl_context           (GstGLBaseFilter * filter);
- 
- G_END_DECLS
- 
-diff --git a/tests/check/elements/glfilter.c b/tests/check/elements/glfilter.c
-new file mode 100644
-index 000000000..0d8d67687
---- /dev/null
-+++ b/tests/check/elements/glfilter.c
-@@ -0,0 +1,131 @@
-+/* GStreamer
-+ *
-+ * Copyright (C) 2019 Matthew Waters <[email protected]>
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Library General Public
-+ * License as published by the Free Software Foundation; either
-+ * version 2 of the License, or (at your option) any later version.
-+ *
-+ * This library is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+ * Library General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU Library General Public
-+ * License along with this library; if not, write to the
-+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
-+ * Boston, MA 02110-1301, USA.
-+ */
-+
-+
-+#ifdef HAVE_CONFIG_H
-+#include "config.h"
-+#endif
-+
-+#include <gst/gst.h>
-+#include <gst/gl/gl.h>
-+#include <gst/check/gstcheck.h>
-+#include <gst/check/gstharness.h>
-+
-+static void
-+replace_display (GstHarness * h)
-+{
-+  GstContext *new_context;
-+  GstGLDisplay *new_display;
-+  GstGLContext *expected, *gl_context;
-+  GstBuffer *buf;
-+
-+  /* replaces the GstGLDisplay used by @h with verification */
-+
-+  buf = gst_harness_create_buffer (h, 4);
-+  buf = gst_harness_push_and_pull (h, buf);
-+  fail_unless (buf != NULL);
-+  gst_clear_buffer (&buf);
-+
-+  g_object_get (G_OBJECT (h->element), "context", &gl_context, NULL);
-+  fail_unless (gl_context != NULL);
-+  gst_clear_object (&gl_context);
-+
-+  new_display = gst_gl_display_new ();
-+  fail_unless (gst_gl_display_create_context (new_display, NULL, &expected,
-+          NULL));
-+  fail_unless (expected != NULL);
-+  gst_gl_display_add_context (new_display, expected);
-+
-+  new_context = gst_context_new (GST_GL_DISPLAY_CONTEXT_TYPE, TRUE);
-+  gst_context_set_gl_display (new_context, new_display);
-+
-+  gst_element_set_context (h->element, new_context);
-+  gst_context_unref (new_context);
-+  new_context = NULL;
-+
-+  buf = gst_harness_create_buffer (h, 4);
-+  buf = gst_harness_push_and_pull (h, buf);
-+  fail_unless (buf != NULL);
-+  gst_clear_buffer (&buf);
-+
-+  g_object_get (G_OBJECT (h->element), "context", &gl_context, NULL);
-+  fail_unless (gl_context != NULL);
-+
-+  fail_unless (gl_context == expected);
-+  fail_unless (new_display == gl_context->display);
-+
-+  gst_object_unref (expected);
-+  gst_object_unref (gl_context);
-+  gst_object_unref (new_display);
-+}
-+
-+GST_START_TEST (test_glupload_display_replace)
-+{
-+  GstHarness *upload;
-+
-+  upload = gst_harness_new ("glupload");
-+  gst_harness_set_caps_str (upload, "video/x-raw,format=RGBA,width=1,height=1",
-+      "video/x-raw(memory:GLMemory),format=RGBA,width=1,height=1");
-+
-+  replace_display (upload);
-+
-+  gst_harness_teardown (upload);
-+}
-+
-+GST_END_TEST;
-+
-+GST_START_TEST (test_glcolorconvert_display_replace)
-+{
-+  GstHarness *convert;
-+
-+  convert = gst_harness_new ("glcolorconvert");
-+  gst_harness_set_caps_str (convert,
-+      "video/x-raw(memory:GLMemory),format=RGBA,width=1,height=1,texture-target=2D",
-+      "video/x-raw(memory:GLMemory),format=RGBA,width=1,height=1,texture-target=2D");
-+
-+  replace_display (convert);
-+
-+  gst_harness_teardown (convert);
-+}
-+
-+GST_END_TEST;
-+
-+static Suite *
-+glfilter_suite (void)
-+{
-+  Suite *s = suite_create ("glfilter");
-+  TCase *tc = tcase_create ("general");
-+
-+  tcase_add_test (tc, test_glupload_display_replace);
-+  tcase_add_test (tc, test_glcolorconvert_display_replace);
-+  suite_add_tcase (s, tc);
-+
-+  return s;
-+}
-+
-+int
-+main (int argc, char **argv)
-+{
-+  Suite *s;
-+  g_setenv ("GST_GL_XINITTHREADS", "1", TRUE);
-+  gst_check_init (&argc, &argv);
-+  s = glfilter_suite ();
-+  return gst_check_run_suite (s, "glfilter", __FILE__);
-+}
-diff --git a/tests/check/meson.build b/tests/check/meson.build
-index 31fb67f15..c3f5bdd9a 100644
---- a/tests/check/meson.build
-+++ b/tests/check/meson.build
-@@ -99,6 +99,7 @@ if build_gstgl and host_machine.system() != 'windows'
-     [ 'elements/glimagesink.c', not build_gstgl, [gstgl_dep]],
-     [ 'elements/glbin.c', not build_gstgl ],
-     [ 'pipelines/gl-launch-lines.c', not build_gstgl ],
-+    [ 'elements/glfilter.c', not build_gstgl, [gstgl_dep]],
-   ]
- endif
- 
--- 
-2.25.4
-

Deleted: trunk/Tools/buildstream/patches/gst-plugins-good-qtdemux-Specify-REDIRECT-information-in-error-messag.patch (267138 => 267139)


--- trunk/Tools/buildstream/patches/gst-plugins-good-qtdemux-Specify-REDIRECT-information-in-error-messag.patch	2020-09-16 07:08:03 UTC (rev 267138)
+++ trunk/Tools/buildstream/patches/gst-plugins-good-qtdemux-Specify-REDIRECT-information-in-error-messag.patch	2020-09-16 07:10:23 UTC (rev 267139)
@@ -1,140 +0,0 @@
-From a55576d1fd25c7d67661630fc94367908802a496 Mon Sep 17 00:00:00 2001
-From: Thibault Saunier <[email protected]>
-Date: Tue, 3 Sep 2019 16:46:30 -0400
-Subject: [PATCH] qtdemux: Specify REDIRECT information in error message
-
-There are in the wild (mp4) streams that basically contain no tracks
-but do have a redirect info[0], in which case, we won't be able
-to expose any pad (there are no tracks) so we can't post anything but
-an error on the bus, as:
-
-- it can't send EOS downstream, it has no pad,
-- posting an EOS message will be useless as PAUSED state can't be
-  reached and there is no sink in the pipeline meaning GstBin will
-  simply ignore it
-
-The approach here is to to add details to the ERROR message with a
-`redirect-location` field which elements like playbin handle and use right
-away.
-
-[0]: http://movietrailers.apple.com/movies/paramount/terminator-dark-fate/terminator-dark-fate-trailer-2_480p.mov
----
- gst/isomp4/qtdemux.c | 32 +++++++++++++++++++++++++-------
- gst/isomp4/qtdemux.h |  2 +-
- 2 files changed, 26 insertions(+), 8 deletions(-)
-
-diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c
-index ba4d43648..8a6bf08c7 100644
---- a/gst/isomp4/qtdemux.c
-+++ b/gst/isomp4/qtdemux.c
-@@ -526,6 +526,7 @@ GST_STATIC_PAD_TEMPLATE ("subtitle_%u",
- G_DEFINE_TYPE (GstQTDemux, gst_qtdemux, GST_TYPE_ELEMENT);
- 
- static void gst_qtdemux_dispose (GObject * object);
-+static void gst_qtdemux_finalize (GObject * object);
- 
- static guint32
- gst_qtdemux_find_index_linear (GstQTDemux * qtdemux, QtDemuxStream * str,
-@@ -628,6 +629,7 @@ gst_qtdemux_class_init (GstQTDemuxClass * klass)
-   parent_class = g_type_class_peek_parent (klass);
- 
-   gobject_class->dispose = gst_qtdemux_dispose;
-+  gobject_class->finalize = gst_qtdemux_finalize;
- 
-   gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_qtdemux_change_state);
- #if 0
-@@ -683,6 +685,16 @@ gst_qtdemux_init (GstQTDemux * qtdemux)
-   gst_qtdemux_reset (qtdemux, TRUE);
- }
- 
-+static void
-+gst_qtdemux_finalize (GObject * object)
-+{
-+  GstQTDemux *qtdemux = GST_QTDEMUX (object);
-+
-+  g_free (qtdemux->redirect_location);
-+
-+  G_OBJECT_CLASS (parent_class)->finalize (object);
-+}
-+
- static void
- gst_qtdemux_dispose (GObject * object)
- {
-@@ -711,10 +723,11 @@ gst_qtdemux_dispose (GObject * object)
- static void
- gst_qtdemux_post_no_playable_stream_error (GstQTDemux * qtdemux)
- {
--  if (qtdemux->posted_redirect) {
--    GST_ELEMENT_ERROR (qtdemux, STREAM, DEMUX,
-+  if (qtdemux->redirect_location) {
-+    GST_ELEMENT_ERROR_WITH_DETAILS (qtdemux, STREAM, DEMUX,
-         (_("This file contains no playable streams.")),
--        ("no known streams found, a redirect message has been posted"));
-+        ("no known streams found, a redirect message has been posted"),
-+        ("redirect-location", G_TYPE_STRING, qtdemux->redirect_location, NULL));
-   } else {
-     GST_ELEMENT_ERROR (qtdemux, STREAM, DEMUX,
-         (_("This file contains no playable streams.")),
-@@ -2111,7 +2124,7 @@ gst_qtdemux_reset (GstQTDemux * qtdemux, gboolean hard)
-     qtdemux->neededbytes = 16;
-     qtdemux->todrop = 0;
-     qtdemux->pullbased = FALSE;
--    qtdemux->posted_redirect = FALSE;
-+    g_clear_pointer (&qtdemux->redirect_location, g_free);
-     qtdemux->first_mdat = -1;
-     qtdemux->header_size = 0;
-     qtdemux->mdatoffset = -1;
-@@ -6065,11 +6078,12 @@ gst_qtdemux_decorate_and_push_buffer (GstQTDemux * qtdemux,
-     gst_buffer_unmap (buf, &map);
-     if (url != NULL && strlen (url) != 0) {
-       /* we have RTSP redirect now */
-+      g_free (qtdemux->redirect_location);
-+      qtdemux->redirect_location = g_strdup (url);
-       gst_element_post_message (GST_ELEMENT_CAST (qtdemux),
-           gst_message_new_element (GST_OBJECT_CAST (qtdemux),
-               gst_structure_new ("redirect",
-                   "new-location", G_TYPE_STRING, url, NULL)));
--      qtdemux->posted_redirect = TRUE;
-     } else {
-       GST_WARNING_OBJECT (qtdemux, "Redirect URI of stream is empty, not "
-           "posting");
-@@ -12915,7 +12929,9 @@ qtdemux_expose_streams (GstQTDemux * qtdemux)
-             "new-location", G_TYPE_STRING,
-             QTDEMUX_NTH_STREAM (qtdemux, 0)->redirect_uri, NULL));
-     gst_element_post_message (GST_ELEMENT_CAST (qtdemux), m);
--    qtdemux->posted_redirect = TRUE;
-+    g_free (qtdemux->redirect_location);
-+    qtdemux->redirect_location =
-+        g_strdup (QTDEMUX_NTH_STREAM (qtdemux, 0)->redirect_uri);
-   }
- 
-   g_ptr_array_foreach (qtdemux->active_streams,
-@@ -13968,9 +13984,11 @@ qtdemux_process_redirects (GstQTDemux * qtdemux, GList * references)
-   g_list_free (references);
- 
-   GST_INFO_OBJECT (qtdemux, "posting redirect message: %" GST_PTR_FORMAT, s);
-+  g_free (qtdemux->redirect_location);
-+  qtdemux->redirect_location =
-+      g_strdup (gst_structure_get_string (s, "new-location"));
-   msg = gst_message_new_element (GST_OBJECT_CAST (qtdemux), s);
-   gst_element_post_message (GST_ELEMENT_CAST (qtdemux), msg);
--  qtdemux->posted_redirect = TRUE;
- }
- 
- /* look for redirect nodes, collect all redirect information and
-diff --git a/gst/isomp4/qtdemux.h b/gst/isomp4/qtdemux.h
-index f9731b2b8..c5e85c721 100644
---- a/gst/isomp4/qtdemux.h
-+++ b/gst/isomp4/qtdemux.h
-@@ -69,7 +69,7 @@ struct _GstQTDemux {
-   /* TRUE if pull-based */
-   gboolean pullbased;
- 
--  gboolean posted_redirect;
-+  gchar *redirect_location;
- 
-   /* Protect pad exposing from flush event */
-   GMutex expose_lock;
--- 
-2.21.0
-

Deleted: trunk/Tools/buildstream/patches/libav-0001-gstavviddec-Limit-default-number-of-decoder-threads.patch (267138 => 267139)


--- trunk/Tools/buildstream/patches/libav-0001-gstavviddec-Limit-default-number-of-decoder-threads.patch	2020-09-16 07:08:03 UTC (rev 267138)
+++ trunk/Tools/buildstream/patches/libav-0001-gstavviddec-Limit-default-number-of-decoder-threads.patch	2020-09-16 07:10:23 UTC (rev 267139)
@@ -1,42 +0,0 @@
-From b7d450b11834d0a510fdcb661ce105860338e2d6 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Alicia=20Boya=20Garc=C3=ADa?= <[email protected]>
-Date: Thu, 19 Dec 2019 17:58:56 +0100
-Subject: [PATCH] gstavviddec: Limit default number of decoder threads
-
-When the `max-threads` property is not specified, GStreamer defaults to
-the amount of CPU threads in the system.
-
-The number of threads used in avdec has a direct impact on the latency
-of the decoder, which is of as many frames as threads. Therefore, big
-numbers of threads can make latency levels that can be problematic in
-some applications.
-
-For this reason, ffmpeg emits a warning when more than 16 threads are
-requested.
-
-This patch limits the default number of threads to 16. This affects only
-computers with more than 16 CPU threads when using avviddec without
-setting `max-threads`.
-
-Backport for 1.16.1.
----
- ext/libav/gstavviddec.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/ext/libav/gstavviddec.c b/ext/libav/gstavviddec.c
-index 650de2d..edde934 100644
---- a/ext/libav/gstavviddec.c
-+++ b/ext/libav/gstavviddec.c
-@@ -494,7 +494,8 @@
- 
-     if (ffmpegdec->max_threads == 0) {
-       if (!(oclass->in_plugin->capabilities & AV_CODEC_CAP_AUTO_THREADS))
--        ffmpegdec->context->thread_count = gst_ffmpeg_auto_max_threads ();
-+        ffmpegdec->context->thread_count =
-+            MIN (gst_ffmpeg_auto_max_threads (), 16);
-       else
-         ffmpegdec->context->thread_count = 0;
-     } else
--- 
-2.23.0
-
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to