=== release 1.28.1 ===

2026-02-26 01:44:06 +0000  Tim-Philipp Müller <tim@centricular.com>

	* gst-plugins-base.doap:
	* meson.build:
	  Release 1.28.1

2026-02-11 19:44:34 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/riff/riff-media.c:
	  riff: Correctly check that enough RGB palette data is available
	  This can otherwise overflow and result in out-of-bounds reads/writes.
	  Fixes GST-SA-2026-0004, ZDI-CAN-28854, CVE-2026-2921.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4901
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10892>

2026-02-22 00:21:15 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* meson.build:
	  meson: Fix building of examples/gl/qt/qglwtextureshare
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10874>

2026-02-18 17:45:25 +0200  Vivia Nikolaidou <vivia@ahiru.eu>

	* gst-libs/gst/video/video-converter.c:
	  video-converter: Do not transform_metas with 0 width or height
	  It can legitimately happen in some scenarios and will lead to a crash, so in
	  that case we just skip copying the metas instead. gst_video_converter_frame, for
	  example, has a similar check that just returns if width or height are 0, so
	  let's just follow the same approach.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10833>

2026-02-12 02:49:28 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst-libs/gst/gl/egl/gstglcontext_egl.c:
	* gst-libs/gst/gl/gstglcontext.c:
	* gst-libs/gst/gl/wgl/gstglcontext_wgl.c:
	  gstgl: Fix incorrect usage of G_MODULE_SUFFIX on macOS
	  G_MODULE_SUFFIX is "so" on both Linux and macOS, but these codepaths
	  were assuming that it's only "so" for Linux. Use pre-processor macros
	  instead.
	  This is exactly why G_MODULE_SUFFIX is deprecated on macOS.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10807>

2026-01-28 11:55:31 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst-libs/gst/gl/meson.build:
	  eagl: Add support for tvOS
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10807>

2026-01-28 11:45:20 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/gl/meson.build:
	* gst-libs/gst/gl/meson.build:
	* meson.build:
	* tests/examples/gl/cocoa/meson.build:
	* tests/examples/gl/qt/qglwtextureshare/meson.build:
	  meson: Deprecate `system = 'ios'` in cross files, use subsystem
	  Since we require Meson 1.4.0, we can now use subsystem names (added in
	  1.2.0).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10807>

2026-02-17 13:23:26 +0200  Vivia Nikolaidou <vivia@ahiru.eu>

	* gst/compositor/compositor.c:
	  compositor: Do copy_metas also for background frame
	  Previously the background frame was skipped from the n_pads counting for
	  performance reasons, but the copy_metas check  used n_pads to iterate.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10825>

2023-04-02 16:53:45 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	* scripts/dist-common-files.py:
	  modules: dist common files from monorepo root
	  Less noise when making releases, and just need to maintain one copy.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10822>

2026-02-15 17:45:19 +0000  Tim-Philipp Müller <tim@centricular.com>

	* README.md:
	  modules: remove subproject README.md from git
	  Will be added to the tarballs based on the monorepo README on dist.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10822>

2026-02-15 17:20:59 +0000  Tim-Philipp Müller <tim@centricular.com>

	* RELEASE:
	  modules: remove RELEASE from git, will be generated from template on dist
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10822>

2026-02-15 15:02:07 +0000  Tim-Philipp Müller <tim@centricular.com>

	* NEWS:
	  modules: Remove NEWS from git which is generated from full release notes
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10822>

2026-02-14 12:38:55 +0100  Robert Mader <robert.mader@collabora.com>

	* gst-libs/gst/video/gstvideofilter.c:
	  videofilter: Add VIDEO_ALIGNMENT to downstream pool
	  In order to support the new GstVideoDmabufPool. Note that the video meta
	  should also only be added when downstream advertises support for it,
	  however doing so requires changes to tests and is thus left to a follow-up.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10811>

2026-02-03 14:34:09 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/video/gstvideodecoder.c:
	  videodecoder: Don't directly forward gap events if the decoder is not drained
	  Instead queue it up for forwarding before the next video frame. While this is
	  not ideal, it makes sure that the gap event does not go ahead of previous
	  buffers if the decoder has any queued internally, which could break timestamp
	  tracking downstream.
	  This fixes a regression introduced in 62cb08404b9bd055c45cc1d5b71141e927ad748a.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10750>

2026-02-03 14:13:54 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/video/gstvideodecoder.c:
	  videodecoder: Move gap event handling into a helper function
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10750>

2026-02-03 13:55:27 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/audio/gstaudiodecoder.c:
	  audiodecoder: Only forward gap events immediately if no frames are pending
	  Otherwise the gap event would go ahead of the pending frames, breaking
	  buffer/event serialization.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10750>

2026-01-06 21:30:00 +0100  Christian Gräfe <cgraefe83@gmail.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/gl/gstglsrcbin.c:
	  glsrcbin: adapt klass "Src" to "Source"
	  use recommended "Source" instead of "Src"
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10729>

2026-01-06 11:41:27 +0900  jeongmin kwak <jeongmin.kwak@lge.com>

	* gst-libs/gst/rtsp/gstrtsptransport.c:
	  rtsp: Validate transport parameter parsing in RFC 2326
	  The layers, ttl, and ssrc parameters were parsed with strtoul()
	  but did not validate whether parsing succeeded, causing invalid or
	  empty values to be silently accepted as zero in violation of RFC 2326.
	  Replace with g_ascii_string_to_unsigned() for proper validation with
	  automatic range checking (ttl: 0-255) and overflow detection.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10717>

2025-04-03 14:52:49 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Fix switch to smaller collections
	  If an input stream goes away without EOS, we will end up with a case where the
	  number of slots won't match the number of stream in the collection (until that
	  stream and slot really gets removed).
	  But we still want to detect when all streams of that (smaller) collection are
	  present so we can switch to it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10674>

2026-01-30 13:07:48 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst/playback/gstplaysink.c:
	  playsink: unref color balance channels with g_object_unref()
	  Since they are not GstObject but plain GObjects, the unref function has to be
	  g_object_unref(). Otherwise it might generate problems with tracers.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10710>

2025-12-12 06:30:48 +0100  Edward Hervey <edward@centricular.com>

	* gst-libs/gst/video/gstvideodecoder.c:
	  videodecoder: Handle recovery from temporary reordered output
	  The code previously assumed that if there was a single reordered output
	  frame, then it was wrong forever.
	  Sadly, it could just be a temporary issue (maybe even just a single frame) and
	  wouldn't have a chance from recovering.
	  Instead, check if we received enough "ordered" frames from the subclass and
	  switch back to normal behaviour
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10692>

2026-01-20 13:13:23 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/audiorate/gstaudiorate.c:
	  audiorate: Handle SEGMENT_DONE the same way as EOS
	  videorate already does the same.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10670>

2026-01-19 03:06:15 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst-libs/gst/gl/eagl/gstglwindow_eagl.m:
	  eagl: Auto-resize when the UIView window is resized
	  * layoutSubviews needs to be defined
	  * contentsScale and contentScaleFactor need to be set correctly, the
	  default of 1.0 is incorrect on all modern devices
	  * Update drawable size when the window object changes
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10669>

2026-01-18 17:37:47 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst-libs/gst/gl/meson.build:
	* meson.options:
	  gl: Fix explicit enabling of EAGL support on iOS
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10669>

2026-01-28 11:50:49 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/rtsp/gstrtsprange.c:
	* gst-libs/gst/rtsp/gstrtsptransport.c:
	* gst/subparse/gstsubparse.c:
	* gst/subparse/qttextparse.c:
	* gst/subparse/samiparse.c:
	  base: Fix a couple of new const-ness warnings around strstr() usage
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4871
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10656>

2026-01-28 18:15:48 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/rtp/gstrtppayloads.c:
	  rtp: Add mappings for H266 and AV1 encoding-names
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10661>

2025-03-26 16:07:18 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Improve handling collection change on existing pad
	  A check was already present for checking if an incoming stream belonged to the
	  current collection. This was added in
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10109
	  But it only focused on the collection on the current pad, and not on the
	  aggregated collection.
	  This modification actually checks against the aggregated (and potentially
	  different) input collection, and also updates it accordingly.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10638>

2025-03-26 16:01:02 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Ensure input->collection is always coherent
	  If we want to "unset" the current input collection (by providing NULL) it
	  wouldn't actually unset it and we would end up with a dangling pointer instead
	  of NULL (i.e. no collection yet for that input)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10638>

2026-01-14 23:12:32 +0100  Ruben Gonzalez <rgonzalez@fluendo.com>

	* gst/typefind/gsttypefindfunctions.c:
	  typefindfunctions: Promote y4m_typefind
	  Related to https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4848
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10632>

2026-01-09 16:42:52 +0100  François Laignel <francois@centricular.com>

	* tests/check/elements/inputselector.c:
	  input-selector: add test eos for remaining non active pad
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10621>

2026-01-06 16:43:55 +0100  François Laignel <francois@centricular.com>

	* tests/check/elements/inputselector.c:
	  input-selector: add pad release stress test
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10621>

2026-01-27 17:10:54 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.28.0

=== release 1.28.0 ===

2026-01-27 17:02:33 +0000  Tim-Philipp Müller <tim@centricular.com>

	* NEWS:
	* README.md:
	* RELEASE:
	* gst-plugins-base.doap:
	* meson.build:
	  Release 1.28.0

2026-01-25 17:17:39 +0000  Tim-Philipp Müller <tim@centricular.com>

	* po/LINGUAS:
	* po/af.po:
	* po/ar.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/fur.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/ka.po:
	* po/lt.po:
	* po/lv.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  gst-plugins-base: update translations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10598>

2026-01-23 13:38:46 +0100  Tobias Koenig <tobias.koenig@kdab.com>

	* ext/gl/gstgltransformation.c:
	  gltransformation: Fix mapping of navigation coordinates
	  Set the mapped coordinates on the navigation event to upstream
	  and not the original coordinates from downstream.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10595>

2025-11-27 09:22:56 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst/videoconvertscale/gstvideoconvertscale.c:
	  videoconvertscale: fix n-threads with task pool from bus context query
	  When the task pool is obtained via a NEED_CONTEXT bus message rather
	  than set directly on the element beforehand, the converter was already
	  created in set_info() before the task pool was available. Move the
	  shared task pool thread count detection to create_converter() so
	  response from the bus message is taken into account.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10216>

2026-01-18 17:09:10 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst-libs/gst/audio/meson.build:
	* gst-libs/gst/video/meson.build:
	* gst/adder/meson.build:
	* meson.build:
	* meson.options:
	  meson: Don't disable orc support when orcc is not available
	  This was breaking usage of orc when cross-compiling with no orcc
	  available in PATH. We can use the orc-dist.{c,h} files in that case as
	  long as the orc library itself is available. Using the subproject, for
	  example.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10553>

2026-01-09 15:43:32 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/video/gstvideometa.c:
	  videometa: Fix documentation for gst_video_meta_transform_matrix_point_clipped()
	  It was pointing at the wrong function.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10520>

2026-01-06 10:40:09 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstplaybin3.c:
	* gst/playback/gsturidecodebin3.c:
	  playbin3: Move locking down to uridecodebin3
	  uridecodebin is always present in playbin3, the locking should be done within
	  uridecodebin instead
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4822
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10502>

2026-01-06 16:22:05 +0000  Tim-Philipp Müller <tim@centricular.com>

	* gst-libs/gst/tag/tags.c:
	  tags: fix missing space in GST_TAG_CAPTURING_LIGHT_SOURCE description
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10504>

2026-01-05 20:20:51 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.27.90

=== release 1.27.90 ===

2026-01-05 20:15:10 +0000  Tim-Philipp Müller <tim@centricular.com>

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

2026-01-05 18:57:12 +0000  Tim-Philipp Müller <tim@centricular.com>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/fur.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/ka.po:
	* po/lt.po:
	* po/lv.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	  gst-plugins-base: update translations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10497>

2025-12-30 18:11:43 -0500  Doug Nazar <nazard@nazar.ca>

	* ext/ogg/gstoggdemux.c:
	* ext/ogg/gstoggelements.h:
	* ext/ogg/gstoggmux.c:
	  oggmux: Fix crash when debug logging enabled
	  The muxer uses the ogg_stream functions however that file uses the
	  demuxer debug categories. Ensure they are also initialized.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10475>

2025-12-30 17:57:37 -0500  Doug Nazar <nazard@nazar.ca>

	* tests/check/elements/textoverlay.c:
	  textoverlay: tests: Fix race clearing element and debug printing
	  It was possible to unblock the main thread and unref the pipeline
	  before we had exited the gst_element_set_state() in the thread.
	  With GST_DEBUG enabled it could crash trying to print the element name.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10475>

2025-12-31 11:58:00 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/playback/gstdecodebin3.c:
	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: Fix docs for the select-stream signal
	  It's GstURIDecodeBin3 and not GstURIDecodebin3.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10480>

2025-12-30 18:53:26 -0500  Doug Nazar <nazard@nazar.ca>

	* ext/pango/gstbasetextoverlay.c:
	* gst/audiomixer/gstaudiointerleave.c:
	* gst/overlaycomposition/gstoverlaycomposition.c:
	* gst/playback/gstsubtitleoverlay.c:
	  gst: Properly unref pad template caps
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10477>

2025-12-30 17:53:22 -0500  Doug Nazar <nazard@nazar.ca>

	* tests/check/libs/videoencoder.c:
	  tests: Fix several memory leaks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10476>

2025-12-28 21:19:54 -0500  Doug Nazar <nazard@nazar.ca>

	* tests/check/elements/inputselector.c:
	  input-selector: test: Fix memory leaks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10467>

2025-12-28 18:12:54 -0500  Doug Nazar <nazard@nazar.ca>

	* tests/check/elements/inputselector.c:
	  input-selector: test: Don't use g_assert() in tests
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10467>

2025-12-28 17:51:38 -0500  Doug Nazar <nazard@nazar.ca>

	* tests/check/elements/inputselector.c:
	  input-selector: test: increase delay when running under valgrind
	  When running under valgrind we could get into a loop where we'd
	  read only from one source since we'd switch back too quickly.
	  Test would eventually timeout with the count from one source being
	  above 30000 and the other never reaching the minimum.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10467>

2025-12-28 17:45:32 -0500  Doug Nazar <nazard@nazar.ca>

	* tests/check/elements/inputselector.c:
	  input-selector: test: quieten output
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10467>

2025-12-28 01:36:02 +0700  Ratchanan Srirattanamet <peathot@hotmail.com>

	* ext/gl/gstglimagesink.c:
	  glimagesink: don't assume GstVideoMeta always exists in the buffer
	  Other GL buffer producers (e.g. `gstamcvideodec`) might not always add
	  a GstVideoMeta, in which case we should be able to assume that the
	  texture doesn't have to be clipped.
	  This fixes crash on Android.
	  Fixes: d2dfcee83336 ("glimagesink: Clip texture if its bigger then display")
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10462>

2025-12-19 17:34:32 +0100  Stéphane Cerveau <scerveau@igalia.com>

	* gst-libs/gst/audio/gstaudioaggregator.c:
	* gst-libs/gst/video/gstvideoaggregator.c:
	  video/audioaggregator: reject non-TIME segments in sink_event_pre_queue
	  Move the segment format check from sink_event to sink_event_pre_queue
	  to properly reject non-TIME segments before they are queued. This
	  ensures the error is handled early and prevents the segment from
	  being processed further.
	  This fixes the issue where returning FALSE from sink_event had no
	  effect since the segment was already queued.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10459>

2025-12-25 17:13:51 +0100  Robert Mader <robert.mader@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst-libs/gst/gl/gstglcolorconvert.c:
	* gst-libs/gst/gl/gstglcolorconvert.h:
	* gst-libs/gst/gl/gstglformat.c:
	* gst-libs/gst/gl/gstglmemory.h:
	  gl: Add support for Y444_12
	  Used by e.g. HEVC for 12bit non-subsampled profiles.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10451>

2025-12-23 14:12:26 +0100  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/gl/gstglupload.c:
	  glupload: Fix GST_DEBUG GObject warning
	  The GST_DEBUG_OBJECT() first argument is expected to be a GObject.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10436>

2025-12-22 16:23:10 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/videorate/gstvideorate.c:
	* tests/check/elements/videorate.c:
	* tests/check/libs/rtpdummyhdrextimpl.c:
	* tests/check/libs/rtphdrext.c:
	  gst: Remove various wrongly added includes
	  These were most likely added by clangd automatically.
	  Please use `-header-insertion=never` with clangd!
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8519>

2025-12-19 15:40:26 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* meson.build:
	  meson: Solve some cyclic dependencies caused by test-only deps
	  gstreamer => gobject-introspection => cairo => fontconfig => freetype2 => harfbuzz => cairo
	  gst-plugins-base => libdrm => cairo => fontconfig => freetype2 => harfbuzz => cairo
	  gst-plugins-good => cairo => librsvg => cairo
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10422>

2025-12-18 18:07:17 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/video/video.h:
	  video: Include gstvideodmabufpool.h from video.h
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10411>

2025-12-18 19:58:29 +1100  Jan Schmidt <jan@centricular.com>

	* gst/playback/gstparsebin.c:
	  Revert "parsebin: Don't expose unfixed caps pads without stream info"
	  This reverts commit 6628f5644e2c82da7f93012f9f4a8e08d9a4b3e1.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10404>

2025-12-18 19:56:42 +1100  Jan Schmidt <jan@centricular.com>

	* gst/playback/gstparsebin.c:
	  Revert "parsebin: Clear old stream when retargeting pad"
	  This reverts commit d26eb95aec95e329c443ac238a13dc024f39dd0f.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10404>

2025-12-16 23:47:48 +1100  Jan Schmidt <jan@centricular.com>

	* gst/playback/gstparsebin.c:
	  parsebin: Improve debug logging
	  Only log that we're storing caps on a GstStream if actually
	  doing it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10387>

2025-12-16 23:11:23 +1100  Jan Schmidt <jan@centricular.com>

	* gst/playback/gstparsebin.c:
	  parsebin: Don't expose unfixed caps pads without stream info
	  Pads with unfixed caps can be exposed early, but not before
	  they've at least provided a stream-start event for building
	  a fallback collection. Accordingly, defer the exposure and
	  check again when seeing a stream-start event.
	  Fixes #4756
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10387>

2025-12-16 23:09:02 +1100  Jan Schmidt <jan@centricular.com>

	* gst/playback/gstparsebin.c:
	  parsebin: Clear old stream when retargeting pad
	  When extending the parsebin chain and retargeting the
	  current end pad, clear the previous stream info, or
	  the wrong stream info might get added to a fallback
	  collection
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10387>

2025-12-11 21:54:53 -0500  Aaron Boxer <aaron.boxer@collabora.com>

	* gst/playback/gstplaybin3.c:
	  playbin3: send GST_EVENT_SELECT_STREAMS event to collection source
	  this ensures that the source receives the event, even if pipeline is not
	  linked
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10341>

2025-12-15 18:51:18 +0900  Elliot Chen <elliot.chen@nxp.com>

	* gst-libs/gst/gl/egl/gstglmemoryegl.c:
	* gst-libs/gst/gl/gstglmemory.c:
	  gl: adjust log level from error to warning when copying memory
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10382>

2025-12-01 19:32:54 +0100  François Laignel <francois@centricular.com>

	* tests/check/elements/inputselector.c:
	* tests/check/meson.build:
	  input-selector: add stress test
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10204>

2025-12-13 17:00:33 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/opus/gstopusenc.c:
	* ext/opus/meson.build:
	  opusenc: Use the surround multistream encoder for the Vorbis channel mapping family
	  It provides additional surround features. For all other channel mapping families,
	  continue using the normal multistream encoder as it allows to provide the
	  channel configuration values.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10374>

2025-12-13 13:50:52 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/opus/gstopusdec.c:
	* ext/opus/gstopusdec.h:
	  opusdec: Only call into the channel reordering functions if actually needed
	  And simplify code a bit.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10374>

2025-12-13 13:42:28 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/opus/gstopuscommon.c:
	* ext/opus/gstopuscommon.h:
	* ext/opus/gstopusenc.c:
	* ext/opus/gstopusenc.h:
	  opusenc: Simplify Vorbis channel layout mapping code and fix 7.1 layout
	  Don't set up complicated mapping tables but instead use the default mapping
	  tables as used by libopus. While this requires reordering from the GStreamer
	  order to the Vorbis order in some situations, it's a better choice because it
	  allows using the surround multistream encoder which has additional surround
	  support that saves bandwidth.
	  Also various specs and implementations only assume the "default" positions,
	  and e.g. for the MPEG-TS mapping this has short forms in the signalling. And
	  again, various implementations (e.g. ffmpeg) only support the short forms.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4794
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10374>

2025-12-10 15:11:23 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/tag/gsttagdemux.c:
	  tagdemux: propagate seek event seqnum to upstream
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10356>

2025-12-10 14:54:14 +0100  Piotr Brzeziński <piotr@centricular.com>

	* ext/pango/gstbasetextoverlay.c:
	  basetextoverlay: Don't negotiate if caps haven't changed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10352>

2025-12-09 19:13:20 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.27.50

=== release 1.27.50 ===

2025-12-09 19:08:48 +0000  Tim-Philipp Müller <tim@centricular.com>

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

2025-12-08 13:20:58 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/video/gstvideodecoder.c:
	  videodecoder: Don't assume the ALLOCATION query contains a pool
	  The subclass' `decide_allocation()` implementation might not provide any.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10306>

2025-12-05 17:22:45 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/gstglutils.c:
	  gstglutils: Round height according to the subsampling
	  When calculating the plane size, its important to round up the height according
	  to its subsampling. Otherwise the offset is too short and the UV get shifted
	  vertically.
	  Fixes #4783
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10330>

2025-12-05 17:21:02 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/gstglutils.c:
	  gstglutils: Refactor plane data size calculation
	  None of the work we do at the top is needed for the tiled formats. Handle the
	  tiled format first and return, then handle the other formats.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10330>

2025-12-08 11:53:29 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/video/gstvideoaggregator.c:
	  videoaggregator: Don't post have-context for internally created task pool
	  When videoaggregator creates its own default task pool (not provided via
	  context), it was posting a have-context message. This unintentionally
	  caused the task pool to be shared with other elements in the pipeline,
	  enabling multi-threaded processing in elements like videoconvertscale.
	  Let's revert to the previous behavior for now and think this through
	  properly for 1.30.
	  See #4787
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10325>

2025-12-08 09:39:17 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/allocators/gstudmabufallocator.c:
	* meson.build:
	  udmabuf: Only build allocator if UDMABUF_CREATE and linux/dma-buf.h exist
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4793
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10320>

2025-12-08 09:32:41 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/pbutils/codec-utils.c:
	  codec-utils: Add support for FLAC in mime codec strings
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4789
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10319>

2025-12-08 09:31:57 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/pbutils/codec-utils.c:
	  codec-utils: Add support for AC4 in mime codec strings
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10319>

2025-12-08 09:31:06 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/pbutils/codec-utils.c:
	  codec-utils: Update mime codec string getter with codecs in the parser
	  Specifically, add AC3, EAC3, TTML and WebVTT.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10319>

2025-12-06 09:52:12 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/video/gstvideodmabufpool.c:
	  videodmabufpool: Only provide implicit sync support if supported by the kernel headers
	  The corresponding API was only added with kernel 6.0.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8540>

2025-02-16 19:51:19 +0100  Robert Mader <robert.mader@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst-libs/gst/gl/gstglupload.c:
	* tests/check/libs/gstglupload.c:
	  glupload: Implement udmabuf uploader
	  Offering a udmabuf pool to upstream and translating SystemMemory caps to
	  DMABuf/DMA_DRM caps. This enables zero-copy buffer sharing for SystemMemory
	  upstreams such as software video decoders in combination with dmabuf-capable
	  downstream elements.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8540>

2025-04-10 11:21:01 +0200  Robert Mader <robert.mader@collabora.com>

	* gst-libs/gst/video/gstvideodmabufpool.c:
	* gst-libs/gst/video/gstvideodmabufpool.h:
	* gst-libs/gst/video/meson.build:
	  video: Implement a dmabuf video pool
	  That implements implicit sync, preventing buffers from being
	  recycled when still in use by e.g. the GPU, and sets the new
	  udmabuf allocator by default if available and no other dmabuf allocator
	  has been set.
	  See https://docs.kernel.org/driver-api/dma-buf.html
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8540>

2025-11-29 20:26:01 +0100  Robert Mader <robert.mader@collabora.com>

	* gst-libs/gst/meson.build:
	  base: Move allocator decleration to the top
	  In order to make them usable from all other subfolders. This will be
	  needed by the next commit.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8540>

2025-02-23 01:31:14 +0100  Robert Mader <robert.mader@collabora.com>

	* gst-libs/gst/allocators/allocators.h:
	* gst-libs/gst/allocators/gstudmabufallocator.c:
	* gst-libs/gst/allocators/gstudmabufallocator.h:
	* gst-libs/gst/allocators/meson.build:
	  allocators: Add a udmabuf allocator
	  Which allocates dmabufs on top of virtual memory, allowing e.g. GPUs
	  and display engines to import buffers without copy.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8540>

2025-12-03 22:57:01 +0000  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/video/gstvideometa.c:
	  roimeta: Add meta seqnum to debug message on transformations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9497>

2025-12-02 01:17:18 +0000  Olivier Crête <olivier.crete@collabora.com>

	* tests/check/libs/video.c:
	  videometa: Initial tests for Matrix transform
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9497>

2025-08-04 16:34:36 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/gl/gstglvideomixer.c:
	  glvideomixer: Transform metas when doing compositions
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9497>

2025-06-03 16:07:12 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst/compositor/compositor.c:
	  compositor: Transform metas when doing compositions
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9497>

2025-06-03 16:06:45 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/video/gstvideoaggregator.c:
	  videoaggregator: Apply meta transformations when running GstVideoConverter
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9497>

2025-06-03 16:06:09 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/video/video-converter.c:
	* gst-libs/gst/video/video-converter.h:
	  videoconverter: Add API to transform metas based on conversion
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9497>

2025-05-18 17:31:50 +0200  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/video/gstvideometa.c:
	  videometa: Apply new video matrix transform to RegionOfInterest Meta
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9497>

2025-05-18 17:31:20 +0200  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/video/gstvideometa.c:
	  videometa: Drop debug down to LOG level
	  Those are printed on every buffer, too much spamming at
	  DEBUG level.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9497>

2025-05-18 14:12:36 +0200  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/video/video-overlay-composition.c:
	  overlaycomposition: Implement the video matrix transformation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9497>

2025-05-18 11:58:53 +0200  Olivier Crête <olivier.crete@collabora.com>

	* gst/videoconvertscale/gstvideoconvertscale.c:
	  videoconvertscale: Implement matrix meta transformation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9497>

2025-05-18 11:58:28 +0200  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/video/gstvideometa.c:
	* gst-libs/gst/video/gstvideometa.h:
	  videometa: Add Crop with Matrix operation
	  This can handle cropping, adding borders and any
	  homographic transformation.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9497>

2025-05-18 11:57:53 +0200  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/video/gstvideosink.h:
	* gst-libs/gst/video/video.h:
	  video: Promote GstVideoRectangle into video.h
	  This way, it can be used outside of the sink
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9497>

2025-12-05 14:11:01 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/allocators/gstfdmemory.c:
	  fdmemory: Fix size calculation when sharing
	  When sharing a memory with an offset, the offset is relative to the immediate
	  parent offset. Meaning we should be reducing the size accordingly.
	  Reported-by: Rouven Czerwinski <rouven.czerwinski@linaro.org>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10308>

2025-12-05 13:36:21 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/gl/egl/gstglcontext_egl.c:
	  egl: Remove impossible NULL check
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10300>

2025-12-05 13:34:57 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/gl/egl/gsteglimage.c:
	* gst-libs/gst/gl/egl/gstglcontext_egl.c:
	  egl: Don't crash for supported formats without modifiers
	  This happens e.g. with the amdgpu driver on older GPUs (550RX etc) that don't
	  have explicit modifier support.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10300>

2025-12-05 11:16:29 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/video/gstvideoaggregator.c:
	  videoaggregator: Fix decide allocation fallback
	  Fallback to generic pool, even if the change to the config was validated. Pools
	  may have other restrictions that may render them unusable.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10298>

2025-12-03 19:00:49 +0100  Robert Mader <robert.mader@collabora.com>

	* gst/videotestsrc/gstvideotestsrc.c:
	  testsrc: Enable POOL_OPTION_VIDEO_ALIGNMENT if possible
	  If supported by the pool and only if downstream supports VIDEO_META.
	  This is in line with e.g. gst_ffmpegviddec_decide_allocation() and
	  helpful with e.g. the udmabuf allocator.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10298>

2025-12-03 17:51:01 +0100  Robert Mader <robert.mader@collabora.com>

	* gst-libs/gst/video/gstvideodecoder.c:
	  videodecoder: Improve pool_set_config() handling
	  set_config() can fail for other reasons than
	  `pool_config_validate_params()` failing, in which case we currently
	  would not try to fall back to the fallback pool.
	  Also ensure to get the config of the new pool instead of trying to set
	  the previously failed config again.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10298>

2025-12-01 13:27:22 +0100  Robert Mader <robert.mader@collabora.com>

	* gst-libs/gst/allocators/gstfdmemory.c:
	  fdmemory: Add is_span implementation
	  Based on `_sysmem_is_span()`. It is inherited by various derived
	  allocators.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10299>

2025-12-01 13:00:42 +0200  Sebastian Dröge <sebastian@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/playback/gstdecodebin3.c:
	  decodebin3: Add a separate pad template for metadata streams
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10249>

2025-12-01 12:53:46 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/playback/gstparsebin.c:
	  streams: Add GST_STREAM_TYPE_METADATA for metadata streams
	  And handle it inside parsebin and tsdemux.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10249>

2025-12-01 12:42:23 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/pbutils/descriptions.c:
	  pbutils: descriptions: Add ST-2038 to the codec descriptions
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10249>

2025-12-01 12:39:28 +0200  Sebastian Dröge <sebastian@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/playback/gstrawcaps.h:
	  playback: Consider meta/x-klv, meta/x-id3 and meta/x-st-2038 as raw formats
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10249>

2025-12-01 10:49:02 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Protect NULL dereference
	  If we *do* end up in this code path, notify it
	  See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4626
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10246>
[--snip--]
