From efd7817fa62646de95fb4f0773d25efbdea97d7f3f70963aab6d7aad2d1c9c8c Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Thu, 12 May 2022 13:15:09 +0000 Subject: [PATCH] Accepting request 975816 from home:alarrosa:branches:multimedia:libs Update to gstreamer-plugins-base 1.20.2 OBS-URL: https://build.opensuse.org/request/show/975816 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/gstreamer-plugins-base?expand=0&rev=181 --- ...4a11f90e3d70b24bf0c535ab0480fad9e701.patch | 177 ------------------ gst-plugins-base-1.20.1.tar.xz | 3 - gst-plugins-base-1.20.2.tar.xz | 3 + gstreamer-plugins-base.changes | 43 +++++ gstreamer-plugins-base.spec | 5 +- 5 files changed, 47 insertions(+), 184 deletions(-) delete mode 100644 5a074a11f90e3d70b24bf0c535ab0480fad9e701.patch delete mode 100644 gst-plugins-base-1.20.1.tar.xz create mode 100644 gst-plugins-base-1.20.2.tar.xz diff --git a/5a074a11f90e3d70b24bf0c535ab0480fad9e701.patch b/5a074a11f90e3d70b24bf0c535ab0480fad9e701.patch deleted file mode 100644 index 38ff135..0000000 --- a/5a074a11f90e3d70b24bf0c535ab0480fad9e701.patch +++ /dev/null @@ -1,177 +0,0 @@ -From 5a074a11f90e3d70b24bf0c535ab0480fad9e701 Mon Sep 17 00:00:00 2001 -From: Jan Schmidt -Date: Fri, 6 Aug 2021 19:27:02 +1000 -Subject: [PATCH] playsink: Complete reconfiguration on pad release. - -Requesting a new pad can start a reconfiguration cycle, where -playsink will block all input pads and wait for data on them -before doing internal reconfiguration. If a pad is released, -that reconfiguration might never trigger because it's now waiting -for a pad that doesn't exist any more. - -In that case, complete the reconfiguration on pad release. - -Part-of: ---- - .../gst/playback/gstplaysink.c | 89 ++++++++++++++----- - 1 file changed, 66 insertions(+), 23 deletions(-) - -diff --git a/subprojects/gst-plugins-base/gst/playback/gstplaysink.c b/subprojects/gst-plugins-base/gst/playback/gstplaysink.c -index 095a0bbcf31..ebef70d977e 100644 ---- a/subprojects/gst-plugins-base/gst/playback/gstplaysink.c -+++ b/subprojects/gst-plugins-base/gst/playback/gstplaysink.c -@@ -194,6 +194,7 @@ struct _GstPlaySink - - gboolean async_pending; - gboolean need_async_start; -+ gboolean reconfigure_pending; - - GstPlayFlags flags; - -@@ -412,6 +413,8 @@ static void gst_play_sink_navigation_init (gpointer g_iface, - static void gst_play_sink_colorbalance_init (gpointer g_iface, - gpointer g_iface_data); - -+static gboolean is_raw_pad (GstPad * pad); -+ - static void - _do_init_type (GType type) - { -@@ -3231,6 +3234,19 @@ gst_play_sink_do_reconfigure (GstPlaySink * playsink) - need_text = TRUE; - } - -+ if (playsink->video_pad) { -+ playsink->video_pad_raw = is_raw_pad (playsink->video_pad); -+ GST_DEBUG_OBJECT (playsink, "Video pad is raw: %d", -+ playsink->video_pad_raw); -+ } -+ -+ if (playsink->audio_pad) { -+ playsink->audio_pad_raw = is_raw_pad (playsink->audio_pad); -+ GST_DEBUG_OBJECT (playsink, "Audio pad is raw: %d", -+ playsink->audio_pad_raw); -+ } -+ -+ - if (((flags & GST_PLAY_FLAG_VIDEO) - || (flags & GST_PLAY_FLAG_NATIVE_VIDEO)) && playsink->video_pad) { - /* we have video and we are requested to show it */ -@@ -3881,6 +3897,9 @@ gst_play_sink_do_reconfigure (GstPlaySink * playsink) - update_av_offset (playsink); - update_text_offset (playsink); - do_async_done (playsink); -+ -+ playsink->reconfigure_pending = FALSE; -+ - GST_PLAY_SINK_UNLOCK (playsink); - - return TRUE; -@@ -4333,11 +4352,39 @@ gst_play_sink_reconfigure (GstPlaySink * playsink) - video_set_blocked (playsink, TRUE); - audio_set_blocked (playsink, TRUE); - text_set_blocked (playsink, TRUE); -+ playsink->reconfigure_pending = TRUE; - GST_PLAY_SINK_UNLOCK (playsink); - - return TRUE; - } - -+/* Called with PLAY_SINK_LOCK */ -+static gboolean -+gst_play_sink_ready_to_reconfigure_locked (GstPlaySink * playsink) -+{ -+ /* We reconfigure when for ALL streams: -+ * * there isn't a pad -+ * * OR the pad is blocked -+ * * OR there are no pending blocks on that pad -+ */ -+ if (playsink->reconfigure_pending == FALSE) -+ return FALSE; -+ -+ if (playsink->video_pad && !playsink->video_pad_blocked -+ && PENDING_VIDEO_BLOCK (playsink)) -+ return FALSE; -+ -+ if (playsink->audio_pad && !playsink->audio_pad_blocked -+ && PENDING_AUDIO_BLOCK (playsink)) -+ return FALSE; -+ -+ if (playsink->text_pad && !playsink->text_pad_blocked -+ && PENDING_TEXT_BLOCK (playsink)) -+ return FALSE; -+ -+ return TRUE; -+} -+ - static GstPadProbeReturn - sinkpad_blocked_cb (GstPad * blockedpad, GstPadProbeInfo * info, - gpointer user_data) -@@ -4365,31 +4412,9 @@ sinkpad_blocked_cb (GstPad * blockedpad, GstPadProbeInfo * info, - GST_DEBUG_OBJECT (pad, "Text pad blocked"); - } - -- /* We reconfigure when for ALL streams: -- * * there isn't a pad -- * * OR the pad is blocked -- * * OR there are no pending blocks on that pad -- */ -- -- if ((!playsink->video_pad || playsink->video_pad_blocked -- || !PENDING_VIDEO_BLOCK (playsink)) && (!playsink->audio_pad -- || playsink->audio_pad_blocked || !PENDING_AUDIO_BLOCK (playsink)) -- && (!playsink->text_pad || playsink->text_pad_blocked -- || !PENDING_TEXT_BLOCK (playsink))) { -+ if (gst_play_sink_ready_to_reconfigure_locked (playsink)) { - GST_DEBUG_OBJECT (playsink, "All pads blocked -- reconfiguring"); - -- if (playsink->video_pad) { -- playsink->video_pad_raw = is_raw_pad (playsink->video_pad); -- GST_DEBUG_OBJECT (playsink, "Video pad is raw: %d", -- playsink->video_pad_raw); -- } -- -- if (playsink->audio_pad) { -- playsink->audio_pad_raw = is_raw_pad (playsink->audio_pad); -- GST_DEBUG_OBJECT (playsink, "Audio pad is raw: %d", -- playsink->audio_pad_raw); -- } -- - gst_play_sink_do_reconfigure (playsink); - - video_set_blocked (playsink, FALSE); -@@ -4681,6 +4706,7 @@ gst_play_sink_release_pad (GstPlaySink * playsink, GstPad * pad) - res = &pad; - untarget = FALSE; - } -+ - GST_PLAY_SINK_UNLOCK (playsink); - - if (*res) { -@@ -4694,6 +4720,23 @@ gst_play_sink_release_pad (GstPlaySink * playsink, GstPad * pad) - gst_element_remove_pad (GST_ELEMENT_CAST (playsink), *res); - *res = NULL; - } -+ -+ GST_PLAY_SINK_LOCK (playsink); -+ -+ /* If we have a pending reconfigure, we might have met the conditions -+ * to reconfigure now */ -+ if (gst_play_sink_ready_to_reconfigure_locked (playsink)) { -+ GST_DEBUG_OBJECT (playsink, -+ "All pads ready after release -- reconfiguring"); -+ -+ gst_play_sink_do_reconfigure (playsink); -+ -+ video_set_blocked (playsink, FALSE); -+ audio_set_blocked (playsink, FALSE); -+ text_set_blocked (playsink, FALSE); -+ } -+ -+ GST_PLAY_SINK_UNLOCK (playsink); - } - - static void --- -GitLab - diff --git a/gst-plugins-base-1.20.1.tar.xz b/gst-plugins-base-1.20.1.tar.xz deleted file mode 100644 index 341647e..0000000 --- a/gst-plugins-base-1.20.1.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:96d8a6413ba9394fbec1217aeef63741a729d476a505a797c1d5337d8fa7c204 -size 3290068 diff --git a/gst-plugins-base-1.20.2.tar.xz b/gst-plugins-base-1.20.2.tar.xz new file mode 100644 index 0000000..cf2f360 --- /dev/null +++ b/gst-plugins-base-1.20.2.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab0656f2ad4d38292a803e0cb4ca090943a9b43c8063f650b4d3e3606c317f17 +size 3295552 diff --git a/gstreamer-plugins-base.changes b/gstreamer-plugins-base.changes index 350e6fb..cdc0dc3 100644 --- a/gstreamer-plugins-base.changes +++ b/gstreamer-plugins-base.changes @@ -1,3 +1,46 @@ +------------------------------------------------------------------- +Mon May 9 10:55:50 UTC 2022 - Antonio Larrosa + +- Update to version 1.20.2: + + appsrc: Clarify buffer ref semantics in signals documentation + + appsrc: fix annotations for bindings + + typefind: Skip extension parsing for data:// URIs, fixing + regression with mp4 files serialised to data uris + + playbin3: various fixes + + playbin3: fix missing lock when unknown stream type in + pad-removed cb + + decodebin3: fix collection leaks + + decodebin3: Don't duplicate stream selections + + discoverer: chain up to parent finalize methods in all our + types to fix memory leaks + + glmixerbin: slightly better pad/element creation + + gltransformation: let graphene alloc its structures memory + aligned + + ogg: fix possible buffer overrun + + rtpbasepayload: Don't write header extensions if there's no + corresponding... + + rtpbasepayload: always store input buffer meta before + negotiation + + rtpbasepayload: fix transfer annotation for push and push_list + + subparse: don't try to index string with -1 + + riff-media: fix memory leak after usage for g_strjoin() + + playbin/playbin3: Allow setting a NULL URI + + playsink: Complete reconfiguration on pad release. + + parsebin: Expose streams of unknown type + + pbutils: Fix wmv screen description detection + + subparse: don't deref a potentially NULL variable + + rawvideoparse: set format from caps in + gst_raw_video_parse_set_config_from_caps + + videodecoder: release stream lock after handling gap events + + videorate: fix assertion when pushing last and only buffer + without duration + + videorate: Revert "don't reset on segment update" to fix + segment handling regressions + + gst-play-1.0, gst-launch-1.0: Enable win32 high-resolution + timer also for MinGW build +- Drop patch already included in 1.20.2: + + 5a074a11f90e3d70b24bf0c535ab0480fad9e701.patch + ------------------------------------------------------------------- Sat Mar 26 17:25:23 UTC 2022 - Bjørn Lie diff --git a/gstreamer-plugins-base.spec b/gstreamer-plugins-base.spec index 1d24d8a..6c59677 100644 --- a/gstreamer-plugins-base.spec +++ b/gstreamer-plugins-base.spec @@ -20,7 +20,7 @@ %define gst_branch 1.0 %define gstreamer_req_version %(echo %{version} | sed -e "s/+.*//") Name: gstreamer-plugins-base -Version: 1.20.1 +Version: 1.20.2 Release: 0 Summary: GStreamer Streaming-Media Framework Plug-Ins License: GPL-2.0-or-later AND LGPL-2.1-or-later @@ -32,8 +32,6 @@ Source2: baselibs.conf Patch4: add_wayland_dep_to_tests.patch Patch5: MR-221-video-anc-add-two-new-CEA-608-caption-formats.patch -# PATCH-FIX-UPSTREAM 5a074a11f90e3d70b24bf0c535ab0480fad9e701.patch -- playsink: Complete reconfiguration on pad release -Patch6: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/5a074a11f90e3d70b24bf0c535ab0480fad9e701.patch BuildRequires: Mesa-libGLESv3-devel BuildRequires: cdparanoia-devel @@ -494,7 +492,6 @@ to compile and link applications that use gstreamer-plugins-base. %autosetup -n %{_name}-%{version} -N %patch4 -p1 %patch5 -p1 -%patch6 -p3 %build export PYTHON=%{_bindir}/python3