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