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

