=== release 1.28.3 ===

2026-05-11 18:28:12 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst-devtools.doap:
	* meson.build:
	  Release 1.28.3

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

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

2026-02-11 00:19:19 +0000  Thibault Saunier <tsaunier@igalia.com>

	* validate/launcher/testsuites/check.py:
	  validate: blacklist check_edit_in_frames_with_framerate_mismatch from valgrind
	  This test triggers massive external library leaks (PipeWire, ALSA, OpenAL,
	  Pango/Cairo, libxml2) during audio sink autodetection that are not caused
	  by GStreamer code. With 240+ valgrind errors from third-party libraries,
	  suppressing them individually is not practical.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11284>

2026-02-10 16:26:21 +0000  Thibault Saunier <tsaunier@igalia.com>

	* validate/data/gstvalidate.supp:
	  validate: suppress GLib GTask thread pool init leak
	  GLib's GTask type initialization creates a one-time thread pool
	  during GDBus startup that is never freed. This is a known GLib
	  behavior, not a GStreamer leak.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11284>

2026-02-06 21:42:19 +0000  Thibault Saunier <tsaunier@igalia.com>

	* validate/gst/validate/gst-validate-scenario.c:
	  validate: scenario: fix action type leak in _should_execute_action
	  GST_VALIDATE_ACTION_GET_TYPE() uses gst_validate_get_action_type()
	  which returns a transfer-full reference. The macro is used inline
	  to access the flags field, but the returned reference is never
	  released, leaking the action type's refcount each time it's called.
	  Use _find_action_type() directly instead, which returns a borrowed
	  reference that doesn't need to be freed.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11284>

2026-04-07 20:07:19 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.28.2

=== release 1.28.2 ===

2026-04-07 20:02:23 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst-devtools.doap:
	* meson.build:
	  Release 1.28.2

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

	* meson.build:
	  Back to development after 1.28.1

=== release 1.28.1 ===

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

	* gst-devtools.doap:
	* meson.build:
	  Release 1.28.1

2026-02-22 13:28:57 +0200  Sebastian Dröge <sebastian@centricular.com>

	* dots-viewer/Cargo.lock:
	  devtools: dots-viewer: Update Rust dependencies
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10870>

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

2025-12-01 19:19:18 +0100  Alicia Boya García <aboya@igalia.com>

	* validate/launcher/utils.py:
	  validate: Produce file:/// URIs in Python 3.14
	  Since Python 3.14, calls to `urljoin()` with "file:" as base URI result
	  in no authority part: https://github.com/python/cpython/issues/125974
	  file URIs without an authority part are technically valid according to
	  RFC 8089 but are generally less compatible. The URI handler of filesrc
	  was not capable of handling them, for instance, for which a fix is now
	  proposed in MR 10259 [^1].
	  This patch changes validate usage of urljoin() to use "file://" as base
	  URI instead of "file:", which produces the more compatible three slash
	  file URIs in all versions of Python.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4757
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10260>

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-devtools.doap:
	* meson.build:
	  Release 1.27.90

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

	* validate/gst/validate/validate.c:
	* validate/tests/check/validate/utilities.c:
	  gst: Remove various wrongly added includes
	  These were most likely added by clangd automatically.
	  Please use `-header-insertion=never` with clangd!
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8519>

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

	* validate/launcher/main.py:
	  gst-validate-launcher: Fix typo in --help
	  s/sdterr/stderr
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10409>

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

	* dots-viewer/Cargo.lock:
	  devtools: dots-viewer: Update Rust dependencies
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10385>

2025-11-30 23:12:03 -0500  Daniel Morin <daniel.morin@collabora.com>

	* modelinfo-helper/README.md:
	* modelinfo-helper/modelinfo-generator.py:
	  devtool: New script to generate ModelInfo from ONNX
	  - Script will prompt user for information required not analytics from ONNX file
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10244>

2025-12-05 15:19:34 -0300  Thibault Saunier <tsaunier@igalia.com>

	* dots-viewer/meson.build:
	  dots-viewer: add build directory to devenv PATH
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10354>

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-devtools.doap:
	* meson.build:
	  Release 1.27.50

2025-12-02 11:54:45 -0300  Thibault Saunier <tsaunier@igalia.com>

	* dots-viewer/static/js/gstdots.js:
	  dots-viewer: debounce SVG rendering during initial load
	  Pipelines are inserted at the top of the list as they arrive, making
	  each one briefly visible and triggering SVG generation. Debounce the
	  IntersectionObserver activation until WebSocket traffic settles.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10279>

2025-11-21 08:38:15 -0300  Thibault Saunier <tsaunier@igalia.com>

	* validate/gst/validate/gst-validate-report.h:
	  validate: remove unimplemented gst_validate_report_add_message API
	  This function was declared but never implemented. Removing it to clean up
	  the API surface.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10172>

2025-11-07 12:14:43 +0000  Philippe Normand <philn@igalia.com>

	* debug-viewer/GstDebugViewer/Data.py:
	  debug-viewer: Make the 0x prefix optional in thread ID regexes
	  It was removed for Linux platforms (at least) in
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9913
	  Driving-by, fixing a couple SyntaxWarnings by making more regex strings raw.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10041>

2025-05-21 16:14:26 +0200  Thibault Saunier <tsaunier@igalia.com>

	* validate/gst-libs/gst/video/gstvalidatessim.c:
	  validate: ssim: Minor output enhancements
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10044>

2025-05-28 13:37:37 +0200  Thibault Saunier <tsaunier@igalia.com>

	* validate/gst-libs/gst/video/gstvalidatessim.c:
	* validate/plugins/ssim/gstvalidatessim.c:
	  Validate: ssim: Check all images before reporting errors
	  Previously, the ssim validation would stop after the first error.
	  This commit modifies the validation to check all images and report all errors.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10044>

2025-11-06 11:59:19 +0100  Stéphane Cerveau <scerveau@igalia.com>

	* validate/launcher/testsuites/check.py:
	  ci: force Vulkan llvmpipe driver for tests
	  Vulkan unit tests should be run exclusively with llvmpipe driver.
	  This patch replaces the MESA specific environment variable, to select
	  the llvmpipe, with the Vulkan general environment variable to force the
	  llvmpipe IDC (installable driver client). With it the instance will load
	  only that driver, instead of only selecting it after loading all the
	  available drivers.
	  Also, this patch removed, from CI blacklist, the Vulkan tests, so now
	  all of them are ran by the CI.
	  Fixes #4612
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8862>

2025-11-01 12:50:46 +0200  Sebastian Dröge <sebastian@centricular.com>

	* dots-viewer/Cargo.lock:
	* dots-viewer/Cargo.toml:
	  dots-viewer: Update static-files dependency
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9976>

2025-11-01 12:50:46 +0200  Sebastian Dröge <sebastian@centricular.com>

	* dots-viewer/Cargo.lock:
	* dots-viewer/Cargo.toml:
	  dots-viewer: Update Rust dependencies
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9974>

2025-06-13 15:29:03 -0400  Thibault Saunier <tsaunier@igalia.com>

	* validate/gst/validate/gst-validate-pad-monitor.c:
	  validate: Make segment.time mismatch a warning for reverse playback
	  Demux elements may have issues calculating accurate segment.time values
	  during reverse playback seeks. For forward playback, segment.time should
	  exactly match the seek position for accurate seeks, but reverse playback
	  has additional complexity that can cause small discrepancies.
	  Change the validation from critical to warning for reverse playback to
	  avoid test failures while still flagging the issue for potential fixes.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9867>

2025-08-22 09:40:53 -0400  Thibault Saunier <tsaunier@igalia.com>

	* validate/gst/validate/gst-validate-scenario.c:
	  validate: Fix inverted logic in remove-feature action
	  The condition for checking whether we're removing a feature was inverted,
	  causing the remove-feature action to require a rank parameter (which it
	  shouldn't) and the set-rank action to not require one (which it should).
	  Also ensure the plugin is loaded before removing the feature to prevent
	  the feature from being re-added when the plugin is loaded again later.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9867>

2025-08-08 10:58:13 -0400  Thibault Saunier <tsaunier@igalia.com>

	* docs/gst-validate-test-file.md:
	* validate/gst/validate/validate.c:
	  validate: Add a `tested-elements` metadata to force their class_init to be called
	  This allows implementing element specific action types.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9867>

2024-09-09 11:40:41 -0300  Thibault Saunier <tsaunier@igalia.com>

	* validate/gst/validate/gst-validate-utils.c:
	  validate: utils: Retrieve global variables in _resolve_expression
	  There is not good reason for now getting variables from the globals
	  variables by default
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9867>

2025-06-14 09:55:59 -0400  Thibault Saunier <tsaunier@igalia.com>

	* validate/gst/validate/gst-validate-report.c:
	  validate-report: Include issue ID when printing report level
	  Add the issue ID (as a string) to the report level output to make it
	  easier to identify specific issues when debugging validation failures.
	  This helps correlate reports with their corresponding issue definitions.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9867>

2024-12-09 16:54:08 -0300  Thibault Saunier <tsaunier@igalia.com>

	* validate/gst/validate/gst-validate-scenario.c:
	  validate: Minor typo fix
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9867>

2025-10-18 19:37:00 -0300  Thibault Saunier <tsaunier@igalia.com>

	* validate/gst/validate/gst-validate-report.h:
	  validate: add missing GST_VALIDATE_API annotation
	  The gst_validate_report_add_message function was missing the GST_VALIDATE_API
	  macro needed for proper symbol visibility in the public API.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9863>

2025-10-14 13:58:33 -0300  Thibault Saunier <tsaunier@igalia.com>

	* validate/launcher/apps/gstcheck.py:
	  validate: use meson compile instead of ninja directly
	  This is more portable and automatically activates the Visual Studio
	  environment on Windows when required.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9842>

2025-10-13 00:26:44 -0400  Doug Nazar <nazard@nazar.ca>

	* validate/gst/validate/gst-validate-scenario.c:
	  validate: Fix crash during scenario cleanup
	  The scenario can be finalized while still receiving callbacks from elements
	  being removed from the pipeline since there is no reference being held.
	  Callback then crashes iterating sinks since they've already been freed.
	  Add a weak reference to the scenario for the callbacks.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9834>

2025-10-05 14:56:35 -0400  Xavier Claessens <xclaessens@netflix.com>

	* validate/launcher/meson.build:
	* validate/plugins/meson.build:
	  meson: Add missing devenv values
	  Those are the differences spotted between:
	  - meson devenv -C builddir --dump meson.env
	  - ./gst-env.py --only-environment > gst.env
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9800>

2025-10-04 15:18:53 -0400  Doug Nazar <nazard@nazar.ca>

	* validate/gst/validate/gst-validate-override.h:
	* validate/gst/validate/gst-validate-runner.h:
	* validate/gst/validate/media-descriptor-parser.h:
	* validate/gst/validate/media-descriptor-writer.h:
	  devtools: Add G_GNUC_WARN_UNUSED_RESULT to constructors
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9798>

2025-10-05 14:59:48 -0400  Doug Nazar <nazard@nazar.ca>

	* validate/gst/validate/gst-validate-scenario.c:
	  gst: mark items that are unused when checks or asserts are disabled
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9795>

2025-10-02 22:59:49 +0200  Michiel Westerbeek <happylinks@gmail.com>

	* dots-viewer/static/css/graphviz.svg.css:
	  dots-viewer: sans-serif, tabular-nums
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9782>

2025-10-02 22:55:02 +0200  Michiel Westerbeek <happylinks@gmail.com>

	* dots-viewer/static/overlay.html:
	  dots-viewer: prevent title cut-off
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9782>

2025-10-02 22:50:28 +0200  Michiel Westerbeek <happylinks@gmail.com>

	* dots-viewer/README.md:
	  dots-viewer: update readme
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9782>

2025-10-02 22:50:20 +0200  Michiel Westerbeek <happylinks@gmail.com>

	* dots-viewer/static/js/jquery.graphviz.svg.js:
	* dots-viewer/static/js/svg-overlay-manager.js:
	* dots-viewer/static/overlay.html:
	  dots-viewer: focus clusters on double click
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9782>

2025-10-02 22:49:59 +0200  Michiel Westerbeek <happylinks@gmail.com>

	* dots-viewer/static/js/gstdots.js:
	* dots-viewer/static/js/jquery.graphviz.svg.js:
	* dots-viewer/static/js/svg-overlay-manager.js:
	  dots-viewer: fixed w/s zooming on load
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9782>

2025-10-02 22:49:30 +0200  Michiel Westerbeek <happylinks@gmail.com>

	* dots-viewer/static/css/graphviz.svg.css:
	* dots-viewer/static/index.html:
	  dots-viewer: improve css, prevent horizontal navigation and show that nodes/clusters are clickable
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9782>

2025-10-02 22:49:03 +0200  Michiel Westerbeek <happylinks@gmail.com>

	* dots-viewer/package.json:
	* dots-viewer/webpack.config.js:
	  dots-viewer: fixed webpack config issue, define-env is not needed anymore
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9782>

2025-09-25 08:40:36 -0400  Doug Nazar <nazard@nazar.ca>

	* validate/gst/validate/gst-validate-bin-monitor.h:
	* validate/gst/validate/gst-validate-element-monitor.h:
	* validate/gst/validate/gst-validate-media-info.h:
	* validate/gst/validate/gst-validate-monitor.h:
	* validate/gst/validate/gst-validate-override-registry.h:
	* validate/gst/validate/gst-validate-pad-monitor.h:
	* validate/gst/validate/gst-validate-pipeline-monitor.h:
	* validate/gst/validate/gst-validate-report.h:
	* validate/gst/validate/gst-validate-reporter.h:
	* validate/gst/validate/gst-validate-runner.h:
	* validate/gst/validate/gst-validate-scenario.h:
	* validate/gst/validate/media-descriptor-parser.h:
	* validate/gst/validate/media-descriptor-writer.h:
	  devtools: Add G_GNUC_WARN_UNUSED_RESULT to funcs with transfer full returns
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9774>

2025-09-27 16:31:22 +0100  Tim-Philipp Müller <tim@centricular.com>

	* validate/launcher/apps/gstvalidate.py:
	  validate: update links for gitlab issues moved from gst-plugins-bad to monorepo
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9755>

2025-09-27 16:19:36 +0100  Tim-Philipp Müller <tim@centricular.com>

	* validate/launcher/apps/gstvalidate.py:
	  validate: update links for gitlab issues moved from gst-plugins-base to monorepo
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9755>

2025-09-27 16:06:10 +0100  Tim-Philipp Müller <tim@centricular.com>

	* validate/launcher/apps/gstvalidate.py:
	  validate: update links for gitlab issues moved from gst-plugins-good to monorepo
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9755>

2025-09-08 17:50:32 -0400  Doug Nazar <nazard@nazar.ca>

	* validate/gst/validate/gst-validate-pad-monitor.c:
	* validate/gst/validate/gst-validate-scenario.c:
	* validate/gst/validate/media-descriptor-writer.c:
	  gst: Don't use g_assert() around production code
	  If G_DISABLE_ASSERT is defined the code will not be compiled.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9662>

2025-09-08 17:47:48 -0400  Doug Nazar <nazard@nazar.ca>

	* validate/gst/validate/gst-validate-pad-monitor.c:
	  validate: Check return from gst_pad_iterate_internal_links()
	  If G_DISABLE_CHECKS is defined, passing the NULL from
	  gst_pad_iterate_internal_links() to gst_iterator_next()
	  will cause a SIGSEGV.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9662>

2025-08-20 17:05:59 +0200  Vivienne Watermeier <vwatermeier@igalia.com>

	* validate/launcher/apps/gstcheck.py:
	  devtools: look for glib.supp file in XDG_DATA_DIRS
	  Hardcoding the path as "/usr/share/glib-2.0/valgrind/glib.supp"
	  causes gst-validate-launcher --valgrind to fail on every test
	  on systems where that path doesn't exist, such as NixOS.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9590>

2025-09-07 20:39:44 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.27.2

=== release 1.27.2 ===

2025-09-07 20:34:55 +0100  Tim-Philipp Müller <tim@centricular.com>

	* NEWS:
	* RELEASE:
	* gst-devtools.doap:
	* meson.build:
	  Release 1.27.2

2025-09-06 11:08:47 +0300  Sebastian Dröge <sebastian@centricular.com>

	* validate/gst/validate/media-descriptor-writer.c:
	* validate/tools/gst-validate.c:
	  gst: Change usage of gst_element_state_*() to gst_state_*()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9655>

2025-09-04 13:35:50 -0400  Doug Nazar <nazard@nazar.ca>

	* validate/gst/validate/gst-validate-scenario.c:
	  validate: fix leak of sink during check-last-sample
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9641>

2025-09-01 21:02:22 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* meson.build:
	* validate/gst-libs/gst/video/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-07-08 10:08:42 -0400  Doug Nazar <nazard@nazar.ca>

	* validate/gst/validate/gst-validate-scenario.c:
	  validate: Clarify list ref handling in gst_validate_action_set_done
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9349>

2025-06-11 01:43:55 -0400  Doug Nazar <nazard@nazar.ca>

	* validate/gst/validate/gst-validate-scenario.c:
	  validate: fix memory leak
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9349>

2025-07-11 18:04:04 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* validate/launcher/testsuites/check.py:
	  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-06-14 09:47:20 -0400  Thibault Saunier <tsaunier@igalia.com>

	* validate/gst/validate/gst-validate-scenario.c:
	  validate: scenario: Clear wait_message_action on stop
	  When executing a stop action, ensure that any pending wait_message_action
	  is cleared and unreffed to prevent it from being executed after the
	  scenario has been stopped. This prevents potential crashes or unexpected
	  behavior when stopping a scenario that has a pending wait action.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9013>

2025-06-17 09:00:07 -0400  Thibault Saunier <tsaunier@igalia.com>

	* validate/gst/validate/gst-validate-scenario.c:
	  validate: scenario: Fix NULL context usage in action done callback
	  Use the local context variable that was retrieved earlier instead of
	  action->priv->context which is always NULL at this point since we
	  reset it right before. This ensures we invoke the callback on the
	  correct context.
	  And make sure that the wait message still has a reference when setting done
	  otherwise it is unref before calling the context invoke function
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9013>

2025-06-14 09:39:03 -0400  Thibault Saunier <tsaunier@igalia.com>

	* validate/gst/validate/doc/meta-overrides.md:
	* validate/gst/validate/gst-validate-internal.h:
	* validate/gst/validate/gst-validate-override-registry.c:
	* validate/gst/validate/gst-validate-scenario.c:
	* validate/gst/validate/validate.c:
	* validate/gst/validate/validate.res:
	* validate/tests/launcher_tests/overrides.validatetest:
	  validate: Add support for overrides field in meta structure
	  Add support for an 'overrides' field in validatetest meta structures that
	  allows changing issue severity levels during test execution. This enables
	  tests to pass when encountering known issues by downgrading their severity.
	  The overrides field accepts an array of change-severity structures with:
	  - issue-id: The issue ID to override
	  - new-severity: New severity level (critical, warning, issue, ignore)
	  Currently only change-severity overrides are supported. The feature follows
	  the same pattern as expected-issues and is only available in .validatetest
	  files, not .scenario files.
	  Includes comprehensive documentation and a test case demonstrating the
	  functionality.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9013>

2025-08-10 11:00:18 -0400  Thibault Saunier <tsaunier@igalia.com>

	* dots-viewer/static/js/jquery.graphviz.svg.js:
	  dots-viewer: Reindent and remove unused code in jquery.graphviz.svg.js
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9547>

2025-08-10 10:55:47 -0400  Thibault Saunier <tsaunier@igalia.com>

	* dots-viewer/static/js/pipeline-navigation.js:
	* dots-viewer/static/js/svg-overlay-manager.js:
	* dots-viewer/static/js/text-ellipsizer.js:
	* dots-viewer/static/js/tooltip.js:
	* dots-viewer/static/overlay.html:
	  dots-viewer: Refactor JavaScript into modular architecture
	  Split monolithic embedded JavaScript in overlay.html into dedicated modules:
	  - tooltip.js: Custom tooltip functionality with interactive copy/paste mode
	  - pipeline-navigation.js: Clickable pipeline-dot references for navigation
	  - text-ellipsizer.js: Text ellipsizing with tooltip integration
	  - svg-overlay-manager.js: Main coordinator orchestrating all functionality
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9547>

2025-08-05 11:38:05 -0400  Thibault Saunier <tsaunier@igalia.com>

	* dots-viewer/static/overlay.html:
	  dots-viewer: make pipeline dot references clickable for navigation
	  When GStreamer pipeline graphs contain references to other pipeline dot files,
	  users should be able to navigate between related pipeline views by clicking
	  on these references. This enables exploring complex pipeline hierarchies
	  where one pipeline references sub-pipelines.
	  The implementation detects text elements containing pipeline-dot references,
	  styles them as web links, and handles click events to navigate to the
	  referenced pipeline while preserving existing text selection and drag
	  functionality for other elements.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9547>

2025-08-05 11:15:50 -0400  Thibault Saunier <tsaunier@igalia.com>

	* dots-viewer/static/css/graphviz.svg.css:
	* dots-viewer/static/overlay.html:
	  dots-viewer: Make text copyable while preserving drag functionality
	  Enable text selection on SVG text elements by changing CSS user-select
	  properties from 'none' to 'text' and cursor from 'default' to 'text'.
	  Add JavaScript event handling to intercept mousedown events on text
	  elements, preventing dragscroll interference while allowing normal text
	  selection. This preserves the existing drag-to-pan functionality for
	  non-text areas while making text elements selectable and copyable.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9547>

2025-08-18 17:28:37 -0400  Thibault Saunier <tsaunier@igalia.com>

	* validate/gst/validate/gst-validate-http-actions.c:
	  validate: http-actions: Replace GUri with GstURI for GLib 2.64 compatibility
	  GUri was added in GLib 2.66, but GStreamer claims to build with 2.64.
	  Replace GUri usage with equivalent GstURI functions to maintain
	  backward compatibility.
	  Fixes #4607
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9572>

2025-07-15 17:14:04 +0300  Sebastian Dröge <sebastian@centricular.com>

	* dots-viewer/Cargo.lock:
	* dots-viewer/Cargo.toml:
	  dots-viewer: Update Rust dependencies
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9397>

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-devtools.doap:
	* meson.build:
	  Release 1.27.1

2025-06-17 06:32:16 -0400  Doug Nazar <nazard@nazar.ca>

	* validate/gst/validate/gst-validate-scenario.c:
	  validate: Ignore error msgs when executing next action
	  When processing an expected error msg, the test for if the next action
	  was a message would trigger and we'd never execute the next action
	  causing a timeout.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9118>

2025-06-17 06:29:46 -0400  Doug Nazar <nazard@nazar.ca>

	* validate/gst/validate/gst-validate-scenario.c:
	  validate: Fix memory leaks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9118>

2025-05-30 15:25:52 -0400  Doug Nazar <nazard@nazar.ca>

	* validate/gst/validate/gst-validate-pad-monitor.c:
	  validate: Pass correct argument size to va_arg function
	  sizeof(int) != sizeof (GType) and can cause an invalid access.
	  Also one function call was missing the terminator altogether.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9118>

2025-05-30 15:29:23 -0400  Doug Nazar <nazard@nazar.ca>

	* validate/gst/validate/gst-validate-scenario.c:
	  validate: Fix a memory leak
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9118>

2025-05-30 15:30:10 -0400  Doug Nazar <nazard@nazar.ca>

	* validate/gst/validate/validate.c:
	  validate: Reset mutex to NUL to allow re-init
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9118>

2025-05-28 08:53:21 -0400  Doug Nazar <nazard@nazar.ca>

	* validate/tests/check/validate/expression_parser.c:
	* validate/tests/check/validate/monitoring.c:
	* validate/tests/check/validate/overrides.c:
	* validate/tests/check/validate/padmonitor.c:
	* validate/tests/check/validate/reporting.c:
	* validate/tests/check/validate/scenario.c:
	* validate/tests/check/validate/utilities.c:
	  validate: tests: use fixtures to init/deinit and fix leaks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9118>

2025-05-28 09:08:05 -0400  Doug Nazar <nazard@nazar.ca>

	* validate/gst/validate/flow/gstvalidateflow.c:
	* validate/gst/validate/gst-validate-internal.h:
	* validate/gst/validate/gst-validate-report.c:
	* validate/gst/validate/validate.c:
	  validate: cleanup several items on shutdown
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9118>

2025-05-28 09:01:08 -0400  Doug Nazar <nazard@nazar.ca>

	* validate/gst/validate/flow/formatting.c:
	* validate/gst/validate/gst-validate-report.c:
	* validate/gst/validate/gst-validate-scenario.c:
	* validate/plugins/ssim/gstvalidatessim.c:
	* validate/tools/gst-validate-transcoding.c:
	  validate: Fix various memory leaks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9118>

2025-05-28 09:04:21 -0400  Doug Nazar <nazard@nazar.ca>

	* validate/gst/validate/gst-validate-scenario.c:
	  validate: ensure we shutdown execute_actions source
	  Actions are no longer always called directly from the main loop
	  so we can't depend on G_SOURCE_REMOVE to remove it. It's also
	  possible while returning up the call chain after running stop
	  to try to re-add it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9118>

2025-06-12 13:56:48 +0200  Arnout Engelen <arnout@bzzt.net>

	* dots-viewer/Cargo.lock:
	* dots-viewer/Cargo.toml:
	  devtools: dots-viewer: sort static files
	  The fact that static-files followed the (nondeterministic) file system
	  order is likely what caused the dots-viewer executable not to be binary
	  reproducible. Enabling this feature that was added upstream should fix
	  it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9208>

2025-06-10 14:41:22 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* scripts/gen-changelog.py:
	* validate/launcher/testsuites/check.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-03 10:27:06 +0200  Thibault Saunier <tsaunier@igalia.com>

	* validate/launcher/baseclasses.py:
	  validate: launcher: Downgrade non-critical log messages from ERROR to INFO
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9165>

2024-09-24 09:48:54 -0300  Thibault Saunier <tsaunier@igalia.com>

	* validate/launcher/baseclasses.py:
	  validate: launcher: Remove log files for passing tests by default
	  Adding an option to keep them no matter what.
	  Log files are often pretty large and keeping them around can be annoying,
	  usually people won't look at logs files for passing tests, and we do not
	  even print them out.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9127>

2025-04-11 13:24:02 -0400  Thibault Saunier <tsaunier@igalia.com>

	* validate/launcher/baseclasses.py:
	  validate: launcher: Allow using debug log colors when those are being redirected
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9127>

2025-05-28 11:20:16 +0200  Thibault Saunier <tsaunier@igalia.com>

	* validate/gst/validate/gst-validate-pad-monitor.c:
	  validate: Do not check that timestamp are in input range for encoders
	  As some encoder offset the segment range to handle bframes, that check doesn't make sense.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9127>

2025-05-16 13:32:08 +0200  Thibault Saunier <tsaunier@igalia.com>

	* validate/gst/validate/gst-validate-reporter.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-21 09:42:17 -0400  Doug Nazar <nazard@nazar.ca>

	* validate/launcher/baseclasses.py:
	  validate: Escape '%' in Valgrind log filenames
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9042>

2025-05-21 09:41:14 -0400  Doug Nazar <nazard@nazar.ca>

	* validate/gst/validate/gst-validate-scenario.c:
	  validate: Fix marking actions done
	  Don't take extra ref during calling done() from 'stream-selection'
	  Mark as done actions that are completed immediately
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9042>

2025-05-21 09:37:30 -0400  Doug Nazar <nazard@nazar.ca>

	* validate/gst/validate/gst-validate-report.c:
	  validate: Free log files
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9042>

2025-05-21 09:36:22 -0400  Doug Nazar <nazard@nazar.ca>

	* validate/gst/validate/gst-validate-mockdecryptor.c:
	* validate/gst/validate/gst-validate-pipeline-monitor.c:
	* validate/gst/validate/gst-validate-reporter.c:
	* validate/gst/validate/gst-validate-scenario.c:
	* validate/gst/validate/validate.c:
	* validate/plugins/ssim/gstvalidatessim.c:
	* validate/tests/check/validate/monitoring.c:
	* validate/tests/check/validate/padmonitor.c:
	* validate/tests/check/validate/reporting.c:
	* validate/tests/check/validate/scenario.c:
	  validate: Various minor cleanups for lost memory or use after free
	  Includes several missing unref(), clear() or free() calls.
	  Reset current_seek since we just cleared all the seeks.
	  Reset all_configs to NULL to prevent double clearing.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9042>

2025-03-31 11:10:12 -0300  Thibault Saunier <tsaunier@igalia.com>

	* validate/gst/validate/gst-validate-scenario.c:
	  validate: scenario: Fix race condition when ignoring EOS
	  The part of the code that is commented with:
	  ```
	  /* gst_validate_action_set_done() does not finish the action
	  * immediately. Instead, it posts a task to the main thread to do most
	  * of the work in _action_set_done().
	  *
	  * While the EOS handling lock guarantees that if an action had to call
	  * gst_validate_action_set_done() it has done so, it does not guarantee
	  * that _action_set_done() has been called.
	  *
	  * Is it possible that this handler is run before _action_set_done(), so
	  * we check at this point for actions that have a pending_set_done and
	  * call it before continuing. */
	  ```
	  was not being executed in the case where the scenario was 'ignoring EOS'
	  while it was also required.
	  Also fix potential use after free in that specific code path.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9014>

2025-05-20 21:20:02 +0200  Thibault Saunier <tsaunier@igalia.com>

	* validate/launcher/apps/gstvalidate.py:
	* validate/launcher/baseclasses.py:
	  validate: Do not list test files that are not autogenerated in .testlist
	  It was useless, adding the .validatetest to the git repo should be enough
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9035>

2025-05-17 20:23:56 -0400  Doug Nazar <nazard@nazar.ca>

	* validate/launcher/baseclasses.py:
	  validate: baseclasses: Reset Test timeouts between iterations
	  Several options (valgrind, gdb, rr) increase the timeout each time
	  the tests start. Eventually reaching inf and causing a conversion
	  to integer to throw an exception.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9019>

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-04-01 18:24:10 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* dots-viewer/meson.build:
	  devtools: Fix meson warning when calling add_languages()
	  WARNING: add_languages is missing native:, assuming languages are wanted for both host and build.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8753>

2025-04-26 19:28:56 +0200  Alexander Slobodeniuk <aslobodeniuk@fluendo.com>

	* validate/gst/validate/gst-validate-mockdecryptor.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-01 09:01:41 -0300  Thibault Saunier <tsaunier@igalia.com>

	* dots-viewer/.gitignore:
	* dots-viewer/bundle-entry.js:
	* dots-viewer/package-lock.json:
	* dots-viewer/package.json:
	* dots-viewer/static/dist/bundle.css:
	* dots-viewer/static/dist/bundle.js:
	* dots-viewer/static/dist/bundle.js.LICENSE.txt:
	* dots-viewer/static/js/fuse.min.mjs:
	* dots-viewer/static/js/gstdots.js:
	* dots-viewer/static/js/viz-standalone.mjs:
	* dots-viewer/static/overlay.html:
	* dots-viewer/update_vendored.sh:
	* dots-viewer/webpack.config.js:
	  devtools: dots-viewer: Bundle js dependncies using webpack
	  And avoid relying on cdn's and require access to the network to use `dots-viewer`
	  And git ignore `node_modules`
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4334
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8754>

2025-03-23 01:59:48 +0100  Jan Tojnar <jtojnar@gmail.com>

	* validate/gst/validate/meson.build:
	  validate: Add gst-video to Requires in pkg-config
	  `gst/validate/validate.h` includes `gst/validate/gst-validate-media-info.h`,
	  which in turn includes `gst/pbutils/pbutils.h` but `gstreamer-pbutils-1.0`
	  was only listed in `Requires.private` field of `gstreamer-validate-1.0.pc`.
	  This would cause projects linking against `gstreamer-validate-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-03-26 09:56:03 -0300  Thibault Saunier <tsaunier@igalia.com>

	* dots-viewer/static/js/gstdots.js:
	  dotsviewer: Fix search
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8696>

2025-03-21 09:00:04 -0300  Thibault Saunier <tsaunier@igalia.com>

	* dots-viewer/static/overlay.html:
	  devtools: dots-viewer: Add a button to download the SVG file
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8696>

2025-03-13 16:54:22 -0300  Thibault Saunier <tsaunier@igalia.com>

	* validate/launcher/baseclasses.py:
	  validate: baseclasses: Reset Test.extra_logfiles when copying to start an iteration
	  Otherwise we get a big mixup with all iteration pointing to all the extra_logfiles
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8640>

2025-03-12 19:16:03 +0200  Sebastian Dröge <sebastian@centricular.com>

	* dots-viewer/Cargo.lock:
	* dots-viewer/Cargo.toml:
	  devtools: dots-viewer: Update dependencies and make windows dependencies conditional
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8624>

2025-03-12 13:59:45 +0100  Tim-Philipp Müller <tim@centricular.com>

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

