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
Thibault Saunier
932f0a6175
validate: flow: Fix logging upstream events
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7700 >
2024-11-07 20:52:46 +00:00
Thibault Saunier
56000b91b7
validate: Add a way to force monitoring all pipelines in a .validatetest file
...
See documentation for more details
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7700 >
2024-11-07 20:52:45 +00:00
Thibault Saunier
302797a965
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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7700 >
2024-11-07 20:52:45 +00:00
Thibault Saunier
2c88bbf07f
validate: Allow overriding features rank early in testfiles meta
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7700 >
2024-11-07 20:52:45 +00:00
Thibault Saunier
dfd5357214
validate: scenario: Add a way to make the select-streams run several times
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7700 >
2024-11-07 20:52:45 +00:00
Thibault Saunier
19060b2ce0
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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7700 >
2024-11-07 20:52:45 +00:00
Thibault Saunier
14a9138a88
validate: flow: Display diffs properly
...
When called after writing the report we can't see them
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5035 >
2024-10-19 10:30:05 +00:00
Sebastian Dröge
6233eb0ff3
common: Stop using GQuark-based GstStructure field name API
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432 >
2024-09-26 19:21:29 +03:00
Thibault Saunier
9f898f839c
validate: pad-monitor: Fix remaining pad functions data handling
...
That case was missed in a571753089
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7477 >
2024-09-10 15:50:52 +00:00
Thibault Saunier
a571753089
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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7466 >
2024-09-08 12:02:25 +00:00
Thibault Saunier
9f410a8714
validate: scenario: Handle the fact that structs field names don't have a static lifetime anymore
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7453 >
2024-09-05 18:58:24 +00:00
Thibault Saunier
8fdd59f9d5
validate: flow: Allow logging upstream events
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7382 >
2024-08-21 13:55:15 +00:00
Sebastian Dröge
417c5e19b7
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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7333 >
2024-08-09 10:26:30 +00:00
Sebastian Dröge
604cc0901c
validate: Fix copying of action name
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7333 >
2024-08-09 10:26:30 +00:00
Edward Hervey
c623f2db21
validate: reporter: Don't pollute logs
...
There was a stray g_printerr introduced by 2a4b9c8dc1
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7275 >
2024-07-30 11:39:02 +02:00
Alicia Boya García
506af5b8e4
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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7064 >
2024-07-02 19:06:02 +00:00
Jordan Petridis
60454336c8
validate: Remove G_REGEX_OPTIMIZE usage
...
It's not needed and causes issues with valgrind (which doesn't support jit)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7112 >
2024-06-28 14:13:31 +00:00
Loïc Le Page
cbc58c0483
gst-validate: add formatting for GstAudioMeta
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6461 >
2024-04-16 15:33:42 +00:00
Thibault Saunier
2a4b9c8dc1
validate: reporter: Use an MT safe weak ref to reporter for GLog handling
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6412 >
2024-03-20 16:45:34 +00:00
Thibault Saunier
1891fff7a9
validate: flow: Plug leak about ignored fields
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/899 >
2024-01-31 11:00:24 +00:00
Thibault Saunier
7fe786135f
validate: scenario: Do not use a NULL scenario description structure
...
The scenario meta is optional and we have to take that into account.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3199
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5892 >
2024-01-06 09:47:16 -03:00
Thibault Saunier
04ae39f25b
validate: scenario: Add a 'forward-eos' parameter to forward-appsink-to-appsrc
...
There might be cases where the user doesn't want to forward it
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5803 >
2023-12-27 02:14:19 +00:00
Thibault Saunier
80e44ac344
validate: scenario: Handle the case where execute_next_action is called with an action that is OK
...
It is now a valid case when running subaction in foreign scenarios
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5803 >
2023-12-27 02:14:19 +00:00
Thibault Saunier
93f1ffe715
validate: doc: Enhance the way we render action type parameters
...
And update gst-validate-action-types.md
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5803 >
2023-12-27 02:14:19 +00:00
Thibault Saunier
f1e34de800
validate: scenario: Do not print position on sub pipelines
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5803 >
2023-12-27 02:14:19 +00:00
Thibault Saunier
a4a97c7568
validate: doc: Enhance documentation about testfile and meta
fields
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5803 >
2023-12-27 02:14:19 +00:00
Thibault Saunier
a5a65b74ff
validate: scenario: Ensure all pipelines with scenarios are stopped when exiting runner
...
Otherwise we end up with "dangling" sub pipelines on SIGINT
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5803 >
2023-12-27 02:14:18 +00:00
Thibault Saunier
6abc36ad34
validate: scenario: Cleanup the 'switch-track' action implementation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5803 >
2023-12-27 02:14:18 +00:00
Thibault Saunier
fbf478b3f5
validate: scenario: Add a way to set pipeline base-time, start-time and force using the system clock
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5803 >
2023-12-27 02:14:18 +00:00
Thibault Saunier
aad06b091e
validate: scenario: Add an action type to forward stream from an appsink to an appsrc
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5803 >
2023-12-27 02:14:18 +00:00
Thibault Saunier
fd4cd3d85f
validate:scenario: Add a 'create-sub-pipeline' action type
...
And allow running parallel pipelines, scenarios, and pass data from
one to the other using appsrc/appsink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5803 >
2023-12-27 02:14:18 +00:00
Philippe Normand
0b5e2ee80a
validate: Fix memory leak in gst_validate_abort()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5757 >
2023-12-04 20:04:05 +00:00
Thibault Saunier
ce661c3b99
validate: Add support to replace variables in deeply nested structures
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5713 >
2023-11-23 16:56:40 -03:00
Thibault Saunier
2f7d402f7b
validate: utils: Plug some leaks
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5636 >
2023-11-17 15:57:46 +00:00
Thibault Saunier
47dbd03604
validate: scenario: Add a 'fill-mode' to the appsrc-push
action type
...
So the user doesn't need a file
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5636 >
2023-11-17 15:57:46 +00:00
Thibault Saunier
a075264215
validate: scenario: Avoid reporting issue with SCENARIO_LOCK taken
...
This might lead to deadlock and is not needed here
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5666 >
2023-11-15 19:07:36 +00:00
Thibault Saunier
e251522805
validate: scenario: Add a "select-streams" action type
...
This is a "non-blocking" action type which will send the `select-streams`
event when a `GST_STREAM_COLLECTION` message is received on the bus.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5666 >
2023-11-15 19:07:36 +00:00
Thibault Saunier
ca584da58d
validate: scenario: Add a way to wait for a property to reach a specified value
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5666 >
2023-11-15 19:07:36 +00:00
Thibault Saunier
158f469de6
validate: scenario: Add a way to accept suposdely invalid position reporting
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5666 >
2023-11-15 19:07:36 +00:00
Doug Nazar
bac8a74f04
validate: Don't clear global mutex
...
gst_validate_deinit() may be called multiple times and expects the
mutex to still be valid.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5539 >
2023-10-25 22:56:15 +00:00
Doug Nazar
aee8ac1942
validate: Initialize mutex before use
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5539 >
2023-10-25 22:56:15 +00:00
Alicia Boya García
f033160ea2
gst-validate: Use fatal-criticals by default
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2903
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5182 >
2023-09-05 13:25:40 +00:00
Piotr Brzeziński
2cc30770cf
tools: Disable fault signal handlers in gst-launch/gst-validate on macOS
...
By default, macOS attempts to run lldb against a misbehaving process to handle the crash. This does not play well
with the SISEGV/SIGQUIT handler we add in gst-launch/gst-validate. The 'spinning' mechanism causes the lldb
and debugserver processes ran by macOS to misbehave, taking 100% CPU and rendering both themselves and the GStreamer
instance frozen and very hard to effectively kill. macOS's Activity Monitor is also unusable while this is happening.
This patch takes the quickest possible solution of just disabling those signal handlers entirely on macOS.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5190 >
2023-08-16 08:52:36 +00:00
Thibault Saunier
9dda8050f2
validate: Add a way to avoid checking property value after setting it
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4485 >
2023-04-26 00:03:06 +00:00
Thibault Saunier
b14e675a27
gir: Checkout all .gir files and check that they are updated on the CI
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3010 >
2023-04-22 09:32:32 -04:00
Thibault Saunier
6646184791
validate: flow: Handle ignored fields for caps
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4341 >
2023-04-12 15:07:28 +00:00
Thibault Saunier
00ed40dbfd
validate: scenario: Add a vmethod to free GstValidateActionParameter-s
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4265 >
2023-03-27 01:25:43 +00:00
Tim-Philipp Müller
4380d12d78
gst-devtools: re-indent with GNU indent 2.2.12
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4182 >
2023-03-17 03:18:54 +00:00
Xavier Claessens
096bd3c4a2
gstbuffer: Add parent meta when a copy shares memory with parent
...
When copying a buffer, for example with gst_buffer_make_writable(), the
new buffer might reference the same GstMemory as the src buffer,
making those memories not writable. If the src buffer gets disposed
first it should return to its buffer pool, but since some of its
memories are not writable it gets discarded and new buffer/memory gets
allocated.
Solves this by making the new buffer keep a reference to the src buffer,
that ensures that by the time the src buffer gets disposed no other
buffer are referencing its memories and it can thus return safely to its
pool.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4176 >
2023-03-16 00:03:11 +00:00