Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gstreamer-plugins-good for 
openSUSE:Factory checked in at 2025-12-10 15:29:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gstreamer-plugins-good (Old)
 and      /work/SRC/openSUSE:Factory/.gstreamer-plugins-good.new.1939 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gstreamer-plugins-good"

Wed Dec 10 15:29:24 2025 rev:125 rq:1321736 version:1.26.9

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/gstreamer-plugins-good/gstreamer-plugins-good.changes
    2025-11-13 17:26:18.928424168 +0100
+++ 
/work/SRC/openSUSE:Factory/.gstreamer-plugins-good.new.1939/gstreamer-plugins-good.changes
  2025-12-10 15:29:59.840895370 +0100
@@ -1,0 +2,14 @@
+Sun Dec  7 08:20:21 UTC 2025 - Bjørn Lie <[email protected]>
+
+- Update to version 1.26.9:
+  + adaptivedemux2: Fix a crash on rapid state changes, and startup
+    busy waiting
+  + hlsdemux2:
+    - Keep streams with different names
+    - Error out instead of asserting on negative stream time
+    - Not all subtitles are present in track/collection. Usage of
+      FORCE EXT-X-MEDIA field
+  + v4l2allocator: Add KEEP_MAPPED flag to the allocated buffers
+  + v4l2videoenc: Fix codec frame leak on error
+
+-------------------------------------------------------------------

Old:
----
  gst-plugins-good-1.26.8.obscpio

New:
----
  gst-plugins-good-1.26.9.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gstreamer-plugins-good.spec ++++++
--- /var/tmp/diff_new_pack.OhPORi/_old  2025-12-10 15:30:01.084947999 +0100
+++ /var/tmp/diff_new_pack.OhPORi/_new  2025-12-10 15:30:01.088948169 +0100
@@ -33,7 +33,7 @@
 %endif
 
 Name:           gstreamer-plugins-good
-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.OhPORi/_old  2025-12-10 15:30:01.120949522 +0100
+++ /var/tmp/diff_new_pack.OhPORi/_new  2025-12-10 15:30:01.124949692 +0100
@@ -5,7 +5,7 @@
     <param 
name="url">https://gitlab.freedesktop.org/gstreamer/gstreamer.git</param>
     <param name="subdir">subprojects/gst-plugins-good</param>
     <param name="filename">gst-plugins-good</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-good-1.26.8.obscpio -> gst-plugins-good-1.26.9.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-good-1.26.8/NEWS 
new/gst-plugins-good-1.26.9/NEWS
--- old/gst-plugins-good-1.26.8/NEWS    2025-11-10 18:22:05.000000000 +0100
+++ new/gst-plugins-good-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-good-1.26.8/RELEASE 
new/gst-plugins-good-1.26.9/RELEASE
--- old/gst-plugins-good-1.26.8/RELEASE 2025-11-10 18:22:05.000000000 +0100
+++ new/gst-plugins-good-1.26.9/RELEASE 2025-12-01 18:27:07.000000000 +0100
@@ -1,4 +1,4 @@
-This is GStreamer gst-plugins-good 1.26.8.
+This is GStreamer gst-plugins-good 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-good-1.26.8/ext/adaptivedemux2/gstadaptivedemux-stream.c 
new/gst-plugins-good-1.26.9/ext/adaptivedemux2/gstadaptivedemux-stream.c
--- old/gst-plugins-good-1.26.8/ext/adaptivedemux2/gstadaptivedemux-stream.c    
2025-11-10 18:22:05.000000000 +0100
+++ new/gst-plugins-good-1.26.9/ext/adaptivedemux2/gstadaptivedemux-stream.c    
2025-12-01 18:27:07.000000000 +0100
@@ -1822,13 +1822,18 @@
     gst_adaptive_demux2_stream_on_manifest_update (stream);
   }
 
-  g_cond_broadcast (&stream->prepare_cond);
-  if (stream->state != GST_ADAPTIVE_DEMUX2_STREAM_STATE_WAITING_PREPARE)
+  if (stream->state != GST_ADAPTIVE_DEMUX2_STREAM_STATE_WAITING_PREPARE) {
     return;
+  }
 
-  g_assert (stream->pending_cb_id == 0);
+  GST_LOG_OBJECT (stream,
+      "Subclass finished prepare. Scheduling load_a_fragment() call");
+  g_mutex_lock (&stream->prepare_lock);
+  stream->state = GST_ADAPTIVE_DEMUX2_STREAM_STATE_START_FRAGMENT;
+  g_cond_broadcast (&stream->prepare_cond);
+  g_mutex_unlock (&stream->prepare_lock);
 
-  GST_LOG_OBJECT (stream, "Scheduling load_a_fragment() call");
+  g_assert (stream->pending_cb_id == 0);
   stream->pending_cb_id =
       gst_adaptive_demux_loop_call (demux->priv->scheduler_task,
       (GSourceFunc) gst_adaptive_demux2_stream_load_a_fragment,
@@ -1843,12 +1848,27 @@
 {
   GstAdaptiveDemux *demux = stream->demux;
 
-  g_mutex_lock (&stream->prepare_lock);
+  /* Take a ref on the stream before dropping the scheduler lock, or it might
+   * get unreffed beneath us during a state change */
+  gst_object_ref (stream);
   GST_ADAPTIVE_SCHEDULER_UNLOCK (demux);
-  g_cond_wait (&stream->prepare_cond, &stream->prepare_lock);
+
+  GST_DEBUG_OBJECT (stream, "Waiting for subclass to finish preparing stream");
+
+  g_mutex_lock (&stream->prepare_lock);
+  while (stream->state == GST_ADAPTIVE_DEMUX2_STREAM_STATE_WAITING_PREPARE) {
+    g_cond_wait (&stream->prepare_cond, &stream->prepare_lock);
+  }
   g_mutex_unlock (&stream->prepare_lock);
 
-  return GST_ADAPTIVE_SCHEDULER_LOCK (demux);
+  GST_DEBUG_OBJECT (stream,
+      "Done waiting for subclass to finish preparing stream. State now %d",
+      stream->state);
+
+  gboolean ret = GST_ADAPTIVE_SCHEDULER_LOCK (demux);
+  gst_object_unref (stream);
+
+  return ret;
 }
 
 static void
@@ -1904,9 +1924,6 @@
           "Fragment info update result: %d %s", ret, gst_flow_get_name (ret));
 
       if (ret == GST_FLOW_OK) {
-        /* Wake anyone that's waiting for this stream to get prepared */
-        if (stream->state == GST_ADAPTIVE_DEMUX2_STREAM_STATE_WAITING_PREPARE)
-          g_cond_broadcast (&stream->prepare_cond);
         stream->starting_fragment = TRUE;
       }
       break;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-plugins-good-1.26.8/ext/adaptivedemux2/gstadaptivedemux.c 
new/gst-plugins-good-1.26.9/ext/adaptivedemux2/gstadaptivedemux.c
--- old/gst-plugins-good-1.26.8/ext/adaptivedemux2/gstadaptivedemux.c   
2025-11-10 18:22:05.000000000 +0100
+++ new/gst-plugins-good-1.26.9/ext/adaptivedemux2/gstadaptivedemux.c   
2025-12-01 18:27:07.000000000 +0100
@@ -1687,7 +1687,7 @@
   return klass->get_period_start_time (demux);
 }
 
-/* must be called with manifest_lock taken */
+/* must be called with manifest_lock and scheduler lock taken */
 static gboolean
 gst_adaptive_demux_prepare_streams (GstAdaptiveDemux * demux,
     gboolean first_and_live)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-plugins-good-1.26.8/ext/adaptivedemux2/hls/gsthlsdemux-stream.c 
new/gst-plugins-good-1.26.9/ext/adaptivedemux2/hls/gsthlsdemux-stream.c
--- old/gst-plugins-good-1.26.8/ext/adaptivedemux2/hls/gsthlsdemux-stream.c     
2025-11-10 18:22:05.000000000 +0100
+++ new/gst-plugins-good-1.26.9/ext/adaptivedemux2/hls/gsthlsdemux-stream.c     
2025-12-01 18:27:07.000000000 +0100
@@ -527,12 +527,21 @@
           "Got data from a new discont sequence on a rendition stream, can't 
validate stream time");
       return GST_HLS_PARSER_RESULT_DONE;
     }
-    GST_DEBUG_OBJECT (hls_stream,
+
+    /* The stream time for a mapping should always be positive ! */
+    gboolean stream_time_valid = current_stream_time >= 0;
+
+    GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT,
+        stream_time_valid ? GST_LEVEL_DEBUG : GST_LEVEL_ERROR, hls_stream,
         "Updating time map dsn:%" G_GINT64_FORMAT " stream_time:%"
         GST_STIME_FORMAT " internal_time:%" GST_TIME_FORMAT, map->dsn,
         GST_STIME_ARGS (current_stream_time), GST_TIME_ARGS (internal_time));
-    /* The stream time for a mapping should always be positive ! */
-    g_assert (current_stream_time >= 0);
+
+    if (!stream_time_valid) {
+      GST_ELEMENT_ERROR (demux, STREAM, DEMUX,
+          (NULL), ("Negative stream time, please file a bug"));
+      return GST_HLS_PARSER_RESULT_ERROR;
+    }
 
     if (hls_stream->parser_type == GST_HLS_PARSER_ISOBMFF)
       hls_stream->presentation_offset = internal_time - current_stream_time;
@@ -1564,7 +1573,8 @@
   gboolean discont;
 
   /* Return BUSY if no playlist is loaded yet. Even if
-   * we switched an another playlist is loading, we'll keep*/
+   * we switched and another playlist is loading,
+   * we'll keep trying to load one */
   if (!hlsdemux_stream->playlist_fetched) {
     gst_hls_demux_stream_start_playlist_loading (hlsdemux_stream);
     return GST_ADAPTIVE_DEMUX_FLOW_BUSY;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-plugins-good-1.26.8/ext/adaptivedemux2/hls/gsthlsdemux.c 
new/gst-plugins-good-1.26.9/ext/adaptivedemux2/hls/gsthlsdemux.c
--- old/gst-plugins-good-1.26.8/ext/adaptivedemux2/hls/gsthlsdemux.c    
2025-11-10 18:22:05.000000000 +0100
+++ new/gst-plugins-good-1.26.9/ext/adaptivedemux2/hls/gsthlsdemux.c    
2025-12-01 18:27:07.000000000 +0100
@@ -296,11 +296,17 @@
 
   while ((flow_ret = gst_hls_demux_check_variant_playlist_loaded (hlsdemux)
           == GST_ADAPTIVE_DEMUX_FLOW_BUSY)) {
-    if (!gst_adaptive_demux2_stream_wait_prepared (GST_ADAPTIVE_DEMUX2_STREAM
-            (hlsdemux->main_stream))) {
-      GST_DEBUG_OBJECT (hlsdemux,
-          "Interrupted waiting for stream to be prepared");
-      return GST_FLOW_FLUSHING;
+    GstAdaptiveDemux2Stream *stream =
+        GST_ADAPTIVE_DEMUX2_STREAM (hlsdemux->main_stream);
+
+    if (stream->state != GST_ADAPTIVE_DEMUX2_STREAM_STATE_STOPPED) {
+      stream->state = GST_ADAPTIVE_DEMUX2_STREAM_STATE_WAITING_PREPARE;
+
+      if (!gst_adaptive_demux2_stream_wait_prepared (stream)) {
+        GST_DEBUG_OBJECT (hlsdemux,
+            "Interrupted waiting for stream to be prepared");
+        return GST_FLOW_FLUSHING;
+      }
     }
   }
 
@@ -451,7 +457,9 @@
 
   gst_hls_demux_stream_set_playlist_uri (hlsdemux_stream,
       demux->current_variant->uri);
-  gst_hls_demux_stream_start_playlist_loading (hlsdemux_stream);
+
+  /* Start this stream, which will trigger a playlist load */
+  gst_adaptive_demux2_stream_start (stream);
 }
 
 GstAdaptiveDemuxTrack *
@@ -550,7 +558,8 @@
     if (demux_stream->rendition_type == stream_type) {
       if (!g_strcmp0 (demux_stream->name, media->name))
         return demux_stream;
-      if (media->lang && !g_strcmp0 (demux_stream->lang, media->lang))
+      if (media->name == NULL && media->lang
+          && !g_strcmp0 (demux_stream->lang, media->lang))
         return demux_stream;
     }
   }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-good-1.26.8/gst-plugins-good.doap 
new/gst-plugins-good-1.26.9/gst-plugins-good.doap
--- old/gst-plugins-good-1.26.8/gst-plugins-good.doap   2025-11-10 
18:22:05.000000000 +0100
+++ new/gst-plugins-good-1.26.9/gst-plugins-good.doap   2025-12-01 
18:27:07.000000000 +0100
@@ -34,6 +34,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-good/gst-plugins-good-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-good-1.26.8/meson.build 
new/gst-plugins-good-1.26.9/meson.build
--- old/gst-plugins-good-1.26.8/meson.build     2025-11-10 18:22:05.000000000 
+0100
+++ new/gst-plugins-good-1.26.9/meson.build     2025-12-01 18:27:07.000000000 
+0100
@@ -1,5 +1,5 @@
 project('gst-plugins-good', 'c',
-  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-good-1.26.8/sys/osxaudio/gstosxaudiodeviceprovider.c 
new/gst-plugins-good-1.26.9/sys/osxaudio/gstosxaudiodeviceprovider.c
--- old/gst-plugins-good-1.26.8/sys/osxaudio/gstosxaudiodeviceprovider.c        
2025-11-10 18:22:05.000000000 +0100
+++ new/gst-plugins-good-1.26.9/sys/osxaudio/gstosxaudiodeviceprovider.c        
2025-12-01 18:27:07.000000000 +0100
@@ -291,7 +291,6 @@
       if (device) {
         GST_DEBUG ("Input Device ID: %u Name: %s", (unsigned) osx_devices[i],
             device_name);
-        gst_object_ref_sink (device);
         *devices = g_list_prepend (*devices, device);
       }
     }
@@ -303,7 +302,6 @@
       if (device) {
         GST_DEBUG ("Output Device ID: %u Name: %s", (unsigned) osx_devices[i],
             device_name);
-        gst_object_ref_sink (device);
         *devices = g_list_prepend (*devices, device);
       }
     }
@@ -323,11 +321,11 @@
   osx_devices = _audio_system_get_devices (&ndevices);
 
   if (ndevices < 1) {
-    GST_WARNING ("no audio output devices found");
+    GST_WARNING ("No audio devices found");
     goto done;
   }
 
-  GST_INFO ("found %d audio device(s)", ndevices);
+  GST_INFO ("Found %d audio device(s)", ndevices);
 
   gst_osx_audio_device_provider_probe_internal (self, osx_devices, ndevices,
       &devices);
@@ -346,14 +344,15 @@
   GList *iter;
 
   devices = gst_osx_audio_device_provider_probe (provider);
-  if (devices) {
-    for (iter = devices; iter; iter = g_list_next (iter)) {
-      gst_device_provider_device_add (provider, GST_DEVICE (iter->data));
-    }
 
-    g_list_free (devices);
+  for (iter = devices; iter; iter = iter->next) {
+    gst_device_provider_device_add (provider, GST_DEVICE (iter->data));
   }
 
+  /* Device references were floating, so were transferred in
+   * gst_device_provider_device_add() */
+  g_list_free (devices);
+
   return _start_audio_device_watcher (self);
 }
 
@@ -549,6 +548,8 @@
   gstdev = g_object_new (GST_TYPE_OSX_AUDIO_DEVICE, "device-id",
       device_id, "display-name", device_name, "caps", caps,
       "properties", props, "device-class", klass, NULL);
+  gst_structure_free (props);
+  gst_caps_unref (caps);
 
   gstdev->element = element_name;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-plugins-good-1.26.8/sys/osxaudio/gstosxaudioringbuffer.c 
new/gst-plugins-good-1.26.9/sys/osxaudio/gstosxaudioringbuffer.c
--- old/gst-plugins-good-1.26.8/sys/osxaudio/gstosxaudioringbuffer.c    
2025-11-10 18:22:05.000000000 +0100
+++ new/gst-plugins-good-1.26.9/sys/osxaudio/gstosxaudioringbuffer.c    
2025-12-01 18:27:07.000000000 +0100
@@ -130,10 +130,7 @@
 
   osxbuf = GST_OSX_AUDIO_RING_BUFFER (object);
 
-  if (osxbuf->core_audio) {
-    g_object_unref (osxbuf->core_audio);
-    osxbuf->core_audio = NULL;
-  }
+  g_clear_object (&osxbuf->core_audio);
   G_OBJECT_CLASS (ring_parent_class)->dispose (object);
 }
 
@@ -172,12 +169,10 @@
     GstAudioRingBufferSpec * spec)
 {
   gboolean ret = FALSE, is_passthrough = FALSE;
-  GstOsxAudioRingBuffer *osxbuf;
+  GstOsxAudioRingBuffer *osxbuf = GST_OSX_AUDIO_RING_BUFFER (buf);
   AudioStreamBasicDescription format = { 0 };
   guint32 frames_per_packet = 0;
 
-  osxbuf = GST_OSX_AUDIO_RING_BUFFER (buf);
-
   if (RINGBUFFER_IS_SPDIF (spec->type)) {
     format.mFormatID = kAudioFormat60958AC3;
     format.mSampleRate = (double) GST_AUDIO_INFO_RATE (&spec->info);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-plugins-good-1.26.8/sys/osxaudio/gstosxcoreaudiohal.c 
new/gst-plugins-good-1.26.9/sys/osxaudio/gstosxcoreaudiohal.c
--- old/gst-plugins-good-1.26.8/sys/osxaudio/gstosxcoreaudiohal.c       
2025-11-10 18:22:05.000000000 +0100
+++ new/gst-plugins-good-1.26.9/sys/osxaudio/gstosxcoreaudiohal.c       
2025-12-01 18:27:07.000000000 +0100
@@ -275,7 +275,7 @@
       GST_ERROR ("failed to set mixmode: %d", (int) status);
     }
   } else {
-    GST_DEBUG ("property not found, mixing coudln't be changed");
+    GST_DEBUG ("property not found, mixing couldn't be changed");
   }
 
   return res;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-good-1.26.8/sys/v4l2/gstv4l2allocator.c 
new/gst-plugins-good-1.26.9/sys/v4l2/gstv4l2allocator.c
--- old/gst-plugins-good-1.26.8/sys/v4l2/gstv4l2allocator.c     2025-11-10 
18:22:05.000000000 +0100
+++ new/gst-plugins-good-1.26.9/sys/v4l2/gstv4l2allocator.c     2025-12-01 
18:27:07.000000000 +0100
@@ -934,7 +934,8 @@
     mem = (GstV4l2Memory *) group->mem[i];
 
     dma_mem = gst_fd_allocator_alloc (dmabuf_allocator, mem->dmafd,
-        group->planes[i].length, GST_FD_MEMORY_FLAG_DONT_CLOSE);
+        group->planes[i].length,
+        GST_FD_MEMORY_FLAG_DONT_CLOSE | GST_FD_MEMORY_FLAG_KEEP_MAPPED);
     gst_memory_resize (dma_mem, group->planes[i].data_offset,
         group->planes[i].length - group->planes[i].data_offset);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-good-1.26.8/sys/v4l2/gstv4l2videoenc.c 
new/gst-plugins-good-1.26.9/sys/v4l2/gstv4l2videoenc.c
--- old/gst-plugins-good-1.26.8/sys/v4l2/gstv4l2videoenc.c      2025-11-10 
18:22:05.000000000 +0100
+++ new/gst-plugins-good-1.26.9/sys/v4l2/gstv4l2videoenc.c      2025-12-01 
18:27:07.000000000 +0100
@@ -874,8 +874,8 @@
     GST_ELEMENT_ERROR (self, RESOURCE, SETTINGS,
         (_("Failed to allocate required memory.")),
         ("Buffer pool activation failed"));
-    return GST_FLOW_ERROR;
-
+    ret = GST_FLOW_ERROR;
+    goto drop;
   }
 flushing:
   {

++++++ gst-plugins-good.obsinfo ++++++
--- /var/tmp/diff_new_pack.OhPORi/_old  2025-12-10 15:30:03.297041582 +0100
+++ /var/tmp/diff_new_pack.OhPORi/_new  2025-12-10 15:30:03.301041751 +0100
@@ -1,5 +1,5 @@
 name: gst-plugins-good
-version: 1.26.8
-mtime: 1762795325
-commit: 16d77e12ad213ef24e76a8cc34d347b8221c9975
+version: 1.26.9
+mtime: 1764610027
+commit: f313fae193089408e278c0dd3450145e5a12307b
 

Reply via email to