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
 

Reply via email to