=== release 1.29.2 ===

2026-06-29 00:04:39 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst-libav.doap:
	* meson.build:
	  Release 1.29.2

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

	* meson.build:
	  msvc: Fix build after adding new tracer macros
	  MSVC's legacy preprocessor does not expand variadic args in
	  recursive macros correctly, causing new tracer macros to fail
	  with cl version 19.41.34120.
	  Use standard conforming preprocessor mode instead
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11907>

2026-06-08 10:51:39 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ext/libav/gstavdemux.c:
	  avdemux: Always free AVIOContext and open failure and don't dereference NULL AVFormatContext
	  Based on a patch by Ramesh Adhikari, who also reported this.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5102
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11802>

2026-06-08 10:32:58 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ext/libav/gstavprotocol.c:
	* ext/libav/gstavprotocol.h:
	  avprotocol: Don't free GstFFMpegPipe when closing the AVIOContext
	  It's owned by the element. Document this and also mark the parameter to the
	  constructor as `const` to make this clearer.
	  Based on a patch by Ramesh Adhikari, who also reported this issue.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5101
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11801>

2026-05-03 23:29:45 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ext/libav/gstavdemux.c:
	  gst: Pass a strong reference to the user_data to gst_pad_start_task()
	  Otherwise the object could get disposed while the task function is still
	  running, leading to crashes and worse.
	  While this technically creates a reference cycle in most cases, this is not
	  actually a problem because the task has to be stopped before the element and pad
	  can get disposed and anything else leads to exactly the problem this is solving.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11489>

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

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

2024-10-25 16:50:35 +0300  Jordan Petridis <jordan@centricular.com>

	* docs/gst_plugins_cache.json:
	  ci: Update to f41
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11034>

2026-04-24 10:59:18 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ext/libav/gstavcodecmap.c:
	  avcodecmap: Declare undeclared loop iterator variable
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11419>

2023-09-05 21:39:46 +0300  Vivia Nikolaidou <vivia@ahiru.eu>

	* ext/libav/gstavcodecmap.c:
	  avcodecmap: Take the dual mono case into account
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5211>

2025-10-30 15:24:45 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* ext/libav/gstavviddec.c:
	  avviddec: Refcount codec frame associated with video frame
	  FFmpeg can call `get_buffer2` multiple times for the same codec frame.
	  Ensure we don't free the codec frame too soon.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10915>

2026-03-22 17:15:18 +0000  Tim-Philipp Müller <tim@centricular.com>

	* NEWS:
	* RELEASE:
	  modules: remove zombie RELEASE and NEWS files
	  They seem to have come back from the dead by mistake.

2026-03-22 15:00:47 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.29.1

=== release 1.29.1 ===

2026-03-22 14:56:37 +0000  Tim-Philipp Müller <tim@centricular.com>

	* NEWS:
	* RELEASE:
	* gst-libav.doap:
	* meson.build:
	  Release 1.29.1

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/11094>

2026-03-22 14:20:18 +0000  Tim-Philipp Müller <tim@centricular.com>

	* RELEASE:
	  modules: remove RELEASE from git, will be generated from template on dist

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/11094>

2025-10-30 15:27:17 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* ext/libav/gstavviddec.c:
	* ext/libav/gstavviddec.h:
	  avviddec: Fix handling of mixed interlaced content
	  The decoder would rapidly switch between progressive and interleaved
	  output when fed with PAFF / Telecine input.
	  If field order changes, we see a progressive frame after an interleaved
	  one, or we see a repeat field, switch to mixed interlace mode and stay
	  there.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9956>

2026-02-23 18:10:21 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* ext/libav/gstavviddec.c:
	  avviddec: Improve renegotiation debug message
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9956>

2026-02-23 18:08:17 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* ext/libav/gstavviddec.c:
	  avviddec: Simplify conditional code in context handling
	  Should not cause any functional change.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9956>

2025-07-08 16:56:00 +0200  Edward Hervey <edward@centricular.com>

	* ext/libav/gstav.c:
	  libav: Don't process lines that won't be outputted
	  They mostly all contain a trailing `\n`
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10557>

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

	* ext/libav/gstavviddec.c:
	  avviddec: Forward any ready video frames on gap events
	  New frames might be ready to be output since the last input frame.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10738>

2026-02-03 15:09:32 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/libav/gstavauddec.c:
	  avauddec: Don't increment the AVCodecContext frame counter
	  This is incremented by ffmpeg whenever a new frame is output, there's no
	  point in us incrementing it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10738>

2026-02-03 15:08:25 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/libav/gstavviddec.c:
	  avviddec: Don't increment the AVCodecContext frame counter
	  This is incremented by ffmpeg whenever a new frame is output, there's no
	  point in us incrementing it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10738>

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/10728>

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

	* ext/libav/gstavvidcmp.c:
	  gst: fix author name: add missing closing angle bracket
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10728>

2026-01-21 10:23:16 +0100  Edward Hervey <edward@centricular.com>

	* ext/libav/gstavviddec.c:
	  avviddec: Simplify picture_changed helper function
	  By extracting the various ffmpeg version checks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10578>

2025-10-16 16:30:47 +0200  Edward Hervey <edward@centricular.com>

	* ext/libav/gstavviddec.c:
	  avviddec: Handle field/order changes in mixed interlace mode
	  The whole point of mixed interlace mode is that the actual nature of
	  the frames will be specified by buffer flags.
	  This does not require a reconfiguration
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10578>

2025-11-14 10:50:51 +0100  Sven Püschel <s.pueschel@pengutronix.de>

	* ext/libav/gstavvidcmp.c:
	  gst-libav: avvidcmp: set colorimetry on AVFrame
	  Set the colorimetry on AVFrame based on the GstVideoFrame values.
	  This properly maps potential colorimetry information to libav.
	  Furthermore this fixes the avvideocompare element when used with
	  FFmpeg 8.0. When comparing video frames FFmpeg also uses the scale
	  filter. This has been reworked to use a new API [1], which checks
	  that the color primaries and transfer characteristics are not set
	  to RESERVED, which is the default 0 value. This causes the ff_test_fmt
	  function to fail which in turn causes the avvideocompare element to fail.
	  The implementation is copied from gst_ffmpeg_videoinfo_to_context, but
	  the color range has been adopted to also map the unknown range to
	  unspecified, similar to how gst_ffmpeg_videoinfo_to_context maps
	  AVCOL_RANGE_UNSPECIFIED to GST_VIDEO_COLOR_RANGE_UNKNOWN.
	  This was tested with FFmpeg 8.0 and the following sample pipeline:
	  gst-launch-1.0 videotestsrc num-buffers=100          \
	  ! video/x-raw,format=NV12                          \
	  ! videobalance brightness=0.005 hue=0.005          \
	  ! avvideocompare method=psnr stats-file=- name=cmp \
	  ! fakesink videotestsrc ! video/x-raw,format=NV12  \
	  ! cmp.
	  Without the patch it doesn't generate any stats output and when called
	  with GST_DEBUG=3 it shows the following errors for each frame:
	  Unsupported input (Operation not supported):
	  fmt:nv12 csp:gbr prim:reserved trc:reserved -> fmt:yuv420p csp:unknown prim:reserved trc:reserved
	  [1] https://github.com/FFmpeg/FFmpeg/commit/04ce01df0bb2d66e143bcfcea439afc2a1b8d96e
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10090>

2025-04-10 07:35:30 +0200  Robert Mader <robert.mader@collabora.com>

	* ext/libav/gstavviddec.c:
	  avviddec: Allow stride changes for some decoders
	  The ffmpeg documentation for get_buffer2() states:
	  "Some decoders do not support linesizes changing between frames."
	  For some well known decoders we know that they can.
	  Add a helper function listing those decoders/codecs and allow stride
	  changes for downstream pools in those cases.
	  This notably allows H26x to be used with with udmabuf / the
	  VideoDmabufPool independently of the video resolution, significantly
	  improving performance is various scenarios.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8963>

2026-01-27 18:36:19 +0000  Tim-Philipp Müller <tim@centricular.com>

	* RELEASE:
	* meson.build:
	  Back to development in main branch after 1.28.0
	  - Track orc main branch
	  - Track gst-plugins-rs main branch
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10616>

=== release 1.28.0 ===

