Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package gstreamer-plugins-bad for
openSUSE:Factory checked in at 2025-12-10 15:29:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gstreamer-plugins-bad (Old)
and /work/SRC/openSUSE:Factory/.gstreamer-plugins-bad.new.1939 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gstreamer-plugins-bad"
Wed Dec 10 15:29:17 2025 rev:193 rq:1321735 version:1.26.9
Changes:
--------
---
/work/SRC/openSUSE:Factory/gstreamer-plugins-bad/gstreamer-plugins-bad.changes
2025-11-13 17:26:06.771903221 +0100
+++
/work/SRC/openSUSE:Factory/.gstreamer-plugins-bad.new.1939/gstreamer-plugins-bad.changes
2025-12-10 15:29:49.616462826 +0100
@@ -1,0 +2,26 @@
+Sun Dec 7 08:22:54 UTC 2025 - Bjørn Lie <[email protected]>
+
+- Update to version 1.26.9:
+ + Add missing G_DECLS symbols to gstvkqueue and gstvkcommandqueue
+ + ajasink, decklinkvideosrc: Fix some GstAncillaryMeta handling
+ bugs
+ + analyticsmeta: Initialize span to avoid undefined behavior
+ + GstPlay: Fixed wrong initial position update interval
+ configuration
+ + id3tag: Fix resource leak
+ + mpegtsmux: Avoid infinite recursion writing PCR packets
+ + mxfdemux: Fix typo on mxf_ffv1_create_caps
+ + mxfmux: Fix memset usage
+ + mpegtsmux: segfaults when bitrate is configured lower than
+ bitrate that's coming in
+ + scte-section: fix missing cleanup on splice component parse
+ failure
+ + tsdemux: expose audio GstStream for DTS
+ + va, unixfdsrc: keep dmabufs mapped
+ + vkh265dec: Fix a typo
+ + vkvideo-private: Replace GstBuffer with GstMemory array for
+ video sessions
+ + vtdec: Fix race condition in decoder draining. Fluster runs
+ were unstable
+
+-------------------------------------------------------------------
Old:
----
gst-plugins-bad-1.26.8.obscpio
New:
----
gst-plugins-bad-1.26.9.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gstreamer-plugins-bad.spec ++++++
--- /var/tmp/diff_new_pack.AmGJUg/_old 2025-12-10 15:29:51.316534747 +0100
+++ /var/tmp/diff_new_pack.AmGJUg/_new 2025-12-10 15:29:51.320534917 +0100
@@ -81,7 +81,7 @@
%endif
Name: gstreamer-plugins-bad
-Version: 1.26.8
+Version: 1.26.9
Release: 0
Summary: GStreamer Streaming-Media Framework Plug-Ins
License: LGPL-2.1-or-later
++++++ _service ++++++
--- /var/tmp/diff_new_pack.AmGJUg/_old 2025-12-10 15:29:51.352536270 +0100
+++ /var/tmp/diff_new_pack.AmGJUg/_new 2025-12-10 15:29:51.360536609 +0100
@@ -5,7 +5,7 @@
<param
name="url">https://gitlab.freedesktop.org/gstreamer/gstreamer.git</param>
<param name="subdir">subprojects/gst-plugins-bad</param>
<param name="filename">gst-plugins-bad</param>
- <param name="revision">1.26.8</param>
+ <param name="revision">1.26.9</param>
<param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
<param name="versionrewrite-pattern">v?(.*)\+0</param>
<param name="versionrewrite-replacement">\1</param>
++++++ gst-plugins-bad-1.26.8.obscpio -> gst-plugins-bad-1.26.9.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-bad-1.26.8/NEWS
new/gst-plugins-bad-1.26.9/NEWS
--- old/gst-plugins-bad-1.26.8/NEWS 2025-11-10 18:22:05.000000000 +0100
+++ new/gst-plugins-bad-1.26.9/NEWS 2025-12-01 18:27:07.000000000 +0100
@@ -2,11 +2,11 @@
GStreamer 1.26.0 was originally released on 11 March 2025.
-The latest bug-fix release in the stable 1.26 series is 1.26.8 and was
released on 10 November 2025.
+The latest bug-fix release in the stable 1.26 series is 1.26.9 and was
released on 01 December 2025.
See https://gstreamer.freedesktop.org/releases/1.26/ for the latest version of
this document.
-Last updated: Monday 10 November 2025, 17:00 UTC (log)
+Last updated: Monday 01 December 2025, 17:00 UTC (log)
## Introduction
@@ -2940,12 +2940,192 @@
- List of Merge Requests applied in 1.26.8
- List of Issues fixed in 1.26.8
+1.26.9
+
+The ninth 1.26 bug-fix release (1.26.9) was released on 01 December 2025.
+
+This release only contains bugfixes and it should be safe to update from
1.26.x.
+
+Highlighted bugfixes in 1.26.9
+
+- playback: playbin3 and decodebin3 stability fixes
+- Ancillary metadata handling fixes for AJA playout and Blackmagic Decklink
capture cards
+- HLS and DASH adaptive streaming clients stability improvements
+- gst-play-1.0 will now print details of any missing plugins again
+- gtk4paintablesink: Add property to fine-tune reconfiguration behaviour on
window-resize
+- macOS device monitoring: fix potential crash when probing for audio devices
+- macOS video decoder stability improvements
+- NDI source: fix audio corruption for non-interleaved audio with stride
padding
+- Add SMPTE ST291-1 ancillary metadata RTP payloader and depayloader
+- Add ST-2038 metadata combiner and extractor
+- webrtcsink: support hardware-accelerated encoders from the va VA-API plugin
+- spotifysrc: fix the Spotify integration by using Spotify’s extended
metadata endpoint
+- Python bindings cross compilation fixes
+- cerbero: add Visual Studio 2026 support, fix building on drives other than
C:, and ship svtjpegxs plugin on Windows
+- Various bug fixes, build fixes, memory leak fixes, and other stability and
reliability improvements
+
+gstreamer
+
+- info: Force comparison to same types
+- queue: Use GST_PTR_FORMAT everywhere
+- streamcollection: Fix race condition between disconnecting notify proxy
and notifications
+- value: Fix GstAllocationParams string serialisation on 32-bit architectures
+
+gst-plugins-base
+
+- allocators: drmdumb: Keep dmabuf mapped
+- alsadeviceprovider: Fix device name leak
+- audiovisualizer: Use break instead of goto for escape logic
+- decodebin3: Clear previous collection on input
+- decodebin3: Consider certain meta caps in decodebin3 as raw format to
avoid warnings
+- decodebin3: Protect again NULL dereference if input slot can’t be mapped
+- glbasesrc: Add unlock handling for non-negotiated cases
+- glcolorconvert: Fix memory leak in _create_shader
+- gldownload: Keep dmabuf mapped
+- glfiltershader: Add missing unlock
+- glstereosplit: Add missing unlock for exceptional case
+- pbutils: Fix bit shifting when generate hevc mime codec string
+- rtpbaseaudiopay: Consider RESYNC flag as discontinuity too
+- rtpbasedepayload: Add missing unlock in error code path
+- uridecodebin3: Add null check of play items in purge
+- urisourcebin: Add missing unlock
+- urisourcebin: Fix initial values of min_byte_level and min_time_level
variables
+- videoencoder: fix warning of uninitialized buffer
+
+Tools:
+
+- gst-play-1.0: fix printing of missing plugin details
+- gst-play-1.0: Add missing unlock for invalid track type
+
+gst-plugins-good
+
+- adaptivedemux2: Fix a crash on rapid state changes, and startup busy
waiting
+- hlsdemux2: Keep streams with different names
+- hlsdemux2: error out instead of asserting on negative stream time
+- hlsdemux2: Not all subtitles are present in track/collection. Usage of
FORCE EXT-X-MEDIA field
+- osxaudio: Remove unnecessary if, add comment about GstDevice lifetime
+- osxaudio: Various fixes, incl a potential crash when probing
+- v4l2allocator: Add KEEP_MAPPED flag to the allocated buffers
+- v4l2videoenc: Fix codec frame leak on error
+
+gst-plugins-bad
+
+- Add missing G_DECLS symbols to gstvkqueue and gstvkcommandqueue
+- ajasink, decklinkvideosrc: Fix some GstAncillaryMeta handling bugs
+- analyticsmeta: Initialize span to avoid undefined behavior
+- GstPlay: Fixed wrong initial position update interval configuration
+- id3tag: Fix resource leak
+- mpegtsmux: Avoid infinite recursion writing PCR packets
+- mxfdemux: Fix typo on mxf_ffv1_create_caps
+- mxfmux: Fix memset usage
+- mpegtsmux: segfaults when bitrate is configured lower than bitrate that’s
coming in
+- osxaudio: Various fixes, incl a potential crash when probing
+- scte-section: fix missing cleanup on splice component parse failure
+- tsdemux: expose audio GstStream for DTS
+- va, unixfdsrc: keep dmabufs mapped
+- vkh265dec: Fix a typo
+- vkvideo-private: Replace GstBuffer with GstMemory array for video sessions
+- vtdec: Fix race condition in decoder draining. Fluster runs were unstable
+
+gst-plugins-ugly
+
+- rmdemux: Remove unnecessary condition
+
+GStreamer Rust plugins
+
+- analytics splitter/combiner: Remove the separate fields to events and
buffer
+- audiornnoise: copy input metadatas to ouput buffer
+- closedcaption: cctost2038anc: Support alignment
+- closedcaption: st2038ancdemux: Support alignment
+- closedcaption: st2038ancmux: Support frame alignment
+- closedcaption: st2038: Forward frame rate in caps where available
+- closedcaption: Add ST-2038 combiner and extractor element
+- closedcaption: st2038extractor: Some fixes
+- closedcaption: st2038combiner: Some fixes
+- gif: Update to gif 0.14
+- gtk4: Add property to control reconfigure on window-resize behavior
+- gtk4: Fix compile warning
+- fmp4, mp4: Implement GstChildProxy for MP4Mux and FMP4Mux
+- fmp4: Update to dash-mpd 0.19
+- ndisrcdemux: fix audio corruption with non-interleaved stride padding
+- net/quinn: Update web-transport-quinn and fix flaky QUIC test
+- rtp: Add SMPTE ST291-1 (ANC) RTP payloader and depayloader
+- spotify: bump librespot 0.8.0
+- webrtcsink: Don’t let recalculate_latency block tokio worker thread
+- webrtcsink: support va encoders
+- Update dependencies
+- meson: fix build when GTK is not present
+
+gst-libav
+
+- No changes
+
+gst-rtsp-server
+
+- No changes
+
+gstreamer-vaapi
+
+- No changes
+
+gstreamer-sharp
+
+- No changes
+
+gst-python
+
+- gst-python: fix cross-compiling
+- python: Add some typing annotation to overrides
+
+gst-editing-services
+
+- No changes
+
+gst-devtools, gst-validate + gst-integration-testsuites
+
+- debug-viewer: Make 0x prefix optional thread ID regexes
+
+gst-examples
+
+- No changes
+
+gstreamer-docs
+
+- No changes
+
+Development build environment
+
+- libsoup wrap: remove fallback gio-unix on windows build
+- webrtc-audio-processing wrap: Fix build with abseil-cpp 202508
+
+Cerbero build tool and packaging changes in 1.26.9
+
+- Add support for Visual Studio 2026 (Insiders)
+- Fix extraction on Windows when building on a different drive than C:, bump
pixman and pygobject
+- cookbook: List all the dependencies when listed in reverse
+- gst-plugins-bad: actually build svtjpegxs plugin on 64-bit Windows
+
+Contributors to 1.26.9
+
+Artem Martus, Chengfa Wang, Dominique Leroux, Dongjoo Kim, Doug Nazar, Edward
Hervey, Gang Zhao, Hyunjun Ko, Jaehoon Lee, Jakub
+Adam, Jan Schmidt, Jeongmin Kwak, Jerome Colle, Jihoon Lee, Jordan Yelloz, L.
E. Segovia, Matthew Semeniuk, Max Goltzsche,
+Michael Olbrich, Monty C, Nicolas Dufresne, Nirbheek Chauhan, Olivier Crête,
Philippe Normand, Pratik Pachange, Qian Hu (胡骞),
+Robert Mader, Ruben Gonzalez, Sanchayan Maity, Santiago Carot-Nemesio,
Sebastian Dröge, Seungha Yang, Stéphane Cerveau,
+Tim-Philipp Müller, Xavier Claessens,
+
+… and many others who have contributed bug reports, translations, sent
suggestions or helped testing. Thank you all!
+
+List of merge requests and issues fixed in 1.26.9
+
+- List of Merge Requests applied in 1.26.9
+- List of Issues fixed in 1.26.9
+
Schedule for 1.28
Our next major feature release will be 1.28, and 1.27 will be the unstable
development version leading up to the stable 1.28
release. The development of 1.27/1.28 will happen in the git main branch of
the GStreamer mono repository.
-The schedule for 1.28 is yet to be decided, but we’re aiming for a release
towards the end of 2025.
+For 1.28 we’re aiming for feature freeze in December 2025 and then the new
stable 1.28.0 release in January 2026.
1.28 will be backwards-compatible to the stable 1.26, 1.24, 1.22, 1.20, 1.18,
1.16, 1.14, 1.12, 1.10, 1.8, 1.6, 1.4, 1.2 and 1.0
release series.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-bad-1.26.8/RELEASE
new/gst-plugins-bad-1.26.9/RELEASE
--- old/gst-plugins-bad-1.26.8/RELEASE 2025-11-10 18:22:05.000000000 +0100
+++ new/gst-plugins-bad-1.26.9/RELEASE 2025-12-01 18:27:07.000000000 +0100
@@ -1,4 +1,4 @@
-This is GStreamer gst-plugins-bad 1.26.8.
+This is GStreamer gst-plugins-bad 1.26.9.
The GStreamer team is thrilled to announce a new major feature release
of your favourite cross-platform multimedia framework!
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-bad-1.26.8/ext/sctp/sctpassociation.c
new/gst-plugins-bad-1.26.9/ext/sctp/sctpassociation.c
--- old/gst-plugins-bad-1.26.8/ext/sctp/sctpassociation.c 2025-11-10
18:22:05.000000000 +0100
+++ new/gst-plugins-bad-1.26.9/ext/sctp/sctpassociation.c 2025-12-01
18:27:07.000000000 +0100
@@ -255,6 +255,8 @@
}
G_UNLOCK (associations_lock);
+ g_mutex_clear (&self->association_mutex);
+
G_OBJECT_CLASS (gst_sctp_association_parent_class)->finalize (object);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-bad-1.26.8/ext/vulkan/vkh265dec.c
new/gst-plugins-bad-1.26.9/ext/vulkan/vkh265dec.c
--- old/gst-plugins-bad-1.26.8/ext/vulkan/vkh265dec.c 2025-11-10
18:22:05.000000000 +0100
+++ new/gst-plugins-bad-1.26.9/ext/vulkan/vkh265dec.c 2025-12-01
18:27:07.000000000 +0100
@@ -973,7 +973,7 @@
_array_2_bitmask (sps->short_term_ref_pic_set[i].UsedByCurrPicS0,
sps->short_term_ref_pic_set[i].NumDeltaPocs),
.used_by_curr_pic_s1_flag =
- _array_2_bitmask (sps->short_term_ref_pic_set[i].UsedByCurrPicS0,
+ _array_2_bitmask (sps->short_term_ref_pic_set[i].UsedByCurrPicS1,
sps->short_term_ref_pic_set[i].NumDeltaPocs),
/* Reserved */
/* Reserved */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-bad-1.26.8/gst/id3tag/id3tag.c
new/gst-plugins-bad-1.26.9/gst/id3tag/id3tag.c
--- old/gst-plugins-bad-1.26.8/gst/id3tag/id3tag.c 2025-11-10
18:22:05.000000000 +0100
+++ new/gst-plugins-bad-1.26.9/gst/id3tag/id3tag.c 2025-12-01
18:27:07.000000000 +0100
@@ -1296,8 +1296,8 @@
len = MIN (len, maxlen);
memcpy (dst, latin1, len);
*wrote_tag = TRUE;
- g_free (latin1);
}
+ g_free (latin1);
g_free (str);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-bad-1.26.8/gst/mpegtsdemux/tsdemux.c
new/gst-plugins-bad-1.26.9/gst/mpegtsdemux/tsdemux.c
--- old/gst-plugins-bad-1.26.8/gst/mpegtsdemux/tsdemux.c 2025-11-10
18:22:05.000000000 +0100
+++ new/gst-plugins-bad-1.26.9/gst/mpegtsdemux/tsdemux.c 2025-12-01
18:27:07.000000000 +0100
@@ -1497,7 +1497,7 @@
case DRF_ID_DTS2:
case DRF_ID_DTS3:
/* SMPTE registered DTS */
- is_private = TRUE;
+ is_audio = TRUE;
caps = gst_caps_new_empty_simple ("audio/x-dts");
break;
case DRF_ID_S302M:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-bad-1.26.8/gst/mpegtsmux/tsmux/tsmux.c
new/gst-plugins-bad-1.26.9/gst/mpegtsmux/tsmux/tsmux.c
--- old/gst-plugins-bad-1.26.8/gst/mpegtsmux/tsmux/tsmux.c 2025-11-10
18:22:05.000000000 +0100
+++ new/gst-plugins-bad-1.26.9/gst/mpegtsmux/tsmux/tsmux.c 2025-12-01
18:27:07.000000000 +0100
@@ -870,7 +870,8 @@
}
static gboolean
-tsmux_packet_out (TsMux * mux, GstBuffer * buf, gint64 pcr)
+tsmux_packet_out (TsMux * mux, GstBuffer * buf, gint64 pcr,
+ gboolean do_pcr_checks)
{
g_return_val_if_fail (buf, FALSE);
@@ -879,7 +880,7 @@
return TRUE;
}
- if (mux->bitrate) {
+ if (mux->bitrate && do_pcr_checks) {
GST_BUFFER_PTS (buf) =
gst_util_uint64_scale (mux->n_bytes * 8, GST_SECOND, mux->bitrate);
@@ -914,7 +915,7 @@
gst_buffer_unmap (pcr_buf, &map);
stream->pi.flags &= TSMUX_PACKET_FLAG_PES_FULL_HEADER;
- if (!tsmux_packet_out (mux, pcr_buf, new_pcr))
+ if (!tsmux_packet_out (mux, pcr_buf, new_pcr, FALSE))
goto error;
}
}
@@ -1247,7 +1248,7 @@
gst_buffer_unmap (buf, &map);
/* Push the packet without PCR */
- if (G_UNLIKELY (!tsmux_packet_out (mux, buf, -1)))
+ if (G_UNLIKELY (!tsmux_packet_out (mux, buf, -1, TRUE)))
goto done;
section->pi.stream_avail -= len;
@@ -1544,9 +1545,12 @@
new_pcr = write_new_pcr (mux, stream, get_current_pcr (mux, cur_ts),
get_next_pcr (mux, cur_ts));
+
+ gboolean pcr_checks = TRUE;
if (new_pcr != -1) {
GST_LOG ("Writing PCR-only packet on PID 0x%04x", stream->pi.pid);
tsmux_write_ts_header (mux, map.data, &stream->pi, 0, NULL, NULL);
+ pcr_checks = FALSE;
} else {
GST_LOG ("Writing null stuffing packet");
if (!rewrite_si (mux, cur_ts)) {
@@ -1561,7 +1565,7 @@
gst_buffer_unmap (buf, &map);
stream->pi.flags &= TSMUX_PACKET_FLAG_PES_FULL_HEADER;
- if (!tsmux_packet_out (mux, buf, new_pcr))
+ if (!tsmux_packet_out (mux, buf, new_pcr, pcr_checks))
goto done;
}
} while (bitrate < mux->bitrate);
@@ -1652,7 +1656,7 @@
gst_buffer_unmap (buf, &map);
stream->program->pi.pid = stream->program->pcr_pid;
stream->program->pi.flags &= TSMUX_PACKET_FLAG_PES_FULL_HEADER;
- if (!tsmux_packet_out (mux, buf, new_pcr))
+ if (!tsmux_packet_out (mux, buf, new_pcr, FALSE))
return FALSE;
}
}
@@ -1685,7 +1689,7 @@
gst_buffer_unmap (buf, &map);
GST_DEBUG ("Writing PES of size %d", (int) gst_buffer_get_size (buf));
- res = tsmux_packet_out (mux, buf, new_pcr);
+ res = tsmux_packet_out (mux, buf, new_pcr, TRUE);
/* Reset all dynamic flags */
stream->pi.flags &= TSMUX_PACKET_FLAG_PES_FULL_HEADER;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-bad-1.26.8/gst/mxf/mxfffv1.c
new/gst-plugins-bad-1.26.9/gst/mxf/mxfffv1.c
--- old/gst-plugins-bad-1.26.8/gst/mxf/mxfffv1.c 2025-11-10
18:22:05.000000000 +0100
+++ new/gst-plugins-bad-1.26.9/gst/mxf/mxfffv1.c 2025-12-01
18:27:07.000000000 +0100
@@ -146,7 +146,7 @@
for (i = 0; i < p->n_descriptor; i++) {
MXFMetadataFileDescriptor *desc = p->descriptor[i];
- if (!p)
+ if (!desc)
continue;
if (MXF_IS_METADATA_GENERIC_PICTURE_ESSENCE_DESCRIPTOR (desc) &&
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-bad-1.26.8/gst/mxf/mxfmux.c
new/gst-plugins-bad-1.26.9/gst/mxf/mxfmux.c
--- old/gst-plugins-bad-1.26.8/gst/mxf/mxfmux.c 2025-11-10 18:22:05.000000000
+0100
+++ new/gst-plugins-bad-1.26.9/gst/mxf/mxfmux.c 2025-12-01 18:27:07.000000000
+0100
@@ -1286,7 +1286,7 @@
if (mux->index_table->len <= mux->current_index_pos) {
MXFIndexTableSegment s;
- memset (&segment, 0, sizeof (segment));
+ memset (&s, 0, sizeof (s));
mxf_uuid_init (&s.instance_id, mux->metadata);
memcpy (&s.index_edit_rate, &pad->source_track->edit_rate,
@@ -1341,7 +1341,7 @@
if (pts_index_pos >= mux->index_table->len) {
MXFIndexTableSegment s;
- memset (&segment, 0, sizeof (segment));
+ memset (&s, 0, sizeof (s));
mxf_uuid_init (&s.instance_id, mux->metadata);
memcpy (&s.index_edit_rate, &pad->source_track->edit_rate,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-bad-1.26.8/gst/unixfd/gstunixfdsrc.c
new/gst-plugins-bad-1.26.9/gst/unixfd/gstunixfdsrc.c
--- old/gst-plugins-bad-1.26.8/gst/unixfd/gstunixfdsrc.c 2025-11-10
18:22:05.000000000 +0100
+++ new/gst-plugins-bad-1.26.9/gst/unixfd/gstunixfdsrc.c 2025-12-01
18:27:07.000000000 +0100
@@ -407,7 +407,7 @@
for (int i = 0; i < new_buffer->n_memory; i++) {
GstMemory *mem = gst_fd_allocator_alloc (allocator, fds_arr[i],
new_buffer->memories[i].size + new_buffer->memories[i].offset,
- GST_FD_MEMORY_FLAG_NONE);
+ GST_FD_MEMORY_FLAG_KEEP_MAPPED);
gst_memory_resize (mem, new_buffer->memories[i].offset,
new_buffer->memories[i].size);
GST_MINI_OBJECT_FLAG_SET (mem, GST_MEMORY_FLAG_READONLY);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/gst-plugins-bad-1.26.8/gst-libs/gst/analytics/gstanalyticsmeta.c
new/gst-plugins-bad-1.26.9/gst-libs/gst/analytics/gstanalyticsmeta.c
--- old/gst-plugins-bad-1.26.8/gst-libs/gst/analytics/gstanalyticsmeta.c
2025-11-10 18:22:05.000000000 +0100
+++ new/gst-plugins-bad-1.26.9/gst-libs/gst/analytics/gstanalyticsmeta.c
2025-12-01 18:27:07.000000000 +0100
@@ -725,6 +725,8 @@
adj_mat = rmeta->adj_mat;
if (max_relation_span < 0) {
span = G_MAXSIZE;
+ } else {
+ span = max_relation_span;
}
// If we're only considering the direct relation (@max_relation_span <= 1)
we can directly read the
// adjacency-matrix,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/gst-plugins-bad-1.26.8/gst-libs/gst/mpegts/gst-scte-section.c
new/gst-plugins-bad-1.26.9/gst-libs/gst/mpegts/gst-scte-section.c
--- old/gst-plugins-bad-1.26.8/gst-libs/gst/mpegts/gst-scte-section.c
2025-11-10 18:22:05.000000000 +0100
+++ new/gst-plugins-bad-1.26.9/gst-libs/gst/mpegts/gst-scte-section.c
2025-12-01 18:27:07.000000000 +0100
@@ -123,8 +123,6 @@
error:
{
- if (event)
- _gst_mpegts_scte_splice_event_free (event);
g_free (component);
return NULL;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-bad-1.26.8/gst-libs/gst/play/gstplay.c
new/gst-plugins-bad-1.26.9/gst-libs/gst/play/gstplay.c
--- old/gst-plugins-bad-1.26.8/gst-libs/gst/play/gstplay.c 2025-11-10
18:22:05.000000000 +0100
+++ new/gst-plugins-bad-1.26.9/gst-libs/gst/play/gstplay.c 2025-12-01
18:27:07.000000000 +0100
@@ -294,7 +294,7 @@
/* *INDENT-OFF* */
self->config = gst_structure_new_static_str ("play-config",
- "position-interval-update", G_TYPE_UINT,
DEFAULT_POSITION_UPDATE_INTERVAL_MS,
+ "position-update-interval", G_TYPE_UINT,
DEFAULT_POSITION_UPDATE_INTERVAL_MS,
"accurate-seek", G_TYPE_BOOLEAN, FALSE,
"pipeline-dump-error-in-details", G_TYPE_BOOLEAN, FALSE,
NULL);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/gst-plugins-bad-1.26.8/gst-libs/gst/va/gstvaallocator.c
new/gst-plugins-bad-1.26.9/gst-libs/gst/va/gstvaallocator.c
--- old/gst-plugins-bad-1.26.8/gst-libs/gst/va/gstvaallocator.c 2025-11-10
18:22:05.000000000 +0100
+++ new/gst-plugins-bad-1.26.9/gst-libs/gst/va/gstvaallocator.c 2025-12-01
18:27:07.000000000 +0100
@@ -715,7 +715,8 @@
/* prime descriptor reports the total size of the object, including regions
* which aren't part surface's space. Let's just grab the surface's size:
*/
gsize size = _get_fd_size (fd);
- GstMemory *mem = gst_dmabuf_allocator_alloc (allocator, fd, size);
+ GstMemory *mem = gst_dmabuf_allocator_alloc_with_flags (allocator, fd,
+ size, GST_FD_MEMORY_FLAG_KEEP_MAPPED);
if (desc.objects[i].size < size) {
GST_WARNING_OBJECT (self, "driver bug: fd size (%" G_GSIZE_FORMAT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/gst-plugins-bad-1.26.8/gst-libs/gst/vulkan/gstvkcommandpool.h
new/gst-plugins-bad-1.26.9/gst-libs/gst/vulkan/gstvkcommandpool.h
--- old/gst-plugins-bad-1.26.8/gst-libs/gst/vulkan/gstvkcommandpool.h
2025-11-10 18:22:05.000000000 +0100
+++ new/gst-plugins-bad-1.26.9/gst-libs/gst/vulkan/gstvkcommandpool.h
2025-12-01 18:27:07.000000000 +0100
@@ -23,6 +23,8 @@
#include <gst/vulkan/gstvkqueue.h>
+G_BEGIN_DECLS
+
#define GST_TYPE_VULKAN_COMMAND_POOL
(gst_vulkan_command_pool_get_type())
#define GST_VULKAN_COMMAND_POOL(o) (G_TYPE_CHECK_INSTANCE_CAST((o),
GST_TYPE_VULKAN_COMMAND_POOL, GstVulkanCommandPool))
#define GST_VULKAN_COMMAND_POOL_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k),
GST_TYPE_VULKAN_COMMAND_POOL, GstVulkanCommandPoolClass))
@@ -80,4 +82,6 @@
GST_VULKAN_API
void gst_vulkan_command_pool_unlock
(GstVulkanCommandPool * pool);
+G_END_DECLS
+
#endif /* __GST_VULKAN_COMMAND_POOL_H__ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/gst-plugins-bad-1.26.8/gst-libs/gst/vulkan/gstvkqueue.h
new/gst-plugins-bad-1.26.9/gst-libs/gst/vulkan/gstvkqueue.h
--- old/gst-plugins-bad-1.26.8/gst-libs/gst/vulkan/gstvkqueue.h 2025-11-10
18:22:05.000000000 +0100
+++ new/gst-plugins-bad-1.26.9/gst-libs/gst/vulkan/gstvkqueue.h 2025-12-01
18:27:07.000000000 +0100
@@ -24,6 +24,8 @@
#include <gst/vulkan/gstvkdevice.h>
#include <gst/vulkan/gstvkcommandpool.h>
+G_BEGIN_DECLS
+
#define GST_TYPE_VULKAN_QUEUE (gst_vulkan_queue_get_type())
#define GST_VULKAN_QUEUE(o) (G_TYPE_CHECK_INSTANCE_CAST((o),
GST_TYPE_VULKAN_QUEUE, GstVulkanQueue))
#define GST_VULKAN_QUEUE_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k),
GST_TYPE_VULKAN_QUEUE, GstVulkanQueueClass))
@@ -106,4 +108,6 @@
gboolean gst_vulkan_queue_run_context_query (GstElement *
element,
GstVulkanQueue ** queue);
+G_END_DECLS
+
#endif /* __GST_VULKAN_QUEUE_H__ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/gst-plugins-bad-1.26.8/gst-libs/gst/vulkan/gstvkvideo-private.c
new/gst-plugins-bad-1.26.9/gst-libs/gst/vulkan/gstvkvideo-private.c
--- old/gst-plugins-bad-1.26.8/gst-libs/gst/vulkan/gstvkvideo-private.c
2025-11-10 18:22:05.000000000 +0100
+++ new/gst-plugins-bad-1.26.9/gst-libs/gst/vulkan/gstvkvideo-private.c
2025-12-01 18:27:07.000000000 +0100
@@ -107,7 +107,7 @@
VkVideoSessionMemoryRequirementsKHR *mem = NULL;
VkBindVideoSessionMemoryInfoKHR *bind_mem = NULL;
VkResult res;
- guint32 i, n_mems, index;
+ guint32 i, n_mems;
gboolean ret = FALSE;
g_return_val_if_fail (session && !session->session, FALSE);
@@ -137,7 +137,8 @@
"vkGetVideoSessionMemoryRequirementsKHR") != VK_SUCCESS)
goto beach;
- session->buffer = gst_buffer_new ();
+ session->video_mems = g_malloc0 (sizeof (GstMemory *) * n_mems);
+ session->n_mems = n_mems;
mem_req = g_new (VkMemoryRequirements2, n_mems);
mem = g_new (VkVideoSessionMemoryRequirementsKHR, n_mems);
bind_mem = g_new (VkBindVideoSessionMemoryInfoKHR, n_mems);
@@ -163,9 +164,8 @@
GstMemory *vk_mem;
VkPhysicalDeviceMemoryProperties *props;
VkMemoryPropertyFlags prop_flags;
+ guint index;
- props = &device->physical_device->memory_properties;
- prop_flags = props->memoryTypes[i].propertyFlags;
if (!gst_vulkan_memory_find_memory_type_index_with_requirements (device,
&mem[i].memoryRequirements, G_MAXUINT32, &index)) {
g_set_error (error, GST_VULKAN_ERROR, VK_ERROR_INITIALIZATION_FAILED,
@@ -173,14 +173,17 @@
goto beach;
}
+ props = &device->physical_device->memory_properties;
+ prop_flags = props->memoryTypes[index].propertyFlags;
+
vk_mem = gst_vulkan_memory_alloc (device, index, NULL,
mem[i].memoryRequirements.size, prop_flags);
if (!vk_mem) {
g_set_error (error, GST_VULKAN_ERROR, VK_ERROR_INITIALIZATION_FAILED,
- "Cannot allocate memory for video sesson");
+ "Cannot allocate memory for video session");
goto beach;
}
- gst_buffer_append_memory (session->buffer, vk_mem);
+ session->video_mems[i] = vk_mem;
/* *INDENT-OFF* */
bind_mem[i] = (VkBindVideoSessionMemoryInfoKHR) {
@@ -214,7 +217,11 @@
g_return_if_fail (session);
gst_clear_vulkan_handle (&session->session);
- gst_clear_buffer (&session->buffer);
+
+ for (guint i = 0; i < session->n_mems; i++)
+ gst_memory_unref (session->video_mems[i]);
+
+ g_free (session->video_mems);
}
GstBuffer *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/gst-plugins-bad-1.26.8/gst-libs/gst/vulkan/gstvkvideo-private.h
new/gst-plugins-bad-1.26.9/gst-libs/gst/vulkan/gstvkvideo-private.h
--- old/gst-plugins-bad-1.26.8/gst-libs/gst/vulkan/gstvkvideo-private.h
2025-11-10 18:22:05.000000000 +0100
+++ new/gst-plugins-bad-1.26.9/gst-libs/gst/vulkan/gstvkvideo-private.h
2025-12-01 18:27:07.000000000 +0100
@@ -37,7 +37,8 @@
struct _GstVulkanVideoSession
{
GstVulkanHandle *session;
- GstBuffer *buffer;
+ GstMemory **video_mems;
+ guint n_mems;
};
typedef enum {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-bad-1.26.8/gst-plugins-bad.doap
new/gst-plugins-bad-1.26.9/gst-plugins-bad.doap
--- old/gst-plugins-bad-1.26.8/gst-plugins-bad.doap 2025-11-10
18:22:05.000000000 +0100
+++ new/gst-plugins-bad-1.26.9/gst-plugins-bad.doap 2025-12-01
18:27:07.000000000 +0100
@@ -35,6 +35,16 @@
<release>
<Version>
+ <revision>1.26.9</revision>
+ <branch>1.26</branch>
+ <name></name>
+ <created>2025-12-01</created>
+ <file-release
rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.26.9.tar.xz"
/>
+ </Version>
+ </release>
+
+ <release>
+ <Version>
<revision>1.26.8</revision>
<branch>1.26</branch>
<name></name>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-bad-1.26.8/meson.build
new/gst-plugins-bad-1.26.9/meson.build
--- old/gst-plugins-bad-1.26.8/meson.build 2025-11-10 18:22:05.000000000
+0100
+++ new/gst-plugins-bad-1.26.9/meson.build 2025-12-01 18:27:07.000000000
+0100
@@ -1,5 +1,5 @@
project('gst-plugins-bad', 'c', 'cpp',
- version : '1.26.8',
+ version : '1.26.9',
meson_version : '>= 1.4',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-bad-1.26.8/sys/aja/gstajasink.cpp
new/gst-plugins-bad-1.26.9/sys/aja/gstajasink.cpp
--- old/gst-plugins-bad-1.26.8/sys/aja/gstajasink.cpp 2025-11-10
18:22:05.000000000 +0100
+++ new/gst-plugins-bad-1.26.9/sys/aja/gstajasink.cpp 2025-12-01
18:27:07.000000000 +0100
@@ -1749,8 +1749,8 @@
AJAAncillaryData pkt;
guint8 data[256];
- pkt.SetDID(anc_meta->DID);
- pkt.SetSID(anc_meta->SDID_block_number);
+ pkt.SetDID(anc_meta->DID & 0xff);
+ pkt.SetSID(anc_meta->SDID_block_number & 0xff);
pkt.SetDataLocation(loc);
pkt.SetDataCoding(AJAAncillaryDataCoding_Digital);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-bad-1.26.8/sys/applemedia/vtdec.c
new/gst-plugins-bad-1.26.9/sys/applemedia/vtdec.c
--- old/gst-plugins-bad-1.26.8/sys/applemedia/vtdec.c 2025-11-10
18:22:05.000000000 +0100
+++ new/gst-plugins-bad-1.26.9/sys/applemedia/vtdec.c 2025-12-01
18:27:07.000000000 +0100
@@ -1338,6 +1338,12 @@
}
gst_vtdec_pause_output_loop (vtdec);
+
+ /* Ensure the output loop runs once more in case it got paused before
+ * handling frames pushed by gst_vtdec_session_output_callback. */
+ if (!flush)
+ gst_vtdec_output_loop (vtdec);
+
GST_VIDEO_DECODER_STREAM_LOCK (vtdec);
/* Only reset the draining flag here,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-bad-1.26.8/sys/applemedia/vtenc.c
new/gst-plugins-bad-1.26.9/sys/applemedia/vtenc.c
--- old/gst-plugins-bad-1.26.8/sys/applemedia/vtenc.c 2025-11-10
18:22:05.000000000 +0100
+++ new/gst-plugins-bad-1.26.9/sys/applemedia/vtenc.c 2025-12-01
18:27:07.000000000 +0100
@@ -364,13 +364,17 @@
GValue val = G_VALUE_INIT;
g_value_init (&val, G_TYPE_STRING);
+
g_value_set_string (&val, "progressive");
arr = g_value_array_append (arr, &val);
+
g_value_set_string (&val, "interleaved");
arr = g_value_array_append (arr, &val);
- G_GNUC_END_IGNORE_DEPRECATIONS;
+
gst_structure_set_list (gst_caps_get_structure (src_caps, 0),
"interlace-mode", arr);
+ g_value_array_free (arr);
+ G_GNUC_END_IGNORE_DEPRECATIONS;
}
switch (codec_details->format_id) {
++++++ gst-plugins-bad.obsinfo ++++++
--- /var/tmp/diff_new_pack.AmGJUg/_old 2025-12-10 15:29:57.064777926 +0100
+++ /var/tmp/diff_new_pack.AmGJUg/_new 2025-12-10 15:29:57.072778265 +0100
@@ -1,5 +1,5 @@
name: gst-plugins-bad
-version: 1.26.8
-mtime: 1762795325
-commit: 16d77e12ad213ef24e76a8cc34d347b8221c9975
+version: 1.26.9
+mtime: 1764610027
+commit: f313fae193089408e278c0dd3450145e5a12307b