=== release 1.28.2 ===

2026-04-07 20:02:23 +0100  Tim-Philipp Müller <tim@centricular.com>

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

2026-04-07 11:58:30 -0300  L. E. Segovia <amy@centricular.com>

	* gst-libs/gst/audio/audio-resampler-neon.h:
	  audio-resampler-neon: read array operand by hand, part 2
	  Fixes #5015
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11273>

2026-04-07 10:50:22 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/subparse/qttextparse.c:
	  subparse: Fix integer overflow when calculating qttext timestamp
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11265>

2026-03-31 12:11:37 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/tag/gstexiftag.c:
	  exiftag: Parse sensitivity value with the correct number of bits and endianness
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11261>

2026-03-31 12:09:16 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/tag/gstexiftag.c:
	  exiftag: Add missing bounds check and integer overflow protections in various places
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/4996
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11261>

2026-03-31 11:59:11 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/tag/gstexiftag.c:
	  exiftag: Use g_malloc() instead of malloc()
	  The memory is going to be freed later with g_free().
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11261>

2026-03-26 19:27:22 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/typefind/gsttypefindfunctions.c:
	  typefind: Remove dead code in AV1 LEB128 parser
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11259>

2026-03-26 19:19:19 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/typefind/gsttypefindfunctions.c:
	  typefind: Allow G_MAXUINT32 as LEB128 encoded value when parsing AV1 bitstreams
	  The spec states that any value less than or equal to (1<<32) - 1 should be
	  accepted but we were rejecting (1<<32) - 1.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11259>

2026-03-26 18:59:11 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/typefind/gsttypefindfunctions.c:
	  typefind: Use a byte reader for parsing AV1 bitstreams
	  And make sure to use appropriate bounds checks.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/4993
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11259>

2026-03-26 18:45:57 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/typefind/gsttypefindfunctions.c:
	  typefind: Avoid signed 32 bit integer overflow when parsing AV1 LEB128 values
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/4994
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11259>

2026-03-26 19:59:42 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/subparse/gstsubparse.c:
	  subparse: Avoid NULL-pointer dereferences in mdvdsub parsing code
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/4995
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11256>

2026-03-30 23:37:04 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/subparse/gstsubparse.c:
	* tests/check/elements/subparse.c:
	  subparse: Fix handling of closing of multi-byte tags
	  They were previously wrongly considered as wrong tags due to using wrong
	  byte offsets into the string that only happened to match for single-byte tags.
	  Add a test for this case too.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11249>

2026-03-30 20:39:08 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/subparse/gstsubparse.c:
	* gst/subparse/gstsubparse.h:
	  subparse: Replace regex string matching / replacing with plain C string parsing
	  The regexes had suboptimal behaviour that easily took 30s on a 1kB long line and
	  probably had quadratic behaviour in the length of the string.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5002
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11249>

2026-03-30 20:40:26 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/subparse/gstsubparse.c:
	  subparse: Replace a `g_strv_length()` in a loop header with more efficient code
	  It doesn't really matter in this case as the array is small.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11249>

2026-04-01 11:06:11 -0300  L. E. Segovia <amy@centricular.com>

	* gst-libs/gst/audio/audio-resampler-neon.h:
	  audio-resampler-neon: read array operand by hand
	  GCC at -O0 -mfloat-abi=hard runs out of registers for precalculating the
	  offsets of the second operand. So instead let's generate them by hand.
	  For GCC and Clang (tested with Godbolt on 15.2 and 22.1 rsp.) the
	  generated code optimizes to the same.
	  See https://godbolt.org/z/e6G9WT7df
	  Fixes #5015
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11231>

2026-04-05 12:44:16 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/tag/gstexiftag.c:
	  exiftag: Ignore invalid fractions with numerator/denominator G_MININT
	  We can't represent these.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11229>

2026-04-01 12:40:31 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/playback/gstparsebin.c:
	  parsebin: Remove pointless casts
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11212>

2026-04-01 12:40:11 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/playback/gstdecodebin2.c:
	* gst/playback/gstplaybin2.c:
	* gst/playback/gsturisourcebin.c:
	  playback: Make sure to check for empty/any caps before getting the first structure
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5012
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11212>

2026-04-01 19:10:07 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/tag/gstexiftag.c:
	  exiftag: Unmap buffer if parsing a rational number gives a zero denominator
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11210>

2023-09-21 15:02:44 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* gst-libs/gst/audio/gstaudioencoder.c:
	  base: audioencoder: Remove fixed caps from srcpad
	  Audio encoders don't have to have fixed caps. In particular, this breaks
	  switching channel configuration with avenc_aac.
	  fdkaacenc was unaffected and permitted channel changes because it did
	  not use the caps from gst_pad_get_allowed_caps in its entirety.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11131>

2026-03-24 12:17:30 +0100  Pablo García <pgarcia@fluendo.com>

	* gst-libs/gst/audio/gstaudiodecoder.c:
	  audiodecoder: Fix different seqnum error
	  Authored-by: Rubén González <rgonzalez@fluendo.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11136>

2026-03-24 12:20:49 +0100  Pablo García <pgarcia@fluendo.com>

	* gst-libs/gst/video/gstvideodecoder.c:
	  videodecoder: Fix different seqnum error
	  When running
	  "> gst-launch-1.0 v4l2src num-buffers=10 ! image/jpeg ! filesink
	  location=/tmp/data
	  > gst-validate-1.0 filesrc location=/tmp/data ! jpegdec ! fakesink"
	  the logs say:
	  "EOS events that are part of the same pipeline 'operation' should have
	  the same seqnum"
	  Authored-by: Rubén González <rgonzalez@fluendo.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11136>

2026-02-19 14:56:50 +0200  Marko Kohtala <marko.kohtala@gmail.com>

	* gst-libs/gst/rtsp/gstrtspurl.c:
	* tests/check/libs/rtsp.c:
	  rtsp: gstrtspurl: Parse URL having user without password
	  In RFC 1738 the password is optional, but it was required when @ was used
	  in the authority section. This failed to parse URL with only a username.
	  Fixes #4922
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11083>

2026-03-19 09:41:29 +0000  Wojciech Kapsa <wojciech.kapsa@medvc.eu>

	* gst/compositor/compositor.c:
	  compositor: move gst_compositor_init_blend() to element class_init
	  Commit e8e12db5f4 moved gst_compositor_init_blend() from plugin_init()
	  to gst_compositor_pad_class_init() so it would be called even without
	  plugin_init() (e.g. gstreamer-full static linking).
	  However, pad_class_init is only called when the first GstCompositorPad
	  is instantiated. When compositor runs with force-live=true and no sink
	  pads, no pad is ever created, so the global blend/fill function pointers
	  remain NULL, causing a segfault in _draw_background().
	  Move the call to gst_compositor_class_init() instead, which is always
	  called when a GstCompositor element is created, regardless of whether
	  any pads exist. This preserves the original intent of not depending on
	  plugin_init() while ensuring the blend functions are always initialized.
	  This is the same pattern applied by c0f9029a13 which moved
	  GST_DEBUG_CATEGORY_INIT from pad_class_init to compositor_class_init
	  for the same reason.
	  Fixes: e8e12db5f4 ("debug: Category init should happen in class_init when possible")
	  Reproducer:
	  gst-launch-1.0 compositor force-live=true background=black \
	  ! fakesink sync=true
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11080>

2026-03-18 23:42:56 +0100  Tim-Philipp Müller <tim@centricular.com>

	* po/LINGUAS:
	* po/kk.po:
	* po/pt_BR.po:
	* po/sv.po:
	* po/zh_CN.po:
	  gst-plugins-base: update translations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11077>

2026-03-13 12:19:45 +0100  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/gstglupload.c:
	  gl: upload: Fix linking glupload with restrictive caps filter
	  When a strict caps filter is used, the caps we are using may be
	  limited to DMABuf. Before we have a context, we don't know if the DMABuf formats
	  are supported or not, but we know that they will likely be supported as
	  GLMemory/RGBA with direct upload. Ensure this option is return, fixing the
	  linker issue.
	  Fixes #4622
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11050>

2026-03-13 12:17:29 +0100  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/gstglupload.c:
	  gl: upload: Optimize EGL format check when there is no context
	  Iterating over all the format is unnecessary without a context since all format
	  are going to be accepted anyway. Skip the check entire and accept the formats.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11050>

2026-03-15 11:37:21 +0000  Tim-Philipp Müller <tim@centricular.com>

	* gst-libs/gst/video/video-info.c:
	* tests/check/libs/video.c:
	  video: fix too small default stride for UYVP with odd widths
	  UYVP is packed 4:2:2 in units of two pixels. For odd widths we
	  need to allocate an extra macropixel of two pixels, even if we
	  only need one of those.
	  For a width of 321 it would allocate 804 bytes whereas we need 805.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11039>

2026-03-13 18:32:49 +0900  Seungha Yang <seungha@centricular.com>

	* gst/videorate/gstvideorate.c:
	* tests/check/elements/videorate.c:
	  videorate: Fix unrestored caps on backward PTS
	  When caps changes, videorate temporarily restores previous caps to
	  drain queued buffers and then switches back to the current caps.
	  But if the current buffer has backward PTS, above restoration step was
	  skipped, leaving the previous caps configured on the srcpad.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11038>

2026-03-12 08:59:41 +0000  Charles <charles05@canonical.com>

	* gst-libs/gst/video/video-converter.c:
	  video-converter: fix I420/A420/AYUV BGRA/ARGB output on big-endian
	  These conversion tasks contained a G_BYTE_ORDER guard that swapped the
	  choice between video_orc_convert_*_BGRA and video_orc_convert_*_ARGB on
	  big-endian platforms, corrupting I420/A420/AYUV -> RGBA/BGRA/ARGB
	  conversions. A black I420 frame came out as R=0 G=0 B=255 A=0 instead
	  of R=0 G=0 B=0 A=255 on s390x.
	  The ORC C fallback implementations use orc_union16/orc_union32 byte-array
	  fields (x2[], x4[]) which index bytes at fixed memory addresses regardless
	  of host endianness. The AltiVec SIMD backend similarly handles endianness
	  internally via different vperm constants for BE/LE. In both cases the same
	  function produces the same byte layout in memory on all platforms, making
	  the G_BYTE_ORDER guards incorrect.
	  Tested on s390x (big-endian): removing the guards fixes the corruption.
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4960
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11024>

2026-03-05 15:35:15 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/opus/gstopusenc.c:
	  opusenc: Use correct memcpy() size when copying Vorbis channel positions
	  The size of the destination (64 channels) was used but the source is
	  smaller (8 channels). While copying garbage into the destination is not so much
	  of a problem as only the actually used number of channels is going to be read
	  later, this can potentially lead to a segfault.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4948
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10984>

2026-02-03 07:30:26 +0900  jeongmin kwak <jeongmin.kwak@lge.com>

	* gst-libs/gst/rtp/gstrtcpbuffer.c:
	* tests/check/libs/rtp.c:
	  rtcp: Fix buffer overread in SDES packet parsing
	  Add bounds checking in gst_rtcp_packet_sdes_next_entry() and
	  gst_rtcp_packet_sdes_get_entry() to prevent reading beyond packet
	  boundaries when parsing malformed SDES items.
	  Both functions now return FALSE when attempting to read past the
	  packet length, preventing potential buffer overread vulnerabilities.
	  tests: Add regression test for SDES buffer overread vulnerability
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10971>

2026-03-03 16:25:39 +0900  jeongmin kwak <jeongmin.kwak@lge.com>

	* gst-libs/gst/rtp/gstrtpbuffer.c:
	* tests/check/libs/rtp.c:
	  rtpbuffer: Add validation for CSRC list length
	  Validate that the CSRC list does not extend beyond the packet boundary
	  as required by RFC 3550. A malformed RTP packet with a CSRC count that
	  would cause the CSRC list to extend beyond the available packet data
	  could lead to out-of-bounds memory access.
	  The validation follows the same pattern used for padding validation
	  (line 430), ensuring consistency with existing security checks.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10957>

2026-01-29 12:34:46 +0100  Fabian Orccon <forccon@fluendo.com>

	* gst-libs/gst/audio/gstaudiosink.c:
	* gst-libs/gst/audio/gstaudiosrc.c:
	* gst/playback/gstdecodebin2.c:
	* gst/playback/gstparsebin.c:
	* tests/check/elements/inputselector.c:
	  all: GThreadFunc return type fixes
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10955>

2026-03-01 10:53:21 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/gl/gstglcolorconvert.c:
	  glcolorconvert: Fix NULL pointer dereference on buffers without video meta
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4935
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10953>

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

	* meson.build:
	  Back to development after 1.28.1

=== 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>

2025-09-16 13:20:08 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* tools/gst-device-monitor.c:
	  device-monitor: Start providers in a separate thread
	  This avoids blocking when gst_device_monitor_start() is called, which
	  avoids each app having to spawn a separate thread just to start device
	  monitoring. This is especially important on Windows, where device
	  probing can take several seconds.
	  Calling gst_device_monitor_get_devices() immediately after still does
	  the right thing; the existing locking still applies.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9698>

2025-11-27 12:21:26 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/gstglupload.c:
	  glupload: dmabuf: Add missing texture target check
	  The dmabuf uploader is split in multiple variants, each are dedicated to a
	  single target. Add missing check to prevent using the External variant
	  while expecting 2D target.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10227>

2025-09-23 22:32:34 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/alsa/gstalsadeviceprovider.c:
	  alsadeviceprovider: Fix device name leak
	  Also use g_free for string allocated with g_strdup*. This usually
	  doesn't matter, but can matter when mixing code compiled with
	  different libc.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10224>

2025-11-26 16:07:26 +0100  Stéphane Cerveau <scerveau@igalia.com>

	* gst-libs/gst/video/gstvideoencoder.c:
	* gst-libs/gst/video/gstvideoencoder.h:
	  videoencoder: fix warning of uninitialized buffer
	  Move the error check before the buffer reference to avoid using
	  an uninitialized buffer variable when ret is not GST_FLOW_OK.
	  Also fix whitespace in header documentation.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10210>

2025-11-25 14:30:56 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/video/gstvideoaggregator.c:
	* tests/check/elements/compositor.c:
	  videoaggregator: add support for task pool context
	  This allows applications to provide a shared task pool via context,
	  enabling sharing the same thread pool across multiple elements in a
	  pipeline for better resource management.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10047>

2025-11-24 14:03:50 -0300  Thibault Saunier <tsaunier@igalia.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/videoconvertscale/gstvideoconvertscale.c:
	* tests/check/elements/videoscale.c:
	  videoconvertscale: add support for task pool context
	  This allows applications to provide a shared task pool via context for
	  multi-threaded video conversion, enabling better control over thread
	  management across multiple elements.
	  The element now implements set_context() to receive task pools and uses
	  them when creating video converters. If no n-threads property is explicitly
	  set, the element will automatically use the max threads from the provided
	  shared task pool.
	  A new test verifies the task pool is actually used by the video converter
	  during processing.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10047>

2025-01-08 09:29:13 -0500  Xavier Claessens <xclaessens@netflix.com>

	* ext/alsa/gstalsasrc.c:
	  GstClock: Add gst_clock_is_system_monotonic_clock
	  It was duplicated in many places and can be useful outside of GStreamer
	  as well.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8257>

2025-11-26 12:42:50 +0100  Peter Stensson <petest@axis.com>

	* gst-libs/gst/audio/audio-resampler-neon.h:
	  audio-resampler-neon: Add missing stdint include
	  Got build errors when building for arm with neon support because of
	  unknown type uint32_t. This build error was previously not present
	  because ORC was disabled, but after
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10004
	  the neon file would be included in the build regardless.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10209>

2022-06-22 13:28:22 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/gl/gstglupload.c:
	  gl: libs: upload: fix typo in comment
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10180>

2025-10-20 14:14:51 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/video/video-format.c:
	  video: fix documentation syntax
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10180>

2025-11-18 16:49:27 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/gstglcolorconvert.c:
	  gstglcolorconvert: Clip input picture if its bigger then display
	  Same as for glimagesink, this happens with external-eos texture. This patch
	  covert the case where the texture needs to be converted for other GL operation,
	  instead of being composed directly.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10120>

2025-11-13 15:57:13 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/gl/gstglimagesink.c:
	* ext/gl/gstglimagesink.h:
	* gst-libs/gst/gl/gstglupload.c:
	  glimagesink: Clip texture if its bigger then display
	  When handling external textures, there is cases where the texture needs to be
	  imported in its padded dimensions. The side effect is a larger texture that we
	  must clip to avoid showing random data found in the padding zone.
	  This area is clipped by modifying the U/V component of the vertices buffer.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10120>

2025-11-18 16:52:20 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/gl/gstglimagesink.c:
	  glimagesink: Simplify the affine transform handling
	  The multiply function already allow to write into one of its member.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10120>

2025-11-13 15:55:48 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/gl/gstgltransformation.c:
	  gltransform: Do not modify input buffer
	  The input buffer is not writable so we must not modify its AffineTranformMeta.
	  Doing so can results in hard to debug side effects.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10120>

2025-11-21 09:19:58 +0900  Jaehoon Lee <jaehoon85.lee@lge.com>

	* gst-libs/gst/pbutils/gstaudiovisualizer.c:
	  audiovisualizer: Remove unnecessary unmap call for adapter
	  The unmap function for the adapter is unnecessary because
	  gst_adapter_map() is not called anywhere in the chain function.
	  This patch removes the redundant unmap call to simplify
	  the code and avoid confusion.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10124>

2025-11-20 15:16:00 +0900  Jaehoon Lee <jaehoon85.lee@lge.com>

	* gst-libs/gst/pbutils/gstaudiovisualizer.c:
	  audiovisualizer: Change buffer access to go through adapter
	  Since ownership of the input buffer is transferred to the adapter
	  via gst_adapter_push, modify the buffer copy process to access
	  the buffer through the adapter.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10124>

2025-11-20 14:46:33 +0900  Jaehoon Lee <jaehoon85.lee@lge.com>

	* gst-libs/gst/pbutils/gstaudiovisualizer.c:
	  audiovisualizer: Fix resource leak in chain function
	  The input buffer should be unreferenced when
	  a negotiation failure is detected in the chain function.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10124>

2025-11-19 13:42:01 +0900  Jaehoon Lee <jaehoon85.lee@lge.com>

	* gst-libs/gst/pbutils/gstaudiovisualizer.c:
	  audiovisualizer: Use break instead of goto for escape logic
	  Use break instead of goto to escape and prevent cases
	  where config_lock might remain unlocked.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10124>

2025-11-21 16:07:18 +0900  Jaehoon Lee <jaehoon85.lee@lge.com>

	* tests/check/libs/pbutils.c:
	  pbutils: Add a test case for another profile, tier, level
	  Add a test case to verify MIME codec string for H.265
	  profile, level, and tier data
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10097>

2025-11-17 15:40:05 +0900  Jaehoon Lee <jaehoon85.lee@lge.com>

	* gst-libs/gst/pbutils/codec-utils.c:
	  pbutils: Fix bit shifting when generate hevc mime codec string
	  According to the HEVCDecoderConfigurationRecord configuration,
	  profile_space and tier_flag should be corrected.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10097>

2021-04-01 10:48:12 +0200  Carlos Rafael Giani <crg7475@mailbox.org>

	* gst-libs/gst/pbutils/descriptions.c:
	  qtdemux: add support for MPEG-H 3D Audio
	  Added support for mhm1 and mha1 sample entries for ISO/IEC 23008-3 MPEG-H 3D Audio standard.
	  The sample entries can contain out-of-band configuration information, attached to the caps
	  as "codec_data". MPEG-H profiles and levels information is added to the output caps.
	  Note: for mha1 the "codec_data" is always present, for mhm1 this caps propery is optional.
	  Co-authored-by: Florian Kolbeck <florian.kolbeck@i-rz.de>
	  Co-authored-by: Rinat Zeh <rinat.zeh@i-rz.de>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9449>

2025-11-21 12:35:23 +0000  Tim-Philipp Müller <tim@centricular.com>

	* tools/gst-play.c:
	  gst-play-1.0: try and install missing plugins if distro supports it
	  See issue #4758
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10173>

2025-11-21 11:55:47 +0000  Tim-Philipp Müller <tim@centricular.com>

	* tools/gst-play.c:
	  gst-play-1.0: fix printing of missing plugin details
	  It wouldn't print what plugin was missing, because element
	  messages were handled already in a different place.
	  Also use g_list_prepend() here since order doesn't matter.
	  See #4758
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10173>

2025-11-20 12:49:12 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/allocators/gstdrmdumb.c:
	  allocators: drmdumb: Keep dmabuf mapped
	  The dumb buffer are used by waylandsink to allow copying the incoming frames
	  into a memory allocation directly supported by the GPU or display controller.
	  These buffers are pooled and avoiding to recreate the memory address mapping
	  everything improves the performance.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10153>

2025-11-20 12:46:49 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/gl/gstgldownloadelement.c:
	  gldownload: Keep dmabuf mapped
	  The DMABuf support in gldownload allows forcing the GPU to write into a format
	  GStreamer understand. It is possible that this mechanism would be used for CPU
	  access were avoiding to recreate the address mapping is preferred.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10153>

2025-11-20 12:46:50 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/audio/gstaudiometa.c:
	  audio: meta: Fix annotation for matrix on gst_buffer_add_audio_downmix_meta()
	  Arrays of arrays (or pointers to basic types) can't be expressed by
	  gobject-introspection so the best we can do is to use `gpointer` for now.
	  See https://gitlab.gnome.org/GNOME/gobject-introspection/-/issues/565
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10152>

2025-11-19 14:26:13 +0900  Jaehoon Lee <jaehoon85.lee@lge.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Add missing unlock
	  The lock of urisourcebin should be released
	  when the creation of the parsebin element fails.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10129>

2025-11-19 14:18:32 +0900  Jaehoon Lee <jaehoon85.lee@lge.com>

	* gst-libs/gst/rtp/gstrtpbasedepayload.c:
	  rtpbasedepayload: Add missing unlocks
	  Add missing unlocks when retrieving information from the RTP header.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10128>

2025-11-17 16:26:54 +0900  Jaehoon Lee <jaehoon85.lee@lge.com>

	* gst/playback/gstplaybin2.c:
	  playbin2: Remove logically dead code
	  Remove unnecessary condition check as the result
	  variable in this function can only be NULL.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10098>

2025-08-12 16:42:25 +1000  Jan Schmidt <jan@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Clear previous collection on input
	  When receiving a stream-start with a stream that isn't in the
	  previous input stream-collection, clear the previous stream collection
	  and treat it the same as the very first stream start event. That makes
	  decodebin3 delay processing the stream-start and any subsequent events
	  until the stream-collection arrives.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10109>

2025-11-07 19:29:24 -0300  L. E. Segovia <amy@centricular.com>

	* gst-libs/gst/audio/audio-resampler-neon.h:
	* gst-libs/gst/audio/audio-resampler-x86.h:
	* gst-libs/gst/audio/audio-resampler.c:
	* gst-libs/gst/audio/meson.build:
	  gst: implement Orc-less cpuid routine for selecting asm routines
	  This commit removes the use of Orc's default target machinery as a way
	  to do CPUID detection on x86 and Arm. Instead I port xsimd's CPU
	  detection routine to C, cleaning up the instruction sets we don't use,
	  and also adding support for GCC/Clang's cpuid and xgetbv builtins.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10004>

2025-11-05 12:02:31 +0000  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst-libs/gst/audio/audio-resampler-x86.h:
	* gst-libs/gst/audio/audio-resampler.c:
	  audio-resampler: Log SIMD enabling to INFO
	  DEBUG is too verbose, these are only printed once at startup.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10004>

2025-11-04 14:49:57 -0300  L. E. Segovia <amy@centricular.com>

	* gst-libs/gst/audio/audio-resampler-macros.h:
	* gst-libs/gst/audio/audio-resampler-x86-sse.c:
	* gst-libs/gst/audio/audio-resampler-x86-sse2.c:
	* gst-libs/gst/audio/audio-resampler-x86-sse41.c:
	* gst-libs/gst/audio/audio-resampler-x86.h:
	* gst-libs/gst/audio/audio-resampler.c:
	* meson.build:
	  audio-resample: Allow building the SSE* asm routines with MSVC
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10004>

2025-11-19 14:11:31 +0900  Jaehoon Lee <jaehoon85.lee@lge.com>

	* ext/gl/gstglstereosplit.c:
	  glstereosplit: Add missing unlock for exceptional case
	  The context_lock should be released when gst_gl_ensure_element_data fails.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10127>

2025-11-19 14:06:56 +0900  Jaehoon Lee <jaehoon85.lee@lge.com>

	* tools/gst-play.c:
	  gst-play: Add missing unlock for invalid track type
	  Add missing unlock in play_cycle_track_selection
	  of gst-play. The unlock should be added when
	  the function ends in an exceptional case.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10126>

2025-11-19 13:51:27 +0900  Jaehoon Lee <jaehoon85.lee@lge.com>

	* gst-libs/gst/gl/gstglbasesrc.c:
	  glbasesrc: Add unlock handling for non-negotiated cases
	  Add missing unlock when returning
	  not negotiated status in glbasesrc.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10125>

2025-11-17 17:11:03 +0900  Jaehoon Lee <jaehoon85.lee@lge.com>

	* gst-libs/gst/gl/gstglutils.c:
	  glutils: Remove logically dead code
	  Remove the unnecessary condition since display_replacement
	  cannot have a non-NULL value when context_type is gst.gl.app_context.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10100>

2025-11-17 21:00:03 +0900  Jaehoon Lee <jaehoon85.lee@lge.com>

	* gst/subparse/samiparse.c:
	  samiparse: Add assertion for unreachable code
	  Add assertion for unreachable code in the function.
	  The code following the while loop cannot be executed,
	  as it is impossible for execution to escape the loop.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10105>

2025-11-18 15:17:05 +0900  Jaehoon Lee <jaehoon85.lee@lge.com>

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: Add null check of play items in purge
	  Add null check for play items in purge_play_items
	  to ensure that play_item is not null.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10106>

2025-11-06 21:27:21 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/audio/audio-channel-mixer.c:
	  audio-channel-mixer: Add in/out channel validation
	  Disallow zero or negative number of channels
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10002>

2025-11-05 20:08:08 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/audio/audio-channel-mixer.c:
	  audio-channel-mixer: Add sparse matrix LUT optimization
	  Use precomputed LUTs for non-zero coefficients instead of
	  blindly traversing all input/output channel combinations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10002>

2025-11-19 13:36:46 +0900  Jaehoon Lee <jaehoon85.lee@lge.com>

	* ext/gl/gstglfiltershader.c:
	  glfiltershader: Add missing unlock
	  Add missing unlock in glfiltershader
	  for an exceptional return case.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10123>

2025-11-17 19:22:51 +0900  Jaehoon Lee <jaehoon85.lee@lge.com>

	* gst-libs/gst/gl/gstgldisplay.c:
	  gldisplay: Simplify conditional statements
	  Reduced duplicate conditional statements and adjusted indentation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10103>

2025-11-17 17:42:15 +0900  Jaehoon Lee <jaehoon85.lee@lge.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Fix initial values of min_byte_level and min_time_level variables
	  The min_byte_level and min_time_level should be initialized to
	  apply the minimum values of byte_limit and time_limit.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10102>

2025-11-17 17:31:27 +0900  Jaehoon Lee <jaehoon85.lee@lge.com>

	* gst-libs/gst/audio/gstaudioaggregator.c:
	  audioaggregator: Remove unnecessary event unref
	  The event is always null under res is null,
	  making the condition check and object unreferencing
	  process unnecessary.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10101>

2025-11-17 16:42:17 +0900  Jaehoon Lee <jaehoon85.lee@lge.com>

	* gst/typefind/gsttypefindfunctions.c:
	  typefindfunctions: Insert assertion to catch unreachable logic
	  Add an assertion before the final return statement,
	  as the variable ch_mod can only take values in the
	  range [0, 3], making that code path unreachable.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10099>

2025-10-01 13:21:46 +0100  Paul Fee <paul.fee@jci.com>

	* gst/tcp/gstmultihandlesink.c:
	  tcp: test for delta flag directly
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9778>

2025-11-11 22:37:29 -0500  Olivier Crête <olivier.crete@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst-libs/gst/audio/audio-format.h:
	  audio: Re-order the all formats
	  The order they were in was tripping a Rust unit test.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10074>

2025-11-11 14:32:23 -0600  Teus Groenewoud <teus@hotmail.com>

	* gst-libs/gst/video/gstvideoaggregator.c:
	  videoaggregatorpad: set thread count from pool max thread count
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10073>

2025-11-10 14:50:04 -0600  Teus Groenewoud <teus@hotmail.com>

	* gst-libs/gst/video/video-converter.c:
	* tests/check/libs/video.c:
	  videoconvert: use pool thread count if no config is provided
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10063>

2025-11-05 15:20:51 +0900  JihoonLee <ejihoon.lee@lge.com>

	* gst-libs/gst/gl/gstglcolorconvert.c:
	  glcolorconvert: Fix memory leak in _create_shader
	  Added missing g_string_free() call to properly free the GString buffer
	  in error paths where the function returns early.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10009>

2025-11-07 10:18:39 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/app/gstappsrc.c:
	* gst-libs/gst/app/gstappsrc.h:
	  appsrc: Add new bindings-friendly "simple" callbacks API
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10037>

2025-11-05 17:50:04 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/app/gstappsink.c:
	* gst-libs/gst/app/gstappsink.h:
	  appsink: Add new bindings-friendly "simple" callbacks API
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10037>

2025-11-06 18:52:20 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/rtp/gstrtpbuffer.c:
	  rtpbuffer: Don't mix different buffer / memory mappings when setting extension data
	  And also simplify code and make sure that the buffer is actually writable.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10020>

2025-11-07 09:14:34 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/audio/audio-buffer.c:
	* gst-libs/gst/video/video-frame.c:
	  memory: Clear various fields of GstMapInfo/GstVideoFrame/GstAudioBuffer on unmap
	  This avoids use-after-frees and allows these functions to be called multiple
	  times without problems.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10020>

2025-11-05 14:56:18 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/audio/audio-buffer.h:
	  audio-buffer: Add g_autoptr support by calling gst_audio_buffer_unmap()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10020>

2025-11-05 14:53:41 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/audio/audio-buffer.h:
	  audio-buffer: Add GST_AUDIO_BUFFER_INIT convenience macro
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10020>

2025-11-06 09:30:13 +0100  Mazdak Farzone <mazdak@axis.com>

	* ext/opus/gstopusdec.c:
	  opusdec: Unref intersected caps when empty to avoid leaks
	  Add gst_caps_unref(tmp) in the else branch of both the 'channels' and 'rate'
	  preference blocks to correctly release the empty intersection.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10029>

2025-11-05 13:56:18 +0900  JihoonLee <ejihoon.lee@lge.com>

	* gst-libs/gst/pbutils/encoding-target.c:
	  encoding-target: Fix memory leak in gst_encoding_target_save
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10007>

2025-11-05 10:04:36 +0900  Jeehyun Lee <jeehyun.lee@lge.com>

	* gst-libs/gst/tag/id3v2frames.c:
	  id3: fix csets memory leak in string_utf8_dup
	  Free csets array when charset conversion loop completes without
	  finding a valid conversion to prevent memory leak.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10006>

2025-10-31 15:16:01 +0900  Jeehyun Lee <jeehyun.lee@lge.com>

	* gst-libs/gst/gl/egl/gstglcontext_egl.c:
	  gl/egl: fix memory leak in _print_all_dma_formats
	  Add missing g_free() calls for fmt_str returned by
	  gst_video_format_to_string() in _print_all_dma_formats().
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9960>

2025-10-30 10:38:09 -0300  Carlos Bentzen <cadubentzen@igalia.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/gl/gstglcolorbalance.c:
	* gst-libs/gst/gl/gstglcolorconvert.h:
	* gst-libs/gst/gl/gstglupload.c:
	* tests/check/libs/gstglcolorconvert.c:
	* tests/check/libs/gstglupload.c:
	  gl: Support DMABuf passthrough with meta:GstVideoOverlayComposition
	  The GL elements in glsinkbin were rejecting passing through DMABufs when
	  the meta:GstVideoOverlayComposition feature is present, such as when
	  subtitleoverlay is in place. This is particularly visible when playing
	  back HDR10 content with subtitles, where Showtime was showing washed
	  out colors due to the lack of tone-mapping in the GL elements when
	  converting from BT2100-PQ to RGBA due to passthrough being disabled.
	  This extends MR !5948 by adding support for DMABuf caps with the
	  meta:GstVideoOverlayComposition feature when such caps can be negotiated
	  downstream, such as with gtk4paintablesink.
	  Example of pipeline that was previously converting to GLMemory and RGBA,
	  which now passes through DMABUFs:
	  filesrc location='p010_bt2100-pq_subtitles.mkv' ! matroskademux name=d \
	  d. ! queue ! h265parse ! vah265dec ! subtitleoverlay name=s \
	  d. ! queue ! s. \
	  s. ! glsinkbin sink=gtk4paintablesink
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10000>

2025-11-04 16:13:11 +0900  Seungha Yang <seungha@centricular.com>

	* gst/compositor/compositor.c:
	  compositor: Fix critical warning due to late debug category initialization
	  Initialize the debug category in compositor_class_init() instead of
	  compositor_pad_class_init(), since debug logging can occur before
	  the compositor pad is added, that is before pad class_init()
	  Fixes a regression introduced by
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9496
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9995>

2025-09-05 21:07:43 +0800  Nicholas Jin <nicholasdezai@gmail.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst-libs/gst/audio/audio-format.c:
	* gst-libs/gst/audio/audio-format.h:
	* tests/check/libs/audio.c:
	  audio: add U20_32 and S20_32 audio format
	  Co-authored-by: Sebastian Dröge <sebastian@centricular.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9650>

2024-03-16 04:44:39 -0300  Val Packett <val@packett.cool>

	* gst-libs/gst/tag/gstvorbistag.c:
	  tag: use locale-independent number parsing in vorbistag
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6369>

2024-03-14 02:28:40 -0300  Val Packett <val@packett.cool>

	* gst-libs/gst/tag/gstvorbistag.c:
	  tag: parse R128 Vorbis tags
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6369>

2025-10-31 15:54:36 +0900  Jeehyun Lee <jeehyun.lee@lge.com>

	* gst-libs/gst/rtsp/gstrtspconnection.c:
	  rtsp: fix memory leaks in gst_rtsp_connection_connect_with_response_usec
	  Fix request_uri memory leaks in connection retry loop and properly
	  handle connection_uri ownership transfer during redirects.
	  - Initialize request_uri to NULL
	  - Free request_uri at start of each loop iteration
	  - Transfer ownership correctly during redirect handling
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9961>

2025-10-31 10:01:40 +0900  amy ko <amy.ko@lge.com>

	* gst/playback/gstparsebin.c:
	  parsebin: Free missing plugin details and return failure when plugin is not found
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9958>

2025-10-31 14:33:11 +0900  Jeehyun Lee <jeehyun.lee@lge.com>

	* ext/gl/gltestsrc.c:
	  gltestsrc: Fix memory leaks on shader creation failure
	  Free coord and plane_indices when color_shader or snow_shader
	  compilation fails to prevent memory leaks in error paths.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9959>

2025-10-27 14:15:11 +0000  Jan Schmidt <jan@centricular.com>

	* gst-libs/gst/pbutils/descriptions.c:
	  pbutils: Add ID3 metadata to codec descriptions
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7645>

2025-10-28 00:46:48 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/ogg/gstoggmux.c:
	* gst-libs/gst/audio/gstaudiometa.c:
	* gst-libs/gst/tag/tags.c:
	* gst-libs/gst/video/gstvideometa.c:
	* gst-libs/gst/video/video-overlay-composition.c:
	  base: Annotate unused functions/variables when checks/asserts disabled
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9931>

2025-10-27 14:15:11 +0000  Jan Schmidt <jan@centricular.com>

	* gst-libs/gst/pbutils/codec-utils.c:
	  pbutils: Don't throw critical for unknown mime codec
	  Avoid a critcal in gst_codec_utils_caps_from_mime_codec()
	  trying to append NULL caps when processing an unrecognised
	  codec string
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9920>

2025-10-13 16:25:50 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/rtp/gstrtpbaseaudiopayload.c:
	  rtpbaseaudiopay: Consider RESYNC flag as discontinuity too
	  Previously the marker bit would only be set by the payloader if the DISCONT
	  buffer flag is set, however the depayloader would only set the RESYNC flag
	  whenever it receives a packet with the marker bit set.
	  To avoid unnecessary DISCONTs after the depayloader, also consider the RESYNC
	  flag inside the payloader but keep the depayloader behaviour as it was.
	  See https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/736
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9836>

2021-05-13 16:56:52 -0400  Doug Nazar <nazard@nazar.ca>

	* tests/check/libs/profile.c:
	  test/profile: Use random profile names for load/save tests
	  The tests use a shared directory to store the profiles. If tests are run
	  concurrently would race and cause failures.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5536>

2025-10-15 23:33:51 -0400  Doug Nazar <nazard@nazar.ca>

	* gst/gio/gstgiosrc.c:
	  gstgiosrc: Ensure all access of is_growing is under lock
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9854>

2025-10-15 17:34:09 -0400  Doug Nazar <nazard@nazar.ca>

	* gst/gio/gstgiosrc.c:
	  gstgiosrc: Fix race changing is-growing property
	  We unlock while configuring the main loop when waiting for data.
	  This can cause us to miss that the property has changed since
	  src->is_growing and src->monitoring_mainloop need to be compared
	  within the same locking section.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9854>

2025-10-04 15:14:31 -0400  Doug Nazar <nazard@nazar.ca>

	* gst-libs/gst/gl/egl/gstgldisplay_egl.h:
	* gst-libs/gst/gl/gstglbufferpool.h:
	* gst-libs/gst/gl/gstglcontext.h:
	* gst-libs/gst/gl/gstglframebuffer.h:
	* gst-libs/gst/gl/gstgloverlaycompositor.h:
	* gst-libs/gst/gl/gstglslstage.h:
	  gst: Add G_GNUC_WARN_UNUSED_RESULT to constructors
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9796>

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/9820>

2025-10-07 23:25:59 +0100  Nirbheek Chauhan <nirbheek@centricular.com>

	* tools/gst-device-monitor.c:
	  device-monitor: Print the type of each structure field
	  Without this, users have to hunt in the code to understand what the
	  type of each field is and how to fetch it, or introspect each GValue*
	  in the structure.
	  Omit the name when it's a string, it looks cleaner.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9814>

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/9819>

2025-09-29 17:07:32 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/video/convertframe.c:
	  video: convertframe: Port to gst_object_call_async
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/869>

2025-09-29 17:05:25 +0900  Seungha Yang <seungha@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Port to gst_object_call_async
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/869>

2025-09-29 17:03:17 +0900  Seungha Yang <seungha@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Port to gst_object_call_async
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/869>

2025-09-11 10:04:57 -0400  Doug Nazar <nazard@nazar.ca>

	* tests/check/elements/appsrc.c:
	* tests/check/elements/audioconvert.c:
	* tests/check/elements/audiorate.c:
	* tests/check/elements/multifdsink.c:
	* tests/check/elements/multisocketsink.c:
	* tests/check/elements/videotestsrc.c:
	* tests/check/libs/audiocdsrc.c:
	* tests/check/libs/audiodecoder.c:
	* tests/check/libs/gstglquery.c:
	* tests/check/libs/profile.c:
	* tests/check/libs/rtpdummyhdrextimpl.c:
	* tests/check/libs/video.c:
	* tests/check/libs/videodecoder.c:
	* tests/check/libs/videoencoder.c:
	* tests/check/pipelines/gl-launch-lines.c:
	* tests/check/pipelines/simple-launch-lines.c:
	* tests/examples/dynamic/sprinkle.c:
	* tests/examples/dynamic/sprinkle2.c:
	* tests/examples/dynamic/sprinkle3.c:
	* tests/examples/overlaycomposition/overlaycomposition.c:
	* tests/interactive/test-overlay-blending.c:
	  base: tests: convert g_assert() to g_assert_*() and mark unused items
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9760>

2025-09-11 09:58:48 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/theora/gsttheoraenc.c:
	* gst-libs/gst/audio/gstdsd.c:
	* gst-libs/gst/gl/egl/gstglcontext_egl.c:
	* gst-libs/gst/gl/gstglbuffer.c:
	* gst-libs/gst/gl/gstglcontext.c:
	* gst-libs/gst/gl/gstglfilter.c:
	* gst-libs/gst/gl/gstglframebuffer.c:
	* gst-libs/gst/gl/gstglquery.c:
	* gst-libs/gst/gl/gstglslstage.c:
	* gst-libs/gst/gl/gstglupload.c:
	* gst-libs/gst/gl/gstglwindow.c:
	* gst-libs/gst/gl/x11/gstglcontext_glx.c:
	* gst-libs/gst/rtp/gstrtphdrext.c:
	* gst-libs/gst/rtsp/gstrtspconnection.c:
	* gst-libs/gst/video/gstvideodecoder.c:
	* gst-libs/gst/video/navigation.c:
	* gst-libs/gst/video/video-anc.c:
	* gst-libs/gst/video/video-frame.c:
	* gst-libs/gst/video/video-overlay-composition.c:
	* gst-libs/gst/video/video-scaler.c:
	* gst/playback/gstdecodebin3.c:
	* gst/playback/gstplaysink.c:
	  base: mark items that are unused when checks or asserts are disabled
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9760>

2025-09-30 05:52:18 -0400  Doug Nazar <nazard@nazar.ca>

	* tests/check/libs/profile.c:
	  base: Fixes/workarounds for G_GNUC_WARN_UNUSED_RESULT
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9771>

2025-09-25 08:39:24 -0400  Doug Nazar <nazard@nazar.ca>

	* gst-libs/gst/allocators/gstdmabuf.h:
	* gst-libs/gst/allocators/gstdrmdumb.h:
	* gst-libs/gst/allocators/gstfdmemory.h:
	* gst-libs/gst/app/gstappsink.h:
	* gst-libs/gst/app/gstappsrc.h:
	* gst-libs/gst/audio/audio-converter.h:
	* gst-libs/gst/audio/audio-info.h:
	* gst-libs/gst/audio/gstaudioclock.h:
	* gst-libs/gst/audio/gstaudiodecoder.h:
	* gst-libs/gst/audio/gstaudioencoder.h:
	* gst-libs/gst/audio/gstaudiostreamalign.h:
	* gst-libs/gst/audio/gstdsd.h:
	* gst-libs/gst/gl/egl/gsteglimage.h:
	* gst-libs/gst/gl/egl/gstgldisplay_egl.h:
	* gst-libs/gst/gl/egl/gstgldisplay_egl_device.h:
	* gst-libs/gst/gl/gstglbasefilter.h:
	* gst-libs/gst/gl/gstglbasememory.h:
	* gst-libs/gst/gl/gstglbasemixer.h:
	* gst-libs/gst/gl/gstglbasesrc.h:
	* gst-libs/gst/gl/gstglbuffer.h:
	* gst-libs/gst/gl/gstglbufferpool.h:
	* gst-libs/gst/gl/gstglcolorconvert.h:
	* gst-libs/gst/gl/gstglcontext.h:
	* gst-libs/gst/gl/gstgldisplay.h:
	* gst-libs/gst/gl/gstglframebuffer.h:
	* gst-libs/gst/gl/gstglmemory.h:
	* gst-libs/gst/gl/gstglmixer.h:
	* gst-libs/gst/gl/gstglrenderbuffer.h:
	* gst-libs/gst/gl/gstglshader.h:
	* gst-libs/gst/gl/gstglupload.h:
	* gst-libs/gst/gl/gstglviewconvert.h:
	* gst-libs/gst/gl/gstglwindow.h:
	* gst-libs/gst/gl/wayland/gstgldisplay_wayland.h:
	* gst-libs/gst/gl/x11/gstgldisplay_x11.h:
	* gst-libs/gst/pbutils/encoding-profile.h:
	* gst-libs/gst/pbutils/encoding-target.h:
	* gst-libs/gst/pbutils/gstdiscoverer.h:
	* gst-libs/gst/pbutils/install-plugins.h:
	* gst-libs/gst/rtp/gstrtcpbuffer.h:
	* gst-libs/gst/rtp/gstrtpbaseaudiopayload.h:
	* gst-libs/gst/rtp/gstrtpbasepayload.h:
	* gst-libs/gst/rtp/gstrtpbuffer.h:
	* gst-libs/gst/rtp/gstrtphdrext.h:
	* gst-libs/gst/rtsp/gstrtspconnection.h:
	* gst-libs/gst/rtsp/gstrtspmessage.h:
	* gst-libs/gst/rtsp/gstrtsptransport.h:
	* gst-libs/gst/rtsp/gstrtspurl.h:
	* gst-libs/gst/sdp/gstmikey.h:
	* gst-libs/gst/sdp/gstsdpmessage.h:
	* gst-libs/gst/tag/xmpwriter.h:
	* gst-libs/gst/video/gstvideoaggregator.h:
	* gst-libs/gst/video/gstvideodecoder.h:
	* gst-libs/gst/video/gstvideoencoder.h:
	* gst-libs/gst/video/gstvideopool.h:
	* gst-libs/gst/video/gstvideotimecode.h:
	* gst-libs/gst/video/video-anc.h:
	* gst-libs/gst/video/video-color.h:
	* gst-libs/gst/video/video-hdr.h:
	* gst-libs/gst/video/video-info-dma.h:
	* gst-libs/gst/video/video-info.h:
	* gst-libs/gst/video/video-overlay-composition.h:
	  base: Add G_GNUC_WARN_UNUSED_RESULT to funcs with transfer full returns
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9771>

2025-09-24 15:33:02 -0400  Doug Nazar <nazard@nazar.ca>

	* tests/check/elements/encodebin.c:
	* tests/check/libs/rtpbasepayload.c:
	* tests/interactive/test-textoverlay.c:
	  gst: fixes
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9766>

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/9764>

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/9736>

2025-09-18 13:07:36 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/gstglupload.c:
	  glupload: Clarify DMA Buf helper function for EGL format check
	  Rename the function to _dma_buf_filter_egl_supported_formats() and add a
	  comment to explain its return value. The function name was vague and it was
	  hard to understand without having to read the code.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9702>

2025-09-17 03:59:00 -0400  Doug Nazar <nazard@nazar.ca>

	* gst-libs/gst/gl/gstglupload.c:
	  glupload: Set caps format to RGBA also on legacy dmabuf direct upload
	  Failing to update the format would lead to wrong image or even SIGSEGV later
	  when attempting to access the buffer memory.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9702>

2025-09-19 13:06:36 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/video/gstvideometa.c:
	* gst-libs/gst/video/gstvideometa.h:
	* gst-libs/gst/video/navigation.c:
	* gst-libs/gst/video/video-anc.c:
	* gst-libs/gst/video/video-anc.h:
	* gst-libs/gst/video/video-chroma.c:
	* gst-libs/gst/video/video-converter.c:
	* gst-libs/gst/video/video-dither.c:
	* gst-libs/gst/video/video-format.h:
	* gst-libs/gst/video/video-hdr.h:
	* gst-libs/gst/video/video-info-dma.c:
	* gst-libs/gst/video/video-scaler.c:
	* gst-libs/gst/video/video-sei.c:
	  video: Add various missing annotations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9709>

2025-09-19 11:31:11 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/audio/gstaudioiec61937.h:
	  audio: Add missing G_BEGIN_DECLS / G_END_DECLS to header
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9709>

2025-09-19 11:30:57 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/audio/audio-channel-mixer.c:
	* gst-libs/gst/audio/audio-converter.c:
	* gst-libs/gst/audio/audio-quantize.c:
	* gst-libs/gst/audio/gstaudiometa.c:
	* gst-libs/gst/audio/gstaudiometa.h:
	* gst-libs/gst/audio/gstdsd.c:
	  audio: Add various missing annotations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9709>

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/9716>

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/9707>

2025-09-16 10:35:19 +0000  pfee <paul.f.fee@gmail.com>

	* gst/tcp/README:
	  tcp: Edit README, removing "protocol=none"
	  Also add sample text and update gst-launch command.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9694>

2025-09-03 11:32:19 -0400  Xavier Claessens <xclaessens@netflix.com>

	* ext/gl/gstgloverlaycompositorelement.c:
	* ext/pango/gstbasetextoverlay.c:
	* ext/pango/gstbasetextoverlay.h:
	* gst-libs/gst/gl/gstglcolorconvert.c:
	* gst-libs/gst/gl/gstgloverlaycompositor.c:
	* gst-libs/gst/gl/gstgloverlaycompositor.h:
	* gst-libs/gst/gl/gstglviewconvert.c:
	* gst-libs/gst/video/video-overlay-composition.c:
	* gst-libs/gst/video/video-overlay-composition.h:
	* gst/overlaycomposition/gstoverlaycomposition.c:
	* tests/check/libs/gstglcolorconvert.c:
	  GstVideoOverlayCompositionMeta: Fix multiple composition meta usage
	  This deprecates gst_buffer_get_video_overlay_composition_meta() and
	  stops using it. The reason is a buffer could have multiple composition
	  metas, and each of them can have multiple rectangles. Sinks and
	  compositor elements must iterate over all metas instead of assuming
	  there is only one.
	  Discourage usage of gst_video_overlay_composition_make_writable() and
	  gst_video_overlay_composition_copy() in documentation. Instead of
	  modifying upstream's composition meta, overlay elements should add their
	  own meta. This avoids texture cache invalidation in sinks and compositor
	  elements that keep a ref of GstVideoOverlayRectangle objects.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7627>

2025-09-07 20:39:44 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.27.2

=== release 1.27.2 ===

2025-09-07 20:34:55 +0100  Tim-Philipp Müller <tim@centricular.com>

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

2025-09-06 11:08:47 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ext/gl/gstglcolorconvertelement.c:
	* ext/gl/gstglimagesink.c:
	* ext/gl/gstglsinkbin.c:
	* ext/gl/gstglsrcbin.c:
	* ext/gl/gstgluploadelement.c:
	* gst-libs/gst/gl/gstglbasefilter.c:
	* gst-libs/gst/gl/gstglbasemixer.c:
	* gst-libs/gst/gl/gstglbasesrc.c:
	* gst-libs/gst/pbutils/gstdiscoverer.c:
	* tests/check/pipelines/gl-launch-lines.c:
	* tests/examples/playback/playback-test.c:
	* tools/gst-play.c:
	  gst: Change usage of gst_element_state_*() to gst_state_*()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9655>

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/9651>

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/9647>

2025-08-25 15:22:20 -0400  Xavier Claessens <xclaessens@netflix.com>

	* gst/pbtypes/gstpbtypes.c:
	* gst/pbtypes/meson.build:
	  meta: Add GstMetaFactory to dynamically register GstMetaInfo
	  This allows plugins to register their GstMetaInfo so
	  gst_meta_deserialize() can deserialize them automatically.
	  This helps making unixfd common cases work out of the box instead of
	  relying on application to do it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9598>

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/9626>

2025-08-28 22:47:32 -0400  Rick Ye <l@hovo.dev>

	* gst-libs/gst/gl/cocoa/gstglcontext_cocoa.m:
	  gl: detect the correct context_api on MacOS
	  For OpenGL 4.1 context, profile will be kCGLOGLPVersion_GL4_Core, then
	  the context_api will be GST_GL_API_OPENGL, causing some problems in gl
	  elements.
	  The value of CGLOGLPVersion is exactly their version number in hex, e.g.
	  0x3200 for kCGLOGLPVersion_3_2_Core and 0x4100 for
	  kCGLOGLPVersion_GL4_Core. Therefore using `>=` is appropriate here.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9619>

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/9625>

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/9625>

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/9625>

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/9625>

2025-08-22 15:13:33 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/video/gstvideopool.c:
	  video: pool: Fix pool size configuration for DMA DRM
	  Now that VideoPool accept DMA DRM, it is quite likely that the size does not get
	  provided in the configuration even if the format have a matching GstVideoFormat.
	  Fix this by reporting back the minimum expected size in the configuration. This
	  allows the configuration handshake to succeed.
	  Fixes regression caused by !9345
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9600>

2025-08-22 05:03:40 +0200  Robert Mader <robert.mader@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst-libs/gst/gl/egl/gsteglimage.c:
	* 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 the NV24 pixel format
	  For completeness - and because it came in handy while testing the format
	  in a related context.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9596>

2025-08-19 09:41:17 -0400  Thibault Saunier <tsaunier@igalia.com>

	* tests/validate/videorate/check-rate-prop-with-decoder.meta:
	* tests/validate/videorate/rate_0_5_with_decoder.validatetest:
	* tests/validate/videorate/rate_0_5_with_decoder/flow-expectations/log-videorate-sink-expected:
	* tests/validate/videorate/rate_0_5_with_decoder/flow-expectations/log-videorate-src-expected:
	* tests/validate/videorate/rate_2_0_with_decoder.validatetest:
	* tests/validate/videorate/rate_2_0_with_decoder/flow-expectations/log-videorate-sink-expected:
	* tests/validate/videorate/rate_2_0_with_decoder/flow-expectations/log-videorate-src-expected:
	  validate: videorate: Update tests to use fakevideodec and fix race condition
	  There was a case where we could end up having more buffers on the sinkpads
	  than what was expected, depending on timings. This ensure that we have a fixed
	  number of buffers produced by the testsrc, and we play until EOS.
	  Replace theora encoder/decoder chain with fakevideodec for testing
	  QoS handling in videorate rate property tests. This simplifies the
	  test pipeline and removes dependency on theora codecs.
	  Also adjust test expectations to match RGBA format output from
	  fakevideodec instead of I420 from theoradec, and limit buffer
	  counts to make tests more deterministic.
	  This also fixes the rate we set for 2.0 test as we were actually testing
	  0.5 there.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9013>

2025-05-10 20:39:42 -0400  Thibault Saunier <tsaunier@igalia.com>

	* gst/videorate/gstvideorate.c:
	  videorate: Convert input ts to output scale to close segment
	  Otherwise we compare values that are in two different time scales.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9013>

2025-05-09 15:16:33 -0400  Thibault Saunier <tsaunier@igalia.com>

	* gst/videorate/gstvideorate.c:
	  videorate: Bring all timestamp in the runtime scale when applying rate to QoS
	  Otherwise the timescale won't match and we might end up with totally broken
	  QoS events.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9013>

2025-04-11 13:33:05 -0400  Thibault Saunier <tsaunier@igalia.com>

	* gst/videorate/gstvideorate.c:
	* gst/videorate/gstvideorate.h:
	* tests/validate/videorate/change_rate_reverse_playback.validatetest:
	* tests/validate/videorate/change_rate_reverse_playback/flow-expectations/log-videorate-sink-expected:
	* tests/validate/videorate/change_rate_reverse_playback/flow-expectations/log-videorate-src-expected:
	* tests/validate/videorate/change_rate_while_playing.validatetest:
	* tests/validate/videorate/change_rate_while_playing/flow-expectations/log-videorate-sink-expected:
	* tests/validate/videorate/change_rate_while_playing/flow-expectations/log-videorate-src-expected:
	* tests/validate/videorate/reverse.10_to_1fps.validatetest:
	  videorate: Refactor so upstream/downstream time domains are properly decoupled
	  Refactor the videorate element to properly separate upstream and downstream
	  time domains when the `rate` property is set.
	  The previous implementation had issues with time domain conversions when
	  changing rates, especially during seeks after which we were basically confusing
	  input and output timestamps.
	  This also fixes rate changes as we are now tracking the wanted input timestamps
	  and not confusing them with the output, so this way we do not drop buffers when
	  the rate is changed while playing, meaning that the related tests have been
	  fixed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9013>

2025-02-26 18:41:39 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst/videorate/gstvideorate.c:
	  videorate: Handle the case where the base_ts is > qo.timestamp
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9013>

2024-08-21 14:38:14 -0400  Thibault Saunier <tsaunier@igalia.com>

	* gst/videorate/gstvideorate.c:
	  videorate: Do not fail setting caps on flushing pad
	  Avoiding to error out when flushing "at the wrong time" for example.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9013>

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/9579>

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/9557>

2025-08-11 16:12:18 +0300  Adrian Perez de Castro <aperez@igalia.com>

	* ext/alsa/gstalsadeviceprovider.c:
	  alsa: Fill in alsa.name for PCM sinks
	  The device description may be used as the "alsa.name" property, to match
	  what is done for card devices.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9534>

2025-08-11 16:07:11 +0300  Adrian Perez de Castro <aperez@igalia.com>

	* ext/alsa/gstalsadeviceprovider.c:
	  alsa: Enumerate output-only PCM sinks
	  Change the logic to skip only devices which have "Input" as their IOID. The ALSA
	  Input/Output identifier (IOID) it may be either "Input", "Output", or NULL; with
	  the latter meaning that the device supports both input and output.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9534>

2025-08-14 21:44:59 +0300  Adrian Perez de Castro <aperez@igalia.com>

	* ext/alsa/gstalsadeviceprovider.c:
	  alsa: Check for element types when reconfiguring
	  Make gst_alsa_device_reconfigure_element() check whether the passed element
	  type matches that of the device itself before attempting to apply the new
	  configuration.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9558>

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/9532>

2025-08-08 19:33:03 +0900  Elliot Chen <elliot.chen@nxp.com>

	* gst-libs/gst/video/video-info-dma.c:
	  video: dma-drm: Add P016_LE format map
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9513>

2025-07-21 03:41:05 +0100  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/cdparanoia/gstcdparanoiasrc.c:
	* ext/ogg/gstoggdemux.c:
	* gst/adder/gstadder.c:
	* gst/compositor/compositor.c:
	* gst/videorate/gstvideorate.c:
	* gst/videotestsrc/gstvideotestsrc.c:
	* gst/volume/gstvolume.c:
	  debug: Category init should happen in class_init when possible
	  plugin_init() will not get called if element/feature registration
	  happens manually, such as when using linking only specific plugin
	  features with gstreamer-full. That is possible when plugins contain
	  static features.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9496>

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/9500>

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/9487>

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/9494>

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/9494>

2025-08-01 17:18:10 +0900  Elliot Chen <elliot.chen@nxp.com>

	* gst-libs/gst/gl/gstglupload.c:
	  glupload: check the return value when transforming caps
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9478>

2025-07-08 15:45:57 +0900  Elliot Chen <elliot.chen@nxp.com>

	* gst-libs/gst/video/gstvideopool.c:
	  videopool: support parsing dma_drm caps
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9345>

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/9433>

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/9466>

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/9466>

2024-02-23 17:05:50 -0500  Olivier Crête <olivier.crete@collabora.com>

	* tests/check/elements/glfilter.c:
	  test glfilter: Make sure the meta are not copied twice
	  This only happens if there are no tags, so we use a custom meta to
	  check it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6212>

2024-02-19 17:36:03 -0500  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/gl/gstglcolorconvert.c:
	  Revert "glcolorconvert: should copy metadatas from the incoming buffer"
	  This reverts commit 199b62570fd201fd67e41af1932d6ae19ead2b76.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6212>

2025-07-31 17:54:32 -0400  Olivier Crête <olivier.crete@collabora.com>

	* docs/random/LICENSE:
	  random: Remove historical LICENSE header
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9476>

2025-07-31 17:50:33 -0400  Olivier Crête <olivier.crete@collabora.com>

	* AUTHORS:
	  AUTHORS: Remove outdated files
	  They only contained historical contributors, the modern version is
	  to look at the git logs.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9476>

2025-07-31 17:44:21 -0400  Olivier Crête <olivier.crete@collabora.com>

	* MAINTAINERS:
	  MAINTAINERS: Update to reflect current maintainership
	  Instead of listing everyone, just point to GitLab
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9476>

2025-07-31 17:39:44 -0400  Olivier Crête <olivier.crete@collabora.com>

	* REQUIREMENTS:
	  REQUIREMENTS: Remove outdated doc
	  They contained information which was completely outdated.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9476>

2025-07-30 11:12:24 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	  docs: Update documentation cache for new RGB 10bit support
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9460>

2025-07-29 17:21:16 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/egl/gsteglimage.c:
	* gst-libs/gst/gl/gstglcolorconvert.c:
	* gst-libs/gst/gl/gstglcolorconvert.h:
	* gst-libs/gst/gl/gstglformat.c:
	* gst-libs/gst/gl/gstglmemory.h:
	  opengl: Add opaque 10bit RGB support
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9460>

2025-07-29 16:15:42 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/video/video-converter.c:
	* gst-libs/gst/video/video-format.c:
	* gst-libs/gst/video/video-format.h:
	* gst-libs/gst/video/video-info-dma.c:
	* gst-libs/gst/video/video-info.c:
	  video: Add more variants of 10bit RGB formats
	  Add support for RGB10A2/BGR10x2/RGB10x2.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9460>

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/9467>

2025-07-29 16:56:36 +1000  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/gl/gstglbasesrc.c:
	* gst-libs/gst/gl/gstglbasesrc.h:
	  gl/basesrc: add get_gl_context
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9455>

2025-06-30 13:44:27 +1000  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/gl/gstglbasesrc.c:
	  gl/basesrc: support changing caps
	  Caps may change the framerate used and the frame counting approach for
	  timestamps, needs to account for this by taking a snapshot of the current frames
	  and running time to add to all subsequent produced frames.  Code is mostly taken
	  from videotestsrc.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9455>

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/9434>

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/9434>

2025-07-24 20:20:39 +0100  Nirbheek Chauhan <nirbheek@centricular.com>

	* meson.build:
	  meson: Pass sysprof=disabled to glib
	  sysprof cannot be built on Windows, and this causes the build to fail
	  on Windows.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9438>

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/9352>

2025-07-08 20:00:07 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.27.1

=== release 1.27.1 ===

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

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

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-07-07 11:19:04 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/gl/gstgldownloadelement.c:
	  opengl: gldownload: Restore DMABuf support
	  The download element relied on a fuzzy translation from GStreamer format to a
	  DRM fourcc, and then all supported modifiers for that fourcc. Since !9306 this
	  was fixed to only enumerate that way when direct import is used.
	  Flag direct upload to the transform caps helper, so that we now enumerate all
	  non-external formats again.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9339>

2025-07-07 09:17:11 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/egl/gstglcontext_egl.c:
	* gst-libs/gst/gl/egl/gstglcontext_egl_private.h:
	* gst-libs/gst/gl/gstglupload.c:
	* gst-libs/gst/gl/gstglutils.c:
	* gst-libs/gst/gl/gstglutils.h:
	  opengl: upload: Fix and improve DRM modifiers direct import
	  When using direct DMABuf upload, supported DRM formats and modifiers
	  pairs should be translated to RGBA. Instead of overwriting the translation
	  to RGBA, which may endup having nothing to override, we introduce a new
	  flag for the transform helper, so it can do direct translation.
	  This fixes a regression introduced by !9306, and fixes more negotiations
	  issues.
	  Fixes #4525
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9339>

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/9151>

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/9151>

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/9151>

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/9342>

2025-07-02 23:24:52 +0200  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/sdp/gstsdpmessage.c:
	* tests/check/libs/sdp.c:
	  sdp: Keep profile-level-id in caps
	  If it is present in the SDP, then keep it in the caps,
	  it should be equal for it to work.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9031>

2025-05-19 23:17:46 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/sdp/gstsdpmessage.c:
	* tests/check/libs/sdp.c:
	  sdpmessage: Try to re-create profile-level-id
	  Some WebRTC implementations such as Pion are unhappy if the
	  profile-level-id isn't returned with a compatible profile as the
	  RFC requires. Let's try to reform it
	  In practice, the correct way to do this would be to not use caps
	  intersection, but to instead implement the correct RFC compliant
	  SDP O/A negotiation of formats.
	  Include a unit test written by Philippe Normand
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9031>

2025-05-19 23:16:43 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/sdp/gstsdpmessage.c:
	  sdpmessage: Avoid duplicating the extmap when adding multiple codecs
	  The extmap aren't per-codec in SDP, so if one adds multiple codecs
	  to the same SDP media, the extmap were duplicated. Look if they are
	  already present and skip them if they are.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9031>

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/9115>

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/9115>

2025-06-23 19:06:59 -0400  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m:
	  gl: cocoa: Add navigation event support
	  Implement keyboard, mouse, and scroll wheel event handling for the
	  OpenGL Cocoa backend.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9276>

2025-06-30 16:38:12 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/android/gstglwindow_android_egl.c:
	* gst-libs/gst/gl/egl/gsteglimage.c:
	* gst-libs/gst/gl/egl/gstglcontext_egl.c:
	* gst-libs/gst/gl/egl/gstglcontext_egl_private.h:
	* gst-libs/gst/gl/egl/gstglmemoryegl.c:
	* gst-libs/gst/gl/gbm/gstglwindow_gbm_egl.c:
	* gst-libs/gst/gl/gstglcontext.c:
	* gst-libs/gst/gl/gstglupload.c:
	* gst-libs/gst/gl/gstglutils.c:
	* gst-libs/gst/gl/winrt/gstglwindow_winrt_egl.cpp:
	* gst-libs/gst/gl/x11/gstglcontext_glx.c:
	* gst-libs/gst/gl/x11/gstglcontext_glx_private.h:
	* tests/check/libs/gstgl-public-headers.h:
	  opengl: Rename to _private EGL and GLX context header
	  Both only contains private symbols, clarify this by using a very explicit
	  name.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9306>

2025-06-27 17:20:45 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/gstglupload.c:
	  gl: upload: Fix direct dmabuf transform function
	  When doing direct dmabuf upload, we rely on the GL stack for doing the color
	  transformation. The caps we transform from GL to DMABuf are always with a format
	  of RGBA. Instead of listing all GstVideoFormat and translating them back into
	  DRM formats, simply list all supported DRM format for the context.
	  This enable rendering DRM formats that don't have an shader based emulation
	  implemented such as NV15.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9306>

2025-06-27 17:16:19 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/egl/gstglcontext_egl.c:
	* gst-libs/gst/gl/egl/gstglcontext_egl.h:
	  gl: context_egl: Add a helper to list all supported fourcc/modifiers
	  This helper creates a GST_TYPE_LIST of all possible DRM formats that the context
	  can support. This will be needed to fix support for formats that aren't emulated
	  using GStreamer shaders.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9306>

2025-06-27 14:53:01 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/egl/gstglcontext_egl.c:
	  gl: context_egl: Show all possible translation to GstVideoFormat
	  The code would simply trace one random format using the DRM fourcc. Instead,
	  trace the result of translating the pair and skip if there is not match.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9306>

2025-06-27 12:53:20 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/gstglutils.c:
	  gl: utils: Correct gst/dma caps transformation
	  The transformation was fuzzy, adding random modifiers to the list. Use the newly
	  introduce helpers from 1.26 to precisely convert GStreamer formats to a DRM
	  fourcc and modifier pair and vice-versa.
	  This fixes support for formats that have a GstVideoFormat value and requires a
	  modifier.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9306>

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/9273>

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/9309>

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/9215>

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/9215>

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/9233>

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/9248>

2025-05-21 13:04:07 -0400  F. Duncanh <fduncanh@gmail.com>

	* gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m:
	  glwindow_cocoa: fix window not closing (w/o user window handle)
	  A user-supplied window handle (external_view) becomes the superView
	  of internal_view, which is closed with [view removeFromSuperview].
	  This fails silently if external_view = NULL (no handle supplied).
	  Call [win_internal_id close] in this case. Fixes #4432.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9049>

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/8412>

2025-06-09 13:04:55 +0100  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/sdp/gstsdpmessage.c:
	* gst-libs/gst/sdp/gstsdpmessage.h:
	* tests/check/libs/sdp.c:
	  sdp: Add media_add_media_from_structure API
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9117>

2025-03-13 15:28:38 +0100  Robert Mader <robert.mader@collabora.com>

	* gst-libs/gst/gl/egl/gsteglimage.c:
	* gst-libs/gst/video/video-info-dma.c:
	  formats: Add DRM equivalents for 10/12/16 bit SW-decoders formats
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8965>

2025-06-17 14:23:13 +0200  Robert Mader <robert.mader@collabora.com>

	* gst-libs/gst/video/ext/drm_fourcc.h:
	  video: Update drm_fourcc.h
	  To drm-misc-next at commit e252e3f3488a492, in order to include
	  new FOURCCs for SW-decoders.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8965>

2025-05-08 13:25:16 -0400  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/pbutils/gstdiscoverer.c:
	  discoverer: Make gst_discoverer_info_from_variant nullable
	  There is no guarantee that the passed in data is valid and we should return
	  NULL in that case.
	  Also add API safeguards
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8953>

2025-06-10 14:41:22 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* scripts/gen-changelog.py:
	  gstreamer-vaapi: remove subproject
	  It's almost superseded by va plugin in gst-plugins-bad.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9200>

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/9148>

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/9167>

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/9167>

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/9167>

2025-05-28 17:48:26 +0200  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/audio/gstaudioencoder.c:
	  audioencoder: Throttle metadata copy warning to prevent log spam
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9122>

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/9130>

2025-05-29 19:16:02 +0200  Thibault Saunier <tsaunier@igalia.com>

	* tests/check/elements/glmixer.c:
	* tests/check/libs/gstglvideomixerelement.c:
	* tests/check/meson.build:
	  tests: glvideomixer: Actually test `glvideomixer` and not `compositor`
	  And move it to the element/glmixer.c testsuite where it belongs.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9139>

2025-05-29 19:16:02 +0200  Thibault Saunier <tsaunier@igalia.com>

	* ext/gl/gstglvideomixer.c:
	* gst/compositor/compositor.c:
	* tests/check/elements/compositor.c:
	* tests/check/libs/gstglvideomixerelement.c:
	  glvideomixer, compositor: fix mouse event handling to properly return success
	  Fix mouse event handling in both glvideomixer and compositor to
	  check if upstream handled navigation events themselves.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9139>

2025-05-16 13:32:08 +0200  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/gl/gstgldebug.h:
	* gst-libs/gst/gl/gstglquery.h:
	* gst-libs/gst/gl/gstglshader.c:
	  general: Stop checking `G_HAVE_GNUC_VARARGS` now that we depend on c99
	  Cleaning up a bit the code now that we can rely on C99 which specifies
	  varargs for macros.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8990>

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/4544>

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/9132>

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/9132>

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/9132>

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/9120>

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/9082>

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/9106>

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/9044>

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/9044>

2025-05-23 16:02:43 -0300  L. E. Segovia <amy@centricular.com>

	* gst-libs/gst/audio/gstaudiopack-dist.c:
	* gst-libs/gst/audio/gstaudiopack-dist.h:
	* gst-libs/gst/video/video-orc-dist.c:
	* gst-libs/gst/video/video-orc-dist.h:
	* gst/adder/gstadderorc-dist.c:
	* gst/adder/gstadderorc-dist.h:
	* gst/audiomixer/gstaudiomixerorc-dist.c:
	* gst/audiomixer/gstaudiomixerorc-dist.h:
	* gst/compositor/compositororc-dist.c:
	* gst/compositor/compositororc-dist.h:
	* gst/videotestsrc/gstvideotestsrcorc-dist.c:
	* gst/videotestsrc/gstvideotestsrcorc-dist.h:
	* gst/volume/gstvolumeorc-dist.c:
	* gst/volume/gstvolumeorc-dist.h:
	* meson.build:
	  orc: Update pregenerated files
	  Fixes -Wtype-limits on gstbayer.orc when emulating convuuslw.
	  Regenerated Orc files use OrcOnce, which increases the minimum version to 0.4.34.
	  See https://gitlab.freedesktop.org/gstreamer/orc/-/merge_requests/212 (ORC_MIN)
	  See https://gitlab.freedesktop.org/gstreamer/orc/-/merge_requests/238 (AVX2 convussql)
	  See https://gitlab.freedesktop.org/gstreamer/orc/-/commit/8a86d517530ce79c0ae47e37d768107c57ab31c4 (OrcOnce)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9067>

2025-05-23 13:04:43 -0300  L. E. Segovia <amy@centricular.com>

	* scripts/update-orc-dist-files.py:
	  orc: Remove references to gst-indent-1.0
	  These are automatically handled by pre-commit now.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9067>

2025-03-15 16:55:47 +0100  Robert Mader <robert.mader@collabora.com>

	* gst-libs/gst/gl/gstglupload.c:
	  glupload: Promote fixate caps results print to info
	  And include the input caps. The idea is that this info is
	  often among the most relevant and having it on INFO level
	  thus allows to avoid the more noisy DEBUG one.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8981>

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

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

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/9046>

2025-04-09 12:10:33 -0400  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/pbutils/descriptions.c:
	* gst-libs/gst/pbutils/gstdiscoverer.c:
	* gst/playback/gsturidecodebin.c:
	  debug: Use log contexts in some places
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6855>

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/9032>

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/9020>

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:
	  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/9004>

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/9004>

2025-05-17 20:20:03 +1000  Matthew Waters <matthew@centricular.com>

	* ext/gl/gstglimagesink.c:
	* gst-libs/gst/gl/dispmanx/gstglwindow_dispmanx_egl.c:
	* gst-libs/gst/gl/egl/gstglcontext_egl.c:
	* gst-libs/gst/gl/gstglwindow.c:
	* gst-libs/gst/gl/gstglwindow.h:
	* gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.c:
	  gl/window: add support for configuring whether a backing surface is needed
	  Fixes videotestsrc ! glimagesink videotestsrc ! glimagesink under Wayland (at
	  least).
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2997
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9007>

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

	* ext/alsa/gstalsadeviceprovider.c:
	  alsa: Support enumerating virtual PCM sinks
	  Add support to the ALSA device provider to enumerate PCM outputs that do
	  not correspond to a physical sound device i.e. they are "virtual" sinks,
	  like the plug, dmix, or softvol PCM outputs that can be setup in the ALSA
	  configuration files.
	  The main use-case for this is allowing usage of GstDeviceMonitor in setups
	  where there is no audio server and have custom ALSA audio configurations.
	  As those are likely to be uncommon, the feature is opt-in: a list of device
	  names and wildcard patterns separated by semicolons must be assigned to the
	  GST_ALSA_PCM_ALLOW environment variable before such PCM outputs will be
	  enumerated by the ALSA device provider. This allows either scanning all
	  PCM outputs, listing individual outputs, providing simple patterns with
	  '*' wildcards (which match only at the start or end of the name), or
	  a combination of them:
	  GST_ALSA_PCM_ALLOW=1                         # Enable listing PCM outputs.
	  GST_ALSA_PCM_ALLOW='*'                       # Same, using a wildcard.
	  GST_ALSA_PCM_ALLOW='out_1;out_1'             # Exact listing.
	  GST_ALSA_PCM_ALLOW='out_*'                   # Using a wildcard.
	  GST_ALSA_PCM_ALLOW='out_*;other_*;line_out'  # Multiple items.
	  The main motivation for this patch is supporting enumeration of PCM outputs
	  in the WebKit GTK and WPE ports, which use GstDeviceMonitor to determine
	  which devices may be chosen for sound output. While on desktops typically
	  PulseAudio or PipeWire are used nowadays, on embedded devices it is often
	  desirable to avoid them and use custom configurations that perform audio
	  routing and processing using only ALSA.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8831>

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/8975>

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/8975>

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/8982>

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/8985>

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/8964>

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/8984>

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/8984>

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/8984>

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/8984>

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/8978>

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/8915>

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/8917>

2025-05-06 15:16:02 +0200  Jakub Adam <jakub.adam@collabora.com>

	* ext/gl/gstgldmabufbufferpool.c:
	* ext/gl/gstgldownloadelement.c:
	  gldownload: improve logging of gl-dmabuf pool usage
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8938>

2025-04-10 13:48:58 +0200  Jakub Adam <jakub.adam@collabora.com>

	* ext/gl/gstgldmabufbufferpool.c:
	  gldmabufferpool: disable "free cache" workaround in GstGLBufferPool
	  This pool isn't reusing its buffers, which makes it pointless to enable
	  the cache
	  Holding an extra  buffer in free queue can also lead to a deadlock when
	  the pool's max buffer count is configured low (commonly 2).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8939>

2025-04-17 15:41:05 -0400  Xavier Claessens <xclaessens@netflix.com>

	* gst-libs/gst/allocators/gstshmallocator.c:
	* gst-libs/gst/allocators/gstshmallocator.h:
	  unifxfdsink: Add an property to allow copying
	  By design, unixfd is meant to be used for zero-copy and failing when the data is
	  not FD based memory is wanted to help debug pipelines. Though, there exists
	  cases, notably with RTP payloader and demuxers, where its not possible
	  to get all the data into FD memory through allocation queries.
	  To allow using unixfd for these cases, introduce a property on the unixfdsink
	  that enable copying the non FD data into freshly allocated memfd.
	  Co-authored-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8861>

2025-03-15 20:56:17 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.options:
	  meson: rename meson_options.txt to meson.options
	  Which is supported since Meson 1.1:
	  https://mesonbuild.com/Release-notes-for-1-1-0.html#support-for-reading-options-from-mesonoptions
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8651>

2025-04-22 17:31:59 +0900  Elliot Chen <elliot.chen@nxp.com>

	* gst-libs/gst/gl/x11/gstglwindow_x11.c:
	  gl/x11: check whether the display is x11 before using it
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8808>

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/8753>

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/8904>

2025-04-26 19:28:56 +0200  Alexander Slobodeniuk <aslobodeniuk@fluendo.com>

	* ext/gl/caopengllayersink.m:
	* ext/gl/gstglbumper.c:
	* ext/gl/gstglcolorconvertelement.c:
	* ext/gl/gstglcolorscale.c:
	* ext/gl/gstgldeinterlace.c:
	* ext/gl/gstgldifferencematte.c:
	* ext/gl/gstgldownloadelement.c:
	* ext/gl/gstgleffects.c:
	* ext/gl/gstglfilterapp.c:
	* ext/gl/gstglfilterbin.c:
	* ext/gl/gstglfiltercube.c:
	* ext/gl/gstglfilterglass.c:
	* ext/gl/gstglfilterreflectedscreen.c:
	* ext/gl/gstglfiltershader.c:
	* ext/gl/gstglimagesink.c:
	* ext/gl/gstglmixerbin.c:
	* ext/gl/gstglmosaic.c:
	* ext/gl/gstgloverlay.c:
	* ext/gl/gstgloverlaycompositorelement.c:
	* ext/gl/gstglsinkbin.c:
	* ext/gl/gstglsrcbin.c:
	* ext/gl/gstglstereomix.c:
	* ext/gl/gstgltestsrc.c:
	* ext/gl/gstgltransformation.c:
	* ext/gl/gstgluploadelement.c:
	* ext/gl/gstglvideoflip.c:
	* ext/gl/gstglvideomixer.c:
	* ext/gl/gstglviewconvert.c:
	* tests/check/libs/audiocdsrc.c:
	  elements: use set_static_metadata when it's allowed
	  Those strings are nice but CPU doesn't want to copy them
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8905>

2025-04-18 12:27:10 +0300  Sebastian Dröge <sebastian@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst-libs/gst/app/gstappsrc.c:
	  appsrc: Only notify drop property and not in/out
	  This mirrors the behaviour of audiorate / videorate better and observing in/out
	  buffers can be achieved more cheaply via other means.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8866>

2025-04-18 12:26:30 +0300  Sebastian Dröge <sebastian@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst-libs/gst/app/gstappsink.c:
	  appsink: Only notify drop property and not in/out
	  This mirrors the behaviour of audiorate / videorate better and observing in/out
	  buffers can be achieved more cheaply via other means.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8866>

2025-04-17 11:15:08 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	  doc: Update cache for plugins automatically picks NV16_10LE40
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5612>

2023-11-06 15:16:41 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/video/video-converter.c:
	* gst-libs/gst/video/video-format.c:
	* gst-libs/gst/video/video-format.h:
	* gst-libs/gst/video/video-info-dma.c:
	* gst-libs/gst/video/video-info.c:
	* tests/check/libs/video.c:
	  video: Add 10bit 422 NV16_10LE40 format
	  Similar to NV12_10LE40, this is a 422 variant. This format is also named
	  NV20 (20bit per pixels) in other stack and is produced by rkvdec
	  decoder.
	  Co-authored-by: Sebastian Fricke <sebastian.fricke@collabora.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5612>

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/8842>

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

	* docs/plugins/gst_plugins_cache.json:
	  base: Update plugins docs cache
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8824>

2025-04-11 18:17:53 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/app/gstappsrc.c:
	  appsrc: Allow changin leaky-type in PLAYING state
	  No reason not to.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8824>

2025-04-11 17:33:07 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/app/gstappsrc.c:
	  appsrc: Add in/out/dropped and silent properties
	  This allows tracking how many buffers the appsrc has processed so far, similar
	  to the same properties on videorate / audiorate.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8824>

2025-04-11 17:32:29 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/app/gstappsink.c:
	  appsink: Add in/out/dropped and silent properties
	  This allows tracking how many buffers the appsink has processed so far, similar
	  to the same properties on videorate / audiorate.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8824>

2025-04-11 16:34:22 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/app/gstappsrc.c:
	  appsrc: Correctly protect leaky-type property by mutex and signal on change
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8824>

2025-04-11 15:29:13 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/app/app-prelude.h:
	* gst-libs/gst/app/gstappsink.c:
	* gst-libs/gst/app/gstappsink.h:
	  appsink: Add new leaky-type property
	  For symmetry with appsrc. As part of this, also deprecated the drop property.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8824>

2025-04-11 14:28:36 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/app/gstappsink.c:
	* gst-libs/gst/app/gstappsink.h:
	  appsink: Add current-level-buffers, bytes and time properties
	  appsrc (and queue and others) already have the same properties so let's
	  add them here for consistency too.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8824>

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/8785>

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/8807>

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/8605>

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/8605>

2025-03-24 12:03:38 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/pbutils/gstdiscoverer.c:
	  discoverer: Enhance debug logging
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8803>

2024-12-19 23:05:21 +0100  Jakub Adam <jakub.adam@collabora.com>

	* gst-libs/gst/allocators/gstfdmemory.c:
	* gst-libs/gst/allocators/gstfdmemory.h:
	  fdmemory: add gst_fd_allocator_alloc_full()
	  Allows allocating FD memory with offset != 0 and size != maxsize.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8025>

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/8765>

2025-01-22 11:33:25 +0100  Jochen Henneberg <jochen@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/videorate/gstvideorate.c:
	* gst/videorate/gstvideorate.h:
	* tests/check/elements/videorate.c:
	* tests/validate/meson.build:
	* tests/validate/videorate/caps_change.validatetest:
	* tests/validate/videorate/caps_change/flow-expectations/log-videorate-sink-expected:
	* tests/validate/videorate/caps_change/flow-expectations/log-videorate-src-expected:
	* tests/validate/videorate/caps_change_new_pref_0_0.validatetest:
	* tests/validate/videorate/caps_change_new_pref_0_0/flow-expectations/log-videorate-sink-expected:
	* tests/validate/videorate/caps_change_new_pref_0_0/flow-expectations/log-videorate-src-expected:
	* tests/validate/videorate/caps_change_new_pref_1_0.validatetest:
	* tests/validate/videorate/caps_change_new_pref_1_0/flow-expectations/log-videorate-sink-expected:
	* tests/validate/videorate/caps_change_new_pref_1_0/flow-expectations/log-videorate-src-expected:
	* tests/validate/videorate/change_rate_reverse_playback.validatetest:
	* tests/validate/videorate/change_rate_reverse_playback/flow-expectations/log-videorate-sink-expected:
	* tests/validate/videorate/change_rate_reverse_playback/flow-expectations/log-videorate-src-expected:
	* tests/validate/videorate/change_rate_while_playing.validatetest:
	* tests/validate/videorate/change_rate_while_playing/flow-expectations/log-videorate-sink-expected:
	* tests/validate/videorate/change_rate_while_playing/flow-expectations/log-videorate-src-expected:
	* tests/validate/videorate/check-rate-prop-with-decoder.meta:
	* tests/validate/videorate/check-rate-prop.meta:
	* tests/validate/videorate/duplicate_on_eos/flow-expectations/log-videorate-src-expected:
	* tests/validate/videorate/duplicate_on_eos_disbaled.validatetest:
	* tests/validate/videorate/duplicate_on_eos_disbaled/flow-expectations/log-videorate-src-expected:
	* tests/validate/videorate/duplicate_on_eos_half_sec/flow-expectations/log-videorate-src-expected:
	* tests/validate/videorate/fill_segment_after_caps_changed_before_eos.validatetest:
	* tests/validate/videorate/fill_segment_after_caps_changed_before_eos/flow-expectations/log-videorate-sink-expected:
	* tests/validate/videorate/fill_segment_after_caps_changed_before_eos/flow-expectations/log-videorate-src-expected:
	* tests/validate/videorate/rate_0_5.validatetest:
	* tests/validate/videorate/rate_0_5/flow-expectations/log-videorate-sink-expected:
	* tests/validate/videorate/rate_0_5/flow-expectations/log-videorate-src-expected:
	* tests/validate/videorate/rate_0_5_with_decoder.validatetest:
	* tests/validate/videorate/rate_0_5_with_decoder/flow-expectations/log-videorate-sink-expected:
	* tests/validate/videorate/rate_0_5_with_decoder/flow-expectations/log-videorate-src-expected:
	* tests/validate/videorate/rate_2_0.validatetest:
	* tests/validate/videorate/rate_2_0/flow-expectations/log-videorate-sink-expected:
	* tests/validate/videorate/rate_2_0/flow-expectations/log-videorate-src-expected:
	* tests/validate/videorate/rate_2_0_with_decoder.validatetest:
	* tests/validate/videorate/rate_2_0_with_decoder/flow-expectations/log-videorate-sink-expected:
	* tests/validate/videorate/rate_2_0_with_decoder/flow-expectations/log-videorate-src-expected:
	* tests/validate/videorate/reverse.10_to_1fps/flow-expectations/log-videorate-src-expected:
	* tests/validate/videorate/reverse.10_to_30fps/flow-expectations/log-videorate-src-expected:
	* tests/validate/videorate/reverse.30fps/flow-expectations/log-videorate-src-expected:
	* tests/validate/videorate/reverse.variable_to_10fps/flow-expectations/log-videorate-src-expected:
	* tests/validate/videorate/reverse_fast.10_to_1fps/flow-expectations/log-videorate-src-expected:
	* tests/validate/videorate/reverse_fast.10_to_30fps/flow-expectations/log-videorate-src-expected:
	* tests/validate/videorate/reverse_fast.30fps/flow-expectations/log-videorate-src-expected:
	* tests/validate/videorate/reverse_fast.variable_to_10fps/flow-expectations/log-videorate-src-expected:
	* tests/validate/videorate/reverse_slow.10_to_1fps/flow-expectations/log-videorate-src-expected:
	* tests/validate/videorate/reverse_slow.10_to_30fps/flow-expectations/log-videorate-src-expected:
	* tests/validate/videorate/reverse_slow.30fps/flow-expectations/log-videorate-src-expected:
	* tests/validate/videorate/reverse_slow.variable_to_10fps/flow-expectations/log-videorate-src-expected:
	* tests/validate/videorate/videorate-caps-change.meta:
	  videorate: Revive 'new-pref' property
	  The 'new-pref' property sets the preference to use the new (next)
	  instead of the old (previous) buffer. The default is set to 0.5 to get
	  a similar behaviour as before the change.
	  Value 0.0 makes sure that only frames are shown where it's known that
	  the frame content is visible at that time, always show the old frame
	  until the new frame timestamp is reached.
	  Then, if the next buffer replaces the previous buffer the new buffer
	  is pushed as often as possible until PTS is reached. Before the new
	  buffer was only pushed once the new next buffer arrived.
	  Use GstClockTimeDiff because it's known that the current buffer time
	  is inside the time interval of previous buffer and next buffer the
	  calculation can be done with building absolute values. Special macros
	  are not needed here.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8579>

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/8740>

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/8648>

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/8648>

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/8648>

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/8648>

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/8648>

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/8672>

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/8672>

2025-03-24 14:48:59 +0000  Philippe Normand <philn@igalia.com>

	* tools/gst-device-monitor.c:
	  device-monitor: Deinitialize GStreamer before exiting
	  Nice to have when using the leak tracer.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8670>

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/8649>

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/8649>

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/8637>

2025-03-14 09:37:16 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Don't avoid `parsebin` even if we have a matching decoder
	  This is too brittle, there is no guarantee that the input stream has been
	  properly parsed.
	  There is another check above (is_input_parsed) that will skip that if the
	  content came from `urisourcebin` and had a parser applied
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4308
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8641>

2025-03-12 10:30:04 +0100  Olivier Blin <olivier.blin@softathome.com>

	* ext/alsa/gstalsadeviceprovider.c:
	  alsadeviceprovider: Fix leak of Alsa longname
	  Detected by ASan.
	  As a drive-by fix, use free() instead of g_free() in gstalsadeviceprovider.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8619>

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/8601>

2025-02-18 15:53:46 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Make parsebin activation more reliable
	  `parsebin` is potentially added by a `typefind` callback.
	  That `typefind` was activated by a `READY_TO_PAUSED` state change on `urisourcebin`
	  We want to ensure that it is the "setup_parsebin_for_slot" method that activates
	  the underlying `parsebin`, and not the external state-change.
	  Otherwise we would risk a potential deadlock where elements activating in
	  `parsebin`, and which would cause the upstream `typefind` to switch scheduling
	  mode, would not be able to acquire the STREAM_LOCK of the `typefind` task.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4225
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8511>

2025-03-10 13:14:07 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/pbutils/gstaudiovisualizer.c:
	* gst-libs/gst/video/gstvideoaggregator.c:
	* gst-libs/gst/video/gstvideodecoder.c:
	* gst-libs/gst/video/gstvideoencoder.c:
	* gst-libs/gst/video/gstvideofilter.c:
	* gst/compositor/compositor.c:
	* gst/videotestsrc/gstvideotestsrc.c:
	* tests/check/elements/theoradec.c:
	  video: Give better names to buffer pools
	  Making debugging simpler
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8617>

2025-03-12 13:59:45 +0100  Tim-Philipp Müller <tim@centricular.com>

	* README.md:
	* RELEASE:
	* meson.build:
	  Back to development in main branch after 1.26.0
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8621>

=== release 1.26.0 ===

