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