=== release 1.28.5 ===

2026-07-08 23:42:39 +0200  Tim-Philipp Müller <tim@centricular.com>

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

2026-06-16 14:10:00 -0300  L. E. Segovia <amy@centricular.com>

	* meson.build:
	  audio-resampler: Declare that NEON support also requires Thumb
	  GCC from Yocto for Beaglebone Black doesn't enable it, so it causes a
	  build time error since !5075. All other versions that I know of
	  (Godbolt, Alpine, Ubuntu) have Thumb mode enabled by default.
	  Fixes #5164
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11971>

2026-06-22 11:54:41 +0300  Arthur Chan <arthur.chan@adalogics.com>

	* gst-libs/gst/pbutils/encoding-target.c:
	  encoding-target: Validate that encoding profile name is UTF-8 before using it
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5131
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12068>

2026-06-19 13:48:16 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ext/opus/gstopusdec.c:
	  opusdec: Don't use any channel positions for >64 channels
	  We don't support this.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5122
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12067>

2026-07-06 11:52:50 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/rtp/gstrtcpbuffer.c:
	* tests/check/libs/rtp.c:
	  rtcpbuffer: Make sure to check for enough available space when adding SDES items
	  Also don't use the wrong offset if this is not actually the first packet in a
	  compound RTCP packet.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12033>

2026-07-04 15:37:58 -0500  Gordon Smith <gsmith@route8.io>

	* gst-libs/gst/rtp/gstrtcpbuffer.c:
	* tests/check/libs/rtp.c:
	  rtcpbuffer: Fix parsing of SR+SDES compound packet
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12033>

2026-07-02 18:00:06 +0530  Sanchayan Maity <sanchayan@centricular.com>

	* tests/check/gst/typefindfunctions.c:
	  tests: typefindfunctions: Add test for type finding with caps
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12020>

2026-06-08 16:50:09 +0900  Qi Hou <qi.hou@nxp.com>

	* ext/gl/gstgldownloadelement.c:
	  gldownload: fix wrong DRM format negotiation causing R/B channel swap
	  The _convert_dma_drm() function in gldownloadelement uses
	  gst_gl_dma_buf_transform_gst_formats_to_drm_formats() to convert
	  GstVideo formats to DRM formats for downstream caps negotiation.
	  It was incorrectly using GST_GL_DRM_FORMAT_DIRECT_IMPORT, which is
	  designed for the upload (import) direction. With this flag, the
	  function bypasses the standard format mapping table and instead
	  queries the EGL driver for all supported DRM formats. This causes
	  gldownload to advertise formats like DRM_FORMAT_ARGB8888 (BA24)
	  alongside DRM_FORMAT_ABGR8888 (AB24).
	  Since GL internally works with RGBA byte order (R,G,B,A in memory),
	  the only correct DRM fourcc is ABGR8888 (AB24). When a downstream
	  element such as waylandsink picks ARGB8888 (BA24) instead, the R and
	  B channels are swapped, resulting in wrong purple/pink color.
	  Fix this by using GST_GL_DRM_FORMAT_INCLUDE_EMULATED, which goes
	  through the standard GstVideo-to-DRM mapping table where RGBA is
	  correctly mapped to DRM_FORMAT_ABGR8888 only.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11997>

2026-03-30 10:22:51 -0300  L. E. Segovia <amy@centricular.com>

	* gst/typefind/gsttypefindfunctions.c:
	  typefind: fix caps leaks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11972>

2026-03-27 18:55:14 -0300  L. E. Segovia <amy@centricular.com>

	* gst/typefind/gsttypefindfunctions.c:
	  typefind: fix incorrect parsing of WBMP multibyte integers
	  Fixes #5001
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11972>

2026-03-27 17:34:17 -0300  L. E. Segovia <amy@centricular.com>

	* gst/typefind/gsttypefindfunctionsplugin.h:
	* gst/typefind/gsttypefindfunctionsstartwith.c:
	  typefind: add X Bitmap support
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11972>

2026-03-27 17:32:48 -0300  L. E. Segovia <amy@centricular.com>

	* gst/typefind/gsttypefindfunctions.c:
	* gst/typefind/gsttypefindfunctionsstartwith.c:
	  typefind: add animated PNG detection
	  See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/4986
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11972>

2026-06-25 18:06:39 +0200  Marcus Hanestad <marlhan@proton.me>

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: deactivate input_item in erroneous ready->paused transition
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11952>

2026-06-24 09:51:57 +0100  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/app/gstappsink.c:
	  appsink: Clear local sample storage when flushing
	  Since commit d00e0b61 appsink keeps a local reference of the current sample in
	  order to reduce allocations. However not clearing its contents upon flush events
	  would prevent associated buffers from being cleared from their pool.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11947>

2026-06-15 09:54:15 +1000  Jan Schmidt <jan@centricular.com>

	* gst-libs/gst/app/gstappsrc.c:
	  appsrc: Uniformly handle EOS events being pushed
	  Treat an EOS event being sent to appsrc via gst_element_send_event()
	  the same as if the gst_app_src_end_of_stream() method / signal were used,
	  otherwise pipelines can get stuck with the appsrc pushing thread
	  having shut down, but the gst_app_src_push_*() methods not
	  returning GST_FLOW_EOS to inform the caller. The appsrc
	  ends up still accepting / queueing data it won't send.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11925>

2026-06-22 12:44:39 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/tag/gstxmptag.c:
	  xmptag: Handle fractions with 0 denominator as invalid
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11922>

2026-03-30 09:44:27 -0300  L. E. Segovia <amy@centricular.com>

	* gst-libs/gst/pbutils/descriptions.c:
	* tests/check/libs/pbutils.c:
	  gdkpixbufdec: remove Sun and Andrew raster formats
	  They were both removed in 2.32.1:
	  https://github.com/GNOME/gdk-pixbuf/commit/af2fca9bba5c127ca092c3a4bf7656015d6168ad
	  Moreover, the Andrew raster format (image/x-cmu-raster) doesn't match at
	  all the Sun raster format, the former is similar to LaTeX while the
	  latter is binary.
	  As a double safety measure, let's bump the minimum gdk-pixbuf version as
	  2.32.1 was released in 2015 [1] while 2.8.0 is from 2005 [2].
	  Fixes #5004
	  [1]: https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/tags/2.32.0
	  [2]: https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/tags/GTK_2_8_0
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11901>

2026-06-14 21:13:47 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/subparse/gstsubparse.c:
	  subparse: Don't allow very small framerates for microdvd subtitles
	  Very small framerates close to 0.0 would become 0/1 and still lead to a division
	  by zero. Use 1/1000 as minimum and 1000/1 as maximum framerates for subtitles.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11852>

2026-06-14 21:47:25 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/tag/gstxmptag.c:
	  xmptag: Don't allocate -1 bytes of memory if there's only a single tag
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11853>

2026-06-15 12:38:31 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/tag/gstvorbistag.c:
	  vorbistag: Check for enough base64 data before trying to decode
	  g_base64_decode_inplace() asserts if fewer than 2 bytes are available.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11856>

2026-06-15 12:36:33 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/tag/gstvorbistag.c:
	  vorbistag: Use gsize for lengths and avoid overflows
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11856>

2026-06-12 13:27:54 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.28.4

=== release 1.28.4 ===

2026-06-12 13:19:43 +0100  Tim-Philipp Müller <tim@centricular.com>

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

2026-06-12 13:18:19 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ext/alsa/gstalsasrc.c:
	  Revert "alsa: fix deadlock during shutdown"
	  This reverts commit dd1fbc9160e5368119544394be2c16c9e57d9a22.
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11690#note_3516817

2026-06-12 12:20:36 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/pbutils/gstdiscoverer.c:
	  discoverer: Lock the DISCO_LOCK whenever accessing the streams list
	  The list is accessed from multiple threads, possibly at the same time.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11840>

2026-06-04 12:39:38 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/subparse/gstsubparse.c:
	  subparse: Avoid zero and extreme fps when parsing mdvdsub subtitles
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5068
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11810>

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

	* gst-libs/gst/tag/id3v2.c:
	* gst-libs/gst/tag/id3v2.h:
	* gst-libs/gst/tag/id3v2frames.c:
	  id3v2: Improve const-correctness and use correct size type
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11808>

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

	* gst-libs/gst/tag/id3v2frames.c:
	  id3v2: Check for enough data when reading RVA2 tags
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5067
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11808>

2026-06-04 12:15:58 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/tag/id3v2.c:
	  id3v2: Don't modify const data
	  Also actually store caps for custom ID3v2 frames in the sample.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5045
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11808>

2026-06-04 12:04:58 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/tag/gstxmptag.c:
	  xmptag: Make sure to keep the temporary array always NUL-terminated during parsing
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5066
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11806>

2026-06-04 12:04:54 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/tag/gstxmptag.c:
	  xmptag: Correctly initialize pointer to the end of the input array
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5066
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11806>

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

	* gst-libs/gst/tag/gstxmptag.c:
	  xmptag: Improve const-correctness in parser
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11806>

2026-06-02 17:52:06 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/rtp/gstrtcpbuffer.c:
	* tests/check/libs/rtp.c:
	  rtcpbuffer: Add some missing bounds checks when parsing SDES
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5047
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11796>

2026-06-02 17:51:53 +0300  Sebastian Dröge <sebastian@centricular.com>

	* tests/check/libs/rtp.c:
	  rtp: Fix various bool assertions in test
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11796>

2026-06-02 15:06:45 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* gst-libs/gst/audio/gstaudioaggregator.c:
	* tests/check/elements/audiomixer.c:
	  audioaggregator: Remove brittle conversion of in-progress buffers
	  The sinkpad converters cannot be used to re-convert the internal buffers
	  because the `converter-config` could be invalid for this conversion. For
	  example, a conflicting `mix-matrix` will cause the conversion to fail.
	  In case of the converted input buffers, just remove them. On aggregate
	  we will re-convert and re-align the same input buffer.
	  In case of the partially-written output buffer, we cannot convert them
	  without potentially causing data loss or glitches. Since ad-hoc
	  conversion is brittle, just drop the converted output buffer.
	  A more elaborate implementation could keep already-mixed input buffers
	  around in case we need to recreate the entire output buffer. However,
	  that is not the aim of this commit.
	  Co-authored-by: Sebastian Dröge <sebastian@centricular.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11775>

2026-06-03 11:09:15 +0200  Dino Spiller <dinos@axis.com>

	* gst-libs/gst/audio/audio-resampler-neon.h:
	  audio-resampler-neon: re-increment address
	  The original code contained an increment on the "a" and "b" variables
	  that has been removed by last patch, resulting in several artifacts in
	  the sound. Restored the increment, to get back to the correct behavior.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11760>

2026-06-02 17:07:49 +0100  Arthur Chan <arthur.chan@adalogics.com>

	* gst-libs/gst/pbutils/encoding-profile.c:
	  pbutils: Add NULL check for tmpcaps parsing
	  Signed-off-by: Arthur Chan <arthur.chan@adalogics.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11746>

2026-06-02 17:02:00 +0100  Arthur Chan <arthur.chan@adalogics.com>

	* gst-libs/gst/pbutils/encoding-profile.c:
	  pbutils: Fix possible null dereferene when empty string is provided
	  Signed-off-by: Arthur Chan <arthur.chan@adalogics.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11747>

2026-05-21 00:50:55 +0530  Taruntej Kanakamalla <tarun@centricular.com>

	* gst-libs/gst/sdp/gstsdpmessage.c:
	* tests/check/libs/sdp.c:
	  sdp: keep level-asymmetry-allowed in the caps
	  Looking at the caps generated from SDP, without the `level-asymmetry-allowed`` field,
	  there is no way to tell if its value is 1 or not set (i.e 0) by the remote
	  peer.
	  So retain the `level-asymmetry-allowed` field in the caps so that, it can be used
	  along with the `profile-level-id` to determine the compatible `level` values
	  during the negotiation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11727>

2026-05-24 00:53:49 +0200  Robert Mader <robert.mader@collabora.com>

	* gst-libs/gst/gl/egl/gstglmemoryegl.c:
	  gl: egl: Set TRANSFER_NEED_DOWNLOAD flag
	  Bringing _gl_mem_egl_alloc() in line with _gl_mem_pbo_alloc() and
	  ensuring glReadPixels() is used when downloading imported dmabufs.
	  Closes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/4965
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11710>

2026-05-21 15:38:50 +0200  Dino Spiller <dinos@axis.com>

	* gst-libs/gst/audio/audio-resampler-neon.h:
	  audio-resampler-neon: fix accumulated stride
	  The stride is accumulated, resulting in unintended excessive shift.
	  Modified by saving the base address to the register and successively
	  adding the strides.
	  Fixed also a missing load that was present in previous code.
	  Change-Id: Icedd56397c745b1c7603edc45a825b6a78b16b11
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11703>

2025-11-18 14:06:15 +0100  Albert Sjölund <alberts@axis.com>

	* ext/alsa/gstalsasrc.c:
	  alsa: fix deadlock during shutdown
	  Previously, due to being blocking and having no mechanism for graceful
	  shutdown, it would hang if there is no data available. Instead,
	  implement a similar mechanism as in alsasink to handle this, by using
	  snd_pcm_wait and yield.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11690>

2026-05-22 20:34:26 +0200  Robert Mader <robert.mader@collabora.com>

	* gst-libs/gst/video/gstvideodmabufpool.c:
	  videodmabufpool: Fix debug category
	  Without this define the default category is used, i.e.
	  GST_DEBUG=video-dmabuf-pool:5 doesn't work.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11677>

2026-05-15 10:46:15 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/tag/id3v2.c:
	  id3v2: Don't unnecessarily assert on size==0 when unsyncing data
	  Simply return NULL and let the callers handle it, which all handle this
	  correctly already.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11641>

2026-05-14 15:42:21 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/gl/gstglupload.c:
	  glupload: fix memleak on failure path
	  In function _udmabuf_upload_transform_caps(), the capsfeature variable
	  `passthrough` was leaked if `intersected_caps` and empty, when pad direction is
	  not GST_PAD_SINK.
	  The simplest approach would be just add `gst_caps_features_free()` before the
	  `goto out`, but it looks better to refactor a little bit the function, so two
	  common variables to both blocks of the main `if`, would have a single point of
	  deallocation.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11640>

2026-05-14 16:41:42 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: Use PLAY_ITEMS_LOCK for URI-related getter
	  The setter is using that lock.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11633>

2026-05-11 10:59:08 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/playback/gsturidecodebin.c:
	  uridecodebin: Protect missing_plugin_errors list from concurrent access
	  Otherwise this can lead to memory corruption or leaks.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11615>

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

	* gst-libs/gst/gl/gstglwindow.c:
	  glwindow: Allow setting a NULL window handle
	  Otherwise it's not possible to go back into the original state and a dangling
	  window handle might still be used by the window.
	  All our Android tutorials, for example, are setting the handle back to NULL when
	  the surface disappears and backends also seem to already handle this just fine.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11611>

2026-05-11 18:33:25 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.28.3

=== release 1.28.3 ===

2026-05-11 18:28:12 +0100  Tim-Philipp Müller <tim@centricular.com>

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

2026-04-07 13:09:24 +0100  Nirbheek Chauhan <nirbheek@centricular.com>

	* meson.build:
	  meson: Require C std gnu11 or c11
	  When using gcc or clang, gnu11 will be used, and when using MSVC c11
	  will be used which will pass /std:c11. This provides us with the
	  `restrict` keyword on all supported platforms.
	  We can do this now because we require Visual Studio 2019.
	  This feature was added in Meson 1.3
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11563>

2026-04-22 15:12:04 -0400  Dominique Leroux <dominique.p.leroux@gmail.com>

	* gst-libs/gst/gl/gstglcolorconvert.c:
	* gst-libs/gst/gl/gstglformat.c:
	  gl: add GBRA swizzle support
	  Handle GBRA in the GL video format swizzle table, and use the same GBR
	  component reorder for input and output planar RGB conversions.  This lets
	  GBRA follow the existing planar RGB reorder path instead of reaching the
	  unhandled swizzle case.
	  Fixes #5060
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11422>

2026-04-22 15:10:55 -0400  Dominique Leroux <dominique.p.leroux@gmail.com>

	* tests/check/libs/gstglcolorconvert.c:
	  gl/tests: make colorconvert meta test robust
	  Check that textoverlay is available before constructing the meta test
	  pipeline, and report parser errors from gst_parse_launch() directly.  This
	  keeps the test from continuing with a partial pipeline in environments where
	  textoverlay is not visible to the Meson test sandbox.
	  Use a bounded preroll wait so failures in the helper pipeline cannot hang the
	  whole gstglcolorconvert test binary.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11422>

2026-04-22 15:08:21 -0400  Dominique Leroux <dominique.p.leroux@gmail.com>

	* tests/check/libs/gstglcolorconvert.c:
	  gl/tests: cover planar RGB reorder conversion
	  Add focused coverage for conversions between packed RGBA and planar RGB
	  formats in gstglcolorconvert.  The test keeps planar GL inputs as one
	  GstGLMemory per texture plane, because mapping the input buffer as a
	  GstVideoFrame before conversion can collapse or otherwise alter the memory
	  layout that the converter is meant to consume.
	  The failure messages include the input format, output format, plane,
	  offset, and byte values so component-swizzle mistakes are directly
	  visible from the test log.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11422>

2026-04-23 11:12:28 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/video/video-info-dma.c:
	  libs: video: add precondition check on dma helpers
	  For not invalid fourcc and modifiers. Also, check caps object type.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11451>

2026-05-05 10:34:45 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/pbutils/gstdiscoverer.c:
	  discoverer: Take the DISCO_LOCK while parsing stream topology
	  pad-added/removed on uridecodebin can modify the structures this is iterating
	  over, which can then lead to a use-after-free if timing is very bad.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11539>

2026-04-30 23:31:12 -0300  L. E. Segovia <amy@centricular.com>

	* gst-libs/gst/audio/audio-resampler-neon.h:
	  audio-resampler-neon: fix Thumb encoding and use Clang O2 calculation for strides
	  Fixes #5075
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11491>

2026-05-03 10:43:43 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/audio/gstaudioaggregator.c:
	  audioaggregator: Don't reset samples_per_buffer when updating latency
	  There's no relation at all between these two values. Instead only reset it
	  when the output buffer duration property changes.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11487>

2026-05-03 10:41:34 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/audio/gstaudioaggregator.c:
	  audioaggregator: Don't reset samples_per_buffer unless sample rate has changed
	  The value only depends on the output-buffer-duration property and the sample
	  rate, so resetting it is unnecessary unless the rate changes.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11487>

2026-05-02 18:12:59 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/audio/gstaudioaggregator.c:
	  audioaggregator: Don't drop pending input buffers on sinkpads on srcpad caps changes
	  If there is no conversion support on the sinkpads then the subclass must be able
	  to handle the buffer independent of the srcpad caps, so dropping it is
	  unnecessary.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11483>

2026-05-01 20:31:52 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/audio/gstaudioaggregator.c:
	  audioaggregator: Don't try converting buffers on caps changes if impossible
	  If there is no conversion function then the best we can do is to just not
	  convert and drop the buffers, and then continue processing from the next
	  buffers.
	  Anything else will cause assertions.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11479>

2026-04-30 17:39:00 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* gst/playback/gstdecodebin2.c:
	  decodebin2: fix leak of endpads list on shutdown while exposing
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11470>

2026-04-21 12:07:20 +0200  Santiago Carot-Nemesio <sancane@gmail.com>

	* gst/audioresample/gstaudioresample.c:
	* tests/check/elements/audioresample.c:
	  audioresample: Fix extra samples produced at speech-to-silence transitions
	  When audiorate fills a PTS gap with GAP-flagged silence buffers and
	  these reach audioresample, the element calls push_drain() to flush
	  the FIR filter tail during the transition from non-gap to gap samples.
	  This pushes an extra buffer downstream (bypassing BaseTransform)
	  containing the filter's residual output — roughly 128 samples at 16 kHz
	  per transition.
	  Since the incoming data is silence (GAP), the filter tail is also
	  silence, so these extra samples are audibly meaningless but they break
	  sample-count accounting in downstream elements that rely on exact
	  timestamp/duration correspondence.
	  Fix this by replacing push_drain() with dump_drain() in the GAP path.
	  dump_drain() feeds the same zeros into the filter to stabilize it, but
	  discards the output instead of pushing it downstream.
	  Includes a test that feeds audiorate ! audioresample with a 140 ms
	  timestamp gap and verifies that exactly 6 output buffers are produced
	  (not 7), with correct PTS, duration, and GAP flags.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11439>

2026-04-22 16:03:15 -0400  Xavier Claessens <xclaessens@netflix.com>

	* gst-libs/gst/app/gstappsink.c:
	* gst-libs/gst/app/gstappsrc.c:
	  appsink: Allow passing NULL callbacks
	  Otherwise there is no way to stop receiving those
	  callbacks. Implementation already explicitly allows it.
	  gst_app_sink_set_simple_callbacks() already allows it too.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11431>

2026-04-22 16:02:10 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/gl/gstglimagesink.c:
	* gst-libs/gst/gl/gstglcolorconvert.c:
	  opengl: Fix glcolorconvert vertical flip issue on crop
	  The same crop vertices was applied to both glimageisnk and glcolorconvert
	  despite the image orientation being opposite. To avoid more errors in the
	  future, simply multiply the texture coordinate by their cropped size. This allow
	  having exactly the same code in both element.
	  Fixes #5061
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11413>

2026-04-20 09:23:31 +0200  Edward Hervey <edward@centricular.com>

	* gst-libs/gst/tag/id3v2.c:
	* gst-libs/gst/tag/id3v2.h:
	  id3v2: Check valid frame sizes more
	  An empty frame data size is invalid and should be ignored.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5049
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11380>

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

	* gst/subparse/samiparse.c:
	  samiparse: Error out if there's more than 64 levels of SAMI element nesting
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11362>

2026-04-13 20:08:21 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/subparse/samiparse.c:
	  samiparse: Skip lines with invalid element/tag names or attribute names
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11362>

2026-04-13 20:04:07 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/subparse/samiparse.c:
	  samiparse: Skip comment elements, DOCTYPE, [CDATA etc
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11362>

2026-04-13 19:50:25 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/subparse/samiparse.c:
	  samiparse: Truncate HTML context buffer when resetting the context too
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11362>

2026-04-13 19:31:20 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/subparse/samiparse.c:
	  samiparse: Improve const-correctness and don't modify const input string
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11362>

2026-04-13 19:25:13 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/subparse/gstsubparse.c:
	  subparse: Free error if stripping pango markup fails
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11362>

2026-04-13 19:23:04 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/subparse/gstsubparse.c:
	  subparse: Use a GString to accumulate text results from GMarkupParser
	  Repeated g_strconcat() is unnecessarily inefficient.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11362>

2026-04-13 20:54:18 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/tag/gstexiftag.c:
	  exiftag: Use a hashtable instead of a linked list for storing the pending tags
	  This considerably speeds up parsing of huge exif chunks.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11364>

2026-04-16 15:38:40 +0100  Arthur Chan <arthur.chan@adalogics.com>

	* gst/subparse/qttextparse.c:
	  subparse: Fix memory leakage for fgcolor and bgcolor
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11359>

2026-04-11 15:39:47 +0100  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/video/gstvideodmabufpool.c:
	  videodmabufpool: Break ref cycle between the pool and its thread
	  The GThread stored in the pool was taking a strong ref of the pool itself, thus
	  preventing full disposal later on and introducing several memory leaks.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11337>

2026-04-11 16:44:05 +0200  Edward Hervey <edward@centricular.com>

	* gst-libs/gst/tag/id3v2.c:
	  id3v2: Add input validation and refactor id3v2_ununsync_data
	  The ID3v2 specification uses data unsynchronisation to prevent 0xff 0x00
	  sequences from being mistaken for sync bytes. The ununsync_data() function
	  removes this protection by replacing 0xff 0x00 with 0xff bytes.
	  The function previously accepted any pointer without validation, risking
	  crashes on NULL inputs. The pointer-based iteration was also harder to
	  follow and more error-prone than index-based access.
	  The loop now uses indices instead of pointer arithmetic, making the bounds check
	  and byte-skipping logic clearer.  Providing invalid inputs is a programming
	  error.  on error.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11320>

2026-04-11 10:38:10 +0200  Edward Hervey <edward@centricular.com>

	* gst-libs/gst/app/gstappsrc.c:
	  appsrc: Fix dropped counting with bufferlist
	  * buflist is the incoming bufferlist (and not the one we are dropping)
	  * buflist could be NULL
	  Instead, properly use the actual item buffer list we are dropping
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11312>

2026-04-09 11:51:38 +0200  Edward Hervey <edward@centricular.com>

	* gst-libs/gst/tag/gstexiftag.c:
	  exiftag: Check denominator of fractions are valid
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11293>

2026-04-09 11:36:17 +0200  Edward Hervey <edward@centricular.com>

	* gst-libs/gst/tag/id3v2.c:
	  id3v2: Prevent undefined behaviour when shifting
	  Unless specified, operations on types smaller than `int` are promoted
	  to (signed) int. That would result in `0xff << 24` being a negative
	  value (highest bit set).
	  Instead, make it clear by casting to a guint.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11293>

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

	* meson.build:
	  Back to development after 1.28.2

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