Commit graph

83 commits

Author SHA1 Message Date
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
Thibault Saunier
734263617b validate: scenario: Allow scenario to define the pipeline state target
Some user might want to start executing actions from the start.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4164>
2023-03-14 05:46:14 +00:00
Thibault Saunier
accbcabeea validate: Protect init function with a recursive mutex
In tests in the rust bindings we end up with 2 thread initializing
concurrently, and it should not be a problem, -validate should be MT
safe.

Using a recursive mutex as we might recursively init for some reason
and we are not on the hot path here in any case.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4089>
2023-03-02 02:50:45 +00:00
Thibault Saunier
12c4893131 validate:scenario: sink refs when building
Scenarios are no owned by anyone, even if they are GstObjects

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4089>
2023-03-02 02:50:45 +00:00
Tim-Philipp Müller
7679011d1d validate: drop use of GSlice allocator
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3784>
2023-02-03 17:48:10 +00:00
Colin Kinloch
25b4e84fe5 validate: Allow Ctrl-C to quit on fault
Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3868>
2023-02-01 21:40:01 +00:00
Tim-Philipp Müller
9a300fc501 validate-scenario: fix g-i warning in annotation
gst-validate-scenario.c:2485: Warning: GstValidate: missing ":" at column 28:

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3841>
2023-01-28 20:03:05 +00:00
Thibault Saunier
fa23e24f41 validate: Fix gst_validate_execute_action annotation
The action passed in is transfer full

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3829>
2023-01-28 01:31:14 +00:00
Stéphane Cerveau
1ba066bda2 validate: cleanup the use of GST_VALIDATE_API on Windows
Export or import properly the method from GST_VALIDATE_API
with a proper config.h

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3429>
2022-11-18 02:17:27 +00:00
Edward Hervey
0c59e3ce2a validate-scenario: Avoid timeouts on EOS
If there is an EOS and the next action is waiting for a playback time, execute
it since we are guaranteed the position won't change anymore.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3403>
2022-11-15 07:47:49 +01:00
Edward Hervey
e821b65a64 validate-scenario: Don't leak GFile
And use specific variables for clarity in loops.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390>
2022-11-13 06:59:11 +01:00
Edward Hervey
3f95779c30 validate: Don't leak discoverer information
The various streaminfo were being overwritten without being unreffed first

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390>
2022-11-13 06:59:11 +01:00
Edward Hervey
3beec9bad3 validate-scenario: Don't leak temporary path value
It's only use in the structure iterator

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3319>
2022-11-04 17:59:22 +00:00
Edward Hervey
2114490b9b validate-scenario: Don't leak temporary local variables structures
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3319>
2022-11-04 17:59:21 +00:00
Edward Hervey
094d27585e validate: plug some leaks
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3319>
2022-11-04 17:59:21 +00:00
Sebastian Dröge
3827f94574 validate: Add/fix various annotations
And fix monitor constructors to correctly check for valid arguments.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>
2022-10-18 08:56:58 +00:00
Thibault Saunier
55dd7ff4b4 validate: Plug some leaks
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3059>
2022-10-11 11:48:09 -03:00
Thibault Saunier
f9e6044124 validate: Handle testfiles that need an HTTP server
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3122>
2022-10-05 20:29:22 +00:00
Thibault Saunier
ab64771ba8 validate:scenario: Fix setting iterating variable from arrays
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3122>
2022-10-05 20:29:22 +00:00
Thibault Saunier
7c26630651 validate:scenario: Make appsrc-push push a sample
Allowing setting a segment to the sample

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3052>
2022-09-20 17:14:36 +00:00
Thibault Saunier
e290e7913c validate: Handle buffer pts/dts/duration in the appsrc-push action
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3052>
2022-09-20 17:14:36 +00:00
Thibault Saunier
d2b4e7a38e validate:scenario: Simplify the way we override appsrc src pad chain
When pushing several buffers while the pipeline is in NULL state, meaning
that the action are executed "interlaced", previous code was deadlocking.

This new implementation makes it so the override is always on and we
expect all buffers to go through to be associated to a function, which
is a safe assumption.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3052>
2022-09-20 17:14:36 +00:00
Thibault Saunier
515e1b55ee validate:scenario: Fix a leak when done waiting for an ASYNC action
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3000>
2022-09-20 13:23:02 +00:00
Thibault Saunier
ec291ce6bb validate: Update action types documentation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3040>
2022-09-17 01:25:39 +00:00