=== release 1.26.1 === 2025-04-24 20:20:14 +0100 Tim-Philipp Müller * NEWS: * RELEASE: * gst-devtools.doap: * meson.build: Release 1.26.1 2025-04-01 09:01:41 -0300 Thibault Saunier * 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: 2025-03-23 01:59:48 +0100 Jan Tojnar * 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: 2025-03-12 19:16:03 +0200 Sebastian Dröge * dots-viewer/Cargo.lock: * dots-viewer/Cargo.toml: devtools: dots-viewer: Update dependencies and make windows dependencies conditional Part-of: 2025-03-11 20:23:16 +0000 Tim-Philipp Müller * meson.build: Back to development after 1.26.0 Part-of: === release 1.26.0 === 2025-03-11 20:14:44 +0000 Tim-Philipp Müller * NEWS: * RELEASE: * gst-devtools.doap: * meson.build: Release 1.26.0 2025-02-28 11:25:00 -0500 Nicolas Dufresne * validate/gst/validate/gst-validate-http-actions.c: validate: Do not use G_URI_FLAGS_NONE symbol from 2.66 The GStreamer project currently requires GLib 2.64, so just avoid this new API for now. Part-of: 2025-02-26 07:12:02 -0300 Thibault Saunier * dots-viewer/Cargo.toml: dots-viewer: cargo: Mark as not being part of a workspace Otherwise if GStreamer is checked out inside a directory that has a `Cargo.toml` file, building fails with: ``` error: current package believes it's in a workspace when it's not: current rust-project/gstreamer/subprojects/gst-devtools/dots-viewer/Cargo.toml workspace rust-project/Cargo.toml This may be fixable by adding `gstreamer/subprojects/gst-devtools/dots-viewer` to the `workspace.members` array of the manifest located at: rust-project/Cargo.toml Alternatively, to keep it out of the workspace, add the package to the `workspace.exclude` array, or add an empty `[workspace]` table to the package's manifest. ``` Part-of: 2025-01-28 11:45:32 +0100 Jochen Henneberg * validate/gst/validate/gst-validate-report.c: validate: Don't print to stdout on bail out Otherwise, if the output is multiline like from expected/actual file comparison mismatch, meson will parse the lines for TAP formatted strings and report an error. In that case the tests is accidently SKIPPED instead of FAIL. Part-of: 2025-01-28 11:43:50 +0100 Jochen Henneberg * validate/gst/validate/flow/gstvalidateflow.c: validate: Get proper error message on diff error instead of assert Part-of: 2025-01-28 11:42:19 +0100 Jochen Henneberg * validate/gst/validate/flow/gstvalidateflow.c: validate: 'bat' is optional If 'bat' is not installed G_IS_SUBPROCESS (subprocess) fails and the error message is misleading. Part-of: 2025-02-24 14:08:59 -0300 Thibault Saunier * dots-viewer/cargo_wrapper.py: dots-viewer: cargo_wrapper: Force log file to be written in utf-8 Part-of: 2024-12-11 17:28:21 -0300 Thibault Saunier * validate/gst/validate/gst-validate-http-actions.c: * validate/gst/validate/gst-validate-scenario.c: * validate/gst/validate/meson.build: validate: Implement a 'http-request' action type Which is useable with our own HTTP server Part-of: 2024-12-10 23:42:56 -0300 Thibault Saunier * validate/gst/validate/gst-validate-scenario.c: validate: scenario: Reset the pipeline on expected ERROR messages while executing actions Otherwise the scenario gets into an inconsistent state and users won't be able to properly recover. Part-of: 2024-12-10 23:37:54 -0300 Thibault Saunier * validate/gst/validate/gst-validate-scenario.c: validate: scenario: Better log expected Error messages on the bus Part-of: 2024-12-10 18:23:38 -0300 Thibault Saunier * validate/launcher/RangeHTTPServer.py: validate: launcher: add HTTP server control endpoints Add administrative REST API endpoints to RangeHTTPServer allowing tests to: - Configure HTTP return codes for specific paths: * PUT /admin/status-rules to set rules * Support time-based expiry with "during" parameter * Support count-based expiry with "repeat" parameter * DELETE /admin/status-rules/ to remove rules - Track failure statistics: * PUT /admin/failure-counts/start to begin monitoring * GET /admin/failure-counts/ to get current count Useful for testing HTTP retry mechanisms, error handling and failure recovery behaviors. Part-of: 2024-12-10 13:00:32 -0300 Thibault Saunier * validate/gst/validate/gst-validate-scenario.c: * validate/launcher/RangeHTTPServer.py: * validate/launcher/baseclasses.py: validate: scenario: Add an action type to start the http scenario Part-of: 2025-02-23 23:52:57 +0000 Tim-Philipp Müller * meson.build: Back to development after 1.25.90 === release 1.25.90 === 2025-02-23 23:44:10 +0000 Tim-Philipp Müller * NEWS: * RELEASE: * gst-devtools.doap: * meson.build: Release 1.25.90 2024-12-06 18:13:07 +0100 Alicia Boya García * validate/launcher/apps/gstvalidate.py: * validate/launcher/baseclasses.py: validate: miscellaneous Python cleanups I spent too much time trying to navigate validate Python code to figure out where a test was coming from. Hoping that it's slightly easier for the next person, this patch: * Adds type annotations to setup_tests(), for the sake of code navigation. * Adds comments matching each test generator with the patterns of test names it produces. * Removes an if statement in `register_default_scenarios()` where both branches have the same exact code with the same exact very long list. * Removes NamedDic [sic] and replaces it with SimpleNamespace from the standard library (3.3+) which has the same purpose and API. Part-of: 2025-02-19 12:49:31 -0300 Thibault Saunier * dots-viewer/static/js/gstdots.js: dots-viewer: Move away from forEach in js Part-of: 2025-02-19 12:27:08 -0300 Thibault Saunier * dots-viewer/src/main.rs: * dots-viewer/static/js/gstdots.js: dots-viewer: Remove containing div when removing last dot file from a folder Part-of: 2025-02-14 10:39:24 -0300 Thibault Saunier * dots-viewer/static/overlay.html: dots-viewer: Add `dragscroll` support for better UX Patch suggested by Rubén Gonzalez Part-of: 2025-02-11 22:37:14 -0300 Thibault Saunier * dots-viewer/Cargo.toml: * dots-viewer/README.md: * dots-viewer/meson.build: * dots-viewer/src/gstdump.rs: devtools: Remove the gstdump binary as the 'dots' tracer replaces it Part-of: 2025-02-11 22:22:30 -0300 Thibault Saunier * dots-viewer/Cargo.lock: * dots-viewer/Cargo.toml: * dots-viewer/src/main.rs: devtools: dots-viewer: Reimplement get_user_cache_dir the same way as in the GLib The 'dirs' crate doesn't behave the same which makes it harder to work with in rust Part-of: 2024-11-29 17:11:18 -0300 Thibault Saunier * dots-viewer/src/gstdump.rs: devtools: gstdump: Check that `pipeline-snapshot` is present And use the tracing crate for logging to make it cleaner Part-of: 2024-11-29 16:49:47 -0300 Thibault Saunier * dots-viewer/README.md: * dots-viewer/src/gstdump.rs: * dots-viewer/src/main.rs: * dots-viewer/src/protocol.rs: * dots-viewer/static/images/gst-dots-viewer.jpeg: * dots-viewer/static/index.html: * dots-viewer/static/js/gstdots.js: dots-viewer: Add "Dump Pipelines" button Add a button in the web interface to trigger pipeline dumps via websocket, replacing the need to manually send SIGUSR1 to the process. Also set up the pipeline-snapshot tracer with the proper websocket URL by default. Part-of: 2024-11-28 22:06:58 -0300 Thibault Saunier * dots-viewer/static/index.html: dots-viewer: Use a dark theme Part-of: 2024-11-27 13:42:02 -0300 Thibault Saunier * dots-viewer/Cargo.lock: * dots-viewer/Cargo.toml: * dots-viewer/README.md: * dots-viewer/build.rs: * dots-viewer/cargo_wrapper.py: * dots-viewer/meson.build: * dots-viewer/package-lock.json: * dots-viewer/package.json: * dots-viewer/src/gstdump.rs: * dots-viewer/src/main.rs: * dots-viewer/static/css/graphviz.svg.css: * dots-viewer/static/images/favicon-120.png: * dots-viewer/static/images/favicon-128.png: * dots-viewer/static/images/favicon-152.png: * dots-viewer/static/images/favicon-16.png: * dots-viewer/static/images/favicon-180.png: * dots-viewer/static/images/favicon-192.png: * dots-viewer/static/images/favicon-196.png: * dots-viewer/static/images/favicon-228.png: * dots-viewer/static/images/favicon-32.png: * dots-viewer/static/images/favicon-57.png: * dots-viewer/static/images/favicon-76.png: * dots-viewer/static/images/favicon-96.png: * dots-viewer/static/images/favicon.png: * dots-viewer/static/images/gst-dots-viewer-video.jpeg: * dots-viewer/static/images/gst-dots-viewer.jpeg: * dots-viewer/static/index.html: * dots-viewer/static/js/fuse.min.mjs: * dots-viewer/static/js/gstdots.js: * dots-viewer/static/js/jquery.graphviz.svg.js: * dots-viewer/static/js/viz-standalone.mjs: * dots-viewer/static/overlay.html: * meson.build: * meson_options.txt: devtools: Add dots-viewer set of tools This adds `gstdump` and `gst-dots-viewer` server, see the README for more details about what those tools do. Part-of: 2025-02-09 17:47:32 +0000 Tim-Philipp Müller * meson.build: Back to development after 1.25.50 === release 1.25.50 === 2025-02-09 17:35:17 +0000 Tim-Philipp Müller * NEWS: * RELEASE: * gst-devtools.doap: * meson.build: Release 1.25.50 2025-01-20 13:23:50 +0100 Mathieu Duponchelle * docs/meson.build: docs: explicitly list gir files as depends for generating configs Part-of: 2025-01-15 17:36:00 +0100 Mathieu Duponchelle * docs/meson.build: docs: generate hotdoc configs for libraries with our helper script With this patch, configure time is identical no matter whether doc is enabled or not. The configuration files also now contain explicitly-listed sources with no wildcards. For the four libraries where hotdoc needs to use clang to generate the documentation (as opposed to the rest of the libraries where hotdoc uses the gir), the script will call pkg-config to determine the appropriate C flags. This means a side effect of this patch is that pkg-config files are now generated for the gstadaptivedemux and gstopencv libraries. Part-of: 2025-01-16 10:04:17 +0100 Stéphane Cerveau * meson.build: meson: set minimum version to 1.4 Since !8273 which introduces the use file.full_path(), the meson minimum version should be 1.4 Part-of: 2025-01-14 15:00:43 +0000 Tim-Philipp Müller * meson.build: Back to development after 1.25.1 === release 1.25.1 === 2025-01-14 14:52:48 +0000 Tim-Philipp Müller * NEWS: * RELEASE: * gst-devtools.doap: * meson.build: Release 1.25.1 2025-01-13 18:10:31 +0100 Mathieu Duponchelle * docs/meson.build: * meson.build: * validate/gst/validate/meson.build: docs: port plugins to explicit sources Part-of: 2025-01-10 08:58:42 +0100 Edward Hervey * meson.build: * validate/gst/validate/gst-validate-scenario.c: validate: Add more warning flags Part-of: 2025-01-10 11:15:36 +0100 Edward Hervey * validate/gst/validate/flow/gstvalidateflow.c: * validate/gst/validate/gst-validate-extra-checks.c: * validate/gst/validate/gst-validate-report.c: validate: Fix old style definition Part-of: 2024-12-18 17:11:33 -0300 Thibault Saunier * docs/meson.build: * meson.build: * validate/data/scenarios/meson.build: * validate/gst/validate/meson.build: * validate/meson.build: * validate/tests/meson.build: * validate/tools/meson.build: meson: Give the same name for api_version in all modules There were 2 version of it, apiversion and api_version, I chose the one with most occurencies: `api_version` Part-of: 2024-12-10 12:52:33 +0000 Tim-Philipp Müller * meson.build: meson: unset GST_TRACERS for g-ir-scanner to avoid warnings People might have GST_TRACERS=leaks set in their environment by default, which will now trigger criticals during the build when calling g-ir-scanner, because we unset GST_PLUGIN_SYSTEM_PATH so that the scanner doesn't load any plugins. Fixes #4093 Part-of: 2024-12-06 09:26:29 -0300 Thibault Saunier * docs/gst-validate-transcoding.md: * docs/gst-validate.md: typos: Fix avalaible/available typos Part-of: 2024-11-29 20:19:53 +0100 Alicia Boya García * validate/gst/validate/gst-validate-scenario.c: validate-scenario: Fix busy waiting, missing lock execute_next_action_full() logs that it removes the source when an action returns ASYNC, but the code for that was incomplete, as it was setting source_id to zero but not actually removing the source. This lead to execute_next_action_full() being run continuously, only alliviated by the default 10ms interval in the GSource from `scenario->priv->action_execution_interval`. This patch fixes that. As a drive-by fix it also adds locking to one remaining unlocked usage of `priv->execute_actions_source_id`. Part-of: 2024-11-13 17:02:00 +1100 Matthew Waters * validate/plugins/gapplication/gstvalidategapplication.c: validate/gapplication: silence a maybe-unitialized warning Part-of: 2024-11-15 11:46:14 -0300 Thibault Saunier * meson.build: meson: Bump minimum version to 1.3 Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4025 Part-of: 2024-08-15 17:58:14 -0400 Thibault Saunier * validate/gst/validate/flow/formatting.c: validate: flow: Fix logging upstream events Part-of: 2024-08-20 10:45:50 -0400 Thibault Saunier * validate/gst/validate/gst-validate-internal.h: * validate/gst/validate/gst-validate-runner.c: * validate/gst/validate/gst-validate-scenario.c: validate: Add a way to force monitoring all pipelines in a .validatetest file See documentation for more details Part-of: 2024-08-27 20:41:18 -0400 Thibault Saunier * validate/gst/validate/gst-validate-scenario.c: validate: Add a `deep-property-path` parameter to the `wait` signal Allowing wait actions to wait on any property of any element in the pipeline, even for elements that might be added later in the pipeline. This also works for pads which can be pretty useful Part-of: 2024-08-27 17:48:25 -0400 Thibault Saunier * validate/gst/validate/doc/meta-features-rank.md: * validate/gst/validate/gst-validate-internal.h: * validate/gst/validate/gst-validate-scenario.c: * validate/gst/validate/gst-validate-utils.c: * validate/gst/validate/gst-validate-utils.h: * validate/gst/validate/validate.c: * validate/gst/validate/validate.res: validate: Allow overriding features rank early in testfiles meta Part-of: 2024-09-24 09:48:54 -0300 Thibault Saunier * validate/launcher/baseclasses.py: * validate/launcher/main.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: 2024-03-06 16:37:48 -0300 Thibault Saunier * validate/tests/launcher_tests/test_validate.py: validate: Remove some regex related python 3.12 warnings Part-of: 2024-02-15 17:22:23 -0300 Thibault Saunier * validate/gst/validate/gst-validate-scenario.c: validate: scenario: Add a way to make the select-streams run several times Part-of: 2024-02-01 14:33:12 -0300 Thibault Saunier * validate/gst/validate/gst-validate-utils.c: * validate/gst/validate/validate.c: * validate/launcher/baseclasses.py: validate: Add a way to retrieve HTTP server port in .validatetest files By setting a `$(http_server_port)s` variable in a dedicated config file and making sure that file can always be imported in `.validatetest` files. Part-of: 2024-11-03 17:30:40 +0000 Tim-Philipp Müller * docs/meson.build: meson: bail out earlier in docs subdir if docs are disabled The gst_dep.get_variable('libexecdir') may fail in some scenarios (e.g. building a module alone inside an uninstalled devenv) and it shouldn't really be reached in the first place if docs are disabled via options. Also to avoid confusing meson messages when cross-compiling or doing a static build. Part-of: 2024-10-29 15:36:49 +0100 Edward Hervey * validate/gst-libs/gst/video/gssim.c: * validate/plugins/ssim/gstvalidatessim.c: validate: Fix leaks in ssim components Part-of: 2024-10-27 12:49:40 -0300 Thibault Saunier * meson.build: meson: Remove c_std=gnu99 in validate and python This is not needed and causes warning with latest meson Part-of: 2024-10-26 02:10:37 +0100 Tim-Philipp Müller * validate/launcher/testsuites/check.py: validate: skip curlhttpsrc test_get_range when running in valgrind Seems to reliably fail (timeout) when running in valgrind on the post-F40 CI. Part-of: 2024-10-26 02:09:44 +0100 Tim-Philipp Müller * validate/launcher/testsuites/check.py: validate: add srtp test_roc to valgrind exclude list Consistently fails on CI after F40 upgrade. See #3939 Part-of: 2024-10-26 00:18:51 +0100 Tim-Philipp Müller * validate/launcher/baseclasses.py: validate: launcher: add --fair-sched=try to valgrind args Enables fairer scheduling of threads in valgrind, possibly at cost of performance though. Hopefully helps with valgrind core/base jobs deadlocking or timing out when runners are not under load. Part-of: 2024-10-18 13:53:11 +0200 Edward Hervey * validate/launcher/testsuites/check.py: tests: Blacklist more netsim test They are know to be racy/failing See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/792 Part-of: 2024-10-21 10:16:14 +0000 Corentin Damman * validate/tools/gst-validate.c: validate: use real_main instead of main in run_test_from_file Part-of: 2024-10-18 17:50:40 -0300 Thibault Saunier * validate/gst/validate/flow/gstvalidateflow.c: validate: flow: Display diffs properly When called after writing the report we can't see them Part-of: 2024-08-29 20:09:52 +0300 Sebastian Dröge * validate/gst/validate/flow/formatting.c: * validate/gst/validate/gst-validate-pipeline-monitor.c: * validate/gst/validate/gst-validate-report.c: * validate/gst/validate/gst-validate-scenario.c: * validate/gst/validate/gst-validate-utils.c: * validate/gst/validate/validate.c: * validate/plugins/ssim/gstvalidatessim.c: common: Stop using GQuark-based GstStructure field name API Part-of: 2024-09-09 11:07:48 -0300 Thibault Saunier * validate/gst/validate/gst-validate-pad-monitor.c: validate: pad-monitor: Fix remaining pad functions data handling That case was missed in a5717530899836cdc32e17edc8f8e47d2c14420d Part-of: 2024-05-08 11:34:34 -0400 Thibault Saunier * validate/launcher/baseclasses.py: * validate/launcher/main.py: * validate/launcher/utils.py: validate: launcher: Add support for lldb Part-of: 2024-09-07 08:37:33 -0400 Thibault Saunier * validate/gst/validate/gst-validate-pad-monitor.c: validate: pad-monitor: Fix pad function data properly Until now we were overriding pad functions forgetting about the function data (that are set using the _full variant of the functions setters), meaning that the data was lost and any user of that feature would get empty data when the wrapped function were called. Part-of: 2024-09-04 17:16:09 -0400 Thibault Saunier * validate/gst/validate/gst-validate-scenario.c: * validate/gst/validate/gst-validate-scenario.h: validate: scenario: Handle the fact that structs field names don't have a static lifetime anymore Part-of: 2024-09-04 20:13:23 +0300 Sebastian Dröge * validate/launcher/baseclasses.py: * validate/launcher/reporters.py: validate: Properly use `errors = 'replace'` for handling invalid utf8 characters Part-of: 2024-08-21 09:24:58 -0400 Thibault Saunier * validate/launcher/testsuites/check.py: ci: Fail tests if we forget to checkout expectation files And add missing expectation files Part-of: 2024-08-15 17:58:14 -0400 Thibault Saunier * docs/gst-validate-flow.md: * validate/gst/validate/flow/formatting.c: * validate/gst/validate/flow/formatting.h: * validate/gst/validate/flow/gstvalidateflow.c: * validate/gst/validate/gst-validate-pad-monitor.c: validate: flow: Allow logging upstream events Part-of: 2024-08-09 11:17:01 +0300 Sebastian Dröge * validate/gst/validate/gst-validate-scenario.c: validate: Copy action structure before retrieving strings from it The returned strings are only valid for as long as the structure is valid. Part-of: 2024-08-09 11:08:36 +0300 Sebastian Dröge * validate/gst/validate/gst-validate-scenario.c: validate: Fix copying of action name Part-of: 2024-07-26 15:12:26 +0200 Edward Hervey * validate/gst/validate/gst-validate-reporter.c: validate: reporter: Don't pollute logs There was a stray g_printerr introduced by 2a4b9c8dc14b2330f764bbb50791720bb4c4f7d4 Part-of: 2024-06-19 15:31:11 +0200 Alicia Boya García * validate/gst/validate/gst-validate-scenario.c: gst-validate: Don't treat FALSE when sending flushes as an error gst_element_send_event(FLUSH_START / FLUSH_STOP) returns FALSE in cases where any of the most downstream elements have unlinked pads, even if the pipeline is successfully flushed. Currently this is considered expected behavior in GStreamer. This patch updates gst-validate to treat it as such and therefore not fail the test for a "failing" flush. Part-of: 2023-10-23 20:12:29 +0300 Jordan Petridis * validate/gst/validate/gst-validate-report.c: validate: Remove G_REGEX_OPTIMIZE usage It's not needed and causes issues with valgrind (which doesn't support jit) Part-of: 2024-06-18 09:53:27 -0400 Thibault Saunier * validate/tools/gst-validate-images-check.c: * validate/tools/gst-validate-rtsp-server.c: * validate/tools/gst-validate-transcoding.c: * validate/tools/gst-validate.c: validate: tool: Use gst_macos_main Part-of: 2024-04-16 13:11:02 +0100 Philippe Normand * debug-viewer/GstDebugViewer/Plugins/__init__.py: debug-viewer: Fix plugin loading machinery The previous code was failing at least with Python 3.11 and Python 3.12. Part-of: 2024-02-08 13:42:31 +0100 Loïc Le Page * validate/gst/validate/flow/formatting.c: gst-validate: add formatting for GstAudioMeta Part-of: 2024-03-20 09:32:57 -0300 Thibault Saunier * validate/gst/validate/gst-validate-reporter.c: validate: reporter: Use an MT safe weak ref to reporter for GLog handling Part-of: 2024-03-05 12:58:57 +0000 Tim-Philipp Müller * RELEASE: * meson.build: Back to development Part-of: === release 1.24.0 ===