WebKit Bugzilla
Attachment 340963 Details for
Bug 185689
: [GStreamer] Update to GStreamer 1.14.1 in jhbuild
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
We are now using GStreamer 1.14.1 - specify in the ChangeLog
GStreamer-Update-to-GStreamer-1141-in-jhbuild.patch (text/plain), 26.84 KB, created by
Thibault Saunier
on 2018-05-22 01:48:01 PDT
(
hide
)
Description:
We are now using GStreamer 1.14.1 - specify in the ChangeLog
Filename:
MIME Type:
Creator:
Thibault Saunier
Created:
2018-05-22 01:48:01 PDT
Size:
26.84 KB
patch
obsolete
>From 09646bd91d8d8c395759caeff50530bd318caad1 Mon Sep 17 00:00:00 2001 >From: Thibault Saunier <tsaunier@igalia.com> >Date: Thu, 12 Apr 2018 09:56:30 -0300 >Subject: [PATCH xserver] [GStreamer] Update to GStreamer 1.14.1 in jhbuild > >And update the patches, removing the ones that have been merged upstream. > >https://bugs.webkit.org/show_bug.cgi?id=185689 >--- > Tools/ChangeLog | 19 +++ > Tools/gstreamer/jhbuild.modules | 32 ++--- > ...ufdec-stop-pretending-to-decode-gifs.patch | 30 ----- > ...-context-for-a-preferred-protection.patch} | 43 ++++--- > ...-buffers-without-encryption-info-in.patch} | 16 +-- > ...cookie-jar-and-context-query-support.patch | 120 ------------------ > ...assert-when-moof-contains-one-sample.patch | 31 ----- > ...-added-function-to-filter-system-ids.patch | 77 ----------- > 8 files changed, 57 insertions(+), 311 deletions(-) > delete mode 100644 Tools/gstreamer/patches/gst-plugins-good-0001-gstgdkpixbufdec-stop-pretending-to-decode-gifs.patch > rename Tools/gstreamer/patches/{gst-plugins-good-0006-qtdemux-add-context-for-a-preferred-protection.patch => gst-plugins-good-0002-qtdemux-add-context-for-a-preferred-protection.patch} (93%) > rename Tools/gstreamer/patches/{gst-plugins-good-0008-qtdemux-also-push-buffers-without-encryption-info-in.patch => gst-plugins-good-0003-qtdemux-also-push-buffers-without-encryption-info-in.patch} (86%) > delete mode 100644 Tools/gstreamer/patches/gst-plugins-good-0005-souphttpsrc-cookie-jar-and-context-query-support.patch > delete mode 100644 Tools/gstreamer/patches/gst-plugins-good-0009-qtdemux-fix-assert-when-moof-contains-one-sample.patch > delete mode 100644 Tools/gstreamer/patches/gstreamer-0001-protection-added-function-to-filter-system-ids.patch > >diff --git a/Tools/ChangeLog b/Tools/ChangeLog >index 8cb18d9cff7..9113d331f4e 100644 >--- a/Tools/ChangeLog >+++ b/Tools/ChangeLog >@@ -1,3 +1,22 @@ >+2018-05-16 Thibault Saunier <tsaunier@igalia.com> >+ >+ [GStreamer] Update to GStreamer 1.14.1 in jhbuild >+ https://bugs.webkit.org/show_bug.cgi?id=185689 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ And update the patches, removing the ones that have been merged upstream. >+ >+ * gstreamer/jhbuild.modules: >+ * gstreamer/patches/gst-plugins-good-0001-gstgdkpixbufdec-stop-pretending-to-decode-gifs.patch: Removed. >+ * gstreamer/patches/gst-plugins-good-0001-souphttpsrc-cookie-jar-and-context-query-support.patch: Removed. >+ * gstreamer/patches/gst-plugins-good-0002-qtdemux-add-context-for-a-preferred-protection.patch: Renamed from Tools/gstreamer/patches/gst-plugins-good-0006-qtdemux-add-context-for-a-preferred-protection.patch >+ This patch has now been merged in GStreamer master and will be there in GStreamer 1.16. >+ * gstreamer/patches/gst-plugins-good-0003-qtdemux-also-push-buffers-without-encryption-info-in.patch: Renamed from Tools/gstreamer/patches/gst-plugins-good-0008-qtdemux-also-push-buffers-without-encryption-info-in.patch. >+ This patch has now been merged in GStreamer master and will be there in GStreamer 1.16. >+ * gstreamer/patches/gst-plugins-good-0009-qtdemux-fix-assert-when-moof-contains-one-sample.patch: Removed. >+ * gstreamer/patches/gstreamer-0001-protection-added-function-to-filter-system-ids.patch: Removed. >+ > 2018-05-11 Leo Balter <leonardo.balter@gmail.com> > > Test262 Runner should search for the Debug JSC by default >diff --git a/Tools/gstreamer/jhbuild.modules b/Tools/gstreamer/jhbuild.modules >index 9912b3d6475..b1903ec3860 100644 >--- a/Tools/gstreamer/jhbuild.modules >+++ b/Tools/gstreamer/jhbuild.modules >@@ -44,10 +44,7 @@ > <dependencies> > <dep package="orc"/> > </dependencies> >- <branch module="gstreamer/gstreamer-${version}.tar.xz" version="1.12.4" >- repo="gstreamer" >- hash="sha256:5a8704aa4c2eeb04da192c4a9942f94f860ac1a585de90d9f914bac26a970674"> >- <patch file="gstreamer-0001-protection-added-function-to-filter-system-ids.patch" strip="1"/> >+ <branch hash="sha:28d82b0d261544a9bf85b429399929e4986eb00efcf1ce16cc71d269a4c3186c" module="gstreamer/gstreamer-${version}.tar.xz" repo="gstreamer" version="1.14.1"> > </branch> > </autotools> > >@@ -60,9 +57,7 @@ > <dependencies> > <dep package="gstreamer"/> > </dependencies> >- <branch module="gst-plugins-base/gst-plugins-base-${version}.tar.xz" version="1.12.4" >- repo="gstreamer" >- hash="sha256:4c306b03df0212f1b8903784e29bb3493319ba19ebebf13b0c56a17870292282"/> >+ <branch hash="sha:1026c7c3082d825d9b5d034c1a6dd8a4ebab60eb3738b0a0afde4ad2dc0b0db5" module="gst-plugins-base/gst-plugins-base-${version}.tar.xz" repo="gstreamer" version="1.14.1" /> > </autotools> > > <autotools id="gst-plugins-good" autogen-sh="configure" autogenargs="--disable-examples --disable-gtk-doc --disable-introspection"> >@@ -71,14 +66,9 @@ > <dep package="libvpx"/> > </dependencies> > >- <branch module="gst-plugins-good/gst-plugins-good-${version}.tar.xz" version="1.12.4" >- repo="gstreamer" >- hash="sha256:649f49bec60892d47ee6731b92266974c723554da1c6649f21296097715eb957"> >- <patch file="gst-plugins-good-0001-gstgdkpixbufdec-stop-pretending-to-decode-gifs.patch" strip="1"/> >- <patch file="gst-plugins-good-0005-souphttpsrc-cookie-jar-and-context-query-support.patch" strip="1"/> >- <patch file="gst-plugins-good-0006-qtdemux-add-context-for-a-preferred-protection.patch" strip="1"/> >- <patch file="gst-plugins-good-0008-qtdemux-also-push-buffers-without-encryption-info-in.patch" strip="1"/> >- <patch file="gst-plugins-good-0009-qtdemux-fix-assert-when-moof-contains-one-sample.patch" strip="1"/> >+ <branch hash="sha:34ec062ddb766a32377532e039781f4a16fbc3e8b449e642605bacab26a99172" module="gst-plugins-good/gst-plugins-good-${version}.tar.xz" repo="gstreamer" version="1.14.1"> >+ <patch file="gst-plugins-good-0002-qtdemux-add-context-for-a-preferred-protection.patch" strip="1" /> >+ <patch file="gst-plugins-good-0003-qtdemux-also-push-buffers-without-encryption-info-in.patch" strip="1" /> > </branch> > </autotools> > >@@ -88,24 +78,18 @@ > <dep package="gst-plugins-base"/> > <dep package="openh264"/> > </dependencies> >- <branch module="gst-plugins-bad/gst-plugins-bad-${version}.tar.xz" version="1.12.4" >- repo="gstreamer" >- hash="sha256:0c7857be16686d5c1ba6e34bd338664d3d4599d32714a8eca5c8a41a101e2d08"/> >+ <branch hash="sha:2a77c6908032aafdf2cd2e5823fec948f16a25c2d1497a953828d762dc20d61a" module="gst-plugins-bad/gst-plugins-bad-${version}.tar.xz" repo="gstreamer" version="1.14.1" /> > </autotools> > > <autotools id="gst-libav" autogen-sh="configure" autogenargs="--with-libav-extra-configure='--disable-yasm' --disable-gtk-doc"> > <dependencies> > <dep package="gst-plugins-base"/> > </dependencies> >- <branch module="gst-libav/gst-libav-${version}.tar.xz" version="1.12.4" >- repo="gstreamer" >- hash="sha256:2a56aa5d2d8cd912f2bce17f174713d2c417ca298f1f9c28ee66d4aa1e1d9e62"/> >+ <branch hash="sha:eff80a02d2f2fb9f34b67e9a26e9954d3218c7aa18e863f2a47805fa7066029d" module="gst-libav/gst-libav-${version}.tar.xz" repo="gstreamer" version="1.14.1" /> > </autotools> > > <autotools id="gstreamer-vaapi"> >- <branch module="gstreamer-vaapi/gstreamer-vaapi-${version}.tar.xz" version="1.12.4" >- repo="gstreamer" >- hash="sha256:1c2d77242e1f30c4d1394636cae9f6877228a017960fca96881e0080d8b6e9c9"/> >+ <branch hash="sha:585c3ddb0c39220de0a33e5d0ed6196a108b8407ec3538d7c64617713b4434e8" module="gstreamer-vaapi/gstreamer-vaapi-${version}.tar.xz" repo="gstreamer" version="1.14.1" /> > <dependencies> > <dep package="gstreamer"/> > <dep package="gst-plugins-base"/> >diff --git a/Tools/gstreamer/patches/gst-plugins-good-0001-gstgdkpixbufdec-stop-pretending-to-decode-gifs.patch b/Tools/gstreamer/patches/gst-plugins-good-0001-gstgdkpixbufdec-stop-pretending-to-decode-gifs.patch >deleted file mode 100644 >index 9592ccfb667..00000000000 >--- a/Tools/gstreamer/patches/gst-plugins-good-0001-gstgdkpixbufdec-stop-pretending-to-decode-gifs.patch >+++ /dev/null >@@ -1,30 +0,0 @@ >-From c7a172517deb7ca8920b6c910998cfecd8b1893d Mon Sep 17 00:00:00 2001 >-From: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com> >-Date: Tue, 13 Jun 2017 18:51:32 +0200 >-Subject: [PATCH] gstgdkpixbufdec: stop pretending to decode gifs. >- >-If you can't decode an animated gif, you can't decode a gif, >-so stop squatting GST_RANK_SECONDARY for that format, libav >-does a better job. >- >-https://bugzilla.gnome.org/show_bug.cgi?id=784683 >---- >- ext/gdk_pixbuf/gstgdkpixbufdec.c | 2 +- >- 1 file changed, 1 insertion(+), 1 deletion(-) >- >-diff --git a/ext/gdk_pixbuf/gstgdkpixbufdec.c b/ext/gdk_pixbuf/gstgdkpixbufdec.c >-index 1598c53be..09211bf17 100644 >---- a/ext/gdk_pixbuf/gstgdkpixbufdec.c >-+++ b/ext/gdk_pixbuf/gstgdkpixbufdec.c >-@@ -38,7 +38,7 @@ static GstStaticPadTemplate gst_gdk_pixbuf_dec_sink_template = >- GST_PAD_ALWAYS, >- GST_STATIC_CAPS ("image/png; " >- /* "image/jpeg; " disabled because we can't handle MJPEG */ >-- "image/gif; " >-+ /*"image/gif; " disabled because we can't handle animated gifs */ >- "image/x-icon; " >- "application/x-navi-animation; " >- "image/x-cmu-raster; " >--- >-2.15.1 >- >diff --git a/Tools/gstreamer/patches/gst-plugins-good-0006-qtdemux-add-context-for-a-preferred-protection.patch b/Tools/gstreamer/patches/gst-plugins-good-0002-qtdemux-add-context-for-a-preferred-protection.patch >similarity index 93% >rename from Tools/gstreamer/patches/gst-plugins-good-0006-qtdemux-add-context-for-a-preferred-protection.patch >rename to Tools/gstreamer/patches/gst-plugins-good-0002-qtdemux-add-context-for-a-preferred-protection.patch >index 67e8406456f..c265ab4f393 100644 >--- a/Tools/gstreamer/patches/gst-plugins-good-0006-qtdemux-add-context-for-a-preferred-protection.patch >+++ b/Tools/gstreamer/patches/gst-plugins-good-0002-qtdemux-add-context-for-a-preferred-protection.patch >@@ -1,7 +1,7 @@ >-From e09ab95ad39264783bf0e57dfb89165ad9b83802 Mon Sep 17 00:00:00 2001 >+From 0ba62ba4805e2cdbed17fa9934762d685be42fd4 Mon Sep 17 00:00:00 2001 > From: Xabier Rodriguez Calvar <calvaris@igalia.com> > Date: Wed, 21 Jun 2017 17:59:21 +0200 >-Subject: [PATCH] qtdemux: add context for a preferred protection >+Subject: [PATCH 2/7] qtdemux: add context for a preferred protection > > qtdemux selected the first system corresponding to a working GStreamer > decryptor. With this change, before selecting that decryptor, qtdemux >@@ -31,15 +31,15 @@ is dispatched to the decryptor, which can then decrypt the video successfully. > > https://bugzilla.gnome.org/show_bug.cgi?id=770107 > --- >- gst/isomp4/qtdemux.c | 200 +++++++++++++++++++++++++++++++++++++++++++++++++-- >+ gst/isomp4/qtdemux.c | 200 +++++++++++++++++++++++++++++++++++++++++-- > gst/isomp4/qtdemux.h | 1 + > 2 files changed, 195 insertions(+), 6 deletions(-) > > diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c >-index f0f8320e2..f710d2685 100644 >+index 705bdf7ca..da22463f8 100644 > --- a/gst/isomp4/qtdemux.c > +++ b/gst/isomp4/qtdemux.c >-@@ -513,6 +513,8 @@ static GstIndex *gst_qtdemux_get_index (GstElement * element); >+@@ -511,6 +511,8 @@ static GstIndex *gst_qtdemux_get_index (GstElement * element); > #endif > static GstStateChangeReturn gst_qtdemux_change_state (GstElement * element, > GstStateChange transition); >@@ -48,7 +48,7 @@ index f0f8320e2..f710d2685 100644 > static gboolean qtdemux_sink_activate (GstPad * sinkpad, GstObject * parent); > static gboolean qtdemux_sink_activate_mode (GstPad * sinkpad, > GstObject * parent, GstPadMode mode, gboolean active); >-@@ -602,6 +604,7 @@ gst_qtdemux_class_init (GstQTDemuxClass * klass) >+@@ -600,6 +602,7 @@ gst_qtdemux_class_init (GstQTDemuxClass * klass) > gstelement_class->set_index = GST_DEBUG_FUNCPTR (gst_qtdemux_set_index); > gstelement_class->get_index = GST_DEBUG_FUNCPTR (gst_qtdemux_get_index); > #endif >@@ -56,7 +56,7 @@ index f0f8320e2..f710d2685 100644 > > gst_tag_register_musicbrainz_tags (); > >-@@ -660,6 +663,7 @@ gst_qtdemux_init (GstQTDemux * qtdemux) >+@@ -658,6 +661,7 @@ gst_qtdemux_init (GstQTDemux * qtdemux) > qtdemux->cenc_aux_info_sizes = NULL; > qtdemux->cenc_aux_sample_count = 0; > qtdemux->protection_system_ids = NULL; >@@ -64,7 +64,7 @@ index f0f8320e2..f710d2685 100644 > g_queue_init (&qtdemux->protection_event_queue); > gst_segment_init (&qtdemux->segment, GST_FORMAT_TIME); > qtdemux->tag_list = gst_tag_list_new_empty (); >-@@ -2114,6 +2118,10 @@ gst_qtdemux_reset (GstQTDemux * qtdemux, gboolean hard) >+@@ -2121,6 +2125,10 @@ gst_qtdemux_reset (GstQTDemux * qtdemux, gboolean hard) > g_ptr_array_free (qtdemux->protection_system_ids, TRUE); > qtdemux->protection_system_ids = NULL; > } >@@ -75,10 +75,11 @@ index f0f8320e2..f710d2685 100644 > } else if (qtdemux->mss_mode) { > gst_flow_combiner_reset (qtdemux->flowcombiner); > for (n = 0; n < qtdemux->n_streams; n++) >-@@ -2600,6 +2608,28 @@ gst_qtdemux_change_state (GstElement * element, GstStateChange transition) >+@@ -2606,6 +2614,28 @@ gst_qtdemux_change_state (GstElement * element, GstStateChange transition) >+ return result; > } > >- static void >++static void > +gst_qtdemux_set_context (GstElement * element, GstContext * context) > +{ > + GstQTDemux *qtdemux = GST_QTDEMUX (element); >@@ -100,11 +101,10 @@ index f0f8320e2..f710d2685 100644 > + GST_ELEMENT_CLASS (parent_class)->set_context (element, context); > +} > + >-+static void >+ static void > qtdemux_parse_ftyp (GstQTDemux * qtdemux, const guint8 * buffer, gint length) > { >- /* counts as header data */ >-@@ -3829,6 +3859,8 @@ qtdemux_parse_pssh (GstQTDemux * qtdemux, GNode * node) >+@@ -3847,6 +3877,8 @@ qtdemux_parse_pssh (GstQTDemux * qtdemux, GNode * node) > event = gst_event_new_protection (sysid_string, pssh, > (parent_box_type == FOURCC_moov) ? "isobmff/moov" : "isobmff/moof"); > for (i = 0; i < qtdemux->n_streams; ++i) { >@@ -113,7 +113,7 @@ index f0f8320e2..f710d2685 100644 > g_queue_push_tail (&qtdemux->streams[i]->protection_scheme_event_queue, > gst_event_ref (event)); > } >-@@ -5538,6 +5570,8 @@ gst_qtdemux_decorate_and_push_buffer (GstQTDemux * qtdemux, >+@@ -5563,6 +5595,8 @@ gst_qtdemux_decorate_and_push_buffer (GstQTDemux * qtdemux, > GstEvent *event; > > while ((event = g_queue_pop_head (&stream->protection_scheme_event_queue))) { >@@ -122,10 +122,11 @@ index f0f8320e2..f710d2685 100644 > gst_pad_push_event (stream->pad, event); > } > >-@@ -7696,11 +7730,141 @@ qtdemux_do_allocation (GstQTDemux * qtdemux, QtDemuxStream * stream) >+@@ -7756,12 +7790,142 @@ qtdemux_do_allocation (GstQTDemux * qtdemux, QtDemuxStream * stream) >+ #endif > } > >- static gboolean >++static gboolean > +pad_query (const GValue * item, GValue * value, gpointer user_data) > +{ > + GstPad *pad = g_value_get_object (item); >@@ -255,7 +256,7 @@ index f0f8320e2..f710d2685 100644 > + gst_query_unref (query); > +} > + >-+static gboolean >+ static gboolean > gst_qtdemux_configure_protected_caps (GstQTDemux * qtdemux, > QtDemuxStream * stream) > { >@@ -265,7 +266,7 @@ index f0f8320e2..f710d2685 100644 > > g_return_val_if_fail (qtdemux != NULL, FALSE); > g_return_val_if_fail (stream != NULL, FALSE); >-@@ -7716,17 +7880,41 @@ gst_qtdemux_configure_protected_caps (GstQTDemux * qtdemux, >+@@ -7777,17 +7941,41 @@ gst_qtdemux_configure_protected_caps (GstQTDemux * qtdemux, > "cenc protection system information has been found"); > return FALSE; > } >@@ -313,10 +314,10 @@ index f0f8320e2..f710d2685 100644 > if (!gst_structure_has_name (s, "application/x-cenc")) { > gst_structure_set (s, > diff --git a/gst/isomp4/qtdemux.h b/gst/isomp4/qtdemux.h >-index ebd725871..b3d64a4e8 100644 >+index ad4da3ef2..079372356 100644 > --- a/gst/isomp4/qtdemux.h > +++ b/gst/isomp4/qtdemux.h >-@@ -154,6 +154,7 @@ struct _GstQTDemux { >+@@ -151,6 +151,7 @@ struct _GstQTDemux { > guint64 cenc_aux_info_offset; > guint8 *cenc_aux_info_sizes; > guint32 cenc_aux_sample_count; >@@ -325,5 +326,5 @@ index ebd725871..b3d64a4e8 100644 > > /* > -- >-2.11.0 >+2.17.0 > >diff --git a/Tools/gstreamer/patches/gst-plugins-good-0008-qtdemux-also-push-buffers-without-encryption-info-in.patch b/Tools/gstreamer/patches/gst-plugins-good-0003-qtdemux-also-push-buffers-without-encryption-info-in.patch >similarity index 86% >rename from Tools/gstreamer/patches/gst-plugins-good-0008-qtdemux-also-push-buffers-without-encryption-info-in.patch >rename to Tools/gstreamer/patches/gst-plugins-good-0003-qtdemux-also-push-buffers-without-encryption-info-in.patch >index 3fc1fce4cce..d17df692b4d 100644 >--- a/Tools/gstreamer/patches/gst-plugins-good-0008-qtdemux-also-push-buffers-without-encryption-info-in.patch >+++ b/Tools/gstreamer/patches/gst-plugins-good-0003-qtdemux-also-push-buffers-without-encryption-info-in.patch >@@ -1,18 +1,18 @@ >-From 78559bc5db3495f12b0284e4be5fc8bfcd7041e2 Mon Sep 17 00:00:00 2001 >+From 762e9c645ec13513c62eb5a3800d7406e01cdcb7 Mon Sep 17 00:00:00 2001 > From: =?UTF-8?q?Enrique=20Oca=C3=B1a=20Gonz=C3=A1lez?= <eocanha@igalia.com> > Date: Mon, 24 Apr 2017 17:22:02 +0000 >-Subject: [PATCH] qtdemux: also push buffers without encryption info instead of >- dropping them >+Subject: [PATCH 3/7] qtdemux: also push buffers without encryption info >+ instead of dropping them > > --- >- gst/isomp4/qtdemux.c | 26 ++++++++++++-------------- >- 1 file changed, 12 insertions(+), 14 deletions(-) >+ gst/isomp4/qtdemux.c | 39 +++++++++++++++++++-------------------- >+ 1 file changed, 19 insertions(+), 20 deletions(-) > > diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c >-index f0f8320..3f2c016 100644 >+index da22463f8..8e9f5b9ae 100644 > --- a/gst/isomp4/qtdemux.c > +++ b/gst/isomp4/qtdemux.c >-@@ -5541,26 +5541,25 @@ gst_qtdemux_decorate_and_push_buffer (GstQTDemux * qtdemux, >+@@ -5600,26 +5600,25 @@ gst_qtdemux_decorate_and_push_buffer (GstQTDemux * qtdemux, > gst_pad_push_event (stream->pad, event); > } > >@@ -59,5 +59,5 @@ index f0f8320..3f2c016 100644 > } > > -- >-2.11.0 >+2.17.0 > >diff --git a/Tools/gstreamer/patches/gst-plugins-good-0005-souphttpsrc-cookie-jar-and-context-query-support.patch b/Tools/gstreamer/patches/gst-plugins-good-0005-souphttpsrc-cookie-jar-and-context-query-support.patch >deleted file mode 100644 >index 8a3c062ab3f..00000000000 >--- a/Tools/gstreamer/patches/gst-plugins-good-0005-souphttpsrc-cookie-jar-and-context-query-support.patch >+++ /dev/null >@@ -1,120 +0,0 @@ >-From 5495e154c5ba05c7e254865e2ff6d1068f2dc6ca Mon Sep 17 00:00:00 2001 >-From: Philippe Normand <philn@igalia.com> >-Date: Wed, 28 Oct 2015 12:00:09 +0100 >-Subject: [PATCH] souphttpsrc: cookie jar and context query support >- >-Use a volatile Cookie jar to store cookies and handle the context >-query so that session data can be shared with other elements (like >-adaptivedemux). >- >-https://bugzilla.gnome.org/show_bug.cgi?id=726314 >---- >- ext/soup/gstsouphttpsrc.c | 41 +++++++++++++++++++++++++++++++++++++++-- >- ext/soup/gstsouphttpsrc.h | 1 + >- 2 files changed, 40 insertions(+), 2 deletions(-) >- >-diff --git a/ext/soup/gstsouphttpsrc.c b/ext/soup/gstsouphttpsrc.c >-index 52c1b8182..ac41692a5 100644 >---- a/ext/soup/gstsouphttpsrc.c >-+++ b/ext/soup/gstsouphttpsrc.c >-@@ -481,6 +481,7 @@ gst_soup_http_src_init (GstSoupHTTPSrc * src) >- src->cookies = NULL; >- src->iradio_mode = DEFAULT_IRADIO_MODE; >- src->session = NULL; >-+ src->cookie_jar = NULL; >- src->msg = NULL; >- src->timeout = DEFAULT_TIMEOUT; >- src->log_level = DEFAULT_SOUP_LOG_LEVEL; >-@@ -942,6 +943,9 @@ gst_soup_http_src_session_open (GstSoupHTTPSrc * src) >- soup_session_remove_feature_by_type (src->session, >- SOUP_TYPE_CONTENT_DECODER); >- >-+ src->cookie_jar = soup_cookie_jar_new (); >-+ soup_session_add_feature (src->session, >-+ SOUP_SESSION_FEATURE (src->cookie_jar)); >- return TRUE; >- } >- >-@@ -957,6 +961,11 @@ gst_soup_http_src_session_close (GstSoupHTTPSrc * src) >- src->msg = NULL; >- } >- >-+ if (src->cookie_jar) { >-+ g_object_unref (src->cookie_jar); >-+ src->cookie_jar = NULL; >-+ } >-+ >- if (src->session) { >- soup_session_abort (src->session); >- g_object_unref (src->session); >-@@ -1372,11 +1381,12 @@ gst_soup_http_src_build_message (GstSoupHTTPSrc * src, const gchar * method) >- } >- if (src->cookies) { >- gchar **cookie; >-+ SoupURI *uri = soup_uri_new (src->location); >- >- for (cookie = src->cookies; *cookie != NULL; cookie++) { >-- soup_message_headers_append (src->msg->request_headers, "Cookie", >-- *cookie); >-+ soup_cookie_jar_set_cookie (src->cookie_jar, uri, *cookie); >- } >-+ soup_uri_free (uri); >- } >- >- soup_message_set_flags (src->msg, SOUP_MESSAGE_OVERWRITE_CHUNKS | >-@@ -1888,6 +1898,12 @@ gst_soup_http_src_query (GstBaseSrc * bsrc, GstQuery * query) >- gboolean ret; >- GstSchedulingFlags flags; >- gint minsize, maxsize, align; >-+ GstContext *context; >-+ GstStructure *context_structure; >-+ char *cookie; >-+ const gchar *cookies[2]; >-+ const gchar *context_type; >-+ SoupURI *uri; >- >- switch (GST_QUERY_TYPE (query)) { >- case GST_QUERY_URI: >-@@ -1899,6 +1915,27 @@ gst_soup_http_src_query (GstBaseSrc * bsrc, GstQuery * query) >- } >- ret = TRUE; >- break; >-+ case GST_QUERY_CONTEXT: >-+ if (gst_query_parse_context_type (query, &context_type) >-+ && !g_strcmp0 (context_type, "http-headers")) { >-+ uri = soup_uri_new (src->location); >-+ cookie = soup_cookie_jar_get_cookies (src->cookie_jar, uri, TRUE); >-+ context = gst_context_new ("http-headers", FALSE); >-+ gst_context_make_writable (context); >-+ context_structure = gst_context_writable_structure (context); >-+ if (cookie != NULL) { >-+ cookies[0] = cookie; >-+ cookies[1] = NULL; >-+ gst_structure_set (context_structure, "cookies", G_TYPE_STRV, cookies, >-+ NULL); >-+ g_free (cookie); >-+ } >-+ gst_query_set_context (query, context); >-+ soup_uri_free (uri); >-+ ret = TRUE; >-+ break; >-+ } >-+ >- default: >- ret = FALSE; >- break; >-diff --git a/ext/soup/gstsouphttpsrc.h b/ext/soup/gstsouphttpsrc.h >-index f140f80c5..52b32c768 100644 >---- a/ext/soup/gstsouphttpsrc.h >-+++ b/ext/soup/gstsouphttpsrc.h >-@@ -60,6 +60,7 @@ struct _GstSoupHTTPSrc { >- gchar *proxy_pw; /* Authentication user password for proxy URI. */ >- gchar **cookies; /* HTTP request cookies. */ >- SoupSession *session; /* Async context. */ >-+ SoupCookieJar *cookie_jar; /* Volatile HTTP cookie storage */ >- SoupMessage *msg; /* Request message. */ >- gint retry_count; /* Number of retries since we received data */ >- gint max_retries; /* Maximum number of retries */ >--- >-2.11.0 >- >diff --git a/Tools/gstreamer/patches/gst-plugins-good-0009-qtdemux-fix-assert-when-moof-contains-one-sample.patch b/Tools/gstreamer/patches/gst-plugins-good-0009-qtdemux-fix-assert-when-moof-contains-one-sample.patch >deleted file mode 100644 >index 06432694950..00000000000 >--- a/Tools/gstreamer/patches/gst-plugins-good-0009-qtdemux-fix-assert-when-moof-contains-one-sample.patch >+++ /dev/null >@@ -1,31 +0,0 @@ >-From e667ac33dcc039698ee311c22d7b37bedf48df3c Mon Sep 17 00:00:00 2001 >-From: Nael Ouedraogo <nael.ouedraogo@crf.canon.fr> >-Date: Fri, 22 Sep 2017 18:41:52 +0200 >-Subject: [PATCH] qtdemux: fix assert when moof contains one sample >- >-Avoid computing frame rate when a stream contain moof with only one >-sample, to avoid an assert. The moof is considered as still picture. >- >-[ Merged in upstream commit 728a1629cf9fd7f4a728477bda1d13a1ecc219bb ] >- >---- >- gst/isomp4/qtdemux.c | 3 ++- >- 1 file changed, 2 insertions(+), 1 deletion(-) >- >-diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c >-index 5f4de422e..f839d82f6 100644 >---- a/gst/isomp4/qtdemux.c >-+++ b/gst/isomp4/qtdemux.c >-@@ -7531,7 +7531,8 @@ gst_qtdemux_configure_stream (GstQTDemux * qtdemux, QtDemuxStream * stream) >- * qt does not have a fixed framerate. */ >- gboolean fps_available = TRUE; >- >-- if ((stream->n_samples == 1) && (stream->first_duration == 0)) { >-+ if ((stream->n_samples == 1 && stream->first_duration == 0) >-+ || (qtdemux->fragmented && stream->n_samples_moof == 1)) { >- /* still frame */ >- stream->fps_n = 0; >- stream->fps_d = 1; >--- >-2.14.1 >- >diff --git a/Tools/gstreamer/patches/gstreamer-0001-protection-added-function-to-filter-system-ids.patch b/Tools/gstreamer/patches/gstreamer-0001-protection-added-function-to-filter-system-ids.patch >deleted file mode 100644 >index e72ef6c132c..00000000000 >--- a/Tools/gstreamer/patches/gstreamer-0001-protection-added-function-to-filter-system-ids.patch >+++ /dev/null >@@ -1,77 +0,0 @@ >-From 7772eb350591682b6a315c8a87a58131f731f1d4 Mon Sep 17 00:00:00 2001 >-From: Xabier Rodriguez Calvar <calvaris@igalia.com> >-Date: Wed, 19 Oct 2016 16:44:16 +0200 >-Subject: [PATCH] protection: added function to filter system ids >- >-gst_protection_filter_systems_by_available_decryptors takes an array of >-strings and returns a new array of strings filtered by the avaible >-decryptors for them so the ones you get are the ones that you should be >-able to decrypt. >---- >- gst/gstprotection.c | 36 ++++++++++++++++++++++++++++++++++++ >- gst/gstprotection.h | 2 ++ >- 2 files changed, 38 insertions(+) >- >-diff --git a/gst/gstprotection.c b/gst/gstprotection.c >-index 8ee52ea..2d7e5e0 100644 >---- a/gst/gstprotection.c >-+++ b/gst/gstprotection.c >-@@ -191,6 +191,42 @@ gst_protection_select_system (const gchar ** system_identifiers) >- return retval; >- } >- >-+gchar ** >-+gst_protection_filter_systems_by_available_decryptors (const gchar ** >-+ system_identifiers) >-+{ >-+ GList *decryptors, *walk; >-+ gchar **retval; >-+ guint i = 0, decryptors_number; >-+ >-+ decryptors = >-+ gst_element_factory_list_get_elements (GST_ELEMENT_FACTORY_TYPE_DECRYPTOR, >-+ GST_RANK_MARGINAL); >-+ >-+ decryptors_number = g_list_length (decryptors); >-+ retval = g_new (gchar *, decryptors_number + 1); >-+ >-+ GST_TRACE ("found %u decrytors", decryptors_number); >-+ >-+ for (walk = decryptors; walk; walk = g_list_next (walk)) { >-+ GstElementFactory *fact = (GstElementFactory *) walk->data; >-+ >-+ const char *found_sys_id = >-+ gst_protection_factory_check (fact, system_identifiers); >-+ GST_TRACE ("factory %s is valid for %s", GST_OBJECT_NAME (fact), >-+ found_sys_id); >-+ >-+ if (found_sys_id) { >-+ retval[i++] = g_strdup (found_sys_id); >-+ } >-+ } >-+ retval[i] = NULL; >-+ >-+ gst_plugin_feature_list_free (decryptors); >-+ >-+ return retval; >-+} >-+ >- static const gchar * >- gst_protection_factory_check (GstElementFactory * fact, >- const gchar ** system_identifiers) >-diff --git a/gst/gstprotection.h b/gst/gstprotection.h >-index f2f54c4..95976c5 100644 >---- a/gst/gstprotection.h >-+++ b/gst/gstprotection.h >-@@ -66,6 +66,8 @@ GstProtectionMeta *gst_buffer_add_protection_meta (GstBuffer * buffer, >- GstStructure * info); >- >- const gchar *gst_protection_select_system (const gchar ** system_identifiers); >-+gchar ** gst_protection_filter_systems_by_available_decryptors ( >-+ const gchar ** system_identifiers); >- >- G_END_DECLS >- #endif /* __GST_PROTECTION_META_H__ */ >--- >-2.10.2 >- >-- >2.17.0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 185689
:
340506
|
340510
|
340962
|
340963
|
340968