Title: [236960] trunk/Tools
Revision
236960
Author
ph...@webkit.org
Date
2018-10-09 06:54:57 -0700 (Tue, 09 Oct 2018)

Log Message

[JHBuild] Update to GStreamer 1.14.4
https://bugs.webkit.org/show_bug.cgi?id=190395

Reviewed by Xabier Rodriguez-Calvar.

* gstreamer/jhbuild.modules: Remove patches merged in 1.14.4 and bump version of GStreamer modules.
* gstreamer/patches/gst-plugins-good-0007-matroskademux-Allow-Matroska-headers-to-be-read-more.patch: Removed.
* gstreamer/patches/gst-plugins-good-0008-matroskademux-Refactor-track-parsing-out-from-adding.patch: Removed.
* gstreamer/patches/gst-plugins-good-0009-matroskademux-Parse-successive-Tracks-elements.patch: Removed.
* gstreamer/patches/gst-plugins-good-0010-matroskademux-Emit-no-more-pads-after-parsing-Tracks.patch: Removed.

Modified Paths

Removed Paths

Diff

Modified: trunk/Tools/ChangeLog (236959 => 236960)


--- trunk/Tools/ChangeLog	2018-10-09 09:14:37 UTC (rev 236959)
+++ trunk/Tools/ChangeLog	2018-10-09 13:54:57 UTC (rev 236960)
@@ -1,3 +1,16 @@
+2018-10-09  Philippe Normand  <pnorm...@igalia.com>
+
+        [JHBuild] Update to GStreamer 1.14.4
+        https://bugs.webkit.org/show_bug.cgi?id=190395
+
+        Reviewed by Xabier Rodriguez-Calvar.
+
+        * gstreamer/jhbuild.modules: Remove patches merged in 1.14.4 and bump version of GStreamer modules.
+        * gstreamer/patches/gst-plugins-good-0007-matroskademux-Allow-Matroska-headers-to-be-read-more.patch: Removed.
+        * gstreamer/patches/gst-plugins-good-0008-matroskademux-Refactor-track-parsing-out-from-adding.patch: Removed.
+        * gstreamer/patches/gst-plugins-good-0009-matroskademux-Parse-successive-Tracks-elements.patch: Removed.
+        * gstreamer/patches/gst-plugins-good-0010-matroskademux-Emit-no-more-pads-after-parsing-Tracks.patch: Removed.
+
 2018-10-08  Wenson Hsieh  <wenson_hs...@apple.com>
 
         [macOS] API test DragAndDropTests.DropColor is failing on macOS 10.12

Modified: trunk/Tools/gstreamer/jhbuild.modules (236959 => 236960)


--- trunk/Tools/gstreamer/jhbuild.modules	2018-10-09 09:14:37 UTC (rev 236959)
+++ trunk/Tools/gstreamer/jhbuild.modules	2018-10-09 13:54:57 UTC (rev 236960)
@@ -51,7 +51,7 @@
     <dependencies>
       <dep package="orc"/>
     </dependencies>
-    <branch hash="sha256:13ae530eb1d4566c3aa0cff1bbb8e64c643065bb12e2e7c707f311ab4a390456" module="gstreamer/gstreamer-${version}.tar.xz" repo="gstreamer" version="1.14.3">
+    <branch hash="sha256:f94f6696c5f05a3b3a9183e39c5f5c0b779f75a04c0efa497e7920afa985ffc7" module="gstreamer/gstreamer-${version}.tar.xz" repo="gstreamer" version="1.14.4">
       <patch file="gstreamer-0001-protection-Add-a-new-definition-for-unspecified-syst.patch" strip="1" /> <!-- Merged as 05a3da347b3b8dbaf470793dc3f9ebb23e6fc67f -->
       <patch file="gstreamer-0002-protection-Fix-the-string-to-define-unspecified-syst.patch" strip="1" /> <!-- Merged as b89b1802df44829a0c034db5807bc893ad3c7774 -->
     </branch>
@@ -66,7 +66,7 @@
     <dependencies>
       <dep package="gstreamer"/>
     </dependencies>
-    <branch hash="sha256:f0b319c36be0ffc2a00380c77ba269cdf04e2b39bbc49d30b641fc35aa0b7952" module="gst-plugins-base/gst-plugins-base-${version}.tar.xz" repo="gstreamer" version="1.14.3" >
+    <branch hash="sha256:ca6139490e48863e7706d870ff4e8ac9f417b56f3b9e4b3ce490c13b09a77461" module="gst-plugins-base/gst-plugins-base-${version}.tar.xz" repo="gstreamer" version="1.14.4" >
       <patch file="gst-plugins-base-0001-parsebin-Post-STREAM_COLLECTION-on-EVENT_STREAM_COLL.patch" strip="1"/> <!-- Merged as 89d0e9cc92a86aa0227ee87406737b6d31670aea -->
     </branch>
   </autotools>
@@ -77,7 +77,7 @@
       <dep package="libvpx"/>
     </dependencies>
 
-    <branch hash="sha256:5112bce6af0be62760687ca47873c90ce4d65d3fe920a3adf8145db7b07bff5d" module="gst-plugins-good/gst-plugins-good-${version}.tar.xz" repo="gstreamer" version="1.14.3">
+    <branch hash="sha256:5f8b553260cb0aac56890053d8511db1528d53cae10f0287cfce2cb2acc70979" module="gst-plugins-good/gst-plugins-good-${version}.tar.xz" repo="gstreamer" version="1.14.4">
       <patch file="gst-plugins-good-0002-qtdemux-add-context-for-a-preferred-protection.patch" strip="1" /> <!-- Merged as ee4b45da24cb7465b416c230597f8efc7b2c45cb -->
       <patch file="gst-plugins-good-0003-qtdemux-also-push-buffers-without-encryption-info-in.patch" strip="1" /> <!-- Merged as 844423ff99e281fc831303b92861ed43ce5c1518 -->
       <patch file="gst-plugins-good-0001-qtdemux-Do-not-run-the-preferred-decryptor-context-q.patch" strip="1" /> <!-- Merged as 3e063703b3a51b8aaa7f75f36c4660c583a60e93 -->
@@ -87,10 +87,6 @@
       <patch file="gst-plugins-good-0004-qtdemux-Add-initial-support-for-AV1-demuxing.patch" strip="1" /> <!-- Merged as b6e8c6323e01249bb3ac4f121c3adc3ea8d924bf (to be shipped in 1.16) -->
       <patch file="gst-plugins-good-0005-qtdemux-Extract-AV1-codec_data-and-put-it-in-the-cap.patch" strip="1" /> <!-- Merged as 43ee4055c3d03a9f99acdf3c05f45e154899edef (to be shipped in 1.16) -->
       <patch file="gst-plugins-good-0006-qtdemux-Recognize-more-AV1-atoms.patch" strip="1" /> <!-- Merged as e07ce9afb4edb2ea898763c7ea11f0af2704104e (to be shipped in 1.16) -->
-      <patch file="gst-plugins-good-0007-matroskademux-Allow-Matroska-headers-to-be-read-more.patch" strip="1" /> <!-- Merged as 9dc7859184d4b7ad1dd7e2b54704e994dbace329 (to be shipped in 1.14.4) -->
-      <patch file="gst-plugins-good-0008-matroskademux-Refactor-track-parsing-out-from-adding.patch" strip="1" /> <!-- Merged as f279bc5336dda19741a5996a108da42dd3201366 (to be shipped in 1.14.4) -->
-      <patch file="gst-plugins-good-0009-matroskademux-Parse-successive-Tracks-elements.patch" strip="1" /> <!-- Merged as 0e60076a390fd3ef53d350940b2c695ff7bbe008 (to be shipped in 1.14.4) -->
-      <patch file="gst-plugins-good-0010-matroskademux-Emit-no-more-pads-after-parsing-Tracks.patch" strip="1" /> <!-- Merged as 7ceefec7141069b4adf4451a874766f8760c66d6 (to be shipped in 1.14.4) -->
       <patch file="gst-plugins-good-0011-matroska-Add-the-WebM-encrypted-content-support-in-m.patch" strip="1" /> <!-- Merged as 0432826950d4d80fe2b50ffd3757dc08155de9e3 -->
       <patch file="gst-plugins-good-0012-matroskdemux-do-not-use-MapInfo.data-after-unmapping.patch" strip="1" /> <!-- Merged as defae350358660e557c74e41a4fe8a8bb327e9c8 -->
     </branch>
@@ -103,7 +99,7 @@
       <dep package="openh264"/>
       <dep package="aom"/>
     </dependencies>
-    <branch hash="sha256:b2224e5d9c1b85ad51233f6135524bb9e16a9172d395edc79c73b89094659fd5" module="gst-plugins-bad/gst-plugins-bad-${version}.tar.xz" repo="gstreamer" version="1.14.3">
+    <branch hash="sha256:910b4e0e2e897e8b6d06767af1779d70057c309f67292f485ff988d087aa0de5" module="gst-plugins-bad/gst-plugins-bad-${version}.tar.xz" repo="gstreamer" version="1.14.4">
       <patch file="gst-plugins-bad-0001-aomenc-Add-support-for-10-12bit-decoding.patch" strip="1" /> <!-- Merged as 1d96d9e842dd71882f54ddffbf6c1ccecdb03fcd (to be shipped in 1.16) -->
       <patch file="gst-plugins-bad-0002-aomenc-Handle-8-bit_depth-images-with-AOM_IMG_FMT_HI.patch" strip="1" /> <!-- Merged as 10a37e0c3528a721084441c37af37baef0908ddc (to be shipped in 1.16) -->
     </branch>
@@ -113,11 +109,11 @@
     <dependencies>
       <dep package="gst-plugins-base"/>
     </dependencies>
-    <branch hash="sha256:9b03529bb45785ad1b6b1f4856c52a832ad5fc472285ce49174439e8015ab677" module="gst-libav/gst-libav-${version}.tar.xz" repo="gstreamer" version="1.14.3" />
+    <branch hash="sha256:dfd78591901df7853eab7e56a86c34a1b03635da0d3d56b89aa577f1897865da" module="gst-libav/gst-libav-${version}.tar.xz" repo="gstreamer" version="1.14.4" />
   </autotools>
 
   <autotools id="gstreamer-vaapi" autogen-sh="configure" autogenargs="--disable-examples --disable-gtk-doc">
-    <branch hash="sha256:8f5e65cb96aa6e44ff80926366d4a6fef9b8da68a04bab4bf2cbed93941c74f0" module="gstreamer-vaapi/gstreamer-vaapi-${version}.tar.xz" repo="gstreamer" version="1.14.3" />
+    <branch hash="sha256:ce18dbfe961c6a8d31270231686075586bf7a7df62b778c8e7f5ec148251d0a3" module="gstreamer-vaapi/gstreamer-vaapi-${version}.tar.xz" repo="gstreamer" version="1.14.4" />
     <dependencies>
       <dep package="gstreamer"/>
       <dep package="gst-plugins-base"/>

Deleted: trunk/Tools/gstreamer/patches/gst-plugins-good-0007-matroskademux-Allow-Matroska-headers-to-be-read-more.patch (236959 => 236960)


--- trunk/Tools/gstreamer/patches/gst-plugins-good-0007-matroskademux-Allow-Matroska-headers-to-be-read-more.patch	2018-10-09 09:14:37 UTC (rev 236959)
+++ trunk/Tools/gstreamer/patches/gst-plugins-good-0007-matroskademux-Allow-Matroska-headers-to-be-read-more.patch	2018-10-09 13:54:57 UTC (rev 236960)
@@ -1,45 +0,0 @@
-From 9dc7859184d4b7ad1dd7e2b54704e994dbace329 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Alicia=20Boya=20Garc=C3=ADa?= <ntr...@gmail.com>
-Date: Thu, 30 Nov 2017 20:44:23 +0100
-Subject: [PATCH 7/9] matroskademux: Allow Matroska headers to be read more
- than once
-
-This is necessary for MSE, where a new MSE initialization segment may be
-appended at any point. These MSE initialization segments consist of an
-entire WebM file until the first Cluster element (not included). [1]
-
-Note that track definitions are ignored on successive headers, they must
-match, but this is not checked by matroskademux (look for
-`(!demux->tracks_parsed)` in the code).
-
-Source pads are not altered when the new headers are read.
-
-This patch has been splitted from the original patch from eocanha in [2].
-
-[1] https://www.w3.org/TR/mse-byte-stream-format-webm/
-[2] https://bug334082.bugzilla-attachments.gnome.org/attachment.cgi?id=362212
-
-https://bugzilla.gnome.org/show_bug.cgi?id=793333
----
- gst/matroska/matroska-demux.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c
-index b7e13bb80..24a729485 100644
---- a/gst/matroska/matroska-demux.c
-+++ b/gst/matroska/matroska-demux.c
-@@ -4984,6 +4984,11 @@ gst_matroska_demux_parse_id (GstMatroskaDemux * demux, guint32 id,
-     case GST_MATROSKA_READ_STATE_DATA:
-     case GST_MATROSKA_READ_STATE_SEEK:
-       switch (id) {
-+        case GST_EBML_ID_HEADER:
-+          GST_READ_CHECK (gst_matroska_demux_flush (demux, read));
-+          demux->common.state = GST_MATROSKA_READ_STATE_SEGMENT;
-+          gst_matroska_demux_check_seekability (demux);
-+          break;
-         case GST_MATROSKA_ID_SEGMENTINFO:
-           if (!demux->common.segmentinfo_parsed) {
-             GST_READ_CHECK (gst_matroska_demux_take (demux, read, &ebml));
--- 
-2.17.1
-

Deleted: trunk/Tools/gstreamer/patches/gst-plugins-good-0008-matroskademux-Refactor-track-parsing-out-from-adding.patch (236959 => 236960)


--- trunk/Tools/gstreamer/patches/gst-plugins-good-0008-matroskademux-Refactor-track-parsing-out-from-adding.patch	2018-10-09 09:14:37 UTC (rev 236959)
+++ trunk/Tools/gstreamer/patches/gst-plugins-good-0008-matroskademux-Refactor-track-parsing-out-from-adding.patch	2018-10-09 13:54:57 UTC (rev 236960)
@@ -1,266 +0,0 @@
-From 1ef01359e5ab267ea13253cea688869697f7ff0d Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Alicia=20Boya=20Garc=C3=ADa?= <ab...@igalia.com>
-Date: Mon, 24 Sep 2018 17:20:15 +0200
-Subject: [PATCH] (backport for 1.4.13) matroskademux: Refactor track parsing
- out from adding tracks
-
-This splits gst_matroska_demux_add_stream() into:
-
-* gst_matroska_demux_parse_stream(): will read the Matroska bytestream
-  and fill a GstMatroskaTrackContext.
-
-* gst_matroska_demux_parse_tracks(): will check there are no repeated
-  tracks.
-
-* gst_matroska_demux_add_stream(): creates and sets up the pad for the
-  track.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=793333
----
- gst/matroska/matroska-demux.c | 114 +++++++++++++++++++++-------------
- 1 file changed, 72 insertions(+), 42 deletions(-)
-
-diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c
-index 3f329ed6e..7c8990cf4 100644
---- a/gst/matroska/matroska-demux.c
-+++ b/gst/matroska/matroska-demux.c
-@@ -575,21 +575,16 @@ beach:
- }
- 
- static GstFlowReturn
--gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml)
-+gst_matroska_demux_parse_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml,
-+    GstMatroskaTrackContext ** dest_context)
- {
--  GstElementClass *klass = GST_ELEMENT_GET_CLASS (demux);
-   GstMatroskaTrackContext *context;
--  GstPadTemplate *templ = NULL;
--  GstStreamFlags stream_flags;
-   GstCaps *caps = NULL;
-   GstTagList *cached_taglist;
--  gchar *padname = NULL;
-   GstFlowReturn ret;
-   guint32 id, riff_fourcc = 0;
-   guint16 riff_audio_fmt = 0;
--  GstEvent *stream_start;
-   gchar *codec = NULL;
--  gchar *stream_id;
- 
-   DEBUG_ELEMENT_START (demux, ebml, "TrackEntry");
- 
-@@ -602,8 +597,6 @@ gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml)
-   /* allocate generic... if we know the type, we'll g_renew()
-    * with the precise type */
-   context = g_new0 (GstMatroskaTrackContext, 1);
--  g_ptr_array_add (demux->common.src, context);
--  context->index = demux->common.num_streams;
-   context->index_writer_id = -1;
-   context->type = 0;            /* no type yet */
-   context->default_duration = 0;
-@@ -620,10 +613,9 @@ gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml)
-   context->dts_only = FALSE;
-   context->intra_only = FALSE;
-   context->tags = gst_tag_list_new_empty ();
--  demux->common.num_streams++;
--  g_assert (demux->common.src->len == demux->common.num_streams);
- 
--  GST_DEBUG_OBJECT (demux, "Stream number %d", context->index);
-+  GST_DEBUG_OBJECT (demux, "Parsing a TrackEntry (%d tracks parsed so far)",
-+      demux->common.num_streams);
- 
-   /* try reading the trackentry headers */
-   while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) {
-@@ -642,12 +634,6 @@ gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml)
-           GST_ERROR_OBJECT (demux, "Invalid TrackNumber 0");
-           ret = GST_FLOW_ERROR;
-           break;
--        } else if (!gst_matroska_read_common_tracknumber_unique (&demux->common,
--                num)) {
--          GST_ERROR_OBJECT (demux, "TrackNumber %" G_GUINT64_FORMAT
--              " is not unique", num);
--          ret = GST_FLOW_ERROR;
--          break;
-         }
- 
-         GST_DEBUG_OBJECT (demux, "TrackNumber: %" G_GUINT64_FORMAT, num);
-@@ -714,8 +700,6 @@ gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml)
-             context->type = 0;
-             break;
-         }
--        g_ptr_array_index (demux->common.src, demux->common.num_streams - 1)
--            = context;
-         break;
-       }
- 
-@@ -734,8 +718,6 @@ gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml)
-           break;
-         }
-         videocontext = (GstMatroskaTrackVideoContext *) context;
--        g_ptr_array_index (demux->common.src, demux->common.num_streams - 1)
--            = context;
- 
-         while (ret == GST_FLOW_OK &&
-             gst_ebml_read_has_remaining (ebml, 1, TRUE)) {
-@@ -1011,8 +993,6 @@ gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml)
-           break;
- 
-         audiocontext = (GstMatroskaTrackAudioContext *) context;
--        g_ptr_array_index (demux->common.src, demux->common.num_streams - 1)
--            = context;
- 
-         while (ret == GST_FLOW_OK &&
-             gst_ebml_read_has_remaining (ebml, 1, TRUE)) {
-@@ -1341,11 +1321,9 @@ gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml)
-     if (ret == GST_FLOW_OK || ret == GST_FLOW_EOS)
-       GST_WARNING_OBJECT (ebml, "Unknown stream/codec in track entry header");
- 
--    demux->common.num_streams--;
--    g_ptr_array_remove_index (demux->common.src, demux->common.num_streams);
--    g_assert (demux->common.src->len == demux->common.num_streams);
-     gst_matroska_track_free (context);
--
-+    context = NULL;
-+    *dest_context = NULL;
-     return ret;
-   }
- 
-@@ -1356,14 +1334,12 @@ gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml)
-   if (cached_taglist)
-     gst_tag_list_insert (context->tags, cached_taglist, GST_TAG_MERGE_APPEND);
- 
--  /* now create the GStreamer connectivity */
-+  /* compute caps */
-   switch (context->type) {
-     case GST_MATROSKA_TRACK_TYPE_VIDEO:{
-       GstMatroskaTrackVideoContext *videocontext =
-           (GstMatroskaTrackVideoContext *) context;
- 
--      padname = g_strdup_printf ("video_%u", demux->num_v_streams++);
--      templ = gst_element_class_get_pad_template (klass, "video_%u");
-       caps = gst_matroska_demux_video_caps (videocontext,
-           context->codec_id, context->codec_priv,
-           context->codec_priv_size, &codec, &riff_fourcc);
-@@ -1381,8 +1357,6 @@ gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml)
-       GstMatroskaTrackAudioContext *audiocontext =
-           (GstMatroskaTrackAudioContext *) context;
- 
--      padname = g_strdup_printf ("audio_%u", demux->num_a_streams++);
--      templ = gst_element_class_get_pad_template (klass, "audio_%u");
-       caps = gst_matroska_demux_audio_caps (audiocontext,
-           context->codec_id, context->codec_priv, context->codec_priv_size,
-           &codec, &riff_audio_fmt);
-@@ -1400,8 +1374,6 @@ gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml)
-       GstMatroskaTrackSubtitleContext *subtitlecontext =
-           (GstMatroskaTrackSubtitleContext *) context;
- 
--      padname = g_strdup_printf ("subtitle_%u", demux->num_t_streams++);
--      templ = gst_element_class_get_pad_template (klass, "subtitle_%u");
-       caps = gst_matroska_demux_subtitle_caps (subtitlecontext,
-           context->codec_id, context->codec_priv, context->codec_priv_size);
-       break;
-@@ -1468,9 +1440,56 @@ gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml)
-         context->stream_headers, caps);
-   }
- 
-+  context->caps = caps;
-+
-+  /* tadaah! */
-+  *dest_context = context;
-+  return ret;
-+}
-+
-+static void
-+gst_matroska_demux_add_stream (GstMatroskaDemux * demux,
-+    GstMatroskaTrackContext * context)
-+{
-+  GstElementClass *klass = GST_ELEMENT_GET_CLASS (demux);
-+  gchar *padname = NULL;
-+  GstPadTemplate *templ = NULL;
-+  GstStreamFlags stream_flags;
-+
-+  GstEvent *stream_start;
-+
-+  gchar *stream_id;
-+
-+  g_ptr_array_add (demux->common.src, context);
-+  context->index = demux->common.num_streams++;
-+  g_assert (demux->common.src->len == demux->common.num_streams);
-+  g_ptr_array_index (demux->common.src, demux->common.num_streams - 1) =
-+      context;
-+
-+  /* now create the GStreamer connectivity */
-+  switch (context->type) {
-+    case GST_MATROSKA_TRACK_TYPE_VIDEO:
-+      padname = g_strdup_printf ("video_%u", demux->num_v_streams++);
-+      templ = gst_element_class_get_pad_template (klass, "video_%u");
-+      break;
-+
-+    case GST_MATROSKA_TRACK_TYPE_AUDIO:
-+      padname = g_strdup_printf ("audio_%u", demux->num_a_streams++);
-+      templ = gst_element_class_get_pad_template (klass, "audio_%u");
-+      break;
-+
-+    case GST_MATROSKA_TRACK_TYPE_SUBTITLE:
-+      padname = g_strdup_printf ("subtitle_%u", demux->num_t_streams++);
-+      templ = gst_element_class_get_pad_template (klass, "subtitle_%u");
-+      break;
-+
-+    default:
-+      /* we should already have quit by now */
-+      g_assert_not_reached ();
-+  }
-+
-   /* the pad in here */
-   context->pad = gst_pad_new_from_template (templ, padname);
--  context->caps = caps;
- 
-   gst_pad_set_event_function (context->pad,
-       GST_DEBUG_FUNCPTR (gst_matroska_demux_handle_src_event));
-@@ -1478,7 +1497,7 @@ gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml)
-       GST_DEBUG_FUNCPTR (gst_matroska_demux_handle_src_query));
- 
-   GST_INFO_OBJECT (demux, "Adding pad '%s' with caps %" GST_PTR_FORMAT,
--      padname, caps);
-+      padname, context->caps);
- 
-   gst_pad_set_element_private (context->pad, context);
- 
-@@ -1543,9 +1562,6 @@ gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml)
-   gst_flow_combiner_add_pad (demux->flowcombiner, context->pad);
- 
-   g_free (padname);
--
--  /* tadaah! */
--  return ret;
- }
- 
- static gboolean
-@@ -2768,9 +2784,23 @@ gst_matroska_demux_parse_tracks (GstMatroskaDemux * demux, GstEbmlRead * ebml)
- 
-     switch (id) {
-         /* one track within the "all-tracks" header */
--      case GST_MATROSKA_ID_TRACKENTRY:
--        ret = gst_matroska_demux_add_stream (demux, ebml);
-+      case GST_MATROSKA_ID_TRACKENTRY:{
-+        GstMatroskaTrackContext *track;
-+        ret = gst_matroska_demux_parse_stream (demux, ebml, &track);
-+        if (track != NULL) {
-+          if (gst_matroska_read_common_tracknumber_unique (&demux->common,
-+                  track->num)) {
-+            gst_matroska_demux_add_stream (demux, track);
-+          } else {
-+            GST_ERROR_OBJECT (demux,
-+                "TrackNumber %" G_GUINT64_FORMAT " is not unique", track->num);
-+            ret = GST_FLOW_ERROR;
-+            gst_matroska_track_free (track);
-+            track = NULL;
-+          }
-+        }
-         break;
-+      }
- 
-       default:
-         ret = gst_matroska_read_common_parse_skip (&demux->common, ebml,
--- 
-2.17.1
-

Deleted: trunk/Tools/gstreamer/patches/gst-plugins-good-0009-matroskademux-Parse-successive-Tracks-elements.patch (236959 => 236960)


--- trunk/Tools/gstreamer/patches/gst-plugins-good-0009-matroskademux-Parse-successive-Tracks-elements.patch	2018-10-09 09:14:37 UTC (rev 236959)
+++ trunk/Tools/gstreamer/patches/gst-plugins-good-0009-matroskademux-Parse-successive-Tracks-elements.patch	2018-10-09 13:54:57 UTC (rev 236960)
@@ -1,149 +0,0 @@
-From 0e60076a390fd3ef53d350940b2c695ff7bbe008 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Alicia=20Boya=20Garc=C3=ADa?= <ab...@igalia.com>
-Date: Fri, 21 Sep 2018 20:38:02 +0200
-Subject: [PATCH 9/9] matroskademux: Parse successive Tracks elements
-
-This patch allows matroskademux to parse a second Tracks element,
-erroring out if the tracks are not compatible (different number, type or
-codec) and emitting new caps and tag events should they have changed.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=793333
----
- gst/matroska/matroska-demux.c | 111 +++++++++++++++++++++++++++++++++-
- 1 file changed, 109 insertions(+), 2 deletions(-)
-
-diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c
-index 0e2157a15..77176fb62 100644
---- a/gst/matroska/matroska-demux.c
-+++ b/gst/matroska/matroska-demux.c
-@@ -3132,6 +3132,113 @@ gst_matroska_demux_parse_tracks (GstMatroskaDemux * demux, GstEbmlRead * ebml)
-   return ret;
- }
- 
-+static GstFlowReturn
-+gst_matroska_demux_update_tracks (GstMatroskaDemux * demux, GstEbmlRead * ebml)
-+{
-+  GstFlowReturn ret = GST_FLOW_OK;
-+  guint num_tracks_found = 0;
-+  guint32 id;
-+
-+  GST_INFO_OBJECT (demux, "Reparsing Tracks element");
-+
-+  DEBUG_ELEMENT_START (demux, ebml, "Tracks");
-+
-+  if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) {
-+    DEBUG_ELEMENT_STOP (demux, ebml, "Tracks", ret);
-+    return ret;
-+  }
-+
-+  while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) {
-+    if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK)
-+      break;
-+
-+    switch (id) {
-+        /* one track within the "all-tracks" header */
-+      case GST_MATROSKA_ID_TRACKENTRY:{
-+        GstMatroskaTrackContext *new_track;
-+        gint old_track_index;
-+        GstMatroskaTrackContext *old_track;
-+        ret = gst_matroska_demux_parse_stream (demux, ebml, &new_track);
-+        if (new_track == NULL)
-+          break;
-+        num_tracks_found++;
-+
-+        if (gst_matroska_read_common_tracknumber_unique (&demux->common,
-+                new_track->num)) {
-+          GST_ERROR_OBJECT (demux,
-+              "Unexpected new TrackNumber: %" G_GUINT64_FORMAT, new_track->num);
-+          goto track_mismatch_error;
-+        }
-+
-+        old_track_index =
-+            gst_matroska_read_common_stream_from_num (&demux->common,
-+            new_track->num);
-+        g_assert (old_track_index != -1);
-+        old_track = g_ptr_array_index (demux->common.src, old_track_index);
-+
-+        if (old_track->type != new_track->type) {
-+          GST_ERROR_OBJECT (demux,
-+              "Mismatch reparsing track %" G_GUINT64_FORMAT
-+              " on track type. Expected %d, found %d", new_track->num,
-+              old_track->type, new_track->type);
-+          goto track_mismatch_error;
-+        }
-+
-+        if (g_strcmp0 (old_track->codec_id, new_track->codec_id) != 0) {
-+          GST_ERROR_OBJECT (demux,
-+              "Mismatch reparsing track %" G_GUINT64_FORMAT
-+              " on codec id. Expected '%s', found '%s'", new_track->num,
-+              old_track->codec_id, new_track->codec_id);
-+          goto track_mismatch_error;
-+        }
-+
-+        /* The new track matches the old track. No problems on our side.
-+         * Let's make it replace the old track. */
-+        new_track->pad = old_track->pad;
-+        new_track->index = old_track->index;
-+        new_track->pos = old_track->pos;
-+        g_ptr_array_index (demux->common.src, old_track_index) = new_track;
-+        gst_pad_set_element_private (new_track->pad, new_track);
-+
-+        if (!gst_caps_is_equal (old_track->caps, new_track->caps)) {
-+          gst_pad_set_caps (new_track->pad, new_track->caps);
-+        }
-+
-+        if (!gst_tag_list_is_equal (old_track->tags, new_track->tags)) {
-+          GST_DEBUG_OBJECT (old_track->pad, "Sending tags %p: %"
-+              GST_PTR_FORMAT, new_track->tags, new_track->tags);
-+          gst_pad_push_event (new_track->pad,
-+              gst_event_new_tag (gst_tag_list_copy (new_track->tags)));
-+        }
-+
-+        gst_matroska_track_free (old_track);
-+        break;
-+
-+      track_mismatch_error:
-+        gst_matroska_track_free (new_track);
-+        new_track = NULL;
-+        ret = GST_FLOW_ERROR;
-+        break;
-+      }
-+
-+      default:
-+        ret = gst_matroska_read_common_parse_skip (&demux->common, ebml,
-+            "Track", id);
-+        break;
-+    }
-+  }
-+  DEBUG_ELEMENT_STOP (demux, ebml, "Tracks", ret);
-+
-+  if (ret != GST_FLOW_ERROR && demux->common.num_streams != num_tracks_found) {
-+    GST_ERROR_OBJECT (demux,
-+        "Mismatch on the number of tracks. Expected %du tracks, found %du",
-+        demux->common.num_streams, num_tracks_found);
-+    ret = GST_FLOW_ERROR;
-+  }
-+
-+  return ret;
-+}
-+
- /*
-  * Read signed/unsigned "EBML" numbers.
-  * Return: number of bytes processed.
-@@ -5031,11 +5138,11 @@ gst_matroska_demux_parse_id (GstMatroskaDemux * demux, guint32 id,
-           }
-           break;
-         case GST_MATROSKA_ID_TRACKS:
-+          GST_READ_CHECK (gst_matroska_demux_take (demux, read, &ebml));
-           if (!demux->tracks_parsed) {
--            GST_READ_CHECK (gst_matroska_demux_take (demux, read, &ebml));
-             ret = gst_matroska_demux_parse_tracks (demux, &ebml);
-           } else {
--            GST_READ_CHECK (gst_matroska_demux_flush (demux, read));
-+            ret = gst_matroska_demux_update_tracks (demux, &ebml);
-           }
-           break;
-         case GST_MATROSKA_ID_CLUSTER:
--- 
-2.17.1
-

Deleted: trunk/Tools/gstreamer/patches/gst-plugins-good-0010-matroskademux-Emit-no-more-pads-after-parsing-Tracks.patch (236959 => 236960)


--- trunk/Tools/gstreamer/patches/gst-plugins-good-0010-matroskademux-Emit-no-more-pads-after-parsing-Tracks.patch	2018-10-09 09:14:37 UTC (rev 236959)
+++ trunk/Tools/gstreamer/patches/gst-plugins-good-0010-matroskademux-Emit-no-more-pads-after-parsing-Tracks.patch	2018-10-09 13:54:57 UTC (rev 236960)
@@ -1,48 +0,0 @@
-From 7ceefec7141069b4adf4451a874766f8760c66d6 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Alicia=20Boya=20Garc=C3=ADa?= <ab...@igalia.com>
-Date: Fri, 21 Sep 2018 22:24:02 +0200
-Subject: [PATCH] matroskademux: Emit no-more-pads after parsing Tracks
-
-Currently matroskademux does not emit no-more-pads until the first
-Cluster is parsed, even though the Tracks have already been parsed and
-from that point on there can be no more tracks.
-
-This is important in MSE because the browser needs to know when the MSE
-initialization segment has been completely parsed so that it can expose
-the tracks to the user. Some applications depend on this been done
-before they feed frames to the demuxer.
-
-As a consequence, historically WebKit has relied on hacks such as
-listening to the `pad-added` event, which made impossible to support
-multiple tracks in the same file. Let's fix that.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=797187
----
- gst/matroska/matroska-demux.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c
-index 77176fb62..683380bbf 100644
---- a/gst/matroska/matroska-demux.c
-+++ b/gst/matroska/matroska-demux.c
-@@ -3128,6 +3128,8 @@ gst_matroska_demux_parse_tracks (GstMatroskaDemux * demux, GstEbmlRead * ebml)
-   DEBUG_ELEMENT_STOP (demux, ebml, "Tracks", ret);
- 
-   demux->tracks_parsed = TRUE;
-+  GST_DEBUG_OBJECT (demux, "signaling no more pads");
-+  gst_element_no_more_pads (GST_ELEMENT (demux));
- 
-   return ret;
- }
-@@ -5196,8 +5198,6 @@ gst_matroska_demux_parse_id (GstMatroskaDemux * demux, guint32 id,
-                     GST_TIME_ARGS (demux->common.segment.duration));
-               }
-             }
--            GST_DEBUG_OBJECT (demux, "signaling no more pads");
--            gst_element_no_more_pads (GST_ELEMENT (demux));
-             /* send initial segment - we wait till we know the first
-                incoming timestamp, so we can properly set the start of
-                the segment. */
--- 
-2.17.1
-
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to