Sync from SUSE:SLFO:Main gstreamer-plugins-base revision 680348a46b3af9b57349079e0ac32f8c

This commit is contained in:
Adrian Schröter 2024-10-03 15:11:37 +02:00
parent f9d6a0cbac
commit 58425f7efa
9 changed files with 170 additions and 96 deletions

View File

@ -1,10 +1,10 @@
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/221
Index: gst-plugins-base-1.22.0/gst-libs/gst/video/video-anc.c
Index: gst-plugins-base-1.24.5/gst-libs/gst/video/video-anc.c
===================================================================
--- gst-plugins-base-1.22.0.orig/gst-libs/gst/video/video-anc.c
+++ gst-plugins-base-1.22.0/gst-libs/gst/video/video-anc.c
@@ -1017,6 +1017,8 @@ gst_buffer_add_video_caption_meta (GstBu
--- gst-plugins-base-1.24.5.orig/gst-libs/gst/video/video-anc.c
+++ gst-plugins-base-1.24.5/gst-libs/gst/video/video-anc.c
@@ -1022,6 +1022,8 @@ gst_buffer_add_video_caption_meta (GstBu
switch (caption_type) {
case GST_VIDEO_CAPTION_TYPE_CEA608_RAW:
case GST_VIDEO_CAPTION_TYPE_CEA608_S334_1A:
@ -13,7 +13,7 @@ Index: gst-plugins-base-1.22.0/gst-libs/gst/video/video-anc.c
case GST_VIDEO_CAPTION_TYPE_CEA708_RAW:
case GST_VIDEO_CAPTION_TYPE_CEA708_CDP:
break;
@@ -1066,6 +1068,10 @@ gst_video_caption_type_from_caps (const
@@ -1071,6 +1073,10 @@ gst_video_caption_type_from_caps (const
return GST_VIDEO_CAPTION_TYPE_CEA608_RAW;
} else if (g_strcmp0 (format, "s334-1a") == 0) {
return GST_VIDEO_CAPTION_TYPE_CEA608_S334_1A;
@ -24,7 +24,7 @@ Index: gst-plugins-base-1.22.0/gst-libs/gst/video/video-anc.c
}
} else if (gst_structure_has_name (s, "closedcaption/x-cea-708")) {
if (g_strcmp0 (format, "cc_data") == 0) {
@@ -1103,6 +1109,14 @@ gst_video_caption_type_to_caps (GstVideo
@@ -1108,6 +1114,14 @@ gst_video_caption_type_to_caps (GstVideo
caption_caps = gst_caps_new_simple ("closedcaption/x-cea-608",
"format", G_TYPE_STRING, "s334-1a", NULL);
break;
@ -39,11 +39,11 @@ Index: gst-plugins-base-1.22.0/gst-libs/gst/video/video-anc.c
case GST_VIDEO_CAPTION_TYPE_CEA708_RAW:
caption_caps = gst_caps_new_simple ("closedcaption/x-cea-708",
"format", G_TYPE_STRING, "cc_data", NULL);
Index: gst-plugins-base-1.22.0/gst-libs/gst/video/video-anc.h
Index: gst-plugins-base-1.24.5/gst-libs/gst/video/video-anc.h
===================================================================
--- gst-plugins-base-1.22.0.orig/gst-libs/gst/video/video-anc.h
+++ gst-plugins-base-1.22.0/gst-libs/gst/video/video-anc.h
@@ -345,7 +345,53 @@ GstVideoBarMeta *gst_buffer_add_video_ba
--- gst-plugins-base-1.24.5.orig/gst-libs/gst/video/video-anc.h
+++ gst-plugins-base-1.24.5/gst-libs/gst/video/video-anc.h
@@ -490,7 +490,53 @@ GstVideoBarMeta *gst_buffer_add_video_ba
* offset relative to the base-line of the original image format (line 9
* for 525-line field 1, line 272 for 525-line field 2, line 5 for
* 625-line field 1 and line 318 for 625-line field 2).
@ -98,7 +98,7 @@ Index: gst-plugins-base-1.22.0/gst-libs/gst/video/video-anc.h
* can also contain 608-in-708 and the first byte of each triplet has to
* be inspected for detecting the type.
* @GST_VIDEO_CAPTION_TYPE_CEA708_CDP: CEA-708 (and optionally CEA-608) in
@@ -361,7 +407,9 @@ typedef enum {
@@ -506,7 +552,9 @@ typedef enum {
GST_VIDEO_CAPTION_TYPE_CEA608_RAW = 1,
GST_VIDEO_CAPTION_TYPE_CEA608_S334_1A = 2,
GST_VIDEO_CAPTION_TYPE_CEA708_RAW = 3,

View File

@ -1,8 +1,8 @@
Index: gst-plugins-base-1.22.0/tests/check/meson.build
Index: gst-plugins-base-1.24.5/tests/check/meson.build
===================================================================
--- gst-plugins-base-1.22.0.orig/tests/check/meson.build
+++ gst-plugins-base-1.22.0/tests/check/meson.build
@@ -135,7 +135,7 @@ if build_gstgl
--- gst-plugins-base-1.24.5.orig/tests/check/meson.build
+++ gst-plugins-base-1.24.5/tests/check/meson.build
@@ -138,7 +138,7 @@ if build_gstgl
test_defines += ['-DTEST_GST_GL_ABI_CHECK']
endif

BIN
gst-plugins-base-1.24.0.tar.xz (Stored with Git LFS)

Binary file not shown.

BIN
gst-plugins-base-1.24.7.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -1,20 +0,0 @@
diff --git a/gst-libs/gst/audio/gstaudiobasesink.c b/gst-libs/gst/audio/gstaudiobasesink.c
index 1f843ac..891941d 100644
--- a/gst-libs/gst/audio/gstaudiobasesink.c
+++ b/gst-libs/gst/audio/gstaudiobasesink.c
@@ -1124,15 +1124,6 @@ gst_audio_base_sink_wait_event (GstBaseSink * bsink, GstEvent * event)
/* Make sure the ringbuffer will start again if interrupted during event_wait() */
g_atomic_int_set (&sink->eos_rendering, 1);
clear_force_start_flag = TRUE;
-
- /* For gap events, don't actually wait for the clock to
- * reach that time, or it will drain the ringbuffer, just
- * ensure we're prerolled and let the next actual buffer
- * get rendered where it belongs */
- if (GST_EVENT_TYPE (event) == GST_EVENT_GAP) {
- ret = gst_base_sink_do_preroll (bsink, GST_MINI_OBJECT_CAST (event));
- goto done;
- }
break;
default:
break;

View File

@ -0,0 +1,67 @@
From 378e78f285a3f14c0c53473948090464fa48147b Mon Sep 17 00:00:00 2001
From: Edward Hervey <edward@centricular.com>
Date: Wed, 21 Aug 2024 16:29:03 +0200
Subject: [PATCH] decodebin3: Fix collection identity check
Collections can be auto-generated from upstream and yet have exactly the same
streams in it.
Therefore do a more in-depth check for equality.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3742
---
.../gst/playback/gstdecodebin3.c | 26 ++++++++++++++++++-
1 file changed, 25 insertions(+), 1 deletion(-)
diff --git a/gst/playback/gstdecodebin3.c b/gst/playback/gstdecodebin3.c
index 56ef496468ac..78b79c776ba6 100644
--- a/gst/playback/gstdecodebin3.c
+++ b/gst/playback/gstdecodebin3.c
@@ -2609,6 +2609,29 @@ db_collection_new (GstStreamCollection * collection)
return db_collection;
}
+static gboolean
+collections_are_identical (GstStreamCollection * collection,
+ GstStreamCollection * previous)
+{
+ guint i;
+
+ if (collection == previous)
+ return TRUE;
+
+ if (gst_stream_collection_get_size (collection) !=
+ gst_stream_collection_get_size (previous))
+ return FALSE;
+
+ for (i = 0; i < gst_stream_collection_get_size (previous); i++) {
+ GstStream *stream = gst_stream_collection_get_stream (previous, i);
+ const gchar *sid = gst_stream_get_stream_id (stream);
+ if (!stream_in_collection (collection, (gchar *) sid))
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
/** handle_stream_collection_locked:
* @dbin:
* @collection: (transfer none): The new collection for @input. Can be %NULL.
@@ -2683,12 +2706,13 @@ handle_stream_collection_locked (GstDecodebin3 * dbin,
if (dbin->input_collection) {
GstStreamCollection *previous = dbin->input_collection->collection;
- if (collection == previous) {
+ if (collections_are_identical (collection, previous)) {
GST_DEBUG_OBJECT (dbin, "Collection didn't change");
gst_object_unref (collection);
SELECTION_UNLOCK (dbin);
return NULL;
}
+
/* Check if this collection is an update of the previous one */
if (gst_stream_collection_get_size (collection) >
gst_stream_collection_get_size (previous)) {
--
GitLab

View File

@ -1,53 +0,0 @@
commit e68eccff103ab0e91e6d77a892f57131b33902f5
Author: Sebastian Dröge <sebastian@centricular.com>
Date: Thu Apr 25 15:21:20 2024 +0300
exiftag: Prevent integer overflows and out of bounds reads when handling undefined tags
Fixes ZDI-CAN-23896
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3483
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6766>
diff -Nura gst-plugins-base-1.24.0/gst-libs/gst/tag/gstexiftag.c gst-plugins-base-1.24.0_new/gst-libs/gst/tag/gstexiftag.c
--- gst-plugins-base-1.24.0/gst-libs/gst/tag/gstexiftag.c 2024-03-05 07:51:42.000000000 +0800
+++ gst-plugins-base-1.24.0_new/gst-libs/gst/tag/gstexiftag.c 2024-05-27 19:25:58.227183616 +0800
@@ -1383,6 +1383,7 @@
if (count > 4) {
GstMapInfo info;
+ gsize alloc_size;
if (offset < reader->base_offset) {
GST_WARNING ("Offset is smaller (%u) than base offset (%u)", offset,
@@ -1404,14 +1405,28 @@
return;
}
+ if (info.size - real_offset < count) {
+ GST_WARNING ("Invalid size %u for buffer of size %" G_GSIZE_FORMAT
+ ", not adding tag %s", count, info.size, tag->gst_tag);
+ gst_buffer_unmap (reader->buffer, &info);
+ return;
+ }
+
+ if (!g_size_checked_add (&alloc_size, count, 1)) {
+ GST_WARNING ("Invalid size %u for buffer of size %" G_GSIZE_FORMAT
+ ", not adding tag %s", real_offset, info.size, tag->gst_tag);
+ gst_buffer_unmap (reader->buffer, &info);
+ return;
+ }
+
/* +1 because it could be a string without the \0 */
- data = malloc (sizeof (guint8) * count + 1);
+ data = malloc (alloc_size);
memcpy (data, info.data + real_offset, count);
data[count] = 0;
gst_buffer_unmap (reader->buffer, &info);
} else {
- data = malloc (sizeof (guint8) * count + 1);
+ data = malloc (count + 1);
memcpy (data, (guint8 *) offset_as_data, count);
data[count] = 0;
}

View File

@ -1,3 +1,85 @@
-------------------------------------------------------------------
Fri Aug 23 07:15:20 UTC 2024 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 1.24.7:
+ pbutils: descriptions: use subsampling factor to get YUV
subsampling
+ rtspconnection: Handle invalid argument properly
+ urisourcebin:
- Actually drop EOS on old-school pad switch
- Don't hold lock when emitting about-to-finish
+ gst-launch deadlock with two playbin3s
+ xvimagesink: Fix crash in pool on error
-------------------------------------------------------------------
Wed Aug 21 15:43:45 UTC 2024 - Jonas Kvinge <jonaski@opensuse.org>
- Add gst-plugins-base-decodebin3-collection-identity-check.patch:
- Fixes a assertion causing crash on track change. Upstream bug:
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3742
-------------------------------------------------------------------
Wed Jul 31 13:41:59 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
- Update to version 1.24.6:
+ Highlighted bugfixes:
- Fix compatibility with FFmpeg 7.0.
- qmlglsink: Fix failure to display content on recent Android
devices.
- adaptivedemux: Fix handling of closed caption streams.
- cuda: Fix runtime compiler loading with old CUDA tookit.
- decodebin3 stream selection handling fixes.
- d3d11compositor, d3d12compositor: Fix transparent background
mode with YUV output.
- d3d12converter: Make gamma remap work as intended.
- h264decoder: Update output frame duration for interlaced
video when second field frame is discarded.
- macOS audio device provider now listens to audio devices
being added/removed at runtime.
- Rust plugins: audioloudnorm, s3hlssink, gtk4paintablesink,
livesync and webrtcsink fixes.
- videoaggregator: preserve features in non-alpha caps for
subclasses with non-system memory sink caps.
- vtenc: Fix redistribute latency spam.
- v4l2: fixes for complex video formats.
- va: Fix strides when importing DMABUFs, dmabuf handle leaks,
and blocklist unmaintained Intel i965 driver for encoding.
- waylandsink: Fix surface cropping for rotated streams.
- webrtcdsp: Enable multi_channel processing to fix handling of
stereo streams.
- Various bug fixes, memory leak fixes, and other stability and
reliability improvements.
-------------------------------------------------------------------
Thu Jun 27 18:20:13 UTC 2024 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 1.24.5:
+ Highlighted bugfixes:
- webrtcsink: Support for AV1 via nvav1enc, av1enc or rav1enc
encoders
- AV1 RTP payloader/depayloader fixes to work correctly with
Chrome and Pion WebRTC
- av1parse, av1dec error handling/robustness improvements
- av1enc: Handle force-keyunit events properly for WebRTC
- decodebin3: selection and collection handling improvements
- hlsdemux2: Various fixes for discontinuities, variant
switching, playlist updates
- qml6glsink: fix RGB format support
- rtspsrc: more control URL handling fixes
- v4l2src: Interpret V4L2 report of sync loss as video signal
loss
- d3d12 encoder, memory and videosink fixes
- vtdec: more robust error handling, fix regression
- ndi: support for NDI SDK v6
- Various bug fixes, memory leak fixes, and other stability and
reliability improvements
- Please see https://gstreamer.freedesktop.org/releases/1.24/ for
changes between 1.24.0 and this version and even more in-depth
info.
- Refresh patches with quilt.
- Drop gst-plugins-base-audiobasesink-gap.patch and
gstreamer-plugins-base-CVE-2024-4453.patch: Fixed upstream.
-------------------------------------------------------------------
Wed May 22 12:45:03 UTC 2024 - Cliff Zhao <qzhao@suse.com>

View File

@ -20,7 +20,7 @@
%define gst_branch 1.0
%define gstreamer_req_version %(echo %{version} | sed -e "s/+.*//")
Name: gstreamer-plugins-base
Version: 1.24.0
Version: 1.24.7
Release: 0
Summary: GStreamer Streaming-Media Framework Plug-Ins
License: GPL-2.0-or-later AND LGPL-2.1-or-later
@ -31,10 +31,8 @@ Source1: gstreamer-plugins-base.appdata.xml
Source2: baselibs.conf
Patch1: add_wayland_dep_to_tests.patch
Patch2: MR-221-video-anc-add-two-new-CEA-608-caption-formats.patch
# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3303
Patch3: gst-plugins-base-audiobasesink-gap.patch
# PATCH-FIX-UPSTREAM gstreamer-plugins-base-CVE-2024-4453.patch CVE-2024-4453 ZDI-24-467 ZDI-CAN-23896 bsc#1224806 qzhao@suse.com -- Prevent integer overflows and out of bounds reads when handling undefined tags.
Patch4: gstreamer-plugins-base-CVE-2024-4453.patch
Patch3: gst-plugins-base-decodebin3-collection-identity-check.patch
BuildRequires: Mesa-libGLESv3-devel
BuildRequires: cdparanoia-devel
BuildRequires: gcc-c++