=== release 1.28.7 ===

2026-09-07 20:11:13 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst-plugins-bad.doap:
	* meson.build:
	  Release 1.28.7

2026-09-02 17:52:16 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* ext/vulkan/vkav1dec.c:
	* ext/vulkan/vkvp9dec.c:
	  vulkan(av1,vp9)dec: set access NONE at buffer pool allocation parameters
	  Fixing VUID 03915 as the decoding queue might not have transfer
	  capabilities, see anv driver.
	  See #7165
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12417>

2026-09-03 14:28:18 -0400  Thibault Saunier <tsaunier@igalia.com>

	* tests/validate/autovideoconvert/renegotiate.validatetest:
	* tests/validate/codectimestamper/h264_propagate_caps.validatetest:
	* tests/validate/opencv/cvtracker.validatetest:
	* tests/validate/testsrcbin/caps_spec.validatetest:
	* tests/validate/vtenc/vtenc_h264.validatetest:
	* tests/validate/vtenc/vtenc_h264_b_frames.validatetest:
	* tests/validate/vtenc/vtenc_h265.validatetest:
	* tests/validate/vtenc/vtenc_h265_b_frames.validatetest:
	  validate: Reindent all validatetest files
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12343>

2026-03-03 15:02:23 +0000  Thibault Saunier <tsaunier@igalia.com>

	* tests/validate/autovideoconvert/renegotiate.validatetest:
	* tests/validate/codectimestamper/h264_propagate_caps.validatetest:
	* tests/validate/opencv/cvtracker.validatetest:
	* tests/validate/testsrcbin/caps_spec.validatetest:
	* tests/validate/vtenc/vtenc_h264.validatetest:
	* tests/validate/vtenc/vtenc_h264_b_frames.validatetest:
	* tests/validate/vtenc/vtenc_h265.validatetest:
	* tests/validate/vtenc/vtenc_h265_b_frames.validatetest:
	  validateflow: auto-derive directories from test file path
	  Allow validateflow configs to be written as proper nested structures
	  instead of requiring the $(validateflow) variable expansion:
	  configs = {
	  [validateflow, pad=sink:sink, buffers-checksum=true],
	  }
	  instead of:
	  configs = {
	  "$(validateflow), pad=sink:sink, buffers-checksum=true",
	  }
	  When expectations-dir or actual-results-dir are not explicitly set,
	  validate_flow_override_new() now derives them from the __filename__
	  metadata field (already attached to each config structure by the
	  parser). This mirrors the path computation done in
	  gst_validate_structure_set_variables_from_struct_file().
	  The $(validateflow) variable and the old string syntax remain fully
	  supported for backward compatibility.
	  Port all existing .validatetest files to the new syntax.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12343>

2026-08-08 12:12:09 +0200  Mark Nauwelaerts <mnauw@users.sourceforge.net>

	* gst/mpegdemux/gstmpegdemux.c:
	  mpegdemux: restore gap sending
	  Gap logic was ported from tsdemux in commit 1b762ba0129610f742b9855e435bce5444a4d553.
	  However, gap_ref_buffers was never updated, so it remains 0 and would therefore
	  prevent sending gap events on a stream once it sent a single buffer.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12400>

2026-09-01 20:10:33 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/hip/gsthipstream.cpp:
	  hipstream: Return actual device_id instead of vendor from device_id getter
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12394>

2026-09-01 14:31:58 +0200  Edward Hervey <edward@centricular.com>

	* gst/pnm/gstpnmutils.c:
	* tests/check/elements/pnm.c:
	  pnmdec: Protect against bogus dimensions headers
	  Fixes https://oss-fuzz.com/testcase-detail/4567215417131008
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12390>

2026-04-16 12:33:55 +0200  Pablo García <pgarcia@fluendo.com>

	* gst/mpegtsdemux/tsdemux.c:
	  tsdemux: Add 'stream-format' field for AC-4 caps
	  According to Annex G of the AC-4 spec, the syncframe is an optional
	  layer for encapsulating AC-4 raw frames. This demuxer always outputs
	  syncframes, but the AC-4 parser/decoder needs to know.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12371>

2026-08-29 21:42:48 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3d12/gstd3d12converter-unpack.cpp:
	* gst-libs/gst/d3d12/gstd3d12stagingmemory.h:
	  d3d12: Fix copy-paste typos
	  Fix copy-paste typos in unpack code and staging memory header
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12368>

2026-07-04 18:02:56 +0200  Antonio Rojas <arojas@archlinux.org>

	* ext/opencv/gstcameracalibrate.cpp:
	* ext/opencv/gstfaceblur.h:
	* ext/opencv/gstfacedetect.h:
	* ext/opencv/gsthanddetect.h:
	* ext/opencv/gstsegmentation.cpp:
	* gst-libs/gst/opencv/meson.build:
	  opencv: Support OpenCV 5
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12363>

2026-08-28 13:08:08 +0900  Seungha Yang <seungha@centricular.com>

	* sys/hip/gsthipmemorycopy.cpp:
	  hipmemorycopy: Add missing ifdef guard
	  All the code in gst_hip_memory_copy_before_transform() requires
	  GstCuda to be enabled
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12361>

2026-08-23 12:15:51 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3d12/gstd3d12cmdqueue.cpp:
	  d3d12cmdqueue: Fix deadlock during GC
	  Release completed GC data without lock taken since
	  notify can acquire other locks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12353>

2026-08-12 14:31:34 +0900  Seungha Yang <seungha@centricular.com>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: Fix keyframe detection
	  According to ST 377-1:2019, 11.2.3, PosTableIndex in
	  Delta Entry Array specifies temporal reordering and is not related
	  to the random access flag in an Index Entry.
	  As it's already done in the keyframe search code above, always
	  respect the 0x80 random access flag when determining whether an
	  index entry is a keyframe
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12324>

2026-08-21 20:26:02 +0900  Seungha Yang <seungha@centricular.com>

	* sys/hip/meson.build:
	  hip: Fix hipcc detection on Windows with HIP SDK 7.x
	  The hipcc compiler binary name was changed at some point between
	  6.x and 7.x. Try to find hipcc.exe too
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12332>

2026-06-02 12:54:33 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* ext/onnx/gstonnxinference.c:
	* gst-libs/gst/analytics/modelinfo.c:
	  onnxinference: fix dead lock with wrong model file
	  If the model file is not reachable, error out on resource error and
	  release the object lock before to avoid dead lock from
	  GST_ELEMENT_ERROR.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12329>

2026-08-17 12:49:02 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: drop redundant status cleanup in output loop
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12329>

2026-08-18 12:48:42 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/androidmedia/gstamc.c:
	* sys/androidmedia/gstamc.h:
	* sys/androidmedia/gstamcvideodec.c:
	* sys/androidmedia/gstamcvideoenc.c:
	  amc: Don't set the Hardware class in metadata for sw video codecs
	  This is required for decodebin and apps to be able to detect when hw
	  codecs or sw codecs are being used.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12327>

2026-06-14 22:58:02 +0900  masa-iwm <masa.iwm@gmail.com>

	* sys/dwrite/gstdwritebaseoverlay.cpp:
	  dwritebaseoverlay: Fix assertion 'G_VALUE_HOLDS_UINT (value)'
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12323>

2026-08-11 17:03:45 +0900  masa-iwm <37230118+masa-iwm@users.noreply.github.com>

	* sys/d3d12/gstd3d12dxgicapture.cpp:
	  d3d12screencapturesrc: Fix out-of-bounds access with monochrome cursors
	  Fixed an issue where attempting to capture monochrome cursors,
	  such as high-contrast cursors, resulted in an out-of-bounds access.
	  The code for d3d11screencapturesrc was correct,
	  and the access range has now been aligned with it.
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5259
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12320>

2026-08-10 18:15:14 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/hip/meson.build:
	  hip: Add missing API version suffix in library filename
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5245
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12299>

2026-08-13 10:46:24 +0900  Seungha Yang <seungha@centricular.com>

	* ext/onnx/gstonnxinference.c:
	  onnx: Fix nullptr dereference on ORT init failure
	  Error out if failed to get the OrtApi object
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12295>

2026-08-06 11:46:33 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/jpegformat/gstjpegparse.c:
	  jpegparse: Read app0 id in a host-endianness-independent way
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12259>

2026-08-06 10:55:11 +0800  Lei Zhen <leo.zhen@netint.cn>

	* gst/jpegformat/gstjpegparse.c:
	  jpegparse: Fix byte order of JFIF density fields
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12259>

2026-08-03 17:48:41 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/tensordecoders/gstssdtensordec.c:
	  ssdtensordec: The classes were off by one
	  The first reported class is class 1, but that's at index 0 in the labels file.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12256>

2026-08-05 13:04:46 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.28.6

=== release 1.28.6 ===

2026-08-05 12:59:39 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst-plugins-bad.doap:
	* meson.build:
	  Release 1.28.6

2026-07-08 17:05:14 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ext/openjpeg/gstopenjpegdec.c:
	  openjpegdec: Clamp x0/x1/y0/y1 to the available frame size in stripe mode
	  While y0/y1 were already clamped, the lack of clamping x0/x1 allowed caps to
	  specify a different size than the actual frame which could then lead to reading
	  or writing too many bytes.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12246>

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

	* ext/openjpeg/gstopenjpegdec.c:
	  openjpegdec: Use gsize for strides instead of gint
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12246>

2026-07-07 15:22:34 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ext/openjpeg/gstopenjpeg.h:
	* ext/openjpeg/gstopenjpegdec.c:
	  openjpegdec: Fix some typos in error messages
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12246>

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

	* ext/openjpeg/gstopenjpegdec.c:
	  openjpegdec: Unmap input/output buffers in error cases
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12246>

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

	* ext/openjpeg/gstopenjpegdec.c:
	  openjpegdec: Only use YOsiz and Ysiz in striped mode and clamp to caps height
	  We assume that in striped mode the smallest YOsiz of a frame is always 0.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5187
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12246>

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

	* ext/openjpeg/gstopenjpegdec.c:
	  openjpegdec: Negotiate with width/height of the actual image instead of upstream caps
	  In non-striped mode. This allows us to not rely on the upstream caps being
	  correct and work from the data we have anyway.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12246>

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

	* gst/adpcmdec/adpcmdec.c:
	  adpcmdec: Fix IMA ADPCM input size check to match with the actual code
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5231
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12245>

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

	* gst/adpcmdec/adpcmdec.c:
	  adpcmdec: Fail negotiation if block_align is not provided
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12245>

2026-07-13 11:04:28 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/codecparsers/gsth265parser.c:
	  h265parser: Fix out-of-bounds writes in RPS parsing
	  Add missing bounds checks.
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5196
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12239>

2026-07-18 16:19:17 +0200  Tim-Philipp Müller <tim@centricular.com>

	* ext/bz2/gstbz2dec.h:
	* ext/bz2/gstbz2enc.h:
	* ext/dtls/gstdtlsagent.h:
	* ext/dtls/gstdtlscertificate.h:
	* ext/dtls/gstdtlsconnection.h:
	* ext/resindvd/rsndec.h:
	* ext/ttml/gstttmlrender.h:
	* ext/wayland/gstwaylandsink.h:
	* gst/debugutils/gsttestsrcbin.c:
	* gst/pnm/gstpnmdec.h:
	* gst/pnm/gstpnmenc.h:
	* gst/transcode/gst-cpu-throttling-clock.h:
	* sys/kms/gstkmsallocator.h:
	* sys/kms/gstkmsbufferpool.h:
	* sys/kms/gstkmssink.h:
	* sys/va/gstvafilter.h:
	  gst-plugins-bad: remove incorrect G_GNUC_CONST annotation for get_type() functions
	  G_GNUC_CONST must only be used for functions that don't modify global state.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12157>

2026-06-19 10:49:57 +0100  Charles <charles05@canonical.com>

	* ext/dtls/gstdtlsconnection.c:
	  dtls: make BIO read signal retry instead of EOF when no data
	  The DTLS plugin was using OpenSSL through a custom memory BIO registered
	  via BIO_meth_set_read. When the handshake is driven and no incoming datagram is
	  queued, the bio_method_read callback returned 0 without setting the read-retry
	  flag, while the BIO's BIO_CTRL_EOF control reports "not at EOF". This is invalid
	  usage, a BIO that has no data available right now must signal retry, not return
	  0.
	  Up to and including OpenSSL 3.5.x this happened to be tolerated: the empty read
	  surfaced as SSL_ERROR_SYSCALL with an empty error queue (errno 0), which
	  gstdtlsconnection's handle_error explicitly ignores and retries.
	  OpenSSL 4.0.0 stopped allowing it. Commit
	  be42447469dcccc68b7e115c7947e3c25124f3f2 "Fix the converters between the old and
	  new BIO_read functions to handle end-of-file state properly"
	  (PR openssl/openssl#29290, first released in 4.0.0) reworked bread_conv: when an
	  old-style read returns 0 and BIO_CTRL_EOF reports not-at-EOF it now sets
	  BIO_FLAGS_AUTO_EOF, and BIO_eof returns 1 whenever that flag is set.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12191>

2026-07-29 15:20:40 +0900  Seungha Yang <seungha@centricular.com>

	* gst/closedcaption/gsth265reorder.c:
	  h265seiinserter: Fix HEVC with alpha stream handling
	  Ignore NAL units with non-zero nuh_layer_id, as h265decoder does,
	  applying the same change as
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11144
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12189>

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

	* ext/resindvd/gstmpegdemux.c:
	  resindvd: mpegpsdemux: Port parse_psm() to byte readers
	  Apply 948b87bf15 here too.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12183>

2026-07-17 11:13:44 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ext/resindvd/gstmpegdemux.c:
	  resindvd: mpegpsdemux: Port over byte reader changes from the main plugin
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12183>

2026-07-16 15:34:02 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/mpegdemux/gstmpegdemux.c:
	  mpegpsdemux: Use byte readers for parsing data and make sure enough data is available
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12183>

2026-07-21 15:35:44 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* meson.build:
	  meson: Make the g-ir-scanner init section consistent across modules
	  We weren't disabling the registry correctly due to typos and missing
	  env vars.
	  This speeds up introspection builds considerably on Windows.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12163>

2026-07-21 15:32:45 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst/mpegtsdemux/tsdemux.c:
	  tsdemux: Don't assert if stream pad was not yet created
	  Fix an assert when a continuity missmatch is detected for a stream for which its
	  pad is not yet exposed.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12162>

2026-07-20 16:51:43 +0900  Jihoon Lee <ejihoon.lee@lge.com>

	* gst-libs/gst/wayland/gstwlvideobufferpool.c:
	  wlvideobufferpool: Fix memory leak in gst_wl_video_buffer_pool_alloc_buffer
	  Fix dma_mem leak on buffer too small path in gst_wl_video_buffer_pool_alloc_buffer()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12160>

2026-07-14 04:01:10 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Don't register the hw-only variant on simulators
	  Simulators *never* expose a hardware decoder in the VT APIs. It is
	  always a software decoder, even if the implementation might be backed
	  by a hardware decoder on the host system.
	  This was tested on iOS and tvOS Simulators on an M4 Mac Mini, M1 Mac
	  Mini, and a 2014 Intel Mac Mini.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12112>

2026-07-16 21:31:45 +0200  Diego Nieto <dnieto@fluendo.com>

	* gst-libs/gst/codecparsers/gsth266parser.c:
	  h266parser: fix SEI parsing error handler
	  Clear the partially parsed SEI message in case of an error to
	  prevent memory leaks and avoid processing stale data.
	  Fixes #5219
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12132>

2026-04-10 19:50:06 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/tflite/gsttfliteinference.c:
	  tflifeinference: Fix leaks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11404>

2026-07-13 18:47:16 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/dvdspu/gstspu-vobsub.c:
	  dvdspu: Fix too strict off-by-one bounds check in a couple of places
	  This prevented reading the last byte in some cases.
	  Also add a missing bounds check to a debug function that is not compiled in by
	  default, so is actually not really important at all.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12126>

2026-07-16 13:45:51 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/pnm/gstpnmdec.c:
	  pnmdec: Fix out-of-bounds write with bitmap PNM files and non-multiple-of-8 resolutions
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12124>

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

	* gst/pnm/gstpnmdec.c:
	  pnmdec: Use correct return value for negotiation failure
	  This returns GstFlowReturn and FALSE equals to GST_FLOW_OK.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12124>

2026-07-16 13:31:58 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/pnm/gstpnmdec.c:
	  pnmdec: Don't flush more data from the adapter than is available
	  Instead wait for future data.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12124>

2026-07-16 13:31:26 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/pnm/gstpnmdec.c:
	  pnmdec: Don't assert if creating the output state fails
	  This can happen e.g. if the resolution is too large for the given format.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12124>

2026-07-08 19:30:19 +0800  He Junyan <junyan.he@intel.com>

	* sys/va/gstvavp9enc.c:
	  va: vp9enc: Mark super frame as corrupt when any frame is corrupt
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12123>

2026-07-08 19:24:14 +0800  He Junyan <junyan.he@intel.com>

	* sys/va/gstvaav1enc.c:
	  va: av1enc: Mark TU as corrupt when any frame is corrupt
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12123>

2026-07-08 15:02:16 +0200  Maksim Nikolaev <maksim.nikolaev.dev@gmail.com>

	* sys/va/gstvabaseenc.c:
	* sys/va/gstvaencoder.c:
	* sys/va/gstvaencoder.h:
	  va: recover from corrupt or overflowing coded buffers
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12123>

2026-07-08 15:01:42 +0200  Maksim Nikolaev <maksim.nikolaev.dev@gmail.com>

	* sys/va/gstvaav1enc.c:
	* sys/va/gstvabaseenc.c:
	* sys/va/gstvabaseenc.h:
	* sys/va/gstvah264enc.c:
	* sys/va/gstvah265enc.c:
	* sys/va/gstvavp8enc.c:
	* sys/va/gstvavp9enc.c:
	  va: size the coded buffer for the CBR bitrate budget
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12123>

2026-07-13 15:24:31 +1000  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/vulkan/gstvktrash.c:
	  vulkantrash: avoid reinitializing trash objects multiple times
	  Fixes a leak of miniobject private data.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12117>

2026-07-13 16:02:34 +1000  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/vulkan/gstvkformat.c:
	  vulkan/format: add 3-plane i420 format
	  mesa/amd chooses this format for I420.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12117>

2026-07-16 09:00:50 +1000  Jan Schmidt <jan@centricular.com>

	* sys/d3d11/gstd3d11winrtcapture.cpp:
	  d3d11winrtcapture: Fix incorrect capture height
	  Fix a typo where capture_height would not get properly
	  assigned. Fixes invalid copy region errors.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12115>

2026-07-14 18:15:07 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* docs/meson.build:
	  docs: Fix build when mse library is disabled
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12113>

2026-07-08 10:30:35 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/videoparsers/gstvc1parse.c:
	  vc1parse: Set has_timing_info() / syncable() in start()
	  The values are reset in PAUSED->READY so setting them only in instance init is
	  not enough.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12102>

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

	* gst/pcapparse/gstirtspparse.c:
	  irtspparse: Set min frame size in start()
	  The value is reset in PAUSED->READY so setting it only once in instance init is
	  not enough.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12102>

2026-07-10 09:24:27 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/gtk/gstgtkwaylandsink.c:
	* ext/wayland/gstwaylandsink.c:
	  waylandsink: Omit reporting drop frame on preroll
	  These sink are a bit special, since they report dropped frame on the next
	  incoming frame. If the sink queue is full when the paused state is reached,
	  the preroll during paused to playing transition will report a drop, which
	  leads to base sink aborting the transition.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12037>

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

	* gst/videoparsers/gstdiracparse.c:
	* gst/videoparsers/gsth263parse.c:
	  h263parse: diracparse: Sync baseparse configuration with other compressed video parsers
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12096>

2026-07-08 15:41:59 +0200  Albert Sjölund <alberts@axis.com>

	* ext/webrtc/gstwebrtcbin.c:
	  webrtcbin: fix possible floating leak for post-aux
	  The behaviour is different between aux-sender and post-aux-sender. There
	  is a conditional ref_sink if the element is floating in one but not the
	  other. As the element is afterwards added to a bin sink the element
	  before adding.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12085>

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

	* meson.build:
	  Back to development after 1.28.5

=== release 1.28.5 ===

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

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

2026-06-26 11:45:51 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/librfb/rfbdecoder.c:
	  rfbsrc: Read the correct number of bytes for color values
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12077>

2026-06-26 11:19:41 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/librfb/rfbdecoder.c:
	  rfbsrc: Use correct bpp for copying hextile data
	  Fix provided by Clouditera Security, who also reported this.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5173
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12077>

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

	* ext/dtls/gstdtlsconnection.c:
	  dtlsconnection: Allocate large enough buffer for the peer certificate subject DN
	  Fix provided by Clouditera Security.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5172
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12076>

2026-06-25 11:18:53 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ext/webrtc/webrtcsdp.c:
	  webrtcsdp: Fix inverted fingerprint existence logic
	  Fix provided by Clouditera Security, who also reported this.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5171
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12075>

2026-06-24 11:00:43 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/closedcaption/ccutils.c:
	* gst/closedcaption/gstccconverter.c:
	  ccconverter: Use truncated length when converting CEA608 raw to CEA708 CDP
	  Also make sure no caller passes too much data to cc_buffer_push_separated()
	  and truncate internally to the absolute maximum.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5161
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12074>

2026-06-24 09:58:28 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/codecparsers/gstvp9parser.c:
	  vp9parser: Check that enough data is available for parsing superframe info
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5160
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12073>

2026-06-22 14:02:28 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/codecparsers/gsth266parser.c:
	  h266parser: Check bounds before writing to CTU entrypoint array
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5156
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12070>

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

	* gst-libs/gst/codecparsers/gsth266parser.c:
	  h266parser: Avoid out-of-bounds read if too many exp slices are signalled
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5155
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12069>

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

	* gst-libs/gst/codecparsers/gsth266parser.c:
	  h266parser: Fix typos in warning messages
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12069>

2026-06-17 11:04:05 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/videoparsers/gstmpeg4videoparse.c:
	  mpeg4videoparse: Ensure enough config data is available before extracting profile/level
	  Patch provided by Ramesh Adhikari, who also reported this.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5110
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12057>

2026-07-03 08:30:32 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3d12/gstd3d12device.cpp:
	  d3d12: Fix command list leak
	  Unref command list after use
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5200
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12006>

2026-07-01 16:14:55 +0900  amy.ko <amy.ko@lge.com>

	* sys/v4l2codecs/gstv4l2decoder.c:
	  gstv4l2decoder: Fix media_fd leak when video_fd open fails
	  When opening v4l2 decoder, media_fd and video_fd are opened.
	  However, there is no code to close media_fd when opening
	  video_fd fails. This results in a media_fd leakage.
	  Close media_fd by calling gst_v4l2_decoder_close() in the
	  video_fd error path.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11999>

2026-06-15 15:40:17 +0200  Christopher Meltzer <christme@axis.com>

	* ext/curl/gstcurlsmtpsink.c:
	  gstcurlsmtpsink: Use the correct content-type if known
	  Previously gstcurlsmtpsink put "application/octet-stream" as the
	  content-type. This caused mail clients to save the content to a file
	  instead of displaying it.
	  Now we instead use the content-type of the sink if it is known,
	  otherwise we use "application/octet-stream" as the content type.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11991>

2026-07-01 15:21:44 +0100  Walisiewicz <alexei.walisiewicz@v-nova.com>

	* gst-libs/gst/codecparsers/gsth266parser.c:
	  h266parser: Heap-allocate parameter sets before parse to avoid stack overflow
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11990>

2026-07-01 09:57:38 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* gst/videoparsers/gsth264parse.c:
	* gst/videoparsers/gsth265parse.c:
	* gst/videoparsers/gstmpegvideoparse.c:
	* gst/videoparsers/gstvideoparseutils.c:
	* gst/videoparsers/gstvideoparseutils.h:
	  videoparsersbad: Always clear LCEVC enhancement data when resetting frame
	  There is no need to keep the LCEVC data from an old frame as the data is only
	  useful for the frame it is associated with. This also fixes a memleak when
	  running gst-discoverer-1.0.
	  Fixes #5192
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11987>

2026-06-26 17:23:39 +1000  Matthew Waters <matthew@centricular.com>

	* ext/webrtc/gstwebrtcbin.c:
	* ext/webrtc/transportreceivebin.c:
	* ext/webrtc/transportreceivebin.h:
	* ext/webrtc/utils.c:
	* ext/webrtc/utils.h:
	* ext/webrtc/webrtcsdp.c:
	* ext/webrtc/webrtcsdp.h:
	  webrtcbin: validate remote fingerprints match peer dtls certificate
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11963>

2026-06-26 16:10:40 +1000  Matthew Waters <matthew@centricular.com>

	* ext/webrtc/transportreceivebin.c:
	* ext/webrtc/transportreceivebin.h:
	  webrtc/transportreceivebin: remove unused rt(c)p probe fields
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11963>

2026-06-26 14:53:54 -0400  Xavier Claessens <xclaessens@netflix.com>

	* ext/qroverlay/gstqroverlay.c:
	  qroverlay: Fix use after free bug
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11960>

2026-06-23 19:46:32 +1000  Jan Schmidt <jan@centricular.com>

	* gst/mpegtsmux/tsmux/tsmux.c:
	  mpegtsmux: Always assign PTS to output buffers in CBR mode
	  !6380 introduced a regression where some output buffers
	  might not receive a PTS in CBR mode
	  Fixes #5151
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11955>

2026-06-24 17:41:28 +0900  Jeehyun Lee <jeehyun.lee@lge.com>

	* gst/rtp/gstrtpsink.c:
	  rtpsink: fix mutex not unlocked on invalid URI in set_property
	  If gst_uri_from_string() returns NULL, the function breaks out of the
	  switch without calling GST_RTP_SINK_UNLOCK, leaving the mutex locked.
	  Any subsequent call to set_property on the same object will deadlock.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11949>

2026-06-17 10:03:36 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/codecparsers/gsth266parser.c:
	  h266parser: Check aspect ratio index against lookup table length
	  Patch provided by Ramesh Adhikari, who also reported this.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5109
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11942>

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

	* gst/videoparsers/gsth264parse.c:
	  h264parse: Check for enough slice header data being available
	  Patch provided by Ramesh Adhikari, who also reported this.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5108
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11941>

2026-06-19 15:42:52 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/va/gstvasurfacecopy.c:
	  va: surfacecopy: get surface's image in `gst_va_surface_copy`
	  Since 2021 the function `gst_va_surface_copy()` has been incomplete, since even
	  the image is created, it wasn't retrieved from the surface.
	  It went unnoticed on iHD Intel platforms because `vaCopy()` was used, but not in
	  Mesa.
	  The fix is just to actually retrieve the image from the source surface.
	  Also, left a notice that derived could be used and it could be more efficient in
	  Mesa after the fix is merged, but we would use the mechanism to check the
	  driver's implementation _and_ version.
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/3906
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11935>

2026-06-18 10:10:27 +0000  Christoph Seitz <christoph.seitz@infineon.com>

	* ext/avtp/gstavtpbasedepayload.c:
	  avtp: Correct ptime generation from avtp timestamp
	  Fix the calculation of the presentation time from the avtp by
	  properly adjusting for the rollover of the reference or avtp
	  timestamp. The adjustment is needed whenever the distance
	  between there reference timestamp and avtp timestamp is lager
	  then half the avtp timestamp size.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11934>

2026-06-15 19:50:30 +1000  Jan Schmidt <jan@centricular.com>

	* tests/check/elements/netsim.c:
	  netsim: Fix racy test failures
	  This test stress tests netsim by switching state
	  rapidly while sending buffers and events through.
	  That means that events sometimes land on a flushing pad
	  and don't get sent, yielding sticky event errors
	  that need filtering away.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11933>

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

	* gst/pnm/gstpnmdec.c:
	* gst/pnm/gstpnmutils.h:
	  pnmdec: Avoid overflows when calculating frame sizes
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11926>

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

	* gst/videoparsers/gsth264parse.c:
	* gst/videoparsers/gsth265parse.c:
	  h2654parse: Unset GValue in every code path
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11921>

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

	* gst-libs/gst/codecparsers/gsth266parser.c:
	  h266parser: Use long bit skipping function for potentially large values
	  The other one is going to assert for more than 64 bits.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11920>

2026-03-26 17:08:26 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/codecs/gsth265decoder.c:
	  h265decoder: Fix HEVC with alpha decoding
	  HEVC multi-layer streams such as HEVC with alpha contain slices
	  with non-zero nuh_layer_id that should be handled differently, but
	  the base class does not distinguish slices belonging to different
	  layers.
	  Until proper multi-layer decoding support is implemented, ignore
	  any NAL units with non-zero nuh_layer_id as specified by the spec.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11916>

2026-06-20 17:40:00 +1000  Jan Schmidt <jan@centricular.com>

	* gst/mpegtsdemux/mpegtspacketizer.c:
	* tests/check/elements/mpegtsdemux.c:
	* tests/files/test_pcr_rollover.ts:
	  mpegtsdemux: Improve PTS rollover handling in ignore-pcr mode
	  When ignore-pcr is true, timestamp epoch detection could get confused
	  by PTS jumping around as we cross the rollover threshold - either from
	  PTSes being out of order in a stream, or from conversions across the
	  different streams in a mux. This adds handling for the PTS crossing
	  backward into the previous epoch correctly, without accidentally
	  jumping a full 26-hour PCR epoch into the future.
	  Add a test file and a unit test that tsdemux correctly
	  processes PCR/PTS rollover when in ignore-pcr=true mode.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11905>

2026-06-19 12:13:15 -0400  Dominique Leroux <dominique.p.leroux@gmail.com>

	* sys/androidmedia/gstamcvideodec.c:
	  amcviddec: Fix double-free happening when codec gets reconfigured
	  In basic usage (configure -> decode -> destroy), freeing codec_data and
	  leaving the pointer dangling is harmless. But if the decoder is reconfigured
	  after gst_amc_video_dec_stop (as opposed to getting destroyed), then
	  existing logic will interpret the non-null codec_data as being valid and
	  cause use-after-free, further leading to freeing it (again) when the codec
	  is stopped a second time.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11902>

2026-06-19 08:39:36 +0200  François Laignel <francois@centricular.com>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: fix remaining offsets index entry insertion call site
	  ... which I missed as part of:
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11882
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11892>

2026-06-18 15:20:58 +0200  François Laignel <francois@centricular.com>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: fix essence track offsets array population
	  The essence track offsets array provides a way to get access to an essence
	  track even when the container doesn't provide an index. It is populated on the
	  go as entry are being processed and checked in priority when looking for an
	  entry.
	  Code paths adding entries to the offsets array assumed a sequentially
	  increasing sequence, which didn't comply with seeks nor reverse playback.
	  Most of the time, this would remain unnoticed since other methods would allow
	  retrieving the entry.
	  However, an assertion could fail in the following situation: a bogus package
	  for which one track presents one additional entry compared to the other tracks
	  and this additional entry is not included in the index table. If a seek was
	  performed the first time the stream was played and the stream reached the EOS,
	  the additional entry (not part of the index and not part of the offsets) would
	  lead to executing a code path asserting this entry's position should be <= the
	  offsets len, following the assumption that all entries would be added
	  sequentially. But because of the seek, the regular code path hadn't added some
	  of the post seek entries (because they were not the next expected entries),
	  hence an assertion failure on the last entry.
	  This commit adds all new entries to the offsets array as soon as they are found
	  and whatever their arrival position. The offsets array is now created with the
	  essence track instead of creating it on the first entry. Therefore, it is no
	  longer needed to check whether it is valid.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11892>

2026-06-17 16:23:53 +0200  François Laignel <francois@centricular.com>

	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfdemux.h:
	  mxdemux: index entry: use intialized
	  ... instead of the offset != 0 sentinel.
	  A previous version of the code used 0 as an offset sentinel to state & check the
	  entry was initialized or not. Then the field `initialized` was added, but some
	  parts of the code keep checking the sentinel.
	  This commit relies on `initialized` which makes it clearer what the intention is.
	  It also makes sure code is capable of dealing with gaps.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11892>

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

	* gst/rtmp2/rtmp/rtmpclient.c:
	  rtmp2: Remove socket timeout after handshake completes
	  A server might send us nothing when we're publishing (rtmp2sink), not
	  even RTMP acknowledgement messages, which causes fatal timeouts as of
	  20adfe5659f8.
	  See: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8989#note_3441479
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11890>

2025-05-16 12:47:35 +0200  Piotr Brzeziński <piotr@centricular.com>

	* gst/rtmp2/rtmp/rtmpconnection.c:
	  rtmp2: Don't retry on G_IO_ERROR_TIMED_OUT
	  Retrying forever on a timeout made rtmp2sink prone to hanging if the server misbehaves.
	  When that happens, rtmp2sink becomes impossible to stop/EOS by normal means.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11889>

2026-06-16 10:30:54 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/vmnc/vmncdec.c:
	  vnmdec: Avoid integer overflows when rectangle positions and sizes
	  Patch based on a patch by Junyi Liu, who also reported this.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5107
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11876>

2026-06-16 09:30:00 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/pcapparse/gstpcapparse.c:
	  pcapparse: Add missing bounds checks to ensure packets are large enough
	  Patch based on a patch by Junyi Liu, who also reported this.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5106
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11874>

2026-06-15 17:57:00 +0200  Tomas Granath <tomas.granath@outlook.com>

	* gst/mpegdemux/gstmpegdemux.c:
	  mpegpsdemux: Release stream lock when seeking fails
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11871>

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

	* gst/librfb/rfbdecoder.c:
	  librfb: Validate framebuffer update rectangles against the framebuffer size
	  Patch provided by Junyi Liu, who also reported this.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5105
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11868>

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-bad.doap:
	* meson.build:
	  Release 1.28.4

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

	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfmetadata.c:
	* gst/mxf/mxfmetadata.h:
	* gst/mxf/mxftypes.c:
	* gst/mxf/mxftypes.h:
	  mxfdemux: Use unsigned integers in more places and don't truncate 64 bit integers
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5048
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11837>

2026-06-09 09:40:41 +0300  Sebastian Dröge <sebastian@centricular.com>

	* sys/va/gstjpegdecoder.c:
	  vajpegdecoder: Validate that enough data is available for the current JPEG segment
	  gst_jpeg_parse() does not ensure this and relies on the caller to collect enough
	  data. All other users of the function are doing this correctly.
	  Here we can directly error out if not enough data is available as we require
	  parsing input.
	  Patch provided by Junyi Liu, who also reported this.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5104
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11834>

2026-06-09 09:26:38 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/codecparsers/gstav1parser.c:
	  av1parser: Fix bytes/bits confusion when parsing tile data size
	  Which would then later lead to an assertion.
	  Patch provided by Junyi Liu, who also reported this.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5103
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11827>

2026-06-10 12:17:10 +0300  Vivia Nikolaidou <vivia@ahiru.eu>

	* gst/mpegtsdemux/mpegtspacketizer.c:
	  mpegtspacketizer: Do not seek before the first PCR
	  It can be that the first PCR offset is slightly non-zero (for instance, video
	  starts mid-GOP). In that case, when we try to seek earlier than that (usually to
	  zero, see also SEEK_TIMESTAMP_OFFSET which will still throw us to zero when
	  we're seeking before 2.5sec) we shouldn't fail/EOS. Just return the first PCR
	  instead.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11786>

2026-06-05 12:50:39 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12decoder.cpp:
	  d3d12decoder: Use subresource index as view ID directly for tier-1 decoders
	  D3D12 Tier-1 decoding uses a texture-array DPB. Some drivers seem to
	  expect DXVA view IDs to match subresource index, like D3D11 decoding.
	  Use the actual subresource index as the view ID in this mode instead of
	  assigning a separate internal slot ID
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11781>

2026-06-05 12:25:14 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12decoder.cpp:
	  d3d12decoder: Set colorspace to conversion args
	  Don't use RGB color space for YUV formats
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11781>

2026-06-05 10:07:59 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/dxva/gstdxvavp8decoder.cpp:
	* gst-libs/gst/dxva/gstdxvavp9decoder.cpp:
	  dxva: Fix VP8/VP9 decoding on Qualcomm GPUs
	  AssociatedFlag must be zero for valid reference frames according
	  to the DXVA VP8/VP9 specification
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11781>

2026-05-11 19:11:01 +0200  Jakub Adam <jakub.adam@collabora.com>

	* gst-libs/gst/mse/meson.build:
	* tests/check/libs/gstlibscpp.cc:
	* tests/check/meson.build:
	  meson: fix building -bad tests with disabled mse
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11617>

2026-05-12 16:08:30 +0200  Carlos Falgueras García <cfalgueras@fluendo.com>

	* tests/check/libs/av1parser.c:
	  tests: fix support with glib <= 2.67.2
	  These tests use "g_memdup2()" but they don't include
	  "gst/glib-compat-private.h", which makes the compilation fail when linking
	  against Glib <= 2.67.2 as "g_memdup2()" was included at 2.67.3
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11618>

2026-04-27 17:03:14 +0800  Hou Qi <qi.hou@nxp.com>

	* gst/camerabin2/gstwrappercamerabinsrc.c:
	  camerabin: Fix caps negotiation when starting to capture
	  Use BLOCK_DOWNSTREAM probe instead of IDLE probe when starting image and
	  video capture to ensure proper caps negotiation with downstream elements.
	  Using an IDLE probe could allow buffers to flow before caps negotiation
	  completes with the downstream encodebin elements, causing the camerabinsrc
	  to select caps that are incompatible with the video or image encoder.
	  BLOCK_DOWNSTREAM ensures the pipeline is blocked during reconfiguration
	  and caps negotiation completes before buffers flow.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11774>

2026-05-26 13:22:03 +0300  Sebastian Dröge <sebastian@centricular.com>

	* sys/androidmedia/ndk/gstamc-codec-ndk.c:
	  androidmedia: Fix typo in error message
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11692>

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

	* sys/androidmedia/gstamc.c:
	  amc: Don't try printing NULL caps
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11688>

2026-05-25 18:50:39 +0300  Sebastian Dröge <sebastian@centricular.com>

	* sys/androidmedia/gstamcvideodec.c:
	  amcvideodec: Don't keep crop-rectangle uninitialized if not specified
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11686>

2026-05-22 16:56:12 +0900  MilkClouds <milkclouds00@gmail.com>

	* sys/wasapi2/gstwasapi2rbuf.cpp:
	  wasapi2: Don't reset process loopback capture client
	  The process loopback virtual device does not resume capture after
	  IAudioClient::Reset(): a later Start() returns S_OK but no buffers
	  are delivered and the event handle is never signalled, so the
	  pipeline stalls.
	  Two paths call Reset() on the capture client:
	  - the warm-up in gst_wasapi2_rbuf_ctx_init() (Start/Stop/Reset). It
	  exists to hide idle-hardware Start() latency and is meaningless for
	  the virtual process loopback device. Skip it for process loopback.
	  - RbufCtx::Stop(). Skip the Reset() there for process loopback so the
	  client survives a stop/start (pause/resume) cycle.
	  Start/Stop/Start without Reset() works correctly, so only Reset()
	  needs to be avoided.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11683>

2026-05-13 10:52:53 -0400  Xavier Claessens <xclaessens@netflix.com>

	* sys/va/gstvafilter.c:
	* sys/va/gstvafilter.h:
	  vafilter: Add support for premultiplied alpha
	  This is a backport of a part of
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11619.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11675>

2026-02-03 10:59:13 +0100  Marcus Hanestad <marlhan@proton.me>

	* sys/androidmedia/gstamcaudiodec.c:
	  androidmedia: support decoding flac
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11647>

2026-05-15 15:56:45 +0800  Cheah, Vincent Beng Keat <vincent.beng.keat.cheah@intel.com>

	* gst-libs/gst/va/gstvadisplay_drm.c:
	  va: drm: Fix fd leak and return type in create_va_display
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11642>

2026-03-17 15:03:09 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/vulkan/vkupload.c:
	  vulkanupload: Don't reallocate the pool when the framerate changes
	  This causes an unnecessary stall in pipelines where the framerate
	  changes frequently because we're decoding, for instance, fmp4.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11628>

2026-05-08 15:32:02 +0300  Sebastian Dröge <sebastian@centricular.com>

	* sys/androidmedia/gstamc.c:
	  androidmedia: Add H265 main-still-picture profile mapping
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11614>

2026-05-08 15:28:58 +0300  Sebastian Dröge <sebastian@centricular.com>

	* sys/androidmedia/gstamc-constants.h:
	* sys/androidmedia/gstamc.c:
	  androidmedia: Add some more AAC profile mappings
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11614>

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

	* sys/androidmedia/gstamc.c:
	* sys/androidmedia/gstamcaudiodec.c:
	  androidmedia: Add caps mappings for AC3/EAC3/AC4
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11614>

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

	* sys/androidmedia/gstamc.c:
	* sys/androidmedia/gstamcvideodec.c:
	* sys/androidmedia/gstamcvideoenc.c:
	  androidmedia: Add caps mappings for WMV and VC1
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11614>

2026-05-08 14:48:40 +0300  Sebastian Dröge <sebastian@centricular.com>

	* sys/androidmedia/gstamc.c:
	  androidmedia: Add video/mp43 as alias for video/mp4v-es
	  Some devices use it for the same codec.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11614>

2026-05-08 14:39:21 +0300  Sebastian Dröge <sebastian@centricular.com>

	* sys/androidmedia/gstamc.c:
	* sys/androidmedia/gstamcaudiodec.c:
	  androidmedia: Add audio/mpeg-L1 caps mapping
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11614>

2026-05-08 13:50:02 +0300  Sebastian Dröge <sebastian@centricular.com>

	* sys/androidmedia/gstahcsrc.c:
	  ahcsrc: Register exposure-mode property for GstPhotography interface
	  This was added some years ago to the interface, which was technically a breaking
	  change. Now the property needs to be provided by all implementers of the
	  interface.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11613>

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

	* sys/androidmedia/gstamcaudiodec.c:
	* sys/androidmedia/gstamcvideodec.c:
	* sys/androidmedia/gstamcvideoenc.c:
	  androidmedia: Don't print error logs if downstream returns flushing / EOS
	  Just log them normally as debug logs.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11610>

2026-04-07 17:31:50 +0900  Seungmin Lee <seungmin.lee.cpp@navercorp.com>

	* ext/svtav1/gstsvtav1enc.c:
	* ext/svtav1/meson.build:
	  svtav1enc: Scale MDCV and CLL to SVT-AV1's expected units
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11609>

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-bad.doap:
	* meson.build:
	  Release 1.28.3

2026-04-27 16:45:04 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/mxf/mxfvanc.c:
	  mxfdemux: Fix parsing of multiple VANC packets per edit unit
	  Only the first packet was parsed before.
	  Also fix a couple of bounds checks and add missing bounds checks.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11592>

2026-04-27 16:42:20 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/mxf/mxfvanc.c:
	  mxfmux: Fix size calculations when writing VANC packets
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5044
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11592>

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

	* gst/mxf/mxfdemux.c:
	  mxfdemux: Fix reverse temporal offsets array upper bounds check
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5041
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11589>

2026-04-15 11:35:47 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/codecparsers/gsth266parser.c:
	  h266parser: Avoid out-of-bounds write when parsing PPS tile slices
	  Thanks to Tian Shuo for reporting and suggesting the fix.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5035
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11588>

2026-04-09 21:34:23 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ext/resindvd/gstpesfilter.c:
	* gst/mpegdemux/gstpesfilter.c:
	  mpegdemux: Add missing bounds checking to PES header parsing
	  And also add missing advancing of the data pointer in various places, which
	  would've caused all following header field parsing to read the wrong data.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11587>

2026-04-09 15:34:09 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/mpegdemux/gstmpegdemux.c:
	  mpegdemux: Adding missing bounds checks when scanning for timestamps
	  Also make the already existing checks a bit more explicit and avoid integer
	  overflows with length calculations by using a bigger integer type.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11587>

2026-04-09 15:31:10 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ext/resindvd/gstpesfilter.c:
	* gst/mpegdemux/gstpesfilter.c:
	  mpegdemux: First check for enough data and then read the DTS and not the other way around
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5026
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11587>

2026-04-28 15:58:32 +0900  Dennis Han <jshan@live.co.kr>

	* ext/qt6d3d11/gstqt6d3d11videoitem.cpp:
	  qt6d3d11: fix null check in SetForceAspectRatio()
	  The null-check branch incorrectly attempted to call
	  setForceAspectRatio() on a null item pointer.
	  Return early when item is null and call the setter otherwise.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11575>

2026-05-08 18:05:19 +0300  Sebastian Dröge <sebastian@centricular.com>

	* sys/androidmedia/gstamc.c:
	  androidmedia: Free element name after use for logging
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11573>

2026-05-07 16:49:08 +0100  Arthur Chan <arthur.chan@adalogics.com>

	* gst-libs/gst/codecparsers/gsth266parser.c:
	  h266parser: Add missing freeing function for H266 SEI message
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11571>

2026-04-07 18:41:35 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst/closedcaption/misc.h:
	  closedcaption: Fix invalid ISO varargs syntax
	  When there are no var args, there's a trailing comma. MSVC has been
	  suppressing that trailing comma, but in /std:c11 mode it (correctly)
	  does not suppress it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11563>

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-05-06 16:05:40 +0300  Sebastian Dröge <sebastian@centricular.com>

	* sys/decklink/gstdecklink.cpp:
	* sys/decklink/gstdecklinkvideosink.cpp:
	  decklink: Fix various refcount issues and related leaks
	  Also initializes refcount with 1 again in GStreamerVideoOutputCallback for
	  consistency, which was changed in https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11006
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11558>

2026-04-10 17:35:41 +0300  Sebastian Dröge <sebastian@centricular.com>

	* sys/aja/gstajasink.cpp:
	  ajasink: Correctly set reference source
	  It's SetFramePulseReference() does something different and what we want is
	  SetReference() just like in the source element.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11309>

2026-03-31 12:57:19 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/androidmedia/gstamc.c:
	  amc: Log the caps for registered codecs
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11551>

2026-01-17 00:40:11 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/androidmedia/gstamc.c:
	  amc: Reduce verbosity of INFO logging during init
	  We log too much during init to INFO, and Android Studio just drops all
	  those messages because they're too many.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11551>

2026-01-16 04:49:31 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/androidmedia/gstamc.c:
	  amc: Add constrained-baseline profile when baseline is available
	  Otherwise we can't decode constrained-baseline videos.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11551>

2026-01-16 02:43:45 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/androidmedia/gstamcvideoenc.c:
	  amc: Remove support for API level < 25
	  We no longer support Android older than Nougat.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11551>

2026-05-07 17:17:39 +0100  Arthur Chan <arthur.chan@adalogics.com>

	* gst/videoparsers/h263parse.c:
	  h263parse: Fix wrong ratio masking
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11537>

2026-05-07 17:09:32 +0100  Arthur Chan <arthur.chan@adalogics.com>

	* gst/videoparsers/gsth263parse.c:
	  h263parse: Missing handling of reserved invalid EPAR_D value
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11535>

2026-05-07 16:43:15 +0100  Arthur Chan <arthur.chan@adalogics.com>

	* gst/videoparsers/gstpngparse.c:
	  pngparse: Fix Use-after-free bug
	  Signed-off-by: Arthur Chan <arthur.chan@adalogics.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11531>

2026-05-07 16:35:31 +0100  Arthur Chan <arthur.chan@adalogics.com>

	* gst/videoparsers/gstav1parse.c:
	  av1parse: Fix null pointer deference
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11529>

2026-05-06 22:38:43 +0900  Seungha Yang <seungha@centricular.com>

	* ext/qt6d3d11/gstqml6d3d11sink.cpp:
	* ext/qt6d3d11/gstqsg6d3d11node.cpp:
	  qml6d3d11sink: Clear texture on Paused-to-Ready transition
	  Like the GL version of qmlsink, clear owned texture to black
	  instead of keeping the last rendered frame
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11520>

2026-04-21 09:32:02 -0400  Xavier Claessens <xclaessens@netflix.com>

	* sys/va/gstvabaseenc.c:
	  va: do not post error message when push fails
	  Downstream is responsible to post a specific error message. If it did
	  not, then upstream source will post a generic error message.
	  Intermediary elements just have to propagate the return value.
	  This prevents posting an error message when stopping a pipeline and
	  GST_FLOW_FLUSHING is returned.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11504>

2026-03-26 11:40:44 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtdec.c:
	* sys/applemedia/vtenc.c:
	* sys/applemedia/vtutil.c:
	* sys/applemedia/vtutil.h:
	  applemedia: Don't expose unsupported formats for Vulkan/GL
	  We exposed lots of formats in caps, but GL/Vulkan code doesn't have
	  paths for all of them. For GL specifically, BGRA is theoretically
	  supported but it's currently broken, pending investigation.
	  Also adds a filter to gst_vtutil_caps_append_video_format() to avoid
	  putting RGBA64_LE in non-system-memory part of the caps in vtdec.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11498>

2026-04-29 10:00:08 -0400  Dominique Leroux <dominique.p.leroux@gmail.com>

	* tests/check/pipelines/vtdec-output-paths.c:
	  applemedia: tests: harden vtdec output path checks
	  The appsink new-sample callback runs from the streaming thread and
	  asks the main loop to stop once the comparison prefix has been
	  collected. Release the pulled sample before waking the main thread
	  and keep only the requested number of buffers.
	  The fixture has enough frames for the comparison, so EOS before
	  collecting the requested eight samples is a failure. Require the
	  expected sample count and report the actual count.
	  Use gst_check_run_suite_nofork() for the nofork setup as well. The
	  previous manual runner always returned 0, hiding check failures from
	  Meson.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11461>

2026-04-28 11:45:43 +0200  Tomasz Bujewski <tomasz.bujewski@intel.com>

	* gst-libs/gst/analytics/gstanalyticsobjectdetectionmtd.c:
	* gst-libs/gst/analytics/gstanalyticssegmentationmtd.c:
	  analytics: fix meta transform functions for copy cases
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11476>

2026-01-22 13:13:28 +0100  Fabian Orccon <cfoch.fabian@gmail.com>

	* gst-libs/gst/mse/meson.build:
	  mse: Also disable the library if the option is disabled
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11473>

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

	* gst/mpegtsdemux/pesparse.c:
	  mpegts: Fix ESCR reading
	  The second part is 4 bytes further
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11454>

2026-04-28 16:32:18 +0200  Edward Hervey <edward@centricular.com>

	* gst/mpegtsdemux/mpegtsbase.c:
	  mpegtsbase: Protect potential OOB read
	  Like it's done in get_registration_from_descriptors()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11454>

2026-04-28 15:13:13 +0200  Edward Hervey <edward@centricular.com>

	* gst/mpegtsdemux/mpegtsbase.c:
	  mpegtsbase: Remove un-needed lines
	  flush_event will always be NULL here (cleared just above)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11454>

2026-04-23 18:39:44 +0200  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Avoid blocking decoder output callback
	  Blocking VT's output callback is not a good idea, as it can cause the
	  decoder to error out if it's blocked for too long, e.g. when a user
	  pauses playback. Especially with HEVC+alpha decoding, VT is extremely
	  sensitive and can error out after being blocked for just 10 seconds.
	  With this change I can't reproduce any similar problems anymore.
	  However, changing this also simplifies vtdec's locking situation a lot
	  because we have one less thread to possibly deadlock with. In fact, it's
	  been the source of most our problems since the output loop was added.
	  This change will hopefully reduce the amount of future problems in this
	  area.
	  This also resolves a recent issue where if the output loop triggered
	  draining (via negotiation during buffer push), the input side would
	  start to push buffers at max speed because the output loop (correctly)
	  no longer holds the stream lock while pushing.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11441>

2026-04-24 16:48:57 +0200  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Don't leak CMSampleBuffer during decoder reset
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11441>

2026-03-30 16:45:31 +0200  Piotr Brzeziński <piotr@centricular.com>

	* ext/vulkan/vkupload.c:
	* tests/check/elements/vkupload.c:
	  vkupload: Fix wrong image dimensions due to stride mismatch
	  We were possibly using the wrong buffer for the get_plane_dimensions()
	  call. If the input buffer had a different stride value from the newly
	  allocated Vulkan buffer, the resulting image would be incorrect.
	  Also adds a test, which was actually meant to test an almost identical
	  issue in vulkandownload but ended up spotting this problem instead.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11387>

2026-03-26 10:34:11 +0100  Piotr Brzeziński <piotr@centricular.com>

	* ext/vulkan/vkdownload.c:
	* tests/check/elements/vkdownload.c:
	* tests/check/meson.build:
	  vkdownload: Fix corrupted output image due to mismatched stride/padding
	  Makes sure to the destination buffer layout when filling
	  VkBufferImageCopy for the image download. The old version was using the
	  input buf parameters for this, so if there was a mismatch, we'd get a
	  corrupted output image with each row shifted and stretched.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11387>

2026-03-31 12:38:22 +0200  Piotr Brzeziński <piotr@centricular.com>

	* tests/check/elements/cudaconvert.c:
	* tests/check/elements/cudafilter.c:
	* tests/check/elements/nvdec.c:
	* tests/check/elements/nvenc.c:
	* tests/check/libs/cudamemory.c:
	  tests: replace CK_FORK=no with GST_CHECK_MAIN_NOFORK
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11387>

2026-03-30 14:55:27 +0200  Piotr Brzeziński <piotr@centricular.com>

	* tests/check/elements/vkcolorconvert.c:
	* tests/check/elements/vkdeviceprovider.c:
	* tests/check/elements/vkupload.c:
	* tests/check/libs/vkcommandpool.c:
	* tests/check/libs/vkdevice.c:
	* tests/check/libs/vkformat.c:
	* tests/check/libs/vkimage.c:
	* tests/check/libs/vkimagebufferpool.c:
	* tests/check/libs/vkinstance.c:
	* tests/check/libs/vkmemory.c:
	* tests/check/libs/vkvideodecode.c:
	* tests/check/libs/vkvideoencodeav1.c:
	* tests/check/libs/vkvideoencodeh264.c:
	* tests/check/libs/vkvideoencodeh265.c:
	* tests/check/libs/vkwindow.c:
	  vulkan: Fix tests crashing on macOS due to fork() usage
	  Vulkan tests would end up segfaulting somewhere inside Metal when
	  running under MoltenVK on macOS.
	  Turns out this was because of fork() and simply disabling its usage
	  makes it all run.
	  The only exceptions are vkdeviceprovider and vkwindow tests: those spawn
	  a vulkansink which needs a window,
	  and for that we need to use gst_macos_main(), otherwise there's a
	  critical warning which causes the test to fail.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11387>

2026-04-23 12:09:29 -0400  Dominique Leroux <dominique.p.leroux@gmail.com>

	* sys/applemedia/corevideobuffer.c:
	  applemedia: fix planar CoreVideo buffer offsets
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11432>

2026-04-23 12:09:00 -0400  Dominique Leroux <dominique.p.leroux@gmail.com>

	* tests/check/pipelines/vtdec-output-paths.c:
	  applemedia: add vtdec download content checks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11432>

2026-04-24 12:25:19 +0300  Vivia Nikolaidou <vivia@ahiru.eu>

	* tests/check/elements/interlace.c:
	  interlace: Add some more autoated tests
	  The ones referenced in
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/1764
	  and
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/bf89c80d74f424e54a401243513781c73d0a6e6d
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11428>

2026-04-24 11:49:11 +0300  Vivia Nikolaidou <vivia@ahiru.eu>

	* gst/interlace/gstinterlace.c:
	  Revert "interlace: Drop framerate from query caps of sinkpad"
	  This reverts commit 1ac30ad53fff9b572212d7727695b1424b803214.
	  This commit broke negotiation in pipelines where upstream framerate is flexible
	  and downstream framerate is fixed, i.e.
	  gst-launch-1.0 videotestsrc \
	  ! video/x-raw,framerate=30/1,interlace-mode=progressive \
	  ! videorate \
	  ! interlace field-pattern=1:1 \
	  ! video/x-raw,framerate=25/1,interlace-mode=interleaved \
	  ! fakesink
	  The original issue reported was fixed by commit
	  bf89c80d74f424e54a401243513781c73d0a6e6d.
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/1764
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11428>

2026-04-23 11:12:37 +0200  RSWilli <bartel.wilhelm@gmail.com>

	* ext/webrtc/webrtcdatachannel.c:
	  webrtc: take ownership of the src_bin and sink_bin
	  before this the webrtcbin takes ownership when adding the bins to the webrtcbin.
	  This could lead to use after free when the datachannel went into error state because of a lost connection
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11420>

2026-04-23 10:57:31 +0200  RSWilli <bartel.wilhelm@gmail.com>

	* ext/webrtc/webrtcdatachannel.c:
	  webrtc: don't leak error message
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11420>

2026-04-04 20:34:19 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/applemedia/avfdeviceprovider.m:
	* sys/applemedia/avsamplevideosink.m:
	* sys/applemedia/corevideobuffer.c:
	* sys/applemedia/helpers.h:
	* sys/applemedia/meson.build:
	* sys/applemedia/vtdec.c:
	* sys/applemedia/vtdec.h:
	* sys/applemedia/vtenc.c:
	* sys/applemedia/vtutil.c:
	  applemedia: Require Xcode 12.4 for all builds
	  Xcode 12.4 is the newest Xcode that you can install on macOS 10.15. We
	  require Xcode 12.4, but we only support macOS builds on it. For iOS,
	  tvOS, etc a newer (currently unspecified) Xcode version is required.
	  Fixes #4941
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11369>

2026-04-15 13:07:27 +0200  Anders Hellerup Madsen <anders@hellerup-madsen.dk>

	* sys/nvcodec/kernel/gstnvjpegenc.cu:
	  nvjpegenc: use float-precision constants in CUDA kernel
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11400>

2026-04-15 13:05:13 +0200  Anders Hellerup Madsen <anders@hellerup-madsen.dk>

	* sys/hip/kernel/converter.cu:
	  hip: use float-precision constants in converter kernel
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11400>

2026-04-15 12:52:46 +0200  Anders Hellerup Madsen <anders@hellerup-madsen.dk>

	* sys/nvcodec/kernel/gstcudaconverter.cu:
	  nvcodec: use float-precision constants in CUDA converter kernel
	  Replace double-precision floating point literals with explicit
	  single-precision (f-suffixed) constants throughout the CUDA converter
	  kernel. This avoids implicit float-to-double promotion in arithmetic
	  expressions, which incurs a significant performance penalty on GPU
	  hardware where double-precision math is much slower than float.
	  Affected areas:
	  - scale_to_* helper functions (e.g. val * 255.0 -> val * 255.0f)
	  - blend_* helper functions (division and subtraction chains)
	  - Output struct Blend methods (1.0 -> 1.0f argument)
	  - GstCudaConverterMain kernel (coordinate math and comparisons)
	  - Corresponding string-embedded copy of the kernel code
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11400>

2026-04-20 18:02:40 +0200  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Avoid locking up during a decoder reset
	  If require_reset is set while the reorder_queue is full, the output
	  callback can block. This in turn causes VTDecompressionSessionInvalidate
	  to block as well, leading to a deadlock because the reset logic holds
	  the stream lock, preventing the output loop from draining the queue.
	  This simply makes sure we don't block the output callback in this
	  scenario.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11395>

2026-03-30 11:13:38 -0400  Dominique Leroux <dominique.p.leroux@gmail.com>

	* tests/check/meson.build:
	* tests/check/pipelines/vtdec-output-paths.c:
	  vtdec: Pipeline tests for all 3 memory output paths
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11285>

2026-03-29 20:25:37 -0400  Dominique Leroux <dominique.p.leroux@gmail.com>

	* sys/applemedia/vtdec.c:
	  vtdec: warn about MoltenVK argument buffers
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11285>

2026-03-17 21:36:21 -0400  Dominique Leroux <dominique.p.leroux@gmail.com>

	* sys/applemedia/iosurfacevulkanmemory.c:
	* sys/applemedia/iosurfacevulkanmemory.h:
	* sys/applemedia/metal-helpers.h:
	* sys/applemedia/videotexturecache-vulkan.mm:
	  applemedia: import Metal textures at Vulkan image creation time
	  MoltenVK 1.3.0 and later regressed on the
	  vtdec -> VulkanImage -> vulkancolorconvert path when
	  IOSurface-backed plane textures were attached after
	  vkCreateImage() through vkSetMTLTextureMVK().
	  That path relies on MoltenVK-specific post-creation binding APIs
	  that have been superseded by standard Metal interop extensions.
	  Keep the existing per-plane MTLTexture creation, but move the
	  Metal texture import into VkImage creation through
	  VkImportMetalTextureInfoEXT.
	  Importing the Metal texture as part of VkImageCreateInfo makes
	  the Vulkan image describe the external texture at creation time
	  instead of retrofitting it afterward. This aligns the Apple
	  import path with the newer Metal-object import model and avoids
	  depending on the deprecated post-create binding flow.
	  On affected MoltenVK releases, successful playback still requires
	  setting MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS=0 at runtime.
	  That workaround was confirmed from MoltenVK 1.3.0 onward during
	  investigation of this path.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11285>

2026-03-17 21:35:35 -0400  Dominique Leroux <dominique.p.leroux@gmail.com>

	* gst-libs/gst/vulkan/meson.build:
	  vulkan: prefer direct MoltenVK linkage on Darwin
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11285>

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

	* gst/mxf/mxfaes-bwf.c:
	  mxfmux: aes-bwf: Use correct size when serializing user data / channel status mode
	  This code is not actually reachable (yet) from mxfmux.
	  Thanks to Tian Shuo for reporting and suggesting the fix.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5037
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11345>

2026-04-10 17:04:55 -0400  Monty C <montyc1999@gmail.com>

	* sys/applemedia/vtdec.c:
	  vtdec: fix deadlock when restarting
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11343>

2026-04-14 22:09:40 +0900  Andrew Yooeun Chun <aychun00@gmail.com>

	* gst-libs/gst/codecparsers/gsth265parser.h:
	  h265parser: fix comments in header
	  CPS -> CPB, togeter -> together, and add missing spaces after `@param:`.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11339>

2026-04-14 22:03:21 +0900  Andrew Yooeun Chun <aychun00@gmail.com>

	* gst-libs/gst/codecparsers/gsth265parser.c:
	  h265parser: use sub-layer 0 CPB count in buffering_period SEI loops
	  The NAL and VCL initial CPB removal delay loops were bounded by
	  cpb_cnt_minus1[i]. Read the CPB count from sub-layer 0 instead.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11339>

2026-04-12 16:21:55 -0400  Monty C <montyc1999@gmail.com>

	* sys/nvcodec/plugin.c:
	  nvcodec: Fix missing adapter-luid when loading decoders from cache
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11329>

2026-04-09 21:32:28 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ext/resindvd/gstpesfilter.c:
	* gst/mpegdemux/gstpesfilter.c:
	  mpegdemux: Fix ES_rate parsing
	  It's not used anywhere so this doesn't really matter.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11324>

2026-04-09 21:18:36 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/mpegtsdemux/pesparse.c:
	  tsdemux: Only read 3 bytes for the ES_rate
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11324>

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

	* gst/mpegtsdemux/pesparse.c:
	  tsdemux: Fix parsing of PES ESCR and following PES header fields
	  The ESCR is 6 bytes and in the same format as the PCR, not 5 bytes and in the
	  same format as DTS/PTS. By skipping only 5 bytes, parsing of all following PES
	  header fields looked at the wrong bytes.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11324>

2026-04-10 15:50:46 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/mpegtsdemux/mpegtspacketizer.c:
	  mpegtspacketizer: Avoid potential overflow
	  Avoid potential address overflow by using subtraction instead of additions.
	  If data is close to the memory range limit (especially on 32bit systems), adding
	  to it could make it wrap over.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11307>

2026-04-09 09:31:47 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ext/soundtouch/gstbpmdetect.cc:
	  bpmdetect: Fix calculation of number of samples for >1 channels
	  Reported by and patch provided by Olivier Laflamme.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11297>

2021-07-15 11:47:44 +0200  Andreas Frisch <andreas.frisch@ltnglobal.com>

	* gst/mpegtsdemux/tsdemux.c:
	  tsdemux: Fix segfault when trying to handle SCTE-35 with incorrect program specified
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11294>

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-bad.doap:
	* meson.build:
	  Release 1.28.2

2026-04-07 16:36:27 +0900  Seungmin Lee <seungmin.lee.cpp@navercorp.com>

	* gst/vmnc/vmncdec.c:
	  vmncdec: Set cursormask to NULL to prevent double free
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11264>

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

	* gst-libs/gst/codecparsers/gstav1parser.c:
	* gst/videoparsers/gstav1parse.c:
	  av1parse: Correctly reject LEB128 values where the 8th byte has the high bit set
	  This is invalid according to the specification.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11259>

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

	* gst-libs/gst/codecparsers/gstav1parser.c:
	* gst/videoparsers/gstav1parse.c:
	  av1parse: Allow G_MAXUINT32 as LEB128 encoded value
	  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:52:48 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/videoparsers/gstav1parse.c:
	  av1parse: Be more explicit about available data when parsing LEB128 values
	  The caller already checks that at least 8 bytes are available, which is the
	  maximum this function is going to parse anyway, but better to not hardcode this
	  assumption and instead actually check for it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11259>

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

	* gst-libs/gst/codecparsers/gstav1parser.c:
	* gst/videoparsers/gstav1parse.c:
	  av1parse: Avoid signed 32 bit integer overflow when parsing 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-12 11:14:11 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/codecparsers/gsth266parser.c:
	  h266parser: Avoid integer overflow when parsing profile / tier / level
	  And as a result also avoid a stack overflow.
	  Thanks to Nicholas Soh for finding and analyzing the issue, and suggesting this fix.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4958
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11257>

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

	* gst-libs/gst/codecparsers/gsth264parser.c:
	  h264parse: Avoid NULL pointer dereferences when freeing partially parsed SPS/MVC data
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/4992
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11251>

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

	* gst-libs/gst/codecparsers/gsth264parser.c:
	  h264parse: Remove pointless allocation failure handling
	  g_new0() already aborts the process on allocation failure.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11251>

2026-03-30 16:29:27 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/jp2kdecimator/jp2kcodestream.c:
	  jp2kdecimator: Avoid integer overflows and divisions by zero on invalid tile configurations
	  Thanks to Sebastian Alba Vives for reporting the issue and suggesting the fix.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5008
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11239>

2026-03-30 16:29:01 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/jp2kdecimator/jp2kcodestream.c:
	  jp2kdecimator: Fix some possible integer overflows in size checks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11239>

2026-03-18 18:58:54 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst-libs/gst/vulkan/cocoa/gstvkwindow_cocoa.m:
	  macos: Set activation policy in vulkansink (MoltenVK)
	  Upon creating a window, vulkansink now sets the policy to
	  NSApplicationActivationPolicyRegular, which lets us show an icon in
	  the Dock for convenience and appear in the top menu bar like other
	  apps.
	  This matches the behaviour of glimagesink and osxvideosink from commit
	  5e45a1b1bd0ec4355346c60ef40c14fa91aa9b6c
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11138>

2026-03-18 11:41:18 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Invert order of output caps to match our preference
	  We want Vulkan > GL > sysmem
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11138>

2026-02-13 03:33:34 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Fix incorrect setting of bitfield / flag
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11138>

2026-02-13 03:30:24 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Don't leak RGBA64_LE caps during class init
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11138>

2025-10-29 11:08:00 +0000  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/cuda/cuda-gst.h:
	* gst-libs/gst/cuda/gstcudacontext.cpp:
	* gst-libs/gst/cuda/gstcudacontext.h:
	* gst-libs/gst/cuda/gstcudaloader.cpp:
	* gst-libs/gst/cuda/stub/cuda.h:
	* gst-libs/gst/hip/stub/cuda.h:
	* sys/nvcodec/gstnvav1encoder.cpp:
	* sys/nvcodec/gstnvav1encoder.h:
	* sys/nvcodec/gstnvdecoder.cpp:
	* sys/nvcodec/gstnvdecoder.h:
	* sys/nvcodec/gstnvencoder.h:
	* sys/nvcodec/gstnvh264encoder.cpp:
	* sys/nvcodec/gstnvh264encoder.h:
	* sys/nvcodec/gstnvh265encoder.cpp:
	* sys/nvcodec/gstnvh265encoder.h:
	* sys/nvcodec/gstnvjpegenc.cpp:
	* sys/nvcodec/gstnvjpegenc.h:
	* sys/nvcodec/plugin.c:
	  nvcodec: Add capability caching to speed up plugin initialization
	  Probing encoder/decoder capabilities requires opening NVENC/NVDEC
	  sessions which adds significant overhead to plugin loading. This
	  change caches the discovered capabilities in GstPlugin cache data
	  and reloads them on subsequent runs.
	  The cache is keyed by device UUID and validated against the CUDA
	  driver API version, ensuring it's invalidated when
	  the hardware configuration changes or the driver is updated.
	  Plugin initialization time: 1.64s -> 0.14s (~11x faster)
	  The remaining time is basically spent in CuInit.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10767>

2026-03-28 15:22:35 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/gtk/gstgtkwaylandsink.c:
	* ext/wayland/gstwaylandsink.c:
	  waylandsink: Properly reset the tag orientation
	  Reset the tag orientation to identity if a new tag list is received without
	  the orientation in it, or if a new stream starts, as it may not contain a
	  tag list.
	  Fixes #3661
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11216>

2026-03-24 18:46:33 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/applemedia/vtdec.c:
	* sys/applemedia/vtdec.h:
	  vtdec: Also reset session when output_callback gets a kVTVideoDecoderMalfunctionErr
	  We still reset the session only in handle_frame, because the reset
	  will block. We merely set a flag in output_callback().
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11233>

2025-01-14 19:43:16 +0100  Vadym Markov <markov.vadym@gmail.com>

	* sys/applemedia/vtenc.c:
	  vtenc: restart even if VTCompressionSessionCompleteFrames fails
	  Co-Authored-By: Nirbheek Chauhan <nirbheek@centricular.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11233>

2025-08-21 18:39:22 +0200  Havard Graff <havard@pexip.com>

	* sys/applemedia/vtenc.c:
	  applemedia/vtenc: make sure to NULL terminate the level string
	  Without this, passing in level="4", will cause undetermined behavior.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11233>

2024-05-23 18:36:29 +0200  Tulio Beloqui <tulio@pexip.com>

	* sys/applemedia/vtdec.c:
	  applemedia/vtdec: handle decoder error status for iOS
	  If VTDecompressionSessionDecodeFrame returns kVTInvalidSessionErr or
	  kVTVideoDecoderMalfunctionErr we need to reset the decoder session and
	  request an intra frame.
	  This change allows the decoder to continue decoding after the
	  application switches between foreground and background modes.
	  Co-Authored-by: Nirbheek Chauhan <nirbheek@centricular.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11233>

2026-04-01 09:25:57 +0200  Emil Ljungdahl <emillj@axis.com>

	* ext/sctp/sctpassociation.c:
	  sctp: Set number of outgoing & incoming streams to the same value
	  usrsctp has its own default number of streams. For outgoing streams the
	  default is 10, while for incoming streams the default is 2048. In
	  sctpassociation.c the default number of outgoing streams is changed to
	  1024.
	  This means that when initializing an SCTP session, the INIT message will
	  announce 1024 as number of outbound streams, and 2048 as number of
	  inbound streams. That is not incorrect itself, but it becomes weird when
	  it comes to WebRTC where a datachannel requires one stream in each
	  direction.
	  If a WebRTC peer tries to open a datachannel with ID 1024, it won't be
	  rejected with a proper error message, but you rather get a fatal error
	  originating from a sanity check in sctp_output.c:13873.
	  If there is a risk there are other of sctp than WebRTC we might consider
	  changing the DEFAULT_NUMBER_OF_SCTP_STREAMS define to 2048 instead to
	  avoid changed default behavior. On the other hand, that will affect
	  resource utilization for a session...
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11209>

2026-03-31 14:33:26 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2rbuf.cpp:
	  wasapi2: Log target device information
	  Log device ID and requested mode information
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11202>

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

	* gst/sdp/gstsdpdemux.c:
	  gst: Fix a couple of const correctness bugs around strchr() usage
	  `assignment discards ‘const’ qualifier from pointer target type`
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11186>

2026-03-11 16:25:47 +0900  Hou Qi <qi.hou@nxp.com>

	* gst-libs/gst/wayland/gstwldisplay.c:
	  wayland: display: Add protection when replacing wl_output
	  Some legacy platforms are still using older weston version, where wl_output
	  version number is 3. This results in wl_output name being empty, leading
	  to a segment fault when replacing wl_output according to name.
	  In order to avoid above issue, need to add protection when replacing wl_output.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11086>

2026-03-24 02:28:58 +0200  Pavel Guzenfeld <pavelguzenfeld@gmail.com>

	* sys/shm/gstshmsink.c:
	* tests/check/elements/shm.c:
	  shm: fix shmsink exit code 1 on clean shutdown
	  gst_shm_sink_stop() calls gst_poll_set_flushing() which makes
	  gst_poll_wait() return -1 with errno=EBUSY. The poll thread
	  treated this as a fatal error instead of a clean shutdown.
	  Check self->stop before posting GST_ELEMENT_ERROR.
	  Fixes #4487
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11163>

2026-03-26 16:45:05 +0100  Piotr Brzeziński <piotr@centricular.com>

	* gst-libs/gst/vulkan/gstvkswapper.c:
	  vkswapper/vksink: Don't advertise unsupported formats
	  vulkansink's template caps are limited to
	  GST_VULKAN_SWAPPER_VIDEO_FORMATS, but get_supported_caps() did not
	  respect that and would advertise more formats if the HW supported them.
	  vulkanswapper doesn't know how to handle those incorrect formats,
	  resulting in a wrong image being displayed, or even crashes (on macOS
	  with MoltenVK).
	  This change just makes sure to filter out formats not correctly handled
	  by our code before we return the caps.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11160>

2026-01-28 10:27:43 -0500  Dominique Leroux <dominique.p.leroux@gmail.com>

	* sys/applemedia/vtdec.c:
	* sys/applemedia/vtutil.c:
	* sys/applemedia/vtutil.h:
	  vtdec: Supplemental VideoToolbox decoders now registered via vtutil helper
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11146>

2026-03-25 17:35:28 +0900  Haihua Hu <jared.hu@nxp.com>

	* gst-libs/gst/wayland/gstwlwindow.c:
	  wlwindow: fix viewport source outside buffer when play resolution change stream
	  when playing resolution change stream, there is chance that video crop meta
	  is not updated, only video info changed. eg. when use libav decoder.
	  Need always update crop w/h based on priv->video_width/video_height.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11142>

2026-03-25 15:18:43 +0900  Haihua Hu <jared.hu@nxp.com>

	* ext/wayland/gstwaylandsink.c:
	  waylandsink: fix waylandsink crash when call window flush
	  Need check if window is created when call gst_wl_window_flush
	  otherwise it will crash when receive event but window is not created
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11137>

2026-03-24 16:49:53 +0100  François Laignel <francois@centricular.com>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: add reversed temporal offset bound check
	  In `find_entry_for_offset()`, `position` is checked against the segment bounds,
	  which should match `reverse_temporal_offsets` size considering how it is built
	  in `collect_index_table_segments`. However, it doesn't check the actual size of
	  `collect_index_table_segments` which seems a bit fragile. Besides, all other
	  parts of the code explicitely check the `reverse_temporal_offsets` size before
	  accessing it.
	  This commit:
	  * ensures `position` is valid before accessing `reverse_temporal_offsets`,
	  similarly to what was intended to be done for `find_edit_entry()`.
	  * actually acts upon the check result for both.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11127>

2026-03-24 16:23:25 +0100  François Laignel <francois@centricular.com>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: reject corrupted index entry
	  A corrupted index could lead to computing an incorrect edit entry size which
	  would exceed MAX `guint32` and would lead to pulling less bytes than was
	  computed due to the size being casted to `guint32` in the next pull range call.
	  Looking for the next entry would most likely fail due to the excessive previous
	  computed size:
	  > Couldn't find matching partition for stream offset 4294968000
	  This commit detects this situation, logs the problem so as to ease root cause
	  identification and prevents the caller from pulling the entry with incorrect
	  size.
	  See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4974
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11127>

2026-03-24 14:20:39 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2rbuf.cpp:
	  wasapi2sink: Ignore device errors from default device
	  Temporary device-invalidated errors from an automatic
	  stream-routing-aware default device are expected. Ignore
	  them, as we do in the read path
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4971
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11120>

2026-03-23 22:53:08 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/vulkan/vkvp9dec.c:
	  vulkanvp9dec: Fix case in device-specific factory name
	  Previously this would become `vulkanVp9device1dec` and now it becomes
	  `vulkanvp9device1dec` which is consistent with the format used by all other
	  decoders.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11117>

2026-03-20 10:11:23 +0100  Johan Sternerup <johast@axis.com>

	* gst-libs/gst/webrtc/nice/nice.c:
	  nice: Fix leak of nice thread
	  Leak of nice thread also means leaking the nice object, its members, the
	  associated main context along with its file descriptor etc.
	  This is a scenario that could cause a leak:
	  1. Application sets webrtcbin state to NULL.
	  2. webrtcbin calls ice_close() when transitioning to NULL state.
	  3. nice triggers a close function (close_main_cb) to execute within the
	  nice thread.
	  4. close_main_cb starts executing within the nice thread, obtains a
	  strong ref on the nice object, invokes nice_agent_close_async() and
	  waits until its associated callback fires.
	  5. Application unrefs webrtcbin triggering its dispose() method which in
	  turn unrefs the nice object.
	  6. Within the nice thread nice_agent_close_async() finishes and
	  close_main_cb unrefs the nice object and now this is the last reference,
	  which means that disposing/finalization is invoked.
	  7. The finalization of nice now runs within the nice thread itself,
	  which means that that it gets stuck when trying to stop the thread, i.e.
	  it's waiting for itself to finish.
	  The main problem here is that webrtcbin, which is the entity having
	  ownership of the ice object along with its thread, does not fully take
	  the responsibility of managing the lifecycle of the ice object. If
	  webrtcbin is responsible for starting the thread (indirectly by creating
	  the ice object) it also needs to wait for that thread to finish. The
	  explicit call to ice_close() when going to the NULL state seems like the
	  right place to free resources and stop threads. We just need to make
	  sure that when ice_close() has completed, the ice object should no
	  longer be in an active state, so that we then can safely proceed with
	  unrefing the ice object.
	  We previously had the complete procedure for tearing down the ice object
	  and wait for its completion in-place within the nice-finalize method,
	  which however turns out to be too late. So instead of having two ways of
	  closing the ice object, one incomplete and one at the wrong location,
	  this commit now merge those solutions into one solution that is complete
	  and invoked at the right location.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11112>

2026-03-20 20:30:35 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Do not hold the stream lock when pushing out frames
	  This can (and does) cause a deadlock, you should not hold the stream
	  lock when pushing.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11099>

2026-03-20 13:59:19 +0000  Thibault Saunier <tsaunier@igalia.com>

	* gst/videoparsers/gstav1parse.c:
	* gst/videoparsers/gstvp9parse.c:
	  vp9parse, av1parse: Remove segment clipping to let downstream handle frame boundaries
	  Remove the GST_BASE_PARSE_FRAME_FLAG_CLIP flag that was causing frames outside
	  segment boundaries to be dropped. This was problematic when seeking to positions
	  where keyframes don't align with segment boundaries, as essential keyframes
	  needed for decoding would get dropped.
	  Let downstream elements (decoders, sinks) decide what to do with frames that
	  may fall outside segment boundaries. This is more flexible and consistent
	  with h264parse which also doesn't set this flag.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11087>

2026-03-17 11:21:40 +0100  Albert Sjölund <alberts@axis.com>

	* ext/dtls/gstdtlsdec.c:
	* ext/dtls/gstdtlsdec.h:
	* ext/dtls/gstdtlsenc.c:
	* ext/dtls/gstdtlsenc.h:
	  dtls: unregister signal handlers from connection
	  There is a risk of receiving invalid_closure_notify due to the different
	  lifetimes between connection and self (Dtls), as the unref is part of
	  gstreamer state management and not finalization/dispose. When the
	  connection is cleared make sure to also disconnect the signal handlers.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11079>

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

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

2026-03-18 13:39:29 +0200  Vivia Nikolaidou <vivia@ahiru.eu>

	* gst/mpegtsmux/tsmux/tsmux.c:
	  tsmux: Fix integer overflow in SCTE35 NULL interval
	  The default value corresponds to 300 seconds in ticks of the 90kHz clock. A
	  simple pipeline with `mpegtsmux scte-35-pid=49`, analysed with e.g. Wireshark,
	  showed the SCTE35 NULL packets every 140 seconds instead of 300. Turns out, the
	  default value fits in a guint, but not when multiplied by 300.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11076>

2026-03-17 12:52:18 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/codecparsers/gsth264parser.c:
	  h264parser: Fix memory leak in gst_h264_parser_parse_nal()
	  Thanks to Nicholas Soh for finding the issue and suggesting the correct fix.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4966
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11060>

2026-03-17 10:38:37 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst-libs/gst/vulkan/gstvkimagememory.c:
	  vulkan: Clear mutex when GstVulkanImageMemory is freed
	  Fixes leaks on every frame.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11059>

2026-03-08 10:27:05 -0400  Daniel Morin <daniel.morin@collabora.com>

	* ext/tflite/gsttfliteinference.c:
	  tflite: set PAR to 1:1 by default
	  - Set PAR to 1:1 by default
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11048>

2026-03-07 10:21:37 -0500  Daniel Morin <daniel.morin@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnx: set default pixel-aspect-ratio
	  - All models we currently support expect a par of 1:1
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11048>

2026-03-13 13:14:23 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/applemedia/vtdec.c:
	* sys/applemedia/vtdec.h:
	  vtdec: Store supplemental codec support in a global variable
	  The detection only worked for the first instance, because the lifetime
	  of `av1_once` and `vp9_once` exceeded the lifetime of the `vtdec`
	  instance.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4964
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11045>

2026-01-29 16:08:33 +0900  Seungha Yang <seungha@centricular.com>

	* gst/videoparsers/gsth265parse.c:
	  h265parse: Update buffer duration only when it's invalid
	  Framerate parsed from VUI or upstream caps may be inaccurate or
	  variable. Preserve the upstream buffer duration if it is already valid.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11016>

2026-01-29 16:05:20 +0900  Seungha Yang <seungha@centricular.com>

	* gst/videoparsers/gsth264parse.c:
	  h264parse: Do not update valid DTS and duration
	  Update timestamp only if DTS or duration is invalid
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11016>

2026-02-26 18:21:15 +0900  Seungha Yang <seungha@centricular.com>

	* gst/gdp/gstgdppay.c:
	  gdppay: Fix null pointer dereference on duplicated caps event
	  Also, instead of dropping duplicated caps events, record all events as-is.
	  Given that gdppay is meant to record pipeline data and event flow for
	  reproduction, preserving duplicated events helps to reproduce the original
	  pipeline behavior correctly
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11021>

2026-03-11 08:40:14 +0200  Sebastian Dröge <sebastian@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/soundtouch/gstpitch.cc:
	  soundtouch: Only allow up to 192kHz and 16 channels
	  Any higher numbers are not supported.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11011>

2026-03-11 20:01:39 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* sys/decklink/gstdecklinkvideosink.cpp:
	  decklinkvideosink: fix element leak in decklink callback
	  SetScheduledFrameCompletionCallback takes a reference on the passed-in
	  callback, we thus need to initialize its refcount to 0 for it to
	  get destroyed when we finally call
	  SetScheduledFrameCompletionCallback(NULL);
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11009>

2026-03-11 14:49:08 +0800  He Junyan <junyan.he@intel.com>

	* gst/videoparsers/gstav1parse.c:
	  av1parse: Fix a latent wrong setting of cll in update_src_caps
	  In gst_av1_parse_update_src_caps(), "content-light-level" should be
	  updated when having the cll_str, not the mdi_str.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11003>

2026-03-11 14:40:19 +0800  He Junyan <junyan.he@intel.com>

	* gst/videoparsers/gstav1parse.c:
	  av1parse: Fix the consumed typo in _read_leb128
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11003>

2026-02-21 17:03:48 +0100  Robert Mader <robert.mader@collabora.com>

	* ext/aom/gstav1dec.c:
	  av1dec: Enable VIDEO_META and VIDEO_ALIGNMENT for pool
	  The decoders relies on the GstVideoDecoder base class for buffer pool
	  negotiation, however the later doesn't handle the VIDEO_META and thus
	  doesn't enable the respective pool options as it can't know whether
	  derived classes actually support those.
	  GstAV1Dec does so just fine and enabling the options is required for
	  certain pools like GstVideoDmabufPool. Thus iterate over the pools from
	  the allocation query and enable the options, deferring all further
	  handling to the base class.
	  This approach could potentially serve as a template for varios other sw
	  video decoders as it keeps most complexity in the base class.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10993>

2026-03-04 13:33:11 +0100  Ognyan Tonchev <ognyan@axis.com>

	* ext/srtp/gstsrtpenc.c:
	  srtpenc: preserve ROC when master key is updated for an ongoing session
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10977>

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

	* ext/avtp/gstavtpcrfbase.c:
	* tests/examples/key-handler.c:
	  all: GThreadFunc return type fixes
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10955>

2026-02-25 16:02:05 +0100  Piotr Brzeziński <piotr@centricular.com>

	* ext/vulkan/meson.build:
	* gst-libs/gst/vulkan/meson.build:
	* sys/applemedia/meson.build:
	  vulkan: Fix libMoltenVK.dylib not found when installed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10918>

2026-02-11 16:35:29 +0100  Stéphane Cerveau <scerveau@igalia.com>

	* ext/dash/gstdashsink.c:
	  dashsink: guard splitmuxsink removal in release_pad during dispose
	  During element dispose, GstBin::dispose removes all children before
	  GstElement::dispose releases request pads. This causes release_pad
	  to attempt removing splitmuxsink after it has already been removed,
	  triggering a "not in bin" warning.
	  Check GST_OBJECT_PARENT before calling gst_bin_remove.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10914>

2026-01-16 13:01:16 +0100  Stéphane Cerveau <scerveau@igalia.com>

	* tests/check/elements/dashsink.c:
	  dashsink: test: use playbin3 for DASH playback verification
	  playbin uses decodebin2 which does not set GST_BIN_FLAG_STREAMS_AWARE.
	  dashdemux2 checks for this flag on its parent bin during NULL_TO_READY
	  (gstadaptivedemux.c:744) and errors out when it is missing, causing
	  memory leaks detected by valgrind as "Early exit with return value 20"
	  in a certain timing.
	  With playbin3, the error never happens at all because decodebin3 is streams-aware
	  Switch to playbin3 which uses streams-aware decodebin3, and update
	  expected timestamps since playbin3 normalizes the first PTS to 0.
	  Fixes #4888
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10914>

2026-02-11 13:04:09 +0000  Cole Richardson <crichardson@edgeaisolutions.com>

	* ext/svtav1/gstsvtav1enc.c:
	  svtav1: fix "Level of parallelism" property type discrepencies
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10913>

2026-02-22 15:21:09 +0800  He Junyan <junyan.he@intel.com>

	* gst/videoparsers/gstav1parse.c:
	  av1parse: Split the stream format and alignment logic
	  In current code, the alignment and stream format logic are mixed in one
	  enum, which makes the code logic not very clear. We have a assumption
	  before that the annex-b stream format only appears when the input is TU
	  aligned. But in fact, other kind of input alignments can also have annex-b
	  stream format. So we now split the stream format and alignment logic.
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4919
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10912>

2026-02-22 14:43:22 +0800  He Junyan <junyan.he@intel.com>

	* gst/videoparsers/gstav1parse.c:
	  av1parse: Add the GstAV1ParseStreamFormat enum and helper functions
	  Because we split the stream format logic from alignment, so all the helper
	  functions related to alignment also should be improved.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10912>

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-bad.doap:
	* meson.build:
	  Release 1.28.1

2026-02-23 13:21:25 +0100  Carlos Bentzen <cadubentzen@igalia.com>

	* gst-libs/gst/codecparsers/gsth265parser.c:
	  h265parser: Validate num_decoding_units_minus1 in pic_timing SEI
	  Fixes GST-SA-2026-0012.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10904>

2026-02-20 13:34:50 +0100  Carlos Bentzen <cadubentzen@igalia.com>

	* gst-libs/gst/codecparsers/gsth266parser.c:
	* gst-libs/gst/codecparsers/gsth266parser.h:
	  h266parser: Fix out of bounds write when parsing pic_timing SEI
	  Validate num_decoding_units_minus1 against the array bounds in
	  GstH266PicTiming using READ_UE_MAX.
	  Fixes ZDI-CAN-28839, CVE-2026-3081, GST-SA-2026-0010.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4898
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10901>

2026-02-20 17:40:24 +0100  Carlos Bentzen <cadubentzen@igalia.com>

	* gst-libs/gst/codecparsers/gsth266parser.c:
	  h266parser: Fix APS ID bounds check in APS parsing
	  Use GST_H266_MAX_APS_COUNT - 1 as the upper bound to match the spec
	  constraint and array size.
	  Fixes ZDI-CAN-28911, CVE-2026-3086, GST-SA-2026-0009.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4904
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10899>

2026-02-20 17:10:04 +0100  Carlos Bentzen <cadubentzen@igalia.com>

	* gst-libs/gst/codecparsers/gsth266parser.c:
	  h266parser: Validate tile index bounds in picture partition parsing
	  Ensure computed tile_idx stays within valid range before using it
	  as an array index to prevent out-of-bounds reads.
	  Fixes ZDI-CAN-28910, CVE-2026-3084, SA-2026-0011.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4902
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10898>

2026-02-11 22:07:49 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/codecparsers/gstjpegparser.c:
	  libs: jpegparser: boundary checks before copying it
	  READ_BYTES macro reads data from a byte reader and then copy it to a storage
	  variable. This patch adds a validation that the length to read cannot be bigger
	  than the storage size.
	  This macro right now is used only for storage variables of guint8 arrays.
	  We have validated in the specification (sections F.1.2.1.2 and F.1.2.2.1 in ITU
	  T.81) that Huffman tables (both AC and DC) aren't bigger than 256.
	  Fixes SA-2026-0003, CVE-2026-3082, ZDI-CAN-28840.
	  Fixes: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4899>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10896>

2026-02-12 09:50:23 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/dvbsuboverlay/dvb-sub.c:
	  dvbsuboverlay: Avoid integer overflows and unreasonably large displays/regions
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10894>

2026-02-11 20:45:12 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/dvbsuboverlay/dvb-sub.c:
	  dvbsuboverlay: Add missing bounds checks to the parser everywhere
	  Fixes SA-2026-0007, ZDI-CAN-28838, CVE-2026-2923.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4897
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10894>

2026-02-25 17:22:52 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/dvbsuboverlay/dvb-sub.c:
	* gst/dvbsuboverlay/dvb-sub.h:
	  dvbsuboverlay: Mark parsed byte array as const
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10894>

2026-02-22 02:50:20 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/applemedia/meson.build:
	  applemedia: Small simplifications to the vulkan checks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10874>

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

	* sys/applemedia/avfvideosrc.h:
	  avfvideosrc: Small fixes to the plugin header
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10874>

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

	* meson.build:
	* sys/applemedia/meson.build:
	* sys/applemedia/plugin.m:
	  applemedia: Get rid of AVFoundation-related defines
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10874>

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

	* meson.build:
	* sys/applemedia/meson.build:
	* sys/applemedia/plugin.m:
	  applemedia: Remove outdated HAVE_VIDEOTOOLBOX define
	  All platform versions we support have VideoToolbox now.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10874>

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

	* meson.build:
	* sys/applemedia/vtenc.c:
	  applemedia: Fix broken HAVE_VIDEOTOOLBOX_10_9_6 define
	  We now use VTCompressionSessionPrepareToEncodeFrames() correctly.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10874>

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

	* sys/applemedia/meson.build:
	  applemedia: Sort sources list, fix indentation
	  No functional changes.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10874>

2026-02-20 13:23:06 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtenc.c:
	* sys/applemedia/vtenc.h:
	  vtdec: Calculate DTS offset correctly
	  Previous method was too simple and didn't offset DTS enough.
	  videotestsrc ! vtenc_h264 ! qtmux ! fakesink with GST_DEBUG=2 showed
	  qtmux complaining about DTS > PTS right away, on latest macOS at least.
	  If we only ever get one frame from upstream, it'll get pushed out when
	  drain() is called. Otherwise, it goes out as soon as the second frame
	  arrives and we can calculate the offset. Of course in some cases we know
	  right away that DTS offset won't be needed and then this is all
	  bypassed.
	  If incoming frames don't have PTS set, we don't set a DTS offset at all.
	  This is because VideoToolbox, according to its docs, simply requires PTS
	  to be provided alongside the frame being submitted to the encoder. From
	  my testing, when PTS is invalid, VT will just not set DTS at all on the
	  output buffers, so we don't need the offset.
	  1st PTS minus 2nd PTS should always give us enough offset while being
	  more precise than e.g. using the DBP size instead. Similar logic is
	  already used in other encoders such as vah26*enc or svthevcenc.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10873>

2026-02-20 16:05:14 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Fix wrong DPB size check in the output loop
	  The condition was always slightly wrong, but rather harmless. However
	  after my 'fix' in 30b213a86fd5ed8f654572bd35dff31af5a36334 it became
	  possible that with dpb_size=0 we end up busy looping because obviously
	  the queue length could not be <0, so the loop would never sleep...
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10863>

2026-02-19 16:47:12 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtenc.c:
	* sys/applemedia/vtenc.h:
	  vtenc: Make sure draining actually drains all frames, port fixes from vtdec, unify naming
	  This commit mostly ports existing fixes from vtdec to vtenc. Also makes
	  them use the same naming to follow/compare the logic easier.
	  vtenc was missing the is_draining flag that we already have in vtdec.
	  It's mostly useful to make sure the output loop outputs all the frames
	  from the queue before it pauses when draining. Without it, it's possible
	  for some frames to end up being flushed instead of drained.
	  Additionally, if we're draining or flushing, the output callback will
	  now always push to the output queue no matter if it goes over the size
	  limit. This is already present in vtdec and reduces the risk of the VT
	  thread getting stuck when the output loop stops and won't actively
	  consume buffers.
	  I also renamed a few functions to make them match vtdec and make more
	  sense.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10860>

2026-02-19 16:30:07 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtdec.c:
	* sys/applemedia/vtdec.h:
	  vtdec: Make sure VT thread won't get stuck after a downstream error
	  Without this, if output loop stops because of an error we might end up
	  stuck because the VT thread can't push out the remaning frames.
	  This is already present in vtenc and is also needed here in vtdec.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10860>

2026-02-19 16:27:45 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Fix return value in flush()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10860>

2026-02-20 14:19:42 -0500  Daniel Morin <daniel.morin@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnx: set dims_order on GstTensor
	  - set dims_order on GstTensor
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10862>

2026-02-20 14:18:03 -0500  Daniel Morin <daniel.morin@collabora.com>

	* gst/tensordecoders/gstyolosegtensordecoder.c:
	* gst/tensordecoders/gstyolotensordecoder.c:
	  tensordecoders: fix wrong dims_order check
	  - Use correct DIM_ORDER on GstTensor check for YOLO tensor decoders
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10862>

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

	* sys/va/gstvavp8enc.c:
	  vavp8enc: set color format chroma
	  With the refactor of the encoder helper open methods, a hidden bug in vp8
	  encoder appeared, because the rt_format was never assigned, relying on a default
	  value that were removed.
	  This patch sets the format's chroma before opening the encoder helper object.
	  Fixes: #4906
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10806>

2026-02-12 19:24:41 -0500  Monty C <montyc1999@gmail.com>

	* sys/decklink/meson.build:
	  meson: Explicitly use cpp_std=c++11 for decklink
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10804>

2026-02-17 17:01:48 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* docs/libs/codecparsers/sitemap.txt:
	  doc: codecparsers: Switch to gi-index
	  The since marker comment are not working when using the c-index.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10851>

2026-02-17 15:09:09 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/codecparsers/gstav1bitwriter.c:
	* gst-libs/gst/codecparsers/gstav1parser.c:
	* gst-libs/gst/codecparsers/gsth264bitwriter.c:
	* gst-libs/gst/codecparsers/gsth264parser.c:
	* gst-libs/gst/codecparsers/gsth264parser.h:
	* gst-libs/gst/codecparsers/gsth265bitwriter.c:
	* gst-libs/gst/codecparsers/gsth265parser.c:
	* gst-libs/gst/codecparsers/gsth265parser.h:
	* gst-libs/gst/codecparsers/gsth266parser.c:
	* gst-libs/gst/codecparsers/gsth266parser.h:
	* gst-libs/gst/codecparsers/gstjpeg2000sampling.h:
	* gst-libs/gst/codecparsers/gstjpegbitwriter.c:
	* gst-libs/gst/codecparsers/gstjpegparser.c:
	* gst-libs/gst/codecparsers/gstmpegvideometa.c:
	* gst-libs/gst/codecparsers/gstmpegvideoparser.c:
	* gst-libs/gst/codecparsers/gstvc1parser.c:
	* gst-libs/gst/codecparsers/gstvc1parser.h:
	* gst-libs/gst/codecparsers/gstvp9bitwriter.c:
	* gst-libs/gst/codecparsers/gstvp9parser.c:
	* gst-libs/gst/codecparsers/gstvp9parser.h:
	  codecparsers: Fix annotation warnings reported at GIR constructions
	  This fixes all the minor warning emited buy the GIR generator.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10851>

2026-02-17 15:06:18 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/codecparsers/gsth265parser.h:
	* gst-libs/gst/codecparsers/gstvc1parser.c:
	* gst-libs/gst/codecparsers/gstvc1parser.h:
	* tests/check/libs/h265parser.c:
	  codecparsers: h265/vc1: Add missing namespace to some defines
	  This is effectively an API break, but I think its fair break considering the
	  risk of clash.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10851>

2026-02-17 15:04:37 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/codecs/meson.build:
	  build: codecs: Add gir dependency to the new GstCodecParsers gir
	  This fixes warning when structures from the parsers are exposed through the
	  codecs library API.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10851>

2026-02-17 15:01:07 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/codecs/gsth265decoder.c:
	* gst-libs/gst/codecs/gsth265decoder.h:
	* sys/v4l2codecs/gstv4l2codech265dec.c:
	  codec: h265decoder: Fix annotation and constify return value
	  gst_h265_decoder_get_sps_ext() return a bare pointer inside an array own by the
	  base class. Fix the annotation and constify the return value. Fix its single
	  usage in v4l2 codecs.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10851>

2026-02-17 13:32:14 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* docs/meson.build:
	* gst-libs/gst/codecparsers/meson.build:
	  build: codecparsers: Create a GIR file needed for since marking
	  Without a GIR file, despite the absence of GObject in this library, the
	  documentation script cannot resolved the since marker. Forcing hacks to ignore
	  newly introduce symbols. This also prevented a lot of annotation error
	  from being reported.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10851>

2026-02-17 13:29:41 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/codecparsers/meson.build:
	  build: codecparsers: Install some newly introduce API headers
	  This notably install the bitwriter headers included in the API but with their
	  headers not being installed.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10851>

2026-02-17 13:28:23 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/codecs/meson.build:
	  build: codecs: Small style improvement
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10851>

2026-02-17 13:26:59 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/codecs/meson.build:
	  build: codecs: Add AV1 decoder to the GIR includes
	  Add missing AV1 decoder header to the GIR include flags. Since there
	  is no central header for this library, we need to pass every codec
	  headers to the GIR so all the symbols are resolved.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10851>

2026-02-18 19:49:25 -0500  Detlev Casanova <detlev.casanova@collabora.com>

	* sys/v4l2codecs/gstv4l2codech265dec.c:
	  v4l2codecs: Set long and short term RPS controls
	  Some hardware need that information to decode HEVC frames (e.g.:
	  Rockchip rk3588 SoC).
	  Those controls were added in linux 6.20
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10851>

2026-01-26 11:56:44 -0500  Detlev Casanova <detlev.casanova@collabora.com>

	* gst-libs/gst/codecs/gsth265decoder.c:
	* gst-libs/gst/codecs/gsth265decoder.h:
	  codecs: h265dec: Parse extended SPS information
	  This extra information allow notably parsing of the
	  slices headers inside the accelerator.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10851>

2026-01-26 11:53:02 -0500  Detlev Casanova <detlev.casanova@collabora.com>

	* gst-libs/gst/codecparsers/gsth265parser.c:
	* gst-libs/gst/codecparsers/gsth265parser.h:
	  h265parser: Store raw short/long term RPS sets
	  In order to support the new V4L2 HEVC stateless controls the raw values
	  from the long and short term RPS sets need to be kept.
	  The raw values are used in those controls so that they are kept
	  compatible with the Vulkan API.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10851>

2025-06-27 11:24:04 -0400  Detlev Casanova <detlev.casanova@collabora.com>

	* sys/v4l2codecs/linux/v4l2-controls.h:
	* sys/v4l2codecs/linux/videodev2.h:
	  v4l2codecs: Add short and long term controls in linux headers
	  Add the new V4L2_CID_STATELESS_HEVC_EXT_SPS_ST_RPS and
	  V4L2_CID_STATELESS_HEVC_EXT_SPS_LT_RPS controls in the linux kernel header.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10851>

2026-02-12 16:04:04 +0100  Hyunjun Ko <zzoon@igalia.com>

	* ext/vulkan/vkav1dec.c:
	  vkav1dec: fix to set SavedOrderHints properly
	  This fixes to play AV1 correctly on hardwares that require
	  SavedOrderHints, eg. ANV.
	  Otherwise the params is going to be reset to 0 during initialization.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10846>

2026-02-19 17:22:59 +0900  Seungha Yang <seungha@centricular.com>

	* gst/closedcaption/gstccconverter.c:
	  ccconverter: Reset counters on flush-stop
	  ... instead of flush-start. flush-start event can happen
	  at arbitrary points while the element is processing data
	  in streaming thread, which may cause races. Reset counters
	  on flush-stop to ensure that the reset happens after
	  the streaming thread no longer processing data
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10845>

2026-02-19 15:43:13 +0900  Seungha Yang <seungha@centricular.com>

	* gst/closedcaption/gsth264ccextractor.c:
	* gst/closedcaption/gsth265ccextractor.c:
	  h264,h265ccextractor: Fix framerate in initial caps
	  Update framerate in set_format() as well so that
	  the input framerate is copied to the initial output caps
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10841>

2026-02-09 12:33:41 -0500  Dominique Leroux <dominique.p.leroux@gmail.com>

	* sys/applemedia/avfassetsrc.h:
	* sys/applemedia/avfassetsrc.m:
	* sys/applemedia/avfdeviceprovider.h:
	* sys/applemedia/avfdeviceprovider.m:
	* sys/applemedia/avfvideosrc.h:
	* sys/applemedia/avfvideosrc.m:
	* sys/applemedia/avsamplevideosink.h:
	* sys/applemedia/avsamplevideosink.m:
	* sys/applemedia/helpers.h:
	* sys/applemedia/helpers.m:
	* sys/applemedia/iosassetsrc.h:
	* sys/applemedia/iosassetsrc.m:
	* sys/applemedia/meson.build:
	* sys/applemedia/plugin.m:
	* sys/applemedia/vtdec.c:
	* sys/applemedia/vtdec.h:
	* sys/applemedia/vtenc.c:
	* sys/applemedia/vtenc.h:
	  applemedia: elements can now be individually registered with gst-full
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10828>

2026-02-17 17:41:41 +0900  Seungha Yang <seungha@centricular.com>

	* sys/asio/gstasioringbuffer.cpp:
	  asiosink: Fill silence when paused
	  Due to the ASIO API design, it's not possible to pause a specific
	  ASIO device channel. Fill silence instead to avoid garbage noise
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4909
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10830>

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

	* sys/applemedia/vtdec.c:
	  vtdec: Fix GstVideoCodecState leak
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10807>

2026-02-11 19:26:07 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/ladspa/gstladspa.c:
	* gst/frei0r/gstfrei0r.c:
	  frie0r, ladspa: Stop using G_MODULE_SUFFIX
	  And define GST_EXTRA_MODULE_SUFFIX inside the plugin sources, since it
	  is no longer set in config.h
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10807>

2026-02-11 19:25:09 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/lv2/gstlv2.c:
	* meson.build:
	* sys/shm/shmpipe.c:
	  macos: Stop using HAVE_OSX, use built-in macros instead
	  The host_system == 'darwin' check is incorrect for this anyway.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10807>

2026-02-02 21:37:05 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/applemedia/vtdec.c:
	* sys/applemedia/vtdec.h:
	  vtdec: Check for AV1 and VP9 support once
	  And don't warn if they aren't supported. Prevents spammy warnings when
	  playing an fmp4 stream which reconfigures every segment.
	  Ensure that we check it dynamically during caps negotiation, so that
	  we do not enable this supplemental support if not necessary, since it
	  is process-wide and (likely) reserves resources.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10807>

2026-01-28 16:58:03 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* meson.build:
	* sys/applemedia/meson.build:
	* sys/applemedia/plugin.m:
	  applemedia: Disable avfvideosrc and avfdeviceprovider on tvOS/watchOS
	  AVCaptureDevice isn't available on watchOS, and it's only available on
	  tvOS 17.0+. It's not clear how to make an entire element dynamically
	  available via __builtin_available() so just disable it for now.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10807>

2026-01-28 15:53:05 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/applemedia/vtenc.c:
	  vtenc: Fix build with tvOS
	  https://developer.apple.com/documentation/videotoolbox/kvtcompressionpropertykey_constantbitrate
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10807>

2026-01-28 14:41:03 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/applemedia/avfvideosrc.m:
	  avfvideosrc: Add support for newer iOS 17+ APIs
	  The orientation property is deprecated, and has been replaced with
	  videoRotationAngle. Coincidentally, this is also the only way to do
	  rotation on tvOS.
	  Left TODOs for some of the features that are also available on newer
	  macOS now.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10807>

2026-01-28 14:04:41 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Software decoders are now more widely available
	  When software decoders are available, we now register a separate
	  vtdec_hw, similar to macOS.
	  http://developer.apple.com/documentation/videotoolbox/kvtvideodecoderspecification_enablehardwareacceleratedvideodecoder
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10807>

2026-01-28 14:00:07 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: VTRegisterSupplementalVideoDecoderIfAvailable is widely available
	  It's also available on tvOS and visionOS.
	  https://developer.apple.com/documentation/videotoolbox/vtregistersupplementalvideodecoderifavailable(_:)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10807>

2026-01-28 14:04:05 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/applemedia/meson.build:
	* sys/applemedia/plugin.m:
	* sys/applemedia/videotexturecache-gl.h:
	* sys/applemedia/videotexturecache-gl.m:
	* sys/applemedia/vtdec.c:
	  applemedia: Enable EAGL support on tvOS too
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10807>

2026-01-28 13:58:16 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/applemedia/avfdeviceprovider.m:
	  avfdeviceprovider: AVCaptureDevice manufacturer is more widely available
	  https://developer.apple.com/documentation/avfoundation/avcapturedevice/manufacturer
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10807>

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

	* meson.build:
	* sys/applemedia/avfdeviceprovider.m:
	* sys/applemedia/avfvideosrc.m:
	* sys/applemedia/corevideobuffer.c:
	* sys/applemedia/plugin.m:
	* sys/applemedia/videotexturecache-gl.h:
	* sys/applemedia/videotexturecache-gl.m:
	* sys/applemedia/videotexturecache-vulkan.mm:
	* sys/applemedia/videotexturecache.m:
	* sys/applemedia/vtdec.c:
	* sys/applemedia/vtenc.c:
	  applemedia: Stop using HAVE_IOS, use TARGET_OS_* macros instead
	  HAVE_IOS is being used incorrectly, because iOS vs macOS are not the
	  only two choices.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10807>

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

	* ext/sctp/usrsctp/meson.build:
	* gst-libs/gst/vulkan/meson.build:
	* meson.build:
	* sys/applemedia/meson.build:
	* sys/decklink/meson.build:
	* sys/shm/meson.build:
	* tests/examples/avsamplesink/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-01-28 11:40:08 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/ladspa/gstladspa.c:
	  ladspa: Fix macOS detection
	  The macOS ifdefs were also incorrectly enabled for iOS.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10807>

2026-02-16 17:17:07 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Avoid busy looping when queue length is smaller than DPB size
	  The check for whether the output loop should sleep was wrong. If we had
	  something in the queue but not enough to push frames out (depending on
	  the DPB size), we'd busy loop until that changed. If the input data
	  happened to stop at that point, vtdec would busy loop until EOS arrives,
	  which doesn't always happen instantly. This just makes sure we're
	  checking for the same thing in both places, eliminating this weirdness.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10827>

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-16 10:51:53 +0800  Xi Ruoyao <xry111@xry111.site>

	* ext/zxing/gstzxing.cpp:
	  zxing: Fix version check for zxing-cpp 3.0.1
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10813>

2026-02-12 14:40:40 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvabasetransform.c:
	  vabasetransform: copy buffer's metadata at copy when import buffer
	  When downstream doesn't support video meta, the buffer needs to be imported to a
	  VA surface by copying the frame data. But buffer's metadata weren't copied. This
	  patch fixes it by calling base class copy_metadata() virtual method.
	  Original-patch-by: carol-lim <carol.lim@intel.com>
	  Fixes: #4866
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10810>

2026-02-11 09:59:53 +0000  axxel <awagger@gmail.com>

	* ext/zxing/gstzxing.cpp:
	  zxing: Minimal support for compiling with zxing-cpp 3.x
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10799>

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

	* sys/applemedia/vtdec.c:
	  vtdec: Fix CM memory leak due to incorrect unref
	  The GstMemory was being leaked for each frame because
	  gst_memory_unmap() was setting info->memory to NULL, making the unref
	  a no-op. We need to store a separate ref to the memory.
	  This broke in 9baf4701f04ee238db6282f4f348a43ca5a299a9, where
	  info->memory now starts to get cleared on unmap.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10795>

2026-02-10 22:12:56 +0100  Sjoerd Simons <sjoerd@collabora.com>

	* gst-libs/gst/wayland/gstwlwindow.c:
	  waylandsink: make gst_wl_window_commit_buffer handle NULL buffers
	  gst_wl_window_commit_buffer is meant to clear the various surfaces when passed
	  a NULL buffer. In 130e093d5c ("wayland: window: Add the ability to offload
	  cropping"), this case was broken. Correct that.
	  Fixes: 130e093d5c ("wayland: window: Add the ability to offload cropping")
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10793>

2026-02-06 13:09:02 +0100  Stéphane Cerveau <scerveau@igalia.com>

	* gst-libs/gst/vulkan/gstvkdecoder-private.c:
	* gst-libs/gst/vulkan/gstvkencoder-private.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.h:
	  vulkan: load video function pointers conditionally based on codec operation
	  Split GST_VULKAN_DEVICE_VIDEO_FN_LIST into COMMON, DECODE, and ENCODE
	  sub-lists so that gst_vulkan_video_get_vk_functions() only loads the
	  function pointers relevant to the codec operation being used.
	  Previously, both decoder and encoder would attempt to load all Vulkan
	  Video function pointers unconditionally, causing initialization to fail
	  on drivers that only support one direction (e.g. decode-only drivers
	  would fail to find vkCmdEncodeVideoKHR).
	  Now the decoder only requires CmdDecodeVideo while the encoder only
	  requires CmdEncodeVideo, GetEncodedVideoSessionParameters, and
	  GetPhysicalDeviceVideoEncodeQualityLevelProperties.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10773>

2026-02-04 16:32:01 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst-libs/gst/vulkan/meson.build:
	* sys/applemedia/meson.build:
	  meson: Add a subproject for providing the LunarG MoltenVK SDK
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10752>

2026-02-04 16:38:21 +0200  Sebastian Dröge <sebastian@centricular.com>

	* sys/aja/gstajasinkcombiner.cpp:
	  ajasinkcombiner: Only forward the segment events from the video sinkpad
	  It's the video buffers with their timestamps that are forwarded, not the audio
	  ones, and if both segments are different then this won't work.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10748>

2026-01-23 12:13:09 +0100  Stéphane Cerveau <scerveau@igalia.com>

	* ext/openh264/gstopenh264enc.cpp:
	  openh264enc: remove broken drain and simplify handle_frame
	  OpenH264 encoder does not support B-frames for any profile, or other
	  advanced encoding
	  feature which could require frame buffering, so there
	  are no potential frames to drain. The drain code was also broken as
	  EncodeFrame() rejects NULL input with cmInitParaError.
	  Remove the non-functional drain loop and clean up handle_frame() by
	  removing dead code paths that were only needed for the broken drain.
	  Add defensive NULL frame check with error logging.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10739>

2026-01-22 14:39:46 +0100  Stéphane Cerveau <scerveau@igalia.com>

	* ext/openh264/gstopenh264enc.cpp:
	* ext/openh264/gstopenh264enc.h:
	  openh264enc: skip drain for baseline profile
	  Baseline profile doesn't use B-frames, so there are no buffered frames
	  to drain at EOS. Attempting to drain by calling EncodeFrame with NULL
	  input causes openh264 to return cmInitParaError and log a spurious
	  error message.
	  Store the profile when initializing the encoder and check it in finish()
	  to skip the unnecessary drain call for baseline profile.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10739>

2025-12-30 18:22:47 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* gst/mpegtsmux/tsmux/tsmux.c:
	* gst/mpegtsmux/tsmux/tsmuxcommon.h:
	  tsmux: reduce noise for DEBUG log level
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10736>

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

	* docs/plugins/gst_plugins_cache.json:
	* gst/frei0r/gstfrei0rsrc.c:
	  frei0r-src: 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 21:28:10 +0100  Christian Gräfe <cgraefe83@gmail.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/rtp/gstrtpsrc.c:
	  rtpsrc: 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 21:25:37 +0100  Christian Gräfe <cgraefe83@gmail.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/avtp/gstavtpsrc.c:
	  avtpsrc: 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 21:21:08 +0100  Christian Gräfe <cgraefe83@gmail.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/unixfd/gstunixfdsrc.c:
	  unixfdsrc: 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 21:15:08 +0100  Christian Gräfe <cgraefe83@gmail.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/debugutils/gstvideocodectestsink.c:
	  videocodectestsink: fix typo in klass
	  use "Video" instead of "video"
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10729>

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

	* docs/plugins/gst_plugins_cache.json:
	  gst: also adapt author names in the gst_plugins_cache.json files
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10729>

2026-01-04 19:25:58 +0100  Christian Gräfe <cgraefe83@gmail.com>

	* ext/webp/gstwebpdec.c:
	* ext/webrtcdsp/gstwebrtcechoprobe.cpp:
	* gst/videoparsers/gstmpegvideoparse.c:
	  gst-plugins: fix author name: correct incomplete or wrong emails
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10729>

2026-01-04 19:02:19 +0100  Christian Gräfe <cgraefe83@gmail.com>

	* gst/debugutils/gstvideocodectestsink.c:
	* gst/rist/gstristrtpdeext.c:
	* gst/rist/gstristrtpext.c:
	* gst/rist/gstristsink.c:
	* gst/rist/gstristsrc.c:
	* gst/rist/gstroundrobin.c:
	* sys/ipcpipeline/gstipcslavepipeline.c:
	  gst: fix author name: add missing closing angle bracket
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10729>

2026-01-04 18:51:07 +0100  Christian Gräfe <cgraefe83@gmail.com>

	* ext/dtls/gstdtlsdec.c:
	* ext/dtls/gstdtlsenc.c:
	* ext/dtls/gstdtlssrtpdec.c:
	* ext/dtls/gstdtlssrtpdemux.c:
	* ext/dtls/gstdtlssrtpenc.c:
	  dtls: fix author name: add missing angle brackets
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10729>

2026-01-04 19:59:13 +0100  Christian Gräfe <cgraefe83@gmail.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/fieldanalysis/gstfieldanalysis.c:
	  fieldanalysis: adapt klass to recommendation
	  - use recommended "Analyzer" instead of "Analysis"
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10729>

2026-01-04 19:54:15 +0100  Christian Gräfe <cgraefe83@gmail.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/videofilters/gstzebrastripe.c:
	  zebrastripe: adapt klass to recommendation
	  - use "Video" as the element operates on base type video
	  - use recommendated "Analyzer" instead of "Analysis"
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10729>

2026-01-04 21:21:41 +0100  Christian Gräfe <cgraefe83@gmail.com>

	* docs/plugins/gst_plugins_cache.json:
	  gst-plugins-bad: remove trailing spaces: update gst_plugins_cache.json
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10729>

2026-01-04 14:31:05 +0100  Christian Gräfe <cgraefe83@gmail.com>

	* ext/smoothstreaming/gstsmoothstreaming-plugin.c:
	  smoothstreaming: remove trailing space from desc
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10729>

2026-01-04 14:24:47 +0100  Christian Gräfe <cgraefe83@gmail.com>

	* ext/openni2/gstopenni2src.cpp:
	  openni2src: remove trailing space from desc
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10729>

2026-01-04 14:15:07 +0100  Christian Gräfe <cgraefe83@gmail.com>

	* gst/siren/gstsirendec.c:
	* gst/siren/gstsirenenc.c:
	  siren: remove trailing space from klass
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10729>

2026-01-30 16:55:11 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* gst/closedcaption/gstcea608mux.c:
	  cea608mux: fix overflow when calculating output PTS
	  In the presence of a 60000 / 1001 framerate, the previous method of calculation
	  would overflow after 10 hours.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10726>

2026-01-11 20:44:46 -0500  Daniel Morin <daniel.morin@collabora.com>

	* ext/analyticsoverlay/gstobjectdetectionoverlay.c:
	  objectdetectionoverlay: add support for rotated bounding boxes
	  - Use angle from GstAnalyticsODMtd
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10671>

2026-01-21 16:24:50 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/wayland/gstwlwindow.c:
	  wayland: Fix CLAMP operation of maxFALL and maxCLL
	  The CLAMP operation was simply called the wrong way, which resulted in returning
	  the original value without clipping. This fixes !9353.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10685>

2026-01-30 16:09:30 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Fix race condition when negotiating during playback
	  Follow up to 376eee3bb1250cdf0f4aeab9f362c01f291dfd55 - this change
	  should have the same intended effect but removes a rare race condition.
	  After the above commit it became possible for the output loop to be
	  active in two threads at once and attempt to push frames from both,
	  possibly out of order. That's because both the thread that calls
	  set_format() and the normal output loop thread would eventually end up
	  calling drain_decoder(). When that happened, the srcpad task loop would
	  quit correctly, but the manual call to the output loop function in
	  drain_decoder() could get stuck due to the drain/flush flags being reset
	  from the other thread.
	  This change makes sure we never call the output loop from anywhere else
	  than the srcpad task. Instead of that, the output loop will not pause
	  while drain/flush is active as long as there are any frames in the
	  output queue. This makes sure that in drain_decoder(), when we request
	  the loop to pause, all frames will be out by the time that call returns.
	  At the same time, a pause requested from change_state() won't be
	  affected.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10715>

2026-01-30 16:08:41 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Add more debug logging
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10715>

2026-01-30 16:26:36 +0100  François Laignel <francois@centricular.com>

	* gst/audiobuffersplit/gstaudiobuffersplit.c:
	  audiobuffersplit: fix reverse playback
	  Problem found rendering an F32 stream.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10712>

2026-01-29 16:49:26 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Don't re-create session if only the framerate changed
	  Playing back some fMP4 files can trigger caps events at fragment
	  boundaries where only the framerate changes. We shouldn't re-create the
	  decoder session in this case, because the new fragment may still depend
	  on reference frames from the previous fragment. Re-creating the session
	  makes VT unable to decode a part of the new fragment, resulting in
	  missing frames for a while.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10702>

2026-01-23 13:13:08 +0100  Rinat Zeh <rinat.zeh@i-rz.de>

	* ext/mpeghdec/gstmpeghdec.c:
	  mpeghdec: memory leak fix in MPEG-H Audio decoder plugin
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10687>

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

	* gst/audiobuffersplit/gstaudiobuffersplit.c:
	* gst/audiobuffersplit/gstaudiobuffersplit.h:
	  audiobuffersplit: Implement negative rates correctly
	  Change segments with negative rates to segments with positive rate and negated
	  applied rate, and accordingly adjust timestamps and reverse all samples in every
	  buffer before passing to the adapter.
	  This makes sure that chunking of output buffers is still done correctly while
	  keeping all samples in order. Previously each buffer would be output with
	  samples in positive order, but there would be discontinuities with jumps
	  backward at every input buffer.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10670>

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

	* gst/audiobuffersplit/gstaudiobuffersplit.c:
	  audiobuffersplit: Convert gap events to silence buffers
	  Otherwise they would potentially pass ahead of previous buffers that are still
	  in the adapter, or otherwise cause inconsistent output.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10670>

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

	* gst/audiobuffersplit/gstaudiobuffersplit.c:
	  audiobuffersplit: Handle SEGMENT_DONE the same way as EOS
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10670>

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

	* gst/audiobuffersplit/gstaudiobuffersplit.c:
	  audiobuffersplit: Send any pending segment before EOS/SEGMENT_DONE
	  This is still not entirely correct but at least makes sure that a pending segment is sent downstream at all.
	  See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6019
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10670>

2026-01-16 18:19:08 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/audiobuffersplit/gstaudiobuffersplit.c:
	  audiobuffersplit: Log if an input buffer has the discont flag set or not
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10670>

2026-01-16 18:18:40 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/audiobuffersplit/gstaudiobuffersplit.c:
	  audiobuffersplit: Don't use floating point divisions unnecessarily
	  Also rename variables for clarity.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10670>

2026-01-16 18:17:42 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/audiobuffersplit/gstaudiobuffersplit.c:
	  audiobuffersplit: Use the output segment for output related calculations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10670>

2026-01-16 18:17:00 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/audiobuffersplit/gstaudiobuffersplit.c:
	  audiobuffersplit: Correctly calculate adapter start/end running time for negative rates
	  Running time still increases normally.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10670>

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

	* gst-libs/gst/vulkan/ios/gstvkwindow_ios.m:
	  vulkan/ios: Fix scaling and resizing with UIView
	  * layoutSubviews was misspelled, so it was never being called
	  * Vulkan wants the size in pixels, and the CGRect is in points, so it
	  must be scaled
	  * Update drawable size when the window object changes
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10669>

2025-12-04 10:55:18 -0800  Deepa Guthyappa Madivalara <deepa.madivalara@oss.qualcomm.com>

	* sys/v4l2codecs/linux/videodev2.h:
	  v4l2: Add support for AV1 V4l2 decoder
	  Introduce support for new pixelformat V4L2_PIX_FMT_AV1
	  mapping to AV01.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10664>

2026-01-28 13:31:14 +0000  freedesktop <andreas.campagna@ac-cloud.eu>

	* gst-libs/gst/play/gstplay.c:
	  gstplay: fix reference counting
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10660>

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

	* gst/tensordecoders/gstclassifiertensordecoder.c:
	  classifiertensordecoder: Fix uninitialized variable compiler warning
	  And also remove some dead code: self->class_quark is always set at this point.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4871
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10656>

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

	* gst-libs/gst/va/gstvadisplay.c:
	  vadisplay: 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 10:22:21 +0000  Philippe Normand <philn@igalia.com>

	* ext/webrtc/gstwebrtcbin.c:
	  webrtcbin: Check the presence of encoding-name fields in answer caps
	  The caps returned by `gst_sdp_media_get_caps_from_media()` can potentially be
	  incomplete if the input SDP has been altered by a third party, so in those cases
	  skip to the next payload when processing answer caps.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10662>

2026-01-27 17:36:15 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Implement drain() to allow reverse playback
	  Outputs what it can output and then flushes the leftovers in case there was an error when
	  pushing frames downstream. Matches v4l2dec's behaviour.
	  Without this `gst_video_decoder_drain_out()` would do nothing and reverse playback
	  would just get stuck.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10654>

2026-01-27 17:22:47 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Make sure to reset last flow return when flushing
	  Otherwise if we hit e.g. an EOS before a flush, it could stick around
	  and cause any following frames to be ignored in handle_frame().
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10654>

2026-01-27 16:40:29 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Fix a very slight race in handle_frame() when flushing
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10654>

2026-01-21 11:12:52 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Always reset flushing flag in flush()
	  Previous version assumed that flush-stop would always be received after a flush() call, but the base video decoder class
	  will just simply use that function in reverse playback without sending any events, causing the flag to be stuck.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10654>

2026-01-22 16:32:27 +0900  Seungha Yang <seungha@centricular.com>

	* gst/codectimestamper/gstcodectimestamper.c:
	  codectimestamper: Fix latency query handling
	  Add missing max latency value update
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10653>

2026-01-20 14:25:52 +0100  François Laignel <francois@centricular.com>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: always send a segment before sending eos or segment-done
	  When a seek was requested past the end of the stream an eos or segment-done
	  event was sent without the segment event.
	  The segment event is sent before the first buffer is pushed and it takes care
	  of adjusting the segment with regard to the max_temporal_offset
	  (see in `gst_mxf_demux_handle_generic_container_essence_element ()`). If no
	  buffer can be sent, the segment is not sent.
	  This commit makes sure a segment is sent before pushing any eos or
	  segment-done event.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10650>

2025-12-11 15:51:03 +0100  Edward Hervey <edward@centricular.com>

	* gst/mpegtsdemux/tsdemux.c:
	  tsdemux: Simplify initial packet handling
	  * If there's no payload, we don't care about it
	  * If we have a non-PUSI packet and we are empty, return early
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10643>

2025-11-14 16:04:04 +0100  Edward Hervey <edward@centricular.com>

	  tsdemux: Fix Continuity Counter handling
	  If a stream has a continuity counter issue we need to immediately:
	  * Drop all pending data, **NOT** flush it downstream (it's incomplete)
	  * Not use that packet, even if it's a PUSI.
	  This avoids two issues with PES:
	  * Processing: a PES Header .. which might come from a misordered packet,
	  introducing bogus timing observations.
	  * Sending: half-complete PES payload downstream when discontinuity happens,
	  which can confuse several bytestream-based codecs/parsers (which rely on a
	  bytecode sequence to detect boundaries, and not a specific payload size).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10643>

2026-01-13 16:01:28 +0100  François Laignel <francois@centricular.com>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: fix gst_mxf_demux_pad_get_stream_time ()
	  `gst_mxf_demux_pad_get_stream_time ()` was only considering the `material_track`
	  edit rate while other time related functions such as
	  `gst_mxf_demux_pad_get_current_time ()` use the `material_track` edit rate when
	  summing the duration of all the previous essence track, then use current
	  essence track edit rate for the essence track position.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10633>

2025-11-14 15:15:53 +0100  Edward Hervey <edward@centricular.com>

	* gst/mpegtsdemux/mpegtspacketizer.c:
	  mpegtspacketizer: Handle clock change/resets without skew correction
	  While we don't want to calculate and apply a skew correction, we still need to
	  detect whether upstream clock changed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10635>

2026-01-09 17:05:35 +0200  Sebastian Dröge <sebastian@centricular.com>

	* sys/aja/gstajasinkcombiner.cpp:
	  ajasink: Only allow 6 / 8 / 16 audio channels
	  Any other value is rejected by the SDK and driver, see implementation of
	  `CNTV2Card::SetNumberAudioChannels()`.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10624>

2026-01-14 14:06:04 +0100  Xabier Rodriguez Calvar <calvaris@igalia.com>

	* ext/webrtc/gstwebrtcbin.c:
	* ext/webrtc/transportstream.c:
	* gst-libs/gst/webrtc/nice/nicestream.c:
	  webrtc: sink floating refs of ICE transports
	  We should be returning full refs instead of floating refs when get them queried
	  from properties and we were not because references were not sunk after creation.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10627>

2026-01-05 19:15:10 +0900  Seungha Yang <seungha@centricular.com>

	* sys/nvcodec/gstcudamemorycopy.c:
	  cudaupload, cudadownload: Fix CUDA/GL interop copy path
	  Avoid requiring an element-owned GL context when copying between
	  CUDA and GL memory, since the GL context is already owned by
	  the GLMemory object
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10620>

2026-01-27 18:25:19 +0100  Piotr Brzeziński <piotr@centricular.com>

	* ext/dash/meson.build:
	* ext/smoothstreaming/meson.build:
	* ext/ttml/meson.build:
	  meson: Fix libxml2 not building due to wrong option type
	  'python' was moved from a boolean to a feature a few months ago and
	  4f4260dbe3489699aba0a724a3d55020666a0d6a pulled that in on our side.
	  Notably, this was causing adaptivedemux2 to not build on my system.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10618>

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-bad.doap:
	* meson.build:
	  Release 1.28.0

2026-01-27 15:14:41 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ext/lcevcdecoder/gstlcevch264decodebin.c:
	* ext/lcevcdecoder/gstlcevch265decodebin.c:
	* ext/lcevcdecoder/gstlcevch266decodebin.c:
	  lcevch26xdecodebin: don't autoplug for now until issues with non-LCEVC streams are fixed
	  See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4870
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10612>

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

	* po/LINGUAS:
	* po/ar.po:
	* po/hr.po:
	* po/ro.po:
	  gst-plugins-bad: update translations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10598>

2026-01-19 18:48:39 +0100  Rafael Caricio <rcaricio@netflix.com>

	* sys/applemedia/vtdec.c:
	  vtdec: check AV1 support during caps negotiation
	  Override getcaps vfunc to filter out video/x-av1 from advertised caps
	  when hardware decoding is not supported, rather than failing later in
	  set_format. This allows proper fallback to other decoders during
	  autoplugging.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10562>

2026-01-20 20:27:40 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/rtmp/gstrtmp.c:
	* ext/rtmp/gstrtmpsink.c:
	* ext/rtmp/gstrtmpsrc.c:
	  rtmp: Emit a deprecation warning in init
	  After 1.28.0 is released, we will remove this plugin and have the
	  rtmp2 plugin register these features.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10574>

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

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

2025-12-20 19:56:37 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/androidmedia/gstamc.c:
	* sys/androidmedia/gstamcutils.c:
	* sys/androidmedia/gstamcutils.h:
	* sys/androidmedia/gstamcvideoenc.c:
	* sys/androidmedia/gstjniutils.c:
	* sys/androidmedia/gstjniutils.h:
	* sys/androidmedia/jni/gstamc-codeclist-jni.c:
	* sys/androidmedia/meson.build:
	  amc: Fix init on Android API < 29
	  Not finding isHardwareAccelerated() is an error only for API >= 29.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4693
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10426>

2025-12-20 19:55:45 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/androidmedia/gstjniutils.c:
	  amc: Fix whitespace around gst_amc_jni_call_*_method macros
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10426>

2026-01-14 19:07:40 -0600  Christopher Degawa <ccom@randomderp.com>

	* ext/svtav1/gstsvtav1enc.c:
	  svtav1enc: handle deprecations from SVT-AV1 4.0.0
	  `enable_adaptive_quantization` was replaced by `aq_mode` since it's not
	  a boolean. `target_socket` was removed entirely. If someone wants to
	  pin the encoder to a specific socket, they will have to use external
	  means like numactl etc.
	  Signed-off-by: Christopher Degawa <ccom@randomderp.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10543>

2026-01-12 16:09:38 +0900  Seungha Yang <seungha@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* sys/win32ipc/gstwin32ipc.cpp:
	* sys/win32ipc/gstwin32ipcbasesink.cpp:
	* sys/win32ipc/gstwin32ipcbasesrc.cpp:
	* sys/win32ipc/gstwin32ipcsink.cpp:
	* sys/win32ipc/gstwin32ipcsrc.cpp:
	  win32ipc: Update plugin docs
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10529>

2026-01-12 16:07:54 +0900  Seungha Yang <seungha@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* sys/d3d12/gstd3d12fisheyedewarp.cpp:
	* sys/d3d12/gstd3d12memorycopy.cpp:
	* sys/d3d12/gstd3d12overlaycompositor.cpp:
	* sys/d3d12/gstd3d12remap.cpp:
	  d3d12: Update plugin docs
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10529>

2026-01-12 15:23:24 +0900  Seungha Yang <seungha@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	  wasapi2: Update plugin docs
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10529>

2026-01-12 07:34:24 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaencoder.c:
	  va: encoder: don't fail at close if config isn't created
	  With the last refactor, the configuration of the encoder is lazy, so it's
	  possible to close the encoder without even opened it. But still return FALSE if
	  closing the encoder with no config ID, which generated spurious error logs.
	  This patch also resets the state of the encoder while closing.
	  Fixes: #4852
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10528>

2026-01-13 09:46:48 +0100  Sjoerd Simons <sjoerd@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnx: Reset memory_info after freeing
	  For clarity also reset memory_info to NULL after freeing it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10535>

2026-01-13 08:33:36 +0100  Sjoerd Simons <sjoerd@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Fix invalid free of output names
	  Ensure the output_names array has been allocated before trying to free
	  its elements. This situation happens when the model validation fails
	  before the output names are assigned; I ran into it due to an
	  incorrect model info file.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10535>

2026-01-10 21:27:30 +0100  Ruben Gonzalez <rgonzalez@fluendo.com>

	* tests/check/meson.build:
	  bad: fix indentation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10527>

2026-01-10 15:29:50 +0100  Ruben Gonzalez <rgonzalez@fluendo.com>

	* gst/closedcaption/meson.build:
	* tests/check/meson.build:
	  closedcaption: map with meson options
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10527>

2026-01-07 14:06:03 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/play/gstplay.c:
	  play: Check correct flags for deciding whether a track is enabled
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10503>

2026-01-07 13:25:55 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/play/gstplay.c:
	  play: Move subtitle enabled condition to the right place
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10503>

2026-01-06 18:29:30 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/play/gstplay.c:
	  play: Don't access currently selected audio/video/subtitle stream ids without mutex
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10503>

2026-01-06 18:25:41 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/play/gstplay.c:
	  play: Don't do the same stream selection multiple times
	  playbin3 doesn't respond with a streams-selected message in that case, and apart
	  from that it's also inefficient.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10503>

2026-01-06 14:20:30 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/play/gstplay.c:
	  play: Ignore streams-selected messages for old selections
	  It might happen that we received a new stream-collection and sent a new
	  select-streams event in the meantime, and reacting to the old streams-selected
	  message can cause inconsistent states if the streams have changed.
	  See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9851
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10503>

2025-12-27 18:47:42 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/webrtc/gstwebrtcbin.c:
	* gst-libs/gst/webrtc/ice.c:
	* gst-libs/gst/webrtc/nice/nice.c:
	  webrtc: Change promise in gst_webrtc_ice_close() to `transfer none`
	  This is more in line with other API taking a promise and makes it easier for
	  calling code to keep a reference to the promise around.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4819
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10460>

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

	* meson.build:
	  Back to development after 1.27.90

=== release 1.27.90 ===

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

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

2026-01-05 18:08:00 +0900  jeongmin kwak <jeongmin.kwak@lge.com>

	* gst-libs/gst/codecs/gstvp8decoder.c:
	  vp8decoder: Fix incorrect variable in warning message
	  The warning message for unrecognized copy_buffer_to_golden was
	  incorrectly printing copy_buffer_to_alternate instead of
	  copy_buffer_to_golden. This was a copy-paste error that would
	  display the wrong field value when debugging invalid VP8 streams.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10494>

2026-01-04 21:58:36 +0100  Christian Gräfe <cgraefe83@gmail.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/qroverlay/gstdebugqroverlay.c:
	* ext/qroverlay/gstqroverlay.c:
	  qroverlay: use proper klass
	  klass was not really keywords but a description
	  use base type "Video"
	  and functional type "Overlay" (not defined yet in the docu, but also used by other elements)
	  also fix the long-name of debugqroverlay
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10493>

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

	* ext/assrender/gstassrender.c:
	* ext/sndfile/gstsfsrc.c:
	* ext/ttml/gstttmlrender.c:
	* gst/dvdspu/gstdvdspu.c:
	* gst/segmentclip/gstsegmentclip.c:
	* tools/element-templates/sinkpad:
	  gst: Properly unref pad template caps
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10477>

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

	* ext/mpeg2enc/gstmpeg2enc.cc:
	  mpeg2enc: Fix indentation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10476>

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

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

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

	* ext/mpeg2enc/gstmpeg2enc.cc:
	  mpeg2enc: Fix several memory leaks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10476>

2025-12-26 15:38:07 +0900  jeongmin kwak <jeongmin.kwak@lge.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Fix integer overflow in buffer allocation
	  Use g_size_checked_mul() to safely calculate the buffer size
	  (width * height * channels * element_size) to prevent integer
	  overflow which could lead to undersized buffer allocation and
	  heap corruption.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10449>

2025-12-24 11:28:53 -0500  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/analytics/gstanalyticsmeta.c:
	* gst-libs/gst/analytics/gstanalyticsobjectdetectionmtd.c:
	* gst-libs/gst/analytics/gstanalyticssegmentationmtd.c:
	  analyticsmeta: Export debug category to the Mtd for better debug messages
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10443>

2025-12-24 11:18:25 -0500  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/analytics/gstanalyticsmeta.c:
	  analyticsmeta: Set debug category as default
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10443>

2025-12-24 11:08:10 -0500  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/analytics/gstanalyticsobjectdetectionmtd.c:
	  objectdetectionmtd: Reject transformations that aren't 90deg based or symetries
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10443>

2025-12-24 10:37:50 -0500  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/analytics/gstanalyticssegmentationmtd.c:
	  segmentationmtd: Drop meta on rotations/flips
	  We don't have any code to do this kind of transformation.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10443>

2025-12-23 16:20:16 -0500  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/analytics/gstanalyticsmeta.c:
	  analyticsrelationmeta: Skip Mtd that can't be transformed
	  Also do the relationship copying in the end.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10443>

2025-12-26 14:32:08 +0900  jeongmin kwak <jeongmin.kwak@lge.com>

	* gst/geometrictransform/gstgeometrictransform.c:
	  geometrictransform: Fix integer overflow in map allocation
	  Use g_size_checked_mul() to safely calculate the map size
	  (width * height * 2 * sizeof(gdouble)) to prevent integer
	  overflow which could lead to undersized buffer allocation
	  and subsequent heap corruption when the map is populated.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10448>

2025-12-26 10:26:38 +0900  jeongmin kwak <jeongmin.kwak@lge.com>

	* gst/geometrictransform/gstkaleidoscope.c:
	  kaleidoscope: Fix potential division by zero in geometric transform
	  Avoid division by zero when cos(theta) is close to zero. When theta
	  approaches ±π/2 after the triangle function calculation, cos(theta)
	  becomes zero, which would cause undefined behavior. Check that
	  cos(theta) is sufficiently far from zero before performing the
	  division.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10438>

2025-12-22 21:56:05 +0100  Philippe Normand <philn@igalia.com>

	* ext/webrtc/gstwebrtcbin.c:
	  webrtcbin: Check transport before setting state when closing
	  `webrtc_transceiver_get_dtls_transport()` can return NULL so that needs to be
	  checked by the caller.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10432>

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

	* gst-libs/gst/webrtc/nice/nice.c:
	* gst/mpegtsmux/gstbasetsmuxjpegxs.h:
	* gst/tensordecoders/gstclassifiertensordecoder.c:
	  gst: Remove various wrongly added includes
	  These were most likely added by clangd automatically.
	  Please use `-header-insertion=never` with clangd!
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8519>

2025-12-17 11:36:14 +0100  Johan Sternerup <johast@axis.com>

	* gst-libs/gst/webrtc/nice/meson.build:
	* gst-libs/gst/webrtc/nice/nice.c:
	  webrtcnice: Depend on libnice 0.1.23
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8519>

2025-04-16 14:48:57 +0200  Johan Sternerup <johast@axis.com>

	* gst-libs/gst/webrtc/nice/meson.build:
	* gst-libs/gst/webrtc/nice/nice.c:
	  webrtcnice: Close agent and do it with force
	  Call nice_agent_close_async() to make sure all outstanding resolve tasks have
	  finished, which means we avoid a potential leak of a GMainContext with
	  an associated file descriptor. We only do this if
	  NICE_AGENT_OPTION_CLOSE_FORCED is available and can be used, because
	  otherwise the closing procedure can take quite a long time while waiting
	  for turn server responses.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8519>

2025-04-28 13:44:12 +0200  Johan Sternerup <johast@axis.com>

	* gst-libs/gst/webrtc/nice/nice.c:
	  webrtcnice: Wait for completion of proxy and mdns resolve tasks
	  This commit ensures all outstanding name resolving for mdns and proxy is
	  finished before the nice agent thread is shut down. This is important
	  because the DNS resolving is performed by GThreadedResolver, which uses
	  a GTask taking a strong reference to the agent main context in order to
	  be able finish the task and run the final callback within the agent main
	  context. Consequently, the main context cannot be disposed until the
	  GTask has finished. Leaking a GMainContext is particularly bad because
	  it involves leaking the file descriptor used for polling events.
	  GThreadedResolver takes a strong reference to the GTask. it hands this
	  reference over to an internal worker thread that ultimately calls libc's
	  `getaddrinfo()`. This function can hang for an undefined amount of time
	  depending on network or network driver conditions. This makes it
	  impossible to completely control the lifetime of our GTask/GMainContext,
	  but what we can do is to make sure that in case of a long hang or early
	  shutdown of the agent, the GTask has already finished so that when
	  `getaddrinfo()` returns the only work left to do is to drop the
	  reference to GTask (and possibly GMainContext).
	  GThreadedResolver already sets up two mechanisms for finishing the task
	  earlier than `getaddrinfo()`, one timeout source and a cancellation
	  source. The cancellation source was previously created by
	  GThreadedResolver, but we're now passing it ourselves so that we can
	  explicitly invoke cancellation. There is one quirk though. Both the
	  timeout source and the cancellation source are associated with the gio
	  global worker context. Thus, cancellation will happen in the thread
	  driving the worker context and there it will conclude that the final
	  agent callback must be invoked within the agent main context. This
	  detour means we cannot simply cancel and expect the GTask to be
	  finalized without also explicitly waiting for the finalization.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8519>

2025-12-18 18:23:56 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/codecs/gsth265decoder.c:
	* gst-libs/gst/codecs/gsth266decoder.c:
	  codecs: h265/h266dec: Do not try to output failed frames
	  "end_picture()" virtual function may fail due to various reason, one of them
	  being that a flush is happening. Since the picture failed, the subclass may have
	  flushed any picture data from it, and will likely throw an error or crash when
	  trying to output.
	  These two decoder simply didn't care unlike all the other. Use similar technique
	  as used in h264dec, which is to mark the frame as not for output.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10421>

2025-12-18 15:38:55 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2codecs/gstv4l2codecav1dec.c:
	* sys/v4l2codecs/gstv4l2codecvp9dec.c:
	  v4l2codecs: av1/vp9: Properly propagate flow ret such as FLUSHING
	  Some of the decoder would simply turn any flow return into an ERROR, which
	  can be noisy when the original flow return is FLUSHING due to a normal flush
	  condition.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10421>

2025-12-18 15:37:38 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2codecs/gstv4l2codecav1dec.c:
	* sys/v4l2codecs/gstv4l2codecvp8dec.c:
	  v4l2codecs: av1/vp9: Fix request leak on error
	  The request was not being freed property if there was an error. Typically a
	  flush / seek operation could cause this.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10421>

2025-12-18 15:35:07 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2codecs/gstv4l2codech264dec.c:
	* sys/v4l2codecs/gstv4l2codech265dec.c:
	* sys/v4l2codecs/gstv4l2codecmpeg2dec.c:
	* sys/v4l2codecs/gstv4l2codecvp8dec.c:
	  v4l2codecs: Assert and return on missing request
	  The base class isn't supposed to output a picture that has never been
	  requested or for which the request has been removed by the flush operation.
	  Make sure to crash this kind of programming error with an assert, while
	  protecting against crash in this case.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10421>

2025-12-18 15:46:24 +0900  jeongmin kwak <jeongmin.kwak@lge.com>

	* ext/hls/gsthlsdemux.c:
	  hlsdemux: Mark discontinuity on seek
	  When seeking across an EXT-X-DISCONTINUITY tag, set the internal
	  stream discont flag. This ensures the next buffer is correctly marked
	  with GST_BUFFER_FLAG_DISCONT, signaling a timeline reset to
	  downstream elements.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10402>

2025-12-17 13:17:52 -0600  Brad Reitmeyer <brad.reitmeyer@resi.io>

	* sys/decklink/gstdecklinkvideosink.cpp:
	  decklinkvideosink: Fix frame duration to be based on the decklink clock
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10401>

2025-12-21 22:12:43 -0500  Daniel Morin <daniel.morin@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnx: remove invalid properties
	  - input-tensor-offset and input-tensor-scale have been removed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10427>

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

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

2025-12-19 11:16:27 +0100  Adrien Plazas <aplazas@gnome.org>

	* gst-libs/gst/play/gstplay.c:
	* gst-libs/gst/play/gstplay.h:
	  gstplay: Add gapless looping
	  This adds the GstPlayLoop enumeration and the loop configuration
	  accessor methods. It allows gapless looping over the current track.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10418>

2025-12-14 11:59:43 -0500  Daniel Morin <daniel.morin@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	  doc: update gst-plugins-bad doc cache
	  - doc cache updated
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10380>

2025-12-13 11:37:04 -0500  Daniel Morin <daniel.morin@collabora.com>

	* gst/tensordecoders/gstssdtensordec.c:
	* gst/tensordecoders/gstssdtensordec.h:
	* gst/tensordecoders/gsttensordecoders.c:
	  tensordecoder: ssdtensordec backward compat with oldname
	  - Also register old name "ssdobjectdetector" for backward compatibility.
	  - warn about Deprecated in instance_init
	  - better annotation related to deprecated
	  Co-authored-by: Sebastian Dröge <sebastian@centricular.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10380>

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

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

2025-12-16 16:41:57 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst/jpegformat/gstjpegparse.c:
	* gst/jpegformat/gstjpegparse.h:
	  jpegparse: enable MPF support to JPEG parser
	  Parse Multi Picture Format APP2 segments to handle multiple images in a
	  single JPEG stream. Ignore non-primary images and adjust frame logic for
	  correct framing.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10301>

2025-12-04 18:24:24 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst/jpegformat/gstjpegparse.c:
	  jpegparse: add MPF parsing support
	  Parse APP2 segments containing Multi-Picture Format data according to CIPA DC-x
	  007-2009 specification. This enables handling of JPEG files with multiple
	  embedded images like panoramas or stereoscopic pairs.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10301>

2025-12-17 14:39:07 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst/jpegformat/gstjpegparse.c:
	  jpegparse: add synthetic header/footer for XMP
	  Add synthetic xpacket XML header and footer if missing in XMP data in APP1
	  segment, since they are needed for the parsing function
	  gst_tag_list_from_xmp_buffer().
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10301>

2025-12-17 14:47:38 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst/jpegformat/gstjpegparse.c:
	  jpegparse: add metadata state flag
	  This ensures metadata from APP segments and comments is accounted for,
	  preventing the loose of those segments.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10301>

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

	* gst-libs/gst/analytics/modelinfo.c:
	  modelinfo: Add some missing annotations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10410>

2025-12-17 14:24:31 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfdemux.h:
	  mxfdemux: Simplify timestamp tracking
	  Apart from keeping less state around this also calculates more accurate
	  timestamps because of tracking everything in terms of edit units instead of
	  nanoseconds.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10396>

2025-12-17 11:57:01 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/mxf/mxfdemux.h:
	  mxfdemux: Switch edit unit position tracking to unsigned integers
	  These can never become negative and the only negative number in use is
	  -1 for "unset", which maps equally well to G_MAXUINT64.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10396>

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

	* gst/aiff/aiffparse.c:
	* gst/aiff/aiffparse.h:
	  aiffparse: Remove segment closing on non-flushing seeks
	  That's a 0.10 leftover and not necessary anymore, and can confuse downstream
	  elements unnecessarily.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10399>

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

	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfdemux.h:
	  mxfdemux: Remove segment closing on non-flushing seeks
	  That's a 0.10 leftover and not necessary anymore, and can confuse downstream
	  elements unnecessarily.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4803
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10399>

2025-12-17 10:23:25 +0900  jeongmin kwak <jeongmin.kwak@lge.com>

	* ext/aes/gstaesdec.c:
	  aesdec: use gsize for buffer sizes and fix log format
	  Replace casts with gsize in gst_aes_dec_prepare_output_buffer() and use
	  G_GSIZE_FORMAT for logging to avoid truncation and warnings.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10239>

2025-11-28 14:40:49 +0900  jeongmin kwak <jeongmin.kwak@lge.com>

	* ext/aes/gstaesenc.c:
	  aesenc: use gsize for buffer sizes and fix log format
	  Replace casts with gsize in gst_aes_enc_prepare_output_buffer() and use
	  G_GSIZE_FORMAT for logging to avoid truncation and warnings.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10239>

2025-12-17 11:07:18 +0900  jeongmin kwak <jeongmin.kwak@lge.com>

	* ext/hls/gsthlssink.c:
	  hlssink: Guard NULL structure and use gst_structure_has_name()
	  Prevent NULL dereference by checking gst_message_get_structure()
	  result before accessing fields. Replace strcmp() with
	  gst_structure_has_name() for safe structure name comparison.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10393>

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

	* gst-libs/gst/play/gstplay.c:
	  play: do not call gst_pb_utils_get_codec_description if caps are not fixed
	  this avoids throwing a (harmless) exception when stream selection is
	  called before pipeline is linked
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10341>

2025-12-15 17:57:49 -0500  Daniel Morin <daniel.morin@collabora.com>

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

2025-12-15 15:08:02 -0500  Daniel Morin <daniel.morin@collabora.com>

	* ext/onnx/gstonnxinference.c:
	* ext/tflite/gsttfliteinference.c:
	* gst/tensordecoders/gstclassifiertensordecoder.c:
	* gst/tensordecoders/gstfacedetectortensordecoder.c:
	* gst/tensordecoders/gstssdtensordec.c:
	* gst/tensordecoders/gstyolosegtensordecoder.c:
	* gst/tensordecoders/gstyolotensordecoder.c:
	  gst: Rename GstValueSet to GstValueUniqueList
	  GObject-Introspection has an issue with GstSet because anything that starts with
	  'gst_value_set' becomes something that belongs to 'GstSet' but we have
	  gst_value_set_bitmask and gst_value_set_SOMETHING (), which all would become
	  methods of GstSet.
	  To avoid this, rename GstSet (aka GstValueSet) to GstUniqueList (aka
	  GstValueUniqueList).
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4813
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10384>

2025-12-16 13:05:19 +0100  François Laignel <francois@centricular.com>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: send event SegmentDone for segment seeks
	  ... instead of sending an EOS event in that case.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10331>

2025-12-10 15:54:50 +0100  Jakub Adam <jakub.adam@collabora.com>

	* ext/vmaf/meson.build:
	  meson: fix building -bad tests with disabled vmaf
	  Fixes an error from Meson:
	  subprojects/gst-plugins-bad/tests/check/meson.build:175:85: ERROR:
	  Unknown variable "libvmaf_dep".
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10353>

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

	* ext/fdkaac/gstfdkaacdec.c:
	  fdkaacdec: Invalidate channel_types/indices when setting a known config
	  Otherwise switching from an unknown config (which is then mapped one by one) to
	  a known config and then back to the same unknown config makes it use invalid
	  cached channel positions.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4791
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10370>

2025-11-26 20:09:20 +0100  Jakub Adam <jakub.adam@collabora.com>

	* ext/dtls/gstdtlsdec.c:
	  dtlsdec: mark generated cert agent with GST_OBJECT_FLAG_MAY_BE_LEAKED
	  So that it is ignored by the leaks tracer.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10366>

2025-12-12 15:41:42 +0900  Seungha Yang <seungha@centricular.com>

	* sys/win32ipc/gstwin32ipcbasesink.cpp:
	  win32ipcbasesink: Serialize metas from uploaded buffer
	  Use metas attached to the uploaded buffer instead of the original one,
	  as the uploaded buffer may have different memory-layout-related metas
	  such as video meta
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10362>

2025-12-10 16:30:55 +0900  Seungha Yang <seungha@centricular.com>

	* sys/win32ipc/gstwin32ipcsink.cpp:
	  win32ipcsink: Preserve original buffer flags in raw-video fallback path
	  Copy all metadat including buffer flags from the original buffer so
	  that clients receive the intended information
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10343>

2025-12-09 11:12:12 +0100  Hyunjun Ko <zzoon@igalia.com>

	* gst-libs/gst/vulkan/gstvkformat.c:
	  vkformat: Add VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 format
	  Add support for VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
	  which is the Vulkan equivalent of P010.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10333>

2025-12-10 20:53:29 -0500  Daniel Morin <daniel.morin@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	  doc: gst-plugins-bad doc cache update
	  - cache update
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10340>

2025-12-09 15:03:34 -0500  Daniel Morin <daniel.morin@collabora.com>

	* gst/tensordecoders/gstssdtensordec.c:
	* gst/tensordecoders/gstssdtensordec.h:
	* gst/tensordecoders/gsttensordecoders.c:
	* gst/tensordecoders/meson.build:
	  tensordecoder: rename ssdobjectdetector to ssdtensordec
	  - renamed ssdobjectdetector to ssdtensordec
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10340>

2025-12-08 12:58:44 -0500  Daniel Morin <daniel.morin@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	  gst-python: make python linter happy with test_analytics
	  - Change to be confirm fory PEP8
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10244>

2025-12-08 00:09:47 -0500  Daniel Morin <daniel.morin@collabora.com>

	* gst/tensordecoders/gstyolosegtensordecoder.c:
	* gst/tensordecoders/gstyolotensordecoder.c:
	  tensordecoders: yolo tensordecoders
	  - Change to dims-order from row-majot to col-major as they are col-major and
	  with new modelinfo improvement we can communicate this from inference.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10244>

2025-11-30 22:42:09 -0500  Daniel Morin <daniel.morin@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnx: refactor to use ModelInfo
	  - Retrieve model metadata from modelInfo instead of from ONNX.
	  - Validate modelInfo match ONNX, when available
	  - Get means and stddev from ModelInfo
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10244>

2025-12-03 22:24:27 -0500  Daniel Morin <daniel.morin@collabora.com>

	* ext/tflite/gsttfliteinference.c:
	* ext/tflite/meson.build:
	* ext/tflite/modelinfo.c:
	* ext/tflite/modelinfo.h:
	  tflite: adapt to analytics modelinfo moved
	  - use modelinfo from analytics
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10244>

2025-12-03 22:23:32 -0500  Daniel Morin <daniel.morin@collabora.com>

	* gst-libs/gst/analytics/analytics.h:
	* gst-libs/gst/analytics/meson.build:
	* gst-libs/gst/analytics/modelinfo.c:
	* gst-libs/gst/analytics/modelinfo.h:
	  analytics: move modelinfo to analytics lib
	  - moved to analytics and added dims-order setting
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10244>

2025-12-09 22:01:48 -0500  Daniel Morin <daniel.morin@collabora.com>

	* gst/tensordecoders/gstioutracker.h:
	  tensordecoder: fix typo in header
	  - gstreamer-ssdobjectdetector -> gstreamer-ioutracker
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10342>

2025-12-09 17:30:58 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* gst-libs/gst/webrtc/nice/nice.c:
	* gst-libs/gst/webrtc/nice/nicetransport.c:
	* gst-libs/gst/webrtc/nice/niceutils.h:
	  webrtc/nice: fix crashes on gathering stats for relay candidates
	  libnice does not have TURN information for remote relay candidates,
	  but the `nice_candidate_relay_address` returns void and doesn't
	  check if the `turn` field is set, unlike
	  `nice_candidate_stun_server_address`.
	  As a consequence, we must only call the API for local candidates.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10336>

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

	* meson.build:
	  Back to development after 1.27.50

=== release 1.27.50 ===

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

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

2025-12-05 13:15:19 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst-libs/gst/wayland/gstwlvideoformat.h:
	  wayland: Add Y444 pixel format support
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10307>

2025-12-05 13:52:45 +0100  Robert Mader <robert.mader@collabora.com>

	* ext/gtk/gstgtkwaylandsink.c:
	* ext/wayland/gstwaylandsink.c:
	  waylandsink: Propose udmabuf allocator
	  This change sync both GTK and native waylandsink propose_allocation method and
	  adds support for the new udmabuf allocator and dmabuf pool.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10307>

2025-11-26 21:44:56 +1100  Jan Schmidt <jan@centricular.com>

	* ext/webrtc/gstwebrtcbin.c:
	  webrtcbin: Ensure ice-gathering-state reaches complete
	  If there are pending ice candidates queued for emission when the
	  underlying ICE implementation signals that all transports have completed
	  gathering ICE candidates, then reporting that the 'ice-gathering-state'
	  has reached 'complete' state is deferred. In that situation, we need
	  to emit the completion state change after the pending candidates finish
	  emission. Previously, the state change would not complete sometimes.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10206>

2025-12-08 16:20:39 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/codecparsers/gsth264bitwriter.c:
	  codecparsers: h264bitwriter: Fix writing of scaling lists
	  The logic in the writer was comparing the scaling lists differently than
	  the parser. Where the parser compared the first list to the defaults and
	  later lists to the earlier, the writer compared every list to the default.
	  This means a PPS received with scaling lists 0,3,6,7 would be transmitted
	  with 0-11 all filled in. There was also an extra nested loop with the same
	  iteration criteria that needed to be removed.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9505>

2025-12-08 12:19:19 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkav1dec.c:
	* ext/vulkan/vkh264dec.c:
	* ext/vulkan/vkh265dec.c:
	* ext/vulkan/vkvp9dec.c:
	  vulkan: decoders: fallback to video decoder's decide_allocation()
	  As in !10297 Vulkan image buffer pool isn't allocated but a video decoder plain
	  buffer pool, which is less expensive than the Vulkan one, and it will be
	  de-allocated shortly afterwards.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10324>

2025-12-08 12:14:11 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkav1dec.c:
	  vulkanav1dec: renegotiate after events
	  Missed condition when AV1 decoding was merged, while it was merged for H.264 and
	  H.265: !9560 and VP9 was merged initially with it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10324>

2025-12-04 16:40:25 -0600  Brad Reitmeyer <brad.reitmeyer@resi.io>

	* sys/decklink/gstdecklinkvideosink.cpp:
	  decklinkvideosink: Fix frame completion callbacks for firmware 14.3+
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10295>

2025-12-06 10:25:21 +0000  Philippe Normand <philn@igalia.com>

	* ext/webrtc/transportstream.c:
	* gst-libs/gst/webrtc/nice/nice.c:
	  webrtc: Keep a ref of the ICEStream in the TransportStream
	  By doing so we avoid potential race conditions. The libnice ICE implementation
	  was then adapted to comply with the transfer-full return value of the
	  `gst_webrtc_ice_add_stream()` vfunc.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10312>

2025-12-05 17:16:05 +0900  Seungha Yang <seungha@centricular.com>

	* sys/win32ipc/gstwin32ipcserver.cpp:
	  win32ipc: Enhance I/O cancel sequence
	  Waits for pending I/O before releasing overlap struct to avoid
	  potential use-after-free
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10296>

2025-12-04 22:16:32 +0900  Seungha Yang <seungha@centricular.com>

	* sys/win32ipc/gstwin32ipcbasesink.cpp:
	* sys/win32ipc/gstwin32ipcbasesink.h:
	* sys/win32ipc/gstwin32ipcbufferpool.cpp:
	* sys/win32ipc/gstwin32ipcclient.cpp:
	* sys/win32ipc/gstwin32ipcprotocol.cpp:
	* sys/win32ipc/gstwin32ipcprotocol.h:
	* sys/win32ipc/gstwin32ipcserver.cpp:
	* sys/win32ipc/gstwin32ipcserver.h:
	* sys/win32ipc/gstwin32ipcsink.cpp:
	* sys/win32ipc/gstwin32ipcsink.h:
	* sys/win32ipc/gstwin32ipcsrc.cpp:
	* sys/win32ipc/gstwin32ipcsrc.h:
	* sys/win32ipc/gstwin32ipcvideosink.cpp:
	* sys/win32ipc/meson.build:
	* sys/win32ipc/plugin.cpp:
	  win32ipc: Add generic shared memory src/sink elements
	  Adding win32ipcsink and win32ipcsrc element which supports any
	  type of streams in addition to raw video
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10296>

2025-12-04 19:47:29 +0900  Seungha Yang <seungha@centricular.com>

	* sys/win32ipc/gstwin32ipcbasesink.cpp:
	* sys/win32ipc/gstwin32ipcbasesink.h:
	* sys/win32ipc/gstwin32ipcbasesrc.cpp:
	* sys/win32ipc/gstwin32ipcbasesrc.h:
	* sys/win32ipc/gstwin32ipcclient.cpp:
	* sys/win32ipc/gstwin32ipcprotocol.cpp:
	* sys/win32ipc/gstwin32ipcprotocol.h:
	* sys/win32ipc/gstwin32ipcserver.cpp:
	* sys/win32ipc/gstwin32ipcserver.h:
	* sys/win32ipc/gstwin32ipcvideosink.cpp:
	* sys/win32ipc/gstwin32ipcvideosink.h:
	* sys/win32ipc/gstwin32ipcvideosrc.cpp:
	* sys/win32ipc/gstwin32ipcvideosrc.h:
	* sys/win32ipc/meson.build:
	  win32ipc: Add baseclass implementation
	  Extract common logic from video elements
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10296>

2025-12-04 17:37:11 +0900  Seungha Yang <seungha@centricular.com>

	* sys/win32ipc/gstwin32ipcclient.cpp:
	* sys/win32ipc/gstwin32ipcmemory.cpp:
	* sys/win32ipc/gstwin32ipcmemory.h:
	* sys/win32ipc/gstwin32ipcmmf.cpp:
	* sys/win32ipc/gstwin32ipcmmf.h:
	* sys/win32ipc/gstwin32ipcprotocol.cpp:
	* sys/win32ipc/gstwin32ipcprotocol.h:
	* sys/win32ipc/gstwin32ipcserver.cpp:
	* sys/win32ipc/gstwin32ipcvideosink.cpp:
	  win32ipc: Use SIZE_T for allocation size representation
	  ... instead of UINT32.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10296>

2025-12-04 15:51:08 +0900  Seungha Yang <seungha@centricular.com>

	* sys/win32ipc/gstwin32ipcserver.cpp:
	* sys/win32ipc/gstwin32ipcserver.h:
	* sys/win32ipc/gstwin32ipcvideosink.cpp:
	  win32ipcvideosink: Enhance EOS sequence
	  Fully drain queued buffers on EOS
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10296>

2025-12-04 12:49:28 +0900  Seungha Yang <seungha@centricular.com>

	* sys/win32ipc/gstwin32ipcclient.cpp:
	* sys/win32ipc/gstwin32ipcclient.h:
	* sys/win32ipc/gstwin32ipcvideosrc.cpp:
	  win32ipcvideosrc: Add leaky-type and {max, current-level}-buffers properties
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10296>

2025-12-03 19:28:54 +0900  Seungha Yang <seungha@centricular.com>

	* sys/win32ipc/gstwin32ipc.cpp:
	* sys/win32ipc/gstwin32ipc.h:
	* sys/win32ipc/gstwin32ipcserver.cpp:
	* sys/win32ipc/gstwin32ipcserver.h:
	* sys/win32ipc/gstwin32ipcvideosink.cpp:
	* sys/win32ipc/meson.build:
	  win32ipcvideosink: Add leaky-type and {max, current-level}-buffers properties
	  Allows blocking streaming thread when clients are not consuming
	  incoming buffers fast enough
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10296>

2025-12-03 17:32:36 +0900  Seungha Yang <seungha@centricular.com>

	* sys/win32ipc/gstwin32ipcmemory.cpp:
	  win32ipcmemory: Refactor memory allocator
	  Use mutex/cond instead of GstPoll
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10296>

2025-12-02 19:16:06 +0900  Seungha Yang <seungha@centricular.com>

	* sys/win32ipc/gstwin32ipcclient.cpp:
	* sys/win32ipc/gstwin32ipcclient.h:
	* sys/win32ipc/gstwin32ipcmemory.cpp:
	* sys/win32ipc/gstwin32ipcmemory.h:
	* sys/win32ipc/gstwin32ipcmmf.cpp:
	* sys/win32ipc/gstwin32ipcmmf.h:
	* sys/win32ipc/gstwin32ipcprotocol.cpp:
	* sys/win32ipc/gstwin32ipcprotocol.h:
	* sys/win32ipc/gstwin32ipcserver.cpp:
	* sys/win32ipc/gstwin32ipcserver.h:
	* sys/win32ipc/gstwin32ipcutils.cpp:
	* sys/win32ipc/gstwin32ipcvideosink.cpp:
	* sys/win32ipc/gstwin32ipcvideosrc.cpp:
	* sys/win32ipc/meson.build:
	* sys/win32ipc/protocol/win32ipcmmf.cpp:
	* sys/win32ipc/protocol/win32ipcmmf.h:
	* sys/win32ipc/protocol/win32ipcpipeclient.cpp:
	* sys/win32ipc/protocol/win32ipcpipeclient.h:
	* sys/win32ipc/protocol/win32ipcpipeserver.cpp:
	* sys/win32ipc/protocol/win32ipcpipeserver.h:
	* sys/win32ipc/protocol/win32ipcprotocol.cpp:
	* sys/win32ipc/protocol/win32ipcprotocol.h:
	* sys/win32ipc/protocol/win32ipcutils.cpp:
	* sys/win32ipc/protocol/win32ipcutils.h:
	  win32ipc: Rewrite plugin
	  Pre-work to support a generic IPC element in addition to the existing
	  raw-video specific elements.
	  Summary of changes:
	  * Use an unnamed MMF handle with DuplicateHandle() instead of a named
	  handle to prevent unintended access from other processes via
	  name-based handle opening
	  * Refactor server/client implementation based on the D3D12 IPC element
	  design
	  * Replace the previous custom data struct with GstCaps and GstMeta to
	  describe video format and memory layout
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10296>

2025-07-03 14:35:21 +0200  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/analytics/gstanalyticsobjectdetectionmtd.c:
	* gst-libs/gst/analytics/gstanalyticssegmentationmtd.c:
	  analytics segmentation: Implement vidoe matrix meta transformation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9497>

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

	* gst-libs/gst/analytics/gstanalyticsmeta.c:
	* gst-libs/gst/analytics/gstanalyticsobjectdetectionmtd.c:
	  analytics od mtd: Implement matrix meta transformation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9497>

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

	* sys/va/gstvabasedec.c:
	  vabasedec: Don't assert when negotiating based on a gap event before the first buffer
	  Instead fall back to the video decoder base class `decide_allocation()` until
	  the minimum number of required buffers is known, which is usually the case after
	  the codec parameters (sequence header) are read.
	  While the minimum number of buffers is known ahead of time for some codecs like AV1,
	  we still only set it once the codec parameters are parsed as otherwise an unused
	  VA buffer pool will already be created together with surface allocations for the
	  gap event. This pool will be deallocated again shortly afterwards, just to
	  create a new pool with the correct configuration.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4779
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10297>

2025-12-04 20:10:59 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	  gst-plugins-bad: update plugins cache
	  - correction for yolotensordec doc
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9109>

2025-11-28 14:17:07 -0600  Olivier Crête <olivier.crete@collabora.com>

	* gst/tensordecoders/gstyolosegtensordecoder.c:
	* gst/tensordecoders/gstyolotensordecoder.c:
	  tensordecoder: Add caps to Yolo decoders
	  - Tensor caps added
	  - Rename yolotensordec to yolov8tensordec. This reflects that this tensor is different for older versions.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9109>

2025-11-28 12:17:29 -0600  Olivier Crête <olivier.crete@collabora.com>

	* gst/tensordecoders/gstclassifiertensordecoder.c:
	* gst/tensordecoders/gstioutracker.c:
	* gst/tensordecoders/gstssdobjectdetector.c:
	* gst/tensordecoders/gstyolosegtensordecoder.c:
	* gst/tensordecoders/gstyolotensordecoder.c:
	  tensordecoder: Fix metadata long name to be more explicit
	  - For all tensor decoders
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9109>

2025-11-22 21:35:17 -0500  Daniel Morin <daniel.morin@collabora.com>

	* gst/tensordecoders/gstclassifiertensordecoder.c:
	* gst/tensordecoders/gstclassifiertensordecoder.h:
	  tensordecoder: refactor classifiertensordecoder to support both softmaxed and non-softmaxed tensors
	  This architecture separates negotiation concerns from processing, improving efficiency and code clarity.
	  - Add constraints on tensor caps
	  - Add validation between between model loaded vs label labels files
	  - Make classifier generic (not assuming a 1000 classes)
	  - Fixed mismatch return type
	  - improve error handling in classification
	  - Warn if no label found from labels file
	  - Separate tensor groups: Define GROUP_ID_CLASSIFICATION and
	  GROUP_ID_CLASSIFICATION_SOFTMAXED as distinct tensor groups, as they represent
	  different tensor formats that don't belong to the same group.
	  - Enhanced caps template: Updated sink pad caps to support both tensor formats
	  using a LIST, allowing the decoder to negotiate with either type.
	  - Cache negotiation result: Added do_softmax member variable to cache whether
	  softmax processing is needed, determined once during set_caps based on the
	  negotiated tensor-id rather than checking at runtime.
	  - Renamed softmax_res to postproc_result: Better reflects dual usage for both
	  softmax computation and uint8-to-float conversion. Always allocated since
	  it's needed for uint8 conversion even when tensors are pre-softmaxed.
	  - Optimized tensor retrieval: get_tensor() now only searches for the specific
	  tensor-id that was negotiated, rather than trying both types.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9109>

2025-11-22 21:21:50 -0500  Daniel Morin <daniel.morin@collabora.com>

	* gst/tensordecoders/gstssdobjectdetector.c:
	  tensordecoder: refactor ssd tensordecoder
	  - ssd:Add constrains on tensor caps
	  - ssd:Update ssd tensor-decoder to follow ids from tensor id registry
	  - ssd:Add constrains on tensor caps
	  - ssd:Explicit batch of 1: dims=<(int)1, (int)[1,max]>
	  - ssd:Implicit batch of 1: dims=<(int)[1,max]>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9109>

2025-11-22 21:19:01 -0500  Daniel Morin <daniel.morin@collabora.com>

	* gst/tensordecoders/gstfacedetectortensordecoder.c:
	  tensordecoder: refactor facedetector tensordecoder
	  - Add constrains on tensor caps
	  - Downgrade tensordecoder's rank non accelerated to secondary
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9109>

2025-11-28 11:42:07 -0500  Daniel Morin <daniel.morin@collabora.com>

	* gst/tensordecoders/gsttensordecodebin.c:
	* gst/tensordecoders/gsttensordecodebin.h:
	* gst/tensordecoders/gsttensordecoders.c:
	* gst/tensordecoders/meson.build:
	  tensordecoder: Add tensordecoderbin
	  - Adding a tensordecodebin able to auto-plug the correct tensor-decoder
	  - Add tensordecodebin to tensordecoders plugin
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9109>

2025-10-14 14:09:30 -0400  Daniel Morin <daniel.morin@collabora.com>

	* ext/tflite/gsttfliteinference.c:
	  tflite: adding tensor caps
	  - tflite_inference now generate tensor caps.
	  - name model_incaps and model_outcaps
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9109>

2025-10-14 00:12:53 -0400  Daniel Morin <daniel.morin@collabora.com>

	* ext/tflite/modelinfo.c:
	* ext/tflite/modelinfo.h:
	  analytics: add method to retrive group-id from modelinfo
	  - Adding modelinfo_get_quark_group_id
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9109>

2025-11-26 20:53:35 -0500  Daniel Morin <daniel.morin@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnx: Add tensor capabilities support to gstonnxinference
	  This commit enhances the gstonnxinference element by introducing comprehensive
	  tensor capabilities support, enabling better negotiation between the inference
	  element and downstream tensor decoders.
	  Key Changes:
	  - Implement tensor capabilities description mechanism
	  - Improve caps negotiation and propagation
	  Detailed Modifications:
	  - Disable passthrough mode to control tensor caps propagation
	  - Extract group-id from ONNX model metadata
	  - Create tensor capabilities structure with:
	  * Dimensions order (row-major)
	  * Tensor dimensions
	  * Tensor identifier
	  * Data type information
	  - Build GstSet of tensor capabilities under the group-id
	  - Utilize gst_tensor_meta_set() for robust meta handling
	  - Update transform_caps() to handle tensor capabilities in SINK and SRC pads
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9109>

2021-10-22 11:09:07 -0500  Diego Nieto <dnieto@fluendo.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/meson.build:
	* ext/vmaf/gstvmafelement.c:
	* ext/vmaf/gstvmafelement.h:
	* ext/vmaf/gstvmafplugin.c:
	* ext/vmaf/meson.build:
	* meson.options:
	* tests/check/elements/vmaf.c:
	* tests/check/gst-plugins-bad.supp:
	* tests/check/meson.build:
	  vmaf: add new element to calculate VMAF scores
	  Introduces the `vmaf` element, which calculates video quality scores by
	  comparing a reference stream against a distorted stream.
	  The plugin is coded against the libvmaf 2.0 API. As such it requires that
	  libvmaf => 2.0 be installed for the plugin to compile.
	  Scores can be retrieved via 2 methods:
	  1. Message Bus: Emits messages containing "VMAF.type" (distinguished as
	  "MESSAGE_TYPE_FRAME" or "MESSAGE_TYPE_POOLED").
	  2. File Output: Writes results to disk in CSV, JSON, or XML formats by
	  setting the "results-filename" property.
	  Co-authored-by: Andoni Morales Alastruey <amorales@fluendo.com>
	  Co-authored-by: Casey Bateman <Casey.Bateman@hudl.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9757>

2025-12-04 10:34:03 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/closedcaption/gstcea708decoder.c:
	* ext/closedcaption/gstcea708decoder.h:
	* ext/closedcaption/gstceaccoverlay.c:
	* ext/closedcaption/gstceaccoverlay.h:
	* ext/meson.build:
	* gst/closedcaption/bcd.h:
	* gst/closedcaption/bit_slicer.c:
	* gst/closedcaption/bit_slicer.h:
	* gst/closedcaption/ccutils.c:
	* gst/closedcaption/ccutils.h:
	* gst/closedcaption/decoder.c:
	* gst/closedcaption/decoder.h:
	* gst/closedcaption/gstcccombiner.c:
	* gst/closedcaption/gstcccombiner.h:
	* gst/closedcaption/gstccconverter.c:
	* gst/closedcaption/gstccconverter.h:
	* gst/closedcaption/gstccextractor.c:
	* gst/closedcaption/gstccextractor.h:
	* gst/closedcaption/gstcea608mux.c:
	* gst/closedcaption/gstcea608mux.h:
	* gst/closedcaption/gstclosedcaption.c:
	* gst/closedcaption/gstcodecccinserter.c:
	* gst/closedcaption/gstcodecccinserter.h:
	* gst/closedcaption/gsth264ccextractor.c:
	* gst/closedcaption/gsth264ccextractor.h:
	* gst/closedcaption/gsth264ccinserter.c:
	* gst/closedcaption/gsth264ccinserter.h:
	* gst/closedcaption/gsth264reorder.c:
	* gst/closedcaption/gsth264reorder.h:
	* gst/closedcaption/gsth265ccextractor.c:
	* gst/closedcaption/gsth265ccextractor.h:
	* gst/closedcaption/gsth265ccinserter.c:
	* gst/closedcaption/gsth265ccinserter.h:
	* gst/closedcaption/gsth265reorder.c:
	* gst/closedcaption/gsth265reorder.h:
	* gst/closedcaption/gstline21dec.c:
	* gst/closedcaption/gstline21dec.h:
	* gst/closedcaption/gstline21enc.c:
	* gst/closedcaption/gstline21enc.h:
	* gst/closedcaption/hamm.h:
	* gst/closedcaption/io-sim.c:
	* gst/closedcaption/io-sim.h:
	* gst/closedcaption/macros.h:
	* gst/closedcaption/meson.build:
	* gst/closedcaption/misc.h:
	* gst/closedcaption/raw_decoder.c:
	* gst/closedcaption/raw_decoder.h:
	* gst/closedcaption/sampling_par.c:
	* gst/closedcaption/sampling_par.h:
	* gst/closedcaption/sliced.h:
	* gst/meson.build:
	* meson.options:
	* tests/check/meson.build:
	  closedcaption: Remove cc708overlay
	  It was deprecated and cea708overlay from gst-plugins-rs is the replacement.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4207
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10285>

2025-12-04 12:57:26 +0800  Yun Liu <yun.m.liu@intel.com>

	* gst-libs/gst/analytics/meson.build:
	  analytics: Fix build on MSVC by using libm dependency
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10283>

2025-12-02 17:52:34 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/midi/midiparse.c:
	  midiparse: Fix a couple of potential out-of-bounds reads
	  Also use an unsigned integer for parsing variable length integers as shifting
	  bits out of the sign bit is undefined behaviour.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10276>

2022-04-01 05:54:29 +1100  Jan Schmidt <jan@centricular.com>

	* gst/mpegtsmux/gstbasetsmux.c:
	  mpegtsmux: Fix potential deadlock changing pmt-interval
	  The object lock is the innermost lock. Don't take
	  the mux->lock while holding it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10261>

2025-11-28 15:12:37 +0200  Vivia Nikolaidou <vivia@ahiru.eu>

	* gst/mxf/mxfmpeg.c:
	  mxfmpeg: Add custom Sony picture essence coding UL
	  Sony seems to use 06.0e.2b.34.04.01.01.03.0e.06.41.02 as prefix for
	  their custom picture essence codings, and specifically the MPEG one
	  potentially uses the same semantics.
	  This comes from a file with:
	  picture essence coding 06.0e.2b.34.04.01.01.03.0e.06.41.02.01.04.03.01
	  codec 00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00
	  essence container 06.0e.2b.34.04.01.01.02.0d.01.03.01.02.04.60.01
	  which seemed to be XDCAM, aka decodable as MPEG-2.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10219>

2025-10-08 02:31:50 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/curl/gstcurlbasesink.c:
	* ext/curl/gstcurldefaults.h:
	* ext/curl/gstcurlhttpsink.c:
	* ext/curl/gstcurlhttpsrc.c:
	  curl: Ensure set_opt() is called with a long value
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5537>

2025-03-16 20:23:48 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/curl/gstcurlhttpsrc.c:
	  curl: Fix pushing incorrect buffers after seek
	  We must stop any existing transfer when seeking or we may push buffers
	  from the old request that downstream isn't expecting, causing decode errors.
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/579
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5537>

2025-03-16 20:17:58 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/curl/gstcurlhttpsrc.c:
	  curl: Cleanup logging of received headers
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5537>

2021-05-11 23:54:49 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/curl/gstcurlhttpsrc.c:
	  curl: Fix content size reported
	  During a range request, the Content-Length header only reports the
	  length transfered. The Content-Range header should report the total
	  length if known. The current code would inconsistently use either
	  or race and use the wrong length.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5537>

2021-05-11 23:58:54 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/curl/gstcurlhttpsrc.c:
	* ext/curl/gstcurlhttpsrc.h:
	  curl: remove unused content_type field
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5537>

2021-05-08 21:23:46 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/curl/gstcurlhttpsrc.c:
	* tests/check/elements/curlhttpsrc.c:
	  curl: Reset request status on uri change
	  We need to stop the current transfer and start a new one if the uri
	  was changed. Also fix the 'test_range_get' to do 20 requests, instead
	  of one request and 19 seeks past EOS.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5537>

2025-12-01 18:04:15 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/mxf/mxfvanc.c:
	  mxfmux: Create empty edit units for VANC packets without content or gap events
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10256>

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

	* gst/mpegtsdemux/tsdemux.c:
	  tsdemux: Consider DTS in private streams as audio instead of private
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10249>

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

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

2025-11-26 14:28:33 +0900  jeongmin kwak <jeongmin.kwak@lge.com>

	* ext/vulkan/vkviewconvert.c:
	  vulkan: zero-initialize ViewUpdate before use
	  Ensure ViewUpdate struct is fully initialized to avoid copying
	  uninitialized fields when writing to uniform buffer.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10200>

2025-12-01 13:57:20 +0900  Seungha Yang <seungha@centricular.com>

	  asiodeviceprovider: Fix deadlock on stop
	  Ensure that main loop is fully running during start() to avoid
	  below deadlock sequence
	  * GstDeviceProvider::start() spawns a background thread
	  * GstDeviceProvider::stop() is called before the background thread
	  actually starts running the main loop
	  * g_main_loop_quit() is invoked, but since the main loop has not
	  started yet, it has no effect
	  * stop() waits for the background thread to join
	  * The background thread eventually starts the main loop on the
	  background thread
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10245>

2025-11-30 19:22:03 +0100  David Maseda Neira <david.maseda@cinfo.es>

	* sys/nvcodec/gstnvh264encoder.cpp:
	* sys/nvcodec/gstnvh265encoder.cpp:
	  nvcodec: Enable num-slices property on nvh26{4,5}enc to force number of output slices
	  Adds a new num-slices property (range 0-32, default 0) to both nvh264enc
	  and nvh265enc encoders to control the number of slices per frame. This
	  ensures compatibility with hardware decoders that require exactly 1
	  slice per NAL unit.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10242>

2025-11-21 15:22:54 +0100  Robert Mader <robert.mader@collabora.com>

	* ext/wayland/gstwaylandsink.c:
	  waylandsink: Promote set_caps debug print to info
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9991>

2025-11-03 16:11:56 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/gtk/gstgtkwaylandsink.c:
	  gtkwaylandsink: Add VideoCropMeta support
	  Implement support for the crop meta, this allow offloading the crop to the
	  compositor
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9991>

2025-11-03 16:05:15 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/gtk/gstgtkwaylandsink.c:
	  gtkwaylandsink: De-duplicate frame copy code
	  Regardless if we have a Dumb or a SHM, the copy code is identical. Factor this
	  code so it can be shared.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9991>

2025-11-03 15:51:39 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/wayland/gstwaylandsink.c:
	* ext/wayland/gstwaylandsink.h:
	  waylandsink: Add VideoCropMeta support
	  Implement support for the crop meta, this allow offloading the crop to the
	  compositor.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9991>

2025-11-03 15:28:29 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/wayland/gstwaylandsink.c:
	  waylandsink: De-duplicate frame copy code
	  Regardless if we have a Dumb or a SHM, the copy code is identical. Factor this
	  code so it can be shared.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9991>

2025-11-03 15:34:47 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/wayland/gstwlwindow.c:
	  wayland: window: Add the ability to offload cropping
	  This add a new method on the GstWlWindow that allows to offload a crop
	  rectangle.
	  Co-authored-by: Robert Mader <robert.mader@collabora.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9991>

2025-11-17 17:04:18 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/wayland/gstwlbuffer.c:
	* gst-libs/gst/wayland/gstwlbuffer.h:
	  wayland: buffer: Add getters for video and crop meta
	  This will be used by the GstWlWindow to calculate the source rectangle to crop
	  the surface to.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9991>

2025-12-01 17:58:22 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/mxf/mxfmux.c:
	  mxfmux: Fix memset usage
	  This was supposed to clear the local, stack-allocated struct and not set another
	  pointer to NULL in a complicated way.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10254>

2025-11-26 14:17:14 +0900  jeongmin kwak <jeongmin.kwak@lge.com>

	* ext/vulkan/vkcolorconvert.c:
	  vulkan: initialize YUVUpdateData before memcpy
	  Ensure YUVUpdateData is fully initialized to avoid copying
	  uninitialized fields when writing to uniform buffer.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10199>

2025-11-28 21:08:17 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Add lower resolution limits for h264, h265, av1 caps
	  In my testing, these are the lowest resolution values that
	  VideoToolbox can decode for each of these codecs.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9448>

2025-07-24 21:54:59 +0200  Rafael Caricio <rcaricio@netflix.com>

	* sys/applemedia/helpers.h:
	* sys/applemedia/vtdec.c:
	* sys/applemedia/vtdec.h:
	  vtdec: Support AV1 hardware decoding
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9448>

2025-10-27 14:19:34 +0000  Dominique Leroux <dominique.p.leroux@gmail.com>

	* sys/applemedia/vtdec.c:
	* sys/applemedia/vtdec.h:
	  vtdec: add VP9 decode support
	  - Only profile 0 and 2 (10-bits) work. Others allow creating the
	  decompression session but cause per-frame failures, so I'm
	  explicitly disabling them in caps.
	  - 64x64 is the minimum supported resolution. Limiting with caps for
	  same reason as above.
	  - API to enable supplemental codecs for iOS appeared in 26.2. vp9
	  doesn't work before this.
	  - Lifting VTRegisterSupplementalVideoDecoderIfAvailableFunc via dlsym
	  on iOS in case GStreamer is built with an older SDK.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10175>

2025-11-21 15:48:05 -0500  Dominique Leroux <dominique.p.leroux@gmail.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Fix race condition in decoder draining. Fluster runs were unstable
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10229>

2024-01-10 09:30:51 -0500  Daniel Morin <daniel.morin@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/tensordecoders/gsttensordecoders.c:
	* gst/tensordecoders/gstyolosegtensordecoder.c:
	* gst/tensordecoders/gstyolosegtensordecoder.h:
	* gst/tensordecoders/gstyolotensordecoder.c:
	* gst/tensordecoders/gstyolotensordecoder.h:
	* gst/tensordecoders/meson.build:
	  tensordecoders: Add tensor decoder element for yolo detection and segmentation models
	  A new set of tensor decoder that handles YOLO v5+ object detection and
	  YOLO v8+ segmentation.
	  `yolotensordecoder`: decodes tensors output(masks) from detection-only
	  models e.g yolov8s.onnx
	  `yolsegv8tensordecoder`: decoder tensors output(masks and logits) from
	  segementation models e.g FastSAM or yolov8s-seg
	  Co-authored-by: Vineet Suryan <vineet.suryan@collabora.com>
	  Co-authored-by: Santosh Mahto <santosh.mahto@collabora.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8652>

2025-11-26 13:32:51 -0500  Xavier Claessens <xclaessens@netflix.com>

	* gst/unixfd/gstunixfdsink.c:
	  unixfd: Fix pointer casting on 32bit arch
	  Fixes: #4766
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10212>

2025-11-25 12:55:21 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaav1enc.c:
	* sys/va/gstvah264enc.c:
	* sys/va/gstvajpegenc.c:
	* sys/va/gstvavp8enc.c:
	* sys/va/gstvavp9enc.c:
	  va: simplify encoder's reconfig() virtual method
	  By using the new gst_va_encoder_open(), which closes it if a previous
	  incompatible configuration exists.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10115>

2025-11-13 14:08:33 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaencoder.c:
	* sys/va/gstvaencoder.h:
	* sys/va/gstvah265enc.c:
	  vah265enc: use new VA encoder setup()/open_2() API
	  This patch also contains the add of a refactor get_surface_alignment() in
	  GstVaEncoder helper, which before created a synthetic VAConfig to get the
	  surface alignment.
	  Now, with the API split we can call get_surface_alignment() after setup() and
	  before open_2() without the need of a synthetic VAConfig.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10115>

2025-11-13 12:24:54 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaencoder.c:
	* sys/va/gstvaencoder.h:
	  vaencoder: split open() in setup() and open_2()
	  Still keep open() for backward compatibility as a composite of both new
	  functions.
	  setup() -> creates VA config
	  open_2() -> creates VA context
	  The reason to use open_2() is because there's a close() and we should keep the
	  API symmetry.
	  It adds an internal function is_setup() to do a fine check of what is needed by
	  every other method.
	  Fixes #3393
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10115>

2025-11-13 11:55:34 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaencoder.c:
	* sys/va/gstvaencoder.h:
	  vaencoder: add gst_va_encoder_set_coded_buffer_size()
	  So encoding elements could update the coded buffer size after opened the encoder
	  helper object.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10115>

2025-11-12 18:06:18 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaencoder.c:
	* sys/va/gstvaencoder.h:
	  vaencoder: allow lazy initialization for reconstruct buffers pool
	  Right now the open() method still creates the reconstruct buffer pool, but this
	  patch also allows its lazy creation.
	  Also the patch adds a namespaces for those member variables related only with
	  the reconstruct buffer pool.
	  And adds the function gst_va_encoder_set_reconstruct_pool_config(), that will
	  be used when an another alternative to the open() member is added in future
	  commits.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10115>

2025-11-26 14:41:35 -0500  Dominique Leroux <dominique.p.leroux@gmail.com>

	* sys/applemedia/avfassetsrc.m:
	  avfassetsrc: Explain how invalid ts and position should interact
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10197>

2025-11-26 12:18:26 -0500  Dominique Leroux <dominique.p.leroux@gmail.com>

	* sys/applemedia/avfassetsrc.m:
	  avfassetsrc: Better invalid timestamp handling and reporting
	  Now, invalid CMTime coming from AVFoundation will be properly
	  converted to GST_CLOCK_TIME_NONE (for buffer timestamp, buffer
	  duration and overall duration). And we no longer consider an
	  invalid buffer timestamp as a irrecoverable error, but just log the
	  problem instead.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10197>

2025-11-25 14:21:01 -0500  Dominique Leroux <dominique.p.leroux@gmail.com>

	* sys/applemedia/avfassetsrc.m:
	  avfassetsrc: Prevent access to released CMSampleBuffer
	  When the video sample buffers obtained from AVAssetReaderTrackOutput
	  contain data with line padding that differs from what GStreamer expects
	  (checked with GST_VIDEO_INFO_PLANE_STRIDE in
	  gst_core_video_wrap_pixel_buffer in corevideobuffer.c),
	  gst_core_media_buffer_new ends up creating a new GstBuffer with proper
	  layout and copying the original buffer content into the new buffer.
	  This means the original CMSampleBuffer gets released before we get to
	  the point where we access it to extract time information. So the comment
	  saying "cmbuf is now retained by buf (in meta)" (in avfassetsrc.c
	  nextBuffer) was not always right. But it was helpful in making me want
	  to see whether this was always true.
	  The code was reformulated to avoid having to rely on side effects, while
	  preserving a single call to CFRelease. The problem would have been more
	  obvious if there had been timestamp validation, so this is now
	  done. Frame duration will not systematically be valid (only timetamp has
	  to); therefore, invalid duration will not be used but will also not be
	  flagged as an error.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10197>

2025-11-27 01:19:01 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/asio/gstasiodeviceprovider.cpp:
	* sys/asio/meson.build:
	  asio: Add compile-time detection for device monitoring support
	  Older versions of MinGW 32-bit, such as the one that we ship in
	  Cerbero, do not support CM_Register_Notification etc.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9663>

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

	* sys/wasapi2/gstwasapi2util.cpp:
	  wasapi2: Fix some typos
	  Also convert an informative LOG to INFO
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9663>

2025-09-09 13:49:53 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/asio/gstasiodeviceprovider.cpp:
	  asio: Add a separate debug category for the device provider
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9663>

2025-09-09 09:05:44 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/asio/gstasiodeviceprovider.cpp:
	* sys/asio/meson.build:
	  asio: Implement device monitoring using USB events
	  ASIO doesn't provide a way to monitor for device registration
	  / disconnect, so we need to re-probe all the devices every time we get
	  a USB event.
	  We aggregate USB events by delaying the probe till 500ms have passed
	  since the last USB plug/unplug event.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9663>

2024-07-24 09:11:49 +0800  Shengqi Yu (喻盛琪) <shengqi.yu@mediatek.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/unixfd/gstunixfdsink.c:
	  unixfdsink: add and notify clients-number
	  1. Add the client-number property.
	  2. When the number of clients increases or decreases, notify the client-number property.
	  This way, the app can know the current number of client connections based on the notification information,
	  allowing it to perform other operations, such as setting the server pipeline to NULL state when
	  there are no client connections.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7224>

2025-11-25 19:42:15 -0500  Xavier Claessens <xclaessens@netflix.com>

	* sys/aja/gstajasrc.cpp:
	  ajasrc: Rename variable to match gst_clock_is_system_monotonic()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8257>

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

	* gst/unixfd/gstunixfdsink.c:
	* gst/unixfd/gstunixfdsrc.c:
	* sys/aja/gstajasrc.cpp:
	* sys/d3d11/gstd3d11ipc.cpp:
	* sys/d3d11/gstd3d11ipc.h:
	* sys/d3d11/gstd3d11ipcsink.cpp:
	* sys/d3d11/gstd3d11ipcsrc.cpp:
	* sys/d3d12/gstd3d12ipc.cpp:
	* sys/d3d12/gstd3d12ipc.h:
	* sys/d3d12/gstd3d12ipcsink.cpp:
	* sys/d3d12/gstd3d12ipcsrc.cpp:
	* sys/nvcodec/gstcudaipc.cpp:
	* sys/nvcodec/gstcudaipc.h:
	* sys/nvcodec/gstcudaipcsink.cpp:
	* sys/nvcodec/gstcudaipcsrc.cpp:
	* sys/win32ipc/gstwin32ipcutils.cpp:
	* sys/win32ipc/gstwin32ipcutils.h:
	* sys/win32ipc/gstwin32ipcvideosink.cpp:
	* sys/win32ipc/gstwin32ipcvideosrc.cpp:
	  GstClock: Add gst_clock_is_system_monotonic_clock
	  It was duplicated in many places and can be useful outside of GStreamer
	  as well.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8257>

2025-06-20 13:12:06 +0530  santosh mahto <santoshbit2007@gmail.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/tensordecoders/gstioutracker.c:
	* gst/tensordecoders/gstioutracker.h:
	* gst/tensordecoders/gsttensordecoders.c:
	* gst/tensordecoders/meson.build:
	* tests/check/elements/ioutracker.c:
	* tests/check/meson.build:
	  tensordecoders: Implement IoU based tracker element
	  `ioutracker` element tracks objects in video frames
	  It uses object detection mtds to get the position and
	  detects the same object in next frame based on
	  Intersection-over-Union (IoU).  Based on this, it attaches
	  tracking mtd to buffer
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9274>

2025-11-24 10:55:09 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvadisplay_priv.c:
	  vadisplay-priv: re-use log category from va plugin
	  Reuse this log category because is first created.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10192>

2025-11-19 13:47:24 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaencoder.c:
	  vaencoder: remove extra call to get VA display
	  And precise the parameter type as VABufferType.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10192>

2025-11-04 17:36:42 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/codecparsers/gsth266parser.c:
	  codecparsers: h266parser: fix documentation and parameter check
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10180>

2024-08-12 11:52:40 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/codecs/gstav1decoder.c:
	* gst-libs/gst/codecs/gstcodecpicture.c:
	* gst-libs/gst/codecs/gstvp9decoder.c:
	* gst-libs/gst/codecs/gstvp9statefulparser.c:
	  codecs: simple documentation fixes
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10180>

2025-10-30 13:20:47 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkphysicaldevice.c:
	  vkphysicaldevice: fix GI documentation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10180>

2025-11-11 12:48:59 +0100  Sven Püschel <s.pueschel@pengutronix.de>

	* sys/uvcgadget/gstuvcsink.c:
	  uvcsink: add VYUY mapping
	  The mapping was copied from plugins good [1]. At the time of the copy it
	  missed the VYUY mapping, therefore add it now.
	  [1] https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6037#note_2573767
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10070>

2025-01-21 13:32:02 -0500  Daniel Morin <daniel.morin@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/analyticsoverlay/gstanalyticsoverlay.c:
	* ext/analyticsoverlay/gstsegmentationoverlay.c:
	* ext/analyticsoverlay/gstsegmentationoverlay.h:
	* ext/analyticsoverlay/meson.build:
	  analyticsoverlay: add a segmentation overlay
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7149>

2025-11-24 18:58:43 +0200  Sebastian Dröge <sebastian@centricular.com>

	* sys/decklink/gstdecklinkvideosink.cpp:
	  decklinkvideosink: Add some debug output for writing ancillary data
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10182>

2025-11-19 15:01:40 -0600  Olivier Crête <olivier.crete@collabora.com>

	* gst/tensordecoders/gstssdobjectdetector.c:
	  ssdobjectdetector: Print class index
	  Print the class index, this helps debugging labels lists.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10143>

2025-11-19 15:23:33 -0600  Olivier Crête <olivier.crete@collabora.com>

	* gst/tensordecoders/gstclassifiertensordecoder.c:
	  classifiertensordecoder: Print clearer message when setting wrong labels file
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10143>

2025-11-19 15:23:10 -0600  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Remove unused mean/stddev default values
	  The arrays are always set
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10143>

2025-11-19 15:03:52 -0600  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Read mean/stddev from Image.NominalPixelRange metadata
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10143>

2025-11-19 15:02:56 -0600  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	* ext/tflite/gsttfliteinference.c:
	  tflite & onnxinference: Substract means
	  This makes them work like everyone else.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10143>

2025-11-18 18:13:07 -0600  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Remove pointless arguments to macro
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10143>

2025-11-18 18:12:12 -0600  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Correctly pass planarity of input tensor
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10143>

2025-11-18 16:11:28 -0600  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Mark dimension meaning explicitly
	  This makes the code more correct, as it make some incorrect assumptions
	  in some places.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10143>

2025-11-17 11:24:06 -0600  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Put more error details from the ONNX Runtime
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10143>

2025-11-15 13:28:50 -0600  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Create environment before using more APIs
	  This call has the side effect of enabling the onnxrt logging system,
	  so we must do it earlier
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10143>

2025-11-13 14:55:52 -0500  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Split the ONNX runtime debug from the element's
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10143>

2025-10-31 18:51:14 +0000  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Avoid deadlocking on startup error
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10143>

2025-10-31 18:51:02 +0000  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Hard fail when selected provider is not available
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10143>

2025-08-08 15:16:02 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	* ext/onnx/meson.build:
	  onnxinference: Remove explicit CPU execution provider setting
	  It's the default, and this one it avoid having to load the header file
	  which isn't always installed in the same place.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10143>

2025-02-15 12:45:05 +0000  Philippe Normand <philn@igalia.com>

	* ext/webrtc/gstwebrtcstats.c:
	* gst-libs/gst/webrtc/ice.c:
	* gst-libs/gst/webrtc/ice.h:
	* gst-libs/gst/webrtc/icetransport.c:
	* gst-libs/gst/webrtc/icetransport.h:
	* gst-libs/gst/webrtc/nice/nice.c:
	* gst-libs/gst/webrtc/nice/nicetransport.c:
	* gst-libs/gst/webrtc/nice/niceutils.h:
	* gst-libs/gst/webrtc/webrtc_fwd.h:
	  webrtc: ice: Add support for getting the selected candidate pair
	  Expose a `gst_webrtc_ice_transport_get_selected_candidate_pair()` function
	  corresponding to the RTCIceTransport spec's `getSelectedCandidatePair()`. See
	  also
	  https://w3c.github.io/webrtc-pc/#dom-rtcicetransport-getselectedcandidatepair
	  This new function should be used instead of `gst_webrtc_ice_get_selected_pair()`
	  which is now deprecated.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8484>

2025-07-09 10:08:38 +0200  Rinat Zeh <rinat.zeh@i-rz.de>

	* ext/meson.build:
	* ext/mpeghdec/gstmpeghdec.c:
	* ext/mpeghdec/gstmpeghdec.h:
	* ext/mpeghdec/meson.build:
	* meson.options:
	  mpeghdec: MPEG-H Audio decoder plugin
	  MPEG-H Audio decoder plugin based on Fraunhofer GitHub MPEG-H
	  decoder implementation (https://github.com/Fraunhofer-IIS/mpeghdec)
	  Co-authored-by: Florian Kolbeck <florian.kolbeck@i-rz.de>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9361>

2025-11-21 10:59:14 +0100  Hyunjun Ko <zzoon@igalia.com>

	* gst-libs/gst/vulkan/gstvkvideo-private.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.h:
	  vkvideo-private: Replace GstBuffer with GstMemory array for video sessions
	  GstBuffer has a maximum limit on the number of memories it can hold
	  (GST_BUFFER_MEM_MAX, typically 16). However, Vulkan video sessions
	  can require more memories than this limit - for example, AV1 decoding
	  on ANV requires over 30 memories.
	  This fixes AV1 decoding on ANV and any other scenarios where video
	  sessions require more than 16 memory allocations.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10169>

2025-11-20 14:04:59 +0100  Hyunjun Ko <zzoon@igalia.com>

	* gst-libs/gst/vulkan/gstvkvideo-private.c:
	  vkvideo-private: fix to use correct index for picking a memory type
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10169>

2025-11-21 11:43:13 +0200  Sebastian Dröge <sebastian@centricular.com>

	* sys/decklink/gstdecklinkvideosrc.cpp:
	  decklinkvideosrc: Don't add parity bits to the line number in GstAncillaryMeta
	  It's an 11 bit value without parity bits.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10167>

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

	* sys/aja/gstajasink.cpp:
	  ajasink: Remove parity bits from ancillary meta DID/SDID before passing further
	  The GstAncillaryMeta contains the parity bits but the AJA SDK expects them
	  without.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10167>

2025-11-20 13:48:16 +0100  Hyunjun Ko <zzoon@igalia.com>

	* ext/vulkan/vkh265dec.c:
	  vkh265dec: fix a typo
	  This fixes also H265 decoding with LTR on ANV.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10166>

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

	* gst/unixfd/gstunixfdsrc.c:
	  unixfdsrc: Keep dmabuf mapped
	  The unixfdsrc has as equal use for CPU access and device access. Keeping the CPU
	  address mapping is preferable, with not down side for device access.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10153>

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

	* gst-libs/gst/va/gstvaallocator.c:
	  va: allocator: Keep dmabuf mapped
	  VA buffers are rarely access from CPU, but if this is someone use case, it is
	  preferable to keep the CPU address mapping around since this isn't cheap to
	  create each time we map/unmap the buffer.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10153>

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

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

2024-03-15 23:11:20 +1100  Jan Schmidt <jan@centricular.com>

	* gst/mpegtsmux/tsmux/tsmux.c:
	  mpegtsmux: Avoid infinite recursion writing PCR packets
	  If scheduling a PCR packet from tsmux_packet_out(), or
	  already writing one, don't do the PCR checks that can
	  recurse infinitely and crash.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6380>

2025-10-15 06:49:03 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/sctp/sctpassociation.c:
	  sctp: Fix GMutex leak
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9846>

2025-10-15 04:35:27 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/applemedia/vtenc.c:
	  vtenc: Fix a leak when setting caps
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9846>

2025-11-04 23:29:40 +0900  Seungha Yang <seungha@centricular.com>

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

2025-11-17 16:25:06 +0200  Sebastian Dröge <sebastian@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* sys/decklink/gstdecklinkvideosink.cpp:
	* sys/decklink/gstdecklinkvideosink.h:
	  decklinkvideosink: Add support for outputting GstAncillaryMeta
	  This adds a new output-vanc boolean property.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10111>

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

	* sys/decklink/gstdecklinkvideosink.cpp:
	* sys/decklink/gstdecklinkvideosink.h:
	  decklinkvideosink: Use GstVecDeque instead of GQueue for the pending frames
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10111>

2025-11-13 15:14:50 +0200  Sebastian Dröge <sebastian@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* sys/decklink/gstdecklinkvideosrc.cpp:
	* sys/decklink/gstdecklinkvideosrc.h:
	  decklinkvideosrc: Add support for outputting all VANC via GstAncillaryMeta
	  This adds a new output-vanc boolean property.
	  As part of this, now all valid VANC lines are always checked for interesting
	  VANC. Previously we cached where CC or AFD/Bar was found and first checked that
	  line. Keeping this would complicate the code considerably, and here checking all
	  lines takes less than 1ms.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10111>

2025-11-05 15:37:25 +0100  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/play/gstplay.c:
	  gstplay: Fixed wrong initial configuration
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10110>

2025-11-13 21:12:20 +0530  Sanchayan Maity <sanchayan@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/mxf/mxfvanc.c:
	* gst/mxf/mxfvanc.h:
	  mxfvanc: Add support for non-closed-caption VANC
	  - Extends mxfdemux with support for outputting VANC (ST436M) essence
	  tracks as ST2038 streams instead of extracting closed captions internally.
	  - Extends mxfmux with support for consuming ST2038 streams for outputting
	  VANC (ST436M) essence tracks instead of only supporting closed captions.
	  To support ST2038 instead of the earlier closed captions, we introduce a
	  breaking change to the caps handling on the pad. We also now support both
	  8 and 10-bit VANC data when reading from MXF.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10087>

2025-11-17 10:24:17 +0900  dongjoo.kim <dongjoo.kim@lge.com>

	* gst/mxf/mxfffv1.c:
	  mxfdemux: Fix typo on mxf_ffv1_create_caps
	  In this section, the p value cannot be NULL, so it is dead code.
	  However, if you refer to the code in mxf_ffv1_get_track_wrapping,
	  you can see that you should check desc, not p.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10095>

2025-11-18 11:03:28 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaencoder.c:
	  vaencoder: add validation that format's chroma
	  gst_va_encoder_open() receives as parameters GStreamer Video Format and its
	  chroma. Nevertheless, chroma can be known from the format by using
	  gst_va_chroma_from_video_format().
	  Instead of removing a spurious method's parameter, this patch validates that
	  both coincide.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10086>

2025-10-06 20:46:10 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/hip/gsthip-interop.cpp:
	* gst-libs/gst/hip/gsthipdevice.cpp:
	* gst-libs/gst/hip/gsthipevent.cpp:
	* gst-libs/gst/hip/gsthipmemory.cpp:
	* gst-libs/gst/hip/gsthipstream.cpp:
	* gst-libs/gst/hip/meson.build:
	  hip: Generate gir files
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9804>

2025-11-17 14:50:21 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3d12/gstd3d12converter.cpp:
	  d3d12converter: Apply background color even without mipmapping
	  Fix missing background color update for UV remapping when mipmapping
	  is disabled
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10096>

2025-11-03 11:41:36 +0900  jeongmin kwak <jeongmin.kwak@lge.com>

	* ext/smoothstreaming/gstmssdemux.c:
	  mssdemux: Clarify pad name cleanup in _create_pad()
	  Refactored _create_pad() to always free the pad name after pad creation attempt.
	  No actual leak existed; this change makes cleanup explicit and improves readability
	  after a static analyzer warning.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9982>

2025-11-13 09:14:59 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaav1enc.c:
	* sys/va/gstvadisplay_priv.c:
	* sys/va/gstvadisplay_priv.h:
	* sys/va/gstvaencoder.c:
	* sys/va/gstvaencoder.h:
	* sys/va/gstvah264enc.c:
	* sys/va/gstvah265enc.c:
	* sys/va/gstvajpegenc.c:
	* sys/va/gstvavp8enc.c:
	* sys/va/gstvavp9enc.c:
	  va: move methods from encoder to display-priv
	  These methods, semantically speaking, don't belong to the encoder helper object,
	  even if the attributes they are querying are only related with encoding
	  operations, since, in terms of the required parameters to call them, only
	  display is required.
	  The main problem with adding them in the encoder is that the encoder already has
	  entrypoint (and the profile when it's opened), and this methods are required to
	  be called previous the opening of the encoder object.
	  This patch proposes to move these methods to the GstVaDisplay namespace, but
	  privately, since they are used only by the elements in the plugins, not by the
	  public API.
	  Calling this attribute in a non-encoding entrypoint shouldn't be a problem for
	  any driver, it should return the unimplemented value.
	  No functional changes are done.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10083>

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

	* gst/videoparsers/gsth266parse.c:
	* gst/videoparsers/gsth266parse.h:
	  h266parse: Use VUI framerate when upstream framerate is 0/1
	  If upstream framerate is 0/1 (unknown) but VUI has framerate
	  information, use the VUI framerate
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10039>

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

	* gst/videoparsers/gsth264parse.c:
	  h264parse: Use VUI framerate when upstream framerate is 0/1
	  If upstream framerate is 0/1 (unknown) but VUI has framerate
	  information, use the VUI framerate
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10039>

2025-11-07 20:39:34 +0900  Seungha Yang <seungha@centricular.com>

	* gst/videoparsers/gsth265parse.c:
	* gst/videoparsers/gsth265parse.h:
	  h265parse: Use VUI framerate when upstream framerate is 0/1
	  If upstream framerate is 0/1 (unknown) but VUI has framerate
	  information, use the VUI framerate
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10039>

2025-11-12 17:13:06 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkh264enc.c:
	  vkh264enc: remove unused member variable
	  The member variable out_state is not used in the code, so there's no need to
	  keep it as a member variable along the lifespan of the object.
	  Even more, it can be fetched with gst_video_encoder_get_output_state().
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10080>

2025-10-30 23:25:23 +0900  Seungha Yang <seungha@centricular.com>

	* tests/check/elements/h265parse.c:
	  tests: h265parse: Update for AUD insertion
	  Updating tests to handle inserted AUD by h265parse
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9955>

2025-10-30 21:40:37 +0900  Seungha Yang <seungha@centricular.com>

	* gst/videoparsers/gsth265parse.c:
	* gst/videoparsers/gsth265parse.h:
	  h265parse: Add support for AUD insertion
	  Implement AUD insertion similar to h264parse
	  to work around decoding artifacts in multi-slice HEVC streams.
	  This fixes an issue with the Intel Media Foundation decoder in
	  Windows Media Player, where the decoded image becomes corrupted
	  in non-first slices when the frame lacks AUD
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9955>

2025-11-13 11:53:52 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaencoder.c:
	  vaencoder: add more checks to gst_va_encoder_open()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10084>

2025-11-13 11:51:53 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaencoder.c:
	  vaencoder: IS macros checks for NULL
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10084>

2025-11-13 11:36:42 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaencoder.c:
	  vaencoder: init() calls reset()
	  Thus avoiding repeated code.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10084>

2025-11-03 11:23:36 +0900  jeongmin kwak <jeongmin.kwak@lge.com>

	* gst-libs/gst/mpegts/gst-scte-section.c:
	  scte-section: fix missing cleanup and clarify event ownership on parse failure
	  Free only the allocated component when _parse_splice_component() fails,
	  leaving event cleanup to the caller to maintain proper ownership.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9981>

2025-11-07 14:17:39 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvabaseenc.c:
	  vabaseenc: get usage hint with real entrypoint
	  Use class' entrypoint rather than a hardcoded one. Currently, in the case of
	  encoders, it doesn't matter much, but it makes the code robust for future
	  changes.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10077>

2025-11-07 14:19:17 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvabasedec.c:
	* sys/va/gstvabaseenc.c:
	* sys/va/gstvabasetransform.c:
	* sys/va/gstvacaps.c:
	* sys/va/gstvacaps.h:
	* sys/va/gstvacompositor.c:
	  va: use gst_video_is_dma_drm_caps()
	  Instead of local gst_caps_is_dmabuf()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10077>

2025-11-07 14:15:50 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/meson.build:
	  va: build: remove non-documentation headers
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10077>

2025-11-12 16:53:32 -0800  Matthew Semeniuk <megaman22342@live.ca>

	* gst-libs/gst/vulkan/gstvkqueue.h:
	  vulkan: add G_DECLS to gstvkqueue
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10078>

2025-11-12 16:53:05 -0800  Matthew Semeniuk <megaman22342@live.ca>

	* gst-libs/gst/vulkan/gstvkcommandpool.h:
	  vulkan: add G_DECLS to gstvkcommandpool
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10078>

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

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

2025-08-15 15:16:57 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/analytics/gstanalyticsbatchmeta.c:
	* gst-libs/gst/analytics/gstanalyticsbatchmeta.h:
	  batchmeta: Merge event/buffer/bufferlist into a single field
	  Everything serialized should be sent together
	  Break an API introduced since the last release.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9563>

2025-06-18 14:25:17 +0900  dongjoo.kim <dongjoo.kim@lge.com>

	* gst/id3tag/id3tag.c:
	  id3tag: Fix resource leak
	  When latin1 is not NULL and latin1[0] is '\0'
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10050>

2025-10-31 16:59:45 +0900  jeongmin kwak <jeongmin.kwak@lge.com>

	* gst-libs/gst/analytics/gstanalyticsmeta.c:
	  analyticsmeta: Initialize span to avoid undefined behavior
	  Fix uninitialized scalar variable by setting 'span' when max_relation_span is non-negative.
	  Prevents potential issues when accessing adjacency matrix.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9963>

2025-11-10 13:21:43 +0100  Kevin Scott <kevin.scott@axis.com>

	* ext/dtls/gstdtlsconnection.c:
	  dtlsconnection: Increase DTLS MTU to 1200
	  Returning 0 defaults the MTU to 256 in OpenSSL, which is too small for some
	  handshake messages. An MTU of 1200 prevents certificate fragmentation
	  and potential message reordering. Chromium does something similar:
	  https://chromium.googlesource.com/external/webrtc/+/06b8f7e/rtc_base/openssl_stream_adapter.cc#259
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10054>

2025-06-16 16:40:07 +0900  dongjoo.kim <dongjoo.kim@lge.com>

	* gst-libs/gst/wayland/gstwllinuxdmabuf.c:
	  wayland: Fix using uninitialized value of data.wbuf
	  There are cases which it goes to "out" without initializing data.wbuf
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10051>

2025-11-04 13:48:12 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/timecode/gstavwait.c:
	  avwait: Unify conditions between the different modes
	  And as part of that fix a couple of mode changes while running, e.g.
	  starting recording in video-first mode, then switching to running time mode and
	  only setting an end running time.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10001>

2025-11-05 15:25:33 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/vulkan/gstvkdecoder-private.c:
	* tests/check/libs/analyticsmeta.c:
	  memory: Add gst_map_info_clear() and use GST_MAP_REF_MEMORY for gst_buffer_map()
	  Also deprecate GstMemoryMapInfo and GstBufferMapInfo, and add g_autoptr support
	  for GstMapInfo directly.
	  This simplifies usage of the GstMapInfo API and reduces a bit of
	  inconsistencies.
	  For consistency, also add gst_map_info_init().
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10020>

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

	* gst/videoparsers/gsth264parse.c:
	* gst/videoparsers/gsth265parse.c:
	* gst/videoparsers/gsth266parse.c:
	* gst/videoparsers/gstvp9parse.c:
	  videoparsers: Don't unnecessarily copy buffers
	  gst_base_parse_finish_frame() does not invalidate the buffer's data
	  anymore since a few years.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10035>

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

	* gst/videoparsers/gsth264parse.c:
	* gst/videoparsers/gsth265parse.c:
	* gst/videoparsers/gsth266parse.c:
	* gst/videoparsers/gstmpeg4videoparse.c:
	* gst/videoparsers/gstmpegvideoparse.c:
	* gst/videoparsers/gstvp9parse.c:
	  videoparsers: Don't read GstMapInfo values after unmapping
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10035>

2025-11-06 14:27:06 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/videoparsers/gsth264parse.c:
	* gst/videoparsers/gsth265parse.c:
	* gst/videoparsers/gsth266parse.c:
	  h26456parse: Don't unmap and unref buffers twice
	  And also don't unnecessarily copy it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10035>

2025-11-06 14:26:01 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/videoparsers/gstav1parse.c:
	* gst/videoparsers/gsth264parse.c:
	* gst/videoparsers/gsth265parse.c:
	* gst/videoparsers/gsth266parse.c:
	* gst/videoparsers/gstvp9parse.c:
	  videoparsers: Call gst_base_parse_frame_free() for custom allocated frames
	  Unlike the name suggests, for stack-allocated frames it only frees the
	  contained memory and does not free the frame itself.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10035>

2025-10-17 12:28:00 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/gstvkutils.c:
	* ext/vulkan/gstvkutils.h:
	* ext/vulkan/vkdownload.c:
	* ext/vulkan/vkupload.c:
	  gstvkutils: Add utility function for plane dimension calculations
	  Adds gst_vulkan_video_info_get_plane_dimensions() to calculate plane's
	  dimensions required for Vulkan buffer/image copy operations. This function:
	  - Handle video metadata, if available, for padding
	  - Converts byte strides to pixel counts for Vulkan's bufferRowLength
	  - Share this calculations with vulkanupload and vulkandownload elements
	  Co-authored-by: Stéphane Cerveau <scerveau@igalia.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8862>

2025-10-16 10:26:30 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/gstvkutils.c:
	* ext/vulkan/gstvkutils.h:
	* ext/vulkan/meson.build:
	* ext/vulkan/vkdownload.c:
	* ext/vulkan/vkupload.c:
	  gstvkutils: Add utility function for plane memory lookup
	  Added gst_vulkan_buffer_peek_plane_memory(). It finds the GstMemory associated
	  with a specific video plane. This replaces duplicated code in vkdownload and
	  vkupload elements.
	  This function properly handles both buffers with and without video metadata.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8862>

2025-10-16 21:13:18 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkdownload.c:
	  vulkandownload: fix indentation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8862>

2025-10-16 21:08:43 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkupload.c:
	  vulkanupload: fix indentation and missing indent control
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8862>

2025-10-16 21:10:35 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* tests/check/elements/vkupload.c:
	  tests: vkupload: add multiple formats and resolutions test
	  Restructured the test allowing testing multiple formats (NV12 and RGBA) and
	  resolution.
	  Instead of a format-specific validation, the test keeps the input image and
	  compare it, row by row / pixel-perfect, with the output image. The test also
	  does memory dumps of each compared row for troubleshooting.
	  Co-authored-by: Stéphane Cerveau <scerveau@igalia.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8862>

2025-11-05 12:37:42 +0200  Rares Branici <rares.branici@senstar.com>

	* gst-libs/gst/d3d12/gstd3d12converter.cpp:
	  d3d12converter: Initialize video_direction
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10016>

2025-11-05 12:37:01 +0200  Rares Branici <rares.branici@senstar.com>

	* gst-libs/gst/d3d11/gstd3d11converter.cpp:
	  d3d11converter: Initialize video_direction
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10016>

2025-11-04 17:20:16 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* ext/wpe2/meson.build:
	  wpe2: Check for presence of wpe-platform.h
	  Just because WPEWebKit is new enough doesn't mean it has been built with
	  the WPE Platform API enabled. Check that its header is present before
	  building the plugin.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10003>

2025-11-03 18:39:01 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12basefilter.cpp:
	* sys/d3d12/gstd3d12basefilter.h:
	* sys/d3d12/gstd3d12convert.cpp:
	* sys/d3d12/gstd3d12deinterlace.cpp:
	* sys/d3d12/gstd3d12fisheyedewarp.cpp:
	* sys/d3d12/gstd3d12interlace.cpp:
	* sys/d3d12/gstd3d12mipmapping.cpp:
	* sys/d3d12/gstd3d12overlaycompositor.cpp:
	* sys/d3d12/gstd3d12remap.cpp:
	  d3d12basefilter: Make device access thread-safe
	  Since the device object can be cleared while handling allocation queries
	  during state changes, protect it with a mutex. Also, move the duplicated
	  allocation query handler into the base class to eliminate redundant code.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9984>

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

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

2025-10-31 10:51:48 +0100  Loïc Le Page <llepage@igalia.com>

	* gst-libs/gst/codecparsers/gsth264parser.c:
	* tests/check/libs/h264parser.c:
	  gsth264parser: fix uint32 to int32 truncation
	  The H264 parser is using int32 to compute the framerate numerator and
	  denominator while the SPS block holding the original values used for
	  this computation are stored on uint32. On corner cases it may lead to a
	  truncation of the final values leading to an invalid framerate.
	  This patch is shifting right the numerator and denominator until both
	  values may be stored on int32. It may introduce a small computation
	  error with odd values but negligeable taking into account the huge
	  initial values > max_int32.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9967>

2025-10-31 15:00:35 +0000  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	* ext/tflite/gsttfliteinference.c:
	  tflite+onnx: Remove Effect from the klass
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9911>

2025-10-26 12:48:20 +0000  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Guess the planar nature instead of setting it manually
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9911>

2025-10-26 12:14:00 +0000  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Use GstVideoInfo directly
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9911>

2025-10-26 11:07:00 +0000  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Redirect ONNX-Runtime level to GStreamer logs
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9911>

2025-10-25 16:23:13 +0100  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Set ONNX logging from GStreamer
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9911>

2025-10-25 16:04:24 +0100  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Push ERROR on the bus when returning GST_FLOW_ERROR
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9911>

2025-10-25 15:51:51 +0100  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstml.h:
	* ext/onnx/gstonnxclient.cpp:
	* ext/onnx/gstonnxclient.h:
	* ext/onnx/gstonnxinference.c:
	* ext/onnx/gstonnxinference.cpp:
	* ext/onnx/meson.build:
	  onnxinference: Port to C
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9911>

2025-10-25 12:11:01 +0100  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxclient.cpp:
	* ext/onnx/gstonnxclient.h:
	  onnx: Remove template with C macro for conversion
	  Import the code from TfLiteInference for now.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9911>

2025-10-22 18:43:43 +0100  Olivier Crête <olivier.crete@collabora.com>

	* ext/tflite/gsttfliteinference.c:
	  tflite: Factor out function guessing the type from the tensor
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9911>

2025-10-22 18:33:00 +0100  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxclient.cpp:
	  onnx: Simplify structure member setting
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9911>

2025-10-22 18:18:22 +0100  Olivier Crête <olivier.crete@collabora.com>

	* ext/tflite/gsttfliteinference.c:
	  tfliteinference: Remove object instance from conversion function
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9911>

2025-10-22 18:03:15 +0100  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxclient.cpp:
	* ext/onnx/gstonnxclient.h:
	  onnx: Remove usage of C++ string
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9911>

2025-10-22 17:52:22 +0100  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxclient.cpp:
	* ext/onnx/gstonnxclient.h:
	  onnx: Remove usage of C++ vector
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9911>

2025-10-22 16:48:37 +0100  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxclient.cpp:
	* ext/onnx/gstonnxclient.h:
	* ext/onnx/gstonnxinference.cpp:
	  onnxinference: Use C OnnxRT API instead of C++ API
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9911>

2025-10-31 17:20:31 +0900  jeongmin kwak <jeongmin.kwak@lge.com>

	* gst-libs/gst/mpegts/gst-scte-section.c:
	  scte-section: fix resource leak in splice component parsing
	  Free the `component` buffer in the error path of `gst_scte_section_parse()`
	  to prevent a memory leak when an error occurs after allocation.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9964>

2025-10-26 16:11:43 +0000  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkav1dec.c:
	  vkav1dec: dynamically generated pads templates
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9748>

2025-10-26 16:11:00 +0000  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkav1dec.c:
	* ext/vulkan/vkav1dec.h:
	  vkav1dec: clean headers and code-style fixes
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9748>

2025-10-08 15:37:47 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkvp9dec.c:
	* ext/vulkan/vkvp9dec.h:
	  vkvp9dec: dynamically generated pads templates
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9748>

2025-10-06 17:05:59 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkh265dec.c:
	* ext/vulkan/vkh265dec.h:
	  vkh265dec: dynamically generated pads templates
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9748>

2025-09-25 19:33:31 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkh264dec.c:
	* ext/vulkan/vkh264dec.h:
	* ext/vulkan/vkh264enc.c:
	* ext/vulkan/vkh264enc.h:
	  vkh264XXX: dynamically generated pads templates
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9748>

2025-09-25 19:31:46 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/gstvkvideocaps.c:
	* ext/vulkan/gstvkvideocaps.h:
	* ext/vulkan/meson.build:
	  gstvkvideocaps: dynamic caps generator for pad templates
	  Implement gst_vulkan_physical_device_codec_caps() to query Vulkan video
	  capabilities and generate appropriate GStreamer caps for supported codecs. This
	  includes support for H.264, H.265 decode and encode operations, and VP9 and AV1
	  decode operations.
	  The implementation builds video profiles for each codec and iterates through
	  possible chroma subsampling and bit depth combinations to determine supported
	  configurations. For each valid configuration, it generates both codec-specific
	  caps (like video/x-h264) and corresponding raw video output caps with
	  Vulkan image memory feature.
	  Also handles special cases and sets appropriate stream formats for different
	  codecs.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9748>

2025-09-23 14:09:30 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkdecoder-private.c:
	* gst-libs/gst/vulkan/gstvkencoder-private.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.h:
	  vkvideo-private: add gst_vulkan_video_try_configuration()
	  This is a refactoring of encoder and decoder helper classess, taking out common
	  code from both that queries a vulkan physical device given a video operation
	  profile. That query returns the hardware capabilities for that profile.
	  By taking out from encoder and decoder helper classes this common query to a
	  physical devices to a gst_vulkan_try_configuration(), this function can be
	  reused for the caps template generation for vulkan video elements.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9748>

2025-10-26 16:22:31 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkvideoutils-private.c:
	  vkvideoutils-private: add film grain field in caps
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9748>

2025-10-07 17:37:44 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkvideoutils-private.c:
	  vkvideoutils-private: improve H.265 profile handling
	  In order to determine the H.265 GStreamer profile, it's required to consider the
	  chroma subsampling and the chroma/luma bit depth and compare them with a list of
	  possible profile strings.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9748>

2025-10-08 17:34:13 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkvideoutils-private.c:
	  vkvideoutils-private: fail _to_caps() if no gstreamer profile
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9748>

2025-10-07 19:36:50 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkvideoutils-private.c:
	  vkvideoutils-private: break loops when profile is found
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9748>

2025-09-25 19:24:55 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/gstvulkan.c:
	* ext/vulkan/gstvulkanelement.c:
	  vulkan: export common debug category
	  So it can be used along all the plugin registy process.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9748>

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

	* gst-libs/gst/vulkan/gstvkformat.c:
	  vkformat: add missing vulkan video formats
	  These formats are used by Vulkan video decoders and encoders.
	  In Vulkan Specification (1.4.330), in section 53.1.6 "Representation and Texel
	  Block Size", it says:
	  […] The in-memory ordering of bytes within a component is determined by the
	  host endianness.
	  Then there's a macro that will do that conversion in compilation time.
	  Those new color formats don't have color conversion logic yet.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9748>

2025-09-25 19:21:50 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkerror.c:
	  vkerror: add video profile errors
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9748>

2025-09-25 19:20:33 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkvideoutils-private.c:
	  vkvideoutils-private: H.264 profile baseline is constrained-baseline
	  In the Vulkan Specification (v 1.4.330) in sections 45.12.3 and 45.21.6, "H264
	  Decode Profile" and "H.264 Encode Profile" respectively, it says:
	  […] enum constant STD_VIDEO_H264_PROFILE_IDC_BASELINE identifies the
	  Constrained Baseline profile as defined in A.2.1.1 of the ITU-T H.264
	  Specification […]
	  This patch fix that in our mapping structure which assumed baseline.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9748>

2025-10-27 20:46:40 +0000  Jan Schmidt <jan@centricular.com>

	* gst/mpegtsdemux/tsdemux.c:
	  tsdemux: support demuxing ID3 metadata
	  Output timed ID3 metadata frames. Mark packets
	  that start a new ID3 frame as keyframes, using the
	  PES data_alignment header flag.
	  Based on a patch by Sebastían Benítez Díaz <sebastianbd95@gmail.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7645>

2025-10-30 11:56:59 +0100  Ruben Sanchez <rsanchez@fluendo.com>

	* tests/check/elements/nvenc.c:
	  nvenc: Update test resolutions for modern NVIDIA GPUs
	  Modern NVIDIA GPUs (RTX 20xx, 30xx, 40xx series) have minimum
	  resolution requirements of 160x64. Update test resolutions from
	  64x64/128x128 to 320x320/640x640 to support these GPUs.
	  The original values were causing caps negotiation failures with
	  GST_FLOW_NOT_NEGOTIATED on modern hardware.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9952>

2025-10-30 11:56:34 +0100  Ruben Sanchez <rsanchez@fluendo.com>

	* tests/check/elements/nvenc.c:
	  nvenc: Fix typo in resolution_change_common using to_width for height
	  When changing resolution in the test, the height caps field was
	  incorrectly set using to_width instead of to_height parameter.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9952>

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

	* ext/vulkan/vkupload.c:
	  vulkanupload: fix return error in raw to buffer method
	  The return value of _copy_frames() is boolean, while the return value
	  of _raw_to_buffer_perform() is GstFlowReturn. By casting it, it returns
	  a wrong value.
	  This patch returns GST_FLOW_ERROR if _copy_frames() fails.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9957>

2025-10-29 11:29:46 +0100  Tulio Beloqui <tulio@pexip.com>

	* sys/mediafoundation/gstmfcapturedshow.cpp:
	  mfcapturedshow: fix for top-down RGB images
	  The documentation for BITMAPINFOHEADER states that: For uncompressed
	  RGB bitmaps, if biHeight is positive, the bitmap is a bottom-up DIB
	  with the origin at the lower left corner. If biHeight is negative, the
	  bitmap is a top-down DIB with the origin at the upper left corner.
	  Also make sure the height in the caps is always positive.
	  Tested against the NVIDIA Broadcast virtual camera.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9950>

2025-10-26 16:06:26 +0000  Jan Schmidt <jan@centricular.com>

	* gst/mpegtsmux/gstbasetsmux.c:
	* gst/mpegtsmux/tsmux/tsmuxstream.c:
	  mpegtsmux: Split large non-video PES packets
	  MPEG-TS PES packets have a maximum payload size of 65535 bytes
	  (including the header bytes). For larger incoming payloads,
	  split them into maximum-size PES packets. Video packets are
	  allowed to be unbounded
	  When breaking incoming buffers across PES packet payloads, only
	  the first should carry the incoming PTS/DTS
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9925>

2025-10-26 16:06:26 +0000  Jan Schmidt <jan@centricular.com>

	* gst/mpegtsmux/tsmux/tsmuxstream.c:
	  mpegtsmux: Use some named constants instead of hard-coded values
	  Make some code a bit more readable
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9925>

2025-10-28 11:40:20 +0900  JihoonLee <ejihoon.lee@lge.com>

	* gst/mpegtsdemux/tsdemux.c:
	  tsdemux: add debug logs for various stream handling cases
	  Add GST_DEBUG_OBJECT statements in the default cases of switch statements
	  to improve traceability when handling unexpected GstH264NalUnitType,
	  MPEG-TS stream types, JPEG2000 color specifications.
	  - scan_keyframe_h264: Log NAL unit type for non-slice cases
	  - create_pad_for_stream: Log unsupported stream types
	  - color specification handling: Log unrecognized color specs
	  No functional changes introduced, only enhanced debugging capabilities.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9928>

2025-10-29 14:17:28 +0900  jeongmin kwak <jeongmin.kwak@lge.com>

	* sys/v4l2codecs/gstv4l2decoder.c:
	  v4l2codecs: Free sub-request on allocation failure
	  If gst_vec_deque_pop_head() returns NULL, a new GstV4l2Request is allocated.
	  Free it on MEDIA_IOC_REQUEST_ALLOC failure to avoid memory leak.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9944>

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

	* ext/openaptx/openaptx-plugin.c:
	* gst-libs/gst/codecparsers/gsth266parser.c:
	* gst-libs/gst/codecs/gstmpeg2decoder.c:
	  bad: Annotate unused functions/variables when checks/asserts disabled
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9931>

2025-10-23 15:43:10 +0900  JihoonLee <ejihoon.lee@lge.com>

	* gst/videoparsers/gsth265parse.c:
	  h265parse: Add debug logging for unknown H.265 values
	  Add GST_DEBUG logging for unrecognized H.265 parser values to improve
	  diagnostic capability when processing unsupported or malformed streams:
	  - gst_h265_parse_process_sei(): log unknown SEI payload types
	  - gst_h265_parse_update_src_caps(): log unknown chroma format IDs
	  - gst_h265_parse_pre_push_frame(): log unknown sei_pic_struct values
	  These debug statements help identify issues with non-standard H.265 stream
	  configurations during parsing.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9889>

2025-10-25 14:24:19 +0100  Jan Schmidt <jan@centricular.com>

	* gst/mpegtsdemux/pesparse.c:
	  mpegtsdemux: Use some named constants instead of hard-coded values
	  Make some code a bit more readable
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9921>

2025-05-16 09:26:49 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst/tensordecoders/gstclassifiertensordecoder.c:
	  classifierdecoder: Support tensors that don't need softmax
	  In some models, the softmax function has already been performed, so no
	  need to do it in the GStreamer code.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8995>

2025-10-09 14:50:13 +0100  Philippe Normand <philn@igalia.com>

	* ext/webrtc/gstwebrtcbin.c:
	  webrtcbin: Unlock sctp elements during disposal
	  Not doing so would lead to critical warnings. It could happen if webrtcbin is
	  teared down while it has a data-channel awaiting to preroll.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9823>

2025-10-09 14:43:46 +0100  Philippe Normand <philn@igalia.com>

	* ext/webrtc/gstwebrtcbin.c:
	* ext/webrtc/gstwebrtcbin.h:
	* gst-libs/gst/webrtc/nice/nice.c:
	* tests/check/elements/webrtcbin.c:
	  webrtcbin: Optional support for async tasks
	  This seems needed mostly for the add-ice-candidate-full signal where the promise
	  is passed down to the ICE implementation. In this context the promise reply will
	  usually be notified from the ICE backend which in some situations has to perform
	  an asynchronous name resolution for the host supplied in the candidate SDP.
	  Covered by a test that negotiates an Offer/Answer and then attempts to add an
	  ICE candidate containing an invalid MDNS candidate address.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9823>

2025-01-17 18:32:13 -0300  Daniel Almeida <daniel.almeida@collabora.com>

	* ext/vulkan/gstvulkan.c:
	* ext/vulkan/meson.build:
	* ext/vulkan/vkav1dec.c:
	* ext/vulkan/vkav1dec.h:
	* gst-libs/gst/vulkan/gstvkdecoder-private.c:
	* gst-libs/gst/vulkan/gstvkdecoder-private.h:
	* gst-libs/gst/vulkan/gstvkdevice.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.h:
	* gst-libs/gst/vulkan/gstvkvideoutils-private.c:
	* gst-libs/gst/vulkan/gstvkvideoutils-private.h:
	  vulkan: add av1 decode element
	  Co-authored-by: Stephane Cerveau <scerveau@igalia.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8316>

2025-10-25 13:10:48 +0100  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2rbuf.cpp:
	  wasapi2: Create background thread with normal priority
	  The background thread would be idle in most time and it does not
	  perform any time critical task. Create the thread explicitly
	  outside of our I/O thread so that default priority to be
	  assigned
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9895>

2025-10-25 18:50:16 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* ext/vulkan/vkvp9dec.c:
	  vkvp9dec: fix dpb_size calculation
	  Remove useless checks in _find_next_slot_idx
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9904>

2025-10-25 16:14:49 +0100  He Junyan <junyan.he@intel.com>

	* gst/videoparsers/gstav1parse.c:
	  av1parse: Fix duplicated frames issue in frame splitting
	  This fix a bug where we append two frames into one buffer despite trying to
	  split stream into unique frames.
	  Fixes #4701
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9901>

2025-10-25 14:18:47 +0100  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12swapchainsink.cpp:
	  d3d12swapchainsink: Fix flickering after resize
	  Mark as it was resized correctly so that next render cycle can be
	  processed as intended
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9897>

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

	* gst-libs/gst/vulkan/gstvkdecoder-private.c:
	* gst-libs/gst/vulkan/gstvkencoder-private.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.h:
	  vkvideo-private: split video device and instance functions
	  Load and use device functions are faster and attached to a specific device.
	  Nevertheless, physical device functions belong to instance.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9837>

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

	* gst-libs/gst/vulkan/gstvkvideo-private.h:
	  vkvideo-private: remove unused function pointer
	  vkCmdPipelineBarrier2KHR isn't used because it was integrated into
	  GstVulkanOperation.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9837>

2025-10-13 17:48:37 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkdecoder-private.c:
	* gst-libs/gst/vulkan/gstvkencoder-private.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.h:
	  vk{decoder,encoder}-private: use new physical device functions
	  Rather than loading the functions pointers by the helper classes themselves.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9837>

2025-10-13 16:46:41 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkphysicaldevice-private.h:
	* gst-libs/gst/vulkan/gstvkphysicaldevice.c:
	  vkphysicaldevice: add gst_vulkan_physical_device_get_video_capabilities()
	  The function will return TRUE if vkGetPhysicalDeviceVideoCapabilitiesKHR
	  function is available and it ran correctly. If so, the pcaps
	  structure (VkVideoCapabilitiesKHR) is filled.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9837>

2025-10-13 16:27:33 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkerror.c:
	* gst-libs/gst/vulkan/gstvkphysicaldevice-private.h:
	* gst-libs/gst/vulkan/gstvkphysicaldevice.c:
	  vkphysicaldevice: add gst_vulkan_physical_device_get_video_formats()
	  This function will return a GArray of VkVideoFormatPropertiesKHR elements given
	  the image usage and a pointer to a VkVideoProfileInfoKHR structure.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9837>

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

	* gst-libs/gst/vulkan/gstvkformat.c:
	* gst-libs/gst/vulkan/gstvkphysicaldevice-private.h:
	* gst-libs/gst/vulkan/gstvkphysicaldevice.c:
	  vkphysicaldevice: add gst_vulkan_physical_device_get_format_properties()
	  This function will try to use the latest way to fetch the format's properties.
	  It can be called multiple times so it's better to keep it as function attached
	  to the object.
	  The function still uses gst_vulkan_instance_get_proc_address() instead of
	  gst_vulkan_device_get_proc_address() because, logically, physical device is in
	  between of the instance and the device.
	  In other to keep the code compatible with several Vulkan versions, we added a
	  private result structure: GstVulkanFormatProperties.
	  In gstvkformat, instead of loading the function every time, this new function
	  is called from GstPhysicalDevice object.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9837>

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

	* gst-libs/gst/vulkan/gstvkdevice.c:
	  vkdevice: enable physical device extensions
	  These extensions are potentially used by gst_vulkan_format_from_video_info_2()
	  but since they aren't loaded with the conditions are met, basic fallback are
	  used.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9837>

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

	* gst-libs/gst/vulkan/gstvkdevice.c:
	  vkdevice: fix verification function calling
	  The code only checked if the function was set, but it didn't actually call the
	  function.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9837>

2025-04-01 14:46:23 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst/codecalpha/gstalphacombine.c:
	  alphacombine: Only reset once both pads are done flushing
	  Since reset also removes the blocking pad probe, this meant that the
	  new mechanism only worked if the main pads received flush-stop first.
	  Keep both pad implementation symmetrical and reset once both pads
	  have received the event.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8759>

2025-10-16 14:34:48 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* gst/mpegtsmux/tsmux/tsmux.c:
	  tsmux: Reset PUSI flag after writing stream packet
	  Otherwise we might accidentally set it on a PCR-only packet when we pad
	  the stream on a subsequent write.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9857>

2024-09-21 00:53:11 +0200  Michael Grzeschik <m.grzeschik@pengutronix.de>

	* sys/uvcgadget/gstuvcsink.c:
	  uvcgadget: always ensure to switch to fakesink
	  In the case we transition the uvcsink to toggle between ready and
	  playing we have to ensure to always switch between fakesink and
	  v4l2sink.
	  Using the already linked v4l2sink a second time does curr ntly not work
	  when we restart the stream and therefor switch to streaming again.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7574>

2025-08-25 21:39:27 -0400  Daniel Morin <daniel.morin@collabora.com>

	* tests/check/libs/analyticsmeta.c:
	  test: Test GstAnalyticsTensorMtd
	  - Verify add GstAnalyticsTensorMtd to GstAnalyticsRelationMeta and retrieve it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7959>

2024-07-17 12:24:11 -0400  Daniel Morin <daniel.morin@collabora.com>

	* gst-libs/gst/analytics/analytics.h:
	* gst-libs/gst/analytics/gstanalyticstensormtd.c:
	* gst-libs/gst/analytics/gstanalyticstensormtd.h:
	* gst-libs/gst/analytics/gsttensor.c:
	* gst-libs/gst/analytics/gsttensor.h:
	* gst-libs/gst/analytics/meson.build:
	  analytics: adding tensor mtd
	  - GstAnayticsTensorMtd can store GstTensor and describe relation with other Mtd
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7959>

2025-10-16 11:35:57 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst/rist/gstristsink.c:
	  ristsink: Fix double free regression
	  The rtpext element was leaked in error path and fixed in MR !9756, but the
	  rtpext owner ship is later passed to a bin using gst_bin_add(). Ref-sync the
	  rtpext element so we can unref it in finalize() function without any special
	  cases.
	  Fixes #4707
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9858>

2025-10-15 11:38:29 +0200  David Maseda Neira <david.maseda@cinfo.es>

	* ext/x265/gstx265enc.c:
	  x265enc: Calculate latency based on encoder parameters
	  Estimate latency based on lookahead queue depth + bframes + number of
	  encoding threads.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4697
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9849>

2025-10-14 09:12:47 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/analytics/gstanalyticsmeta.h:
	  Revert "doc: python: Document PyGObject overrides for core GStreamer"
	  This reverts commit 81f5440159ca43194e98327e42bdd6a48e946d69.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9840>

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

	* gst-libs/gst/cuda/gstcudabufferpool.h:
	* gst-libs/gst/insertbin/gstinsertbin.h:
	* gst-libs/gst/transcoder/gsttranscoder.h:
	* gst-libs/gst/va/gstvaallocator.h:
	* gst-libs/gst/va/gstvapool.h:
	* gst-libs/gst/vulkan/gstvkfence.h:
	* gst-libs/gst/vulkan/gstvkswapper.h:
	  gst: Add G_GNUC_WARN_UNUSED_RESULT to constructors
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9796>

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

	* tests/check/elements/avtpcrfcheck.c:
	* tests/check/elements/avtpcrfsync.c:
	* tests/check/elements/camerabin.c:
	* tests/check/elements/cccombiner.c:
	* tests/check/elements/fdkaac.c:
	* tests/check/elements/h264timestamper.c:
	* tests/check/elements/h266parse.c:
	* tests/check/elements/id3mux.c:
	* tests/check/elements/pnm.c:
	* tests/check/elements/rtponvifparse.c:
	* tests/check/elements/webrtcbin.c:
	* tests/check/libs/insertbin.c:
	* tests/check/libs/mse.c:
	* tests/check/libs/play.c:
	* tests/check/libs/vkvideoencodeav1.c:
	  bad: tests: convert g_assert() to g_assert_*() and mark unused items
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9788>

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

	* ext/avtp/gstavtpaafdepay.c:
	* ext/avtp/gstavtpaafpay.c:
	* ext/avtp/gstavtpbasedepayload.c:
	* ext/avtp/gstavtpcrfbase.c:
	* ext/avtp/gstavtpcrfsync.c:
	* ext/avtp/gstavtpcrfutil.c:
	* ext/avtp/gstavtpcvfdepay.c:
	* ext/avtp/gstavtpcvfpay.c:
	* ext/avtp/gstavtprvfdepay.c:
	* ext/avtp/gstavtprvfpay.c:
	* ext/closedcaption/gstcea608mux.c:
	* ext/dash/gstmpdclient.c:
	* ext/dtls/gstdtlssrtpdec.c:
	* ext/dtls/gstdtlssrtpenc.c:
	* ext/webrtc/gstwebrtcbin.c:
	* gst-libs/gst/analytics/gstanalyticssegmentationmtd.c:
	* gst-libs/gst/codecparsers/gsth265bitwriter.c:
	* gst-libs/gst/mse/gstsourcebuffer.c:
	* gst-libs/gst/wayland/gstwlbuffer.c:
	* gst/debugutils/gsttestsrcbin.c:
	* gst/id3tag/id3tag.c:
	* gst/netsim/gstnetsim.c:
	* gst/rtmp2/rtmp/amf.c:
	* gst/rtmp2/rtmp/rtmpconnection.c:
	* gst/rtmp2/rtmp/rtmpmessage.c:
	* gst/tensordecoders/gstfacedetectortensordecoder.c:
	* sys/va/gstvaav1enc.c:
	* sys/va/gstvah264enc.c:
	* sys/va/gstvah265enc.c:
	* sys/va/gstvavp9enc.c:
	  bad: mark items that are unused when checks or asserts are disabled
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9788>

2025-03-24 06:36:26 +0100  Carlos Bentzen <cadubentzen@igalia.com>

	* gst-libs/gst/codecs/gsth266decoder.c:
	  h266decoder: suppport vvc1 and vvi1 modes
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8662>

2025-03-24 06:36:07 +0100  Carlos Bentzen <cadubentzen@igalia.com>

	* gst-libs/gst/codecparsers/gsth266parser.c:
	* gst-libs/gst/codecparsers/gsth266parser.h:
	  h266parser: implement identify and split nalu
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8662>

2025-10-14 14:21:26 +0800  Shengqi Yu (喻盛琪) <shengqi.yu@mediatek.com>

	* gst-libs/gst/wayland/gstwlwindow.c:
	  waylandsink: increase wait time for configure event
	  the timeout 100ms adding in merge request
	  https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/365 for wait config event
	  may be not enough. if there are a series of weston client running or CPU loading is high(stress test),
	  the 100ms appear time out probabilistically. this will result in gstwldisplay thread go wrong.
	  So, here increase the timeout time.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9838>

2025-10-03 18:43:03 +0200  stevn <3381023+stevn@users.noreply.github.com>

	* sys/applemedia/avsamplevideosink.m:
	* sys/applemedia/coremediabuffer.c:
	* sys/applemedia/corevideobuffer.c:
	* sys/applemedia/helpers.c:
	* sys/applemedia/vtdec.c:
	* sys/applemedia/vtenc.c:
	  applemedia: add P010_LE support to eg vtenc_hw
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9789>

2025-10-09 08:09:33 +0200  Branko Subasic <branko.subasic@axis.com>

	* gst/mpegtsmux/gstbasetsmux.c:
	  mpegtsmux: Properly check if pads are EOS in find_best_pad
	  In find_best_pad(), when checking if a pad is EOS we use the macro
	  GST_PAD_IS_EOS. But the aggregator pads will not propagate EOS received
	  on it's sinkpads until it has received EOS on all of them. Instead the
	  EOS event is put in the queue, which means that GST_PAD_IS_EOS will
	  return FALSE.
	  This makes find_best_pad() fail to find a best pad when all but one sink
	  pad has received EOS, and have no data left in their queues, and the
	  last one has data. The problem is solved by modifying find_best_pad() to
	  use gst_aggregator_pad_is_eos() instead.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9803>

2025-10-08 14:05:07 +0200  Branko Subasic <branko.subasic@axis.com>

	* ext/closedcaption/gstcea608mux.c:
	  cea608mux: Properly check if pads are EOS in find_best_pad
	  In find_best_pad(), when checking if a pad is EOS we use the macro
	  GST_PAD_IS_EOS. But the aggregator pads will not propagate EOS received
	  on it's sinkpads until it has received EOS on all of them. Instead the
	  EOS event is put in the queue, which means that GST_PAD_IS_EOS will
	  return FALSE.
	  This makes find_best_pad() fail to find a best pad when all but one sink
	  pad has received EOS, and have no data left in their queues, and the
	  last one has data. The problem is solved by modifying find_best_pad() to
	  use gst_aggregator_pad_is_eos() instead.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9803>

2025-10-07 12:25:07 +0100  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/webrtc/nice/nice.c:
	  webrtc: nice: Fix a use-after-free and a mem leak
	  `new_candidate` was freed too early and `new_addr` wasn't freed in case of early
	  return from the on_candidate_resolved function.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9808>

2025-10-03 03:13:25 +0000  Abd Razak, Muhammad Azizul Hazim <muhammad.azizul.hazim.abd.razak@intel.com>

	* sys/va/gstvaav1enc.c:
	  vaav1enc: add upscaledwidth value for SCC encoding
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9783>

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

	* sys/d3dvideosink/d3dhelpers.c:
	  d3dvideosink: Port to gst_call_async
	  The previous implementation was wrong in a way that passing
	  element class as if it's element, as well as device reset handling
	  itself seems to be wrong though, removing use of deprecated API.
	  The d3dvideosink is not a recommended videosink anyway
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/869>

2025-09-29 16:57:30 +0900  Seungha Yang <seungha@centricular.com>

	* sys/ipcpipeline/gstipcpipelinesink.c:
	* sys/ipcpipeline/gstipcpipelinesrc.c:
	  ipcpipeline: Port to gst_object_call_async
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/869>

2025-09-29 16:54:26 +0900  Seungha Yang <seungha@centricular.com>

	* gst/debugutils/gsttestsrcbin.c:
	  testsrcbin: Port to gst_object_call_async
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/869>

2025-09-29 16:53:14 +0900  Seungha Yang <seungha@centricular.com>

	* ext/openjpeg/gstopenjpegdec.c:
	* ext/openjpeg/gstopenjpegenc.c:
	  openjpeg: Port to gst_object_call_async
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/869>

2025-10-05 14:56:35 -0400  Xavier Claessens <xclaessens@netflix.com>

	* data/meson.build:
	  meson: Add missing devenv values
	  Those are the differences spotted between:
	  - meson devenv -C builddir --dump meson.env
	  - ./gst-env.py --only-environment > gst.env
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9800>

2025-07-08 01:07:33 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/hip/gsthip-enums.cpp:
	* gst-libs/gst/hip/gsthip-enums.h:
	* gst-libs/gst/hip/gsthip-gl.h:
	* gst-libs/gst/hip/gsthip-interop-gl.h:
	* gst-libs/gst/hip/gsthip-interop.cpp:
	* gst-libs/gst/hip/gsthip-interop.h:
	* gst-libs/gst/hip/gsthip-private.h:
	* gst-libs/gst/hip/gsthip.h:
	* gst-libs/gst/hip/gsthip_fwd.h:
	* gst-libs/gst/hip/gsthipbufferpool.cpp:
	* gst-libs/gst/hip/gsthipbufferpool.h:
	* gst-libs/gst/hip/gsthipdevice.cpp:
	* gst-libs/gst/hip/gsthipdevice.h:
	* gst-libs/gst/hip/gsthipevent.cpp:
	* gst-libs/gst/hip/gsthipevent.h:
	* gst-libs/gst/hip/gsthiploader.cpp:
	* gst-libs/gst/hip/gsthiploader.h:
	* gst-libs/gst/hip/gsthipmemory.cpp:
	* gst-libs/gst/hip/gsthipmemory.h:
	* gst-libs/gst/hip/gsthiprtc.cpp:
	* gst-libs/gst/hip/gsthiprtc.h:
	* gst-libs/gst/hip/gsthipstream.cpp:
	* gst-libs/gst/hip/gsthipstream.h:
	* gst-libs/gst/hip/gsthiputils-private.h:
	* gst-libs/gst/hip/gsthiputils.cpp:
	* gst-libs/gst/hip/gsthiputils.h:
	* gst-libs/gst/hip/hip-gst-gl.h:
	* gst-libs/gst/hip/hip-gst.h:
	* gst-libs/gst/hip/hip-prelude.h:
	* gst-libs/gst/hip/meson.build:
	* gst-libs/gst/hip/stub/cuda.h:
	* gst-libs/gst/hip/stub/cudaD3D11.h:
	* gst-libs/gst/hip/stub/cudaGL.h:
	* gst-libs/gst/hip/stub/driver_types.h:
	* gst-libs/gst/hip/stub/hip/driver_types.h:
	* gst-libs/gst/hip/stub/hip/hip_gl_interop.h:
	* gst-libs/gst/hip/stub/hip/hip_runtime.h:
	* gst-libs/gst/hip/stub/hip/hip_runtime_api.h:
	* gst-libs/gst/hip/stub/hip/hiprtc.h:
	* gst-libs/gst/hip/stub/hip/nvidia_hip_runtime_api.h:
	* gst-libs/gst/hip/stub/hip/texture_types.h:
	* gst-libs/gst/meson.build:
	* sys/hip/gsthipbasefilter.h:
	* sys/hip/gsthipcompositor.cpp:
	* sys/hip/gsthipconverter.cpp:
	* sys/hip/gsthipconverter.h:
	* sys/hip/gsthipmemorycopy.cpp:
	* sys/hip/gsthipmemorycopy.h:
	* sys/hip/meson.build:
	* sys/hip/plugin.cpp:
	  hip: Move core methods to gst-libs
	  Make core GstHip methods public so applications can access
	  GstHip-produced resources directly.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9340>

2025-10-03 16:56:47 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* ext/vulkan/vkvp9dec.c:
	  vkvp9dec: fix resolution change NULL pointer dereference
	  Add early return when output_state is not yet initialized in
	  _check_resolution_change(). This occurs during early stream
	  initialization before output_state is set up.
	  Resolution change detection is safely skipped since coded dimensions
	  match frame header dimensions during stream init, making renegotiation
	  unnecessary at this stage.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9786>

2025-09-22 12:53:31 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/analytics/gstanalyticsmeta.h:
	  doc: python: Document PyGObject overrides for core GStreamer
	  Add comprehensive documentation for Python-specific functionality
	  provided by PyGObject overrides in core GStreamer classes including:
	  - Bin: make_and_add helper method and multi-element add() support
	  - Buffer/Memory: context manager support for map operations
	  - Caps: constructor overrides and container protocol support
	  - Clock: TIME_ARGS utility function
	  - Element: link_many static method
	  - ElementFactory: convenience metadata getters and classmethod make()
	  - Iterator: Python iteration protocol support
	  - MiniObject: make_writable and flags property
	  - Structure: dictionary-like access and constructor overrides
	  - TagList: container protocol support
	  Documentation is placed in the appropriate C function documentation
	  where overrides enhance existing functionality, or in class-level
	  SECTION documentation for new helper methods.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9717>

2025-09-03 19:07:06 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaencoder.c:
	  vaencoder: remove unused code
	  When the encoder is open, codedbuf_size cannot be zero or less.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9747>

2025-09-03 18:13:34 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaencoder.c:
	  vaencoder: use gst_clear_object()
	  Instead of gst_clear_pointer(), even though gst_clear_object() is a macro
	  that uses gst_clear_pointer() let's keep the semantics.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9747>

2025-09-03 06:44:02 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/va/gstvaallocator.c:
	* gst-libs/gst/va/gstvaallocator.h:
	* gst-libs/gst/va/gstvapool.c:
	* gst-libs/gst/va/gstvapool.h:
	  va: remove unusable public macros
	  Since GstVaDmabufAllocator, GstVaAllocator and GstVaPool structures aren't
	  public it's impossible to use the glib macros for data type checking. They
	  were moved to the c code.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9747>

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

	* sys/hip/gsthiploader.cpp:
	* sys/hip/gsthiprtc.cpp:
	* sys/hip/gsthiputils.cpp:
	* sys/hip/gsthiputils.h:
	  hip: Fix loading of HIP libraries on Linux
	  We shouldn't need the development packages to dlopen the HIP
	  libraries. Also look for HIP 7.0 in System32 on Windows.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9749>

2025-09-10 21:30:50 +0300  anonymix007 <48598263+anonymix007@users.noreply.github.com>

	* tests/examples/vulkan/meson.build:
	* tests/examples/vulkan/sdl3_vulkandec.c:
	  examples: Add SDL3 Vulkan Renderer interop example
	  Co-authored-by: Victor Jaquez <vjaquez@igalia.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9677>

2025-09-19 12:43:01 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkdevice.c:
	  vkdevice: always enable YCBCR conversion extension
	  It always needs to be enable to use it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9677>

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

	* gst-libs/gst/analytics/gstanalyticssegmentationmtd.h:
	* gst-libs/gst/analytics/gsttensor.h:
	* gst-libs/gst/audio/gstnonstreamaudiodecoder.h:
	* gst-libs/gst/audio/gstplanaraudioadapter.h:
	* gst-libs/gst/codecs/gstav1picture.h:
	* gst-libs/gst/codecs/gsth264decoder.h:
	* gst-libs/gst/codecs/gsth264picture.h:
	* gst-libs/gst/codecs/gsth265decoder.h:
	* gst-libs/gst/codecs/gsth265picture.h:
	* gst-libs/gst/codecs/gsth266picture.h:
	* gst-libs/gst/codecs/gstmpeg2picture.h:
	* gst-libs/gst/codecs/gstvp8picture.h:
	* gst-libs/gst/codecs/gstvp9picture.h:
	* gst-libs/gst/cuda/gstcudacontext.h:
	* gst-libs/gst/cuda/gstcudamemory.h:
	* gst-libs/gst/cuda/gstcudamemorypool.h:
	* gst-libs/gst/cuda/gstcudastream.h:
	* gst-libs/gst/mpegts/gst-atsc-section.h:
	* gst-libs/gst/mpegts/gst-dvb-section.h:
	* gst-libs/gst/mpegts/gst-scte-section.h:
	* gst-libs/gst/mpegts/gstmpegtsdescriptor.h:
	* gst-libs/gst/mpegts/gstmpegtssection.h:
	* gst-libs/gst/mse/gstmediasource.h:
	* gst-libs/gst/mse/gstsourcebuffer.h:
	* gst-libs/gst/mse/gstsourcebufferlist.h:
	* gst-libs/gst/play/gstplay-signal-adapter.h:
	* gst-libs/gst/play/gstplay-visualization.h:
	* gst-libs/gst/play/gstplay.h:
	* gst-libs/gst/player/gstplayer-visualization.h:
	* gst-libs/gst/player/gstplayer.h:
	* gst-libs/gst/transcoder/gsttranscoder-signal-adapter.h:
	* gst-libs/gst/transcoder/gsttranscoder.h:
	* gst-libs/gst/va/gstvadisplay_drm.h:
	* gst-libs/gst/va/gstvadisplay_wrapped.h:
	* gst-libs/gst/vulkan/gstvkbufferpool.h:
	* gst-libs/gst/vulkan/gstvkcommandbuffer.h:
	* gst-libs/gst/vulkan/gstvkcommandpool.h:
	* gst-libs/gst/vulkan/gstvkdescriptorcache.h:
	* gst-libs/gst/vulkan/gstvkdescriptorpool.h:
	* gst-libs/gst/vulkan/gstvkdescriptorset.h:
	* gst-libs/gst/vulkan/gstvkdevice.h:
	* gst-libs/gst/vulkan/gstvkdisplay.h:
	* gst-libs/gst/vulkan/gstvkfence.h:
	* gst-libs/gst/vulkan/gstvkfullscreenquad.h:
	* gst-libs/gst/vulkan/gstvkhandle.h:
	* gst-libs/gst/vulkan/gstvkimagebufferpool.h:
	* gst-libs/gst/vulkan/gstvkimagememory.h:
	* gst-libs/gst/vulkan/gstvkimageview.h:
	* gst-libs/gst/vulkan/gstvkinstance.h:
	* gst-libs/gst/vulkan/gstvkoperation.h:
	* gst-libs/gst/vulkan/gstvkphysicaldevice.h:
	* gst-libs/gst/vulkan/gstvkqueue.h:
	* gst-libs/gst/vulkan/gstvkswapper.h:
	* gst-libs/gst/vulkan/gstvktrash.h:
	* gst-libs/gst/vulkan/gstvkvideofilter.h:
	* gst-libs/gst/vulkan/gstvkwindow.h:
	* gst-libs/gst/vulkan/wayland/gstvkdisplay_wayland.h:
	* gst-libs/gst/webrtc/ice.h:
	* gst-libs/gst/webrtc/icestream.h:
	* gst-libs/gst/webrtc/rtcsessiondescription.h:
	  bad: Add G_GNUC_WARN_UNUSED_RESULT to funcs with transfer full returns
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9771>

2025-09-28 10:19:26 +0100  Philippe Normand <philn@igalia.com>

	* ext/wpe2/gstwpedisplay.cpp:
	* ext/wpe2/gstwpethreadedview.cpp:
	* ext/wpe2/meson.build:
	  wpe2: Require wpewebkit >= 2.50
	  The API slightly changed since 2.48 and also the WPEPlatform lib is now part of
	  libWPEWebKit, so there's no need to check it anymore during the meson setup.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9758>

2025-09-26 16:58:38 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/cuda/gstcudanvrtc.cpp:
	  cuda: Fix runtime kernel compile with CUDA 13.0
	  Instead of hardcoded value, checks compute compatibility at runtime
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4655
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9745>

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

	* gst-libs/gst/audio/gstplanaraudioadapter.c:
	  gst: fixes
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9766>

2025-09-29 14:44:32 -0400  Xavier Claessens <xclaessens@netflix.com>

	* ext/svtjpegxs/meson.build:
	* sys/aja/meson.build:
	  meson: Remove "allow_fallback: true" from non essential deps
	  It means that if that dependency is not found on the system, and the
	  corresponding feature option is set to "auto", it won't build the
	  fallback subproject.
	  This reduces size and build time of default build.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9767>

2025-09-22 12:00:32 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/mpegtsdemux/tsdemux.c:
	  tsdemux: Directly forward Opus AUs without `opus_control_header`
	  ffmpeg does the same, assuming that it's raw Opus data.
	  ZLMediaKit is producing MPEG-TS like this and probably nobody ever noticed
	  because ffmpeg allows for this, so let's work around their bugs and handle it
	  the same way as ffmpeg.
	  See https://github.com/ZLMediaKit/ZLMediaKit/issues/4461
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4645
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9719>

2025-09-25 22:42:12 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/lv2/gstlv2utils.c:
	* ext/teletextdec/gstteletextdec.c:
	* gst/rist/gstristsink.c:
	* gst/rist/gstristsrc.c:
	* sys/decklink/gstdecklinkvideosink.cpp:
	* sys/uvcgadget/gstuvcsink.c:
	  gst: Fix a few small leaks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9756>

2025-09-05 11:49:55 +0800  Qian Hu (胡骞) <qian.hu@mediatek.com>

	* ext/wayland/gstwaylandsink.c:
	* gst-libs/gst/wayland/gstwlwindow.c:
	* gst-libs/gst/wayland/gstwlwindow.h:
	  waylandsink: handle flush stop event
	  when got flush seek, waylandsink will re-preroll.
	  if next_buffer and staged_buffer are both NOT-NULL,
	  gst_wl_window_render will return FALSE. and preroll
	  will fail.
	  this patch clear staged_buffer for flush_stop event, make
	  sure preroll success
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9642>

2025-09-17 08:38:48 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/wayland/gstwlwindow.c:
	  wayland: window: Protect against too small window
	  Fix protocol error due to 0 sized destination. When the compositor decides we
	  should render to a really small window such as 1x1, the inner rectangle for the
	  video surface may endup with a width or height of 0, which is a protocol error.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9653>

2025-09-17 08:37:43 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/wayland/gstwlwindow.c:
	  wayland: window: Move commit outsite of the video resize helper
	  This is a minor cleanup that helps readability by removing a boolean parameter
	  from the function. No functional change.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9653>

2025-09-17 08:34:54 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/wayland/gstwaylandsink.c:
	* gst-libs/gst/wayland/gstwlwindow.c:
	* gst-libs/gst/wayland/gstwlwindow.h:
	  waylandsink: Open toplevel fullscreen window on the selected output
	  Adds a new helper to create a toplevel that is configured to fullscreen on the
	  selected output immediately. This also allow selecting the fullscreen-output
	  when using the fullscreen shell protocol.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9653>

2025-09-08 15:55:35 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/wayland/gstwlwindow.c:
	  wayland: window: Delay the render rectangle once the surface is configured
	  Updating the surface before sending the configure ack results in bad window
	  placement. Handle this situation like if the window is being created by
	  unsetting the configured flag.
	  Once we acked the configuration, always update the geometry, which ensure we
	  have a commit after that event regardless if anything dimensions changed or not.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9653>

2025-09-08 15:53:58 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/wayland/gstwlwindow.c:
	  wayland: window: Flush the queue after sending fullscreen command
	  Flushing the queue allow for immediate changes. This is needed to ensure the
	  switch from/to fullscreen, or changing display happens in paused state.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9653>

2025-09-08 10:44:47 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/wayland/gstwlwindow.c:
	  wayland: window: Trace the configured top level surface state
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9653>

2025-09-05 15:04:49 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/wayland/gstwaylandsink.c:
	* ext/wayland/gstwaylandsink.h:
	  waylandsink: Add a fullscreen-output property
	  New property that let you specify which output to fullscreen to.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9653>

2025-09-05 15:02:57 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/wayland/gstwlwindow.c:
	* gst-libs/gst/wayland/gstwlwindow.h:
	  wayland: window: Allow to fullscreen on a specific output
	  This add a new method that allow to fullscreen the window on a specific
	  displaty. This can be useful for simple application that just want to render
	  fullscreen and have multiple possible outputs.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9653>

2025-09-05 15:00:38 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/wayland/gstwldisplay.c:
	* gst-libs/gst/wayland/gstwldisplay.h:
	  wayland: display: Enumerate wl_output
	  Catch  wl_output global object and using its listener gather all the wl_output
	  information and store them by name into a hashmap. The GstWlOutput can be
	  obtained by name using a new function in the GstWlDisplay API.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9653>

2025-09-05 14:58:23 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/wayland/gstwloutput-private.h:
	* gst-libs/gst/wayland/gstwloutput.c:
	* gst-libs/gst/wayland/gstwloutput.h:
	* gst-libs/gst/wayland/meson.build:
	* gst-libs/gst/wayland/wayland.h:
	  wayland: Add object to store wl_output information
	  This is a gobject that can be used to store all the information about a
	  wl_output. The setters are private, while the getters are public. Thread safety
	  should be done by maintaining a ref count on the object during reads.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9653>

2025-09-24 19:26:51 +0900  Seungha Yang <seungha@centricular.com>

	* sys/nvcodec/gstcudaconvertscale.c:
	  cudaconvert: Fix crop meta support
	  When in/output caps are identical, even if downstream didn't propose
	  pool, always respond to support crop meta
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9734>

2025-09-24 19:37:00 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12convert.cpp:
	  d3d12convert: Fix crop meta support
	  When in/output caps are identical, even if downstream didn't propose
	  pool, always respond to support crop meta
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9735>

2025-09-17 11:17:59 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* gst-libs/gst/isoff/gstisoff.c:
	  isoff: fix fall through warnings
	  The compiler since !8229 checks
	  fallthroughs, explicitly add
	  G_GNUC_FALLTHROUGH to tell that
	  this is expected.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9703>

2025-09-09 10:12:00 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/tflite/gsttflitevsiinference.c:
	  tflitevsiinference: Replace renamed API
	  The renamed API wasn't actually the one we wanted, replace it with
	  the correct one.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9731>

2025-09-11 15:29:08 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* ext/lcevcencoder/gstlcevch266enc.c:
	* ext/lcevcencoder/gstlcevch266enc.h:
	* ext/lcevcencoder/meson.build:
	* ext/lcevcencoder/plugin.c:
	  lcevcencoder: Add lcevch266enc element
	  This new element allows encoding LCEVC H.266 video.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9705>

2025-09-23 20:29:11 +0200  David Maseda Neira <david.maseda@cinfo.es>

	* sys/nvcodec/gstnvh264encoder.cpp:
	  nvcodec: Ensure interlace is used only when required and supported
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9730>

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

	* gst/mpegtsmux/gstbasetsmux.c:
	  tsmux: Write a full Opus channel configuration if no matching Vorbis one is found
	  Instead of simply failing negotiation despite the stream being supported.
	  Without this the following pipeline will fail:
	  audiotestsrc is-live=true ! audio/x-raw,channels=8 ! opusenc ! mpegtsmux ! fakesink
	  opusenc selects the Vorbis channel layout family but a channel-mapping that is
	  not one of the ones supported by the short MPEG-TS Opus channel configurations.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9729>

2025-08-11 13:56:14 -0400  Olivier Crête <olivier.crete@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/analyticsoverlay/gstobjectdetectionoverlay.c:
	  objectdetectionoverlay: In the presence of tracking Mtd, draw different colors
	  It will create one color per track, trying to use colors which are as different
	  as possible from each other. There is a property to control that behaviour.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9538>

2025-08-11 13:55:49 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/analyticsoverlay/gstobjectdetectionoverlay.c:
	  objectdetectionoverlay: Remove unused variable
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9538>

2025-08-11 11:29:11 -0400  Olivier Crête <olivier.crete@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/analyticsoverlay/gstobjectdetectionoverlay.c:
	  objectdetectionoverlay: Add option to not draw tracking labels
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9538>

2025-09-22 10:09:48 +0800  Cheah, Vincent Beng Keat <vincent.beng.keat.cheah@intel.com>

	* sys/va/gstvacompositor.c:
	  vacompositor: Correct scale-method properties
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9718>

2025-09-08 17:50:32 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/closedcaption/gstcea608mux.c:
	* gst/audiomixmatrix/gstaudiomixmatrix.c:
	* gst/debugutils/gsttestsrcbin.c:
	  gst: Don't use g_assert() around production code
	  If G_DISABLE_ASSERT is defined the code will not be compiled.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9662>

2025-09-16 19:00:47 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/isac/meson.build:
	  isac: Suppress warning about -Wno-virtual-dtor on Fedora
	  The absl pkgconfig files on Fedora contain -Wnon-virtual-dtor in
	  Cflags: even though pc files should not contain -W flags. Worse, our
	  plugin is written in C but that's a C++ argument so GCC emits
	  a warning about that.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9695>

2025-09-03 17:16:38 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* tests/check/libs/vkvideoencodeav1.c:
	  vulkan: fix AV1 encode test with TILE_GROUP
	  Add support for GST_AV1_OBU_TILE_GROUP.
	  For example RADV generates frame with two OBUs
	  such as FRAME_HEADER + TILE_GROUP when
	  nvidia generated only FRAME OBU.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9631>

2025-09-16 16:38:22 -0700  Xavier Claessens <xclaessens@netflix.com>

	* gst/unixfd/gstunixfd.c:
	* tests/check/elements/unixfd.c:
	  unixfd: Fix case of buffer with big payload
	  In the case a buffer has big meta serialization, for example if it
	  contains a GstBuffer, the payload cannot be sent/received in a single
	  call.
	  Idealy we should serialize metas into a memfd in that case, instead of
	  writing the data on the socket.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9701>

2025-08-29 12:13:58 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* ext/vulkan/vkh264dec.c:
	* ext/vulkan/vkh265dec.c:
	* gst-libs/gst/vulkan/gstvkdecoder-private.c:
	* gst-libs/gst/vulkan/gstvkdecoder-private.h:
	* gst-libs/gst/vulkan/gstvkvideo-private.c:
	* tests/check/libs/vkvideodecode.c:
	  vkdecoder: enable INLINE_PARAMS in the decoder
	  GST_VULKAN_DECODER_FEATURE_INLINE_PARAMS should enable
	  VK_VIDEO_SESSION_CREATE_INLINE_SESSION_PARAMETERS_BIT_KHR
	  in the decoder session creation.
	  Add new api gst_vulkan_decoder_has_feature and keep
	  `features` private.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9616>

2025-08-29 12:12:24 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* ext/vulkan/vkh264dec.c:
	* ext/vulkan/vkh265dec.c:
	* gst-libs/gst/vulkan/gstvkdecoder-private.c:
	* gst-libs/gst/vulkan/gstvkdecoder-private.h:
	* tests/check/libs/vkvideodecode.c:
	  vkdecoder: fix typo and rename MAINTENANCE2 feat
	  The feature GST_VULKAN_DECODER_FEATURES_VIDEO_MAINTEINANCE2
	  has been renamed to GST_VULKAN_DECODER_FEATURE_INLINE_PARAMS
	  to clarify the use of this feature in the rest of the code.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9616>

2025-09-16 18:01:35 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12overlaycompositor.cpp:
	  d3d12overlaycompositor: Fix leak and improve passthrough
	  Allow buffer passthrough when the composition meta
	  contains no rectangles
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9693>

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

	* sys/d3d12/gstd3d12overlayblender.cpp:
	  d3d12overlayblender: Rectangle upload optimization
	  Removed GList usage and reworked upload logic
	  to reduce overhead
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9693>

2025-09-16 15:24:22 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12deinterlace.cpp:
	  d3d12deinterlace: Fix passthrough handling
	  Don't try to convert buffer when passthrough is enabled
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9691>

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

	* ext/analyticsoverlay/gstobjectdetectionoverlay.c:
	* ext/vulkan/vkoverlaycompositor.c:
	* sys/d3dvideosink/d3dhelpers.h:
	* sys/d3dvideosink/d3dvideosink.c:
	* sys/d3dvideosink/gstd3d9overlay.c:
	* sys/dwrite/gstdwriteoverlayobject.cpp:
	  GstVideoOverlayCompositionMeta: Fix multiple composition meta usage
	  This deprecates gst_buffer_get_video_overlay_composition_meta() and
	  stops using it. The reason is a buffer could have multiple composition
	  metas, and each of them can have multiple rectangles. Sinks and
	  compositor elements must iterate over all metas instead of assuming
	  there is only one.
	  Discourage usage of gst_video_overlay_composition_make_writable() and
	  gst_video_overlay_composition_copy() in documentation. Instead of
	  modifying upstream's composition meta, overlay elements should add their
	  own meta. This avoids texture cache invalidation in sinks and compositor
	  elements that keep a ref of GstVideoOverlayRectangle objects.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7627>

2025-09-12 17:31:01 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3dshader/gstd3dshadercache.cpp:
	* gst-libs/gst/d3dshader/gstd3dshadercache.h:
	* gst-libs/gst/d3dshader/plugin-hlsl/PSMain_sample_bgra_to_vuya_full.hlsl:
	* gst-libs/gst/d3dshader/plugin-hlsl/PSMain_sample_bgra_to_vuya_full_premul.hlsl:
	* gst-libs/gst/d3dshader/plugin-hlsl/PSMain_sample_bgra_to_vuya_limited.hlsl:
	* gst-libs/gst/d3dshader/plugin-hlsl/PSMain_sample_bgra_to_vuya_limited_premul.hlsl:
	* gst-libs/gst/d3dshader/plugin-hlsl/hlsl.h:
	* gst-libs/gst/d3dshader/plugin-hlsl/meson.build:
	* sys/d3d12/gstd3d12overlayblender.cpp:
	* sys/d3d12/gstd3d12overlaycompositor.cpp:
	* sys/d3d12/gstd3d12overlaycompositor.h:
	* sys/d3d12/meson.build:
	* sys/d3d12/plugin.cpp:
	  d3d12: Add overlay compositor element
	  Introduce a new d3d12overlaycompositor element
	  that blends GstVideoOverlayCompositionMeta attached to input buffers
	  onto output D3D12 textures
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9683>

2025-09-12 17:48:36 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12overlayblender.cpp:
	* sys/d3d12/gstd3d12overlayblender.h:
	* sys/d3d12/gstd3d12overlaycompositor.h:
	* sys/d3d12/gstd3d12swapchainsink.cpp:
	* sys/d3d12/gstd3d12window-swapchain-resource.h:
	* sys/d3d12/gstd3d12window-swapchain.cpp:
	* sys/d3d12/gstd3d12window.cpp:
	* sys/d3d12/meson.build:
	  d3d12: Change overlay blending helper object name
	  Change the name to overlaycompositor to overlayblender
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9683>

2025-09-11 20:57:34 +0900  Seungha Yang <seungha@centricular.com>

	  d3d12: Add interlace element
	  Add a new interlace element using D3D12 compute shaders,
	  providing the same behavior as the software interlace element.
	  Currently supported patterns:
	  * 1:1 (60p -> 60i), generating half the number of output frames
	  * 2:2 (30p -> 60i), implemented as passthrough with buffer flag update
	  only
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9680>

2025-09-09 21:55:08 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2rbuf.cpp:
	  wasapi2: Auto-select IAudioClient3 and pick shared-mode period
	  Use IAudioClient3 in shared mode when the requested latency-time
	  is below the engine default period even if low-latency is
	  not explicitly requested.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9666>

2025-09-09 19:30:36 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2device.cpp:
	* sys/wasapi2/gstwasapi2enumerator.cpp:
	* sys/wasapi2/gstwasapi2enumerator.h:
	  wasapi2: Probe device period and report via device provider
	  Report IAudioClient::GetDevicePeriod() and IAudioClient3::GetSharedModeEnginePeriod()
	  values
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9666>

2025-09-09 19:31:39 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2enumerator.cpp:
	  wasapi2: Fix shared mode caps report in device provider
	  Build shared mode caps using corresponding IAudioClient,
	  not default device
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9666>

2025-09-12 21:35:58 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3d12/gstd3d12memory-private.h:
	* gst-libs/gst/d3d12/gstd3d12memory.cpp:
	* sys/dwrite/gstdwriterender_d3d12.cpp:
	  dwrite: Fix D3D12 critical warning
	  When using convert + blend mode, the final render target resource
	  is also used as a source resource owned by our fence data storage.
	  As a result, the resource may not be writable if the conversion
	  command has not yet finished. To address this, add a private
	  method that allows setting the fence without a writability check
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9681>

2025-09-13 20:04:06 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12memorycopy.cpp:
	  d3d12upload, d3d12download: Use internal staging pool
	  When copying between system memory and a D3D12 resource,
	  if the non-D3D12 buffer is not backed by D3D12 staging memory
	  (e.g. use-staging-memory is disabled or upstream provides
	  its own buffer pool), fall back to the internal staging
	  memory pool. The staging pool enables batched copies, which
	  is more efficient than copying each GstD3D12Memory object
	  individually in a GstBuffer
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9648>

2025-09-13 20:34:30 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12memorycopy.cpp:
	  d3d12upload, d3d12download: Add use-staging-memory property
	  Since the maximum allocatable staging memory size is about half of the
	  total system memory, we might run out of available staging memory earlier
	  than system memory. This adds a property to allow choosing the preferred
	  memory target for upload/download
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9648>

2025-09-05 20:18:43 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12swapchainsink.cpp:
	* sys/d3d12/gstd3d12videosink.cpp:
	  d3d12videosink, d3d12swapchainsink: Port to gst_d3d12_buffer_copy_into()
	  Use copy helper function to support both uploading from system
	  memory and staging memory
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9648>

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

	* sys/d3d12/gstd3d12download.cpp:
	* sys/d3d12/gstd3d12download.h:
	* sys/d3d12/gstd3d12memorycopy.cpp:
	* sys/d3d12/gstd3d12upload.cpp:
	* sys/d3d12/gstd3d12upload.h:
	* sys/d3d12/meson.build:
	* sys/d3d12/plugin.cpp:
	  d3d12: Maintain only single upload/download implementation
	  Remove ones that for d3d11 disabled, and use #ifdef in a single source
	  file
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9648>

2025-09-05 18:05:24 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12memorycopy.cpp:
	  d3d12download, d3d12upload: Add support for staging memory
	  * Use newly implemented staging memory for upload/download
	  operations to to allow copying from/to resources
	  on the D3D12 default heap directly without an extra copy
	  using system memory
	  * Add 'queue-type' property to let users select the preferred
	  command queue type for copy command execution
	  In addition to removing the extra copy via staging memory,
	  copy commands can also be batched into a single command list
	  in case of non-DXGI-native multi-plane formats, such as I420.
	  This can result in up to 3x faster copy performance.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9648>

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

	* gst-libs/gst/d3d12/gstd3d12frame.cpp:
	* gst-libs/gst/d3d12/gstd3d12frame.h:
	* gst-libs/gst/d3d12/gstd3d12utils.cpp:
	* gst-libs/gst/d3d12/gstd3d12utils.h:
	  d3d12: Add new gst_d3d12_frame_copy varient methods
	  Allow user to specify command queue to use
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9648>

2025-09-02 21:13:44 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3d12/gstd3d12.h:
	* gst-libs/gst/d3d12/gstd3d12_fwd.h:
	* gst-libs/gst/d3d12/gstd3d12stagingbufferpool.cpp:
	* gst-libs/gst/d3d12/gstd3d12stagingbufferpool.h:
	* gst-libs/gst/d3d12/gstd3d12stagingmemory.cpp:
	* gst-libs/gst/d3d12/gstd3d12stagingmemory.h:
	* gst-libs/gst/d3d12/meson.build:
	  d3d12: Add staging memory implementation
	  Add GstD3D12StagingMemory and GstD3D12StagingBufferPool
	  that can be used for temporary storage of GPU processed data.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9648>

2025-08-27 14:24:43 +0100  Philippe Normand <philn@igalia.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/webrtc/gstwebrtcbin.c:
	* tests/check/elements/webrtcbin.c:
	  webrtcbin: Add a close signal
	  This is a partial implementation of the close procedure defined in
	  https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-close
	  Most notably the transceiver stopping procedure is not supported because it
	  doesn't fit properly within our transceiver implementation.
	  Fixes #2760
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9379>

2025-07-12 13:12:06 +0100  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/webrtc/nice/nice.c:
	  webrtc: nice: Implement close API
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9379>

2025-07-12 13:11:32 +0100  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/webrtc/ice.c:
	* gst-libs/gst/webrtc/ice.h:
	  webrtc: ice: Add close API
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9379>

2025-09-05 22:40:57 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2util.cpp:
	  wasapi2: Prefer QUAD over 3.1 for 4ch layout
	  ... and add missing 3, 5, and 7ch layout fallback.
	  QUAD is more common 4ch configuration than 3.1
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9649>

2025-09-05 22:38:26 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2util.cpp:
	  wasapi2: Preserve channel mask from device/mix format
	  Ensure that the channel mask from the mix format (shared mode) or
	  PKEY_AudioEngine_DeviceFormat (exclusive mode) is inherited by
	  generated format candidates for consistency
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9649>

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

	* meson.build:
	  Back to development after 1.27.2

=== release 1.27.2 ===

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

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

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

	* ext/sndfile/gstsfdec.c:
	* ext/vulkan/vkdownload.c:
	* ext/vulkan/vksink.c:
	* ext/vulkan/vkupload.c:
	* ext/webrtc/gstwebrtcbin.c:
	* ext/webrtc/transportreceivebin.c:
	* ext/webrtc/transportsendbin.c:
	* gst-libs/gst/mse/gstappendpipeline.c:
	* gst-libs/gst/play/gstplay.c:
	* gst-libs/gst/transcoder/gsttranscoder.c:
	* gst/rtp/gstrtpsink.c:
	* gst/rtp/gstrtpsrc.c:
	* sys/androidmedia/gstamcvideodec.c:
	* sys/decklink/gstdecklinkvideosink.cpp:
	* sys/ipcpipeline/gstipcpipelinecomm.c:
	* sys/ipcpipeline/gstipcpipelinesink.c:
	* sys/ipcpipeline/gstipcpipelinesrc.c:
	* sys/uvcgadget/gstuvcsink.c:
	* tests/check/elements/adaptive_demux_common.c:
	* tests/check/elements/mpegtsmux.c:
	* tests/check/elements/webrtcbin.c:
	* tests/examples/camerabin2/gst-camerabin2-test.c:
	* tests/examples/d3d12/d3d12swapchainsink-win32.cpp:
	* tests/examples/inter/gstintertest.c:
	* tests/examples/ipcpipeline/ipc-play.c:
	* tests/examples/mediafoundation/mfvideoenc-dynamic-reconfigure.c:
	* tests/examples/nvcodec/nvcodec.c:
	* tests/examples/webrtc/webrtc.c:
	* tests/examples/webrtc/webrtcbidirectional.c:
	* tests/examples/webrtc/webrtcrenego.c:
	* tests/examples/webrtc/webrtcswap.c:
	* tests/examples/webrtc/webrtctransceiver.c:
	* tests/examples/wpe/wpe.c:
	  gst: Change usage of gst_element_state_*() to gst_state_*()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9655>

2025-09-01 11:30:46 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2rbuf.cpp:
	  wasapi2: Add support for exclusive mode mute control
	  In case that IAudioStreamVolume interface is unavailable such as
	  exclusive mode, control the mute state by using AUDCLNT_BUFFERFLAGS_SILENT
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9624>

2025-09-01 10:49:37 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2rbuf.cpp:
	  wasapi2: Handle device init error on acquire()
	  Don't post error if IAudioClient::Initialize() got failed but
	  continue-on-error is enabled
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9624>

2025-09-05 08:25:22 +0200  Ola Fornander <ola.fornander@axis.com>

	* ext/curl/gstcurlsmtpsink.c:
	  curlsmtpsink: adapt to date formatting issue
	  In glib 2.73.1, padding for %e in gdatetime was changed from "space"
	  to the Unicode character (U+2007). This violates rfc5322 (Internet
	  Message Format), which states that a message shall be composed of
	  characters in the range of 1 through 127 and interpreted as US-ASCII
	  characters. Hence, when using g_date_time_format, it is necessary to
	  instead write %_e to enforce space padding.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9639>

2025-09-04 09:37:18 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* gst-libs/gst/vulkan/gstvkvideoutils-private.c:
	  vkvideoutils: fix typo in vp9 profile map
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9638>

2025-08-25 12:39:05 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* ext/lcevcencoder/gstlcevch265enc.c:
	* ext/lcevcencoder/gstlcevch265enc.h:
	* ext/lcevcencoder/meson.build:
	* ext/lcevcencoder/plugin.c:
	  lcevcencoder: Add lcevch265enc element
	  This new element allows encoding video into H265 LCEVC streams. It follows the
	  same design as lcevch264enc.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9632>

2024-10-31 15:59:35 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/lcevcencoder/README.md:
	  lcevcencoder: Add ldconfig and install steps to the readme
	  Without ldconfig, the library isn't found at runtime!
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7805>

2025-09-02 11:32:18 +0100  Philippe Normand <philn@igalia.com>

	* tests/examples/inter/gstintertest.c:
	* tests/examples/inter/meson.build:
	* tests/examples/meson.build:
	  inter: Move intertest example to tests/examples/inter
	  Also fix a couple leaks, make it use playbin3, add URI command line argument
	  handling, use gst_print functions and remove dead code.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9627>

2025-09-02 09:06:20 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/openh264/meson.build:
	  meson: Avoid pulling in gtest for openh264
	  Emits a big warning about wrapdbv1 and the updated wrap fails to build
	  on Windows. We don't need the tests anyway.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9626>

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

	* ext/analyticsoverlay/meson.build:
	* ext/avtp/meson.build:
	* ext/codec2json/meson.build:
	* ext/iqa/meson.build:
	* ext/mdns/meson.build:
	* ext/openh264/meson.build:
	* ext/openjpeg/meson.build:
	* ext/qroverlay/meson.build:
	* ext/soundtouch/meson.build:
	* gst-libs/gst/webrtc/nice/meson.build:
	* meson.build:
	* sys/tinyalsa/meson.build:
	  meson: Convert all remaining fallback: usages to [provide]
	  Only commonly-used plugin deps like pango, orc, openh264, libvpx,
	  libnice are enabled by default.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1788
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9626>

2025-08-09 23:16:09 +0900  Seungha Yang <seungha@centricular.com>

	* sys/nvcodec/gstcudacompositor.cpp:
	  cudacompositor: Add support for crop meta
	  GstCudaConverter object can support cropping now
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9523>

2025-08-09 03:23:38 +0900  Seungha Yang <seungha@centricular.com>

	* sys/nvcodec/gstcudaconverter.cpp:
	* sys/nvcodec/gstcudaconvertscale.c:
	* sys/nvcodec/kernel/gstcudaconverter.cu:
	  cudaconvertscale: Add support for crop meta
	  Performs cropping based on upstream attached crop meta
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9523>

2025-08-09 03:55:49 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/cuda/gstcudamemory.cpp:
	* gst-libs/gst/cuda/gstcudamemory.h:
	  cudamemory: Add gst_cuda_allocator_alloc_stream_ordered() method
	  Allow stream ordered memory allocation without GstCudaBufferPool
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9523>

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

	* gst-libs/gst/cuda/gstcudamemory.cpp:
	  cudamemory: Add ARGB64 format support
	  The format will be used for intermediate data processing for now
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9523>

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

	* gst-libs/gst/cuda/gstcudamemory.h:
	  cudamemory: Add GST_MAP_{READ,WRITE}_CUDA macro
	  Instead of casting the alias
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9523>

2025-08-09 02:30:34 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/cuda/gstcudamemory.cpp:
	  cudamemory: Add VUYA texture mapping
	  Support VUYA texture caching
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9523>

2025-08-22 14:01:44 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* ext/lcevcdecoder/gstlcevcdecodebin.c:
	  lcevcdecodebin: Update the base decoder when setting base-decoder property
	  Currently, the base-decoder property only works when setting it while
	  constructing the element, but does not work if we set the property after
	  constructing the element. This patch fixes this issue so that the property
	  can be set with gst-launch-1.0. Note that the property can only be set if
	  the element is in NULL state.
	  Fixes #4594
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9599>

2025-05-28 17:23:27 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* ext/vulkan/vkvp9dec.c:
	  vkvp9dec: dpb pool created with vulkan caps max coded size
	  The dpb pool should be created with the max supported size
	  to avoid a dpb pool recreation on resize event.
	  When the pool is destroyed during resolution changes, previously decoded
	  reference frames stored in the DPBs are lost, which can cause decoding
	  errors or corruption when those reference frames are needed for
	  inter-frameprediction at different resolutions. By sizing the pool for
	  the maximum supported resolution upfront, we ensure reference frame
	  continuity across resolution changes.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9204>

2025-07-08 11:44:18 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* ext/vulkan/gstvulkan.c:
	* ext/vulkan/meson.build:
	* ext/vulkan/vkvp9dec.c:
	* ext/vulkan/vkvp9dec.h:
	  vulkan: add vp9 decode element
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9204>

2025-03-26 17:29:55 +0100  Stéphane Cerveau <scerveau@igalia.com>

	* tests/check/libs/vkcodecparams_vp9.c:
	* tests/check/libs/vkvideodecode.c:
	  tests: add vp9 vulkan video decode
	  This test allows to decode one key frame
	  and one inter frame
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9204>

2025-03-26 15:20:14 +0100  Stéphane Cerveau <scerveau@igalia.com>

	* gst-libs/gst/vulkan/gstvkdecoder-private.c:
	* gst-libs/gst/vulkan/gstvkdevice.c:
	* gst-libs/gst/vulkan/gstvkphysicaldevice-private.h:
	* gst-libs/gst/vulkan/gstvkphysicaldevice.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.h:
	* gst-libs/gst/vulkan/gstvkvideoutils-private.c:
	* gst-libs/gst/vulkan/gstvkvideoutils-private.h:
	* gst-libs/gst/vulkan/meson.build:
	  vulkan: add vp9 decode support
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9204>

2025-05-28 16:12:07 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* gst-libs/gst/vulkan/gstvkdecoder-private.c:
	  vkdecoder-private: manage existing dpb pool
	  When the decoder wants to recreate the dpb pool
	  on resize event for example, an existing dpb pool
	  might exist, so it should be kept if the caps
	  are equal or destroy for new caps.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9614>

2025-08-26 20:17:36 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkh264dec.c:
	* ext/vulkan/vkh265dec.c:
	  vulkanh26xdec: fix discont state handling
	  It fixes a couple tests in fluster for H.265 decoding.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9610>

2025-07-15 11:15:56 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* tests/check/elements/vkcolorconvert.c:
	* tests/check/elements/vkdeviceprovider.c:
	* tests/check/elements/vkupload.c:
	* tests/check/libs/vkcommandpool.c:
	* tests/check/libs/vkdevice.c:
	* tests/check/libs/vkformat.c:
	* tests/check/libs/vkimage.c:
	* tests/check/libs/vkimagebufferpool.c:
	* tests/check/libs/vkinstance.c:
	* tests/check/libs/vkmemory.c:
	* tests/check/libs/vkvideodecode.c:
	* tests/check/libs/vkvideoencodeh264.c:
	* tests/check/libs/vkvideoencodeh265.c:
	* tests/check/libs/vkwindow.c:
	  vulkan: tests: remove/update ci comments
	  Since previous commit, the CI can now run vulkan
	  tests. Remove or update the comments related to CI.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9416>

2025-07-11 18:04:04 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* tests/check/gst-plugins-bad.supp:
	  ci: enable vulkan tests in validate
	  As CI now supports llvm 18 and mesa 24.1 which
	  allow to use properly lavapipe in the CI, the vulkan
	  ci tests have been removed from the validate blacklist.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9416>

2025-08-25 09:44:01 +0800  Vivian LEE <vivian.lee@harmonicinc.com>

	* ext/x265/gstx265enc.c:
	* ext/x265/gstx265enc.h:
	  x265: Fix duplicate SEI at startup IDR frame problem
	  x265 encoder_headers return headers with SEI after encoding the frame,
	  while the output frame also contains SEI so two identical header
	  blocks appeared.
	  Cache the headers at init, leaving only a single copy in the stream.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9604>

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

	* ext/webrtc/gstwebrtcbin.c:
	  gst: Convert `is_writable()` / `make_writable()` macros to inline functions
	  Plus actual functions that are exported from the library.
	  Apart from improving type-safety, this also makes bindings more happy.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9588>

2025-08-22 14:20:36 -0400  Daniel Morin <daniel.morin@collabora.com>

	* gst/tensordecoders/gstfacedetectortensordecoder.c:
	  tensordecoders: fix wrong assumption in ultralightfacedetectortensordec
	  - UltraLightFaceDetection was assmuming only one TensorMeta could be attach to
	  buffer. We need to look at all TensorMeta attach to the buffer and check for
	  the one it support.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9564>

2025-08-17 15:58:22 -0400  Daniel Morin <daniel.morin@collabora.com>

	* gst-libs/gst/analytics/gsttensormeta.c:
	  analytics: always add GstTensorMeta
	  Always add GstTensorMeta to buffer instead of re-using existing GstTensorMeta
	  when it's already present. The reason for the change is when we have cascaded
	  inference elements overwriting (tflite) or leaking (ONNX) GstTensorMeta when we
	  have cascaded inferences. We didn't create and API to append to GstTensorMeta
	  and I think it's more convenient to have a new GstTensorMeta for each
	  inferences. It's also more clear that a group of tensor was produced by one
	  inference but doesn't limit tensordecoders from using tensors produced by
	  multiple inference. I don't see much value in having all tensors data always
	  inside one GstTensorMeta since appending would mean re-allocation of the tensors
	  array anyway.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9564>

2025-08-22 13:09:31 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2rbuf.cpp:
	* sys/wasapi2/gstwasapi2util.cpp:
	* sys/wasapi2/gstwasapi2util.h:
	  wasapi2: Add support for format negotiation
	  Enumerate supported formats during open so that src/sink can
	  report them via get_caps(). The format is then fixated and
	  initialized on acquire(), allowing users to select their
	  preferred format
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9586>

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

	* sys/wasapi2/gstwasapi2enumerator.cpp:
	* sys/wasapi2/gstwasapi2rbuf.cpp:
	* sys/wasapi2/gstwasapi2util.cpp:
	* sys/wasapi2/gstwasapi2util.h:
	  wasapi2: Enumerate supported shared mode formats
	  ... and report it via device provider property
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9586>

2025-08-22 09:22:02 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2rbuf.cpp:
	  wasapi2: Workaround for S24_32LE format mismatch
	  Since Windows 24bit-in-32bit format is not supported
	  by GStreamer (Windows one is MSB-aligned), converts format
	  in ringbuffer using SSE2.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9586>

2025-08-20 18:14:35 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2util.cpp:
	  wasapi2: Demote S24_32LE in exclusive-mode format ordering
	  Some endpoints accept 24-bit in 32-bit PCM (S24_32LE) in exclusive mode
	  but playback at very low volume. Until the root cause is identified,
	  push S24_32LE to the end of the candidate list
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9586>

2025-08-20 12:02:47 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2rbuf.cpp:
	* sys/wasapi2/gstwasapi2util.cpp:
	* sys/wasapi2/gstwasapi2util.h:
	  wasapi2: Add support for exclusive mode device switching
	  Because of APO/OS mixer bypass in exclusive mode, we should
	  convert samples if new device has different format.
	  The conversion with additional buffering is implemented in this patch
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9586>

2025-08-20 12:03:54 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2rbuf.cpp:
	  wasapi2: Fix process loopback device init
	  Fix AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM flag usage
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9586>

2025-08-20 06:56:27 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2rbuf.cpp:
	* sys/wasapi2/gstwasapi2rbuf.h:
	* sys/wasapi2/gstwasapi2sink.cpp:
	* sys/wasapi2/gstwasapi2src.cpp:
	  wasapi2: Add support for exclusive mode
	  Add "exclusive" property and try exclusive mode streaming
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9586>

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

	* sys/wasapi2/gstwasapi2device.cpp:
	* sys/wasapi2/gstwasapi2enumerator.cpp:
	* sys/wasapi2/gstwasapi2enumerator.h:
	* sys/wasapi2/gstwasapi2rbuf.cpp:
	* sys/wasapi2/gstwasapi2util.cpp:
	* sys/wasapi2/gstwasapi2util.h:
	  wasapi2: Probe exclusive mode formats
	  ... and report it via device provider props
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9586>

2025-08-08 16:46:48 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* tests/check/libs/vkvideoencodeav1.c:
	* tests/check/meson.build:
	  tests: add vulkan AV1 encode test
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8841>

2024-12-17 18:49:22 +0100  Stéphane Cerveau <scerveau@igalia.com>

	* gst-libs/gst/vulkan/gstvkdevice.c:
	* gst-libs/gst/vulkan/gstvkencoder-private.c:
	* gst-libs/gst/vulkan/gstvkencoder-private.h:
	* gst-libs/gst/vulkan/gstvkphysicaldevice-private.h:
	* gst-libs/gst/vulkan/gstvkphysicaldevice.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.h:
	* gst-libs/gst/vulkan/gstvkvideoutils-private.c:
	* gst-libs/gst/vulkan/gstvkvideoutils-private.h:
	  vulkan: add basic AV1 encode support
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8841>

2025-08-19 07:48:59 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* ext/lcevcdecoder/gstlcevcdecutils.c:
	* ext/lcevcdecoder/gstlcevcdecutils.h:
	  lcevcdec: Support all available formats
	  RGB and GRAY formats are only placeholders in LCEVCDec and therefore are not
	  supported yet.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9463>

2025-08-18 10:26:55 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* ext/lcevcdecoder/gstlcevcdecutils.c:
	  lcevcdec: Remove unneeded LCEVC 2.0.0 workaround
	  This is not needed anymore as the min version for LCEVCdec is 4.0.1
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9463>

2025-08-18 09:50:48 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* ext/lcevcdecoder/gstlcevcdec.c:
	* ext/lcevcdecoder/gstlcevcdec.h:
	* ext/lcevcdecoder/gstlcevcdecutils.c:
	  lcevcdec: Handle pixel aspect ratio and crop size correctly
	  LCEVCdec supports different pixel aspect ratios other than 1/1. This change
	  forwards the pixel aspect ratio of the base picture to the LCEVC decoder,
	  and also updates the output pixel aspect ratio caps base on the one from the
	  enhanced frame.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9463>

2025-07-29 15:22:39 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* ext/lcevcdecoder/gstlcevcdec.c:
	* ext/lcevcdecoder/gstlcevcdec.h:
	  lcevcdec: Peek the decoder for output resolution
	  The output resolution is not always twice as big as the input resultion divided
	  by the pixel aspect ratio. This is the case for LCEVC '0D' mode, where the
	  output resolution is the same as the input resolution, and the only enhancement
	  is the picture being clearer.
	  This patch uses LCEVC_PeekDecoder() after sending the LCEVC enhancement data to
	  know what the output resolution will be before allocating the output picture.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9463>

2025-07-30 15:19:42 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* ext/lcevcdecoder/gstlcevcdec.c:
	* ext/lcevcdecoder/gstlcevcdecutils.c:
	* ext/lcevcdecoder/gstlcevcdecutils.h:
	  lcevcdec: Fix LCEVC picture access flags
	  Even though the LCEVC decoder works fine without this, it is recommended to
	  set read access to base pictures that are sent to the decoder, and write access
	  to enhanced pictures that are received from the decoder.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9463>

2025-07-30 15:19:26 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* ext/lcevcdecoder/gstlcevcdec.c:
	  lcevcdec: Fix width type typo
	  This was always meant to be gint instead of gint32.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9463>

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

	* ext/vulkan/vkh264dec.c:
	* ext/vulkan/vkh265dec.c:
	* gst-libs/gst/vulkan/gstvkdecoder-private.c:
	* gst-libs/gst/vulkan/gstvkdecoder-private.h:
	* gst-libs/gst/vulkan/gstvkdevice.c:
	* gst-libs/gst/vulkan/gstvkencoder-private.c:
	* gst-libs/gst/vulkan/gstvkphysicaldevice-private.h:
	* gst-libs/gst/vulkan/gstvkphysicaldevice.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.c:
	* gst-libs/gst/vulkan/meson.build:
	* tests/check/libs/vkvideodecode.c:
	  vulkan: enable video maintenance2 for inline session parameters
	  .. in decoders.
	  Inline session parameters allows to not create session parameters handlers for
	  every new stream parameters (such as SPS and PPS for H.264, for example), but
	  instead to pass them as a chained structure in the decoding main structure. This
	  is completely align with GStreamer decoder base classes.
	  Even that the previous approach is kept, if the devices doesn't support video
	  maintenance2, it shows a lot of validation errors.
	  Also it was required to add another parameter when enabling extension to verify
	  if the extension is linked with a device feature and if it is enabled.
	  Bump Vulkan API (and driver version for both decoders and encoders) to 1.4.306
	  Also bumped the ABI_CHECK_TAG because the CI finally catches up with the vulkan
	  video symbols that are not exposed by a public header (tough they are binary
	  public).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9585>

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

	* gst-libs/gst/vulkan/gstvkvideo-private.c:
	  vkvideo-private: remove unused guards
	  Since this file is compiled only if vulkan video support is enabled with the
	  proper vulkan headers version.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9585>

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

	* gst-libs/gst/vulkan/gstvkdevice.c:
	  vkdevice: check for features when enabling extensions
	  Some extensions need to have enabled certain feature in the device. This patch
	  does that check by adding a new field in the extension list which is a function
	  that can be mapped to gst_vulkan_physical_device_has_feature_*() functions.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9585>

2025-08-20 20:01:21 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkimagebufferpool.c:
	  vkimagesbufferpool: another usage for non-independent profile flag
	  Fix validation issue VUID-VkImageCreateInfo-flags-08329 on old RADV hardwware.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9591>

2025-08-19 20:37:06 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkh265dec.c:
	  vulkanh265dec: fix validation layer complain
	  Silence the validation VUID-VkImageMemoryBarrier2-srcAccessMask-03915
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9591>

2025-08-19 11:15:29 +0100  Ian Napier <ian@digitaledgesubsea.com>

	* sys/decklink/gstdecklink.h:
	* sys/decklink/gstdecklinkvideosrc.cpp:
	  decklinkvideosrc: fix decklinkvideosrc becomes unrecoverable if it fails to start streaming
	  See #2611
	  When transitioning to PLAYING we call IDeckLinkInput::StartStreams() (via GstDecklinkInput::start_streams). This can
	  fail for various reasons, including if the hardware device is already in use.
	  Previously, we logged StartStreams() failure as an element error but otherwise continued to successfully transition to
	  PLAYING. Now, if StartStreams() returns an error we fail the state change.
	  If StartStreams() fails then a subsequent call to StopStreams(), when transitioning PAUSED to READY, will also fail.
	  Previously, if StopStreams() failed then the state change also failed. Unfortunately this prevented the element from
	  later being disposed, which in turn meant the associated hardware resources was never freed. Consequently, if a
	  decklinkvideosrc failed to transition PAUSED to READY, then the associated hardware device could not subsequently be
	  used by any other decklinkvideosrc.
	  Now, we log an element error if StopStreams() fails but otherwise consider the state change to have succeeded. This
	  means that the element can be disposed and the associated hardware resource released.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9578>

2025-08-18 14:17:32 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkimagebufferpool.c:
	  vkimagebufferpool: don't use independent profile flag for some usage
	  VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR, among others, needs the video profile
	  to use.
	  The patch clears the validation issue  VUID-VkImageCreateInfo-flags-08331
	  This is a continuation of !9550
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9570>

2025-08-18 11:00:34 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* tests/check/libs/vkvideoencodeh264.c:
	* tests/check/libs/vkvideoencodeh265.c:
	  tests: fix queues for vulkan h26x encoders
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9571>

2025-08-15 13:02:57 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkh264dec.c:
	* ext/vulkan/vkh265dec.c:
	  vulkanh26xdec: fix debug category name
	  This is a regression from merge request !78011
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9560>

2025-08-15 12:06:45 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkh264dec.c:
	* ext/vulkan/vkh265dec.c:
	  vulkanh26xdec: re-negotiate after FLUSH
	  Vulkan decoders also have the same issue as VA decoders fixed in !9457, where
	  FLUSH event doesn't renegotiate downstream the pipeline.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9560>

2025-08-13 14:54:45 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkimagebufferpool.c:
	  vkimagebufferpool: support video profile independent images
	  With video_maintenance1 extension is possible to create images independent of a
	  the video profile list, under that image will be processed.
	  With that extension is possible to share the same image for dynamic transcoding.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9550>

2025-08-14 15:55:41 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* tests/check/elements/cccombiner.c:
	  tests: cccombiner: Test durationless buffers
	  Crashes without the previous fix.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9415>

2025-07-17 14:40:47 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* ext/closedcaption/gstcccombiner.c:
	  cccombiner: Don't crash when first frame has no duration
	  Aggregate again so the code above can determine the end time or EOS.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9415>

2025-07-17 14:29:07 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* ext/closedcaption/gstcccombiner.c:
	  cccombiner: Avoid dividing by zero framerate
	  This was broken in b29262e662b86cd76225894f7504ee505125fa49.
	  The `gst_util_uint64_scale` emitted a critical warning and returned
	  `GST_CLOCK_TIME_NONE`, so beyond removing the warning this fix does not
	  change behavior.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9415>

2025-08-14 03:03:50 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2rbuf.cpp:
	  wasapi2: Warm up capture audio client on open
	  If the endpoint is idle, the first IAudioClient::Start() call
	  may take a long time to return. Start/stop the capture client
	  on open to reduce latency of subsequent Start() calls.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9553>

2025-08-13 03:13:47 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2rbuf.cpp:
	  wasapi2sink: Do not push too large preroll buffer to endpoint
	  To avoid startup glitches, a silent buffer is pushed to
	  render endpoint, but pushing too large silent buffer will
	  introduce unnecessary latency. Limit it to a single period worth data.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9553>

2025-08-13 16:39:24 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkdecoder-private.c:
	  vkdecoder-private: fix mistake from !9531
	  This was a very silent mistake.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9552>

2025-08-13 16:38:23 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkdecoder-private.c:
	* gst-libs/gst/vulkan/gstvkencoder-private.c:
	  vk{decoder,encoder}-private: use API to check device version
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9552>

2025-08-12 21:27:53 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* tests/check/libs/vkimagebufferpool.c:
	  test: vkimagebufferpool: silence validation
	  The validation complained with
	  VUID-VkImageCreateInfo-usage-requiredbitmask]:
	  vkCreateImage(): pCreateInfo->usage is zero.
	  This patch force to use the internal defaults in vkimagebufferpool if no usage
	  is defined.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9544>

2025-08-12 14:24:12 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkphysicaldevice.c:
	  vkphysicaldevice: silence validation for features
	  With merge request !9438 the validation layer started to complain with
	  VUID-VkDeviceCreateInfo-pNext-02829
	  This patch fixes this ill-usage of Vulkan API, by removing the feature enabling
	  of sampler ycbcr conversion, since it was promoted since Vulkan 1.1, and in
	  GStreamer is only used in Vulkan Video operations, which are only enabled in
	  Vulkan 1.3+.
	  Also, these features detection and enabling were moved to a function called when
	  filling the physical device data, in order to check the API version of the
	  device driver before adding the enabling of the feature.
	  Finally, the getters were adapted to use the version feature structure if the
	  device driver version matches.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9544>

2025-08-12 14:24:52 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkimagebufferpool.c:
	  vkimagebufferpool: fix regression from !9492
	  On commit 1a7f0f162726f07f5723e0c1f43f2c6725d07c80 a regression were introduced
	  by omitting to initialize the profileCount field.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9545>

2025-08-08 17:29:32 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkencoder-private.c:
	  vkencoder-private: remove duplicated definition
	  They are already declared in gstvkvideo-private.h
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9531>

2025-08-08 17:22:46 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkdecoder-private.c:
	* gst-libs/gst/vulkan/gstvkencoder-private.c:
	  vulkan: remove spurious video extension checking
	  Since they are expected dependencies. If the specific codec extension is loaded,
	  that means that dependencies are loaded too.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9531>

2025-08-11 22:54:29 +1000  Jan Schmidt <jan@centricular.com>

	* ext/hls/m3u8.c:
	  hlsdemux: Fix parsing of byterange and init map directives
	  Don't reuse the same offset and size variables when reading
	  the byterange out of a MAP directive, as it can overwrite
	  values from a pending BYTERANGE directive for the next
	  fragment URI.
	  Fixes problems where the EXT-X-MAP directive has been written
	  into the playlist between an EXT-X-BYTERANGE and the fragment
	  URI it applies to.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9533>

2025-08-08 17:38:33 +0800  Qian Hu (胡骞) <qian.hu@mediatek.com>

	* gst-libs/gst/wayland/gstwldisplay.c:
	  waylandsink: add some error handler for event dispatch
	  if wl client got last_error, wl_display_dispatch_queue_pending
	  will return -1, may lead to unhandled case, we should quit.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9511>

2025-08-09 22:51:03 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2activator.cpp:
	  wasapi2: Tone down activation fail log
	  If there's no endpoint available, that failure is expected error
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9521>

2025-08-09 22:46:59 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2enumerator.cpp:
	  wasapi2: Pass correct data flow value to GetDefaultAudioEndpoint()
	  Respect requested data flow value
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9521>

2025-07-23 11:37:15 -0400  Xavier Claessens <xclaessens@netflix.com>

	* tests/check/elements/mpegtsmux.c:
	  mpegtsmux: Caps event fails with stream type change error
	  If mpegtsmux receives the same caps again, it wrongly claims the stream
	  type changed:
	  error: Stream type change from 06 to 8f not supported
	  This adds a unit test that demonstrate the issue in the very hacky way.
	  I have seen this happening with the below pipeline when upstream caps
	  changes. Since the caps filter fixates the caps received by opusenc and
	  mpegtsmux, the stream type cannot change.
	  ...
	  ! audioconvert
	  ! audio/x-raw,format=S16LE,channels=2,rate=48000
	  ! opusenc bitrate=128000
	  ! mpegtsmux
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9430>

2025-08-07 14:31:38 +1000  Jan Schmidt <jan@centricular.com>

	* gst/mpegtsmux/gstbasetsmux.c:
	  mpegtsmux: Use 'internal' stream_type to detect codec changes
	  The TsMuxStream internal_stream_type field stores the original
	  'full' stream type (such as Opus), while the stream_type field
	  stores the value that will actually be written into the MPEG-TS
	  packets according to the codec mappings. When checking if
	  input caps are changing stream type, check the original type.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9430>

2025-08-08 22:30:52 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2enumerator.cpp:
	  wasapi2: Fix default render device probing
	  Fixing typo
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9517>

2025-07-31 11:31:43 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkphysicaldevice.c:
	  vkphysicaldevice: detect and dump Vulkan 1.4 properties and features
	  In order to link videomaintenance1, and others to come, without knowing if
	  Vulkan 1.4 features are chained in the device properties structure, a static and
	  inlined function was added in gstvkphysicaldevice-private.h. It was added in a
	  header file to avoid compiler warnings if it's not used because of old Vulkan
	  headers.
	  Also the value dump videomaintenance1 was moved to another function to pack
	  there all the future features to query which aren't part of a Vulkan release
	  yet.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9492>

2025-07-31 13:48:10 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/gstvulkan.c:
	* gst-libs/gst/vulkan/gstvkdebug.c:
	* gst-libs/gst/vulkan/gstvkdevice.c:
	* gst-libs/gst/vulkan/gstvkformat.c:
	* gst-libs/gst/vulkan/gstvkphysicaldevice.c:
	  vulkan: fine grained access to API
	  This patch is the payment to my technical debt.
	  The symbol GST_VULKAN_HAVE_VIDEO_EXTENSIONS is defined at compilation-time if
	  the user requests for the usage of the Vulkan Video extensions. And we used this
	  symbol for anything related with Vulkan Video. But this is not the smartest
	  approach.
	  The rule should be:
	  - If the code allocates Vulkan Video resources, use
	  GST_VULKAN_HAVE_VIDEO_EXTENSIONS
	  - Otherwise, use the Vulkan's guard for the used API
	  In this way, API version bumps will be easier.
	  Also, this commit marks the end of GST_VULKAN_HAVE_VIDEO_EXTENSIONS guarded code
	  for readability.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9492>

2025-08-04 15:11:17 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkoperation.c:
	* gst-libs/gst/vulkan/gstvkphysicaldevice-private.h:
	  vkoperation: refactor for fine grained guards and clean ups
	  Added a static inlined function in gstvkphysicaldevice-private.h for looking up
	  a specific vulkan structure in a chain.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9492>

2025-07-31 17:56:17 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkimagebufferpool.c:
	  vkimagebufferpool: refactor common code
	  Both gst_vulkan_image_buffer_pool_set_config() and
	  gst_vulkan_image_buffer_pool_alloc() functions share the same code to create
	  Vulkan images for different purposes.
	  This patch refactor them in a new helper function that creates the images and
	  stores them in a buffer if it's passed as output parameters, such as the
	  offsets.
	  This patch also adds specifics guards for Vulkan's symbols for better grained
	  API usage, but also for prepare_buffer() the guard is set where the symbol is
	  used.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9492>

2025-07-31 13:19:13 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkdevice.c:
	  vkdevice: fine grained vulkan video extensions detection
	  The Vulkan Video extensions can be available, according to the specification,
	  since Vulkan 1.1, but with other extensions dependencies. That's why this patch
	  adds a field in the extension structure, which represents the extension
	  dependency that the specified extension requires. And they are specified by
	  Vulkan Video extensions.
	  This allow to have a single function to check if the extension can be enabled
	  both by optional extensions and video extensions.
	  Regardless that video extension can be loaded since Vulkan 1.1, they are rather
	  loaded since Vulkan 1.3, when synchronization2 was promoted, so it isn't
	  checked as video_queue dependency.
	  Finally, this patch checks for each guard symbol.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9492>

2025-08-04 12:11:40 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkdecoder-private.c:
	* gst-libs/gst/vulkan/gstvkoperation.c:
	* gst-libs/gst/vulkan/gstvkphysicaldevice-private.h:
	* gst-libs/gst/vulkan/gstvkphysicaldevice.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.h:
	  vulkan: private functions for physical device features
	  This is a continuation of !9483, but without back-porting.
	  Instead of checking the driver's API version to figure out if a physical device
	  feature is available and enabled, or even more, instead of checking for enabled
	  extensions in the driver, this patch adds private functions in the physical
	  driver to get the availability and enabling of features such as sampler ycbrc
	  conversion, synchronization2, timeline semaphore and video maintenance1.
	  And these new functions are used internally in the GstVulkanOperation object,
	  and the private object GstVulkanDecoder.
	  This approach is computationally cheaper, simpler and precise.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9492>

2025-08-08 07:13:24 +0200  Jan Alexander Steffens (heftig) <heftig@archlinux.org>

	* tests/check/elements/zbar.c:
	  zbar: tests: Handle symbol-bytes as not null-terminated
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4592
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9510>

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

	* ext/svthevcenc/gstsvthevcenc.c:
	* ext/wayland/gstwaylandsink.c:
	* sys/winks/gstksclock.c:
	* sys/winks/gstksvideodevice.c:
	* sys/winks/gstksvideosrc.c:
	* sys/winks/ksdeviceprovider.c:
	* sys/winks/ksvideohelpers.c:
	* sys/winks/ksvideohelpers.h:
	  debug: Category init should happen in class_init when possible
	  plugin_init() will not get called if element/feature registration
	  happens manually, such as when using linking only specific plugin
	  features with gstreamer-full. That is possible when plugins contain
	  static features.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9496>

2025-08-07 13:58:27 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/codecparsers/gstav1parser.c:
	  av1parser: Don't error out on "currently" undefined seq-level indices
	  They might very well be defined in the future and that shouldn't affect the
	  parsing in any way. Specifically, ffmpeg with `av1_nvenc` seems to create
	  `GST_AV1_SEQ_LEVEL_7_3` currently and parsing such streams would fail otherwise.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4589
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9502>

2025-06-30 13:34:47 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* ext/lcevcdecoder/gstlcevcdec.c:
	* ext/lcevcdecoder/meson.build:
	  lcevcdec: Set LCEVCdec min version to 4.0.0 and fix build
	  V-Nova's LCEVCdec SDK 4.0.0 was released with a small API change. This patch
	  fixes the 'lcevcdec' element so that it builds with the new version. For more
	  information see:
	  https://github.com/v-novaltd/LCEVCdec/blob/4.0.0/docs/v4_migration_guide.md
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9414>

2025-08-04 16:56:56 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkdecoder-private.h:
	* gst-libs/gst/vulkan/gstvkencoder-private.h:
	* gst-libs/gst/vulkan/gstvkimagebufferpool.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.h:
	* gst-libs/gst/vulkan/gstvkvideoutils-private.c:
	* gst-libs/gst/vulkan/gstvkvideoutils-private.h:
	* gst-libs/gst/vulkan/meson.build:
	* gst-libs/gst/vulkan/vulkan.h:
	* gst-libs/gst/vulkan/vulkan_fwd.h:
	* tests/check/libs/vkimagebufferpool.c:
	* tests/check/libs/vkvideodecode.c:
	  vkvideoutils-private: make it private
	  Since we moved the GstVulkan generic decoder and encoder to private objects in
	  the library, there was not need to keep vkvideoutils public.
	  This patch turns it private and reduces the public API surface.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9493>

2025-08-05 01:51:14 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2rbuf.cpp:
	  wasapi2: Always fallback to MMDevice if default device is unavailable
	  Automatic stream routing supported virtual device may not be
	  available for some reason, but can try default MMdevice
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9468>

2025-08-05 01:41:51 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2enumerator.cpp:
	  wasapi2: Always probe default audio endpoint info
	  Regardless of GetActivateResult() return code, fill default
	  device information to device provider props
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9468>

2025-08-05 00:41:34 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2activator.cpp:
	* sys/wasapi2/gstwasapi2activator.h:
	  wasapi2: Handle GetActivateResult failure
	  Even if GetActivateResult() succeeded, activation result can fail.
	  Checks output HRESULT code as well
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9468>

2025-08-01 00:00:06 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2device.cpp:
	  wasapi2deviceprovider: Log device update details
	  ... and add wasapi2deviceprovider debug category
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9468>

2025-07-31 22:54:29 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2enumerator.cpp:
	  wasapi2enumerator: Retry on IMMDevice::Activate failure
	  Since the sequence of IMMDeviceEnumerator::EnumAudioEndpoints()
	  followed by IMMDevice::Activate() is not atomic, Activate() may fail
	  if the enumerated device becomes invalidated before probing.
	  In such cases, retry device probing
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9468>

2025-07-31 22:22:47 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2enumerator.cpp:
	  wasapi2enumerator: Avoid racy device probing
	  IMMDeviceEnumerator may fire a series of callbacks even for a single
	  device plug/unplug event. To avoid redundant probing, start device
	  enumeration only after no further callbacks are received for 100ms.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9468>

2025-07-31 21:10:27 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2enumerator.cpp:
	* sys/wasapi2/gstwasapi2util.cpp:
	* sys/wasapi2/gstwasapi2util.h:
	  wasapi2enumerator: Log IMMNotificationClient callback details
	  ... and add wasapi2enumerator debug category
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9468>

2025-08-02 12:19:18 +0100  Philippe Normand <philn@igalia.com>

	* ext/webrtc/webrtcsdp.c:
	* tests/check/elements/webrtcbin.c:
	  webrtc: sdp: Validate ICE SDP attributes
	  According to https://datatracker.ietf.org/doc/html/rfc5245#section-15.4,
	  those attributes should contain only alpha-numerical (with / and + allowed),
	  should be less than 256 characters, the ufrag should be at least 4 characters
	  and the pwd should be at least 22 characters.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9485>

2025-08-02 08:55:05 +0100  Philippe Normand <philn@igalia.com>

	* ext/webrtc/webrtcsdp.c:
	* tests/check/elements/webrtcbin.c:
	  webrtc: sdp: Relax ice-ufrag and ice-pwd checks
	  According to RFC 8839 section 5.4, if two data streams have identical
	  "ice-ufrag"s, they MUST have identical "ice-pwd"s.
	  The previous code wasn't allowing different ice-ufrag values in bundled medias.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9485>

2025-08-02 08:54:37 +0100  Philippe Normand <philn@igalia.com>

	* ext/webrtc/gstwebrtcstats.c:
	* gst-libs/gst/webrtc/webrtc_fwd.h:
	* tests/check/elements/webrtcbin.c:
	  webrtc: stats: Set DTLS role and state on transport stats
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9485>

2025-08-01 14:55:12 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkphysicaldevice-private.h:
	* gst-libs/gst/vulkan/gstvkphysicaldevice.c:
	  vkphysicaldevice: enable sampler ycbcr, sync2 and timeline semaphore features
	  For the features VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR,
	  VkPhysicalDeviceSynchronization2Features and
	  VkPhisicalDeviceTimelineSemaphoreFeatures
	  The Vulkan specification states:
	  If the `VkPhysicalDeviceXXXFeatures` structure is included in the `pNext`
	  chain of the `VkPhysicalDeviceFeatures2` structure passed to
	  `vkGetPhysicalDeviceFeatures2`, it is filled in to indicate whether each
	  corresponding feature is supported. If the application wishes to use a
	  `VkDevice` with any features described by `VkPhysicalDeviceXXXFeatures`,
	  it **must** add an instance of the structure, with the desired feature members
	  set to `VK_TRUE`, to the `pNext` chain of `VkDeviceCreateInfo` when creating
	  the `VkDevice`.
	  And that was missing in the code.
	  Strangely, that functionality doesn't have a Valid-Usage ID assigned, so it
	  isn't caught by the validation layer.
	  This patch adds the structures in the physical devices to get them and later set
	  them in the device creation.
	  In order to link these features, videomaintenance1, and others to come, without
	  knowing if Vulkan 1.3 features are chained in the device properties structure, a
	  static and inlined function was added in gstvkphysicaldevice-private.h. It was
	  added in a header file to avoid compiler warnings if it's not used because of
	  old Vulkan headers.
	  Also the value dump videomaintenance1 was moved to another function to pack
	  there all these queried features.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9483>

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

	* docs/random/PORTED_09:
	  random: Remove historical doc
	  This is about porting which happened over 20 years ago.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9476>

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

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

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

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

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

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

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

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

2025-08-01 11:52:17 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaav1enc.c:
	* sys/va/gstvah264enc.c:
	* sys/va/gstvah265enc.c:
	* sys/va/gstvavp8enc.c:
	* sys/va/gstvavp9enc.c:
	  vaXXXenc: fix potential race condition
	  VA encoders, at reconfiguration, have to check if the rate-control was changed
	  by the user, but since user parameters setting are in another thread, the
	  comparison was racy.
	  This patch locks the object to compare the current rate-control with the one set
	  by the user.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9480>

2025-02-26 03:41:21 +0000  Jonathan Lui <jonathan.ming.jun.lui@intel.com>

	* sys/va/gstvaav1enc.c:
	  vaav1enc: Enable intrablock copy and palette mode
	  This allow screen content coding (SCC) optimization feature.
	  Co-authored-by: Victor Jaquez <vjaquez@igalia.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8560>

2025-08-01 01:03:10 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12screencapturedevice.cpp:
	  d3d12screencapturedevice: Avoid false device removal on monitor reconfiguration
	  Post device-changed instead of device-removed/device-added when
	  only HMONITOR or display position changed without actual device change.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9472>

2025-02-11 18:59:04 -0500  Olivier Crête <olivier.crete@collabora.com>

	* tests/check/libs/analyticsmeta.c:
	  analytics: Add unit test for copying GstAnalyticsRelationMeta
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9475>

2025-03-06 18:08:22 -0500  Olivier Crête <olivier.crete@collabora.com>

	* ext/avtp/gstavtpbasepayload.c:
	  avtpbasepay: Add debug message for time handling
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9412>

2025-03-06 18:08:04 -0500  Olivier Crête <olivier.crete@collabora.com>

	* ext/avtp/gstavtpbasepayload.c:
	  avtpbasepay: Make make constants more readable
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9412>

2025-03-06 18:01:23 -0500  Olivier Crête <olivier.crete@collabora.com>

	* ext/avtp/gstavtpaafdepay.c:
	* ext/avtp/gstavtpbasedepayload.c:
	* ext/avtp/gstavtpbasedepayload.h:
	* ext/avtp/gstavtpcvfdepay.c:
	* ext/avtp/gstavtpsrc.c:
	* ext/avtp/gstavtpvfdepaybase.c:
	* tests/check/elements/avtpaafdepay.c:
	* tests/check/elements/avtpcvfdepay.c:
	  avtp: Use the DTS as the AVTP base time
	  Make it work a little more like RTP. Have the source interact with the
	  clock and set the capture time on each packet. Then the other elements
	  can use that to do adjustments. Since AVTP is always very low latency,
	  it can be assumed that the gPTP clock at the packet reception is very
	  close to the sending time, never more than 2 seconds off, so the
	  timestamps can be compared directly.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9412>

2025-03-06 16:14:04 -0500  Olivier Crête <olivier.crete@collabora.com>

	* ext/avtp/gstavtpaafdepay.c:
	* ext/avtp/gstavtpbasedepayload.c:
	* ext/avtp/gstavtpbasedepayload.h:
	* ext/avtp/gstavtpcvfdepay.c:
	* ext/avtp/gstavtprvfdepay.c:
	  avtp: Use nicely abstracted process function in base depayloader class
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9412>

2025-02-07 16:18:14 -0500  Olivier Crête <olivier.crete@collabora.com>

	* ext/avtp/gstavtpbasepayload.c:
	  avtp: Intercept changes in the latency
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9412>

2025-02-07 13:33:48 -0500  Olivier Crête <olivier.crete@collabora.com>

	* ext/avtp/gstavtpvfpaybase.c:
	  avtpvfpaybase: Don't require a caps handling method
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9412>

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

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

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

	* gst-libs/gst/wayland/gstwlvideoformat.h:
	  waylandsink: Enable 10bit RGB for SHM buffer
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9460>

2025-07-31 15:36:38 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst/videoparsers/gstav1parse.c:
	  av1parse: Set MDI into the final caps
	  The MDI was being set in the original caps which is not even writable.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9474>

2025-03-05 11:02:55 -0500  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxclient.cpp:
	* ext/onnx/gstonnxclient.h:
	* ext/onnx/gstonnxinference.cpp:
	* ext/onnx/meson.build:
	  onnx: Add Verisilicon provider
	  Add the option to use the VSI provider for the Verisilicon NPUs.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9408>

2025-07-30 15:50:56 +0400  Marc-André Lureau <marcandre.lureau@redhat.com>

	* gst-libs/gst/d3d12/meson.build:
	* sys/d3d12/meson.build:
	  meson: d3d12: Add support for MinGW DirectXMath package
	  This is a similar issue that was found for d3d11:
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6495
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9464>

2025-07-30 16:19:56 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/base/gsth264encoder.c:
	  vulkanh264enc: calculate latency with corrected framerate
	  Fix for the h264encoder base class in the same spirit of !9437.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9465>

2025-07-24 14:31:26 +0300  Amotz Terem <amotzte@gmail.com>

	* sys/nvcodec/gstnvencoder.cpp:
	  nvcodec: Add emit-frame-stats signal
	  Add emit-frame-stats property to optionally emit frame stats on each frame
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9429>

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

	* sys/directsound/gstdirectsoundplugin.c:
	* sys/wasapi/gstwasapi.c:
	  windows: Disable all audio device providers except wasapi2
	  We have too many device providers outputting duplicate device entries,
	  and it's not clear to people what they should be using. Let's only
	  keep wasapi2 around since it is PRIMARY + 1.
	  After the device switching work done on WASAPI2, there is no reason to
	  use directsound anymore.
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9326
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9438>

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

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

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

	* ext/dash/meson.build:
	* ext/smoothstreaming/meson.build:
	* ext/ttml/meson.build:
	  meson: Pass python=false to libxml2
	  We don't need this in gstreamer anyway.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4510
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9438>

2025-07-29 11:42:54 +0100  Philippe Normand <philn@igalia.com>

	* sys/va/gstvavp9dec.c:
	  vavp9dec: Always chain to parent class negotiate vmethod
	  When the base videodecoder class re-attempts a negotiation after flush, the
	  vabasedec `need_negotiation` flag isn't necessarily set to TRUE, because in that
	  situation the input state hasn't changed.
	  By always chaining up we are sure that buffer pool negotiation will always be
	  attempted.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9457>

2025-07-29 11:42:44 +0100  Philippe Normand <philn@igalia.com>

	* sys/va/gstvajpegdec.c:
	  vajpegdec: Always chain to parent class negotiate vmethod
	  When the base videodecoder class re-attempts a negotiation after flush, the
	  vabasedec `need_negotiation` flag isn't necessarily set to TRUE, because in that
	  situation the input state hasn't changed.
	  By always chaining up we are sure that buffer pool negotiation will always be
	  attempted.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9457>

2025-07-29 11:42:33 +0100  Philippe Normand <philn@igalia.com>

	* sys/va/gstvaav1dec.c:
	  vaav1dec: Always chain to parent class negotiate vmethod
	  When the base videodecoder class re-attempts a negotiation after flush, the
	  vabasedec `need_negotiation` flag isn't necessarily set to TRUE, because in that
	  situation the input state hasn't changed.
	  By always chaining up we are sure that buffer pool negotiation will always be
	  attempted.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9457>

2025-07-28 12:52:22 +0100  Philippe Normand <philn@igalia.com>

	* sys/va/gstvabasedec.c:
	  vabasedec: Instrument negotiate function with debug statements
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9457>

2025-07-28 12:49:36 +0100  Philippe Normand <philn@igalia.com>

	* sys/va/gstvabasedec.c:
	  vabasedec: Always chain to parent class negotiate vmethod
	  When the base videodecoder class re-attempts a negotiation after flush, the
	  vabasedec `need_negotiation` flag isn't necessarily set to TRUE, because in that
	  situation the input state hasn't changed.
	  By always chaining up we are sure that buffer pool negotiation will always be
	  attempted.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9457>

2025-07-28 12:45:25 +0100  Philippe Normand <philn@igalia.com>

	* sys/va/gstvah264dec.c:
	  vah264dec: Spelling fix in warning debug statement
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9457>

2025-07-28 12:44:48 +0100  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/codecs/gsth264decoder.c:
	  h264decoder: Spelling fix in warning debug statement
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9457>

2025-07-24 16:41:35 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxclient.cpp:
	  onnx: Add debug message with tensor id
	  Also downgrade input dimensions as it's shown on
	  each buffer.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9439>

2025-07-24 16:41:23 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxclient.cpp:
	* gst/tensordecoders/gstssdobjectdetector.c:
	  ssdtensordecoder: Use tensor ids from the registry
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9439>

2025-07-10 15:19:02 -0500  Derek Foreman <derek.foreman@collabora.com>

	* gst/videoparsers/gstav1parse.c:
	  av1parse: Set CLL and MDI caps
	  We already parse the content-light-level and mastering-display-info data
	  from the stream, so propagate that into caps.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9445>

2025-07-25 08:59:31 -0500  Derek Foreman <derek.foreman@collabora.com>

	* gst-libs/gst/wayland/gstwlwindow.c:
	  wayland: display: Scale whitepoint the same as the primaries
	  The whitepoint metadata also needs the same scale factor as the
	  display_primaries.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9444>

2025-07-25 09:31:08 -0500  Derek Foreman <derek.foreman@collabora.com>

	* gst-libs/gst/wayland/gstwlwindow.c:
	  wayland: window: Name the color management queue
	  Wayland debugging is easier if we use queue names.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9446>

2025-07-22 11:05:08 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* ext/lcevcdecoder/gstlcevch265decodebin.c:
	* ext/lcevcdecoder/gstlcevch265decodebin.h:
	* ext/lcevcdecoder/gstlcevch266decodebin.c:
	* ext/lcevcdecoder/gstlcevch266decodebin.h:
	* ext/lcevcdecoder/meson.build:
	* ext/lcevcdecoder/plugin.c:
	  lcevcdecoder: Add lcevch265decodebin and lcevch266decodebin elements
	  Similar to lcevch264decodebin, these new elements are needed for LCEVC H265 and
	  H266 video streams to be decoded properly with autoplugging elements.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9427>

2025-07-22 11:02:00 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* gst/videoparsers/gsth266parse.c:
	  h266parse: Fix typo when finding compatible profiles
	  This solves some critical errors about not fixed caps with some H266 streams.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9427>

2025-07-22 10:56:55 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* gst/videoparsers/gsth266parse.c:
	  h266parse: Wait for SEI before exposing src caps
	  Similar to h264parse, this makes sure 'lcevc=false' src caps are not set before
	  parsing SEI. It is needed for decodebin2 to work properly with the LCEVC decoder.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9427>

2025-07-22 10:56:30 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* gst/videoparsers/gsth265parse.c:
	* tests/check/elements/h265parse.c:
	  h265parse: Wait for SEI before exposing src caps
	  Similar to h264parse, this makes sure 'lcevc=false' src caps are not set before
	  parsing SEI. It is needed for decodebin2 to work properly with the LCEVC decoder.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9427>

2025-07-22 10:47:20 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* gst/videoparsers/gsth264parse.c:
	* gst/videoparsers/gsth265parse.c:
	* gst/videoparsers/gsth266parse.c:
	  codecparsersbad: Accept lcevc=false sink caps
	  This is needed if the LCEVC enhancement data is part of the video stream as SEI
	  and the demuxer outputs 'lcevc=false' src caps because LCEVC enhancement data is
	  not stored as a separate stream in the container.
	  To clarify, 'lcevc=true' just means that the video buffers have LCEVC metadata
	  attached. Therefore, it is valid to have a stream with LCEVC enhancement data as
	  SEI with 'lcevc=false' as long as it is not attached as metadata.
	  This will be needed once we add support for the demuxer to attach LCEVC metadata
	  to video buffers if it is stored in a separate track.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9427>

2025-07-25 03:51:13 +0900  Seungha Yang <seungha@centricular.com>

	* tests/examples/d3d12/d3d12fisheyedewarp.cpp:
	* tests/examples/d3d12/meson.build:
	  examples: Add d3d12fisheyedewarp test example
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9441>

2025-06-20 03:23:25 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3dshader/gstd3dshadercache.cpp:
	* gst-libs/gst/d3dshader/gstd3dshadercache.h:
	* gst-libs/gst/d3dshader/plugin-hlsl/CSMain_fisheye_equirect.hlsl:
	* gst-libs/gst/d3dshader/plugin-hlsl/CSMain_fisheye_panorama.hlsl:
	* gst-libs/gst/d3dshader/plugin-hlsl/CSMain_fisheye_perspective.hlsl:
	* gst-libs/gst/d3dshader/plugin-hlsl/hlsl.h:
	* gst-libs/gst/d3dshader/plugin-hlsl/meson.build:
	* sys/d3d12/gstd3d12fisheyedewarp.cpp:
	* sys/d3d12/gstd3d12fisheyedewarp.h:
	* sys/d3d12/meson.build:
	* sys/d3d12/plugin.cpp:
	  d3d12: Add support for dewarping fisheye images
	  Add d3d12fisheyedewarp element that performs fisheye image dewarping
	  using D3D12. A UV remap LUT texture is generated via a compute shader,
	  and the actual remapping is performed in a pixel shader using this LUT
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9441>

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

	* ext/analyticsoverlay/gstobjectdetectionoverlay.c:
	  objectdetectionoverlay: Print tracking id
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9440>

2025-07-24 18:16:51 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaav1enc.c:
	* sys/va/gstvah264enc.c:
	* sys/va/gstvah265enc.c:
	* sys/va/gstvajpegenc.c:
	* sys/va/gstvavp8enc.c:
	* sys/va/gstvavp9enc.c:
	  vaXXXenc: calculate latency with corrected framerate
	  Fixes: #4558
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9437>

2025-07-10 21:56:28 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2rbuf.cpp:
	* sys/wasapi2/gstwasapi2rbuf.h:
	* sys/wasapi2/gstwasapi2sink.cpp:
	* sys/wasapi2/gstwasapi2src.cpp:
	  wasapi2: Add continue-on-error property
	  If enabled, wasapi2src/sink will post a warning message instead of an error,
	  when device failures occur, such as open failure, I/O error,
	  or device removal.
	  The element will continue to produce/consume audio buffers and behave as if
	  a capture/render device were active, allowing pipeline to keep running even when
	  no audio endpoint is available
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9326>

2025-07-10 22:29:31 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2util.cpp:
	  wasapi2: Use 48kHz default sample rate
	  That's most common default value
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9326>

2025-07-04 21:55:13 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2device.cpp:
	* sys/wasapi2/gstwasapi2enumerator.cpp:
	* sys/wasapi2/gstwasapi2enumerator.h:
	  wasapi2deviceprovider: Probe device form factor and enumerator name
	  Adding form factor and enumerator information to device property struct
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9326>

2025-07-01 00:33:18 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2object.cpp:
	* sys/wasapi2/gstwasapi2object.h:
	* sys/wasapi2/gstwasapi2rbuf.cpp:
	* sys/wasapi2/gstwasapi2rbuf.h:
	* sys/wasapi2/gstwasapi2ringbuffer.cpp:
	* sys/wasapi2/gstwasapi2ringbuffer.h:
	* sys/wasapi2/gstwasapi2sink.c:
	* sys/wasapi2/gstwasapi2sink.cpp:
	* sys/wasapi2/gstwasapi2src.cpp:
	* sys/wasapi2/gstwasapi2util.cpp:
	* sys/wasapi2/meson.build:
	* sys/wasapi2/plugin.cpp:
	  wasapi2: Add support for dynamic device switch
	  Ringbuffer implementation is re-written to support "device" property
	  change in playing state
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9326>

2025-02-26 03:03:15 +0900  Seungha Yang <seungha@centricular.com>

	* ext/nvdswrapper/gstnvdsdewarp.cpp:
	  nvdsdewarp: Disallow resizing in case of passthrough
	  It's not supported yet
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8558>

2025-02-26 02:27:38 +0900  Seungha Yang <seungha@centricular.com>

	* ext/nvdswrapper/gstnvdsdewarp.cpp:
	  nvdsdewarp: Avoid synchronization if possible
	  If input/output memory objects have the same cuda stream,
	  don't need to synchronize stream
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8558>

2025-02-26 02:22:24 +0900  Seungha Yang <seungha@centricular.com>

	* ext/nvdswrapper/gstnvdsdewarp.cpp:
	  nvdsdewarp: Cache texture object
	  ... instead of creating texture for every frame
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8558>

2025-02-26 01:20:23 +0900  Seungha Yang <seungha@centricular.com>

	* ext/nvdswrapper/gstnvdsdewarp.cpp:
	  nvdsdewarp: Add support for output resizing
	  ... and adding "add-borders" property
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8558>

2025-05-05 14:44:54 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* ext/vulkan/vkdownload.c:
	* ext/vulkan/vkdownload.h:
	  vkdownload: implement decide_allocation virtual method
	  In the case of caps change such as frame size, a new buffer pool should be
	  created according to this new caps via the decide_allocation() vmethod.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8931>

2025-06-04 16:10:20 -0400  Olivier Crête <olivier.crete@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/analyticsoverlay/gstobjectdetectionoverlay.c:
	  analyticsoverlay: Add expire-overlay property
	  If there has been no new data for this amount of time, just
	  expire the overlay and don't send one. Otherwise, it keeps sending
	  the old one for the following frames.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9409>

2025-07-04 23:34:13 +0900  Seungha Yang <seungha@centricular.com>

	* sys/nvcodec/gstnvencoder.cpp:
	* sys/nvcodec/gstnvencoder.h:
	* sys/nvcodec/gstnvh264encoder.cpp:
	* sys/nvcodec/gstnvh265encoder.cpp:
	  nvencoder: Always allow interlaced stream
	  ... even if hardware does not support interlaced encoding at bitstream level.
	  Although interlacing information is not written in the bitstream,
	  that information can be signalled via container, thus allow interlaced
	  stream.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9328>

2025-07-19 01:50:03 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12swapchainsink.cpp:
	* tests/examples/d3d12/d3d12swapchainsink-win32.cpp:
	  d3d12swapchainsink: Add last-rendered-sample action signal
	  Add a new action signal to allow applications to capture
	  the most recently rendered frame directly from the swapchain
	  back buffer.
	  Unlike the existing "last-sample" property, which exposes
	  the raw input sample before any sink-side processing, this
	  signal captures the final displayed image after any internal
	  image processing (e.g., UV remap, color balance, overlay) has been
	  applied.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9423>

2025-05-26 13:47:39 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* tests/check/libs/vkvideoencodebase.c:
	* tests/check/libs/vkvideoencodeh264.c:
	* tests/check/libs/vkvideoencodeh265.c:
	  tests: vkh26xenc: use vkvideoencodebase
	  To avoid duplicating code, use vkvideoencodebase.c
	  Code cleanup and function clarifications.
	  Fix leaks in case of multiple device.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9077>

2025-07-15 20:10:25 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/tflite/gsttflite.c:
	* ext/tflite/gsttflitevsiinference.c:
	* ext/tflite/gsttflitevsiinference.h:
	* ext/tflite/meson.build:
	* meson.options:
	  tflite: Add support for VSI delegate
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9410>

2025-07-17 17:14:06 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst/tensordecoders/gstclassifiertensordecoder.c:
	  classifiertensordecoder: Use utility functions to get tensors
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9419>

2025-07-17 17:12:29 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst/tensordecoders/gstclassifiertensordecoder.c:
	  classifiertensordecoder: Handle error cases better with labels file
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9419>

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

	* gst/tensordecoders/gstssdobjectdetector.c:
	  ssdobjectdetector: Validate tensor type and dimensions
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9419>

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

	* gst-libs/gst/analytics/gsttensor.c:
	  tensor: Print tensor name in debug name
	  It makes it easier to understand which one is rejected.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9419>

2025-07-18 17:52:42 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst/unixfd/gstunixfdsink.c:
	* gst/unixfd/gstunixfdsrc.c:
	  unixfd: fix and improve the example pipelines in the documentation
	  - Add a videoconvert element before the videosink so that the output
	  works no matter what format gets negotiated (A444_16LE for me)
	  - Specify a reasonable video format and size with a capsfilter, so
	  we don't default to something silly like A444_16LE @ 240p.
	  - Add a timeoverlay element, so it's obvious when stoppping/restarting
	  the pipeline that the input stream is just picked up again from the
	  moment the consumer pipeline is restarted.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9422>

2025-07-16 16:46:18 +0100  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/transcoder/gsttranscoder.c:
	* gst-libs/gst/transcoder/gsttranscoder.h:
	  transcoder: Fix warning/error APIs
	  The GError pointers were actually not out-parameters. :(
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9407>

2025-07-16 16:44:59 +0100  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/transcoder/gsttranscoder.c:
	  transcoder: Remove unused priv->bus variable
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9407>

2025-07-16 16:43:36 +0100  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/transcoder/gsttranscoder-signal-adapter.c:
	  transcoder: signal-adapter: Fix error/warning details access
	  The field names were missing in the gst_structure_get() calls...
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9407>

2025-07-16 09:27:40 +0100  Philippe Normand <philn@igalia.com>

	* tests/check/gst-plugins-bad.supp:
	  check: Silence some OpenSSL memory leaks
	  The OpenSSL version shipping in Fedora 40 leaks memory, the issue is fixed in
	  F42.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9323>

2025-07-03 12:06:22 +0100  Philippe Normand <philn@igalia.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/dtls/gstdtlscertificate.c:
	* ext/dtls/gstdtlsdec.c:
	* ext/dtls/gstdtlssrtpdec.c:
	  dtls: Use ECDSA private key for default certificate
	  ECDSA is widely used in browsers and SFUs, some servers such as the ones using
	  BouncyCastle only accept certificates signed with ECDSA.
	  Based on closed MR https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2458
	  Fixes #4516
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9323>

2025-07-16 15:58:27 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/analytics/gsttensor.c:
	* gst-libs/gst/analytics/gsttensor.h:
	* gst-libs/gst/analytics/gsttensormeta.c:
	* gst-libs/gst/analytics/gsttensormeta.h:
	* gst/tensordecoders/gstfacedetectortensordecoder.c:
	  tensormeta: Check dimensions when retrieving tensor
	  Modify the API to retrieve the tensor meta to check for the dimensions
	  as well.
	  Also fix an API mistake, the buffer whose dimensions should be checheck
	  is the one inside the GstTensor, not another buffer some outside.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9411>

2025-07-16 11:18:33 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/analytics/gsttensormeta.c:
	  tensormeta: Don't crash on invalid tensor name
	  It's a valid case to check for an existing tensor.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9411>

2025-07-10 18:23:30 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* ext/vulkan/vkupload.c:
	  vkupload: fix the refactored frame copy
	  When refactoring the code in 743c425f64,
	  the wrong GstBuffer has been used to copy to,
	  leading to a failing frame copy.
	  The bug has been discovered running
	  elements_vkcolorconvert.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9373>

2025-07-14 22:58:25 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3d12/gstd3d12converter-private.h:
	* gst-libs/gst/d3d12/gstd3d12converter.cpp:
	* sys/d3d12/gstd3d12swapchainsink.cpp:
	* tests/examples/d3d12/d3d12swapchainsink-win32.cpp:
	  d3d12swapchainsink: Update uv-remap signal to support background color
	  Allow per viewport background color setting
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9393>

2025-07-03 19:40:45 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/analytics/gsttensor.c:
	  tensor: Clarify meaning of the dimensions array in the docs
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9325>

2025-03-06 18:07:08 -0500  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/analytics/gstanalyticsmeta.c:
	  analyticsmeta: Remove incorrect check
	  The value can be NULL which is the wildcard
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9413>

2025-07-08 11:15:31 +0530  raghu447 <raghavendra.rao@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/tensordecoders/gstfacedetectortensordecoder.c:
	  tensordecoder: rename facedetector element
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9344>

2025-07-09 07:50:43 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* gst/videoparsers/gsth266parse.c:
	* gst/videoparsers/gsth266parse.h:
	  h266parse: Parse and attach LCEVC metadata to buffers if present
	  Similar to h264parse and h265parse, this patch enhances the element to parse
	  LCEVC enhancement data from SEI, and attach it to output buffers as GstLcevcMeta.
	  The 'lcevc' field in the output caps is also set to TRUE or FALSE depending on
	  whether LCEVC data is present or not.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9365>

2025-07-09 07:48:32 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* gst-libs/gst/codecparsers/gsth266parser.c:
	* gst-libs/gst/codecparsers/gsth266parser.h:
	* gst/videoparsers/gsth266parse.c:
	  h266parse: Parse and process SEI registered user data
	  Similar to h264parse and h265parse, this patch improves the element to parse
	  the SEI registered user data from NAL units. The core structure of H266 SEI for
	  ITU-T T.35 is the same as the other parsers, so we can re-use the same logic.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9365>

2025-07-15 01:29:46 +0900  Seungha Yang <seungha@centricular.com>

	* tests/examples/d3d12/d3d12swapchainsink-win32.cpp:
	  examples: d3d12swapchainsink: Add support for force-aspect-ratio change
	  Adding keyboard control for "force-aspect-ratio" property change
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9392>

2025-07-15 01:28:40 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12swapchainsink.cpp:
	  d3d12swapchainsink: Fix force-aspect-ratio change in playing state
	  Set output updated flag so that viewport can be calculated again
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9392>

2025-07-14 15:07:37 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/analytics/analytics.h:
	  analytics: Include new batch meta in the single-include header
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9391>

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

	* gst-libs/gst/analytics/gstanalyticsbatchmeta.c:
	* gst-libs/gst/analytics/gstanalyticsbatchmeta.h:
	* gst-libs/gst/analytics/meson.build:
	  analytics: Add GstAnalyticsBatchMeta for batches of buffers from one or more streams
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9282>

2025-07-09 02:52:27 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/avtp/gstavtpcrfbase.c:
	* ext/avtp/gstavtpcrfbase.h:
	  avtp: crf: Setup socket during state change to ensure we handle failure
	  Previously the socket would be created in the thread, which take some
	  time to start. As the tests were so short they would usually pass as
	  they don't actually use the socket.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9364>

2025-07-09 02:51:11 -0400  Doug Nazar <nazard@nazar.ca>

	* tests/check/elements/avtpcrfcheck.c:
	* tests/check/elements/avtpcrfsync.c:
	  avtp: crf: tests: Only run tests if packet socket is available
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9364>

2025-07-09 00:47:58 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* gst/rtmp2/rtmp/rtmpclient.c:
	  rtmp2src: don't send window acknowledgement size commands twice
	  This causes servers such as AWS MediaLive to drop the connection, and
	  the message flow chart as documented in the "spec" always has the
	  server sending it first, and the client replying to it on reception of
	  the Set Peer Bandwidth, which we do since 286a3829b637.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9360>

2025-07-09 00:44:36 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* gst/rtmp2/gstrtmp2locationhandler.c:
	  rtmp2src: fix playback of URIs without a playpath
	  ffmpeg manages to play RTMP URLs in the form:
	  ```
	  protocol://servername:port/appname
	  ```
	  and does not require a second component to the path, adapt our code to
	  allow using such URLs as `tcUrl`.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9360>

2025-07-09 12:21:31 +0200  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtenc.c:
	  vtenc: Fix negotiation failure with profile=main-422-10
	  Previous version passed just enough data to the parser to detect
	  main/main-10, but main-422-10 is one of the range extensions profiles.
	  Those need a few more bits to be accurately detected, and since those
	  were just uinitialized memory previously, we'd incorrectly end up with
	  main or main-10 when the encoder was in fact giving us 4:2:2 10bit
	  output.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9348>

2025-07-08 10:13:11 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/wayland/gstwlwindow.c:
	  wayland: window: Fix next video info leak
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9353>

2025-07-08 10:09:39 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/gtk/gstgtkwaylandsink.c:
	* ext/wayland/gstwaylandsink.c:
	* ext/wayland/gstwaylandsink.h:
	* gst-libs/gst/wayland/gstwlwindow.c:
	* gst-libs/gst/wayland/gstwlwindow.h:
	  waylandsink: Parse and set the HDR10 metadata
	  Basically whenever the compositor have support for it, and the caps includes it,
	  set the mastering display and light content level information.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9353>

2025-07-08 10:08:57 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/wayland/gstwldisplay.c:
	* gst-libs/gst/wayland/gstwldisplay.h:
	  wayland: display: Detect HDR10 metadata feature
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9353>

2025-06-17 06:38:59 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/openh264/gstopenh264enc.cpp:
	  openh264: Ensure src_pic is initialized before use
	  valgrind was showing reads of uninitialized memory and the
	  library examples all memset the structure before use.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9352>

2025-05-22 14:41:30 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* gst/videoparsers/gsth265parse.c:
	* gst/videoparsers/gsth265parse.h:
	  h265parse: Parse and attach LCEVC metadata to buffers if present
	  Similar to h264parse, this patch enhances the element to parse LCEVC enhancement
	  data from SEI, and attach it to output buffers as GstLcevcMeta. The 'lcevc'
	  field in the output caps is also set to TRUE or FALSE depending on whether LCEVC
	  data is present or not.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9335>

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

	* meson.build:
	  Back to development after 1.27.1

=== release 1.27.1 ===

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

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

2025-07-07 10:12:52 +1000  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/vulkan/gstvkfullscreenquad.c:
	  vulkanfullscreenquad: add locks for synchronisation
	  Now all API can be accessed from any thread.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9337>

2025-05-31 03:35:27 -0400  Doug Nazar <nazard@nazar.ca>

	* gst/transcode/gst-cpu-throttling-clock.c:
	  cpu-throttling-clock: fix race between async callback and unscheduling
	  It's possible that the callback is already scheduled to run on another
	  thread when we unschedule it during dispose and we would then access
	  a freed object.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9151>

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

	* tests/check/elements/h266parse.c:
	  h266parse: test: Pass correct size argument to va_arg function
	  sizeof(int) != sizeof (gsize)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9151>

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

	* tests/check/libs/analyticsmeta.c:
	  analytics: tests: Copy correct size of array to buffer
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9151>

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

	* sys/decklink/gstdecklink.cpp:
	  decklink: Fix a memory leak
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9151>

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

	* tests/check/elements/webrtcbin.c:
	  webrtc: tests: Fix a few memory leaks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9151>

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

	* gst/camerabin2/gstcamerabin2.c:
	  camerabin: Fix a memory leak
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9151>

2025-07-07 11:59:18 +0200  Hanna Weiß <hweiss@igalia.com>

	* gst-libs/gst/vulkan/gstvkfullscreenquad.c:
	  vulkan: Fix drawing too many triangles in fullscreenquad
	  was using a index buffer for triangle list but drawn as strip
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9338>

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

	* docs/plugins/gst_plugins_cache.json:
	* ext/gtk/gstgtkwaylandsink.c:
	  gtkwaylandsink: Make the rotate property GST_PARAM_MUTABLE_PLAYING
	  This matches the change we made to waylandsink.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9283>

2025-06-25 19:42:59 +0200  Michael Olbrich <m.olbrich@pengutronix.de>

	* ext/wayland/gstwaylandsink.c:
	* ext/wayland/gstwaylandsink.h:
	  gstwaylandsink: add some locking documentation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9283>

2025-06-25 16:21:40 +0200  Michael Olbrich <m.olbrich@pengutronix.de>

	* docs/plugins/gst_plugins_cache.json:
	* ext/wayland/gstwaylandsink.c:
	  gstwaylandsink: add GST_PARAM_MUTABLE_PLAYING flag for more properties
	  The fullscreen state and rotate method can be changed while the element is
	  playing, so add the GST_PARAM_MUTABLE_PLAYING flag to those properties to
	  indicate this.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9283>

2025-06-25 16:17:58 +0200  Michael Olbrich <m.olbrich@pengutronix.de>

	* ext/wayland/gstwaylandsink.c:
	  waylandsink: make sure self->window is not NULL before using it
	  self->window is created with the first frame, so it is not available when
	  properties are set during construction of the element.
	  Skip calling gst_wl_window_ensure_fullscreen() in this case.
	  The window is already constructed with the current configured fullscreen state,
	  nothing else in needed here.
	  Without this, running e.g. 'gst-launch-1.0 -v videotestsrc ! waylandsink
	  fullscreen=true' will result in:
	  GStreamer-Wayland-CRITICAL **: 14:11:19.921: gst_wl_window_ensure_fullscreen: assertion 'self' failed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9283>

2025-07-02 18:39:20 +0200  Olivier Crête <olivier.crete@collabora.com>

	* ext/webrtc/gstwebrtcbin.c:
	  webrtcbin: Add RTX/FEC for each relevant payload type
	  When sending an answer with multiple codecs, we need to add the RTX and FEC
	  payload for each codec
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9031>

2025-06-15 23:17:17 +0900  Seungha Yang <seungha@centricular.com>

	* sys/hip/gsthipmemorycopy.cpp:
	  hipmemorycopy: Use stream associated with buffer
	  ... instead of global device stream. memory object might hold
	  different stream.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9281>

2025-06-15 23:09:17 +0900  Seungha Yang <seungha@centricular.com>

	* sys/hip/gsthipconverter.cpp:
	  hipconverter: Avoid unnecessary sync
	  If input and output buffers are running on the same stream,
	  record event instead of sync
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9281>

2025-06-15 21:34:36 +0900  Seungha Yang <seungha@centricular.com>

	* sys/hip/gsthipbufferpool.cpp:
	* sys/hip/gsthipmemory.cpp:
	* sys/hip/gsthipmemory.h:
	  hipmemory: Allow lazy sync
	  Store recorded hip event and wait for sync later if needed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9281>

2025-06-15 21:29:19 +0900  Seungha Yang <seungha@centricular.com>

	* sys/hip/gsthip.h:
	* sys/hip/gsthip_fwd.h:
	* sys/hip/gsthipevent.cpp:
	* sys/hip/gsthipevent.h:
	* sys/hip/gsthiploader.cpp:
	* sys/hip/gsthiploader.h:
	* sys/hip/gsthipstream.cpp:
	* sys/hip/gsthipstream.h:
	* sys/hip/meson.build:
	* sys/hip/stub/driver_types.h:
	* sys/hip/stub/hip/hip_runtime_api.h:
	  hip: Add GstHipEvent object
	  hip event handle wrapper object
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9281>

2025-06-15 19:48:54 +0900  Seungha Yang <seungha@centricular.com>

	* sys/hip/gsthipcompositor.cpp:
	* sys/hip/gsthipconverter.cpp:
	* sys/hip/gsthipmemory.cpp:
	* sys/hip/gsthipmemory.h:
	* sys/hip/gsthipmemorycopy.cpp:
	  hip: Use non-default stream
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9281>

2025-06-15 19:06:28 +0900  Seungha Yang <seungha@centricular.com>

	* sys/hip/gsthip.h:
	* sys/hip/gsthip_fwd.h:
	* sys/hip/gsthipdevice.cpp:
	* sys/hip/gsthipdevice.h:
	* sys/hip/gsthiploader.cpp:
	* sys/hip/gsthiploader.h:
	* sys/hip/gsthipstream.cpp:
	* sys/hip/gsthipstream.h:
	* sys/hip/meson.build:
	  hip: Add GstHipStream object
	  Adding hip stream abstraction layer
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9281>

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

	* gst/codecalpha/gstalphacombine.c:
	  alphacombine: fix memory leaks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9115>

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

	* gst/transcode/gst-cpu-throttling-clock.c:
	  cpu-throttling-clock: free clock when finished
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9115>

2025-07-05 03:10:51 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12screencapturedevice.cpp:
	  d3d12screencapture: Add support for monitor add/remove in device provider
	  Update device list on WM_DISPLAYCHANGE event
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4521
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9330>

2025-07-04 10:56:27 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst/videoparsers/gstvp9parse.c:
	  Revert "vp9parse: Always default to super-frame"
	  This reverts commit fd1428d3ebf937d7656c3788df3ef3ff85fecc31.
	  As reported in #4524, this changes cause regressions. The problem is due to a
	  bug in how vp9parse interact with parsebin, presenting downstream negotiation of
	  alignment to work. This revert to being stuck using frame alignment always,
	  which fortunately works with libvpx, though less efficient.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9329>

2025-05-07 14:02:05 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst/videoparsers/gstvp9parse.c:
	  vp9parse: Only show the last frame of a super frame
	  Only the last frame of a super frame should be displayed by default. When
	  converting from super frame to frame, mark all frames as decode only except the
	  last one. This fixes vp90-2-22-svc_1280x720_3.ivf conformance test with
	  stateless decoders such as VA.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8944>

2025-05-07 13:48:04 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst/videoparsers/gstvp9parse.c:
	  vp9parse: Always default to super-frame
	  Sort the list of structure before truncating so that we don't prefer
	  "frame"" alignment over "super-frame" in some cases.
	  Fixes vp90-2-22-svc_1280x720_3.ivf conformance test when using libvpx based
	  decoder.
	  Fixes #4371
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8944>

2025-05-07 10:29:10 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst/videoparsers/gstvp9parse.c:
	  vp9parse: Fix typo Aligment vs Alignment
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8944>

2025-06-23 15:28:30 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* gst/videoparsers/gsth264parse.c:
	* gst/videoparsers/gsth264parse.h:
	  h264parse: Forward LCEVC caps
	  This makes sure the parser exposes lcevc=true output caps if the demuxer
	  attached LCEVC data to video frames.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9321>

2024-11-20 18:46:54 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* tests/examples/meson.build:
	* tests/examples/vulkan/meson.build:
	* tests/examples/vulkan/vulkanenc.c:
	  examples: vulkan encoder test
	  Similar as d3d11 and va.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7197>

2024-12-10 19:14:12 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/vulkan/gstvulkan.c:
	* ext/vulkan/meson.build:
	* ext/vulkan/vkh264enc.c:
	* ext/vulkan/vkh264enc.h:
	  vulkanh264enc: add Vulkan H264 encoder
	  Add an element to encode h264 content using the vulkan API.
	  Co-authored-by: Stéphane Cerveau <scerveau@igalia.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7197>

2024-12-10 18:53:36 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/vulkan/base/gsth264encoder.c:
	* ext/vulkan/base/gsth264encoder.h:
	* ext/vulkan/meson.build:
	  vulkan: h264encoder: introduce base class
	  H.264 base class oriented for hardware accelerated encoders, such as Vulkan, VA
	  and others.
	  1. It can be parametrized for hardware limits, such as lists size, b-frames
	  supports, etc.
	  2. It produces a GOP structure map [IDR, R/I/B, ...)
	  3. It proposes parameters set and other strucures such as bitrate limites.
	  Subclases can modify those structures.
	  4. It calls the subclass encode virtual method implementation.
	  It doesn't handle rate control algorithms or other encoding quality mechanisms.
	  For a deeper introduction to the class there was a lighting talk in the GstConf
	  2024: <https://www.youtube.com/watch?v=-fQY54KHH38>
	  Co-authored-by: He Junyan <junyan.he@intel.com>
	  Co-authored-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
	  Co-authored-by: Stéphane Cerveau <scerveau@igalia.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7197>

2025-07-03 11:11:38 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkencoder-private.c:
	  vkencoder-private: free data on error
	  Co-authored-by: Stéphane Cerveau <scerveau@igalia.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7197>

2024-12-17 19:15:06 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkencoder-private.c:
	* gst-libs/gst/vulkan/gstvkencoder-private.h:
	  vkencoder-private: add gst_vulkan_encoder_rc_mode()
	  To get the updated rate control mode.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7197>

2024-12-09 17:59:30 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkencoder-private.c:
	  vkencoder-private: fix array layer for layered DPB
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7197>

2025-06-09 17:27:24 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkencoder-private.c:
	  vkencoder-private: free err when bailing
	  And log out the error message from the Vulkan call.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7197>

2025-05-29 13:20:59 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkdevice.c:
	  vulkan: ycbcr conversion extension got promoted in 1.1.0
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7197>

2025-07-02 22:38:41 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/tensordecoders/gstssdobjectdetector.c:
	  ssdobjectdetector: Use correct tensor data index for the scores
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9322>

2025-06-29 22:52:37 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2ringbuffer.cpp:
	  wasapi2: Fix various MinGW build warnings
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9307>

2025-06-29 20:45:51 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/AsyncOperations.h:
	* sys/wasapi2/gstwasapi2client.cpp:
	* sys/wasapi2/gstwasapi2client.h:
	* sys/wasapi2/gstwasapi2util.cpp:
	* sys/wasapi2/meson.build:
	  waapi2: Remove unused WinRT deps and implementations
	  Removing unused WinRT API based implementations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9307>

2025-06-29 01:46:44 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2object.cpp:
	* sys/wasapi2/gstwasapi2object.h:
	* sys/wasapi2/gstwasapi2ringbuffer.cpp:
	* sys/wasapi2/gstwasapi2ringbuffer.h:
	* sys/wasapi2/gstwasapi2sink.c:
	* sys/wasapi2/gstwasapi2src.c:
	* sys/wasapi2/meson.build:
	  wasapi2: Port to IMMDevice based device selection
	  Because of a couple of issues reported related to WinRT device
	  enumeration, porting to IMMDevice device id based device selection.
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4311
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3936
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9307>

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

	* sys/wasapi2/gstwasapi2activator.cpp:
	* sys/wasapi2/gstwasapi2activator.h:
	* sys/wasapi2/gstwasapi2client.cpp:
	* sys/wasapi2/gstwasapi2device.c:
	* sys/wasapi2/gstwasapi2device.cpp:
	* sys/wasapi2/gstwasapi2device.h:
	* sys/wasapi2/gstwasapi2enumerator.cpp:
	* sys/wasapi2/gstwasapi2enumerator.h:
	* sys/wasapi2/gstwasapi2util.cpp:
	* sys/wasapi2/gstwasapi2util.h:
	* sys/wasapi2/meson.build:
	* sys/wasapi2/plugin.cpp:
	  wasapi2: Implement IMMDeviceEnumerator based enumerator
	  ... and merge wasapi2{capture,render}deviceprovider into single
	  wasapi2deviceprovider since we can enumerate input/output audio
	  devices at once using IMMDeviceEnumerator
	  This is a preparation for complete porting to Win32 API
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9307>

2025-06-05 11:24:34 +0100  James Cowgill <james.cowgill@blaize.com>

	* sys/v4l2codecs/gstv4l2decoder.c:
	  v4l2codecs: Use prop_offset in gst_v4l2_decoder_install_properties
	  Install properties at the given offset as intended instead of at 0.
	  Currently there are no elements with any properties, so this has no
	  effect. This change is needed if any element adds properties in the
	  future.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9179>

2025-06-27 10:51:05 +0200  Edward Hervey <edward@centricular.com>

	  mpegtsdemux: Add property to disable skew corrections
	  This is for cases where:
	  * We *do* want to refer to the PCR stream to figure out global positioning, gap
	  detection, wrapover correction.
	  * But we do not want to apply any skew correction to the output
	  This is useful for cases where:
	  * the input stream has already been clock-corrected (for example with
	  mpegtslivesrc)
	  * or where the output doesn't require synchronization against a clock (ex: for
	  storage)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9301>

2025-06-27 10:06:34 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2codecs/gstv4l2codech265dec.c:
	  v4l2codecs: h265dec: Fail when frame cropping is needed while using DMABuf
	  It is not possible to do frame cropping when DMABuf caps feature is negotiated.
	  The VideoInfo size is zero, resulting in empty destination buffers, and video
	  convert library may not understand what the format actually is.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9305>

2025-06-27 10:00:37 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2codecs/gstv4l2codech265dec.c:
	  v4l2codecs: h265dec: Avoid cropping for zero top/left alignments
	  If the conformance window does not requires cropping the top or left of the
	  window, we can use GstVideoMeta to crop in a zero-copy fashion. If a copy
	  is needed, the frame copy can also handle it, and is a lot faster.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9305>

2025-06-27 09:49:00 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2codecs/gstv4l2codecav1dec.c:
	* sys/v4l2codecs/gstv4l2codech264dec.c:
	* sys/v4l2codecs/gstv4l2codech265dec.c:
	* sys/v4l2codecs/gstv4l2codecmpeg2dec.c:
	* sys/v4l2codecs/gstv4l2codecvp8dec.c:
	* sys/v4l2codecs/gstv4l2codecvp9dec.c:
	  v4l2codecs: dec: Remove has_videometa member
	  Now that the code is properly located, this member is not needed
	  anymore.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9305>

2025-06-27 09:37:06 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2codecs/gstv4l2codecav1dec.c:
	* sys/v4l2codecs/gstv4l2codech264dec.c:
	* sys/v4l2codecs/gstv4l2codech265dec.c:
	* sys/v4l2codecs/gstv4l2codecmpeg2dec.c:
	* sys/v4l2codecs/gstv4l2codecvp8dec.c:
	* sys/v4l2codecs/gstv4l2codecvp9dec.c:
	  v4l2codecs: dec: Move copy_frames logic inside decide_allocation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9305>

2025-02-06 22:49:35 +0900  Seungha Yang <seungha@centricular.com>

	* ext/webrtcdsp/meson.build:
	  webrtcdsp: Respect disabled feature option
	  Don't try to build this plugin if it's explicitly disabled
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8424>

2025-06-17 15:24:58 +0530  Vineet Suryan <vineet.suryan@collabora.com>

	* ext/onnx/README.md:
	  onnx: Use system installed Eigen to avoid hash mismatch failure
	  Eigen’s download for the commit referenced by ONNX Runtime v1.16.3 was
	  updated upstream, so the SHA-256 embedded in ORT’s CMake scripts no
	  longer matches and the build aborts with a hash-mismatch error.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9229>

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

	* ext/avtp/gstavtpvfdepaybase.c:
	  avtp: Fix memory leak
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9273>

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

	* ext/srt/gstsrtsrc.c:
	  srt: Fix warning about uninitialized memory
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9273>

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

	* gst-libs/gst/codecparsers/gstvc1parser.c:
	  vc1parser: Fix warning about printing uninitialized variables
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9273>

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

	* gst/proxy/gstproxysrc.c:
	  proxysrc: Fix order freeing pads
	  Free pads from bottom of parent tree first else with GST_DEBUG
	  enabled it would access freed memory printing object info.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9273>

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

	* tests/check/elements/avtpcvfpay.c:
	  avtpcvfpay: tests: Initialize codec memory
	  If GST_DEBUG was enabled we would print unintialized memory
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9273>

2025-06-30 11:56:49 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/analytics/gsttensor.c:
	  analytics: Fix docs of gst_tensor_check_type()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9311>

2025-06-26 18:19:27 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/analytics/gsttensor.c:
	* gst-libs/gst/analytics/gsttensormeta.c:
	  analytics: Fix transfer annotations of gst_tensor_check_type()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9293>

2025-06-25 09:30:15 -0600  David Monge <david.monge@ridgerun.com>

	* gst/mpegtsmux/tsmux/tsmuxstream.c:
	  mpegtsmux: fix double free caused by shared PMT descriptor
	  The PMT descriptor was owned by the stream object but also added to
	  the descriptors array without copying, leading to a double free and
	  core dump during cleanup
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9285>

2025-06-17 10:56:03 -0400  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/cuda/gstcudanvrtc.cpp:
	  cuda: Lower debug log level on nvrtc compilation failure
	  We have a fallback to compile with cubin and that compilation failure
	  might very well not be fatal.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9232>

2025-06-24 21:40:26 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/codecparsers/gsth266parser.c:
	* gst-libs/gst/codecparsers/gsth266parser.h:
	  h266parser: Fix overflow when parsing subpic_level_info
	  1. non_subpic_layers_fraction, ref_level_idc and ref_level_fraction_minus1
	  fields should not have the GST_H266_MAX_SUBLAYERS limitation.
	  2. Should check max_sublayers_minus1, no more than GST_H266_MAX_SUBLAYERS-1
	  Fixes ZDI-CAN-27381, CVE-2025-6663
	  Closes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4503
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9294>

2025-06-26 10:22:42 +0200  Johan Sternerup <johast@axis.com>

	* sys/hip/gsthipmemorycopy.cpp:
	  hip: Add missing #ifdef
	  So that it compiles without gstreamer-gl.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9289>

2025-06-12 12:45:57 +0200  Michael Olbrich <m.olbrich@pengutronix.de>

	* docs/plugins/gst_plugins_cache.json:
	* ext/wayland/gstwaylandsink.c:
	* ext/wayland/gstwaylandsink.h:
	* gst-libs/gst/wayland/gstwlwindow.c:
	* gst-libs/gst/wayland/gstwlwindow.h:
	  waylandsink: Add force-aspect-ratio property
	  Similar to and inspired by glimagesink, xvimagesink and others.
	  The waylandsink never transform the buffer in any way but delegates this to the
	  Wayland compositor with the Wayland buffer transform API.
	  Rotation and window size are already supported, so this just changes the video
	  surface geometry that is communicated to the Wayland compositor.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9210>

2025-06-25 16:24:44 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* ext/srt/gstsrtsink.c:
	* ext/srt/gstsrtsink.h:
	  srtsink: Fix header buffer filtering
	  Cleans up the code and fixes two issues:
	  - If there are no streamheaders in the caps but we have `HEADER`
	  buffers, it would run `gst_buffer_list_foreach` with `self->headers`
	  being `NULL`.
	  - The code forgot to unmap the buffer if it decided to ignore it.
	  Fixes: 0a562a92d7ee38d8919d1b802add84d3c93b59eb
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9284>

2025-06-01 00:02:16 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12graphicscapture.cpp:
	* sys/d3d12/gstd3d12graphicscapture.h:
	* sys/d3d12/plugin.cpp:
	  d3d12screencapturesrc: Fix OS handle leaks/random crash in WGC mode
	  Multiple DispatcherQueues per thread seems to be causing OS handle leak
	  and random crashes were observed. Instead of creating
	  thread/DispatcherQueue per GstD3D12GraphicsCapture object,
	  reuse only single thread and DispatcherQueue
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4351
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9153>

2025-05-23 07:12:40 -0400  Doug Nazar <nazard@nazar.ca>

	* tests/check/libs/vkvideoencodeh264.c:
	* tests/check/libs/vkvideoencodeh265.c:
	  vkvideoencodeh26x: ensure we call teardown() for each test
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9062>

2025-06-25 00:45:39 +0900  Seungha Yang <seungha@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* sys/hip/plugin.cpp:
	  hip: Add plugin docs
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923>

2025-06-09 23:09:46 +0900  Seungha Yang <seungha@centricular.com>

	* sys/hip/gsthipcompositor.cpp:
	* sys/hip/gsthipcompositor.h:
	* sys/hip/meson.build:
	* sys/hip/plugin.cpp:
	  hip: Add hipcompositor element
	  Feature-wise it's the same as cudacompositor
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923>

2025-06-09 22:11:36 +0900  Seungha Yang <seungha@centricular.com>

	* sys/hip/gsthiploader.cpp:
	* sys/hip/gsthiploader.h:
	  hip: Load memset symbols
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923>

2025-06-09 21:08:24 +0900  Seungha Yang <seungha@centricular.com>

	* sys/hip/gsthipmemorycopy.cpp:
	  hipmemorycopy: Add support for GL interop
	  Enable memory copy between HIP and GL
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923>

2025-06-03 19:51:47 +0900  Seungha Yang <seungha@centricular.com>

	* sys/hip/gsthip-interop-gl.h:
	* sys/hip/gsthip-interop.cpp:
	* sys/hip/gsthip-interop.h:
	* sys/hip/gsthip.h:
	* sys/hip/gsthip_fwd.h:
	* sys/hip/meson.build:
	  hip: Add GstHipGraphicsResource object
	  hipGraphicsResource_t wrapper object for graphics api interop
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923>

2025-06-03 16:56:09 +0900  Seungha Yang <seungha@centricular.com>

	* sys/hip/gsthiploader-gl.h:
	* sys/hip/gsthiploader.cpp:
	* sys/hip/gsthiploader.h:
	* sys/hip/meson.build:
	* sys/hip/stub/cudaGL.h:
	* sys/hip/stub/driver_types.h:
	* sys/hip/stub/hip/hip_gl_interop.h:
	* sys/hip/stub/hip/hip_runtime_api.h:
	  hip: Load GL interop related symbols
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923>

2025-05-14 14:56:52 +0900  Seungha Yang <seungha@centricular.com>

	* sys/hip/gsthipconverter.cpp:
	  hip: Pass GPU arch to kernel compile option args
	  Pass current GPU arch to compile option instead of relying on auto
	  detection
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923>

2025-05-14 14:25:40 +0900  Seungha Yang <seungha@centricular.com>

	* meson.options:
	* sys/hip/gsthipconverter.cpp:
	* sys/hip/kernel/collect_ptx_headers.py:
	* sys/hip/kernel/meson.build:
	* sys/hip/meson.build:
	  hip: Add support for NVIDIA kernel precompile
	  ... with "hip-nvidia-precompile" and "hip-nvcc-arch" build options
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923>

2025-05-14 13:17:00 +0900  Seungha Yang <seungha@centricular.com>

	* meson.options:
	* sys/hip/gsthipconverter.cpp:
	* sys/hip/kernel/collect_hsaco_headers.py:
	* sys/hip/kernel/converter-unpack.cu:
	* sys/hip/kernel/converter.cu:
	* sys/hip/kernel/meson.build:
	* sys/hip/meson.build:
	  hip: Add support for AMD kerenl precompile
	  Adding "hip-amd-precompile" build option. If enabled, AMD kernels
	  will be precompiled at build time. Also "hip-hipcc-arch" build option
	  (corresponding to --offload-arch hipcc option) is added
	  so that user can specify target GPU arch instead of auto-detection by hipcc
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923>

2025-05-12 19:45:55 +0900  Seungha Yang <seungha@centricular.com>

	* sys/hip/gsthipmemorycopy.cpp:
	* sys/hip/gsthipmemorycopy.h:
	* sys/hip/meson.build:
	* sys/hip/stub/cudaD3D11.h:
	* sys/hip/stub/cudaGL.h:
	  hip: Add support for memory copy between GstCuda and GstHip
	  Handle CUDA <-> HIP memory copy in hipupload and hipdownload elements
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923>

2025-05-07 06:32:11 +0900  Seungha Yang <seungha@centricular.com>

	* sys/hip/gsthip-enums.cpp:
	* sys/hip/gsthip-enums.h:
	* sys/hip/gsthip.h:
	* sys/hip/gsthipbasefilter.cpp:
	* sys/hip/gsthipconverter.cpp:
	* sys/hip/gsthipdevice.cpp:
	* sys/hip/gsthipdevice.h:
	* sys/hip/gsthiploader.cpp:
	* sys/hip/gsthiploader.h:
	* sys/hip/gsthipmemory.cpp:
	* sys/hip/gsthiprtc.cpp:
	* sys/hip/gsthiprtc.h:
	* sys/hip/gsthiputils.cpp:
	* sys/hip/gsthiputils.h:
	* sys/hip/kernel/converter.cu:
	* sys/hip/meson.build:
	* sys/hip/plugin.cpp:
	* sys/hip/stub/cuda.h:
	* sys/hip/stub/driver_types.h:
	* sys/hip/stub/hip/nvidia_hip_runtime_api.h:
	  hip: Add support for NVIDIA
	  Adding HIP <-> CUDA translation layer like the HIP SDK does
	  but uses dlopen() for CUDA as well
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923>

2025-05-06 20:16:29 +0900  Seungha Yang <seungha@centricular.com>

	* sys/hip/gsthip.h:
	* sys/hip/gsthipconverter.cpp:
	* sys/hip/gsthipdevice.cpp:
	* sys/hip/gsthiploader.cpp:
	* sys/hip/gsthiploader.h:
	* sys/hip/gsthipmemory.cpp:
	* sys/hip/gsthiprtc.cpp:
	* sys/hip/gsthiprtc.h:
	* sys/hip/gsthiputils.cpp:
	* sys/hip/meson.build:
	* sys/hip/plugin.cpp:
	* sys/hip/stub/hip/driver_types.h:
	* sys/hip/stub/hip/hip_runtime.h:
	* sys/hip/stub/hip/hip_runtime_api.h:
	* sys/hip/stub/hip/hiprtc.h:
	* sys/hip/stub/hip/texture_types.h:
	  hip: Remove build-time SDK dependency
	  Use dlopen at runtime
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923>

2025-04-26 03:24:37 +0900  Seungha Yang <seungha@centricular.com>

	* meson.options:
	* sys/hip/gsthip.h:
	* sys/hip/gsthip_fwd.h:
	* sys/hip/gsthipbasefilter.cpp:
	* sys/hip/gsthipbasefilter.h:
	* sys/hip/gsthipbufferpool.cpp:
	* sys/hip/gsthipbufferpool.h:
	* sys/hip/gsthipconverter.cpp:
	* sys/hip/gsthipconverter.h:
	* sys/hip/gsthipconvertscale.cpp:
	* sys/hip/gsthipconvertscale.h:
	* sys/hip/gsthipdevice.cpp:
	* sys/hip/gsthipdevice.h:
	* sys/hip/gsthipmemory.cpp:
	* sys/hip/gsthipmemory.h:
	* sys/hip/gsthipmemorycopy.cpp:
	* sys/hip/gsthipmemorycopy.h:
	* sys/hip/gsthiprtc.cpp:
	* sys/hip/gsthiprtc.h:
	* sys/hip/gsthiputils.cpp:
	* sys/hip/gsthiputils.h:
	* sys/hip/kernel/converter-unpack.cu:
	* sys/hip/kernel/converter.cu:
	* sys/hip/meson.build:
	* sys/hip/plugin.cpp:
	* sys/meson.build:
	  hip: Add AMD HIP plugin
	  Adding hipupload, hipdownload, and hipconvert family elements
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923>

2025-06-21 07:12:29 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/analyticsoverlay/gstobjectdetectionoverlay.c:
	  analyticsoverlay: Fix memory leak
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9266>

2025-06-21 07:11:29 -0400  Doug Nazar <nazard@nazar.ca>

	* tests/check/elements/dashsink.c:
	  dashsink: test: Minor cleanups
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9266>

2025-06-21 07:10:54 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/dash/gstdashsink.c:
	  dashsink: Fix memory leak
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9266>

2025-06-23 10:22:57 +1000  Matthew Waters <matthew@centricular.com>

	* sys/decklink/gstdecklink.cpp:
	* sys/decklink/gstdecklink.h:
	* sys/decklink/gstdecklinkvideosink.cpp:
	  decklink/clock: remove clock_offset
	  It is completely unused and only ever initialized to 0.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9267>

2025-06-18 14:20:32 +1000  Matthew Waters <matthew@centricular.com>

	* sys/decklink/gstdecklinkvideosink.cpp:
	* sys/decklink/gstdecklinkvideosink.h:
	  decklink: calculate internal using values closer to the current clock times
	  In a previous version of the clock time conversion code, scheduled playback used
	  to be started (from 0) when transitioning to PLAYING and stopped when
	  transitioning PLAYING->PAUSED. This worked fine when converting running times
	  using the internal clock.  However, now the decklink clock will produce values
	  that are monotonically increasing and do not reset to 0 at the same moments as
	  running time anymore. This means that the clock adjustments could attempt to
	  convert a small running time based on a large clock time e.g. after pausing
	  for many hours. As the adjustment code is a simple linear interpolation based on
	  the current clock times (large) using the provided value (small), the small
	  differences in the rate could result in very large differences in the
	  output time.
	  Fix by instead using both internal and external clock times based on the values
	  that gst_clock_get_calibration() will return. By doing so, small changes in the
	  rate calculations between the internal and external clock times will not result
	  in potentially large differences in the output internal time from
	  gst_clock_unadjust_with_calibration().
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4197
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9267>

2025-06-13 17:23:21 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkupload.c:
	  vulkanupload: refactor frame copy in a single function
	  Avoiding code duplication
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9222>

2025-06-13 15:24:27 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkupload.c:
	  vulkanupload: use gst_video_frame_copy() for VulkanBuffer
	  There's no need of a custom copy.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9222>

2025-06-18 14:04:14 +0200  Edward Hervey <edward@centricular.com>

	* gst/mpegtsdemux/tsdemux.c:
	  tsdemux: Allow access unit parsing failures
	  * Refactor the various Access Unit extraction calls into a single function
	  * Allow the access unit parsing to fail, but emit a warning
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9246>

2025-06-16 18:38:30 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/androidmedia/gstamc-codeclist.h:
	* sys/androidmedia/gstamc.c:
	* sys/androidmedia/gstamc.h:
	* sys/androidmedia/jni/gstamc-codeclist-jni.c:
	  amc: Overhaul hw-accelerated video codecs detection
	  Android 10 (API 29) added support for isHardwareAccelerated() to
	  MediaCodecInfo to detect whether a particular MediaCodec is backed by
	  hardware or not. We can now use that to ensure that the video hw-codec
	  is PRIMARY+1 on Android, since using a software codec for video is
	  simply not feasible most of the time.
	  If we're not able to detect isHardwareAccelerated(), perhaps because
	  the Android API version is too old, we try to use the codec name as
	  a fallback.
	  Also rank PRIMARY+1 the c2.android c2.exynos and c2.amlogic audio
	  codecs alongside OMX.google, because they are known-good.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9225>

2025-06-17 03:32:24 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/androidmedia/gstamc.c:
	  amc: Log under GST_FIXME for audio encoders
	  We don't support audio encoders yet, so log that correctly.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9225>

2025-06-16 18:36:31 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/androidmedia/gstamc.c:
	  amc: Improve codec registration logging
	  Most of the messages can be printed with INFO threshold since they are
	  only printed on plugin registration.
	  Fix printing of codec caps, since GST_PTR_FORMAT truncates the output
	  in almost every case that I saw.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9225>

2025-06-16 18:34:39 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/androidmedia/gstamc.c:
	  amc: Print error messages when registering plugins
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9225>

2025-02-20 21:59:31 +0000  Ben Butterworth <24711048+ben-xD@users.noreply.github.com>

	* gst/mpegtsdemux/tsdemux.c:
	  mpegts: handle MPEG2-TS with KLV metadata safely by preventing out of bounds
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3896
	  @slomo, as requested on https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3896#note_2780065
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8529>

2025-06-13 12:35:17 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkupload.c:
	  vkupload: use gst_buffer_find_memory() to select memory
	  We never implemented correctly the selection of memories in a buffer given the
	  plane.
	  This patch uses gst_buffer_find_memory() for that. The offset is checked via the
	  video meta either in the input and output buffers, or the default offset given
	  the format and size.
	  This patch also requests the video meta option for the output buffers.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9219>

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

	* gst-libs/gst/vulkan/gstvkimagebufferpool.c:
	  vkimagebufferpool: set video meta to buffers if requested
	  This patch adds the possibility to attach video metas to allocated buffers if
	  API users request that option.
	  The main reason to add this meta is for the future usage of
	  gst_buffer_find_memory(), where the requested offset determines the memory
	  index.
	  In the case of multi-memory Vulkan images the offset of every component is
	  larger than the default offset determined by the format and frame size, because
	  of the buffer minimum size and memory alignment determined by the used driver.
	  Then, the offset is set in the buffer video meta.
	  In the case of single memory Vulkan images, the default offset is set in the
	  video meta.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9219>

2025-06-13 11:27:49 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkimagebufferpool.c:
	  vkimagebufferpool: remove unused variable
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9219>

2024-07-26 14:23:10 +1000  Matthew Waters <matthew@centricular.com>

	* ext/webrtc/gstwebrtcbin.c:
	  webrtcbin: disconnect signal ICE handlers on dispose
	  It is entirely possible that the in progress may still provide some state
	  updates until the ICE object is destroyed, these state updates should
	  not really be done when webrtcbin is in the process of destroying itself
	  and access freed data.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9216>

2025-06-12 15:34:53 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* gst-libs/gst/vulkan/gstvkerror.c:
	  vkerror: add invalid_video_std_parameters message
	  Add string to handle error related to the
	  codec standard parameters.
	  <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9212>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9212>

2025-06-12 01:07:01 +0900  Seungha Yang <seungha@centricular.com>

	* tests/examples/d3d12/d3d12swapchainsink-win32.cpp:
	* tests/examples/d3d12/meson.build:
	  examples: d3d12swapchainsink: Add uv-remap/redraw example
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9209>

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

	* sys/d3d12/gstd3d12swapchainsink.cpp:
	  d3d12swapchainsink: Add uv-remap and redraw action signal
	  New uv-remap signal can be used for UV coordinate remap operation
	  in videosink, and redraw signal can allow updating view even in paused
	  state
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9209>

2025-06-12 20:15:15 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3d12/gstd3d12converter-private.h:
	* gst-libs/gst/d3d12/gstd3d12converter.cpp:
	  d3d12converter: Add support multiple UV remap in a single path
	  Add private methods for multiple UV remap operation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9209>

2025-04-08 16:12:46 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* gst-libs/gst/codecparsers/gstav1parser.c:
	* gst-libs/gst/codecparsers/gstav1parser.h:
	* sys/nvcodec/gstnvav1dec.cpp:
	* sys/v4l2codecs/gstv4l2codecav1dec.c:
	  parser: fix spelling of GstAV1SegmentationParams
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8795>

2025-06-12 11:09:42 -0400  Xavier Claessens <xclaessens@netflix.com>

	* ext/svtjpegxs/meson.build:
	  wraps: Add svtjpegxs from wrapdb
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9214>

2025-06-12 11:45:33 -0300  L. E. Segovia <amy@amyspark.me>

	* ext/curl/gstcurlhttpsrc.c:
	  curl: Recover missing comment
	  See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8974#note_2955585
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9213>

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

	* ext/webrtc/gstwebrtcbin.c:
	  webrtcbin: Include all accepted media formats in SDP answers
	  Until this patch only the first format was added.
	  Fixes #4458
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9117>

2025-06-10 22:17:46 +1000  Matthew Waters <matthew@centricular.com>

	* sys/decklink/gstdecklinkvideosink.cpp:
	  decklinkvideosink: show preroll frame correctly
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4254
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9199>

2024-11-13 11:03:30 +0100  Robert Mader <robert.mader@collabora.com>

	* gst-libs/gst/wayland/meson.build:
	  wayland: Add support for local protocols
	  This proved to be helpful for previous protocol experiments, so let's
	  upstream it. Inspired by the corresponding code in Weston.
	  Protocols need to be placed in a `protocols` subdirectory and can be
	  declared in the following way in `meson.build`:
	  ```
	  ['color-management-v1', 'internal' ],
	  ```
	  Note the `v1` being part of the name.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9186>

2024-05-10 18:24:06 +0200  Robert Mader <robert.mader@collabora.com>

	* gst-libs/gst/wayland/gstwldisplay.c:
	* gst-libs/gst/wayland/gstwldisplay.h:
	* gst-libs/gst/wayland/gstwlwindow.c:
	  wayland: Add basic colorimetrie support
	  Using the Wayland color-management and color-representation protocols.
	  The implementation queries supported values from the compositors and tries
	  to convert them into GstVideoColorimetry values. It currently *does not*
	  pass these upstream to decoders etc. as GstCaps for negotiation.
	  On the Wayland side it uses named transfer functions, named primaries,
	  matrices and ranges. The straight alpha mode is also set if supported
	  by the compositor.
	  On setting caps it translates the GstVideoColorimetry from the GstVideoInfo
	  back to into a Wayland parametric image description and color representation
	  for the video surface if possible. If a colorimetry is not fully
	  support, we bail out and if wayland objects already exist they get reset or
	  deleted.
	  Note that not all GstVideoColorimetry values are implemented yet.
	  Useful debug options: GST_DEBUG=wlwindow:4,wldisplay:4
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6830>

2024-12-11 15:40:24 +0100  Robert Mader <robert.mader@collabora.com>

	* gst-libs/gst/wayland/gstwlwindow.c:
	  wayland: wlwindow: Use GstWlWindow debug category
	  As probably intended - and Demote frame_redraw_cb log to debug
	  to make it less noisy.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6830>

2025-05-15 13:47:35 +0200  Robert Mader <robert.mader@collabora.com>

	* gst-libs/gst/wayland/gstwlbuffer.h:
	* gst-libs/gst/wayland/gstwldisplay.h:
	* gst-libs/gst/wayland/gstwlwindow.h:
	  wayland: Turn wl objects into GstObjects
	  For better logging and locking support.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6830>

2024-11-12 20:19:35 +0100  Robert Mader <robert.mader@collabora.com>

	* gst-libs/gst/wayland/meson.build:
	  wayland: Add color protocols
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6830>

2024-12-13 19:08:30 +1100  Jan Schmidt <jan@centricular.com>

	* gst/mpegtsdemux/tsdemux.c:
	  tsdemux: Send new-segment before GAP
	  If adding a sparse stream and sending a gap event to bring it
	  up to speed, make sure to send the new segment event first
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8143>

2025-06-16 13:39:55 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* tests/check/elements/vkupload.c:
	* tests/check/meson.build:
	  test: vulkanupload unit test
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9218>

2025-06-13 14:36:25 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkupload.c:
	  vulkanupload: fix regression for uploading VulkanBuffer
	  Merge request !5651 introduced a regression for uploading VulkanBuffer. It can
	  be verified by
	  gst-launch-1.0 videotestsrc ! video/x-raw, format=NV12 ! vulkanupload ! \
	  video/x-raw\(memory:VulkanBuffer\) ! fakesink
	  Nobody has complained about this regression, so we assume it's a very niche
	  use-case.
	  This patch solve the regression by instantiating a different buffer pool
	  depending on the output cap features, and configuring it accordingly.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9218>

2025-06-04 17:52:01 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxclient.cpp:
	* ext/onnx/gstonnxclient.h:
	* ext/onnx/gstonnxinference.cpp:
	  onnx: Also implement stop to clean up session
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9176>

2025-03-05 17:47:41 -0500  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.cpp:
	  onnxinference: Clean up session creation logic
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9176>

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

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

2025-06-10 12:53:05 +0100  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/transcoder/gsttranscoder.c:
	  transcoder: Fix uritranscodebin reference handling
	  Make sure the reference is not floating, because the get_pipeline function
	  returns a transfer-full reference.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9198>

2025-05-13 12:22:08 +0000  L. E. Segovia <amy@centricular.com>

	* ext/curl/gstcurlhttpsrc.c:
	  curl: Fix wrong format specifier for macOS
	  > ../ext/curl/gstcurlhttpsrc.c:1331:11: error: format specifies type
	  > unsigned long long' but the argument has type 'curl_off_t' (aka 'long') [-Werror,-Wformat]
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8974>

2025-05-09 16:45:53 +0200  Stefan Andersson <stefana@axis.com>

	* gst/videoparsers/gsth264parse.c:
	* gst/videoparsers/gsth265parse.c:
	* gst/videoparsers/gsth266parse.c:
	* tests/check/elements/h264parse.c:
	* tests/check/elements/h265parse.c:
	* tests/check/elements/h266parse.c:
	  h26xparse: Drop NAL units that can't be parsed using AU alignment
	  Change so that the handling of NAL unit that can't be parsed when using
	  AU alignment is the same as when using NAL alignment, ie drop the data
	  if it can't be parsed.
	  If the AU contains more than one NAL unit any correctly parsed NAL unit
	  in the AU is kept.
	  Fixes #4436
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8976>

2025-05-28 14:19:46 +0200  Stefan Andersson <stefana@axis.com>

	* gst/videoparsers/gsth264parse.c:
	* gst/videoparsers/gsth265parse.c:
	* gst/videoparsers/gsth266parse.c:
	  h26xparse: Bail out if ...finish_frame returns an error
	  For NAL alignment bail out if gst_base_parse_finish_frame returns a flow
	  error.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8976>

2025-05-26 16:55:43 +0200  Stefan Andersson <stefana@axis.com>

	* gst/videoparsers/gsth264parse.c:
	* gst/videoparsers/gsth265parse.c:
	* gst/videoparsers/gsth266parse.c:
	  h26xparse: Prevent assert hitting when discarding NAL unit
	  If using NAL aligment and only dropping part of the AU, the size
	  argument given to gst_base_parse_finish_frame was wrong and this assert
	  in gst_base_parse_finish_frame hit
	  'gst_adapter_available (parse->priv->adapter) >= size' failed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8976>

2025-06-03 23:05:18 -0400  Daniel Morin <daniel.morin@collabora.com>

	* ext/onnx/gstonnxclient.cpp:
	* ext/onnx/gstonnxclient.h:
	* ext/onnx/gstonnxinference.cpp:
	  onnx: produce tensor caps
	  - Add tensor description to srcpads caps
	  onnx: formatting
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9172>

2025-06-05 16:47:02 -0400  Daniel Morin <daniel.morin@collabora.com>

	* gst-libs/gst/analytics/gsttensor.h:
	  gsttensor: adding new datatypes
	  - Adding datatype for string, boolean, complex numbers and special floating
	  point numbers.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9172>

2025-06-02 16:00:36 +0530  raghu447 <raghavendra.rao@collabora.com>

	* gst-libs/gst/analytics/gsttensor.c:
	* gst-libs/gst/analytics/gsttensor.h:
	* gst-libs/gst/analytics/gsttensormeta.c:
	* gst-libs/gst/analytics/gsttensormeta.h:
	* gst/tensordecoders/gstfacedetectortensordecoder.c:
	  analytics: add a convenient API to retrieve tensor
	  use the API in facedetector tensor decoding
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9162>

2025-06-06 18:34:02 +0530  raghu447 <raghavendra.rao@collabora.com>

	* ext/tflite/gsttfliteinference.c:
	  tfliteinference: initialize means and stddevs arrays appropriately
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9189>

2025-06-06 16:24:19 +0200  Jakub Adam <jakub.adam@collabora.com>

	* ext/soundtouch/meson.build:
	  meson: fix building -bad tests with disabled soundtouch
	  Fixes an error from Meson:
	  ../subprojects/gst-plugins-bad/tests/validate/meson.build:16:93: ERROR:
	  Unknown variable "soundtouch_dep"
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9190>

2025-05-12 11:31:32 +0100  Glyn Davies <glyn@solet.io>

	* gst/mpegtsmux/tsmux/tsmuxstream.c:
	  mpegtsmux: Corrections around Teletext handling
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8966>

2025-05-22 10:11:36 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* ext/lcevcdecoder/gstlcevcdec.c:
	  lcevcdec: Check for errors after receiving all enhanced and base pictures
	  The LCEVC_ReceiveDecoderBase() and LCEVC_ReceiveDecoderPicture() APIs from the
	  LCEVCdec SDK can return LCEVC_Error if the enhancement data is wrong. This
	  change improves the lcevcdec element to check for those errors and stop the
	  pipeline when that happens.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9057>

2025-06-04 17:56:39 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d11/gstd3d11decoder.cpp:
	  d3d11decoder: Use interlace info in input caps
	  ... instead of relying on only parsed values from bitstream.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9170>

2025-06-04 17:55:51 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12decoder.cpp:
	  d3d12decoder: Use interlace info in input caps
	  ... instead of relying on only parsed values from bitstream.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9170>

2025-06-04 03:49:19 +0900  Seungha Yang <seungha@centricular.com>

	* sys/nvcodec/gstnvdecoder.cpp:
	* sys/nvcodec/gstnvh265dec.cpp:
	  nvdec: Use interlace info in input caps
	  ... instead of relying on only parsed values from bitstream.
	  Also parses HEVC specific interlace information
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9170>

2025-03-05 15:51:05 +0530  raghu447 <raghavendra.rao@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/tensordecoders/gstfacedetectortensordecoder.c:
	* gst/tensordecoders/gstfacedetectortensordecoder.h:
	* gst/tensordecoders/gsttensordecoders.c:
	* gst/tensordecoders/meson.build:
	  tensordecoder: add facedetector tensor decoding support
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8600>

2025-06-02 00:59:52 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d11/gstd3d11compositor.cpp:
	  d3d11compositor: Fix negative position handling
	  Negative positions should be cropped out
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9158>

2025-06-01 23:38:27 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12compositor.cpp:
	  d3d12compositor: Fix negative position handling
	  Negative positions should be cropped out
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4249
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9158>

2025-06-01 22:55:53 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12compositor.cpp:
	  d3d12compositor: Fix critical warnings
	  compositor will record rendering commands using multiple threads
	  (i.e., blending commands are recoded using thread pool, and
	  background one is recorded on aggregate thread).
	  And there can be temporary refcount increase (so not writable).
	  Updates fence once all rendering commands have been submitted.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9157>

2025-06-01 22:50:30 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3d12/gstd3d12converter-unpack.cpp:
	  d3d12converter: Fix fallback upload process
	  Fixing typo
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9157>

2025-05-30 12:41:06 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/bayer/gstrgb2bayer.c:
	  rgb2bayer: Use gst_structure_has_name() instead of g_str_equal() for simplicity
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9146>

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

	* gst/bayer/gstbayer2rgb.c:
	  bayer2rgb: Use gst_structure_has_name() instead of strcmp() for clarity
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9146>

2025-05-30 12:33:09 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/bayer/gstbayer2rgb.c:
	  bayer2rgb: Fix RGB stride calculation
	  This fixes a regression introduced in 4c92d4096e9.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9146>

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

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

2025-05-28 20:59:24 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkinstance.c:
	  vulkan: add best practices validation feature
	  It can be disabled in run-time via the environment variable
	  VK_KHRONOS_VALIDATION_VALIDATE_BEST_PRACTICES=false
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9119>

2025-05-28 20:39:12 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkinstance.c:
	  vulkan: remove vkDebugReportMessage() loading
	  Since it's not used.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9119>

2025-05-28 20:13:07 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkinstance.c:
	  vulkan: use VK_EXT_debug_utils if available
	  Nowadays VK_EXT_debug_report is considered deprecated and it's recommended to
	  replace it it VK_EXT_debug_utils, which offer a way to ignore messages
	  considered false positives.
	  The approach is to try the extension first, if available at compilation time, if
	  not or if it fails to load, VK_EXT_debug_report fallbacks.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9119>

2025-05-30 00:07:25 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12dxgicapture.cpp:
	  d3d12screencapturesrc: Fix desktop handle leak
	  Calling CloseDesktop() on a handle that is currently in use will fail.
	  Close the handle after current desktop handle change
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9136>

2025-05-29 14:30:42 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/dvbsuboverlay/gstdvbsuboverlay.c:
	  dvbsuboverlay: Actually make use of subtitle running time instead of using PTS
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4446
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9123>

2025-05-27 13:47:27 -0400  Daniel Morin <daniel.morin@collabora.com>

	* gst-libs/gst/webrtc/rtpsender.c:
	  rtpsender: fix 'priority' GValue get/set
	  - 'priority' is declared as enum, we need to use g_value_[get|set]_enum()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9105>

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

	* gst/mpegtsdemux/tsdemux.c:
	  tsdemux: Ensure AC3 descriptor is long enough before accessing
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9044>

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

	* ext/wpe/gstwpesrcbin.cpp:
	* gst/rist/gstristsink.c:
	* gst/sdp/gstsdpsrc.c:
	  gstreamer: Ensure we free the template
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9044>

2025-05-26 19:07:22 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/play/gstplay.c:
	  play: Improve stream selection
	  - Unset stream ids if a collection does not contain them
	  - Automatically select a default stream of a type if the stream type is
	  enabled but no stream is selected yet when receiving the stream collection
	  - Warn if there's a collection update via streams-selected and if there are
	  unexpected streams being selected, or actually selected streams not being
	  found
	  - Improve debug output a bit
	  Among other things this also makes sure that we don't forget a selected stream
	  id when disabling a track so that when enabling it again later the same one can
	  be enabled again.
	  See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4344
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9081>

2025-05-27 00:03:05 +0900  Seungha Yang <seungha@centricular.com>

	* sys/nvcodec/gstnvencoder.cpp:
	  nvencoder: Fix GstNvEncTask leak on non-flow-ok return
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9078>

2025-05-26 23:17:15 +0900  Seungha Yang <seungha@centricular.com>

	* sys/nvcodec/gstnvencoder.cpp:
	  nvencoder: Fix GstVideoCodecFrame leak on non-flow-ok return
	  ... and use gst_video_encoder_release_frame() to drop frame
	  instead of gst_video_encoder_finish_frame()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9078>

2025-05-24 14:42:32 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst/codecalpha/gstalphacombine.c:
	  alphacombine: Fix seeking after EOS
	  The alpha_eos state was not being reset on flush-stop, as a side effect
	  flushing seek after EOS did not work.
	  Fixes #4442
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9069>

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

	* gst-libs/gst/d3d12/gstd3d12memory.cpp:
	  d3d12memory: Allow set_fence() only against writable memory
	  Setting a fence to memory should only be allowed on the side
	  that modified that memory or has the right to modify it
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9075>

2025-05-26 18:25:58 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3d12/meson.build:
	  d3d12: Enable GIR for MSVC build as well
	  cerbero issue should be fixed by
	  https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1824
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9076>

2025-05-26 18:24:01 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3d12/gstd3d12memory.h:
	  d3d12memory: Make D3D12 map flags inspectable
	  GIR scanner does not seem to be able to infer integer value
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9076>

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

	* gst/bayer/gstbayerorc-dist.c:
	* gst/bayer/gstbayerorc-dist.h:
	* gst/fieldanalysis/gstfieldanalysisorc-dist.c:
	* gst/fieldanalysis/gstfieldanalysisorc-dist.h:
	* gst/gaudieffects/gstgaudieffectsorc-dist.c:
	* gst/gaudieffects/gstgaudieffectsorc-dist.h:
	* gst/videofilters/gstscenechangeorc-dist.c:
	* gst/videofilters/gstscenechangeorc-dist.h:
	* meson.build:
	  orc: Update pregenerated files
	  Fixes -Wtype-limits on gstbayer.orc when emulating convuuslw.
	  Regenerated Orc files use OrcOnce, which increases the minimum version to 0.4.34.
	  See https://gitlab.freedesktop.org/gstreamer/orc/-/merge_requests/212 (ORC_MIN)
	  See https://gitlab.freedesktop.org/gstreamer/orc/-/merge_requests/238 (AVX2 convussql)
	  See https://gitlab.freedesktop.org/gstreamer/orc/-/commit/8a86d517530ce79c0ae47e37d768107c57ab31c4 (OrcOnce)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9067>

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

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

2025-03-30 01:43:33 -0400  Doug Nazar <nazard@nazar.ca>

	* tests/check/elements/dash_mpd.c:
	  dash: mpdclient: Re-enable test now that mpdclient is fixed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8734>

2025-03-30 01:41:10 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/dash/gstmpdclient.c:
	  dash: mpdclient: Don't pass terminating NUL to adapter
	  libxml2 will complain if it detects any characters after the valid
	  XML, including a NUL byte.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8734>

2025-05-23 09:16:00 +0200  Jan Schmidt <jan@centricular.com>

	* sys/applemedia/vtenc.c:
	  vtenc: Use strlcpy instead of strncpy
	  Silences a compiler warning, and there's no cross-platform
	  consideration as this plugin is apple-only
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9058>

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

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

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

	* ext/qt6d3d11/meson.build:
	* meson.options:
	* tests/examples/qt6d3d11/meson.build:
	  meson: Fix qt detection for qt6d3d11 plugin
	  This now matches the code for the qml6gl plugin.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9046>

2025-05-20 22:32:36 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3d12/meson.build:
	  d3d12: Generate gir file
	  Prerequisite for rust binding
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9053>

2025-05-22 19:12:03 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3d12/gstd3d12device.cpp:
	* gst-libs/gst/d3d12/gstd3d12memory.cpp:
	  d3d12: Fix docs annotations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9053>

2025-05-14 20:07:52 +0200  Robert Mader <robert.mader@collabora.com>

	* gst-libs/gst/wayland/gstwlvideoformat.c:
	  wayland: Remove custom format mapping
	  As of Gst >= 1.24 we can just use GstVideoInfoDmaDrm APIs. Note
	  that SHM formats match DRM ones with only two exceptions.
	  No functional changes intended (for backporting) apart from
	  supporting a few more formats - those present in video-info-dma.c
	  but missing in the removed mapping.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8983>

2025-05-16 05:02:37 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/tflite/meson.build:
	  tflite: Also look for C symbols in libtensorflow-lite
	  For some builds, there isn't a separate C library such as
	  some Yocto builds of tflite.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8523>

2025-05-09 20:19:27 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/tflite/VX/vsi_npu_custom_op.h:
	  tflite: Make VSI header build in C code
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8523>

2025-04-06 12:05:48 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/tflite/gsttflite.c:
	* ext/tflite/gsttfliteedgetpuinference.c:
	* ext/tflite/gsttfliteedgetpuinference.h:
	* ext/tflite/gsttfliteinference.c:
	* ext/tflite/gsttfliteinference.h:
	* ext/tflite/meson.build:
	* meson.options:
	  tflite: Add Coral EdgeTPU inference element
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8523>

2024-03-09 13:42:22 -0300  Denis Shimizu <denis.shimizu@collabora.com>

	* ext/meson.build:
	* ext/tflite/README.md:
	* ext/tflite/VX/vsi_npu_custom_op.cc:
	* ext/tflite/VX/vsi_npu_custom_op.h:
	* ext/tflite/gstml.h:
	* ext/tflite/gsttflite.c:
	* ext/tflite/gsttfliteinference.c:
	* ext/tflite/gsttfliteinference.h:
	* ext/tflite/meson.build:
	* ext/tflite/modelinfo.c:
	* ext/tflite/modelinfo.h:
	* meson.options:
	  tflite: Add TensorFlow Lite element
	  A new element wrapping the LiteRT (aka TensorFlow Lite) inference engine.
	  It currently supports only CPU.
	  Co-authored-by: Daniel Morin <daniel.morin@collabora.com>
	  Co-authored-by: Denis Shimizu <denis.shimizu@collabora.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8523>

2024-11-22 21:32:18 -0500  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/analytics/gsttensor.c:
	* gst-libs/gst/analytics/gsttensor.h:
	  tensor: Add helper function to stringify a tensor data type
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8523>

2025-05-19 20:38:56 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3d12/meson.build:
	  d3d12: Fix gstreamer-full subproject build with gcc
	  Since default option "cpp_std=c++14" is not applied automatically
	  in case that gstreamer is used as a meson subproject, specify
	  cpp_std option explicitly
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9030>

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

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

2025-05-13 17:35:14 +0300  Jordan Petridis <jordan@centricular.com>

	* tests/check/gst-plugins-bad.supp:
	  bad: Add more variants for an srt suppression
	  Followup to 087cb87d27e268d55a8d152690870ac4a2b3e166
	  These are some more variants of the same issue we
	  already suppressed in the commit above.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8979>

2025-05-12 16:30:10 +0300  Jordan Petridis <jordan@centricular.com>

	* gst-libs/gst/opencv/meson.build:
	  opencv: import as system dep
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8979>

2025-05-12 16:29:48 +0300  Jordan Petridis <jordan@centricular.com>

	* gst/bayer/gstbayer2rgb.c:
	  bad: Avoid gcc false positive about variable initialization
	  In gstbayer2rgb the dtmp always gets initialized when
	  we check for bayersrc16.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8979>

2025-05-14 14:36:49 -0400  Doug Nazar <nazard@nazar.ca>

	* gst/videoframe_audiolevel/gstvideoframe-audiolevel.c:
	  videoframe-audiolevel: Switch to GST_AUDIO_NE()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8984>

2025-05-14 14:36:01 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/musepack/gstmusepackdec.c:
	  musepack: Switch to GST_AUDIO_NE()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8984>

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

	* gst/transcode/gsturitranscodebin.c:
	  uritranscodebin: Free various props before being set
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8978>

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

	* gst/transcode/gsttranscodebin.c:
	  transcodebin: Free various props before being set
	  Also disable setting filters more than once.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8978>

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

	* gst-libs/gst/vulkan/gstvkwindow.c:
	  vulkan: Free various props before being set
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8978>

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

	* gst-libs/gst/transcoder/gsttranscoder.c:
	  transcoder: Free various props before during cleanup
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8978>

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

	* gst-libs/gst/player/gstplayer-g-main-context-signal-dispatcher.c:
	* gst-libs/gst/player/gstplayer.c:
	* gst-libs/gst/transcoder/gsttranscoder.c:
	* gst-libs/gst/vulkan/gstvkdevice.c:
	* gst-libs/gst/vulkan/gstvkoperation.c:
	* gst-libs/gst/vulkan/gstvkphysicaldevice.c:
	* gst-libs/gst/webrtc/rtptransceiver.c:
	* sys/applemedia/videotexturecache-gl.m:
	* sys/applemedia/videotexturecache-vulkan.mm:
	* sys/d3d11/gstd3d11dxgicapture.cpp:
	* sys/d3d11/gstd3d11window.cpp:
	* sys/d3d11/gstd3d11winrtcapture.cpp:
	* sys/va/gstvadecoder.c:
	* sys/va/gstvaencoder.c:
	* sys/va/gstvafilter.c:
	* sys/webview2/gstwebview2object.cpp:
	  all: Annotate *_set_property() contructor only props without free
	  Properties that are marked constructor only aren't required to be freed
	  before g_value_dup_*() as they can only be called once during construction.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8978>

2025-05-13 01:40:57 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12decoder.cpp:
	  d3d12decoder: Workaround for NVIDIA crash on resolution change
	  Recent NVIDIA driver seems to crash on resolution change
	  if ID3D12VideoDecoder and ID3D12VideoDecodeCommandList are reused.
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4415
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8968>

2025-05-12 18:27:06 -0400  Olivier Crête <olivier.crete@collabora.com>

	* tests/check/elements/h264parse.c:
	  h264parse test: Ensure avc3 caps include a codec_data
	  The avc3 caps without a codec_data are just totally invalid
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8955>

2025-05-08 19:20:13 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst/videoparsers/gsth264parse.c:
	  h264parse: Require codec_data when receiving stream-format=avc or avc3
	  It's not really possible to safely interpret the content afterwards if
	  it's missing.
	  Even for AVC3, the codec_data doesn't need to contain a SPS/PPS, but
	  it still needs to be present to tell downstream elements about the size
	  of the nal unit length field.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8955>

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

	* gst/videoparsers/gsth264parse.c:
	  h264parse: Never output stream-format=avc/avc3 caps without codec_data
	  It's not possible to interpret further buffers without knowing the nal_length_size
	  field, so avc1/avc3 caps without the codec_data aren't valid, don't push them out.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8955>

2025-05-12 16:40:05 -0400  Olivier Crête <olivier.crete@collabora.com>

	* tests/check/elements/h264parse.c:
	  h264parse test: Send PPS in SPS parsing test
	  Without the PPS, the codec_data can not be created
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8955>

2025-02-25 22:53:30 +0900  Seungha Yang <seungha@centricular.com>

	* sys/nvcodec/gstnvjpegenc.cpp:
	* sys/nvcodec/gstnvjpegenc.h:
	* sys/nvcodec/plugin.c:
	  nvjpegenc: Add autogpu mode element
	  Similar to nvautogpu{h264,h265,av1}enc, adding auto gpu select mode
	  element
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8555>

2025-02-25 21:22:46 +0900  Seungha Yang <seungha@centricular.com>

	* sys/nvcodec/gstnvjpegenc.cpp:
	  nvjpegenc: Use stream-ordered alloc if requested
	  If user requested stream-ordered allocation, use async alloc/free
	  methods
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8555>

2025-04-10 11:22:29 +0530  Santosh Mahto <santosh.mahto@collabora.com>

	* gst-libs/gst/analytics/gsttensormeta.c:
	  gstanalytics: Add transform function to copy the tensor meta
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8825>

2025-05-05 17:38:08 -0400  Daniel Morin <daniel.morin@collabora.com>

	* gst/tensordecoders/gstclassifiertensordecoder.c:
	  analytics: change tensor-id and use new API
	  - tensor-id changed to match tensor-id-registry at https://github.com/collabora/tensor-id-registry
	  - Use new GstTensorMeta API to get tensor.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8548>

2025-02-24 11:15:29 -0500  Daniel Morin <daniel.morin@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/tensordecoders/gstclassifiertensordecoder.c:
	* gst/tensordecoders/gstclassifiertensordecoder.h:
	* gst/tensordecoders/gsttensordecoders.c:
	* gst/tensordecoders/meson.build:
	  tensordecoder: add general classifier tensor-decoder
	  - Classification output is more standard compare to other tensor-decoder.
	  - This tensor-decoder implement a standard classification tensor-decoder.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8548>

2025-05-02 15:46:26 +0200  Alexander Slobodeniuk <aslobodeniuk@fluendo.com>

	* gst/removesilence/gstremovesilence.c:
	  removesilence: canonicalize property names
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8915>

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

	* ext/opencv/gsthanddetect.cpp:
	  handdetect: canonicalize property names
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8915>

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

	* ext/aes/gstaesdec.c:
	* ext/chromaprint/gstchromaprint.c:
	* ext/iqa/iqa.c:
	* ext/openal/gstopenalsink.c:
	* ext/openal/gstopenalsrc.c:
	* ext/opencv/gstcvtracker.cpp:
	* ext/opencv/gsthanddetect.cpp:
	* ext/opencv/gstsegmentation.cpp:
	* ext/qroverlay/gstbaseqroverlay.c:
	* ext/qroverlay/gstdebugqroverlay.c:
	* ext/sndfile/gstsfsrc.c:
	* ext/spandsp/gsttonegeneratesrc.c:
	* ext/x265/gstx265enc.c:
	* gst-libs/gst/mse/gstsourcebuffer.c:
	* gst-libs/gst/transcoder/gsttranscoder-signal-adapter.c:
	* gst-libs/gst/uridownloader/gstfragment.c:
	* gst/accurip/gstaccurip.c:
	* gst/proxy/gstproxysrc.c:
	* gst/removesilence/gstremovesilence.c:
	* sys/bluez/gsta2dpsink.c:
	* sys/bluez/gstavdtpsink.c:
	* sys/bluez/gstavdtpsrc.c:
	* sys/directshow/dshowvideosink.cpp:
	* sys/directshow/gstdshowvideosrc.cpp:
	* sys/directsound/gstdirectsoundsrc.c:
	* sys/dvb/gstdvbsrc.c:
	* sys/fbdev/gstfbdevsink.c:
	* sys/kms/gstkmsallocator.c:
	  properties: add G_PARAM_STATIC_STRINGS where missing
	  "Hold on, I know you need to generate the registry, but let me just
	  create copies of all those strings first", Framework whispered
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8915>

2025-05-08 19:23:54 +0900  Seungha Yang <seungha@centricular.com>

	* tests/examples/cuda/cudamemory-sync.c:
	* tests/examples/cuda/meson.build:
	  examples: cuda: Fix build with old CUDA SDK
	  Some symbols are not available in old cuda headers.
	  Use our stub headers instead
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8950>

2025-05-08 19:18:32 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/cuda/gstcudanvrtc.cpp:
	  cuda: Fix runtime PTX compile
	  Handle extra option args
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8950>

2025-03-11 15:02:03 +0100  Pablo García <pgarcia@fluendo.com>

	* ext/curl/gstcurlbasesink.c:
	  curl: use CURL_SOCKET_BAD to ensure cross-platform
	  Solves this error in Windows build:
	  ../ext/curl/gstcurlbasesink.c:1154:14: error: comparison of unsigned
	  expression in '< 0' is always false [-Werror=type-limits]
	  1154 |   if (curlfd < 0) {
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8615>

2025-05-05 17:51:55 +0000  L. E. Segovia <amy@centricular.com>

	* ext/curl/gstcurlfilesink.c:
	* ext/curl/gstcurlhttpsink.c:
	* ext/curl/gstcurlsmtpsink.c:
	  curl: Fix build with MSVC
	  See https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1740#note_2895537
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8932>

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

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

2025-03-27 16:48:36 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/meson.build:
	* gst/y4m/gsty4mdec.c:
	* gst/y4m/gsty4mdec.h:
	* gst/y4m/meson.build:
	* meson.options:
	  y4m: move y4mdec to good to have a single y4m plugin
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8719>

2025-04-26 03:20:42 +0200  Alexander Slobodeniuk <aslobodeniuk@fluendo.com>

	* gst-libs/gst/webrtc/datachannel.c:
	  webrtc: fix build with -DGST_REMOVE_DEPRECATED
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8901>

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

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

2025-05-01 15:16:22 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/lcevcdecoder/gstlcevcdec.c:
	  lcevcdec: Use portable printf formatting macros
	  This should fix 32bit builds
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8926>

2025-05-01 15:30:28 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/lcevcencoder/gstlcevcencoder.c:
	  lcevcenc: Use portable printf formatting macros
	  This should fix 32bit builds
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8926>

2025-04-25 00:25:53 +0900  Seungha Yang <seungha@centricular.com>

	* tests/examples/d3d12/d3d12remap-fisheye.cpp:
	* tests/examples/d3d12/meson.build:
	  examples: Add d3d12remap example
	  Adding a fisheye image transform example using d3d12remap element
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8887>

2025-04-24 00:36:03 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3d12/gstd3d12compat.h:
	* sys/d3d12/gstd3d12remap.cpp:
	* sys/d3d12/gstd3d12remap.h:
	* sys/d3d12/meson.build:
	* sys/d3d12/plugin.cpp:
	  d3d12: Add d3d12remap element
	  Adding new element to support pixel remapping operation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8887>

2025-04-20 23:33:16 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3d11/gstd3d11converter.cpp:
	* gst-libs/gst/d3d12/gstd3d12converter-builder.cpp:
	* gst-libs/gst/d3d12/gstd3d12converter-private.h:
	* gst-libs/gst/d3d12/gstd3d12converter.cpp:
	* gst-libs/gst/d3dshader/converter-hlsl/PSMain_converter.hlsl:
	  d3d12converter: Add support UV remap
	  Adding OpenCV's cv::remap() like feature
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8887>

2025-02-08 22:44:47 +0800  Zhao, Gang <gang.zhao.42@gmail.com>

	* gst/midi/midiparse.c:
	  midiparse: Quit parsing if error occurred
	  Invalid midi files will crash gstreamer or let it enter infinite
	  loop. Fixed it by quit parsing if error is encountered.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8396>

2025-02-03 13:53:09 +0800  Zhao, Gang <gang.zhao.42@gmail.com>

	* gst/midi/midiparse.c:
	* gst/midi/midiparse.h:
	  midiparse: Consider tempo change when calculating duration
	  Midi meta event set tempo would change tempo. Should consider tempo
	  change when calculating buffer PTS / duration.
	  Save tempo change to a list and calculate duration according to the
	  list.
	  Fixed #4158
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8396>

2025-04-03 02:24:13 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* tests/check/meson.build:
	  gst-examples: Port all webrtc examples to libsoup-3.0
	  Also do some indent changes, and add `static` while we're at it.
	  And move the libsoup wrap to 3.6.5, add nghttp2 wrap
	  We need to disable libsoup 3.0 tests because they fail to build on
	  Windows.
	  Closes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1115
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8753>

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

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

2025-04-28 09:51:23 +0100  Philippe Normand <philn@igalia.com>

	* ext/meson.build:
	* ext/wpe2/gstwpe.h:
	* ext/wpe2/gstwpe2.cpp:
	* ext/wpe2/gstwpedisplay.cpp:
	* ext/wpe2/gstwpedisplay.h:
	* ext/wpe2/gstwpethreadedview.cpp:
	* ext/wpe2/gstwpethreadedview.h:
	* ext/wpe2/gstwpetoplevel.cpp:
	* ext/wpe2/gstwpetoplevel.h:
	* ext/wpe2/gstwpevideosrc.cpp:
	* ext/wpe2/gstwpevideosrc.h:
	* ext/wpe2/gstwpeview.cpp:
	* ext/wpe2/gstwpeview.h:
	* ext/wpe2/meson.build:
	* meson_options.txt:
	  wpe2: New WPE plugin making use of the "WPE Platform API"
	  Currently only a wpevideosrc2 element is exposed. GL and SHM buffer rendering
	  are supported, navigation events too (touch is un-tested). Audio pads handling
	  is not supported yet (that requires new WPE API).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8789>

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

	* gst-libs/gst/webrtc/nice/nice.c:
	  nice: Add function to fill in ufrag/pwd of remote candidates
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8900>

2025-04-25 16:33:39 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/webrtc/nice/nice.c:
	  nice: Rename local candidate filling function
	  Rename it, and avoid using it on remote candidates, as it will put
	  the wrong value.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8900>

2025-04-25 16:32:59 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/webrtc/nice/nice.c:
	  nice: Don't modify struct borrowed by signal
	  The struct is owned by libnice, you can't safely modify it
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8900>

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

	* ext/bs2b/gstbs2b.c:
	* ext/gtk/gstgtkwaylandsink.c:
	* ext/srt/gstsrtsink.c:
	* ext/srt/gstsrtsrc.c:
	* ext/vulkan/vkcolorconvert.c:
	* ext/vulkan/vkdownload.c:
	* ext/vulkan/vkimageidentity.c:
	* ext/vulkan/vkoverlaycompositor.c:
	* ext/vulkan/vkshaderspv.c:
	* ext/vulkan/vkupload.c:
	* ext/vulkan/vkviewconvert.c:
	* ext/webrtc/gstwebrtcbin.c:
	* ext/webrtc/transportreceivebin.c:
	* ext/webrtc/transportsendbin.c:
	* gst/accurip/gstaccurip.c:
	* gst/netsim/gstnetsim.c:
	* gst/rist/gstristrtpdeext.c:
	* gst/rist/gstristrtpext.c:
	* gst/rist/gstristsink.c:
	* gst/rist/gstristsrc.c:
	* gst/rist/gstroundrobin.c:
	* sys/amfcodec/gstamfav1enc.cpp:
	* sys/amfcodec/gstamfh264enc.cpp:
	* sys/amfcodec/gstamfh265enc.cpp:
	* sys/applemedia/avfvideosrc.m:
	* sys/applemedia/avsamplevideosink.m:
	* sys/nvcodec/gstnvvp8dec.cpp:
	* sys/nvcodec/gstnvvp9dec.cpp:
	* sys/uvcgadget/gstuvcsink.c:
	* tests/check/elements/test_http_src.c:
	  elements: use set_static_metadata when it's allowed
	  Those strings are nice but CPU doesn't want to copy them
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8905>

2025-04-18 15:21:59 -0400  Daniel Morin <daniel.morin@collabora.com>

	* tests/check/libs/analyticsmeta.c:
	  test:analytics: add more test on tracking mtd
	  - Verify we can retrive tracking-mtd and its data
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8868>

2025-03-15 23:48:52 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/codecparsers/gsth265parser.c:
	  h265parser: Fix num_long_term_pics bound check
	  As defined in the spec 7.4.7.1, calculates allowed maximum
	  value of num_long_term_pics
	  Fixes ZDI-CAN-26596
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4285
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8884>

2025-03-15 22:39:44 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/codecparsers/gsth265parser.c:
	  h265parser: Fix max_dec_pic_buffering_minus1 bound check
	  Allowed max value is MaxDpbSize - 1
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8884>

2025-04-24 07:48:12 +0200  Jochen Henneberg <jochen@centricular.com>

	* sys/va/gstvah264enc.c:
	  va: Fix H264 profile decision logic
	  The current logic would choose 'baseline' profiles only in case that
	  these profiles appear in the list first.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8882>

2025-04-17 17:28:17 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* sys/va/gstvaav1enc.c:
	  vaav1enc: fix mem leaks in _av1_decide_profile
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8845>

2025-04-15 16:46:23 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* sys/va/gstvavp9enc.c:
	  vavp9enc: fix mem leaks in _vp9_decide_profile
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8845>

2025-04-23 09:28:16 +0300  Sebastian Dröge <sebastian@centricular.com>

	* sys/aja/plugin.cpp:
	  aja: Use the correct location of the AJA NTV2 SDK in the docs
	  Also there is no longer a proprietary version of it.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4381
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8874>

2025-04-21 22:59:18 +0200  Jakub Adam <jakub.adam@collabora.com>

	* sys/va/gstvavpp.c:
	  vapostproc: fix wrong video orientation after restarting the element
	  After READY -> NULL -> READY state change, the configured video
	  orientation didn't get applied on the new GstVaFilter instance.
	  Resettig prev_direction to default value in update_properties ensures
	  gst_va_filter_set_orientation() isn't inadvertently skipped.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8871>

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

	* ext/x265/gstx265enc.c:
	  x265enc: Add bitrate tags to the output
	  Based on the same code in x264enc.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8838>

2020-03-23 13:45:46 +0000  jan vermaete <jan.vermaete@gmail.com>

	* ext/opencv/gstmotioncells.h:
	  motioncells: fix typo in header comment
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8867>

2025-04-17 04:40:12 -0600  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstsourcebuffer.c:
	  gstsourcebuffer: Reverted ownership change for append method
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8857>

2025-04-18 00:45:07 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2ringbuffer.cpp:
	  wasapi2: Log buffer QPC position and status flags
	  Log all infos of IAudioCaptureClient::GetBuffer
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8859>

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

	* ext/webrtc/gstwebrtcbin.c:
	* ext/webrtc/gstwebrtcstats.c:
	* gst-libs/gst/webrtc/ice.c:
	* gst-libs/gst/webrtc/ice.h:
	* gst-libs/gst/webrtc/nice/nice.c:
	* gst-libs/gst/webrtc/webrtc_fwd.h:
	* tests/check/elements/webrtcbin.c:
	  webrtc: stats: Improve spec compliance for ICE candidate stats
	  We now fill the foundation, related-address, related-port, username-fragment and
	  tcp-type fields.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8792>

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

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

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

	* sys/v4l2codecs/gstv4l2format.c:
	* sys/v4l2codecs/gstv4l2format.h:
	* sys/v4l2codecs/linux/videodev2.h:
	  v4l2codecs: Add Rockchip 8bit/10bit 422 formats
	  This enable NV16 and NV16_10LE40 formats. These formats are
	  produced by notably rkvdec driver.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5612>

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

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

2025-02-25 15:50:42 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* gst/mpegtsmux/gstbasetsmux.c:
	  mpegtsmux: Read prog-map[PMT_ORDER_<PID>] for PMT order key
	  Right now the prog-map's meaning of `PMT_%d` is overloaded:
	  - PMT_<PGM> is used to look up the PID for the PMT.
	  - PMT_<PID> is used to look up ordering keys for streams in the PMT.
	  This is not a problem in practice because program numbers and PES PIDs
	  shouldn't overlap. Still, it's quite the wart in the API.
	  Provide "PMT_ORDER_%d" as an unambiguous way of specifying ordering
	  keys.
	  See: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1510#note_2790022
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8584>

2025-04-16 21:17:07 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3d12/gstd3d12converter.cpp:
	  d3d12converter: Fix cropping when automatic mipmap is enabled
	  Update vertex buffer and viewport of extra shader pipeline as well
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8851>

2025-04-15 16:28:38 -0400  Daniel Morin <daniel.morin@collabora.com>

	* tests/check/libs/analyticsmeta.c:
	  test: add test for tensor-meta
	  - Verify we can add a tensor-meta to a buffer
	  - Verify we can get a tensor from a tensor-meta
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8848>

2025-04-10 09:58:57 -0400  Daniel Morin <daniel.morin@collabora.com>

	* gst-libs/gst/analytics/gsttensormeta.c:
	* gst-libs/gst/analytics/gsttensormeta.h:
	  analytics: add more convenient API to retrieve tensor
	  `gst_tensor_meta_get_by_id (meta,id)' is more convenient then
	  retrieving the tensor index using `gst_tensor_meta_get_index_from_id()` followed
	  by `gst_tensor_meta_get ()`.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8848>

2025-04-10 15:44:54 -0400  Daniel Morin <daniel.morin@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/tensordecoders/gstssdobjectdetector.c:
	  tensordecoders: updating element classification
	  - `TensorDecoder` is clashing with media decoder which cause decodebin use it.
	  Replacing with `Tensordecoder` to avoid clash
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8819>

2025-04-09 16:19:54 -0400  Daniel Morin <daniel.morin@collabora.com>

	* tests/check/libs/analyticsmeta.c:
	  test: add test for gstanalytics utility
	  - IoU test
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8805>

2025-04-09 20:36:40 -0400  Daniel Morin <daniel.morin@collabora.com>

	* gst-libs/gst/analytics/analytics.h:
	* gst-libs/gst/analytics/gstanalytics_image_util.c:
	* gst-libs/gst/analytics/gstanalytics_image_util.h:
	* gst-libs/gst/analytics/meson.build:
	  analytics: Move IoU calculation to gstanalytics lib
	  Calculating intersection-of-union (IoU) is a very common operation used by
	  tensor-decoder handling tensors from vision models. Having this in a library
	  will improve maintainability and ease of writing tensor-decoder.
	  - Post-fix _uint: We might eventually want to handle different datatype that we
	  woule post-fix with _type
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8805>

2025-04-12 15:02:38 +0900  Andrew Yooeun Chun <aychun00@gmail.com>

	* sys/v4l2codecs/plugin.c:
	  v4l2codecs: fix typos in the documentation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8829>

2025-01-10 14:34:54 +0100  Stéphane Cerveau <scerveau@igalia.com>

	* ext/vulkan/vkh265dec.c:
	  vkh265dec: add main-10 support
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8282>

2025-01-10 14:30:54 +0100  Stéphane Cerveau <scerveau@igalia.com>

	* gst-libs/gst/vulkan/gstvkformat.c:
	  vkformat: add NV12 10 bits support
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8282>

2025-04-10 14:23:59 +0200  Carlos Bentzen <cadubentzen@igalia.com>

	* gst-libs/gst/codecs/gsth266decoder.c:
	  h266decoder: fix leak parsing SEI messages
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8814>

2025-04-08 15:08:11 -0400  Detlev Casanova <detlev.casanova@collabora.com>

	* sys/v4l2codecs/gstv4l2codech264dec.c:
	* sys/v4l2codecs/gstv4l2codech265dec.c:
	* sys/v4l2codecs/gstv4l2codecmpeg2dec.c:
	  v4l2codecs: Unref the frame before leaving on error
	  In h264, h265 and mpeg2, make sure that dec_submit_bitstream() doesn't leak
	  a frame when dec_ensure_output_buffer() fails.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8794>

2025-04-08 09:30:31 -0400  Detlev Casanova <detlev.casanova@collabora.com>

	* sys/v4l2codecs/gstv4l2codecav1dec.c:
	* sys/v4l2codecs/gstv4l2codecvp9dec.c:
	  v4l2codecs: av1,vp9: Use temporary variable for buffer
	  This makes the end_picture() function handle the frame in the same way
	  as in vp8, which also fixes a frame leak when
	  gst_buffer_pool_acquire_buffer() fails.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8794>

2025-04-09 09:01:22 -0400  Xavier Claessens <xclaessens@netflix.com>

	* sys/va/meson.build:
	  Revert "va: h266 requires libva 2.22.0"
	  This reverts commit 8c017c79c5736c9e45e635df210e08550287646d.
	  1.22 was the correct pkg-config version. It's only the subproject
	  version that was wrong. Since we bumped libva.wrap to 2.22 version, h266
	  is now always available when using the subproject.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8800>

2025-04-07 17:45:28 -0400  Xavier Claessens <xclaessens@netflix.com>

	* sys/va/meson.build:
	  va: h266 requires libva 2.22.0
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8788>

2025-04-07 18:37:01 +0100  Philippe Normand <philn@igalia.com>

	* ext/webrtc/gstwebrtcbin.c:
	* ext/webrtc/gstwebrtcstats.c:
	* gst-libs/gst/webrtc/ice.c:
	* gst-libs/gst/webrtc/ice.h:
	* gst-libs/gst/webrtc/nice/nice.c:
	* gst-libs/gst/webrtc/webrtc_fwd.h:
	* tests/check/elements/webrtcbin.c:
	  Revert "webrtc: stats: Increase spec compliance for ICE candidate stats"
	  This reverts commit 4718fc9be72ccbbb9278c9abe7d72106e161aebf.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8787>

2025-04-07 18:36:39 +0100  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/webrtc/ice.h:
	  Revert "webrtc: Add missing Since markers to new ICE API"
	  This reverts commit 601c772447b0bada8e54d097088b8ea51ecba09a.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8787>

2025-04-04 12:18:24 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst/codecalpha/gstalphacombine.c:
	  alphacombine: unblock when alpha sink is eos
	  If the alpha sink receives EOS while the other thread was waiting for a
	  alpha buffer it was stuck waiting forever.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8775>

2025-04-02 09:58:26 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst/codecalpha/gstalphadecodebin.c:
	* sys/v4l2codecs/gstv4l2codecalphadecodebin.c:
	* sys/va/gstvacodecalphadecodebin.c:
	  alphadecodebin: use a multiqueue instead of a couple of queues
	  Fix gapless playback as queues are no longer stopped after the first
	  eos.
	  Co-authored-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
	  Fix #4165
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8775>

2024-11-27 23:12:18 +0100  Jakub Adam <jakub.adam@collabora.com>

	* gst/unixfd/gstunixfdsrc.c:
	  unixfdsrc: fix allocating FD memory with nonzero offsets
	  The element should allocate GstFdMemory large enough to fit incoming
	  memory's size plus its potential offset.
	  Fixes "gst_memory_resize: assertion 'size + mem->offset + offset <=
	  mem->maxsize' failed".
	  Fixes an issue reproducible on Raspberry Pi 4 that results in a garbled
	  image on the receiver's end:
	  gst-launch-1.0 libcamerasrc ! unixfdsink socket-path=/tmp/socket
	  gst-launch-1.0 unixfdsrc socket-path=/tmp/socket ! autovideosink
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8025>

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

	* gst-libs/gst/webrtc/ice.h:
	  webrtc: Add missing Since markers to new ICE API
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8698>

2025-03-26 14:00:33 +0000  Philippe Normand <philn@igalia.com>

	* ext/webrtc/gstwebrtcbin.c:
	* ext/webrtc/gstwebrtcstats.c:
	* gst-libs/gst/webrtc/ice.c:
	* gst-libs/gst/webrtc/ice.h:
	* gst-libs/gst/webrtc/nice/nice.c:
	* gst-libs/gst/webrtc/webrtc_fwd.h:
	* tests/check/elements/webrtcbin.c:
	  webrtc: stats: Increase spec compliance for ICE candidate stats
	  We now fill the foundation, related-address, related-port, username-fragment and
	  tcp-type fields.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8698>

2025-03-26 10:38:06 +0000  Philippe Normand <philn@igalia.com>

	* ext/webrtc/gstwebrtcstats.c:
	* tests/check/elements/webrtcbin.c:
	  webrtc: stats: Fill data-channel transport stats
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8698>

2025-02-15 11:41:57 +0000  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/webrtc/nice/nice.c:
	* gst-libs/gst/webrtc/nice/niceutils.h:
	  webrtc: nice: Add niceutils
	  The gst_webrtc_nice_get_candidate_server_url() function is going to be used for
	  stats generation purposes and also from the upcoming get_selected_candidate_pair
	  implementation.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8698>

2025-02-15 11:15:31 +0000  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/webrtc/nice/nice.c:
	  webrtc: nice: Make use of nice_candidate_type_to_string
	  This API was added in libnice 0.1.19 and we currently require 0.1.20.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8698>

2025-02-15 11:14:30 +0000  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/webrtc/nice/nice.c:
	  webrtc: nice: Remove unused libnice utilities
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8698>

2025-03-30 13:04:12 +0300  Razvan Grigore <razvan.grigore@vampirebyte.ro>

	* ext/webrtc/gstwebrtcbin.c:
	  webrtcbin: add missing warning for caps missmatch
	  This helps debug cases when the remote is offerer and m-line does not match with already existing transceivers.
	  In this case, it will create new ones with sendrecv direction without any warning.
	  Similar with code from _create_answer_task
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8735>

2025-03-26 01:33:57 +0900  Seungha Yang <seungha@centricular.com>

	* ext/closedcaption/gsth265reorder.c:
	* gst-libs/gst/codecparsers/gsth265parser-private.h:
	* gst-libs/gst/codecparsers/gsth265parser.c:
	* gst-libs/gst/codecparsers/gsth265parser.h:
	* gst-libs/gst/codecs/gsth265decoder.c:
	  h265parser: Make gst_h265_parser_link_slice_hdr public
	  ... and updating h265decoder/h265ccinserter to match
	  the changed gst_h265_parser_link_slice_hdr method
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8679>

2025-03-26 01:23:45 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/codecparsers/gsth264parser.c:
	* gst-libs/gst/codecparsers/gsth264parser.h:
	  h264parser: Store associated parameter set id
	  Make h264parser and h265parser consistent
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8679>

2025-03-26 01:13:47 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/codecparsers/gsth265parser.c:
	* gst-libs/gst/codecparsers/gsth265parser.h:
	  h265parser: Store PPS id in slice header
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8679>

2025-03-04 21:56:39 -0500  Daniel Morin <daniel.morin@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/analyticsoverlay/gstobjectdetectionoverlay.c:
	  analyticsoverlay: add filled-box mode
	  - Add filled-box-mode property, when set region where detection is happening is
	  filled
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8592>

2025-04-03 16:30:52 -0400  Olivier Crête <olivier.crete@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	  bad: Update va docs, adding new elements
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>

2025-04-04 12:54:27 -0400  Olivier Crête <olivier.crete@collabora.com>

	* sys/va/gstvacodecalphadecodebin.h:
	* sys/va/gstvafilter.c:
	* sys/va/gstvavpp.c:
	* sys/va/meson.build:
	  va: Add since markers
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>

2025-04-04 13:20:35 -0400  Olivier Crête <olivier.crete@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	* sys/va/gstvaav1enc.c:
	* sys/va/gstvah265enc.c:
	* sys/va/gstvavp8enc.c:
	* sys/va/gstvavp9enc.c:
	  va: Remove GstVaFeature marking as a plugin API
	  It's part of the libgstva library and it's documented there, no need
	  to duplicate it as it confuses hotdoc.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>

2025-04-03 17:39:45 -0400  Olivier Crête <olivier.crete@collabora.com>

	* sys/va/gstvah264enc.c:
	* sys/va/gstvah265enc.c:
	* sys/va/gstvavp8dec.c:
	* sys/va/gstvavp9dec.c:
	  va: Add doc section for vah26xlpenc and codecalpha element
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>

2025-04-03 16:31:30 -0400  Olivier Crête <olivier.crete@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	  bad: Update wpesrc docs
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>

2025-04-03 17:45:57 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/wpe/gstwpevideosrc.cpp:
	  wpevideosrc: Fix typo in doc
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>

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

	* docs/plugins/gst_plugins_cache.json:
	  bad: Update qsv docs
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>

2025-04-04 13:20:09 -0400  Olivier Crête <olivier.crete@collabora.com>

	* sys/qsv/gstqsvdecoder.cpp:
	* sys/qsv/gstqsvencoder.cpp:
	  qsv: Add since marker to device-path property
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>

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

	* docs/plugins/gst_plugins_cache.json:
	* ext/onnx/gstonnx.c:
	* ext/onnx/gstonnxclient.h:
	* ext/onnx/gstonnxinference.cpp:
	  bad: Add onnxinference to the docs
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>

2025-04-01 16:10:52 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst-libs/gst/webrtc/ice.c:
	* gst-libs/gst/webrtc/icestream.c:
	  docs: Fix GstWebRTCICE* class documentation
	  IceStream is not an actual object, it's GstWebRTCICEStream
	  Some `Returns:` annotations were improperly formatted and not taking
	  effect.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8755>

2024-09-10 01:13:25 +0200  Michael Grzeschik <m.grzeschik@pengutronix.de>

	* sys/uvcgadget/gstuvcsink.c:
	* sys/uvcgadget/gstuvcsink.h:
	* sys/uvcgadget/uvc.c:
	  uvcsink: Respond to control requests with proper error handling
	  The complete handling on the control interface is currently dead.
	  We return with EOPNOTSUPP for the caller to know that a response
	  to such requests is not valid. The host however may ask
	  control interface why these control requests were not available.
	  For this the UVC_VC_REQUEST_ERROR_CODE_CONTROL is used. As an overall
	  exception for the control interface we just always return 0x06 as
	  an response which is representing "not implemented".
	  This patch is a necessary feature to properly pass the UVC Functionality
	  Test of the USB3CV Compliance Software.
	  Fixes: 69c17461392d ('uvcgadget: Properly implement GET_INFO control responses')
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7524>

2025-03-31 18:54:28 +0200  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/avfvideosrc.m:
	  avfvideosrc: Guess reasonable framerate values for some 3rd party devices
	  For some third-party devices macOS sometimes reports silly framerates,
	  like 750003/6250 instead of 120/1. To avoid users having to exactly
	  pecify those values, we instead report the closest reasonable value in
	  caps. If it ends up being chosen, the additional logic in
	  setDeviceCaps() will reverse that process and pass the actual supported
	  value back to AVF, as most often the rounding causes us to fall just
	  outside the accepted threshold.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8745>

2025-03-07 09:06:18 +0100  Jochen Henneberg <jochen@centricular.com>

	* tests/check/elements/camerabin.c:
	  camerabin: Ensure that test record pipeline does not see caps change
	  Depending on the system load the test 'video_capture_with_tags' may
	  fail or not. Reason is that 'videotestsrc' may emit a buffer before
	  the final caps negotiation on the recording pipeline has happened
	  after dynamic linking.
	  In that case there would be a caps change and because videorate does
	  no longer drop old buffers and caps on change but pushes duplicates if
	  required qtmux will notice a caps change and fail to link.
	  The problem is a synchronization problem in 'camerabin' which became
	  obvious with the changed behaviour of 'videorate'.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8579>

2025-03-31 21:56:51 +0900  Seungha Yang <seungha@centricular.com>

	* ext/closedcaption/gsth264ccextractor.c:
	* ext/closedcaption/gsth265ccextractor.c:
	  h264ccextractor,h265ccextractor: Handle gap with unknown pts
	  Fixing critical warngins
	  gst_event_new_gap: assertion 'GST_CLOCK_TIME_IS_VALID (timestamp)' failed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8741>

2025-03-27 15:38:42 +0100  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst/codecalpha/gstalphadecodebin.c:
	  codecalpha: name both queues
	  Make it easier to debug from logs.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8744>

2025-03-30 19:44:22 -0400  Doug Nazar <nazard@nazar.ca>

	* gst-libs/gst/vulkan/wayland/gstvkdisplay_wayland.c:
	  vulkan/wayland: Init debug category before usage
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8738>

2025-03-28 12:19:20 +0000  Philippe Normand <philn@igalia.com>

	* ext/webrtc/gstwebrtcbin.c:
	* ext/webrtc/webrtcsdp.c:
	* tests/check/elements/webrtcbin.c:
	  webrtcbin: Make mid optional in offers and answers
	  The mid attribute is not strictly required. Two new tests cover this change,
	  they remove the mid and group attributes from the SDP offers and answers.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8729>

2025-03-29 19:03:13 +0200  Artem Martus <artemmartus2012@gmail.com>

	* ext/webrtc/gstwebrtcbin.c:
	* tests/check/elements/webrtcbin.c:
	  webrtcbin: ensure RTX entry for all formats
	  Properly implement RFC 4588 by ensuring each media format
	  has its own RTX payload type with unique 'apt' parameter,
	  rather than only mapping the first format.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8663>

2025-03-30 13:10:42 +0300  Sebastian Dröge <sebastian@centricular.com>

	* sys/va/gstvacaps.c:
	  va: Skip codecs that report maximum width or height lower than minimum
	  This happens on F42 with the JPEG decoders for some reason and trying to
	  actually use them with any resolution simply gives a "resolution not supported"
	  error.
	  A minimum of 64 is correctly reported though and trying to create caps with an
	  int range of [64, 0] gives critical warnings.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8736>

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

	* sys/bluez/gsta2dpsink.c:
	  a2dpsink: Free various props during cleanup
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8648>

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

	* sys/aja/gstajasink.cpp:
	* sys/aja/gstajasrc.cpp:
	  aja: Free various props during cleanup
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8648>

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

	* gst/librfb/gstrfbsrc.c:
	* gst/librfb/rfbdecoder.c:
	  rfbsrc: Free various props before being set & during cleanup
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8648>

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

	* gst/frei0r/gstfrei0r.c:
	  frei0r: Free various props before being set
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8648>

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

	* gst/faceoverlay/gstfaceoverlay.c:
	  faceoverlay: Free various props during cleanup
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8648>

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

	* ext/wayland/gstwaylandsink.c:
	  waylandsink: Free various props before being set
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8648>

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

	* ext/qroverlay/gstdebugqroverlay.c:
	* ext/qroverlay/gstqroverlay.c:
	  qroverlay: Free various props before set & during cleanup
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8648>

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

	* ext/openal/gstopenalsrc.c:
	  openalsrc: Free various props before being set
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8648>

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

	* ext/lcevcencoder/gstlcevcencoder.c:
	  lcevcencoder: Free various props before during cleanup
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8648>

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

	* ext/dash/gstmpdadaptationsetnode.c:
	* ext/dash/gstmpdperiodnode.c:
	* ext/dash/gstmpdrepresentationbasenode.c:
	* ext/dash/gstmpdrepresentationnode.c:
	* ext/dash/gstmpdsegmenttemplatenode.c:
	* ext/dash/gstmpdsegmenturlnode.c:
	  dash: Free various props before set & during cleanup
	  In addition several members were being freed via xmlFree() even though
	  being created via g_value_dup_string(). Switch to g_free().
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8648>

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

	* ext/curl/gstcurlhttpsrc.c:
	  curlhttpsrc: Free various props before set & during cleanup
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8648>

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

	* ext/gtk/gstgtkwaylandsink.c:
	* gst-libs/gst/mse/gstmediasourcetrack.c:
	* gst-libs/gst/va/gstvadisplay_drm.c:
	* sys/directshow/dshowdeviceprovider.cpp:
	* sys/directsound/gstdirectsounddevice.c:
	* sys/mediafoundation/gstmfdevice.cpp:
	* sys/uvch264/gstuvch264deviceprovider.c:
	* sys/wasapi/gstwasapidevice.c:
	* sys/wasapi2/gstwasapi2device.c:
	* sys/winks/ksdeviceprovider.c:
	  all: Annotate *_set_property() contructor only props without free
	  Properties that are marked constructor only aren't required to be freed
	  before g_value_dup_string() as they can only be called once during construction.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8648>

2025-03-26 15:32:05 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/dash/gstdashsink.c:
	  dashsink: Make sure to use a non-NULL pad name when requesting a pad from splitmuxsink
	  If the caller passed in "audio_%u" instead of a concrete pad name into
	  gst_element_request_pad_simple() then the pad name will be NULL. In that case
	  use the pad template name for requesting the pad from splitmuxsink.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8697>

2025-03-23 00:19:50 +0100  Jan Tojnar <jtojnar@gmail.com>

	* gst-libs/gst/analytics/meson.build:
	  gst-analytics: Add gst-video to Requires in pkg-config
	  `gst/analytics/analytics.h` includes `gst/analytics/gstanalyticssegmentationmtd.h`,
	  which in turn `gst/video/video-info.h` but `gst-video-1.0` was only listed
	  in `Requires.private` field of `gst-analytics-1.0.pc`.
	  This would cause projects linking against `gst-analytics-1.0.pc` to fail to find
	  the headers when using alternative interpretation of pkg-config specification
	  that only considers private dependencies for include path during static builds,
	  such as the case e.g. on Nix.
	  https://gitlab.freedesktop.org/pkg-config/pkg-config/-/issues/28
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8661>

2025-02-18 14:12:49 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	  mse: Updated documentation cache
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-02-18 13:08:38 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstmsesrc-private.h:
	* gst-libs/gst/mse/gstmsesrc.c:
	  gstmsesrc: Added locking, improved seek implementation
	  The position is no longer duplicated across each pad and pad's segment. The
	  position is now only updated if it changes in the direction of playback so that
	  quickly repeated forward seeks do not cause the stream to seek from 0.
	  Reverse playback is expressly disallowed and an unnecessary extra flush of track
	  when seeking was removed.
	  A background task was added to periodically check on the current position and
	  the media source's buffering levels to keep the ready state up-to-date. The
	  source buffer no longer needs to trigger this update, it will happen whenever
	  the element state is READY or higher.
	  Finally, added proper error reporting when failing to push a buffer and improved
	  debug logging.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-02-18 13:08:38 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstappendpipeline.c:
	  gstappendpipeline: Added name to background task
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-02-18 13:08:37 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstsourcebufferlist.c:
	  gstsourcebufferlist: Added locking
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-02-18 13:08:37 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstsourcebuffer.c:
	  gstsourcebuffer: Added locking, re-worked track feed task
	  Since the sample map/track buffer now iterates samples in batches corresponding
	  to each coded frame group, the logic to feed the tracks is simpler. For media
	  without delta frames, it's a special case where the coded frame groups are all
	  size 1.
	  Now, all it does is skip data until the keyframe group containing the seek point
	  is found, then feed the track queue with the current sample and all future
	  samples until EOS or cancellation.
	  Resync of the iterator when the underlying track is modified is not necessary
	  because the outer loop attempts to resume feeding track data from where it was
	  interrupted in case of modification.
	  Also, the track feed task struct now holds a weak ref to its parent source
	  buffer to allow the task to cancel itself in any situation where the source
	  buffer is destroyed before the task is shut down.
	  Media parsing activity in the append pipeline no longer triggers ready state
	  recalculation on the msesrc since the msesrc now has a background task that
	  updates the ready state periodically when it's active which is more efficient in
	  cases where there is a high volume of samples being processed by the media
	  parser.
	  Finally, updated to adapt to track buffer API changes. Some functions previously
	  passed in a lower bound for sample timestamps. Now the source buffer is
	  responsible for clipping samples within a desired range of time.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-02-18 13:08:37 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstsourcebuffer.c:
	  gstsourcebuffer: Added name to track feed task
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-02-18 13:08:37 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstsourcebuffer.c:
	  gstsourcebuffer: Moved misplaced documentation comment
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-02-18 13:08:37 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstmediasourcetrackbuffer.c:
	* tests/check/libs/mse.c:
	  gstmediasourcetrackbuffer: Improved buffered ranges calculation
	  Now when the buffered list is requested, the tolerance for merging two ranges
	  when there's a small gap between them is MAX(0.1sec, max frame duration * 2).
	  Previously it was hardcoded to 0.01sec. The specification suggests that it
	  could be something like the max frame duration * 2.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-02-18 13:08:37 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstmediasourcetrackbuffer-private.h:
	* gst-libs/gst/mse/gstmediasourcetrackbuffer.c:
	  gstmediasourcetrackbuffer: Added method to wait until any new data
	  The source buffer currently has a thread for each track that feeds the track
	  with all data in the track buffer until EOS is reached.
	  Each pass over the track buffer currently waits for the EOS to appear when it's
	  done iterating the track buffer which is too restrictive.
	  When the source buffer reaches the end of the track buffer, it should wait for
	  any new data to be processed -- not just an EOS -- then check for cancellation
	  if the deadline expires without new data.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-02-18 13:08:37 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstmediasourcetrackbuffer-private.h:
	* gst-libs/gst/mse/gstmediasourcetrackbuffer.c:
	  gstmediasourcetrackbuffer: Removed start time filtering from sample iterator
	  This adapts to the changes to the sample map since gst_iterator_filter() is a
	  simpler way for callers to clip the returned samples to a desired time range.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-02-18 13:08:37 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstmediasourcetrackbuffer-private.h:
	* gst-libs/gst/mse/gstmediasourcetrackbuffer.c:
	  gstmediasourcetrackbuffer: Removed unused code
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-02-18 13:08:37 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstmediasourcetrack-private.h:
	* gst-libs/gst/mse/gstmediasourcetrack.c:
	* tests/check/libs/mse.c:
	  gstmediasourcetrack: Removed unused try_push() method
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-02-18 13:08:37 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstmediasourcetrack.c:
	* tests/check/libs/mse.c:
	  gstmediasourcetrack: Ref the sample inside push() method
	  This simplifies cleanup for the caller since the push method already cleans up
	  the sample when it is consumed by playback or if it fails to be added to the
	  queue.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-02-18 13:08:37 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstmediasourcesamplemap-private.h:
	* gst-libs/gst/mse/gstmediasourcesamplemap.c:
	* tests/check/libs/mse.c:
	  gstmediasourcesamplemap: Re-worked sample iteration and removal
	  Both operations now work on coded frame groups (GOPs). This simplifies queueing
	  of video data. There is rarely any point of dealing with individual video frames
	  when iterating in DTS order, it's most meaningful to decode or delete whole
	  coded frame groups at a time, so the sample map will now do that when iterating
	  by DTS. When iterating in PTS order, the existing behavior is preserved since
	  that is used for informational purposes, not media processing.
	  A new private boxed type for coded frame groups was added to provide each data
	  item to the source buffer. Another possible solution would be creation of a new
	  GstSample representing the whole group by merging all the samples in a group
	  into a single sample containing a GstBufferList.
	  Also, start time filtering was removed from the API since gst_iterator_filter()
	  can be used by callers to achieve the same result.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-02-18 13:08:37 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstmediasource.c:
	  gstmediasource: Added locking
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-02-18 13:08:37 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstmediasource.c:
	  gstmediasource: Added caller-allocates annotation to get_live_seekable_range()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-02-18 13:08:37 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstmselogging-private.h:
	* gst-libs/gst/mse/gstmselogging.c:
	  gstmselogging: Added helper function to get nicknames of enum values
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-03-25 03:04:52 +0900  Seungha Yang <seungha@centricular.com>

	* ext/closedcaption/gstcodecccinserter.c:
	  codecccinserter: Fix event double free
	  Need to steal GstVideoCodecFrame.events before unref
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8673>

2025-03-25 03:02:57 +0900  Seungha Yang <seungha@centricular.com>

	* ext/closedcaption/gsth265reorder.c:
	  h265ccinserter: Fix broken SPS/PPS link
	  Apply the same h265decoder change to h265ccinserter
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8673>

2025-03-25 02:09:49 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/codecs/gsth265decoder.c:
	  h265decoder: Fix broken SPS/PPS link
	  Because of 2 pass nalu handling in decoder, link between
	  slice header and SPS/PPS can be broken at the second pass
	  if SPS/PPS got updated after slice header in the same AU
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4323
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8673>

2025-03-25 02:41:29 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/codecparsers/gsth265parser-private.h:
	* gst-libs/gst/codecparsers/gsth265parser.c:
	  h265parser: Add private method to update slice header
	  Adding a method to allow linking already parsed slice header
	  with parser's own sps/pps
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8673>

2025-03-25 01:58:42 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/codecparsers/gsth265parser.c:
	  h265parser: Allow updating SPS/PPS without parent parameter set
	  h265parser defers linking parameter sets until slice header is parsed.
	  Thus valid SPS/PPS parsed by h265parser can have no linked
	  parent parameter set. Apply this behavior to
	  gst_h265_parser_update_{sps,pps} too
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8673>

2025-03-21 11:41:11 +0900  Dongyun Seo <dongyun.seo@lge.com>

	* gst-libs/gst/vulkan/gstvkformat.c:
	  vkformat: fix build error
	  fix build error when VK_KHR_format_feature_flags2 is not defined.
	  Co-authored-by: Victor Jaquez vjaquez@igalia.com
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8655>

2025-03-07 16:05:20 -0500  Eric <ekc4yz@virginia.edu>

	* docs/plugins/gst_plugins_cache.json:
	* ext/sctp/gstsctpdec.c:
	* ext/sctp/gstsctpdec.h:
	* ext/sctp/gstsctpenc.c:
	* ext/sctp/sctpassociation.c:
	* ext/sctp/sctpassociation.h:
	* ext/webrtc/webrtcsctptransport.c:
	  webrtc: fix hangup when duplicate sctp association IDs chosen
	  Fixes an issue where the webrtcbin would hangup when finalizing due
	  to the sctpenc hanging up when finalizing. This occurred when the
	  webrtcbin chose to use a sctp association ID already in use.
	  The sctpenc would fail to reach the paused state, but startup a task
	  anyways that was never stopped.
	  This commit modifies the behavior to not choose sctp association IDs
	  randomly, and instead only choose one that is free. It also prevents the
	  sctpenc from starting up that task if it fails to reach the paused state.
	  Fixes: #4188
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8607>

2025-03-13 16:27:44 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkh264dec.c:
	* ext/vulkan/vkh265dec.c:
	* ext/vulkan/vksink.c:
	  vulkan: fix memory leak at dynamic registering
	  Also it cleans up a bit the code.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8639>

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

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

2025-03-13 17:22:12 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtenc.c:
	  vtenc: Reset restart flag when creating session in set_format()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8597>

2025-03-06 17:23:11 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtenc.c:
	* sys/applemedia/vtenc.h:
	  vtenc: Avoid deadlocking when changing properties on the fly
	  VT supports changing properties on the fly, and old code attempted to
	  support that. Perhaps 10 years ago that worked, but these days
	  VTSessionSetProperty will always wait for the output callback to finish
	  before proceeding. This means that it's very prone to deadlocking, as
	  property setters will take the object lock, the callback thread will
	  take the stream lock, and the main (streaming) thread attempts to take
	  both, resulting in a deadlock.
	  New version uses something similar to other encoders (e.g. x264enc) -
	  changing a property when a session is already created will just flag it
	  to be reconfigured upon the next encode call. This is done in similar
	  fashion to how restarting the session upon an error works.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8597>

2025-03-12 19:20:58 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaav1enc.c:
	* sys/va/gstvacaps.c:
	* sys/va/gstvacompositor.c:
	* sys/va/gstvadeinterlace.c:
	* sys/va/gstvaencoder.c:
	* sys/va/gstvafilter.c:
	* sys/va/gstvah264enc.c:
	* sys/va/gstvah265enc.c:
	* sys/va/gstvajpegenc.c:
	* sys/va/gstvavp9enc.c:
	* sys/va/gstvavpp.c:
	  va: remove unused headers
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8626>

2025-03-08 12:07:11 +0000  Philippe Normand <philn@igalia.com>

	* gst/codecalpha/gstalphacombine.c:
	  alphacombine: De-couple flush-start/stop events handling
	  There is no guarantee that any FLUSH_STOP event is preceded by a FLUSH_START.
	  The element now stops flushing once it has received a FLUSH_STOP on all its sink
	  pads.
	  Fixes #4174
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8604>

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

	* ext/svthevcenc/gstsvthevcenc.c:
	* gst/librfb/gstrfbsrc.c:
	* gst/y4m/gsty4mdec.c:
	* sys/nvcodec/gstcudamemorycopy.c:
	* sys/va/gstvapluginutils.c:
	  video: Give better names to buffer pools
	  Making debugging simpler
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8617>

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

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

=== release 1.26.0 ===

