=== release 1.28.1 ===

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

	* gst-plugins-good.doap:
	* meson.build:
	  Release 1.28.1

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

	* gst/wavparse/gstwavparse.c:
	  wavparse: Avoid integer overflow and out-of-bounds read when parsing adtl chunks
	  Fixes GST-SA-2026-0001, CVE-2026-1940.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4854
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10903>

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

	* gst/wavparse/gstwavparse.c:
	  wavparse: Define maximum chunk size in a single place
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10903>

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

	* gst/wavparse/gstwavparse.c:
	  wavparse: Use GST_ROUND_UP_2() in two more places instead of a manual implementation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10903>

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

	* gst/wavparse/gstwavparse.c:
	  wavparse: Use unsigned integers for data sizes
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10903>

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

	* gst/wavparse/gstwavparse.c:
	  wavparse: Remove pointless duplicated GST_ROUND_UP_2()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10903>

2026-02-08 16:01:21 +0000  Tim-Philipp Müller <tim@centricular.com>

	* gst/rtp/gstrtpqdmdepay.c:
	  rtpqdm2depay: error out if anyone tries to use this element
	  Forbid use of this element and comment out all processing code.
	  There is no plausible reason this code should ever be executed in 2026
	  seeing that this was a streaming format produced by Darwin Streaming Server
	  ca 2009 which hasn't been in active use for well over a decade.
	  We simply error out for now as defensive measure and will remove the
	  element entirely in the next release cycle.
	  The processing functions are hairy and rather tedious to fix without
	  at least some sample stream at hand.
	  If anyone actually does have a legitimate need for this element and
	  can provide a sample streams, we will happily implement a depayloader
	  in Rust.
	  Fixes ZDI-CAN-28850, ZDI-CAN-28851, ZDI-CAN-28851, ZDI-CAN-28850, GST-SA-2026-0008.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4903
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4890
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10897>

2026-01-22 08:13:56 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Fix out-of-bounds read when parsing PlayReady DRM UUIDs
	  Fixes GST-SA-2026-0002.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4865
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10890>

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

	* meson.build:
	* sys/osxaudio/gstosxaudio.c:
	* sys/osxaudio/gstosxaudioelement.h:
	* sys/osxaudio/gstosxaudiosink.c:
	* sys/osxaudio/gstosxaudiosink.h:
	* sys/osxaudio/gstosxaudiosrc.c:
	* sys/osxaudio/gstosxaudiosrc.h:
	* sys/osxaudio/gstosxcoreaudio.c:
	* sys/osxaudio/gstosxcoreaudio.h:
	* sys/osxaudio/gstosxcoreaudiocommon.c:
	* sys/osxaudio/gstosxcoreaudiocommon.h:
	  osxaudio: Stop using HAVE_IOS, use TARGET_OS_* macros instead
	  With osxaudio, all the ifdefs are macOS and !macOS, so that
	  automatically adds preliminary support for tvOS, watchOS, and visionOS
	  here.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10807>

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

	* ext/meson.build:
	* ext/qt/meson.build:
	* ext/qt6/meson.build:
	* gst/deinterlace/meson.build:
	* meson.build:
	* sys/osxaudio/meson.build:
	* sys/osxvideo/meson.build:
	  meson: Deprecate `system = 'ios'` in cross files, use subsystem
	  Since we require Meson 1.4.0, we can now use subsystem names (added in
	  1.2.0).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10807>

2023-04-02 16:53:45 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	* scripts/dist-common-files.py:
	  modules: dist common files from monorepo root
	  Less noise when making releases, and just need to maintain one copy.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10822>

2026-02-15 17:45:19 +0000  Tim-Philipp Müller <tim@centricular.com>

	* README.md:
	  modules: remove subproject README.md from git
	  Will be added to the tarballs based on the monorepo README on dist.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10822>

2026-02-15 17:20:59 +0000  Tim-Philipp Müller <tim@centricular.com>

	* RELEASE:
	  modules: remove RELEASE from git, will be generated from template on dist
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10822>

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

	* NEWS:
	  modules: Remove NEWS from git which is generated from full release notes
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10822>

2026-02-05 16:15:34 +0300  Andrey Sidorov <asidorov@elvees.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Memory leak in gst_rtspsrc_close() when GST_RTSP_EEOF error occurs
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10768>

2026-01-29 09:36:41 +0100  Ognyan Tonchev <ognyan@axis.com>

	* gst/rtsp/gstrtspsrc.c:
	  gstrtspsrc: Set new mki in the encoder upon crypto update
	  Upon crypto update, only the new master key is set on the encoder. Consider also the newly
	  generated mki
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10756>

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

	* docs/gst_plugins_cache.json:
	* gst/rtpmanager/gstrtpptdemux.c:
	* gst/rtpmanager/gstrtpssrcdemux.c:
	  rtpptdemux/rtpssrcdemux: adapt klass "Demux" to "Demuxer"
	  - use recommended "Demuxer" instead of just "Demux"
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10729>

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

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

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

	* gst/debugutils/breakmydata.c:
	* gst/debugutils/testplugin.c:
	  gst-plugins: fix author name: correct incomplete or wrong emails
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10729>

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

	* gst/rtp/gstrtph263pay.c:
	  rtph263pay: fix author name: where not separated by ','
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10729>

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

	* gst/videofilter/gstgamma.c:
	* sys/v4l2/gstv4l2mpeg4enc.c:
	* sys/v4l2/gstv4l2vp8enc.c:
	* sys/v4l2/gstv4l2vp9enc.c:
	  gst: fix author name: add missing closing angle bracket
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10729>

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

	* gst/effectv/gstop.c:
	* gst/effectv/gstquark.c:
	* gst/effectv/gstradioac.c:
	* gst/effectv/gstripple.c:
	* gst/effectv/gststreak.c:
	  gst-plugins-good: fix author name: Kentaro Fukuchi
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10729>

2026-01-29 13:21:06 +0100  Peter Stensson <petest@axis.com>

	* gst/rtpmanager/rtpsource.c:
	* gst/rtpmanager/rtpsource.h:
	  rtpsource: Add locking for receive reports table
	  The hash table can be accessed simultaneously from multiple threads. The
	  rtpsessions rtcp thread will trigger collection of received report
	  stats when it's timeout triggers through the "on-sender-ssrc-active"
	  signal. Meanwhile rtpsession might process a new receive report and
	  modify the receive reports table in rtpsource. Since the session lock is
	  released before sending "on-sender-ssrc-active" signal there is no
	  protection for the receive report table in rtpsource.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10700>

2026-01-22 06:42:41 +0100  Tobias Koenig <tobias.koenig@kdab.com>

	* ext/qt6/qt6glwindow.cc:
	* ext/qt6/qt6glwindow.h:
	  qml6glsrc: Fix scraping of QQuickWindow content
	  When QQuickWindow emits the afterFrameEnd signal, the eglSwapBuffers
	  method has been invoked already for the current frame, so GL_BACK
	  does not contain the frame anymore that is displayed in the
	  QQuickWindow, but according to eglSwapBuffers some undefined data
	  (it happens to be the previous frame).
	  That causes the frame that qml6glsrc injects into the pipeline to
	  be always one frame later than what is visible in the QQuickWindow.
	  This patch connects to the QQuickWindow::afterRendering() signal
	  to make sure the glReadPixels() call is invoked before eglSwapBuffers
	  is invoked. To ensure that at this time the current frame is
	  completely rendered into GL_BACK, the QQuickWindow::begin/endExternalCommands()
	  is invoked to execute the pending commands from the scene graph renderer
	  in command buffer before we copy the GL_BACK content.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10678>

2026-01-20 15:31:17 +0100  Tobias Koenig <tobias.koenig@kdab.com>

	* ext/qt6/qt6glwindow.cc:
	  qml6glsrc: Fix rendering of scene with clipped items
	  If the scene of the QQuickWindow contains an Item with active
	  clipping ('clip: true'), the GL_SCISSOR_TEST is still active
	  when the frame buffer is copied over into gstreamer buffer
	  in Qt6GLWindow::afterFrameEnd().
	  Therefore only the content of that Item ends up in the
	  gstreamer buffer and not the whole window content.
	  This commit fixes it by resetting the OpenGL context to its
	  default state before the copy operation is done.
	  Since the afterFrameEnd callback is invoked after all the
	  QtQuick scene graph operations have been executed, there
	  is no need to restore the previous context state, the
	  scene graph renderer will setup the state from scratch
	  on the start of the next frame anyway.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10678>

2026-01-08 20:00:29 +0200  Sebastian Dröge <sebastian@centricular.com>

	* docs/gst_plugins_cache.json:
	  wavpack: Update plugin docs cache
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10707>

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

	* ext/wavpack/gstwavpackenc.c:
	* ext/wavpack/gstwavpackenc.h:
	  wavpackenc: Add support for S8/S16/S18/S20/S24/S32 and F32 samples
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10707>

2026-01-05 14:13:27 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/wavpack/gstwavpackenc.c:
	  wavpackenc: Map buffer readwrite for channel reordering
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10707>

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

	* ext/wavpack/gstwavpackenc.c:
	* ext/wavpack/gstwavpackenc.h:
	  wavpackenc: Extend caps a bit
	  Set width and depth like the parser does now, also set sample-type.
	  Allow for up to 4096 channels and maximum sample rate.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10707>

2026-01-05 14:01:02 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/wavpack/gstwavpackdec.c:
	* ext/wavpack/gstwavpackdec.h:
	  wavpackdec: Output 18 and 20 bit as their corresponding formats
	  Instead of extending them to 24 bits.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10707>

2026-01-05 13:49:31 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/wavpack/gstwavpackdec.c:
	  wavpackdec: Allocate output buffer via the base class
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10707>

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

	* ext/wavpack/gstwavpackdec.c:
	  wavpackdec: Output 24 bit samples as actual 24 bit samples
	  Instead of extending them to 32 bits.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10707>

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

	* ext/wavpack/gstwavpackdec.c:
	  wavpackdec: Re-create wavpack decoder on caps changes
	  It doesn't support allow format changes in the middle of the stream and
	  continues decoding with the initial format, which leads to corrupted output.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4837
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10707>

2026-01-05 13:04:27 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/wavpack/gstwavpackdec.c:
	  wavpackdec: Allow up to 4096 channels and up to maximum sample rate
	  The previous values were lower than what the format allows.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10707>

2026-01-05 12:33:43 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/wavpack/gstwavpackdec.c:
	  wavpackdec: Set OPEN_NORMALIZE flag to normalize floating point samples into the [-1,1] range
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10707>

2026-01-05 12:25:22 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/audioparsers/gstwavpackparse.c:
	* gst/audioparsers/gstwavpackparse.h:
	  wavpackparse: Correctly parse and advertise depth vs. width
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10707>

2026-01-05 11:59:31 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/audioparsers/gstwavpackparse.c:
	* gst/audioparsers/gstwavpackparse.h:
	  wavpackparse: Include sample type (int / float / dsd) in the caps
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10707>

2026-01-05 11:49:34 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/audioparsers/gstwavpackparse.c:
	* gst/audioparsers/gstwavpackparse.h:
	  wavpackparse: Sync flags with latest wavpack
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10707>

2026-01-05 11:47:58 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/audioparsers/gstwavpackparse.c:
	  wavpackparse: Print hexadecimal numbers with leading zeroes for easier reading
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10707>

2026-01-05 11:46:52 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/audioparsers/gstwavpackparse.c:
	  wavpackparse: Parse 32 bit sample rate and channel masks
	  And update template caps for the appropriate ranges, and also add missing +1 for
	  the number of channels.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10707>

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

	* gst/isomp4/qtdemux.c:
	* gst/isomp4/qtdemux.h:
	  qtdemux: Push raw audio/video buffers downstream in reverse order if rate < 0
	  For compressed buffers the decoder base classes take care of this but for raw
	  data the demuxer has to do that as there is no other element downstream that
	  could potentially do it.
	  Downstream elements can't distinguish easily between the raw output of a decoder
	  and the non-reversed raw output of a demuxer due to a signalling design bug
	  (signalling for raw data is different than for compressed data) and this is the
	  best we can do for now.
	  Also make sure to set the discont flag correctly in this case.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10708>

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

	* gst/isomp4/qtdemux.c:
	  qtdemux: Make sure to not output the same samples multiple times in reverse playback mode
	  By jumping from keyframe to keyframe backwards for one of the tracks and
	  outputting the overlapping samples of the other streams, it can happen that we
	  end up at the same samples as for the previous keyframe for the other tracks.
	  One example of this would be an intra-only video stream where the audio samples
	  have a considerably larger duration than a video frame. E.g. if audio samples
	  have 15 times the duration of a video frame, every audio sample would be output
	  15 times.
	  Apart from being inefficient, this also has the chance of breaking downstream
	  processing.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10690>

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

	* gst/isomp4/qtdemux.c:
	  qtdemux: Don't ignore flow return when pushing queued buffers downstream
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10680>

2026-01-02 17:25:13 +0100  Robert Mader <robert.mader@collabora.com>

	* ext/vpx/gstvpxdec.c:
	  vpxdec: Support downstream pools with alignment requirements
	  Notably the VideoDmabufPool with the udmabuf allocator, allowing sinks
	  like the gtk4paintablesink or waylandsink to use dmabuf upload paths,
	  significantly improving performance in many cases.
	  Note that this only works when downstream pools can actually be used, which
	  is only the case for VP8, not VP9, for now.
	  Additional context:
	  VP9 currently unconditionally creates a internal pool in order meet the
	  requirements of the decoder (in the allocation callback). My attempts to
	  use the downstream pool instead failed because the decoder doesn't allow us
	  to set a custom stride (it's hardcoded in libvpx), preventing the use of
	  the udmabuf pool. There are still cases where a downstream pool could be
	  used and would be desirable - notably in glupload where using the internal
	  pool results in us using the raw uploader - but the complexity of the changes
	  didn't seem worth it for now.
	  VP8, OTOH, doesn't have a allocation callback but allocates buffers in libvpx,
	  and we always copy the frame to a buffer from a pool - so using a downstream
	  pool is trivial and already worked OOTB - just needed some changes to accept
	  downstream pools like the udmabuf one.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10666>

2026-01-21 11:37:03 -0800  Deepa Guthyappa Madivalara <deepa.madivalara@oss.qualcomm.com>

	* docs/gst_plugins_cache.json:
	  v4l2: update gst plugins cache
	  Updating gst plugins cache to resolve CI errors.
	  Sync gst_plugins_cache.json with CI-generated documentation cache.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10664>

2025-08-20 14:23:51 -0700  DEEPA GUTHYAPPA MADIVALARA <deepa.madivalara@oss.qualcomm.com>

	* sys/v4l2/ext/videodev2.h:
	* sys/v4l2/gstv4l2av1codec.c:
	* sys/v4l2/gstv4l2av1codec.h:
	* sys/v4l2/gstv4l2object.c:
	* sys/v4l2/gstv4l2videodec.c:
	* sys/v4l2/meson.build:
	  v4l2: Add v4l2av1dec stateful decoder support
	  Introduce support for new pixelformat V4L2_PIX_FMT_AV1 which maps
	  to V4l2 AV1 stateful decoder. Implement necessary changes to
	  enable v4l2av1dec component.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10664>

2026-01-12 19:43:23 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Set the segment position to the start on EOS in reverse playback mode
	  This way it will be taken into account correctly when doing a non-flushing seek
	  afterwards. Otherwise it will have only the timestamp of the previous keyframe
	  that was inside the segment.
	  Also include a validate test for this.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10629>

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

	* gst/isomp4/qtdemux.c:
	  qtdemux: Rename last mention of last_stop to position
	  0.10 is long gone.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10629>

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

	* gst/isomp4/qtdemux.c:
	  qtdemux: Improve debug output around seek event handling
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10629>

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

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

2026-01-27 17:10:54 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.28.0

=== release 1.28.0 ===

2026-01-27 17:02:33 +0000  Tim-Philipp Müller <tim@centricular.com>

	* NEWS:
	* README.md:
	* RELEASE:
	* gst-plugins-good.doap:
	* meson.build:
	  Release 1.28.0

2026-01-26 12:32:30 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/isomp4/qtdemux.c:
	* gst/isomp4/qtdemux.h:
	  qtdemux: Use DTS instead of PTS for deciding whether we're after segment.stop
	  Using the PTS can mean that qtdemux is stopping too early in case of frame
	  reordering. By using the DTS we can make sure that all frames with a PTS before
	  the segment.stop are actually output.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4867
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10601>

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

	* gst/isomp4/qtdemux.c:
	  qtdemux: First get information for the current sample and only then check if the stream is EOS
	  Not preparing the current sample has the effect that if a seek after the end of
	  the file has happened that the corresponding segment event for the seek is never
	  sent downstream and only EOS/segment-done is sent downstream.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10567>

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

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

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

	* meson.build:
	* meson.options:
	  meson: Don't disable orc support when orcc is not available
	  This was breaking usage of orc when cross-compiling with no orcc
	  available in PATH. We can use the orc-dist.{c,h} files in that case as
	  long as the orc library itself is available. Using the subproject, for
	  example.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10553>

2026-01-09 14:33:50 -0500  Dominique Leroux <dominique.p.leroux@gmail.com>

	* gst/isomp4/gstqtmux.c:
	  qtmux: avoid NULL dereference when VP9 caps lack chroma-site
	  gst_qt_mux_video_sink_set_caps() assumes that the VP9 caps field
	  "chroma-site" is present when chroma-format is 4:2:0 and passes the
	  result directly to gst_video_chroma_site_from_string().
	  When chroma-site is missing, this results in a NULL dereference and a
	  segmentation fault.
	  Guard against a missing chroma-site field and treat it as UNKNOWN,
	  preserving the existing fallback behavior.
	  Closes #4851
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10525>

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

	* meson.build:
	  Back to development after 1.27.90

=== release 1.27.90 ===

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

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

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

	* gst/interleave/interleave.c:
	* gst/isomp4/gstqtmux.c:
	  gst: Properly unref pad template caps
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10477>

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

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

2025-12-29 09:36:45 -0500  Paxton Hare <paxtonhare@users.noreply.github.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Add mapping for tsc2 fourcc
	  The "tsc2" fourcc (TechSmith Screen Codec 2) was falling back to
	  the generic unknown codec handler, outputting video/x-gst-fourcc-tsc2
	  instead of the correct caps: video/x-tscc with tsccversion=2.
	  This prevented the avdec_tscc2 decoder from being linked.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4839
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10471>

2025-12-27 17:03:28 +0100  Stéphane Cerveau <scerveau@igalia.com>

	* gst/videomixer/videomixer2.c:
	  videomixer2: handle non-TIME segment events gracefully
	  Replace g_assert() with proper error handling when receiving
	  segments in non-TIME format. This prevents crashes and logs
	  an error message instead.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10459>

2025-12-27 14:03:17 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Fix splitting up / padding of captions
	  Fixes a regression introduced by c5a470e5.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4833
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10458>

2025-11-28 01:47:09 +0000  Tim-Philipp Müller <tim@centricular.com>

	* gst/level/gstlevel.c:
	  level: fix crash if no caps have been sent
	  It's possible to receive a buffer without any caps
	  having been sent first if it comes from one of the
	  generic sources, e.g.
	  filesrc location=/dev/zero ! level ! fakeaudiosink
	  in which case we would abort with a floating point exception
	  owing to a division by zero because the audio info is unset.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4769
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10236>

2025-12-19 15:40:26 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/cairo/meson.build:
	  meson: Solve some cyclic dependencies caused by test-only deps
	  gstreamer => gobject-introspection => cairo => fontconfig => freetype2 => harfbuzz => cairo
	  gst-plugins-base => libdrm => cairo => fontconfig => freetype2 => harfbuzz => cairo
	  gst-plugins-good => cairo => librsvg => cairo
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10422>

2025-12-16 18:35:31 +0100  Alicia Boya García <aboya@igalia.com>

	* gst/isomp4/qtdemux.c:
	* gst/isomp4/qtdemux.h:
	  qtdemux: rename time_position to cur_global_pts
	  This makes it more obvious what kind of time it represents -- that is,
	  PTS after applying edit lists and cslg_offset.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10383>

2025-12-16 18:26:47 +0100  Alicia Boya García <aboya@igalia.com>

	* gst/isomp4/qtdemux.c:
	* gst/isomp4/qtdemux.h:
	  qtdemux: Improve documentation of timestamps
	  There are many ways timestamps can be encoded for MP4, which makes
	  having documentation and good variable names quite important for being
	  able to follow the code efficiently.
	  This patch consists of the clarifications I found the need to add while
	  working on https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4600.
	  I have placed them in a separate commit to not mix functional changes
	  with documentation changes in an already tricky patch.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10383>

2025-12-16 18:13:22 +0100  Alicia Boya García <aboya@igalia.com>

	* gst/isomp4/qtdemux.c:
	* gst/isomp4/qtdemux.h:
	* tests/check/elements/qtdemux.c:
	* tests/files/explosion-large-composition-offset.mp4:
	  qtdemux: use PTS instead of DTS for sample scheduling
	  Some MP4 files have extremely large composition offsets (e.g. 3
	  seconds). The current sample scheduling code is based on DTS, under the
	  assumption that they will be close enough. Files like these, however,
	  break that assumption and cause very unbalanced sample scheduling during
	  preroll, as well as unexpected gap events.
	  This patch updates the sample scheduling algorithm of qtdemux to follow
	  global PTS instead of global DTS. Care is taken to so that the global
	  PTS cursor is advanced mononotically. This means that whenever the next
	  sample in decode order has lower PTS than the previous one, the
	  time_position does not advance and that same track will be picked again
	  in the next tick of the scheduler.
	  A check test using the affected file from the bug report has been added.
	  The test makes sure that the interleaving of samples in qtdemux doesn't
	  cause large (>= 1 second) jumps in stream time PTS.
	  Fixes #4600
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10383>

2025-12-19 13:17:49 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/matroska/matroska-demux.c:
	  matroskademux: Bump maximum block size from 15MB to 32MB
	  A raw 4k RGB frame for example is around 25MB. This probably will have to be
	  implemented differently in the future but for now this solves the immediate
	  problem and keeps the maximum in sync with qtdemux.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10417>

2025-12-18 18:41:56 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/wavenc/gstwavenc.c:
	  wavenc: Fix downstream negotiation
	  gst_pad_get_allowed_caps() can return NULL or empty caps.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10412>

2025-12-17 18:59:09 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/matroska/matroska-parse.c:
	* gst/matroska/matroska-parse.h:
	  matroskaparse: Remove segment closing on non-flushing seeks
	  That's a 0.10 leftover and not necessary anymore, and can confuse downstream
	  elements unnecessarily.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10399>

2025-11-30 00:45:21 +0530  Taruntej Kanakamalla <tarun@centricular.com>

	* tests/check/elements/flvmux.c:
	* tests/files/flv_test/.gitattributes:
	* tests/files/flv_test/aac/0.aac:
	* tests/files/flv_test/aac/1.aac:
	* tests/files/flv_test/aac/2.aac:
	* tests/files/flv_test/aac/3.aac:
	* tests/files/flv_test/aac/4.aac:
	* tests/files/flv_test/aac/5.aac:
	* tests/files/flv_test/aac/6.aac:
	* tests/files/flv_test/h264/0.h264:
	* tests/files/flv_test/h264/1.h264:
	* tests/files/flv_test/h264/2.h264:
	* tests/files/flv_test/h264/3.h264:
	* tests/files/flv_test/h264/4.h264:
	* tests/files/flv_test/h265/0.h265:
	* tests/files/flv_test/h265/1.h265:
	* tests/files/flv_test/h265/2.h265:
	* tests/files/flv_test/h265/3.h265:
	* tests/files/flv_test/h265/4.h265:
	* tests/files/flv_test/mp3_8k/0.mp3:
	* tests/files/flv_test/mp3_8k/1.mp3:
	* tests/files/flv_test/mp3_8k/10.mp3:
	* tests/files/flv_test/mp3_8k/2.mp3:
	* tests/files/flv_test/mp3_8k/3.mp3:
	* tests/files/flv_test/mp3_8k/4.mp3:
	* tests/files/flv_test/mp3_8k/5.mp3:
	* tests/files/flv_test/mp3_8k/6.mp3:
	* tests/files/flv_test/mp3_8k/7.mp3:
	* tests/files/flv_test/mp3_8k/8.mp3:
	* tests/files/flv_test/mp3_8k/9.mp3:
	  flv: add tests for multitrack and eFLV features
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10071>

2025-12-06 00:02:11 +0530  Taruntej Kanakamalla <tarun@centricular.com>

	* gst/flv/gstflvdemux.c:
	* gst/flv/gstflvdemux.h:
	  flvdemux: default track functionality fixes
	  output track 0 as default track (i.e. audio/video) pad
	  as per the new spec update:
	  https://github.com/veovera/enhanced-rtmp/commit/476deeb6f31abedc68dda4954f0a031a1ece32cf
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10071>

2025-12-12 18:21:59 +0530  Taruntej Kanakamalla <tarun@centricular.com>

	* gst/flv/gstflvdemux.c:
	* gst/flv/gstflvmux.c:
	  flv: add additional audio metadata for default track
	  sample rate, stereo and sample size can used for default track in global
	  metadata in case of extended audio header which will not hold this information
	  unlike the legacy FLV header
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10071>

2025-12-12 17:56:17 +0530  Taruntej Kanakamalla <tarun@centricular.com>

	* gst/flv/gstflvmux.c:
	* gst/flv/gstflvmux.h:
	  flvmux: read metadata values from local instead of current caps
	  the current caps values can be different and newer compared to that of the  buffer we currently using
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10071>

2025-12-05 23:57:19 +0530  Taruntej Kanakamalla <tarun@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/flv/gsteflvmux.c:
	* gst/flv/gsteflvmux.h:
	* gst/flv/gstflvmux.c:
	* gst/flv/gstflvmux.h:
	  flvmux: eflv: default track semantics fix
	  as per the new spec update:
	  https://github.com/veovera/enhanced-rtmp/commit/476deeb6f31abedc68dda4954f0a031a1ece32cf
	  Use the audio/video pad as the default track, with track id 0
	  in case of multitrack
	  The pad can be selected to stream legacy flv, or non-multitrack eflv
	  or multitrack eflv using the property on `EFlvMuxPad`
	  Validate the pad template and pad name requested to disallow requesting
	  audio_0/video_0 pads. Change the `create_new_pad` to create the pad internally without calling the
	  base class method
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10071>

2025-12-05 20:40:42 +0530  Taruntej Kanakamalla <tarun@centricular.com>

	* gst/flv/flvdefs.h:
	* gst/flv/gstflvdemux.c:
	* gst/flv/gstflvmux.c:
	* gst/flv/gstflvmux.h:
	  flv: improve enum naming and minor fixes
	  change the enum names to be consistent
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10071>

2025-12-13 19:32:28 +0200  Sebastian Dröge <sebastian@centricular.com>

	* docs/gst_plugins_cache.json:
	* ext/flac/gstflacenc.c:
	  flacenc: Support S32 samples
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10377>

2025-12-13 18:00:59 +0200  Sebastian Dröge <sebastian@centricular.com>

	* docs/gst_plugins_cache.json:
	* ext/flac/gstflacdec.c:
	* ext/flac/gstflacenc.c:
	  flac: Fix 6.1 / 7.1 channel layouts
	  They were previously randomly selected but since then they were actually defined
	  in the specification, and of course differently than what we selected here.
	  Update the layouts with what the specification actually says.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10375>

2025-12-13 10:17:12 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/flac/gstflacdec.c:
	  flacdec: Don't forbid S32 sample size (0x07) unnecessarily
	  It's assigned to S32 samples since around FLAC 1.4.0.
	  flacparse already handles this correctly since b9011f3541e1da518df5b0857547d833555cc49e.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4808
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10369>

2025-12-10 14:51:27 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/matroska/matroska-mux.c:
	  matroska-mux: Unify and clean up pad reset code
	  And don't re-allocate the context but instead make sure it's always
	  in place.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4800
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10349>

2025-12-10 14:23:16 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/matroska/matroska-ids.c:
	* gst/matroska/matroska-ids.h:
	* gst/matroska/matroska-mux.c:
	  matroska: Clean up track context a bit
	  And document which fields are used by only the muxer or demuxer/parser.
	  Also remove one unused field. There are probably more.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10349>

2025-12-10 14:01:22 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/matroska/matroska-mux.c:
	  matroska-mux: Don't re-allocate pad context after creation immediately
	  Just keep the cleanly initialized one around.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10349>

2025-12-10 13:46:41 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/matroska/matroska-mux.c:
	  matroska-mux: Switch from GstElement::request_new_pad() to GstAggregator::create_new_pad()
	  The latter allows setting pad state before the pad is added to the element and
	  generally available to other parts inside and outside the element.
	  See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4800
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10349>

2025-12-09 22:49:30 +1100  Jan Schmidt <jan@centricular.com>

	* gst/multifile/gstsplitmuxsrc.c:
	  splitmuxsrc: Rework locking around seek flush events
	  There's no need to hold the splitmux lock while pushing
	  flush events during a seek, and it can lead to a deadlock
	  if downstream does a latency query from the flush-stop event.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10344>

2025-12-09 22:48:22 +1100  Jan Schmidt <jan@centricular.com>

	* gst/multifile/gstsplitmuxsrc.c:
	  splitmuxsrc: Clear segment seqnum when restarting
	  Minor fix for clean reuse. Also, use the GST_SEQNUM_INVALID
	  constant instead of direct comparison to 0
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10344>

2025-12-09 19:13:20 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.27.50

=== release 1.27.50 ===

2025-12-09 19:08:48 +0000  Tim-Philipp Müller <tim@centricular.com>

	* NEWS:
	* RELEASE:
	* gst-plugins-good.doap:
	* meson.build:
	  Release 1.27.50

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

	* gst/matroska/matroska-mux.c:
	  matroska-mux: Fix thread-safety issues when requesting new pads
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4800
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10332>

2025-12-09 14:28:21 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/matroska/matroska-mux.c:
	* gst/matroska/matroska-mux.h:
	  matroska-mux: Remove unused variable
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10332>

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

	* gst/matroska/matroska-mux.c:
	  matroska-mux: Simplify some string pointer ownership when resetting pads
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10332>

2025-12-09 13:38:44 +1100  Matthew Waters <matthew@centricular.com>

	* docs/gst_plugins_cache.json:
	  docs: add plugins cache for qml6glrendersrc
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9308>

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

	* ext/qt6/gstqml6glrendersrc.cc:
	* ext/qt6/gstqml6glrendersrc.h:
	* ext/qt6/qt6glrenderer.cc:
	* ext/qt6/qt6glrenderer.h:
	* tests/examples/qt6/qmlrendersrc/main.cpp:
	* tests/examples/qt6/qmlrendersrc/main.qml:
	  qml6glrendersrc: add support for only rendering when requested by Qt
	  Can be enabled by having configuring a framerate of 0/1 in the caps. The (new)
	  property 'max-framerate' controls how often a frame will be produced as a result
	  of Qt notifying of changes.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9308>

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

	* tests/examples/qt6/qmlrendersrc/main.cpp:
	  examples/qml6glrendersrc: add framerate changing functionality
	  Switches between 10fps and 20fps every 2 seconds.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9308>

2025-06-05 20:39:37 +1000  Matthew Waters <matthew@centricular.com>

	* ext/qt6/gstplugin.cc:
	* ext/qt6/gstqml6glrendersrc.cc:
	* ext/qt6/gstqml6glrendersrc.h:
	* ext/qt6/gstqt6elements.h:
	* ext/qt6/gstqt6glutility.cc:
	* ext/qt6/meson.build:
	* ext/qt6/qt6glrenderer.cc:
	* ext/qt6/qt6glrenderer.h:
	* tests/examples/qt6/meson.build:
	* tests/examples/qt6/qmlrendersrc/main.cpp:
	* tests/examples/qt6/qmlrendersrc/main.qml:
	* tests/examples/qt6/qmlrendersrc/meson.build:
	* tests/examples/qt6/qmlrendersrc/qmlrendersrc.qrc:
	  qml6: new source element that renders a QML scene
	  Like qml6gloverlay but without the requirement for an input video source.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9308>

2025-06-05 20:38:02 +1000  Matthew Waters <matthew@centricular.com>

	* ext/qt6/qt6glrenderer.cc:
	  qml6/glrender: reset OpenGL state after rendering
	  Otherwise rendering with glimagesink will fail because the GL state is not the
	  default.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9308>

2025-06-05 19:31:14 +1000  Matthew Waters <matthew@centricular.com>

	* ext/qt6/gstqml6gloverlay.cc:
	  qml6gloverlay: remove unreachable return
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9308>

2025-11-20 15:38:28 +0530  Pratik Pachange <ppachang@qti.qualcomm.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2object: Add support for colorimetry 1:4:16:3
	  Colorimetry 1:4:16:3, also known as SMPTE170M / ITU-R BT1358 525
	  or 625 / ITU-R BT1700 NTSC
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10151>

2025-12-07 15:29:44 +0100  Robert Mader <robert.mader@collabora.com>

	* gst/deinterlace/gstdeinterlace.c:
	  deinterlace: Improve pool configuration
	  1. Validate and retry pool config if it failed
	  2. Try all pools from query and fall back to default pool otherwise
	  3. Enable video alignment option if supported, needed by GstVideoDmabufPool
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10315>

2025-11-29 09:55:25 -0600  Olivier Crête <olivier.crete@collabora.com>

	* gst/videofilter/gstvideoflip.c:
	  videoflip: Add meta transformation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9497>

2025-05-18 16:12:56 +0200  Olivier Crête <olivier.crete@collabora.com>

	* gst/videocrop/gstvideocrop.c:
	  videocrop: Implement video matrix meta transformation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9497>

2025-05-18 15:04:29 +0200  Olivier Crête <olivier.crete@collabora.com>

	* gst/videobox/gstvideobox.c:
	  videobox: Implement video matrix meta transformation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9497>

2025-05-18 14:48:55 +0200  Olivier Crête <olivier.crete@collabora.com>

	* gst/videobox/gstvideobox.c:
	* gst/videobox/gstvideobox.h:
	  videobox: Refactor computation to be done only on changes
	  And store the results in the object itself
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9497>

2025-05-18 14:38:04 +0200  Olivier Crête <olivier.crete@collabora.com>

	* gst/videobox/gstvideobox.c:
	* gst/videobox/gstvideobox.h:
	  videobox: Remove unused member variables
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9497>

