=== release 1.26.7 ===

2025-10-14 18:25:43 +0100  Tim-Philipp Müller <tim@centricular.com>

	* NEWS:
	* RELEASE:
	* gst-plugins-base.doap:
	* meson.build:
	  Release 1.26.7

2025-10-09 16:56:09 +0530  Taruntej Kanakamalla <tarun@centricular.com>

	* gst/videorate/gstvideorate.c:
	* tests/check/elements/videorate.c:
	  videorate: fix assert fail due to invalid buffer duration
	  In `drop-only` mode, when pushing an input buffer, the buffer duration
	  was always assumed valid i.e. `invalid_duration`  as FALSE. This was causing
	  an assert failure when first few buffers don't have the duration calculated yet
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2886
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9829>

2025-10-09 13:07:26 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/pbutils/gstdiscoverer-types.c:
	  discoverer: Mark gst_discoverer_stream_info_list_free() as `transfer full`
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9822>

2025-09-29 16:11:30 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* tests/examples/gl/qt/mousevideooverlay/pipeline.cpp:
	* tests/examples/gl/qt/qglwidgetvideooverlay/pipeline.cpp:
	* tests/examples/gl/qt/qglwtextureshare/meson.build:
	* tests/examples/gl/qt/qglwtextureshare/qglrenderer.cpp:
	  qt: Fix building examples on macOS
	  GL/gl.h is an incorrect include on macOS, and the correct include is
	  already done by gstgl.
	  qt_current_nsopengl_context() wasn't being exported, leading to build
	  failures
	  Also add comments to gstqtglutility.cc to clarify dense #ifdef usage.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9768>

2025-09-23 22:21:46 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/riff/riff-media.c:
	  riff: Add channel reorder maps for 3 and 7 channel audio
	  The function gst_riff_wave_add_default_channel_mask() was failing for
	  3 and 7 channel as it was not supported. We now use
	  gst_audio_channel_get_fallback_mask() to get the
	  default channel masks and add proper reorder maps for these cases.
	  The fallback layout follows ALSA conventions exactly as before, we're
	  just now leveraging the existing GStreamer infrastructure instead of
	  duplicating the logic.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9744>

2025-09-20 20:23:06 +0200  Mark Nauwelaerts <mnauw@users.sourceforge.net>

	* gst-libs/gst/sdp/gstmikey.c:
	  sdp: proper usage of gst_buffer_append
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9720>

2025-09-17 20:52:41 -0700  Xavier Claessens <xclaessens@netflix.com>

	* gst-libs/gst/glib-compat-private.h:
	* tools/gst-device-monitor.c:
	  build: Fix build error with glib < 2.68
	  glib-compat-private.h is copied verbatim from -good into -base because
	  g_string_replace() is used in gst-device-monitor since 1.26.6:
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9634
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9708>

2025-09-14 13:19:28 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.26.6

=== release 1.26.6 ===

2025-09-14 13:13:58 +0100  Tim-Philipp Müller <tim@centricular.com>

	* NEWS:
	* RELEASE:
	* gst-plugins-base.doap:
	* meson.build:
	  Release 1.26.6

2025-09-05 18:32:43 +0300  Marko Kohtala <marko.kohtala@gmail.com>

	* gst-libs/gst/rtsp/gstrtspconnection.c:
	  rtspconnection: Add get_url and get_ip return value annotation
	  The returned GstRTSPUrl is the one owned by the GstRTSPConnection,
	  but missing annotation causes caller to free it. This leads to access
	  to freed memory and eventually a crash.
	  The returned IP address annotation is missing it can be NULL when
	  the connection is closed.
	  Fixes #3726
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9656>

2025-09-05 08:30:28 -0400  Xavier Claessens <xclaessens@netflix.com>

	* gst-libs/gst/video/gstvideometa.c:
	  videometa: Fix valgrind warning when deserializing video meta
	  Conditional jump or move depends on uninitialised value(s)
	  at 0xAC8E1C8: gst_video_meta_is_alignment_valid (gstvideometa.c:589)
	  by 0xAC8E1C8: gst_video_meta_validate_alignment (gstvideometa.c:603)
	  by 0xAC8F741: gst_video_meta_set_alignment (gstvideometa.c:655)
	  by 0xAC8F9A7: video_meta_deserialize (gstvideometa.c:308)
	  by 0xA56E503: gst_meta_deserialize (gstmeta.c:856)
	  by 0x1472CE60: gst_unix_fd_src_create (gstunixfdsrc.c:390)
	  by 0xABCEAA3: gst_base_src_get_range (gstbasesrc.c:2632)
	  by 0xABD1C39: gst_base_src_loop (gstbasesrc.c:2964)
	  by 0xA5B1DC6: gst_task_func (gsttask.c:399)
	  by 0x8423383: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.6)
	  by 0x8422AE0: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6400.6)
	  by 0x485C608: start_thread (pthread_create.c:477)
	  by 0x4AFC352: clone (clone.S:95)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9654>

2025-09-01 21:02:22 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/gl/meson.build:
	* ext/opus/meson.build:
	* ext/pango/meson.build:
	* ext/vorbis/meson.build:
	  meson: Convert all remaining fallback: usages to [provide]
	  Only commonly-used plugin deps like pango, orc, openh264, libvpx,
	  libnice are enabled by default.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1788
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9637>

2025-09-02 07:16:27 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* tools/gst-device-monitor.c:
	  device-monitor: Fix CMD vs PowerShell detection
	  PSModulePath is set in both powershell and cmd tabs spawned inside
	  Windows Terminal, and ComSpec is also set in both. PROMPT is the only
	  variable that is only set by cmd, which means it will also exist in a
	  powershell prompt spawned inside cmd, but in that case it's much harder
	  to figure out the parent shell. We'd have to look at the process tree.
	  This should be good enough for now.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9634>

2025-09-02 07:08:34 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* tools/gst-device-monitor.c:
	  device-monitor: Double-escape \ to deal with gst_value_deserialize()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9634>

2025-09-01 16:39:02 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* tools/gst-device-monitor.c:
	  device-monitor: Fix unnecessary quoting when serializing
	  Not all serialized values need quoting, for example booleans.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9634>

2025-09-01 16:26:21 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* tools/gst-device-monitor.c:
	  device-monitor: Add quoting for powershell and cmd
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4620
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9634>

2025-08-19 09:15:03 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/rtp/gstrtpbasedepayload.c:
	  rtpbasedepayload: Avoid potential use-after free
	  Clear the pointer after freeing the reference.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9581>

2025-05-15 18:33:30 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Update stream tags
	  parsebin does this, so should decodebin3.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9566>

2025-08-11 10:08:40 +0300  Andrey Khamukhin <andrew.khamukhin@hotmail.com>

	* gst/videorate/gstvideorate.c:
	* tests/check/elements/videorate.c:
	  videorate: don't hold the reference to the buffer in drop-only mode
	  Pushing the buffer via gst_pad_push () in transform_ip () function
	  causes downstream elements to process the buffer with a reference
	  count > 1. This leads to performance issue if there are downstream
	  elements which modify the buffer memory.
	  However, in drop-only mode this reference is not required.
	  So, let GstBaseTransform push the buffer in drop-only mode.
	  Fixes #4258
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9548>

2025-08-07 19:15:29 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.26.5

=== release 1.26.5 ===

2025-08-07 19:06:46 +0100  Tim-Philipp Müller <tim@centricular.com>

	* NEWS:
	* RELEASE:
	* gst-plugins-base.doap:
	* meson.build:
	  Release 1.26.5

2025-08-06 15:27:32 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: Add missing locking and NULL checks when adding URIs to messages
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4559
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9501>

2025-08-03 16:31:32 -0400  Xavier Claessens <xclaessens@netflix.com>

	* gst/audioconvert/gstaudioconvert.c:
	* tests/check/elements/audioconvert.c:
	  audioconvert: Fix regression when using a mix matrix
	  This fixes regression introduced by commit da3a1011. When a mix matrix
	  is set, we still want to set the default channel-mask on output caps.
	  Fixes: #4579
	  Co-authored-by: Sebastian Dröge <sebastian@centricular.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9499>

2025-08-05 12:44:38 +0100  Nirbheek Chauhan <nirbheek@centricular.com>

	* tools/gst-device-monitor.c:
	  device-monitor: Also accept utf8 in launch lines
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9498>

2025-08-05 12:40:21 +0100  Nirbheek Chauhan <nirbheek@centricular.com>

	* tools/gst-device-monitor.c:
	  device-monitor: Fix criticals when dumping non-string values
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9498>

2025-07-31 20:54:20 +1000  Jan Schmidt <jan@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Don't error out for unknown streams in default selection
	  If there is only unknown stream-type streams in the current collection
	  don't post an error straight away. This fixes a problem with RTSP
	  cameras and legacy upstream collection building, if the first
	  stream that rtspsrc outputs is the ONVIF metadata track. That
	  happens often on bandwidth-constrained camera inputs, as the
	  video and audio will naturally take longer to arrive.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9488>

2025-07-31 12:50:18 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* tools/gst-device-monitor.c:
	  gst-device-monitor: Add shell quoting for launch lines
	  Launch-lines will be pasted into a shell, and `gst_value_serialize()`
	  yields strings that will likely be interpreted by the shell. For
	  example:
	  `gst-launch-1.0 ... ! osxaudiosink unique-id="AppleUSBAudioEngine:BEHRINGER:UMC202HD\ 192k:12345678:1\,2"`
	  The shell will remove the double-quotes `"` but keep the `\ ` which
	  means the output of `gst_value_deserialize()` will not be the original
	  string, and the launch line will not work.
	  So let's use `gst_value_serialize()` only if the string is non-ASCII,
	  and if it's ASCII and needs quoting, we do some shell quoting.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9486>

2025-07-31 12:49:32 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* tools/gst-device-monitor.c:
	  gst-device-monitor: Don't loop unnecessarily when printing properties
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9486>

2025-07-31 20:05:15 +0900  Seungha Yang <seungha@centricular.com>

	* tools/gst-device-monitor.c:
	  device-monitor: Use gst_print instead of g_print
	  Avoid broken stdout output on Windows. Same change was made for
	  gst-launch in commit 493a3261a9757b5ade7aec289eb07221966f9eed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9470>

2025-07-22 15:23:30 +0200  Jaslo Ziska <jaslo@ziska.de>

	* ext/gl/gstgloverlay.c:
	  gloverlay: Recompute geometry when caps change
	  Set geometry_changed when setting caps so that the geometry is
	  recomputed correctly with the new dimensions.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9462>

2025-07-22 15:21:23 +0200  Jaslo Ziska <jaslo@ziska.de>

	* ext/gl/gstgloverlay.c:
	  gloverlay: Load texture after stopping and starting again
	  Set location_has_changed when stopping so that the texture will be
	  loaded when starting again.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9462>

2025-03-04 01:29:27 +0000  Tim-Philipp Müller <tim@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/videorate/gstvideorate.c:
	  videorate: add support for JPEG-XS
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9421>

2025-07-16 15:33:19 +0200  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.26.4

=== release 1.26.4 ===

2025-07-16 15:26:21 +0200  Tim-Philipp Müller <tim@centricular.com>

	* NEWS:
	* RELEASE:
	* gst-plugins-base.doap:
	* meson.build:
	  Release 1.26.4

2025-07-08 17:06:25 +0100  Tim-Philipp Müller <tim@centricular.com>

	* po/hr.po:
	* po/ka.po:
	  gst-plugins-base: update translations

2025-06-11 01:45:43 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/alsa/gstalsasink.c:
	* ext/alsa/gstalsasrc.c:
	  alsa: free conf cache under valgrind
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9362>

2025-05-30 15:11:31 -0400  Doug Nazar <nazard@nazar.ca>

	* tests/check/elements/videoscale.c:
	  videoscale: Fix test for allowed caps
	  videoscale_get_allowed_caps_for_method() could leave holes in the
	  returned array, causing the test to skip some caps and not free them.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9347>

2025-05-30 15:08:32 -0400  Doug Nazar <nazard@nazar.ca>

	* gst-libs/gst/gl/gstglviewconvert.c:
	  glviewconvert: Fix a memory leak
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9347>

2025-05-30 15:07:07 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/gl/gstglstereosplit.c:
	  glstereosplit: Fix a leaked event
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9347>

2025-07-08 02:33:59 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* tools/gst-device-monitor.c:
	  gst-device-monitor: Fix caps filter splitting
	  max_tokens=-1 means we will split on `:` in the caps as well, for
	  example caps features, and then discard those tokens.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9346>

2025-05-28 08:36:28 -0400  Doug Nazar <nazard@nazar.ca>

	* tests/check/elements/appsrc.c:
	  tests: appsrc: fix race accessing expected list
	  Without synchronization, a thread may still see an old value.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9343>

2025-05-28 08:42:15 -0400  Doug Nazar <nazard@nazar.ca>

	* gst-libs/gst/pbutils/encoding-target.c:
	  encoding-target: free fullname on failure
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9343>

2025-06-22 03:13:00 -0400  Doug Nazar <nazard@nazar.ca>

	* gst-libs/gst/video/gstvideodecoder.c:
	  videodecoder: Print correct frame variable
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9314>

2025-06-30 09:26:29 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/playback/gststreamsynchronizer.c:
	* tests/check/elements/streamsynchronizer.c:
	  Revert "streamsynchronizer: Consider streams having received stream-start as waiting"
	  This reverts commit a1a189c07cb66af06d7047c74f6421bd36e3d66c.
	  It breaks the uriplaylistbin tests and needs further investigation.
	  See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4506
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9312>

2025-06-26 21:29:34 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.26.3

=== release 1.26.3 ===

2025-06-26 21:25:24 +0100  Tim-Philipp Müller <tim@centricular.com>

	* NEWS:
	* RELEASE:
	* gst-plugins-base.doap:
	* meson.build:
	  Release 1.26.3

2025-06-12 16:32:51 -0400  Xavier Claessens <xclaessens@netflix.com>

	* gst/audioconvert/gstaudioconvert.c:
	* tests/check/elements/audioconvert.c:
	  audioconvert: Fix setting mix-matrix when input caps changes
	  When the number of input channels changes, application might have to set
	  a new mix-matrix. Application must set the new matrix before
	  audioconvert receives updated caps, otherwise negotiation would fail.
	  That means it should be allowed to set an invalid mix-matrix until we
	  receive new caps or next buffer.
	  This fixes a regression in GStreamer >=1.24.9 caused by:
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7363
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9290>

2025-06-13 09:54:33 -0400  Xavier Claessens <xclaessens@netflix.com>

	* gst/audioconvert/gstaudioconvert.c:
	  audioconvert: Replace g_warning with GST_WARNING_OBJECT
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9290>

2025-06-05 17:03:12 +0200  Thibault Saunier <tsaunier@igalia.com>

	* gst/playback/gstplaysink.c:
	* gst/playback/gststreamsynchronizer.c:
	  playsink: Fix race condition in stream synchronizer pad cleanup during state changes
	  Prevent race condition where gst_play_sink_do_reconfigure() could be called
	  from a pad probe while stream synchronizer pads are being released during
	  GST_STATE_CHANGE_PAUSED_TO_READY transition.
	  The race occurred when:
	  1. State change starts releasing stream synchronizer pads
	  2. Pads are unblocked earlier in the state change, allowing events to flow
	  3. A streaming thread triggers sinkpad_blocked_cb -> gst_play_sink_do_reconfigure
	  4. Reconfiguration tries to use already-released pad pointers
	  5. New pad creation fails with assertion in gst_pad_iterate_internal_links
	  The fix adds GST_PLAY_SINK_LOCK around the pad cleanup to ensure atomic
	  cleanup and prevent concurrent access during state transitions.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9263>

2025-06-18 19:03:17 +0200  Loïc Le Page <llepage@igalia.com>

	* gst-libs/gst/audio/gstaudioaggregator.c:
	  GstAudioAggregator: fix structure unref in peek_next_sample
	  The GstStructure attached to the audio sample in peek_next_sample() was
	  freed prematurely before usage as gst_sample_new() is taking full
	  ownership on it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9260>

2025-01-31 17:56:44 +0100  Théo Maillart <tmaillart@freebox.fr>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: never manually store stream-start
	  The copy of the exact same stream-start event prevents the multiqueue's sink
	  event function from being called because it is already stored on both pads at
	  link time
	  The text streams are no longer considered sparse by the multiqueue, so
	  interleave calculation is broken and makes us consume a lot of ram and we can
	  end up killed by the kernel because of this
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9250>

2025-06-07 13:32:18 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ext/gl/gstglutils.c:
	* ext/gl/gstglutils.h:
	* ext/gl/gstopengl.c:
	  gl: simplify private gst_gl_gst_meta_api_type_tags_contain_only()
	  Follow-up to backport commit 7dd465ba.
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9041#note_2923013
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9195>

2025-05-30 12:41:24 -0400  Xavier Claessens <xclaessens@netflix.com>

	* gst-libs/gst/app/gstappsink.c:
	  python: Fix pulling events from appsink
	  appsink.pull_object() is introspectable, but it needs a way to convert
	  the GstMiniObject to its GstEvent/GstSample subclass.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9178>

2025-06-04 11:57:38 +0200  Philippe Normand <philn@igalia.com>

	* gst/encoding/gstencodebasebin.c:
	  encodebasebin: GstPad and GstStructure leak fixes
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9173>

2025-06-04 12:41:35 +0200  Philippe Normand <philn@igalia.com>

	* gst/encoding/gstencodebasebin.c:
	  encodebasebin: Make profile ownership explicit in StreamGroup
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9173>

2025-06-04 12:40:54 +0200  Philippe Normand <philn@igalia.com>

	* gst/encoding/gstencodebasebin.c:
	  encodebasebin: Encoding profile ownership fixes
	  The profile argument passed to gst_encode_base_bin_set_profile is now
	  transfer-full. This issue was noticed after commit
	  6beb709d43d2023e7e5dc8f1ee1323bc28c9d1d8 which fixed profile refcount handling
	  in transcodebin.
	  Driving-by, an encoding profile leak was also fixed in _set_profile, in case
	  it's called for an already active element.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9173>

2025-05-30 09:40:21 +0200  Thibault Saunier <tsaunier@igalia.com>

	* sys/xvimage/xvimagesink.c:
	  doc: Add some explanation about the logic of when to post navigation message in code
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9169>

2024-11-14 21:36:19 +0100  Enrique Ocaña González <eocanha@igalia.com>

	* gst/playback/gststreamsynchronizer.c:
	* tests/check/elements/streamsynchronizer.c:
	  streamsynchronizer: Consider streams having received stream-start as waiting
	  When using the custom WebKitMediaSrc element (used by WebKit and able to
	  perform an initial seek in playbin), a stall caused by streamsynchronizer
	  was detected during an initial seek. The flow of events revealed that the
	  intertwining of the initial configuration of the streams with the reset
	  caused by the flush events from the seek left streamsynchronizer in an
	  inconsistent state:
	  streamsynchronizer0:sink_0 (video) events, starting before the seek:
	  stream-start --> Sets the stream to wait
	  flush-stop --> Clears the stream wait flag
	  caps
	  tag
	  segment
	  stream-collection
	  (buffers start to come and flow properly)
	  streamsynchronizer0:sink_1 (audio) events, happening after seek:
	  (no flush events, because the stream hadn't been initialized when the seek happened)
	  stream-start --> Sets the stream to wait
	  caps
	  segment
	  (stalled because the stream is in wait mode!)
	  The code in streamsynchronizer expects that all the streams are in wait
	  state before releasing all of them at once. The flush on the video stream
	  broke that assumption and that's why the audio stream is never released in
	  that scenario.
	  Avoiding the clearing of the wait flag on flush-stop isn't an actual solution
	  to the problem, as it creates other side effects and at least makes the
	  gst-editing-services/seek_with_stop test to timeout. The alternate solution
	  implemented in this patch consists on analyzing if the other streams different
	  from the one newly added (after the flush) aren't waiting (which would mean
	  that they've all been unlocked after all of them were waiting before), and,
	  in that case, mark the new stream as also not waiting.
	  A new test_stream_start_wait test case has been added to demonstrate this
	  problem. The test case creates a video stream, pushes a buffer, then
	  simulates a seek by pushing flush-start, flush-stop, stream-start and segment
	  events. Note that the flush-stop clears the video stream waiting flag.
	  After that, a new audio stream is created and stream-start and new segment
	  events are sent. Note that stream-start will set the audio stream to wait.
	  Then a buffer is pushed on each stream. In the failing case, the test hangs.
	  In the working case (after this fix), the test runs properly because the
	  fact of having seen a stream-start also helps to clear the wait flag.
	  A second new test_stream_start_wait_sparse test has also been added to prove
	  that this mechanism can also work with sparse streams (a special case of the
	  current stream-start handling code). This test behaves like the previous one,
	  but there's no video buffer after the seek (it'll come in the future, as the
	  stream is sparse, but actually never comes). The buffer after the seek in the
	  audio stream starts at its due time. Streamsynchronizer is able to ignore
	  the wait for the video stream and produce audio buffers on time.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9160>

2025-05-30 00:03:12 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.26.2

=== release 1.26.2 ===

2025-05-29 23:56:43 +0100  Tim-Philipp Müller <tim@centricular.com>

	* NEWS:
	* RELEASE:
	* gst-plugins-base.doap:
	* meson.build:
	  Release 1.26.2

2025-05-08 12:46:40 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/subparse/gstsubparse.c:
	  subparse: Make sure that subrip time string is not too long before zero-padding
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4419
	  Fixes CVE-2025-47806
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9135>

2025-05-08 09:14:15 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/subparse/gstsubparse.c:
	  subparse: Check for valid UTF-8 before cleaning up lines and check for regex replace errors
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4418
	  Fixes CVE-2025-47807
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9135>

2025-05-08 09:04:52 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/subparse/tmplayerparse.c:
	  tmplayer: Don't append NULL + 1 to the string buffer when parsing lines without text
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4417
	  Fixes CVE-2025-47808
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9135>

2025-05-29 00:14:50 +0300  Vasiliy Doylov <nekocwd@mainlining.org>

	* ext/gl/gstglfiltershader.c:
	  glshader: recompile shader on pipeline restart
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9125>

2025-05-26 19:00:36 +0200  Wim Taymans <wtaymans@redhat.com>

	* gst-libs/gst/riff/riff-media.c:
	  riff-media: fix MS and DVI ADPCM av_bps calculations
	  Align the calculations for the number of samples per block with the
	  calculations in adpcmdec.
	  For MS ADPCM we have in adpcmdec:
	  samples = (blocksize - 7 * dec->channels) * 2 + 2 * dec->channels;
	  outsize = 2 * samples;
	  outbuf = gst_buffer_new_and_alloc (outsize);
	  This gives us the total output byte size in 16 bits samples. To get back
	  to the samples, dividing by the channels and 2, we get the right samples per
	  block as:
	  int spb = ((strf->blockalign / strf->channels) - 7) * 2 + 2;
	  Which we can then use to calculate the bitrate in riff-media.
	  A similar calculation for DVI ADPCM is needed to get the right bitrate
	  in all cases.
	  Tested with the sample in https://bugzilla.gnome.org/show_bug.cgi?id=636245
	  and another (failing before this patch) sample.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9121>

2025-05-27 19:20:35 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ext/pango/gstbasetextoverlay.c:
	  textoverlay: fix shading for RGBx/RGBA pixel format variants
	  ... for cases where there's padding at the end of each row.
	  Fixes #4414.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9111>

2025-05-21 10:01:24 -0400  Doug Nazar <nazard@nazar.ca>

	* gst/playback/gstdecodebin3.c:
	  gstreamer: A few small memory cleanups
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9101>

2025-05-21 10:04:59 -0400  Doug Nazar <nazard@nazar.ca>

	* gst-libs/gst/gl/egl/gstglcontext_egl.c:
	  glcontext/egl: Free dma_formats if someone else already initialized
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9101>

2025-05-14 13:54:55 -0400  Doug Nazar <nazard@nazar.ca>

	* tests/check/elements/opus.c:
	* tests/check/meson.build:
	  tests: opus: Update channel support and add to meson
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9090>

2025-05-14 14:42:19 -0400  Doug Nazar <nazard@nazar.ca>

	* tests/check/elements/audioresample.c:
	  tests: Switch to GST_AUDIO_NE()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9089>

2025-05-14 14:39:17 -0400  Doug Nazar <nazard@nazar.ca>

	* gst/volume/gstvolume.c:
	* tests/check/elements/volume.c:
	  volume: Switch to GST_AUDIO_NE()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9089>

2025-05-14 14:38:41 -0400  Doug Nazar <nazard@nazar.ca>

	* gst/audiomixer/gstaudiointerleave.c:
	* gst/audiomixer/gstaudiomixer.c:
	  audiomixer: Switch to GST_AUDIO_NE()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9089>

2025-05-14 14:37:47 -0400  Doug Nazar <nazard@nazar.ca>

	* gst/adder/gstadder.c:
	* tests/check/elements/adder.c:
	  adder: Switch to GST_AUDIO_NE()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9089>

2025-05-13 19:42:37 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/gl/gstglfiltershader.c:
	  gstglfiltershader: Free various props before set & during cleanup
	  gst_object_replace() takes a reference so no need to dup object.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9088>

2025-05-21 20:29:06 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* meson_options.txt:
	  meson: Add a monorepo-wide qt-method option and yield to it
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9063>

2025-05-21 20:25:26 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	  meson: Rework build files for qt examples in -base
	  The build files had quite a few things wrong:
	  * Not using the method: kwarg, which can cause the wrong Qt to be
	  used for building
	  * There was no way to enable the build for them
	  * Qt was being detected multiple times, differently
	  * Unnecessary check for libGL
	  * have_cxx was being used incorrectly
	  * Qt tool detection was outdated
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9063>

2025-05-17 11:40:51 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ext/gl/gstglcolorbalance.c:
	* ext/gl/gstglcolorconvertelement.c:
	* ext/gl/gstglcolorscale.c:
	* ext/gl/gstgldownloadelement.c:
	* ext/gl/gstgluploadelement.c:
	* ext/gl/gstglutils.c:
	* ext/gl/gstglutils.h:
	* ext/gl/gstopengl.c:
	  gl: Implement basetransform meta transform function
	  This makes sure we can pass through more metas correctly, e.g.
	  GstVideoOverlayComposition meta.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4422
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9041>

2025-05-18 11:30:24 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/videoconvertscale/gstvideoconvertscale.c:
	  videoconvertscale: Use new gst_meta_api_type_tags_contain_only() API
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9041>

2025-05-20 08:21:51 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: Don't hold play items lock while releasing pads
	  Releasing the pad can cause messages that call back into the message
	  handler of uridecodebin3 and take exactly the same lock again.
	  Fix #4443
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9047>

2025-05-18 12:00:55 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/playback/gstsubtitleoverlay.c:
	  subtitleoverlay: Remove 0.10 hardware caps handling
	  This also reverts c02d41c2. videoconvert and videoscale are supposed to support
	  raw video with any caps features as long as no conversion is actually necessary,
	  and assuming they don't breaks usage of GstVideoOverlayCompositionMeta with e.g.
	  dmabuf or GL memory caps.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4353
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9045>

2025-05-13 08:20:30 -0400  Doug Nazar <nazard@nazar.ca>

	* tests/check/elements/audiomixer.c:
	  audiomixer: Change test to use native endian audio format
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9025>

2025-05-13 08:19:54 -0400  Doug Nazar <nazard@nazar.ca>

	* gst/videoconvertscale/gstvideoconvertscale.c:
	  videoconvertscale: Use correct variable size for gst_structure_get()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9025>

2025-04-13 19:31:23 +0200  Adrian Perez de Castro <aperez@igalia.com>

	* ext/alsa/gstalsa.c:
	  alsa: Avoid infinite loop in DSD rate detection
	  Stop testing DSD rates in gst_alsa_detect_dsd_rates() if the rate becomes zero
	  or negative. This avoids an infinite loop if gst_alsa_probe_supported_formats()
	  is used on a PCM sink defined like the following in the ALSA configuration file:
	  pcm.buggy {
	  type plug
	  slave.pcm "buggy_volume"
	  hint.description "Causes an infinite loop in GStreamer"
	  }
	  pcm.buggy_volume {
	  type softvol
	  slave.pcm "buggy_dmix"
	  control.name "buggy_volume"
	  }
	  pcm.buggy_dmix {
	  type dmix
	  ipc_key 12345
	  slave {
	  pcm "hw:0,0"
	  period_size 1024
	  buffer_size 4096
	  }
	  }
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9005>

2025-04-26 15:04:01 +0200  Robert Mader <robert.mader@collabora.com>

	* gst-libs/gst/gl/gstglupload.c:
	  glupload: Only add texture-target field to GL caps
	  So far we simply ignored it for MEMORY_DMABUF passthrough caps
	  without known negative cosequences, but with upcoming more complicated
	  caps negotiations it's becoming an issue, thus fix it.
	  Fixes: 7e71d4f753 ("gl: upload: Add DMA_DRM passthrough upload")
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8998>

2025-05-02 08:56:19 +0200  Alexander Slobodeniuk <aslobodeniuk@fluendo.com>

	* ext/pango/gstbasetextoverlay.c:
	* gst-libs/gst/allocators/gstdrmdumb.c:
	* gst-libs/gst/rtp/gstrtpbasedepayload.c:
	  properties: add G_PARAM_STATIC_STRINGS where missing
	  "Hold on, I know you need to generate the registry, but let me just
	  create copies of all those strings first", Framework whispered
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8962>

2025-05-01 11:48:30 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/sdp/gstmikey.c:
	  mikey: Avoid infinite loop while parsing MIKEY payload with unhandled payload types
	  Skip over the unhandled payload types for now, and error out if an unknown
	  payload type is found.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3314
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8947>

2025-04-26 13:38:06 +0000  Biswapriyo Nath <nathbappai@gmail.com>

	* gst-libs/gst/audio/gstaudioutilsprivate.c:
	  gstaudioutilsprivate: Fix gcc 15 compiler error with function pointer
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8910>

2025-04-01 17:58:14 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/vorbis/meson.build:
	  meson: Add include_type: 'system' everywhere to squelch wrap warnings
	  Wrap dependencies add a ton of warnings with the latest GCC in Fedora
	  42. Squelch them by specifying that these dependencies are not
	  a part of the gstreamer project, and should be treated as system deps.
	  libsoup needs some porting work for the bump, and vorbis/lame are
	  already at their latest releases.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8919>

2025-04-24 20:26:57 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.26.1
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8890>

=== release 1.26.1 ===

2025-04-24 20:20:14 +0100  Tim-Philipp Müller <tim@centricular.com>

	* NEWS:
	* RELEASE:
	* gst-plugins-base.doap:
	* meson.build:
	  Release 1.26.1

2025-04-15 14:24:12 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/video/gstvideoencoder.c:
	  videoencoder: Use the correct segment and buffer timestamp in the chain function
	  The only thing that can be used in the chain function is the input segment. The
	  output segment might not be available at all yet or out of sync with the current
	  input segment.
	  Also because of that, the unadjusted timestamp has to be used for the
	  calculations as the adjustment is only part of the output segment.
	  This fixes the deadline calculation and the handling of force-keyunit events for
	  encoders using frame reordering (i.e. setting a minimum PTS).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8843>

2025-04-07 15:07:56 +0100  Philippe Normand <philn@igalia.com>

	* ext/ogg/gstoggdemux.c:
	  oggdemux: Don't push new packets if there is a pending seek
	  There was a race condition where the demuxer would seek back to beginning after
	  determining the duration and while that seek was in progress one pad would
	  attempt to push a new buffer downstream, leading to a critical warning in
	  gst_pad_push().
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8834>

2025-04-10 16:19:42 +0900  Hou Qi <qi.hou@nxp.com>

	* ext/gl/gstgldownloadelement.c:
	  gldownload: unref glcontext after usage
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8813>

2025-03-11 09:30:29 +0100  Carlos Rafael Giani <crg7475@mailbox.org>

	* gst-libs/gst/audio/gstaudiobasesink.c:
	  audiobasesink: Fix custom slaving driftsamples calculation
	  driftsamples currently uses the requested skew directly, even if it
	  exceeds cexternal.
	  Use the approach that skew_slaving uses to fix this. As a side benefit,
	  this makes the custom_slaving and skew_slaving code easier to compare.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8811>

2025-03-09 22:00:06 +0100  Carlos Rafael Giani <crg7475@mailbox.org>

	* tests/examples/audio/audiobasesink-custom-clock-slaving.c:
	* tests/examples/audio/meson.build:
	  examples: Add custom audio clock slaving callback example
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8811>

2025-04-03 13:20:50 +1100  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/gl/gstglcolorconvert.c:
	  glcolorconvert: fix YUVA<->RGBA conversions
	  Alpha should not impact the YUV/RGB conversion and should simply be copied
	  over.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4339
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8769>

2025-03-31 12:18:42 +0200  Alexander Slobodeniuk <aslobodeniuk@fluendo.com>

	* gst-libs/gst/audio/gstaudioaggregator.c:
	  audioaggregator: fix chaining up to parent class (again)
	  An error was added in !8416, it was calling to the
	  wrong parent class
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8743>

2025-03-14 22:10:56 -0400  Doug Nazar <nazard@nazar.ca>

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: Free various props before being set
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8714>

2025-03-14 22:10:10 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/theora/gsttheoraenc.c:
	  theoraenc: Free various props before being set
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8714>

2025-03-14 22:09:21 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/gl/gstglbumper.c:
	* ext/gl/gstgldifferencematte.c:
	* ext/gl/gstgloverlay.c:
	  gl: Free various props during cleanup
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8714>

2025-03-14 22:07:04 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/alsa/gstalsamidisrc.c:
	  alsamidisrc: free ports during finalize()
	  If the element is never start/stopped the ports variable will leak.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8714>

2025-03-14 19:14:43 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/alsa/gstalsadeviceprovider.c:
	  all: Annotate *_set_property() contructor only props without free
	  Properties that are marked constructor only aren't required to be freed
	  before g_value_dup_string() as they can only be called once during construction.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8714>

2025-03-24 15:56:01 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/gl/egl/gsteglimage.c:
	  gl: eglimage: warn the reason of export failure
	  So people debugging could know what's happening at debugging.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8713>

2025-03-24 16:53:46 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/gl/egl/gsteglimage.c:
	  gl: eglExportDMABUFImageQueryMESA expects modifiers to be an array
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8713>

2025-03-15 12:07:22 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/video/gstvideotimecode.c:
	* tests/check/libs/videotimecode.c:
	  videotimecode: Add missing 119.88fps support to some functions
	  And while at it generalize the drop frame handling to all integer multiples
	  of 30000/1001 fps.
	  Also adjust tests accordingly and add some other missing test.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8704>

2025-03-15 11:00:52 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/video/gstvideotimecode.c:
	* tests/check/libs/videotimecode.c:
	  videotimecode: Fix conversion of timecode to datetime with drop-frame timecodes
	  gst_video_time_code_to_date_time() simply calculated the date time based on
	  adding the hours/minutes/seconds to the daily jam. This causes a gap every full
	  minute (except for every 10th minute) with drop-frame timecodes as the first 2
	  (29.97fps) or 4 (59.94fps) timecodes are skipped (not frames!), e.g. with
	  29.97fps:
	  timecode: 12:00:59;28  12:00:59;29  12:01:00;02  12:01:00;03
	  time    : 12:00:59.950 12:00:59.983 12:01:00.017 12:01:00.050
	  and not
	  time    : 12:00:59.934 12:00:59.968 12:01:00.067 12:01:00.100
	  |-- gap of 2 frames --|
	  The correct calculation would be to use gst_video_time_code_nsec_since_daily_jam()
	  and add that to the daily jam.
	  Also add a test for this.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8704>

2025-01-22 15:02:03 +0100  Marc Leeman <marc.leeman@gmail.com>

	* gst-libs/gst/audio/meson.build:
	* meson.build:
	  meson.build: test for and link against libatomic if it exists
	  It's needed on some platforms for some subset (or all) atomic operations and
	  checking for the cases when it's actually needed is quite complex.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4300
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8647>

