2018-11-17 19:50:30 +00:00
# GstValidate action types
2020-05-27 03:25:48 +00:00
## meta
2018-11-17 19:50:30 +00:00
``` validate-scenario
2020-05-27 03:25:48 +00:00
meta,
2022-09-17 01:05:18 +00:00
[allow-errors=(boolean)],
2023-12-12 17:59:32 +00:00
[base-time=(double or string (GstClockTime))],
[configs=({GstStructure as string})],
2020-05-27 03:25:48 +00:00
[duration=(double, int)],
2023-12-12 17:59:32 +00:00
[expected-issues=({GstStructure as string})],
2018-11-17 19:50:30 +00:00
[handles-states=(boolean)],
2020-05-27 03:25:48 +00:00
[ignore-eos=(boolean)],
[is-config=(boolean)],
[max-dropped=(int)],
[max-latency=(double, int)],
2018-11-17 19:50:30 +00:00
[min-audio-track=(int)],
2020-05-27 03:25:48 +00:00
[min-media-duration=(double)],
2018-11-17 19:50:30 +00:00
[min-video-track=(int)],
2020-05-27 03:25:48 +00:00
[need-clock-sync=(boolean)],
2019-06-18 22:10:24 +00:00
[pipeline-name=(string)],
2020-05-27 03:25:48 +00:00
[reverse-playback=(boolean)],
[seek=(boolean)],
2023-12-12 17:59:32 +00:00
[start-time=(double or string (GstClockTime))],
[summary=(string)],
[use-system-clock=(bool)];
2018-11-17 19:50:30 +00:00
```
2020-05-27 03:25:48 +00:00
Scenario metadata.
2023-12-12 17:59:32 +00:00
2020-05-27 03:25:48 +00:00
NOTE: it used to be called "description"
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2018-11-17 19:50:30 +00:00
* Is config action (meaning it will be executing right at the beginning of the execution of the pipeline)
### Parameters
2023-12-12 21:24:55 +00:00
#### `allow-errors` (_optional_)
Ignore error messages and keep executing the
2022-09-17 01:05:18 +00:00
scenario when it happens. By default a 'stop' action is generated on ERROR messages
2023-12-12 21:24:55 +00:00
**Possible types**: `boolean`
**Default**: false
---
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
#### `base-time` (_optional_)
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
The `base-time` fields lets you set the Pipeline base-time as defined in [gst_element_set_base_time ](gst_element_set_base_time ).
2023-12-12 17:59:32 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `double or string (GstClockTime)`
2023-12-12 17:59:32 +00:00
2023-12-12 21:24:55 +00:00
**Default**: None
2023-12-12 17:59:32 +00:00
2023-12-12 21:24:55 +00:00
---
#### `configs` (_optional_)
The `configs` field is an array of structures containing the same content as
2023-12-12 17:59:32 +00:00
usual [configs ](gst-validate-config.md ) files.
For example:
``` yaml
configs = {
# Set videotestsrc0 pattern value to `blue`
"core, action=set-property, target-element-name=videotestsrc0, property-name=pattern, property-value=blue",
"$(validateflow), pad=sink1:sink, caps-properties={ width, height };",
}
```
Note: Since this is GstStructure syntax, we need to have the structures in the
array as strings/within quotes.
2023-12-12 21:24:55 +00:00
**Warning**: This field is validate only for [`.validatetest` ](gst-validate-test-file.md ) files, and not `.scenario` .
2023-12-12 17:59:32 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `{GstStructure as string}`
2023-12-12 17:59:32 +00:00
2023-12-12 21:24:55 +00:00
**Default**: {}
2023-12-12 17:59:32 +00:00
2023-12-12 21:24:55 +00:00
---
2023-12-12 17:59:32 +00:00
2023-12-12 21:24:55 +00:00
#### `duration` (_optional_)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
Lets the user know the time the scenario needs to be fully executed
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `double, int`
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Default**: infinite (GST_CLOCK_TIME_NONE)
---
#### `expected-issues` (_optional_)
The `expected-issues` field is an array of `expected-issue` structures containing
2023-12-12 17:59:32 +00:00
information about issues to expect (which can be known bugs or not).
Use `gst-validate-1.0 --print-issue-types` to print information about all issue types.
For example:
``` yaml
expected-issues = {
"expected-issue, issue-id=scenario::not-ended",
}
```
2023-12-12 21:24:55 +00:00
Note: Since this is [`GstStructure` ](GstStructure ) syntax, we need to have the structures in the
2023-12-12 17:59:32 +00:00
array as strings/within quotes.
**Each issue has the following fields**:
* `issue-id` : (string): Issue ID - Mandatory if `summary` is not provided.
* `summary` : (string): Summary - Mandatory if `issue-id` is not provided.
* `details` : Regex string to match the issue details `detected-on` : (string):
The name of the element the issue happened on `level` : (string):
Issue level
2023-12-12 21:24:55 +00:00
* `sometimes` : (boolean): Default: `false` - Whether the issue happens only
2023-12-12 17:59:32 +00:00
sometimes if `false` and the issue doesn't happen, an error will
be issued.
* `issue-url` : (string): The url of the issue in the bug tracker if the issue is
a bug.
2023-12-12 21:24:55 +00:00
**Warning**: This field is validate only for [`.validatetest` ](gst-validate-test-file.md ) files, and not `.scenario` .
2023-12-12 17:59:32 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `{GstStructure as string}`
2023-12-12 17:59:32 +00:00
2023-12-12 21:24:55 +00:00
**Default**: {}
2023-12-12 17:59:32 +00:00
2023-12-12 21:24:55 +00:00
---
2023-12-12 17:59:32 +00:00
2023-12-12 21:24:55 +00:00
#### `handles-states` (_optional_)
Whether the scenario handles pipeline state changes from the beginning
2018-11-17 19:50:30 +00:00
in that case the application should not set the state of the pipeline to anything
and the scenario action will be executed from the beginning
2023-12-12 21:24:55 +00:00
**Possible types**: `boolean`
**Default**: false
---
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
#### `ignore-eos` (_optional_)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
Ignore EOS and keep executing the scenario when it happens.
2020-05-27 03:25:48 +00:00
By default a 'stop' action is generated one EOS
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `boolean`
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Default**: false
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
#### `is-config` (_optional_)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
Whether the scenario is a config only scenario
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `boolean`
**Default**: false
---
#### `max-dropped` (_optional_)
The maximum number of buffers which can be dropped by the QoS system allowed for this pipeline.
2020-05-27 03:25:48 +00:00
It can be overridden using core configuration, like for example by defining the env variable GST_VALIDATE_CONFIG=core,max-dropped=100
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `int`
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Default**: infinite (-1)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
#### `max-latency` (_optional_)
The maximum latency in nanoseconds allowed for this pipeline.
2020-05-27 03:25:48 +00:00
It can be overridden using core configuration, like for example by defining the env variable GST_VALIDATE_CONFIG=core,max-latency=33000000
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `double, int`
**Default**: infinite (GST_CLOCK_TIME_NONE)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
#### `min-audio-track` (_optional_)
Lets the user know the minimum number of audio tracks the stream needs to contain
2018-11-17 19:50:30 +00:00
for the scenario to be usable
2023-12-12 21:24:55 +00:00
**Possible types**: `int`
**Default**: 0
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
#### `min-media-duration` (_optional_)
Lets the user know the minimum duration of the stream for the scenario
2020-05-27 03:25:48 +00:00
to be usable
2023-12-12 21:24:55 +00:00
**Possible types**: `double`
**Default**: 0.0
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
---
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
#### `min-video-track` (_optional_)
Lets the user know the minimum number of video tracks the stream needs to contain
2018-11-17 19:50:30 +00:00
for the scenario to be usable
2023-12-12 21:24:55 +00:00
**Possible types**: `int`
**Default**: 0
---
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
#### `need-clock-sync` (_optional_)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
Whether the scenario needs the execution to be synchronized with the pipeline's
2020-05-27 03:25:48 +00:00
clock. Letting the user know if it can be used with a 'fakesink sync=false' sink
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `boolean`
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Default**: true if some action requires a playback-time false otherwise
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
#### `pipeline-name` (_optional_)
The name of the GstPipeline on which the scenario should be executed.
2018-11-17 19:50:30 +00:00
It has the same effect as setting the pipeline using pipeline_name->scenario_name.
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
**Default**: NULL
---
#### `reverse-playback` (_optional_)
Whether the scenario plays the stream backward
**Possible types**: `boolean`
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Default**: false
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
#### `seek` (_optional_)
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
Whether the scenario executes seek actions or not
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `boolean`
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
**Default**: false
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
---
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
#### `start-time` (_optional_)
2023-12-12 17:59:32 +00:00
2023-12-12 21:24:55 +00:00
The `start-time` fields lets you set the Pipeline start-time as defined in [gst_element_set_start_time ](gst_element_set_start_time ).
2023-12-12 17:59:32 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `double or string (GstClockTime)`
2023-12-12 17:59:32 +00:00
2023-12-12 21:24:55 +00:00
**Default**: None
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
---
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
#### `summary` (_optional_)
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
A human readable summary of what the test/scenario does
**Possible types**: `string`
**Default**: 'Nothing'
---
#### `use-system-clock` (_optional_)
The `use-system-clock` fields lets you force the Pipeline to use the
2023-12-12 17:59:32 +00:00
[`GstSystemClock` ](GstSystemClock )
2023-12-12 21:24:55 +00:00
**Possible types**: `bool`
**Default**: false
2023-12-12 17:59:32 +00:00
2023-12-12 21:24:55 +00:00
---
2023-12-12 17:59:32 +00:00
2018-11-17 19:50:30 +00:00
## seek
``` validate-scenario
seek,
flags=(string describing the GstSeekFlags to set),
2020-05-27 03:25:48 +00:00
start=(double or string (GstClockTime)),
2018-11-17 19:50:30 +00:00
[rate=(double)],
[start_type=(string)],
2020-05-27 03:25:48 +00:00
[stop=(double or string (GstClockTime))],
2018-11-17 19:50:30 +00:00
[stop_type=(string)],
2020-05-27 03:25:48 +00:00
[playback-time=(double,string)];
2018-11-17 19:50:30 +00:00
```
Seeks into the stream. This is an example of a seek happening when the stream reaches 5 seconds
or 1 eighth of its duration and seeks to 10s or 2 eighths of its duration:
2023-12-12 21:24:55 +00:00
```
2018-11-17 19:50:30 +00:00
seek, playback-time="min(5.0, (duration/8))", start="min(10, 2*(duration/8))", flags=accurate+flush
2023-12-12 21:24:55 +00:00
```
**Implementer namespace**: core
2018-11-17 19:50:30 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `flags` (_mandatory_)
The GstSeekFlags to use
**Possible types**: `string describing the GstSeekFlags to set`
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
---
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
#### `start` (_mandatory_)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
The starting value of the seek
**Possible variables**:
2018-11-17 19:50:30 +00:00
* `position` : The current position in the stream
* `duration` : The duration of the stream
2023-12-12 21:24:55 +00:00
**Possible types**: `double or string (GstClockTime)`
---
#### `rate` (_optional_)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
The rate value of the seek
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `double`
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Default**: 1.0
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
#### `start_type` (_optional_)
The GstSeekType to use for the start of the seek, in:
2018-11-17 19:50:30 +00:00
[none, set, end]
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
**Default**: set
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
#### `stop` (_optional_)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
The stop value of the seek
**Possible variables**:
2020-05-27 03:25:48 +00:00
* `position` : The current position in the stream
* `duration` : The duration of the stream
2023-12-12 21:24:55 +00:00
**Possible types**: `double or string (GstClockTime)`
**Default**: GST_CLOCK_TIME_NONE
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
---
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
#### `stop_type` (_optional_)
The GstSeekType to use for the stop of the seek, in:
2018-11-17 19:50:30 +00:00
[none, set, end]
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
**Default**: set
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
#### `playback-time` (_optional_)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
The playback time at which the action will be executed
**Possible variables**:
2018-11-17 19:50:30 +00:00
* `position` : The current position in the stream
2019-06-18 22:10:24 +00:00
* `duration` : The duration of the stream
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
**Default**: 0.0
---
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
#### `on-message` (_optional_)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
Specify on what message type the action will be executed.
2020-05-27 03:25:48 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
---
2018-11-17 19:50:30 +00:00
## pause
``` validate-scenario
pause,
2020-05-27 03:25:48 +00:00
[duration=(double or string (GstClockTime))],
[playback-time=(double,string)];
2018-11-17 19:50:30 +00:00
```
Sets pipeline to PAUSED. You can add a 'duration'
parameter so the pipeline goes back to playing after that duration
(in second)
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2018-11-17 19:50:30 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `duration` (_optional_)
The duration during which the stream will be paused
**Possible types**: `double or string (GstClockTime)`
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Default**: 0.0
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
---
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
#### `playback-time` (_optional_)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
The playback time at which the action will be executed
**Possible variables**:
2018-11-17 19:50:30 +00:00
* `position` : The current position in the stream
* `duration` : The duration of the stream
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
**Default**: 0.0
---
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
#### `on-message` (_optional_)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
Specify on what message type the action will be executed.
2019-06-18 22:10:24 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
---
2019-06-18 22:10:24 +00:00
2018-11-17 19:50:30 +00:00
## play
``` validate-scenario
play,
[playback-time=(double,string)];
```
Sets the pipeline state to PLAYING
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2018-11-17 19:50:30 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `playback-time` (_optional_)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
The playback time at which the action will be executed
**Possible variables**:
2018-11-17 19:50:30 +00:00
* `position` : The current position in the stream
* `duration` : The duration of the stream
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
**Default**: 0.0
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
#### `on-message` (_optional_)
Specify on what message type the action will be executed.
2019-06-18 22:10:24 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
**Default**: (null)
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
---
2019-06-18 22:10:24 +00:00
2018-11-17 19:50:30 +00:00
## stop
``` validate-scenario
stop,
[playback-time=(double,string)];
```
Stops the execution of the scenario. It will post a 'request-state' message on the bus with NULL as a requested state and the application is responsible for stopping itself. If you override that action type, make sure to link up.
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2018-11-17 19:50:30 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `playback-time` (_optional_)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
The playback time at which the action will be executed
**Possible variables**:
2018-11-17 19:50:30 +00:00
* `position` : The current position in the stream
* `duration` : The duration of the stream
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
**Default**: 0.0
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
#### `on-message` (_optional_)
Specify on what message type the action will be executed.
2019-06-18 22:10:24 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
**Default**: (null)
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
---
2019-06-18 22:10:24 +00:00
2018-11-17 19:50:30 +00:00
## eos
``` validate-scenario
eos,
[playback-time=(double,string)];
```
Sends an EOS event to the pipeline
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2018-11-17 19:50:30 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `playback-time` (_optional_)
The playback time at which the action will be executed
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
**Possible variables**:
2023-12-12 13:49:17 +00:00
* `position` : The current position in the stream
* `duration` : The duration of the stream
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
**Default**: 0.0
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
---
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
#### `on-message` (_optional_)
Specify on what message type the action will be executed.
2023-12-12 13:49:17 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
**Default**: (null)
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
---
2023-12-12 13:49:17 +00:00
## select-streams
``` validate-scenario
select-streams,
indexes=([int]),
[playback-time=(double,string)];
```
Select the stream on next `GST_STREAM_COLLECTION` message on the bus.
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2023-12-12 13:49:17 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `indexes` (_mandatory_)
Indexes of the streams in the StreamCollection to select
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `[int]`
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
---
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
#### `playback-time` (_optional_)
The playback time at which the action will be executed
**Possible variables**:
2018-11-17 19:50:30 +00:00
* `position` : The current position in the stream
* `duration` : The duration of the stream
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
**Default**: 0.0
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
#### `on-message` (_optional_)
Specify on what message type the action will be executed.
2019-06-18 22:10:24 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
**Default**: (null)
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
---
2019-06-18 22:10:24 +00:00
2018-11-17 19:50:30 +00:00
## switch-track
``` validate-scenario
switch-track,
[index=(string: to switch track relatively
2020-05-27 03:25:48 +00:00
int: To use the actual index to use)],
[type=(string)],
[playback-time=(double,string)];
2018-11-17 19:50:30 +00:00
```
The 'switch-track' command can be used to switch tracks.
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2018-11-17 19:50:30 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `index` (_optional_)
Selects which track of this type to use: it can be either a number,
2020-05-27 03:25:48 +00:00
which will be the Nth track of the given type, or a number with a '+' or
'-' prefix, which means a relative change (eg, '+1' means 'next track',
'-1' means 'previous track')
2023-12-12 21:24:55 +00:00
**Possible types**: `string: to switch track relatively
2020-05-27 03:25:48 +00:00
int: To use the actual index to use`
2023-12-12 21:24:55 +00:00
**Default**: +1
---
#### `type` (_optional_)
Selects which track type to change (can be 'audio', 'video', or 'text').
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Default**: audio
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
---
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
#### `playback-time` (_optional_)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
The playback time at which the action will be executed
**Possible variables**:
2018-11-17 19:50:30 +00:00
* `position` : The current position in the stream
* `duration` : The duration of the stream
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
**Default**: 0.0
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
#### `on-message` (_optional_)
Specify on what message type the action will be executed.
2019-06-18 22:10:24 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
**Default**: (null)
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
---
2019-06-18 22:10:24 +00:00
2018-11-17 19:50:30 +00:00
## wait
``` validate-scenario
wait,
2022-09-17 01:05:18 +00:00
[check=(structure)],
2019-06-18 22:10:24 +00:00
[duration=(double or string (GstClockTime))],
2022-09-17 01:05:18 +00:00
[expected-values=(structure)],
2020-05-27 03:25:48 +00:00
[message-type=(string)],
2022-09-17 01:05:18 +00:00
[non-blocking=(string)],
[on-clock=(boolean)],
2023-12-12 13:49:17 +00:00
[property-name=(string)],
[property-value=(string)],
2018-11-17 19:50:30 +00:00
[signal-name=(string)],
2023-12-12 13:49:17 +00:00
[subpipeline-done=(string)],
2022-09-17 01:05:18 +00:00
[target-element-factory-name=(string)],
2020-05-27 03:25:48 +00:00
[target-element-name=(string)],
[playback-time=(double,string)];
2018-11-17 19:50:30 +00:00
```
Waits for signal 'signal-name', message 'message-type', or during 'duration' seconds
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2018-11-17 19:50:30 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `check` (_optional_)
The check action to execute when non blocking signal is received
**Possible types**: `structure`
**Default**: (null)
---
#### `duration` (_optional_)
the duration while no other action will be executed
**Possible types**: `double or string (GstClockTime)`
**Default**: (null)
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
---
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
#### `expected-values` (_optional_)
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
Expected values in the message structure (valid only when `message-type` ). Example: wait, on-client=true, message-type=buffering, expected-values=[values, buffer-percent=100]
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `structure`
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
#### `message-type` (_optional_)
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
The name of the message type to wait for (on @target -element-name if specified)
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
---
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
#### `non-blocking` (_optional_)
**Only for signals**.Make the action non blocking meaning that next actions will be
2022-09-17 01:05:18 +00:00
executed without waiting for the signal to be emitted.
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
**Default**: (null)
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
---
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
#### `on-clock` (_optional_)
Wait until the test clock gets a new pending entry.
2022-09-17 01:05:18 +00:00
See #gst_test_clock_wait_for_next_pending_id .
2023-12-12 21:24:55 +00:00
**Possible types**: `boolean`
**Default**: (null)
---
#### `property-name` (_optional_)
The name of the property to wait for value to be set to what is specified by @property -value.
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
---
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
#### `property-value` (_optional_)
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
The value of the property to be waiting.
2023-12-12 13:49:17 +00:00
Example:
`wait, property-name=current-uri, property-value=file:///some/value.mp4, target-element-name=uridecodebin`
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
**Default**: (null)
---
#### `signal-name` (_optional_)
The name of the signal to wait for on @target -element-name. To ensure that the signal is executed without blocking while waiting for it you can set the field 'non-blocking=true'.
**Possible types**: `string`
**Default**: (null)
---
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
#### `subpipeline-done` (_optional_)
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
Waits that the subpipeline with that name is done
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
---
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
#### `target-element-factory-name` (_optional_)
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
The name factory for which to wait @signal -name on
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
---
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
#### `target-element-name` (_optional_)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
The name of the GstElement to wait @signal -name on.
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
#### `playback-time` (_optional_)
The playback time at which the action will be executed
**Possible variables**:
2018-11-17 19:50:30 +00:00
2020-05-27 03:25:48 +00:00
* `position` : The current position in the stream
2018-11-17 19:50:30 +00:00
2020-05-27 03:25:48 +00:00
* `duration` : The duration of the stream
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
**Default**: 0.0
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
---
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
#### `on-message` (_optional_)
Specify on what message type the action will be executed.
2020-05-27 03:25:48 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
**Default**: (null)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
2018-11-17 19:50:30 +00:00
## dot-pipeline
``` validate-scenario
dot-pipeline,
[playback-time=(double,string)];
```
Dots the pipeline (the 'name' property will be used in the dot filename).
For more information have a look at the GST_DEBUG_BIN_TO_DOT_FILE documentation.
Note that the GST_DEBUG_DUMP_DOT_DIR env variable needs to be set
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2018-11-17 19:50:30 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `playback-time` (_optional_)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
The playback time at which the action will be executed
**Possible variables**:
2018-11-17 19:50:30 +00:00
* `position` : The current position in the stream
* `duration` : The duration of the stream
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
**Default**: 0.0
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
#### `on-message` (_optional_)
Specify on what message type the action will be executed.
2019-06-18 22:10:24 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
**Default**: (null)
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
---
2019-06-18 22:10:24 +00:00
2018-11-17 19:50:30 +00:00
## set-rank
``` validate-scenario
set-rank,
name=(string),
rank=(string, int);
```
Changes the ranking of a particular plugin feature(s)
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2018-11-17 19:50:30 +00:00
* Is config action (meaning it will be executing right at the beginning of the execution of the pipeline)
### Parameters
2023-12-12 21:24:55 +00:00
#### `name` (_mandatory_)
The name of a GstFeature or GstPlugin
**Possible types**: `string`
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
#### `rank` (_mandatory_)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
The GstRank to set on @name
**Possible types**: `string, int`
---
2018-11-17 19:50:30 +00:00
2022-09-17 01:05:18 +00:00
## remove-feature
``` validate-scenario
remove-feature,
name=(string);
```
Remove a plugin feature(s) or a plugin from the registry
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2022-09-17 01:05:18 +00:00
* Is config action (meaning it will be executing right at the beginning of the execution of the pipeline)
### Parameters
2023-12-12 21:24:55 +00:00
#### `name` (_mandatory_)
The name of a GstFeature or GstPlugin to remove
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
---
2022-09-17 01:05:18 +00:00
2018-11-17 19:50:30 +00:00
## set-feature-rank
``` validate-scenario
set-feature-rank,
feature-name=(string),
rank=(string, int);
```
Changes the ranking of a particular plugin feature
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2018-11-17 19:50:30 +00:00
* Is config action (meaning it will be executing right at the beginning of the execution of the pipeline)
### Parameters
2023-12-12 21:24:55 +00:00
#### `feature-name` (_mandatory_)
The name of a GstFeature
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
#### `rank` (_mandatory_)
The GstRank to set on @feature -name
**Possible types**: `string, int`
---
2018-11-17 19:50:30 +00:00
## set-state
``` validate-scenario
set-state,
2020-05-27 03:25:48 +00:00
state=(string),
[playback-time=(double,string)];
2018-11-17 19:50:30 +00:00
```
Changes the state of the pipeline to any GstState
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2018-11-17 19:50:30 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `state` (_mandatory_)
A GstState as a string, should be in:
2020-05-27 03:25:48 +00:00
* ['null', 'ready', 'paused', 'playing']
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
---
#### `playback-time` (_optional_)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
The playback time at which the action will be executed
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Possible variables**:
2018-11-17 19:50:30 +00:00
* `position` : The current position in the stream
* `duration` : The duration of the stream
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Default**: 0.0
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
#### `on-message` (_optional_)
Specify on what message type the action will be executed.
2019-06-18 22:10:24 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
---
2019-06-18 22:10:24 +00:00
## set-vars
2018-11-17 19:50:30 +00:00
``` validate-scenario
2019-06-18 22:10:24 +00:00
set-vars,
2018-11-17 19:50:30 +00:00
[playback-time=(double,string)];
```
2019-06-18 22:10:24 +00:00
Define vars to be used in other actions.
For example you can define vars for buffer checksum to be used in the "check-last-sample" action type as follow:
2018-11-17 19:50:30 +00:00
```
2019-06-18 22:10:24 +00:00
set-vars, frame1=SomeRandomHash1,frame2=Anotherhash...
2018-11-17 19:50:30 +00:00
check-last-sample, checksum=frame1
```
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2018-11-17 19:50:30 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `playback-time` (_optional_)
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
The playback time at which the action will be executed
**Possible variables**:
2022-09-17 01:05:18 +00:00
* `position` : The current position in the stream
* `duration` : The duration of the stream
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
**Default**: 0.0
---
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
#### `on-message` (_optional_)
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
Specify on what message type the action will be executed.
2022-09-17 01:05:18 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
---
2022-09-17 01:05:18 +00:00
## set-timed-value-properties
``` validate-scenario
set-timed-value-properties,
timestamp=(string or float (GstClockTime)),
[binding-type=(string)],
[interpolation-mode=(string)],
[source-type=(string)],
[playback-time=(double,string)];
```
Sets GstTimedValue on pads on elements properties using GstControlBindings
and GstControlSource as defined in the parameters.
The properties values to set will be defined as:
```
element-name.padname::property-name=new-value
```
> NOTE: `.padname` is not needed if setting a property on an element
This action also adds necessary control source/control bindings.
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2022-09-17 01:05:18 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `timestamp` (_mandatory_)
The timestamp of the keyframe
**Possible types**: `string or float (GstClockTime)`
---
#### `binding-type` (_optional_)
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
The name of the type of binding to use
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
**Default**: direct
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
---
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
#### `interpolation-mode` (_optional_)
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
The name of the GstInterpolationMode to set on the source
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
**Default**: linear
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
---
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
#### `source-type` (_optional_)
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
The name of the type of ControlSource to use
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
**Default**: GstInterpolationControlSource
---
#### `playback-time` (_optional_)
The playback time at which the action will be executed
**Possible variables**:
2022-09-17 01:05:18 +00:00
* `position` : The current position in the stream
* `duration` : The duration of the stream
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
**Default**: 0.0
---
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
#### `on-message` (_optional_)
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
Specify on what message type the action will be executed.
2022-09-17 01:05:18 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
---
2022-09-17 01:05:18 +00:00
## check-properties
``` validate-scenario
check-properties,
[playback-time=(double,string)];
```
Check elements and pads properties values.
The properties values to check will be defined as:
```
element-name.padname::property-name
```
> NOTE: `.padname` is not needed if checking an element property
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2022-09-17 01:05:18 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `playback-time` (_optional_)
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
The playback time at which the action will be executed
**Possible variables**:
2022-09-17 01:05:18 +00:00
* `position` : The current position in the stream
* `duration` : The duration of the stream
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
**Default**: 0.0
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
---
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
#### `on-message` (_optional_)
Specify on what message type the action will be executed.
2022-09-17 01:05:18 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
**Default**: (null)
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
---
2022-09-17 01:05:18 +00:00
## set-properties
``` validate-scenario
set-properties,
[playback-time=(double,string)];
```
Set elements and pads properties values.
The properties values to set will be defined as:
```
element-name.padname::property-name
```
> NOTE: `.padname` is not needed if set an element property
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2022-09-17 01:05:18 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `playback-time` (_optional_)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
The playback time at which the action will be executed
**Possible variables**:
2018-11-17 19:50:30 +00:00
* `position` : The current position in the stream
* `duration` : The duration of the stream
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
**Default**: 0.0
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
#### `on-message` (_optional_)
Specify on what message type the action will be executed.
2019-06-18 22:10:24 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
**Default**: (null)
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
---
2019-06-18 22:10:24 +00:00
2018-11-17 19:50:30 +00:00
## set-property
``` validate-scenario
set-property,
2020-05-27 03:25:48 +00:00
property-name=(string),
property-value=(The same type of @property -name),
2022-09-17 01:05:18 +00:00
[on-all-instances=(boolean)],
2018-11-17 19:50:30 +00:00
[target-element-factory-name=(string)],
[target-element-klass=(string)],
2020-05-27 03:25:48 +00:00
[target-element-name=(string)],
[playback-time=(double,string)];
2018-11-17 19:50:30 +00:00
```
Sets a property of an element or klass of elements in the pipeline.
Besides property-name and value, either 'target-element-name' or
'target-element-klass' needs to be defined
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2018-11-17 19:50:30 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `property-name` (_mandatory_)
The name of the property to set on @target -element-name
**Possible types**: `string`
---
#### `property-value` (_mandatory_)
The value of @property -name to be set on the element
**Possible types**: `The same type of @property-name`
---
#### `on-all-instances` (_optional_)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
Whether to set property on all instances matching the requirements
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `boolean`
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
#### `target-element-factory-name` (_optional_)
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
The name factory for which to set a property on built elements
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
---
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
#### `target-element-klass` (_optional_)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
The klass of the GstElements to set a property on
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
#### `target-element-name` (_optional_)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
The name of the GstElement to set a property on
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
**Default**: (null)
---
#### `playback-time` (_optional_)
The playback time at which the action will be executed
**Possible variables**:
2018-11-17 19:50:30 +00:00
2020-05-27 03:25:48 +00:00
* `position` : The current position in the stream
2018-11-17 19:50:30 +00:00
2020-05-27 03:25:48 +00:00
* `duration` : The duration of the stream
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
**Default**: 0.0
---
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
#### `on-message` (_optional_)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
Specify on what message type the action will be executed.
2020-05-27 03:25:48 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
---
2018-11-17 19:50:30 +00:00
optional : Don't raise an error if this action hasn't been executed or failed
### Possible types:
boolean
Default: false
2020-05-27 03:25:48 +00:00
## check-property
2018-11-17 19:50:30 +00:00
``` validate-scenario
2020-05-27 03:25:48 +00:00
check-property,
property-name=(string),
property-value=(The same type of @property -name),
[target-element-factory-name=(string)],
[target-element-klass=(string)],
[target-element-name=(string)],
[playback-time=(double,string)];
2018-11-17 19:50:30 +00:00
```
2020-05-27 03:25:48 +00:00
Check the value of property of an element or klass of elements in the pipeline.
Besides property-name and value, either 'target-element-name' or
'target-element-klass' needs to be defined
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2018-11-17 19:50:30 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `property-name` (_mandatory_)
The name of the property to set on @target -element-name
**Possible types**: `string`
---
#### `property-value` (_mandatory_)
The expected value of @property -name
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `The same type of @property-name`
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
---
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
#### `target-element-factory-name` (_optional_)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
The name factory for which to check a property value on built elements
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
---
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
#### `target-element-klass` (_optional_)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
The klass of the GstElements to check a property on
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
---
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
#### `target-element-name` (_optional_)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
The name of the GstElement to check a property value
**Possible types**: `string`
**Default**: (null)
---
#### `playback-time` (_optional_)
The playback time at which the action will be executed
**Possible variables**:
2018-11-17 19:50:30 +00:00
* `position` : The current position in the stream
* `duration` : The duration of the stream
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
**Default**: 0.0
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
#### `on-message` (_optional_)
Specify on what message type the action will be executed.
2019-06-18 22:10:24 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
**Default**: (null)
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
---
2019-06-18 22:10:24 +00:00
2020-05-27 03:25:48 +00:00
## set-debug-threshold
``` validate-scenario
set-debug-threshold,
debug-threshold=(string),
[playback-time=(double,string)];
```
Sets the debug level to be used, same format as
setting the GST_DEBUG env variable
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2020-05-27 03:25:48 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `debug-threshold` (_mandatory_)
String defining debug threshold
2018-11-17 19:50:30 +00:00
See gst_debug_set_threshold_from_string
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
---
#### `playback-time` (_optional_)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
The playback time at which the action will be executed
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Possible variables**:
2018-11-17 19:50:30 +00:00
2020-05-27 03:25:48 +00:00
* `position` : The current position in the stream
2018-11-17 19:50:30 +00:00
2020-05-27 03:25:48 +00:00
* `duration` : The duration of the stream
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Default**: 0.0
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
---
#### `on-message` (_optional_)
Specify on what message type the action will be executed.
2020-05-27 03:25:48 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
---
2020-05-27 03:25:48 +00:00
2019-06-18 22:10:24 +00:00
## emit-signal
``` validate-scenario
emit-signal,
2020-05-27 03:25:48 +00:00
signal-name=(string),
2019-06-18 22:10:24 +00:00
target-element-name=(string),
2022-09-17 01:05:18 +00:00
[params=(ValueArray)],
2020-05-27 03:25:48 +00:00
[playback-time=(double,string)];
2019-06-18 22:10:24 +00:00
```
Emits a signal to an element in the pipeline
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2018-11-17 19:50:30 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `signal-name` (_mandatory_)
The name of the signal to emit on @target -element-name
**Possible types**: `string`
---
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
#### `target-element-name` (_mandatory_)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
The name of the GstElement to emit a signal on
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
---
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
#### `params` (_optional_)
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
The signal parameters
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `ValueArray`
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
---
#### `playback-time` (_optional_)
The playback time at which the action will be executed
**Possible variables**:
2018-11-17 19:50:30 +00:00
* `position` : The current position in the stream
* `duration` : The duration of the stream
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Default**: 0.0
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
#### `on-message` (_optional_)
Specify on what message type the action will be executed.
2019-06-18 22:10:24 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
**Default**: (null)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
2019-06-18 22:10:24 +00:00
## appsrc-push
2018-11-17 19:50:30 +00:00
``` validate-scenario
2019-06-18 22:10:24 +00:00
appsrc-push,
2020-05-27 03:25:48 +00:00
target-element-name=(string),
[caps=(caps)],
2022-09-14 18:36:41 +00:00
[dts=(GstClockTime)],
[duration=(GstClockTime)],
2023-12-12 13:49:17 +00:00
[file-name=(string)],
[fill-mode=(string)],
[from-appsink=(string)],
2019-06-18 22:10:24 +00:00
[offset=(uint64)],
2022-09-14 18:36:41 +00:00
[pts=(GstClockTime)],
[segment=((GstStructure)segment,[start=(GstClockTime)][stop=(GstClockTime)][base=(GstClockTime)][offset=(GstClockTime)][time=(GstClockTime)][postion=(GstClockTime)][duration=(GstClockTime)])],
2019-06-18 22:10:24 +00:00
[size=(uint64)],
2020-05-27 03:25:48 +00:00
[playback-time=(double,string)];
2018-11-17 19:50:30 +00:00
```
2022-09-14 18:36:41 +00:00
Queues a sample in an appsrc. If the pipeline state allows flow of buffers, the next action is not run until the buffer has been pushed.
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2018-11-17 19:50:30 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `target-element-name` (_mandatory_)
The name of the appsrc to push data on
**Possible types**: `string`
---
#### `caps` (_optional_)
Caps for the buffer to be pushed
**Possible types**: `caps`
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
#### `dts` (_optional_)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
Buffer DTS
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `GstClockTime`
2022-09-14 18:36:41 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2022-09-14 18:36:41 +00:00
2023-12-12 21:24:55 +00:00
---
2022-09-14 18:36:41 +00:00
2023-12-12 21:24:55 +00:00
#### `duration` (_optional_)
2022-09-14 18:36:41 +00:00
2023-12-12 21:24:55 +00:00
Buffer duration
2022-09-14 18:36:41 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `GstClockTime`
2022-09-14 18:36:41 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
---
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
#### `file-name` (_optional_)
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
Relative path to a file whose contents will be pushed as a buffer
**Possible types**: `string`
**Default**: (null)
---
#### `fill-mode` (_optional_)
How to fill the buffer, possible values:
2023-12-12 13:49:17 +00:00
- `nothing` : Leave data as malloc)
- `zero` : Fill buffers with zeros
- `counter` : Buffers are filled with an ever increasing counter
- `file` : Read data from file
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
**Default**: file
---
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
#### `from-appsink` (_optional_)
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
Pull sample from another appsink, if appsink is in another pipeline, use the `other-pipeline-name/target-element-name` synthax
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
---
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
#### `offset` (_optional_)
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
Offset within the file where the buffer will start
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `uint64`
2022-09-14 18:36:41 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2022-09-14 18:36:41 +00:00
2023-12-12 21:24:55 +00:00
---
2022-09-14 18:36:41 +00:00
2023-12-12 21:24:55 +00:00
#### `pts` (_optional_)
2022-09-14 18:36:41 +00:00
2023-12-12 21:24:55 +00:00
Buffer PTS
2022-09-14 18:36:41 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `GstClockTime`
2022-09-14 18:36:41 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
---
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
#### `segment` (_optional_)
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
The GstSegment to configure as part of the sample
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `(GstStructure)segment,[start=(GstClockTime)][stop=(GstClockTime)][base=(GstClockTime)][offset=(GstClockTime)][time=(GstClockTime)][postion=(GstClockTime)][duration=(GstClockTime)]`
**Default**: (null)
---
#### `size` (_optional_)
Number of bytes from the file that will be pushed as a buffer
**Possible types**: `uint64`
**Default**: (null)
---
#### `playback-time` (_optional_)
The playback time at which the action will be executed
**Possible variables**:
2020-05-27 03:25:48 +00:00
* `position` : The current position in the stream
* `duration` : The duration of the stream
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
**Default**: 0.0
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
---
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
#### `on-message` (_optional_)
Specify on what message type the action will be executed.
2020-05-27 03:25:48 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
**Default**: (null)
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
---
2019-06-18 22:10:24 +00:00
## appsrc-eos
``` validate-scenario
appsrc-eos,
2020-05-27 03:25:48 +00:00
target-element-name=(string),
[playback-time=(double,string)];
2019-06-18 22:10:24 +00:00
```
2023-12-12 13:49:17 +00:00
queues a eos event in an appsrc.
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2019-06-18 22:10:24 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `target-element-name` (_mandatory_)
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
the name of the appsrc to emit eos on
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
---
#### `playback-time` (_optional_)
The playback time at which the action will be executed
**Possible variables**:
2023-12-12 13:49:17 +00:00
* `position` : The current position in the stream
* `duration` : The duration of the stream
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
**Default**: 0.0
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
---
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
#### `on-message` (_optional_)
Specify on what message type the action will be executed.
2023-12-12 13:49:17 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
**Default**: (null)
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
---
2023-12-12 13:49:17 +00:00
## appsink-forward-to-appsrc
``` validate-scenario
appsink-forward-to-appsrc,
sink=(string),
src=(string),
2023-12-12 21:24:55 +00:00
[forward-eos=(bool)],
2023-12-12 13:49:17 +00:00
[playback-time=(double,string)];
```
queues a eos event in an appsrc.
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2023-12-12 13:49:17 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `sink` (_mandatory_)
the name of the appsink to forward samples/events from
**Possible types**: `string`
---
#### `src` (_mandatory_)
the name of the appsrc to forward samples/events to
**Possible types**: `string`
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
---
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
#### `forward-eos` (_optional_)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
Wether to forward EOS or not
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `bool`
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
**Default**: true
---
#### `playback-time` (_optional_)
The playback time at which the action will be executed
**Possible variables**:
2019-06-18 22:10:24 +00:00
* `position` : The current position in the stream
* `duration` : The duration of the stream
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
**Default**: 0.0
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
---
#### `on-message` (_optional_)
Specify on what message type the action will be executed.
2019-06-18 22:10:24 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
**Default**: (null)
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
---
2019-06-18 22:10:24 +00:00
## flush
``` validate-scenario
flush,
target-element-name=(string),
2020-05-27 03:25:48 +00:00
[reset-time=(boolean)],
[playback-time=(double,string)];
2019-06-18 22:10:24 +00:00
```
Sends FLUSH_START and FLUSH_STOP events.
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2019-06-18 22:10:24 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `target-element-name` (_mandatory_)
The name of the appsrc to flush on
**Possible types**: `string`
---
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
#### `reset-time` (_optional_)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
Whether the flush should reset running time
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `boolean`
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Default**: TRUE
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
---
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
#### `playback-time` (_optional_)
The playback time at which the action will be executed
**Possible variables**:
2019-06-18 22:10:24 +00:00
* `position` : The current position in the stream
* `duration` : The duration of the stream
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
**Default**: 0.0
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
---
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
#### `on-message` (_optional_)
Specify on what message type the action will be executed.
2019-06-18 22:10:24 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
**Default**: (null)
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
---
2019-06-18 22:10:24 +00:00
2018-11-17 19:50:30 +00:00
## disable-plugin
``` validate-scenario
disable-plugin,
plugin-name=(string),
2020-05-27 03:25:48 +00:00
[as-config=(boolean)],
[playback-time=(double,string)];
2018-11-17 19:50:30 +00:00
```
Disables a GstPlugin
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2018-11-17 19:50:30 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `plugin-name` (_mandatory_)
The name of the GstPlugin to disable
**Possible types**: `string`
---
#### `as-config` (_optional_)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
Execute action as a config action (meaning when loading the scenario)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `boolean`
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Default**: false
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
---
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
#### `playback-time` (_optional_)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
The playback time at which the action will be executed
**Possible variables**:
2018-11-17 19:50:30 +00:00
* `position` : The current position in the stream
* `duration` : The duration of the stream
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
**Default**: 0.0
---
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
#### `on-message` (_optional_)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
Specify on what message type the action will be executed.
2019-06-18 22:10:24 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
---
2019-06-18 22:10:24 +00:00
2018-11-17 19:50:30 +00:00
## check-last-sample
``` validate-scenario
check-last-sample,
2020-05-27 03:25:48 +00:00
[checksum=(string)],
2018-11-17 19:50:30 +00:00
[sink-factory-name=(string)],
2020-05-27 03:25:48 +00:00
[sink-name=(string)],
2018-11-17 19:50:30 +00:00
[sinkpad-caps=(string)],
2020-05-27 03:25:48 +00:00
[timecode-frame-number=(string)],
[playback-time=(double,string)];
2018-11-17 19:50:30 +00:00
```
2020-05-27 03:25:48 +00:00
Checks the last-sample checksum or frame number (set on its GstVideoTimeCodeMeta) on declared Sink element. This allows checking the checksum of a buffer after a 'seek' or after a GESTimeline 'commit' for example
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2018-11-17 19:50:30 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `checksum` (_optional_)
The reference checksum of the buffer.
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
---
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
#### `sink-factory-name` (_optional_)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
The name of the factory of the sink element to check sample on.
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
---
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
#### `sink-name` (_optional_)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
The name of the sink element to check sample on.
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
---
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
#### `sinkpad-caps` (_optional_)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
The caps (as string) of the sink to check.
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
**Default**: (null)
---
#### `timecode-frame-number` (_optional_)
The frame number of the buffer as specified on its GstVideoTimeCodeMeta
**Possible types**: `string`
**Default**: (null)
---
#### `playback-time` (_optional_)
The playback time at which the action will be executed
**Possible variables**:
2018-11-17 19:50:30 +00:00
* `position` : The current position in the stream
* `duration` : The duration of the stream
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
**Default**: 0.0
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
#### `on-message` (_optional_)
Specify on what message type the action will be executed.
2019-06-18 22:10:24 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
**Default**: (null)
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
---
2019-06-18 22:10:24 +00:00
2020-05-27 03:25:48 +00:00
## crank-clock
``` validate-scenario
crank-clock,
[expected-elapsed-time=(GstClockTime)],
[expected-time=(GstClockTime)],
[playback-time=(double,string)];
```
Crank the clock, possibly checking how much time was supposed to be waited on the clock and/or the clock running time after the crank. Using one `crank-clock` action in a scenario implies that the scenario is driving the clock and a #GstTestClock will be used. The user will need to crank it the number of time required (using the `repeat` parameter comes handy here).
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2020-05-27 03:25:48 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `expected-elapsed-time` (_optional_)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
Check time elapsed during the clock cranking
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `GstClockTime`
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
---
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
#### `expected-time` (_optional_)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
Expected clock time after cranking
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `GstClockTime`
**Default**: (null)
---
#### `playback-time` (_optional_)
The playback time at which the action will be executed
**Possible variables**:
2020-05-27 03:25:48 +00:00
* `position` : The current position in the stream
* `duration` : The duration of the stream
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
**Default**: 0.0
---
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
#### `on-message` (_optional_)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
Specify on what message type the action will be executed.
2020-05-27 03:25:48 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
---
2020-05-27 03:25:48 +00:00
2019-06-18 22:10:24 +00:00
## video-request-key-unit
``` validate-scenario
video-request-key-unit,
direction=(string),
[all-headers=(boolean)],
[count=(int)],
2020-05-27 03:25:48 +00:00
[pad=(string)],
[running-time=(double or string)],
[srcpad=(string)],
2019-06-18 22:10:24 +00:00
[target-element-factory-name=(string)],
[target-element-klass=(string)],
2020-05-27 03:25:48 +00:00
[target-element-name=(string)],
[playback-time=(double,string)];
2019-06-18 22:10:24 +00:00
```
Request a video key unit
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2019-06-18 22:10:24 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `direction` (_mandatory_)
The direction for the event to travel, should be in
2020-05-27 03:25:48 +00:00
* [upstream, downstream]
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
---
#### `all-headers` (_optional_)
TRUE to produce headers when starting a new key unit
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `boolean`
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Default**: FALSE
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
---
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
#### `count` (_optional_)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
integer that can be used to number key units
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `int`
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Default**: 0
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
---
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
#### `pad` (_optional_)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
The name of the GstPad to send a send force-key-unit to
**Possible types**: `string`
**Default**: sink
---
#### `running-time` (_optional_)
The running_time can be set to request a new key unit at a specific running_time.
2020-05-27 03:25:48 +00:00
If not set, GST_CLOCK_TIME_NONE will be used so upstream elements will produce a new key unit as soon as possible.
2023-12-12 21:24:55 +00:00
**Possible variables**:
2020-05-27 03:25:48 +00:00
* position: The current position in the stream
* duration: The duration of the stream
2023-12-12 21:24:55 +00:00
**Possible types**: `double or string`
**Default**: (null)
---
#### `srcpad` (_optional_)
The name of the GstPad to send a send force-key-unit to
**Possible types**: `string`
**Default**: src
---
#### `target-element-factory-name` (_optional_)
The factory name of the GstElements to send a send force-key-unit to
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
---
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
#### `target-element-klass` (_optional_)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
The klass of the GstElements to send a send force-key-unit to
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Default**: Video/Encoder
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
---
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
#### `target-element-name` (_optional_)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
The name of the GstElement to send a send force-key-unit to
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
---
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
#### `playback-time` (_optional_)
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
The playback time at which the action will be executed
**Possible variables**:
2019-06-18 22:10:24 +00:00
* `position` : The current position in the stream
* `duration` : The duration of the stream
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
**Default**: 0.0
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
---
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
#### `on-message` (_optional_)
Specify on what message type the action will be executed.
2019-06-18 22:10:24 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
**Default**: (null)
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
---
2019-06-18 22:10:24 +00:00
2020-05-27 03:25:48 +00:00
## check-position
2019-06-18 22:10:24 +00:00
2020-05-27 03:25:48 +00:00
``` validate-scenario
check-position,
expected-position=(GstClockTime),
[playback-time=(double,string)];
```
2019-06-18 22:10:24 +00:00
2020-05-27 03:25:48 +00:00
Check current pipeline position.
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2019-06-18 22:10:24 +00:00
2020-05-27 03:25:48 +00:00
### Parameters
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
#### `expected-position` (_mandatory_)
The expected pipeline position
**Possible types**: `GstClockTime`
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
---
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
#### `playback-time` (_optional_)
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
The playback time at which the action will be executed
**Possible variables**:
2019-06-18 22:10:24 +00:00
2022-09-17 01:05:18 +00:00
* `position` : The current position in the stream
2019-06-18 22:10:24 +00:00
2022-09-17 01:05:18 +00:00
* `duration` : The duration of the stream
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
**Default**: 0.0
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
---
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
#### `on-message` (_optional_)
Specify on what message type the action will be executed.
2022-09-17 01:05:18 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
**Default**: (null)
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
---
2020-05-27 03:25:48 +00:00
2022-09-17 01:05:18 +00:00
## check-current-pad-caps
2020-05-27 03:25:48 +00:00
2022-09-17 01:05:18 +00:00
``` validate-scenario
check-current-pad-caps,
[comparison-type=(string in [intersect, equal])],
[expected-caps=(caps,structure)],
[pad=(string)],
[target-element-factory-name=(string)],
[target-element-klass=(string)],
[target-element-name=(string)],
[playback-time=(double,string)];
```
2020-05-27 03:25:48 +00:00
2022-09-17 01:05:18 +00:00
Check currently set caps on a particular pad.
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2022-09-17 01:05:18 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `comparison-type` (_optional_)
__No description__
**Possible types**: `string in [intersect, equal]`
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
---
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
#### `expected-caps` (_optional_)
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
The expected caps. If not present, expected no caps to be set
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `caps,structure`
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
---
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
#### `pad` (_optional_)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
The name of the GstPad to get pad from
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
---
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
#### `target-element-factory-name` (_optional_)
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
The factory name of the GstElements to get pad from
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
---
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
#### `target-element-klass` (_optional_)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
The klass of the GstElements to get pad from
**Possible types**: `string`
**Default**: (null)
---
#### `target-element-name` (_optional_)
The name of the GstElement to send a send force-key-unit to
**Possible types**: `string`
**Default**: (null)
---
#### `playback-time` (_optional_)
The playback time at which the action will be executed
**Possible variables**:
2020-05-27 03:25:48 +00:00
* `position` : The current position in the stream
* `duration` : The duration of the stream
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Default**: 0.0
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
---
#### `on-message` (_optional_)
Specify on what message type the action will be executed.
2022-09-17 01:05:18 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
**Default**: (null)
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
---
2022-09-17 01:05:18 +00:00
## run-command
``` validate-scenario
run-command,
argv=((string){array,}),
[env=(structure)],
[playback-time=(double,string)];
```
Run an external command.
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2022-09-17 01:05:18 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `argv` (_mandatory_)
The subprocess arguments, include the program name itself
**Possible types**: `(string){array,}`
---
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
#### `env` (_optional_)
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
Extra environment variables to set
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `structure`
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
---
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
#### `playback-time` (_optional_)
The playback time at which the action will be executed
**Possible variables**:
2022-09-17 01:05:18 +00:00
* `position` : The current position in the stream
* `duration` : The duration of the stream
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
**Default**: 0.0
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
---
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
#### `on-message` (_optional_)
Specify on what message type the action will be executed.
2022-09-17 01:05:18 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
**Default**: (null)
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
---
2022-09-17 01:05:18 +00:00
optional : Don't raise an error if this action hasn't been executed or failed
### Possible types:
boolean
Default: false
## foreach
``` validate-scenario
foreach,
actions=({array of [structures]}),
[playback-time=(double,string)];
```
Run actions defined in the `actions` array the number of times specified
with an iterator parameter passed in. The iterator can be
a range like: `i=[start, end, step]` or array of values
such as: `values=<value1, value2>` .
One and only one iterator field is supported as parameter.
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2022-09-17 01:05:18 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `actions` (_mandatory_)
The array of actions to repeat
**Possible types**: `{array of [structures]}`
---
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
#### `playback-time` (_optional_)
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
The playback time at which the action will be executed
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
**Possible variables**:
2022-09-17 01:05:18 +00:00
* `position` : The current position in the stream
* `duration` : The duration of the stream
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
**Default**: 0.0
2022-09-17 01:05:18 +00:00
2023-12-12 21:24:55 +00:00
---
#### `on-message` (_optional_)
Specify on what message type the action will be executed.
2023-12-12 13:49:17 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
---
## run-on-sub-pipeline
2023-12-12 13:49:17 +00:00
``` validate-scenario
2023-12-12 21:24:55 +00:00
run-on-sub-pipeline,
2023-12-12 13:49:17 +00:00
pipeline-name=((string)),
[action=([structures])],
[playback-time=(double,string)];
```
Execute @action on a sub scenario/pipeline.
2023-12-12 21:24:55 +00:00
**Implementer namespace**: core
2023-12-12 13:49:17 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `pipeline-name` (_mandatory_)
The name of the sub scenario pipeline
**Possible types**: `(string)`
---
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
#### `action` (_optional_)
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
The action to execute on @pipeline -name
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `[structures]`
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
---
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
#### `playback-time` (_optional_)
The playback time at which the action will be executed
**Possible variables**:
2023-12-12 13:49:17 +00:00
* `position` : The current position in the stream
* `duration` : The duration of the stream
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
**Default**: 0.0
---
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
#### `on-message` (_optional_)
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
Specify on what message type the action will be executed.
2023-12-12 13:49:17 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
---
2023-12-12 13:49:17 +00:00
## create-sub-pipeline
``` validate-scenario
create-sub-pipeline,
desc=(string),
[name=((string))],
[scenario=({array of [structures]})],
[playback-time=(double,string)];
```
Start another pipeline potentially running a scenario on it.
When a scenario is specified, and while the sub pipeline is running
it will be possible to execute actions from the main scenario on that pipeline
2023-12-12 21:24:55 +00:00
using the `run-on-sub-pipeline` action type.
**Implementer namespace**: core
2023-12-12 13:49:17 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `desc` (_mandatory_)
Pipeline description as passed to gst_parse_launch()
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
---
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
#### `name` (_optional_)
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
The name of the new pipeline
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `(string)`
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
---
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
#### `scenario` (_optional_)
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
Array of action and metadatas to run on the new pipeline
**Possible types**: `{array of [structures]}`
**Default**: (null)
---
#### `playback-time` (_optional_)
The playback time at which the action will be executed
**Possible variables**:
2023-12-12 13:49:17 +00:00
* `position` : The current position in the stream
* `duration` : The duration of the stream
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
**Default**: 0.0
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
---
2023-12-12 13:49:17 +00:00
2023-12-12 21:24:55 +00:00
#### `on-message` (_optional_)
Specify on what message type the action will be executed.
2020-05-27 03:25:48 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
**Default**: (null)
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
---
2019-06-18 22:10:24 +00:00
2018-11-17 19:50:30 +00:00
## corrupt-socket-recv
``` validate-scenario
corrupt-socket-recv,
errno=(string),
2020-05-27 03:25:48 +00:00
port=(int),
[times=(int)],
[playback-time=(double,string)];
2018-11-17 19:50:30 +00:00
```
corrupt the next socket receive
2023-12-12 21:24:55 +00:00
**Implementer namespace**: validatefaultinjection
2018-11-17 19:50:30 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `errno` (_mandatory_)
errno to set when failing
**Possible types**: `string`
---
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
#### `port` (_mandatory_)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
The port the socket to be corrupted listens on
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `int`
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
---
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
#### `times` (_optional_)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
Number of times to corrupt recv, default is one
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `int`
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Default**: 1
---
#### `playback-time` (_optional_)
The playback time at which the action will be executed
**Possible variables**:
2018-11-17 19:50:30 +00:00
* `position` : The current position in the stream
* `duration` : The duration of the stream
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Default**: 0.0
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
#### `on-message` (_optional_)
Specify on what message type the action will be executed.
2019-06-18 22:10:24 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
**Default**: (null)
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
---
2019-06-18 22:10:24 +00:00
2018-11-17 19:50:30 +00:00
## gtk-put-event
``` validate-scenario
gtk-put-event,
[keys=(string)],
[string=(string)],
[type=(string)],
2020-05-27 03:25:48 +00:00
[widget-name=(string)],
[playback-time=(double,string)];
2018-11-17 19:50:30 +00:00
```
Put a GdkEvent on the event list using gdk_put_event
2023-12-12 21:24:55 +00:00
**Implementer namespace**: validategtk
2018-11-17 19:50:30 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `keys` (_optional_)
The keyboard keys to be used for the event, parsed with gtk_accelerator_parse_with_keycode, so refer to its documentation for more information
**Possible types**: `string`
**Default**: (null)
---
#### `string` (_optional_)
The string to be 'written' by the keyboard sending KEY_PRESS GdkEvents
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
#### `type` (_optional_)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
The event type to get executed. the string should look like the ones in GdkEventType but without the leading 'GDK_'. It is not mandatory as it can be computed from other present fields (e.g, an action with 'keys' will consider the type as 'key_pressed' by default).
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
---
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
#### `widget-name` (_optional_)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
The name of the target GdkWidget of the GdkEvent. That widget has to contain a GdkWindow. If not specified, the event will be sent to the first toplevel window
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Default**: (null)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
#### `playback-time` (_optional_)
The playback time at which the action will be executed
**Possible variables**:
2018-11-17 19:50:30 +00:00
2020-05-27 03:25:48 +00:00
* `position` : The current position in the stream
2018-11-17 19:50:30 +00:00
2020-05-27 03:25:48 +00:00
* `duration` : The duration of the stream
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
**Default**: 0.0
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
#### `on-message` (_optional_)
Specify on what message type the action will be executed.
2020-05-27 03:25:48 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
**Default**: (null)
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
2018-11-17 19:50:30 +00:00
## set-subtitle
``` validate-scenario
set-subtitle,
2020-05-27 03:25:48 +00:00
subtitle-file=(string (A URI)),
[playback-time=(double,string)];
2018-11-17 19:50:30 +00:00
```
Action to set a subtitle file to use on a playbin pipeline.
The subtitles file that will be used should be specified
relative to the playbin URI in use thanks to the subtitle-file
action property. You can also specify a folder with subtitle-dir
For example if playbin.uri='file://some/uri.mov'
and action looks like 'set-subtitle, subtitle-file=en.srt'
the subtitle URI will be set to 'file:///some/uri.mov.en.srt'
2023-12-12 21:24:55 +00:00
**Implementer namespace**: validate-launcher
2018-11-17 19:50:30 +00:00
### Parameters
2023-12-12 21:24:55 +00:00
#### `subtitle-file` (_mandatory_)
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
Sets a subtitles file on a playbin pipeline
2020-05-27 03:25:48 +00:00
2023-12-12 21:24:55 +00:00
**Possible types**: `string (A URI)`
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
#### `playback-time` (_optional_)
The playback time at which the action will be executed
**Possible variables**:
2018-11-17 19:50:30 +00:00
* `position` : The current position in the stream
* `duration` : The duration of the stream
2023-12-12 21:24:55 +00:00
**Possible types**: `double,string`
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
**Default**: 0.0
2018-11-17 19:50:30 +00:00
2023-12-12 21:24:55 +00:00
---
#### `on-message` (_optional_)
Specify on what message type the action will be executed.
2019-06-18 22:10:24 +00:00
If both 'playback-time' and 'on-message' is specified, the action will be executed
on whatever happens first.
2023-12-12 21:24:55 +00:00
**Possible types**: `string`
**Default**: (null)
2019-06-18 22:10:24 +00:00
2023-12-12 21:24:55 +00:00
---