Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package gstreamer for openSUSE:Factory checked in at 2025-09-17 16:43:11 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gstreamer (Old) and /work/SRC/openSUSE:Factory/.gstreamer.new.27445 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gstreamer" Wed Sep 17 16:43:11 2025 rev:114 rq:1305238 version:1.26.6 Changes: -------- --- /work/SRC/openSUSE:Factory/gstreamer/gstreamer.changes 2025-08-13 16:28:47.396102302 +0200 +++ /work/SRC/openSUSE:Factory/.gstreamer.new.27445/gstreamer.changes 2025-09-17 16:43:16.516444139 +0200 @@ -1,0 +2,58 @@ +Mon Sep 15 15:21:54 UTC 2025 - Bjørn Lie <[email protected]> + +- Update to version 1.26.6: + + Highlighted bugfixes in 1.26.6: + - analytics GstTensorMeta handling changes (see note below) + - closed caption combiner and transcriberbin stability fixes + - decklinkvideosrc: fix unrecoverable state after failing to + start streaming because device is busy + - decodebin3 tag handling improvements + - fallbacksrc: Fix sources only being restarted once, as well + as some deadlocks and race conditions on shutdown + - gtk4paintablesink: Try importing dmabufs withouth DMA_DRM + caps + - hlsdemux2: Fix parsing of byterange and init map directives + - rtpmp4gdepay2: allow only constantduration with neither + constantsize nor sizelength set + - spotifysrc: update to librespot 0.7 to make work after recent + Spotify changes + - threadshare: new blocking adapter element for use in front of + block elements such as sinks that sync to the clock + - threadshare: various other threadshare element fixes and + improvements + - v4l2: Add support for WVC1 and WMV3 + - videorate: possible performance improvements when operating + in drop-only mode + - GstBaseParse fixes + - Vulkan video decoder fixes + - Fix gst-device-monitor-1.0 tool device-path regression on + Windows + - Monorepo development environment builds fewer plugins using + subprojects by default, those require explicit enablement now + - Python bindings: Handle buffer PTS, DTS, duration, offset, + and offset-end as unsigned long long (regression fix) + - Cerbero: Reduce recipe parallelism in various cases and dump + cerbero and recipe versions into datadir during packaging + - Various bug fixes, build fixes, memory leak fixes, and other + stability and reliability improvements + + Possibly breaking behavioural changes: + - Previously it was guaranteed that there is only ever up to + one GstTensorMeta per buffer. This is no longer true and code + working with GstTensorMeta must be able to handle multiple + GstTensorMeta now. + + gstreamer: + - baseparse: Try harder to fixate caps based on upstream in + default negotiation + - gst-discoverer reports 1x1 dimensions for "valid" MP4 files + - baseparse: don't clear most sticky events after a FLUSH_STOP + event + - gstreamer: Disable miniobject inline functions for + gobject-introspection for non-subprojects too + - gstreamer: Make sure to zero-initialize the GValue before + G_VALUE_COLLECT_INIT + - ptp: Fix a new Rust 1.89 compiler warning on Windows + - ptp: Fix new compiler warning with Rust 1.89 + - Segmentation fault when compiled with + "-ftrivial-auto-var-init=pattern". Use of unitialized GValue + +------------------------------------------------------------------- Old: ---- gstreamer-1.26.5.obscpio New: ---- gstreamer-1.26.6.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gstreamer.spec ++++++ --- /var/tmp/diff_new_pack.RKquaU/_old 2025-09-17 16:43:17.224474052 +0200 +++ /var/tmp/diff_new_pack.RKquaU/_new 2025-09-17 16:43:17.224474052 +0200 @@ -19,7 +19,7 @@ %define gst_branch 1.0 Name: gstreamer -Version: 1.26.5 +Version: 1.26.6 Release: 0 Summary: Streaming-Media Framework Runtime License: LGPL-2.1-or-later ++++++ _service ++++++ --- /var/tmp/diff_new_pack.RKquaU/_old 2025-09-17 16:43:17.252475236 +0200 +++ /var/tmp/diff_new_pack.RKquaU/_new 2025-09-17 16:43:17.252475236 +0200 @@ -5,7 +5,7 @@ <param name="url">https://gitlab.freedesktop.org/gstreamer/gstreamer.git</param> <param name="subdir">subprojects/gstreamer</param> <param name="filename">gstreamer</param> - <param name="revision">1.26.5</param> + <param name="revision">1.26.6</param> <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param> <param name="versionrewrite-pattern">v?(.*)\+0</param> <param name="versionrewrite-replacement">\1</param> ++++++ gstreamer-1.26.5.obscpio -> gstreamer-1.26.6.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gstreamer-1.26.5/NEWS new/gstreamer-1.26.6/NEWS --- old/gstreamer-1.26.5/NEWS 2025-08-07 20:06:46.000000000 +0200 +++ new/gstreamer-1.26.6/NEWS 2025-09-14 14:13:58.000000000 +0200 @@ -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.5 and was released on 07 August 2025. +The latest bug-fix release in the stable 1.26 series is 1.26.6 and was released on 14 September 2025. See https://gstreamer.freedesktop.org/releases/1.26/ for the latest version of this document. -Last updated: Thursday 07 August 2025, 18:00 UTC (log) +Last updated: Sunday 14 September 2025, 12:00 UTC (log) ## Introduction @@ -2198,23 +2198,40 @@ Highlighted bugfixes in 1.26.5 - audioconvert: Fix caps negotiation regression when using a mix matrix + - aws: Add support for brevity in awstranslate and add option to partition speakers in the transcription output of awstranscriber2 + - speechmatics speech-to-text: Expose mask-profanities property + - cea708mux: Add support for discarding select services on each input + - cea608overlay, cea708overlay: Accept GPU memory buffers if downstream supports the overlay composition meta + - d3d12screencapture source element and device provider fixes + - decodebin3: Don’t error on an incoming ONVIF metadata stream + - uridecodebin3: Fix potential crash when adding URIs to messages, e.g. if no decoder is available + - v4l2: Fix memory leak for dynamic resolution change + - VA encoder fixes + - videorate, imagefreeze: Add support for JPEG XS + - Vulkan integration fixes + - wasapi2 audio device monitor improvements + - webrtc: Add WHEP client signaller and add whepclientsrc element on top of webrtcsrc using that + - threadshare: Many improvements and fixes to the generic threadshare and RTP threadshare elements + - rtpbin2 improvements and fixes + - gst-device-monitor-1.0 command line tool improvements + - Various bug fixes, build fixes, memory leak fixes, and other stability and reliability improvements gstreamer @@ -2260,33 +2277,63 @@ GStreamer Rust plugins -- awstranscriber2,awstranslate: Handle multiple stream-start event -- awstranslate: expose property for turning brevity on -- awstranscriber2: add property for setting show_speaker_labels -- cea708mux: expose “discarded-services” property on sink pads +- Note: This list has been updated, since it originally accidentally included some Merge Requests that only landed in the main + branch, not in the 0.14 branch that ships with our GStreamer 1.26.5 packages. + +- awstranscriber2, awstranslate: Handle multiple stream-start event + +- awstranslate: expose property for turning brevity on) + +- awstranscriber2: add property for setting show_speaker_labels) + +- cea708mux: expose “discarded-services” property on sink pads) + - ceaX08overlay: support ANY caps features, allowing e.g. memory:GLMemory if downstream supports the overlay composition meta + - hlsmultivariantsink: Fix master playlist version + - rtprecv: Drop state lock before chaining RTCP packets from the RTP chain function -- rtpbin2: Add examples + +- Add rtpbin2 examples + - rtpmp4apay2: fix payload size prefix + - rtp: threadshare: fix some property ranges + - mpegtslivesrc: Remove leftover debug message -- speechmatics: expose mask-profanities property + +- speechmatics: expose mask-profanities property) + - ts-audiotestsrc fixes + - threadshare: fix flush for ts-queue ts-proxy & ts-intersrc + - threadshare: fix regression in ts-proxysrc + - threadshare: improvements to some elements -- threadshare: udp: avoid getifaddrs in android + +- threadshare: udp: avoid getifaddrs in android) + - threadshare: Enable windows Win32_Networking feature + - threadshare: queue & proxy: fix race condition stopping + - threadshare: Also enable windows Win32_Networking_WinSock feature + - tracers: pipeline-snapshot: reduce WebSocket connection log level + - tracers: queue-levels: add support for threadshare DataQueue related elements + - tracers: Update to etherparse 0.19 + - transcriberbin: Fix handling of upstream latency query -- webrtc: android example: fix media handling initialization sequence + +- webrtc: android example: fix media handling initialization sequence) + - webrtcsink: Move videorate before videoconvert and videoscale to avoid processing frames that would be dropped + - whep: add WHEP client signaller + - Fix various new clippy 1.89 warnings gst-libav @@ -2352,6 +2399,206 @@ - List of Merge Requests applied in 1.26.5 - List of Issues fixed in 1.26.5 +1.26.6 + +The sixth 1.26 bug-fix release (1.26.6) was released on 14 September 2025. + +This release only contains bugfixes including some important playback fixes, and it should be safe to update from 1.26.x. + +Highlighted bugfixes in 1.26.6 + +- analytics GstTensorMeta handling changes (see note below) +- closed caption combiner and transcriberbin stability fixes +- decklinkvideosrc: fix unrecoverable state after failing to start streaming because device is busy +- decodebin3 tag handling improvements +- fallbacksrc: Fix sources only being restarted once, as well as some deadlocks and race conditions on shutdown +- gtk4paintablesink: Try importing dmabufs withouth DMA_DRM caps +- hlsdemux2: Fix parsing of byterange and init map directives +- rtpmp4gdepay2: allow only constantduration with neither constantsize nor sizelength set +- spotifysrc: update to librespot 0.7 to make work after recent Spotify changes +- threadshare: new blocking adapter element for use in front of block elements such as sinks that sync to the clock +- threadshare: various other threadshare element fixes and improvements +- v4l2: Add support for WVC1 and WMV3 +- videorate: possible performance improvements when operating in drop-only mode +- GstBaseParse fixes +- Vulkan video decoder fixes +- Fix gst-device-monitor-1.0 tool device-path regression on Windows +- Monorepo development environment builds fewer plugins using subprojects by default, those require explicit enablement now +- Python bindings: Handle buffer PTS, DTS, duration, offset, and offset-end as unsigned long long (regression fix) +- Cerbero: Reduce recipe parallelism in various cases and dump cerbero and recipe versions into datadir during packaging +- Various bug fixes, build fixes, memory leak fixes, and other stability and reliability improvements + +Possibly breaking behavioural changes + +- Previously it was guaranteed that there is only ever up to one GstTensorMeta per buffer. This is no longer true and code + working with GstTensorMeta must be able to handle multiple GstTensorMeta now (after this Merge Request). + +gstreamer + +- baseparse: Try harder to fixate caps based on upstream in default negotiation +- gst-discoverer reports 1x1 dimensions for “valid” MP4 files +- baseparse: don’t clear most sticky events after a FLUSH_STOP event +- gstreamer: Disable miniobject inline functions for gobject-introspection for non-subprojects too +- gstreamer: Make sure to zero-initialize the GValue before G_VALUE_COLLECT_INIT +- ptp: Fix a new Rust 1.89 compiler warning on Windows +- ptp: Fix new compiler warning with Rust 1.89 +- Segmentation fault when compiled with “-ftrivial-auto-var-init=pattern”. Use of unitialized GValue. + +gst-plugins-base + +- decodebin3: Update stream tags +- rtpbasedepayload: Avoid potential use-after free +- rtspconnection: Add get_url and get_ip return value annotation +- gst_rtsp_connection_get_url return value transfer annotation missing +- videometa: Fix valgrind warning when deserializing video meta +- videorate: don’t hold the reference to the buffer in drop-only mode +- gst-device-monitor-1.0: Fix device-path regression on Windows +- gst-device-monitor-1.0: Add quoting for powershell and cmd +- Monorepo: opengl, vorbis, plugins require explicit enablement now for a build using the Meson subproject fallback + +gst-plugins-good + +- adaptivedemux2: fix crash due to log +- adaptivedemux2: Crash in logging when “Dropping EOS before next period” +- hlsdemux2: Fix parsing of byterange and init map directives +- mpg123audiodec: Always break the decoding loop and relay downstream flow errors upstream +- v4l2: Add support for WVC1 and WMV3 +- Monorepo: dv plugin requires explicit enablement now for a build using the Meson subproject fallback + +gst-plugins-bad + +- analytics: always add GstTensorMeta +- cccombiner: Crash fixes +- curlsmtpsink: adapt to date formatting issue +- decklinkvideosrc: fix decklinkvideosrc becomes unrecoverable if it fails to start streaming +- decklinkvideosrc gets into unrecoverable state if device is busy +- dwrite: Fix D3D12 critical warning +- hlsdemux: Fix parsing of byterange and init map directives +- mpegtsmux: Caps event fails with stream type change error +- vulkanh24xdec: couple of fixes +- vulkanh26xdec: fix discont state handling +- waylandsink: add some error handler for event dispatch +- zbar: tests: Handle symbol-bytes as not null-terminated +- Monorepo: avtp, codec2json, iqa, microdns, openjpeg, qroverlay, soundtouch, tinyalsa plugins require explicit enablement now + for a build using the Meson subproject fallback + +gst-plugins-ugly + +- No changes + +GStreamer Rust plugins + +- analyticscombiner: Use NULL caps instead of EMPTY caps in the array for streams with no caps +- aws: Ensure task stopping on paused-to-ready state change +- fallbacksrc: Don’t panic during retries if the element was shut down in parallel +- fallbacksrc: Don’t restart source if the element is just being shut down +- fallbacksrc: Fix some custom source deadlocks +- fallbacksrc: Fix sources only being restarted once +- gtk4: Try importing dmabufs withouth DMA_DRM caps +- inter: Give the appsrc/appsink a name that has the parent element as prefix +- mp4: Skip tests using x264enc if it does not exist +- rtpgccbwe: avoid clamp() panic when min_bitrate > max_bitrate +- rtpmp4gdepay2: allow only constantduration with neither constantsize nor sizelength set +- rtprecv: fix race condition on first buffer +- speechmatics: Specify rustls as an explicit dependency +- spotify: update to librespot 0.7 +- threadshare: add a blocking adapter element +- threadshare: always use block_on_or_add_subtask +- threadshare: audiotestsrc: fix setting samples-per-buffer… +- threadshare: blocking_adapter: fix Since marker in docs +- threadshare: fix resources not available when preparing asynchronously +- threadshare: fix ts-inter test one_to_one_up_first +- threadshare: have Task log its obj +- threadshare: intersink: return from blocking tasks when stopping +- threadshare: inter: update doc example +- threadshare: runtime/pad: lower log level pushing Buffer to flushing pad +- threadshare: separate blocking & throttling schedulers +- threadshare: update examples +- threadshare: Update to getifaddrs 0.5 +- threadshare: Fix macOS build post getifaddrs 0.5 update +- threadshare: Bump up getiffaddrs to 0.1.5 and revert “udp: avoid getifaddrs in android” +- threadshare: Reapply “udp: avoid getifaddrs in android” +- transcriberbin: Fix some deadlocks +- Update dependencies +- webrtc: Migrate to warp 0.4 and switch to tokio-rustls +- webrtc/signalling: Fix setting of host address +- ci: add script to check readme against plugins list +- Fix various new clippy 1.89 warnings +- Don’t suggest running cargo cinstall after cargo cbuild +- meson: Isolate built plugins from cargo target directory + +gst-libav + +- No changes + +gst-rtsp-server + +- rtsp-server: tests: Switch to fixtures to ensure pool shutdown + +gstreamer-vaapi + +- No changes + +gstreamer-sharp + +- No changes + +gst-python + +- python: Handle buffer PTS/DTS/duration/offset/offset-end as unsigned long long + +gst-editing-services + +- gstreamer: Make sure to zero-initialize the GValue before G_VALUE_COLLECT_INIT +- Fix various memory leaks + +gst-devtools, gst-validate + gst-integration-testsuites + +- validate: http-actions: Replace GUri with GstURI for GLib 2.64 compatibility +- Fix memory leak and use of incorrect context + +gst-examples + +- No changes + +gstreamer-docs + +- No changes + +Development build environment + +- gobject-introspection: Fix introspection failing on Linux with subproject GLib +- glib: update to 2.82.5 and backport shebangs patch +- ci: Work around PowerShell broken argument parsing +- Disable more plugins on Windows by default by not pulling in fallback subprojects automatically, only if plugins are enabled + explicitly +- Fix build on windows due to proxy-libintl not being invoked +- python: Reapply fixes to enable running Python bindings on Windows + +Cerbero build tool and packaging changes in 1.26.6 + +- ffmpeg: enable filters needed by avvideocompare +- cache: Fix detection of build tools prefix when using a cache +- cerbero/package: fix –tarball –compress-method=none +- cerbero: Reduce recipe parallelism in various cases +- ci: remove unpacked apk dir on completion +- package: Dump cerbero and recipe versions into datadir + +Contributors to 1.26.6 + +Andrey Khamukhin, Daniel Morin, Doug Nazar, François Laignel, Guillaume Desmottes, Hou Qi, Ian Napier, Jan Alexander Steffens +(heftig), Jan Schmidt, Jordan Petridis, L. E. Segovia, Marko Kohtala, Matthew Waters, Monty C, Nirbheek Chauhan, Ola Fornander, +Olivier Crête, Piotr Brzeziński, Qian Hu (胡骞), r4v3n6101, Robert Mader, Ruben Gonzalez, Sanchayan Maity, Sebastian Dröge, +Seungha Yang, Taruntej Kanakamalla, Thibault Saunier, Tim-Philipp Müller, Víctor Manuel Jáquez Leal, Vivian LEE, Vivienne +Watermeier, 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.6 + +- List of Merge Requests applied in 1.26.6 +- List of Issues fixed in 1.26.6 + 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 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gstreamer-1.26.5/RELEASE new/gstreamer-1.26.6/RELEASE --- old/gstreamer-1.26.5/RELEASE 2025-08-07 20:06:46.000000000 +0200 +++ new/gstreamer-1.26.6/RELEASE 2025-09-14 14:13:58.000000000 +0200 @@ -1,4 +1,4 @@ -This is GStreamer core 1.26.5. +This is GStreamer core 1.26.6. 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/gstreamer-1.26.5/gst/gstcaps.c new/gstreamer-1.26.6/gst/gstcaps.c --- old/gstreamer-1.26.5/gst/gstcaps.c 2025-08-07 20:06:46.000000000 +0200 +++ new/gstreamer-1.26.6/gst/gstcaps.c 2025-09-14 14:13:58.000000000 +0200 @@ -1359,6 +1359,7 @@ type = va_arg (varargs, GType); + memset (&value, 0, sizeof (value)); G_VALUE_COLLECT_INIT (&value, type, varargs, 0, &err); if (G_UNLIKELY (err)) { g_critical ("%s", err); @@ -1397,6 +1398,7 @@ type = va_arg (varargs, GType); + memset (&value, 0, sizeof (value)); G_VALUE_COLLECT_INIT (&value, type, varargs, 0, &err); if (G_UNLIKELY (err)) { g_critical ("%s", err); @@ -1441,6 +1443,7 @@ type = va_arg (varargs, GType); + memset (&value, 0, sizeof (value)); G_VALUE_COLLECT_INIT (&value, type, varargs, 0, &err); if (G_UNLIKELY (err)) { g_critical ("%s", err); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gstreamer-1.26.5/gst/gstchildproxy.c new/gstreamer-1.26.6/gst/gstchildproxy.c --- old/gstreamer-1.26.5/gst/gstchildproxy.c 2025-08-07 20:06:46.000000000 +0200 +++ new/gstreamer-1.26.6/gst/gstchildproxy.c 2025-09-14 14:13:58.000000000 +0200 @@ -484,6 +484,7 @@ if (!gst_child_proxy_lookup (object, name, &target, &pspec)) goto not_found; + memset (&value, 0, sizeof (value)); G_VALUE_COLLECT_INIT (&value, pspec->value_type, var_args, G_VALUE_NOCOPY_CONTENTS, &error); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gstreamer-1.26.5/gst/gstelementfactory.c new/gstreamer-1.26.6/gst/gstelementfactory.c --- old/gstreamer-1.26.5/gst/gstelementfactory.c 2025-08-07 20:06:46.000000000 +0200 +++ new/gstreamer-1.26.6/gst/gstelementfactory.c 2025-09-14 14:13:58.000000000 +0200 @@ -426,6 +426,7 @@ names_array[n_params] = name; + memset (&values_array[n_params], 0, sizeof (values_array[n_params])); G_VALUE_COLLECT_INIT (&values_array[n_params], pspec->value_type, properties, 0, &error); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gstreamer-1.26.5/gst/gststructure.c new/gstreamer-1.26.6/gst/gststructure.c --- old/gstreamer-1.26.5/gst/gststructure.c 2025-08-07 20:06:46.000000000 +0200 +++ new/gstreamer-1.26.6/gst/gststructure.c 2025-09-14 14:13:58.000000000 +0200 @@ -1232,6 +1232,8 @@ while (fieldname) { GstStructureField field = { GST_ID_STR_INIT, G_VALUE_INIT }; + memset (&field.value, 0, sizeof (field.value)); + if (static_string) gst_id_str_set_static_str (&field.name, fieldname); else @@ -1356,6 +1358,8 @@ while (fieldname) { GstStructureField field = { GST_ID_STR_INIT, G_VALUE_INIT }; + memset (&field.value, 0, sizeof (field.value)); + gst_id_str_set_static_str (&field.name, g_quark_to_string (fieldname)); type = va_arg (varargs, GType); @@ -1428,6 +1432,8 @@ while (fieldname) { GstStructureField field = { GST_ID_STR_INIT, G_VALUE_INIT }; + memset (&field.value, 0, sizeof (field.value)); + gst_id_str_copy_into (&field.name, fieldname); type = va_arg (varargs, GType); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gstreamer-1.26.5/gst/gsttaglist.c new/gstreamer-1.26.6/gst/gsttaglist.c --- old/gstreamer-1.26.5/gst/gsttaglist.c 2025-08-07 20:06:46.000000000 +0200 +++ new/gstreamer-1.26.6/gst/gsttaglist.c 2025-09-14 14:13:58.000000000 +0200 @@ -1297,6 +1297,7 @@ g_warning ("unknown tag '%s'", tag); return; } + memset (&value, 0, sizeof (value)); G_VALUE_COLLECT_INIT (&value, info->type, var_args, 0, &error); if (error) { g_warning ("%s: %s", G_STRLOC, error); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gstreamer-1.26.5/gst/gsttracerrecord.c new/gstreamer-1.26.6/gst/gsttracerrecord.c --- old/gstreamer-1.26.5/gst/gsttracerrecord.c 2025-08-07 20:06:46.000000000 +0200 +++ new/gstreamer-1.26.6/gst/gsttracerrecord.c 2025-09-14 14:13:58.000000000 +0200 @@ -211,6 +211,7 @@ return NULL; } + memset (&val, 0, sizeof (val)); G_VALUE_COLLECT_INIT (&val, type, varargs, G_VALUE_NOCOPY_CONTENTS, &err); if (G_UNLIKELY (err)) { g_critical ("%s", err); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gstreamer-1.26.5/gst/meson.build new/gstreamer-1.26.6/gst/meson.build --- old/gstreamer-1.26.5/gst/meson.build 2025-08-07 20:06:46.000000000 +0200 +++ new/gstreamer-1.26.6/gst/meson.build 2025-09-14 14:13:58.000000000 +0200 @@ -300,13 +300,15 @@ if build_gir gst_gir_extra_args = gir_init_section + ['--c-include=gst/gst.h'] + gst_gir_extra_args += ['--cflags-begin', + '-DGST_DISABLE_MINIOBJECT_INLINE_FUNCTIONS', + '--cflags-end'] if meson.is_subproject() # FIXME: There must be a better way to do this # Need to pass the include path to find gst/gst.h and gst/gstenumtypes.h (built) gst_gir_extra_args += ['--cflags-begin', '-I' + meson.current_source_dir() + '/..', '-I' + meson.current_build_dir() + '/..', - '-DGST_DISABLE_MINIOBJECT_INLINE_FUNCTIONS', '--cflags-end'] endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gstreamer-1.26.5/gstreamer.doap new/gstreamer-1.26.6/gstreamer.doap --- old/gstreamer-1.26.5/gstreamer.doap 2025-08-07 20:06:46.000000000 +0200 +++ new/gstreamer-1.26.6/gstreamer.doap 2025-09-14 14:13:58.000000000 +0200 @@ -40,6 +40,16 @@ <release> <Version> + <revision>1.26.6</revision> + <branch>1.26</branch> + <name></name> + <created>2025-09-14</created> + <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.26.6.tar.xz" /> + </Version> + </release> + + <release> + <Version> <revision>1.26.5</revision> <branch>1.26</branch> <name></name> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gstreamer-1.26.5/libs/gst/base/gstbaseparse.c new/gstreamer-1.26.6/libs/gst/base/gstbaseparse.c --- old/gstreamer-1.26.5/libs/gst/base/gstbaseparse.c 2025-08-07 20:06:46.000000000 +0200 +++ new/gstreamer-1.26.6/libs/gst/base/gstbaseparse.c 2025-09-14 14:13:58.000000000 +0200 @@ -482,7 +482,7 @@ static void gst_base_parse_push_pending_events (GstBaseParse * parse); static void -gst_base_parse_clear_queues (GstBaseParse * parse) +gst_base_parse_clear_queues (GstBaseParse * parse, gboolean clear_sticky_events) { g_slist_foreach (parse->priv->buffers_queued, (GFunc) gst_buffer_unref, NULL); g_slist_free (parse->priv->buffers_queued); @@ -509,9 +509,30 @@ gst_buffer_replace (&parse->priv->cache, NULL); - g_list_foreach (parse->priv->pending_events, (GFunc) gst_event_unref, NULL); - g_list_free (parse->priv->pending_events); - parse->priv->pending_events = NULL; + if (clear_sticky_events) { + g_list_foreach (parse->priv->pending_events, (GFunc) gst_event_unref, NULL); + g_list_free (parse->priv->pending_events); + parse->priv->pending_events = NULL; + } else { + GList *cur = g_list_first (parse->priv->pending_events); + GList *next; + + while (cur != NULL) { + GstEvent *event = GST_EVENT (cur->data); + GstEventType type = GST_EVENT_TYPE (event); + + next = g_list_next (cur); + + if (!GST_EVENT_IS_STICKY (event) || type == GST_EVENT_EOS + || type == GST_EVENT_STREAM_GROUP_DONE || type == GST_EVENT_SEGMENT) { + gst_event_unref (event); + parse->priv->pending_events = + g_list_delete_link (parse->priv->pending_events, cur); + } + + cur = next; + } + } parse->priv->checked_media = FALSE; } @@ -529,7 +550,7 @@ } g_mutex_clear (&parse->priv->index_lock); - gst_base_parse_clear_queues (parse); + gst_base_parse_clear_queues (parse, TRUE); G_OBJECT_CLASS (parent_class)->finalize (object); } @@ -1123,9 +1144,16 @@ GstStructure *structure = gst_caps_get_structure (default_caps, i); if (!gst_structure_has_field (structure, gst_id_str_as_str (field))) { gst_structure_id_str_set_value (structure, field, value); + } else { + const GValue *v = gst_structure_id_str_get_value (structure, field); + + // If a downstream caps field is not fixed and the upstream value is a + // subset, take over the value from the upstream caps. + // Otherwise let gst_caps_fixate() take care of it later. + if (!gst_value_is_fixed (v) && gst_value_is_subset (value, v)) { + gst_structure_id_str_set_value (structure, field, value); + } } - /* XXX: maybe try to fixate better than gst_caps_fixate() the - * downstream caps based on upstream values if possible */ } return TRUE; @@ -1401,7 +1429,7 @@ case GST_EVENT_FLUSH_STOP: gst_adapter_clear (parse->priv->adapter); - gst_base_parse_clear_queues (parse); + gst_base_parse_clear_queues (parse, FALSE); parse->priv->flushing = FALSE; parse->priv->discont = TRUE; parse->priv->last_pts = GST_CLOCK_TIME_NONE; @@ -4759,7 +4787,7 @@ gst_event_set_seqnum (fevent, seqnum); gst_pad_push_event (parse->srcpad, gst_event_ref (fevent)); gst_pad_push_event (parse->sinkpad, fevent); - gst_base_parse_clear_queues (parse); + gst_base_parse_clear_queues (parse, FALSE); } memcpy (&parse->segment, &seeksegment, sizeof (GstSegment)); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gstreamer-1.26.5/libs/gst/helpers/ptp/net.rs new/gstreamer-1.26.6/libs/gst/helpers/ptp/net.rs --- old/gstreamer-1.26.5/libs/gst/helpers/ptp/net.rs 2025-08-07 20:06:46.000000000 +0200 +++ new/gstreamer-1.26.6/libs/gst/helpers/ptp/net.rs 2025-09-14 14:13:58.000000000 +0200 @@ -62,7 +62,7 @@ } } - fn iter(&self) -> IfaddrsIter { + fn iter(&self) -> IfaddrsIter<'_> { IfaddrsIter { ptr: ptr::NonNull::new(self.0), phantom: marker::PhantomData, @@ -788,7 +788,7 @@ } } - fn iter(&self) -> AdapterAddressesIter { + fn iter(&self) -> AdapterAddressesIter<'_> { AdapterAddressesIter { ptr: Some(self.addresses), phantom: marker::PhantomData, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gstreamer-1.26.5/meson.build new/gstreamer-1.26.6/meson.build --- old/gstreamer-1.26.5/meson.build 2025-08-07 20:06:46.000000000 +0200 +++ new/gstreamer-1.26.6/meson.build 2025-09-14 14:13:58.000000000 +0200 @@ -1,5 +1,5 @@ project('gstreamer', 'c', - version : '1.26.5', + version : '1.26.6', meson_version : '>= 1.4', default_options : [ 'warning_level=1', 'buildtype=debugoptimized' ]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gstreamer-1.26.5/tests/check/libs/baseparse.c new/gstreamer-1.26.6/tests/check/libs/baseparse.c --- old/gstreamer-1.26.5/tests/check/libs/baseparse.c 2025-08-07 20:06:46.000000000 +0200 +++ new/gstreamer-1.26.6/tests/check/libs/baseparse.c 2025-09-14 14:13:58.000000000 +0200 @@ -763,6 +763,46 @@ GST_END_TEST; +GST_START_TEST (parser_sticky_events_after_flush) +{ + GstHarness *h; + GstEvent *e; + GstSegment segment; + GstStreamCollection *collection; + + parsetest = g_object_new (GST_PARSER_TESTER_TYPE, NULL); + + h = gst_harness_new_with_element (parsetest, "sink", "src"); + gst_harness_set_caps (h, gst_caps_new_empty_simple ("video/x-test-custom"), + gst_caps_new_empty_simple ("video/x-test-custom")); + + collection = gst_stream_collection_new ("test"); + fail_unless (gst_harness_push_event (h, + gst_event_new_stream_collection (collection))); + gst_object_unref (collection); + + fail_unless (gst_harness_push_event (h, gst_event_new_flush_start ())); + fail_unless (gst_harness_push_event (h, gst_event_new_flush_stop (FALSE))); + + gst_segment_init (&segment, GST_FORMAT_TIME); + fail_unless (gst_harness_push_event (h, gst_event_new_segment (&segment))); + fail_unless (gst_harness_push (h, create_test_buffer (1)) == GST_FLOW_OK); + + // FLUSH_STOP should not clear STREAM_COLLECTION + while (TRUE) { + fail_unless (e = gst_harness_pull_event (h)); + if (GST_EVENT_TYPE (e) == GST_EVENT_STREAM_COLLECTION) + break; + gst_event_unref (e); + } + gst_event_unref (e); + + gst_harness_teardown (h); + gst_object_unref (parsetest); +} + +GST_END_TEST; + static void baseparse_setup (void) @@ -797,6 +837,7 @@ tcase_add_test (tc, parser_pull_frame_growth); tcase_add_test (tc, parser_initial_gap_prefer_upstream_caps); tcase_add_test (tc, parser_convert_duration); + tcase_add_test (tc, parser_sticky_events_after_flush); return s; } ++++++ gstreamer.obsinfo ++++++ --- /var/tmp/diff_new_pack.RKquaU/_old 2025-09-17 16:43:17.784497712 +0200 +++ /var/tmp/diff_new_pack.RKquaU/_new 2025-09-17 16:43:17.788497881 +0200 @@ -1,5 +1,5 @@ name: gstreamer -version: 1.26.5 -mtime: 1754590006 -commit: 82cbccedf7946a32d28a5aaec8ebbcb627770c19 +version: 1.26.6 +mtime: 1757852038 +commit: 6cbdcfaca66dd52cdc4670d6f5122c68b9161170
