gstreamer/subprojects/gst-devtools/validate
Alicia Boya García fbad7b593d 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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8014>
2024-12-02 14:36:59 +00:00
..
data fakevideodec: Add some tests 2023-11-17 15:57:46 +00:00
docs Move files from gst-devtools into the "subprojects/gst-devtools/" subdir 2021-09-24 16:15:38 -03:00
gst validate-scenario: Fix busy waiting, missing lock 2024-12-02 14:36:59 +00:00
gst-libs validate: Fix leaks in ssim components 2024-10-31 01:39:19 +00:00
launcher validate: launcher: Remove log files for passing tests by default 2024-11-07 20:52:45 +00:00
plugins validate/gapplication: silence a maybe-unitialized warning 2024-11-18 12:10:58 +11:00
tests validate: Remove some regex related python 3.12 warnings 2024-11-07 20:52:45 +00:00
tools validate: use real_main instead of main in run_test_from_file 2024-10-23 13:43:03 +00:00
.gitignore Move files from gst-devtools into the "subprojects/gst-devtools/" subdir 2021-09-24 16:15:38 -03:00
COPYING Move files from gst-devtools into the "subprojects/gst-devtools/" subdir 2021-09-24 16:15:38 -03:00
meson.build Fix API visibility macros 2022-12-20 14:03:35 +00:00
README Move files from gst-devtools into the "subprojects/gst-devtools/" subdir 2021-09-24 16:15:38 -03:00

== Gst-Validate

The goal of GstValidate is to be able to detect when elements are not
behaving as expected and report it to the user so he knows how things
are supposed to work inside a GstPipeline. In the end, fixing issues
found by the tool will ensure that all elements behave all together in
the expected way.

The easiest way of using GstValidate is to use one of its command-line
tools, located at tools/ directory. It is also possible to monitor
GstPipelines from any application by using the LD_PRELOAD gstvalidate
lib. The third way of using it is to write your own application that
links and uses libgstvalidate.

== BUILDING

Getting the code:

Releases are available at <URL>, download and extract the tarball. If you
want to use latest git version, do:

git clone <URI>

After cloning or extracting from a tarball, enter the gst-validate directory:

cd gst-validate

Build with:

meson build --prefix=<installation-prefix>
ninja -C build
sudo ninja -C build install (only if you want to install it)

Replace <installation-prefix> with your desired installation path, you can omit
the --prefix argument if you aren't going to install it or if you want the
default /usr/local. It is possible to use gst-validate CLI tools without
installation.

== INSTRUCTIONS

If you are looking for informations on how to use gst-validate -> docs/validate-usage.txt
If you are looking for informations on gst-validate design -> docs/validate-design.txt