Move files from gst-devtools into the "subprojects/gst-devtools/" subdir
[platform/upstream/gstreamer.git] / subprojects / gst-devtools / docs / gst-validate-action-types.md
1 # GstValidate action types
2
3 ## meta
4
5
6 ``` validate-scenario
7 meta,
8     [duration=(double, int)],
9     [handles-states=(boolean)],
10     [ignore-eos=(boolean)],
11     [is-config=(boolean)],
12     [max-dropped=(int)],
13     [max-latency=(double, int)],
14     [min-audio-track=(int)],
15     [min-media-duration=(double)],
16     [min-video-track=(int)],
17     [need-clock-sync=(boolean)],
18     [pipeline-name=(string)],
19     [reverse-playback=(boolean)],
20     [seek=(boolean)],
21     [summary=(string)];
22 ```
23
24 Scenario metadata.
25 NOTE: it used to be called "description"
26  * Implementer namespace: core
27  * Is config action (meaning it will be executing right at the beginning of the execution of the pipeline)
28
29 ### Parameters
30
31 * `duration`:(optional): Lets the user know the time the scenario needs to be fully executed
32
33   Possible types: `double, int`
34
35   Default: infinite (GST_CLOCK_TIME_NONE)
36
37 * `handles-states`:(optional): Whether the scenario handles pipeline state changes from the beginning
38 in that case the application should not set the state of the pipeline to anything
39 and the scenario action will be executed from the beginning
40
41   Possible types: `boolean`
42
43   Default: false
44
45 * `ignore-eos`:(optional): Ignore EOS and keep executing the scenario when it happens.
46  By default a 'stop' action is generated one EOS
47
48   Possible types: `boolean`
49
50   Default: false
51
52 * `is-config`:(optional): Whether the scenario is a config only scenario
53
54   Possible types: `boolean`
55
56   Default: false
57
58 * `max-dropped`:(optional): The maximum number of buffers which can be dropped by the QoS system allowed for this pipeline.
59 It can be overridden using core configuration, like for example by defining the env variable GST_VALIDATE_CONFIG=core,max-dropped=100
60
61   Possible types: `int`
62
63   Default: infinite (-1)
64
65 * `max-latency`:(optional): The maximum latency in nanoseconds allowed for this pipeline.
66 It can be overridden using core configuration, like for example by defining the env variable GST_VALIDATE_CONFIG=core,max-latency=33000000
67
68   Possible types: `double, int`
69
70   Default: infinite (GST_CLOCK_TIME_NONE)
71
72 * `min-audio-track`:(optional): Lets the user know the minimum number of audio tracks the stream needs to contain
73 for the scenario to be usable
74
75   Possible types: `int`
76
77   Default: 0
78
79 * `min-media-duration`:(optional): Lets the user know the minimum duration of the stream for the scenario
80 to be usable
81
82   Possible types: `double`
83
84   Default: 0.0
85
86 * `min-video-track`:(optional): Lets the user know the minimum number of video tracks the stream needs to contain
87 for the scenario to be usable
88
89   Possible types: `int`
90
91   Default: 0
92
93 * `need-clock-sync`:(optional): Whether the scenario needs the execution to be synchronized with the pipeline's
94 clock. Letting the user know if it can be used with a 'fakesink sync=false' sink
95
96   Possible types: `boolean`
97
98   Default: true if some action requires a playback-time false otherwise
99
100 * `pipeline-name`:(optional): The name of the GstPipeline on which the scenario should be executed.
101 It has the same effect as setting the pipeline using pipeline_name->scenario_name.
102
103   Possible types: `string`
104
105   Default: NULL
106
107 * `reverse-playback`:(optional): Whether the scenario plays the stream backward
108
109   Possible types: `boolean`
110
111   Default: false
112
113 * `seek`:(optional): Whether the scenario executes seek actions or not
114
115   Possible types: `boolean`
116
117   Default: false
118
119 * `summary`:(optional): Whether the scenario is a config only scenario (ie. explain what it does)
120
121   Possible types: `string`
122
123   Default: 'Nothing'
124
125 ## seek
126
127
128 ``` validate-scenario
129 seek,
130     flags=(string describing the GstSeekFlags to set),
131     start=(double or string (GstClockTime)),
132     [rate=(double)],
133     [start_type=(string)],
134     [stop=(double or string (GstClockTime))],
135     [stop_type=(string)],
136     [playback-time=(double,string)];
137 ```
138
139 Seeks into the stream. This is an example of a seek happening when the stream reaches 5 seconds
140 or 1 eighth of its duration and seeks to 10s or 2 eighths of its duration:
141   seek, playback-time="min(5.0, (duration/8))", start="min(10, 2*(duration/8))", flags=accurate+flush
142  * Implementer namespace: core
143
144 ### Parameters
145
146 * `flags`:(mandatory): The GstSeekFlags to use
147
148   Possible types: `string describing the GstSeekFlags to set`
149
150 * `start`:(mandatory): The starting value of the seek
151
152   Possible variables:
153
154   * `position`: The current position in the stream
155
156   * `duration`: The duration of the stream
157
158   Possible types: `double or string (GstClockTime)`
159
160 * `rate`:(optional): The rate value of the seek
161
162   Possible types: `double`
163
164   Default: 1.0
165
166 * `start_type`:(optional): The GstSeekType to use for the start of the seek, in:
167   [none, set, end]
168
169   Possible types: `string`
170
171   Default: set
172
173 * `stop`:(optional): The stop value of the seek
174
175   Possible variables:
176
177   * `position`: The current position in the stream
178
179   * `duration`: The duration of the stream
180
181   Possible types: `double or string (GstClockTime)`
182
183   Default: GST_CLOCK_TIME_NONE
184
185 * `stop_type`:(optional): The GstSeekType to use for the stop of the seek, in:
186   [none, set, end]
187
188   Possible types: `string`
189
190   Default: set
191
192 * `playback-time`:(optional): The playback time at which the action will be executed
193
194   Possible variables:
195
196   * `position`: The current position in the stream
197
198   * `duration`: The duration of the stream
199
200   Possible types: `double,string`
201
202   Default: 0.0
203
204 * `on-message`:(optional): Specify on what message type the action will be executed.
205  If both 'playback-time' and 'on-message' is specified, the action will be executed
206  on whatever happens first.
207
208   Possible types: `string`
209
210   Default: (null)
211
212 ## pause
213
214
215 ``` validate-scenario
216 pause,
217     [duration=(double or string (GstClockTime))],
218     [playback-time=(double,string)];
219 ```
220
221 Sets pipeline to PAUSED. You can add a 'duration'
222 parameter so the pipeline goes back to playing after that duration
223 (in second)
224  * Implementer namespace: core
225
226 ### Parameters
227
228 * `duration`:(optional): The duration during which the stream will be paused
229
230   Possible types: `double or string (GstClockTime)`
231
232   Default: 0.0
233
234 * `playback-time`:(optional): The playback time at which the action will be executed
235
236   Possible variables:
237
238   * `position`: The current position in the stream
239
240   * `duration`: The duration of the stream
241
242   Possible types: `double,string`
243
244   Default: 0.0
245
246 * `on-message`:(optional): Specify on what message type the action will be executed.
247  If both 'playback-time' and 'on-message' is specified, the action will be executed
248  on whatever happens first.
249
250   Possible types: `string`
251
252   Default: (null)
253
254 ## play
255
256
257 ``` validate-scenario
258 play,
259     [playback-time=(double,string)];
260 ```
261
262 Sets the pipeline state to PLAYING
263  * Implementer namespace: core
264
265 ### Parameters
266
267 * `playback-time`:(optional): The playback time at which the action will be executed
268
269   Possible variables:
270
271   * `position`: The current position in the stream
272
273   * `duration`: The duration of the stream
274
275   Possible types: `double,string`
276
277   Default: 0.0
278
279 * `on-message`:(optional): Specify on what message type the action will be executed.
280  If both 'playback-time' and 'on-message' is specified, the action will be executed
281  on whatever happens first.
282
283   Possible types: `string`
284
285   Default: (null)
286
287 ## stop
288
289
290 ``` validate-scenario
291 stop,
292     [playback-time=(double,string)];
293 ```
294
295 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.
296  * Implementer namespace: core
297
298 ### Parameters
299
300 * `playback-time`:(optional): The playback time at which the action will be executed
301
302   Possible variables:
303
304   * `position`: The current position in the stream
305
306   * `duration`: The duration of the stream
307
308   Possible types: `double,string`
309
310   Default: 0.0
311
312 * `on-message`:(optional): Specify on what message type the action will be executed.
313  If both 'playback-time' and 'on-message' is specified, the action will be executed
314  on whatever happens first.
315
316   Possible types: `string`
317
318   Default: (null)
319
320 ## eos
321
322
323 ``` validate-scenario
324 eos,
325     [playback-time=(double,string)];
326 ```
327
328 Sends an EOS event to the pipeline
329  * Implementer namespace: core
330
331 ### Parameters
332
333 * `playback-time`:(optional): The playback time at which the action will be executed
334
335   Possible variables:
336
337   * `position`: The current position in the stream
338
339   * `duration`: The duration of the stream
340
341   Possible types: `double,string`
342
343   Default: 0.0
344
345 * `on-message`:(optional): Specify on what message type the action will be executed.
346  If both 'playback-time' and 'on-message' is specified, the action will be executed
347  on whatever happens first.
348
349   Possible types: `string`
350
351   Default: (null)
352
353 ## switch-track
354
355
356 ``` validate-scenario
357 switch-track,
358     [index=(string: to switch track relatively
359 int: To use the actual index to use)],
360     [type=(string)],
361     [playback-time=(double,string)];
362 ```
363
364 The 'switch-track' command can be used to switch tracks.
365  * Implementer namespace: core
366
367 ### Parameters
368
369 * `index`:(optional): Selects which track of this type to use: it can be either a number,
370 which will be the Nth track of the given type, or a number with a '+' or
371 '-' prefix, which means a relative change (eg, '+1' means 'next track',
372 '-1' means 'previous track')
373
374   Possible types: `string: to switch track relatively
375 int: To use the actual index to use`
376
377   Default: +1
378
379 * `type`:(optional): Selects which track type to change (can be 'audio', 'video', or 'text').
380
381   Possible types: `string`
382
383   Default: audio
384
385 * `playback-time`:(optional): The playback time at which the action will be executed
386
387   Possible variables:
388
389   * `position`: The current position in the stream
390
391   * `duration`: The duration of the stream
392
393   Possible types: `double,string`
394
395   Default: 0.0
396
397 * `on-message`:(optional): Specify on what message type the action will be executed.
398  If both 'playback-time' and 'on-message' is specified, the action will be executed
399  on whatever happens first.
400
401   Possible types: `string`
402
403   Default: (null)
404
405 ## wait
406
407
408 ``` validate-scenario
409 wait,
410     [duration=(double or string (GstClockTime))],
411     [message-type=(string)],
412     [signal-name=(string)],
413     [target-element-name=(string)],
414     [playback-time=(double,string)];
415 ```
416
417 Waits for signal 'signal-name', message 'message-type', or during 'duration' seconds
418  * Implementer namespace: core
419
420 ### Parameters
421
422 * `duration`:(optional): the duration while no other action will be executed
423
424   Possible types: `double or string (GstClockTime)`
425
426   Default: (null)
427
428 * `message-type`:(optional): The name of the message type to wait for (on @target-element-name if specified)
429
430   Possible types: `string`
431
432   Default: (null)
433
434 * `signal-name`:(optional): The name of the signal to wait for on @target-element-name
435
436   Possible types: `string`
437
438   Default: (null)
439
440 * `target-element-name`:(optional): The name of the GstElement to wait @signal-name on.
441
442   Possible types: `string`
443
444   Default: (null)
445
446 * `playback-time`:(optional): The playback time at which the action will be executed
447
448   Possible variables:
449
450   * `position`: The current position in the stream
451
452   * `duration`: The duration of the stream
453
454   Possible types: `double,string`
455
456   Default: 0.0
457
458 * `on-message`:(optional): Specify on what message type the action will be executed.
459  If both 'playback-time' and 'on-message' is specified, the action will be executed
460  on whatever happens first.
461
462   Possible types: `string`
463
464   Default: (null)
465
466 ## dot-pipeline
467
468
469 ``` validate-scenario
470 dot-pipeline,
471     [playback-time=(double,string)];
472 ```
473
474 Dots the pipeline (the 'name' property will be used in the dot filename).
475 For more information have a look at the GST_DEBUG_BIN_TO_DOT_FILE documentation.
476 Note that the GST_DEBUG_DUMP_DOT_DIR env variable needs to be set
477  * Implementer namespace: core
478
479 ### Parameters
480
481 * `playback-time`:(optional): The playback time at which the action will be executed
482
483   Possible variables:
484
485   * `position`: The current position in the stream
486
487   * `duration`: The duration of the stream
488
489   Possible types: `double,string`
490
491   Default: 0.0
492
493 * `on-message`:(optional): Specify on what message type the action will be executed.
494  If both 'playback-time' and 'on-message' is specified, the action will be executed
495  on whatever happens first.
496
497   Possible types: `string`
498
499   Default: (null)
500
501 ## set-rank
502
503
504 ``` validate-scenario
505 set-rank,
506     name=(string),
507     rank=(string, int);
508 ```
509
510 Changes the ranking of a particular plugin feature(s)
511  * Implementer namespace: core
512  * Is config action (meaning it will be executing right at the beginning of the execution of the pipeline)
513
514 ### Parameters
515
516 * `name`:(mandatory): The name of a GstFeature or GstPlugin
517
518   Possible types: `string`
519
520 * `rank`:(mandatory): The GstRank to set on @name
521
522   Possible types: `string, int`
523
524 ## set-feature-rank
525
526
527 ``` validate-scenario
528 set-feature-rank,
529     feature-name=(string),
530     rank=(string, int);
531 ```
532
533 Changes the ranking of a particular plugin feature
534  * Implementer namespace: core
535  * Is config action (meaning it will be executing right at the beginning of the execution of the pipeline)
536
537 ### Parameters
538
539 * `feature-name`:(mandatory): The name of a GstFeature
540
541   Possible types: `string`
542
543 * `rank`:(mandatory): The GstRank to set on @feature-name
544
545   Possible types: `string, int`
546
547 ## set-state
548
549
550 ``` validate-scenario
551 set-state,
552     state=(string),
553     [playback-time=(double,string)];
554 ```
555
556 Changes the state of the pipeline to any GstState
557  * Implementer namespace: core
558
559 ### Parameters
560
561 * `state`:(mandatory): A GstState as a string, should be in:
562     * ['null', 'ready', 'paused', 'playing']
563
564   Possible types: `string`
565
566 * `playback-time`:(optional): The playback time at which the action will be executed
567
568   Possible variables:
569
570   * `position`: The current position in the stream
571
572   * `duration`: The duration of the stream
573
574   Possible types: `double,string`
575
576   Default: 0.0
577
578 * `on-message`:(optional): Specify on what message type the action will be executed.
579  If both 'playback-time' and 'on-message' is specified, the action will be executed
580  on whatever happens first.
581
582   Possible types: `string`
583
584   Default: (null)
585
586 ## set-vars
587
588
589 ``` validate-scenario
590 set-vars,
591     [playback-time=(double,string)];
592 ```
593
594 Define vars to be used in other actions.
595 For example you can define vars for buffer checksum to be used in the "check-last-sample" action type as follow:
596
597 ```
598  set-vars, frame1=SomeRandomHash1,frame2=Anotherhash...
599  check-last-sample, checksum=frame1
600 ```
601
602  * Implementer namespace: core
603
604 ### Parameters
605
606 * `playback-time`:(optional): The playback time at which the action will be executed
607
608   Possible variables:
609
610   * `position`: The current position in the stream
611
612   * `duration`: The duration of the stream
613
614   Possible types: `double,string`
615
616   Default: 0.0
617
618 * `on-message`:(optional): Specify on what message type the action will be executed.
619  If both 'playback-time' and 'on-message' is specified, the action will be executed
620  on whatever happens first.
621
622   Possible types: `string`
623
624   Default: (null)
625
626 ## set-property
627
628
629 ``` validate-scenario
630 set-property,
631     property-name=(string),
632     property-value=(The same type of @property-name),
633     [target-element-factory-name=(string)],
634     [target-element-klass=(string)],
635     [target-element-name=(string)],
636     [playback-time=(double,string)];
637 ```
638
639 Sets a property of an element or klass of elements in the pipeline.
640 Besides property-name and value, either 'target-element-name' or
641 'target-element-klass' needs to be defined
642  * Implementer namespace: core
643
644 ### Parameters
645
646 * `property-name`:(mandatory): The name of the property to set on @target-element-name
647
648   Possible types: `string`
649
650 * `property-value`:(mandatory): The value of @property-name to be set on the element
651
652   Possible types: `The same type of @property-name`
653
654 * `target-element-factory-name`:(optional): The name factory for which to set a property on built elements
655
656   Possible types: `string`
657
658   Default: (null)
659
660 * `target-element-klass`:(optional): The klass of the GstElements to set a property on
661
662   Possible types: `string`
663
664   Default: (null)
665
666 * `target-element-name`:(optional): The name of the GstElement to set a property on
667
668   Possible types: `string`
669
670   Default: (null)
671
672 * `playback-time`:(optional): The playback time at which the action will be executed
673
674   Possible variables:
675
676   * `position`: The current position in the stream
677
678   * `duration`: The duration of the stream
679
680   Possible types: `double,string`
681
682   Default: 0.0
683
684 * `on-message`:(optional): Specify on what message type the action will be executed.
685  If both 'playback-time' and 'on-message' is specified, the action will be executed
686  on whatever happens first.
687
688   Possible types: `string`
689
690   Default: (null)
691      optional                   : Don't raise an error if this action hasn't been executed or failed
692                                   ### Possible types:
693                                     boolean
694                                   Default: false
695
696 ## check-property
697
698
699 ``` validate-scenario
700 check-property,
701     property-name=(string),
702     property-value=(The same type of @property-name),
703     [target-element-factory-name=(string)],
704     [target-element-klass=(string)],
705     [target-element-name=(string)],
706     [playback-time=(double,string)];
707 ```
708
709 Check the value of property of an element or klass of elements in the pipeline.
710 Besides property-name and value, either 'target-element-name' or
711 'target-element-klass' needs to be defined
712  * Implementer namespace: core
713
714 ### Parameters
715
716 * `property-name`:(mandatory): The name of the property to set on @target-element-name
717
718   Possible types: `string`
719
720 * `property-value`:(mandatory): The expected value of @property-name
721
722   Possible types: `The same type of @property-name`
723
724 * `target-element-factory-name`:(optional): The name factory for which to check a property value on built elements
725
726   Possible types: `string`
727
728   Default: (null)
729
730 * `target-element-klass`:(optional): The klass of the GstElements to check a property on
731
732   Possible types: `string`
733
734   Default: (null)
735
736 * `target-element-name`:(optional): The name of the GstElement to check a property value
737
738   Possible types: `string`
739
740   Default: (null)
741
742 * `playback-time`:(optional): The playback time at which the action will be executed
743
744   Possible variables:
745
746   * `position`: The current position in the stream
747
748   * `duration`: The duration of the stream
749
750   Possible types: `double,string`
751
752   Default: 0.0
753
754 * `on-message`:(optional): Specify on what message type the action will be executed.
755  If both 'playback-time' and 'on-message' is specified, the action will be executed
756  on whatever happens first.
757
758   Possible types: `string`
759
760   Default: (null)
761
762 ## set-debug-threshold
763
764
765 ``` validate-scenario
766 set-debug-threshold,
767     debug-threshold=(string),
768     [playback-time=(double,string)];
769 ```
770
771 Sets the debug level to be used, same format as
772 setting the GST_DEBUG env variable
773  * Implementer namespace: core
774
775 ### Parameters
776
777 * `debug-threshold`:(mandatory): String defining debug threshold
778 See gst_debug_set_threshold_from_string
779
780   Possible types: `string`
781
782 * `playback-time`:(optional): The playback time at which the action will be executed
783
784   Possible variables:
785
786   * `position`: The current position in the stream
787
788   * `duration`: The duration of the stream
789
790   Possible types: `double,string`
791
792   Default: 0.0
793
794 * `on-message`:(optional): Specify on what message type the action will be executed.
795  If both 'playback-time' and 'on-message' is specified, the action will be executed
796  on whatever happens first.
797
798   Possible types: `string`
799
800   Default: (null)
801
802 ## emit-signal
803
804
805 ``` validate-scenario
806 emit-signal,
807     signal-name=(string),
808     target-element-name=(string),
809     [playback-time=(double,string)];
810 ```
811
812 Emits a signal to an element in the pipeline
813  * Implementer namespace: core
814
815 ### Parameters
816
817 * `signal-name`:(mandatory): The name of the signal to emit on @target-element-name
818
819   Possible types: `string`
820
821 * `target-element-name`:(mandatory): The name of the GstElement to emit a signal on
822
823   Possible types: `string`
824
825 * `playback-time`:(optional): The playback time at which the action will be executed
826
827   Possible variables:
828
829   * `position`: The current position in the stream
830
831   * `duration`: The duration of the stream
832
833   Possible types: `double,string`
834
835   Default: 0.0
836
837 * `on-message`:(optional): Specify on what message type the action will be executed.
838  If both 'playback-time' and 'on-message' is specified, the action will be executed
839  on whatever happens first.
840
841   Possible types: `string`
842
843   Default: (null)
844
845 ## appsrc-push
846
847
848 ``` validate-scenario
849 appsrc-push,
850     file-name=(string),
851     target-element-name=(string),
852     [caps=(caps)],
853     [offset=(uint64)],
854     [size=(uint64)],
855     [playback-time=(double,string)];
856 ```
857
858 Queues a buffer in an appsrc. If the pipeline state allows flow of buffers, the next action is not run until the buffer has been pushed.
859  * Implementer namespace: core
860
861 ### Parameters
862
863 * `file-name`:(mandatory): Relative path to a file whose contents will be pushed as a buffer
864
865   Possible types: `string`
866
867 * `target-element-name`:(mandatory): The name of the appsrc to push data on
868
869   Possible types: `string`
870
871 * `caps`:(optional): Caps for the buffer to be pushed
872
873   Possible types: `caps`
874
875   Default: (null)
876
877 * `offset`:(optional): Offset within the file where the buffer will start
878
879   Possible types: `uint64`
880
881   Default: (null)
882
883 * `size`:(optional): Number of bytes from the file that will be pushed as a buffer
884
885   Possible types: `uint64`
886
887   Default: (null)
888
889 * `playback-time`:(optional): The playback time at which the action will be executed
890
891   Possible variables:
892
893   * `position`: The current position in the stream
894
895   * `duration`: The duration of the stream
896
897   Possible types: `double,string`
898
899   Default: 0.0
900
901 * `on-message`:(optional): Specify on what message type the action will be executed.
902  If both 'playback-time' and 'on-message' is specified, the action will be executed
903  on whatever happens first.
904
905   Possible types: `string`
906
907   Default: (null)
908
909 ## appsrc-eos
910
911
912 ``` validate-scenario
913 appsrc-eos,
914     target-element-name=(string),
915     [playback-time=(double,string)];
916 ```
917
918 Queues a EOS event in an appsrc.
919  * Implementer namespace: core
920
921 ### Parameters
922
923 * `target-element-name`:(mandatory): The name of the appsrc to emit EOS on
924
925   Possible types: `string`
926
927 * `playback-time`:(optional): The playback time at which the action will be executed
928
929   Possible variables:
930
931   * `position`: The current position in the stream
932
933   * `duration`: The duration of the stream
934
935   Possible types: `double,string`
936
937   Default: 0.0
938
939 * `on-message`:(optional): Specify on what message type the action will be executed.
940  If both 'playback-time' and 'on-message' is specified, the action will be executed
941  on whatever happens first.
942
943   Possible types: `string`
944
945   Default: (null)
946
947 ## flush
948
949
950 ``` validate-scenario
951 flush,
952     target-element-name=(string),
953     [reset-time=(boolean)],
954     [playback-time=(double,string)];
955 ```
956
957 Sends FLUSH_START and FLUSH_STOP events.
958  * Implementer namespace: core
959
960 ### Parameters
961
962 * `target-element-name`:(mandatory): The name of the appsrc to flush on
963
964   Possible types: `string`
965
966 * `reset-time`:(optional): Whether the flush should reset running time
967
968   Possible types: `boolean`
969
970   Default: TRUE
971
972 * `playback-time`:(optional): The playback time at which the action will be executed
973
974   Possible variables:
975
976   * `position`: The current position in the stream
977
978   * `duration`: The duration of the stream
979
980   Possible types: `double,string`
981
982   Default: 0.0
983
984 * `on-message`:(optional): Specify on what message type the action will be executed.
985  If both 'playback-time' and 'on-message' is specified, the action will be executed
986  on whatever happens first.
987
988   Possible types: `string`
989
990   Default: (null)
991
992 ## disable-plugin
993
994
995 ``` validate-scenario
996 disable-plugin,
997     plugin-name=(string),
998     [as-config=(boolean)],
999     [playback-time=(double,string)];
1000 ```
1001
1002 Disables a GstPlugin
1003  * Implementer namespace: core
1004
1005 ### Parameters
1006
1007 * `plugin-name`:(mandatory): The name of the GstPlugin to disable
1008
1009   Possible types: `string`
1010
1011 * `as-config`:(optional): Execute action as a config action (meaning when loading the scenario)
1012
1013   Possible types: `boolean`
1014
1015   Default: false
1016
1017 * `playback-time`:(optional): The playback time at which the action will be executed
1018
1019   Possible variables:
1020
1021   * `position`: The current position in the stream
1022
1023   * `duration`: The duration of the stream
1024
1025   Possible types: `double,string`
1026
1027   Default: 0.0
1028
1029 * `on-message`:(optional): Specify on what message type the action will be executed.
1030  If both 'playback-time' and 'on-message' is specified, the action will be executed
1031  on whatever happens first.
1032
1033   Possible types: `string`
1034
1035   Default: (null)
1036
1037 ## check-last-sample
1038
1039
1040 ``` validate-scenario
1041 check-last-sample,
1042     [checksum=(string)],
1043     [sink-factory-name=(string)],
1044     [sink-name=(string)],
1045     [sinkpad-caps=(string)],
1046     [timecode-frame-number=(string)],
1047     [playback-time=(double,string)];
1048 ```
1049
1050 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
1051  * Implementer namespace: core
1052
1053 ### Parameters
1054
1055 * `checksum`:(optional): The reference checksum of the buffer.
1056
1057   Possible types: `string`
1058
1059   Default: (null)
1060
1061 * `sink-factory-name`:(optional): The name of the factory of the sink element to check sample on.
1062
1063   Possible types: `string`
1064
1065   Default: (null)
1066
1067 * `sink-name`:(optional): The name of the sink element to check sample on.
1068
1069   Possible types: `string`
1070
1071   Default: (null)
1072
1073 * `sinkpad-caps`:(optional): The caps (as string) of the sink to check.
1074
1075   Possible types: `string`
1076
1077   Default: (null)
1078
1079 * `timecode-frame-number`:(optional): The frame number of the buffer as specified on its GstVideoTimeCodeMeta
1080
1081   Possible types: `string`
1082
1083   Default: (null)
1084
1085 * `playback-time`:(optional): The playback time at which the action will be executed
1086
1087   Possible variables:
1088
1089   * `position`: The current position in the stream
1090
1091   * `duration`: The duration of the stream
1092
1093   Possible types: `double,string`
1094
1095   Default: 0.0
1096
1097 * `on-message`:(optional): Specify on what message type the action will be executed.
1098  If both 'playback-time' and 'on-message' is specified, the action will be executed
1099  on whatever happens first.
1100
1101   Possible types: `string`
1102
1103   Default: (null)
1104
1105 ## crank-clock
1106
1107
1108 ``` validate-scenario
1109 crank-clock,
1110     [checksum=(string)],
1111     [expected-elapsed-time=(GstClockTime)],
1112     [expected-time=(GstClockTime)],
1113     [sinkpad-caps=(string)],
1114     [timecode-frame-number=(string)],
1115     [playback-time=(double,string)];
1116 ```
1117
1118 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).
1119  * Implementer namespace: core
1120
1121 ### Parameters
1122
1123 * `checksum`:(optional): The reference checksum of the buffer.
1124
1125   Possible types: `string`
1126
1127   Default: (null)
1128
1129 * `expected-elapsed-time`:(optional): Check time elapsed during the clock cranking
1130
1131   Possible types: `GstClockTime`
1132
1133   Default: (null)
1134
1135 * `expected-time`:(optional): Expected clock time after cranking
1136
1137   Possible types: `GstClockTime`
1138
1139   Default: (null)
1140
1141 * `sinkpad-caps`:(optional): The caps (as string) of the sink to check.
1142
1143   Possible types: `string`
1144
1145   Default: (null)
1146
1147 * `timecode-frame-number`:(optional): The frame number of the buffer as specified on its GstVideoTimeCodeMeta
1148
1149   Possible types: `string`
1150
1151   Default: (null)
1152
1153 * `playback-time`:(optional): The playback time at which the action will be executed
1154
1155   Possible variables:
1156
1157   * `position`: The current position in the stream
1158
1159   * `duration`: The duration of the stream
1160
1161   Possible types: `double,string`
1162
1163   Default: 0.0
1164
1165 * `on-message`:(optional): Specify on what message type the action will be executed.
1166  If both 'playback-time' and 'on-message' is specified, the action will be executed
1167  on whatever happens first.
1168
1169   Possible types: `string`
1170
1171   Default: (null)
1172
1173 ## video-request-key-unit
1174
1175
1176 ``` validate-scenario
1177 video-request-key-unit,
1178     direction=(string),
1179     [all-headers=(boolean)],
1180     [count=(int)],
1181     [pad=(string)],
1182     [running-time=(double or string)],
1183     [srcpad=(string)],
1184     [target-element-factory-name=(string)],
1185     [target-element-klass=(string)],
1186     [target-element-name=(string)],
1187     [playback-time=(double,string)];
1188 ```
1189
1190 Request a video key unit
1191  * Implementer namespace: core
1192
1193 ### Parameters
1194
1195 * `direction`:(mandatory): The direction for the event to travel, should be in
1196   * [upstream, downstream]
1197
1198   Possible types: `string`
1199
1200 * `all-headers`:(optional): TRUE to produce headers when starting a new key unit
1201
1202   Possible types: `boolean`
1203
1204   Default: FALSE
1205
1206 * `count`:(optional): integer that can be used to number key units
1207
1208   Possible types: `int`
1209
1210   Default: 0
1211
1212 * `pad`:(optional): The name of the GstPad to send a send force-key-unit to
1213
1214   Possible types: `string`
1215
1216   Default: sink
1217
1218 * `running-time`:(optional): The running_time can be set to request a new key unit at a specific running_time.
1219 If not set, GST_CLOCK_TIME_NONE will be used so upstream elements will produce a new key unit as soon as possible.
1220
1221   Possible variables:
1222
1223   * position: The current position in the stream
1224
1225   * duration: The duration of the stream
1226
1227   Possible types: `double or string`
1228
1229   Default: (null)
1230
1231 * `srcpad`:(optional): The name of the GstPad to send a send force-key-unit to
1232
1233   Possible types: `string`
1234
1235   Default: src
1236
1237 * `target-element-factory-name`:(optional): The factory name of the GstElements to send a send force-key-unit to
1238
1239   Possible types: `string`
1240
1241   Default: (null)
1242
1243 * `target-element-klass`:(optional): The klass of the GstElements to send a send force-key-unit to
1244
1245   Possible types: `string`
1246
1247   Default: Video/Encoder
1248
1249 * `target-element-name`:(optional): The name of the GstElement to send a send force-key-unit to
1250
1251   Possible types: `string`
1252
1253   Default: (null)
1254
1255 * `playback-time`:(optional): The playback time at which the action will be executed
1256
1257   Possible variables:
1258
1259   * `position`: The current position in the stream
1260
1261   * `duration`: The duration of the stream
1262
1263   Possible types: `double,string`
1264
1265   Default: 0.0
1266
1267 * `on-message`:(optional): Specify on what message type the action will be executed.
1268  If both 'playback-time' and 'on-message' is specified, the action will be executed
1269  on whatever happens first.
1270
1271   Possible types: `string`
1272
1273   Default: (null)
1274
1275 ## check-position
1276
1277
1278 ``` validate-scenario
1279 check-position,
1280     expected-position=(GstClockTime),
1281     [all-headers=(boolean)],
1282     [count=(int)],
1283     [pad=(string)],
1284     [running-time=(double or string)],
1285     [srcpad=(string)],
1286     [target-element-factory-name=(string)],
1287     [target-element-klass=(string)],
1288     [target-element-name=(string)],
1289     [playback-time=(double,string)];
1290 ```
1291
1292 Check current pipeline position.
1293
1294  * Implementer namespace: core
1295
1296 ### Parameters
1297
1298 * `expected-position`:(mandatory): The expected pipeline position
1299
1300   Possible types: `GstClockTime`
1301
1302 * `all-headers`:(optional): TRUE to produce headers when starting a new key unit
1303
1304   Possible types: `boolean`
1305
1306   Default: FALSE
1307
1308 * `count`:(optional): integer that can be used to number key units
1309
1310   Possible types: `int`
1311
1312   Default: 0
1313
1314 * `pad`:(optional): The name of the GstPad to send a send force-key-unit to
1315
1316   Possible types: `string`
1317
1318   Default: sink
1319
1320 * `running-time`:(optional): The running_time can be set to request a new key unit at a specific running_time.
1321 If not set, GST_CLOCK_TIME_NONE will be used so upstream elements will produce a new key unit as soon as possible.
1322
1323   Possible variables:
1324
1325   * position: The current position in the stream
1326
1327   * duration: The duration of the stream
1328
1329   Possible types: `double or string`
1330
1331   Default: (null)
1332
1333 * `srcpad`:(optional): The name of the GstPad to send a send force-key-unit to
1334
1335   Possible types: `string`
1336
1337   Default: src
1338
1339 * `target-element-factory-name`:(optional): The factory name of the GstElements to send a send force-key-unit to
1340
1341   Possible types: `string`
1342
1343   Default: (null)
1344
1345 * `target-element-klass`:(optional): The klass of the GstElements to send a send force-key-unit to
1346
1347   Possible types: `string`
1348
1349   Default: Video/Encoder
1350
1351 * `target-element-name`:(optional): The name of the GstElement to send a send force-key-unit to
1352
1353   Possible types: `string`
1354
1355   Default: (null)
1356
1357 * `playback-time`:(optional): The playback time at which the action will be executed
1358
1359   Possible variables:
1360
1361   * `position`: The current position in the stream
1362
1363   * `duration`: The duration of the stream
1364
1365   Possible types: `double,string`
1366
1367   Default: 0.0
1368
1369 * `on-message`:(optional): Specify on what message type the action will be executed.
1370  If both 'playback-time' and 'on-message' is specified, the action will be executed
1371  on whatever happens first.
1372
1373   Possible types: `string`
1374
1375   Default: (null)
1376
1377 ## corrupt-socket-recv
1378
1379
1380 ``` validate-scenario
1381 corrupt-socket-recv,
1382     errno=(string),
1383     port=(int),
1384     [times=(int)],
1385     [playback-time=(double,string)];
1386 ```
1387
1388 corrupt the next socket receive
1389  * Implementer namespace: validatefaultinjection
1390
1391 ### Parameters
1392
1393 * `errno`:(mandatory): errno to set when failing
1394
1395   Possible types: `string`
1396
1397 * `port`:(mandatory): The port the socket to be corrupted listens on
1398
1399   Possible types: `int`
1400
1401 * `times`:(optional): Number of times to corrupt recv, default is one
1402
1403   Possible types: `int`
1404
1405   Default: 1
1406
1407 * `playback-time`:(optional): The playback time at which the action will be executed
1408
1409   Possible variables:
1410
1411   * `position`: The current position in the stream
1412
1413   * `duration`: The duration of the stream
1414
1415   Possible types: `double,string`
1416
1417   Default: 0.0
1418
1419 * `on-message`:(optional): Specify on what message type the action will be executed.
1420  If both 'playback-time' and 'on-message' is specified, the action will be executed
1421  on whatever happens first.
1422
1423   Possible types: `string`
1424
1425   Default: (null)
1426
1427 ## gtk-put-event
1428
1429
1430 ``` validate-scenario
1431 gtk-put-event,
1432     [keys=(string)],
1433     [string=(string)],
1434     [type=(string)],
1435     [widget-name=(string)],
1436     [playback-time=(double,string)];
1437 ```
1438
1439 Put a GdkEvent on the event list using gdk_put_event
1440  * Implementer namespace: validategtk
1441
1442 ### Parameters
1443
1444 * `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
1445
1446   Possible types: `string`
1447
1448   Default: (null)
1449
1450 * `string`:(optional): The string to be 'written' by the keyboard sending KEY_PRESS GdkEvents
1451
1452   Possible types: `string`
1453
1454   Default: (null)
1455
1456 * `type`:(optional): 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).
1457
1458   Possible types: `string`
1459
1460   Default: (null)
1461
1462 * `widget-name`:(optional): 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
1463
1464   Possible types: `string`
1465
1466   Default: (null)
1467
1468 * `playback-time`:(optional): The playback time at which the action will be executed
1469
1470   Possible variables:
1471
1472   * `position`: The current position in the stream
1473
1474   * `duration`: The duration of the stream
1475
1476   Possible types: `double,string`
1477
1478   Default: 0.0
1479
1480 * `on-message`:(optional): Specify on what message type the action will be executed.
1481  If both 'playback-time' and 'on-message' is specified, the action will be executed
1482  on whatever happens first.
1483
1484   Possible types: `string`
1485
1486   Default: (null)
1487
1488 ## set-subtitle
1489
1490
1491 ``` validate-scenario
1492 set-subtitle,
1493     subtitle-file=(string (A URI)),
1494     [playback-time=(double,string)];
1495 ```
1496
1497 Action to set a subtitle file to use on a playbin pipeline.
1498 The subtitles file that will be used should be specified
1499 relative to the playbin URI in use thanks to the subtitle-file
1500 action property. You can also specify a folder with subtitle-dir
1501 For example if playbin.uri='file://some/uri.mov'
1502 and action looks like 'set-subtitle, subtitle-file=en.srt'
1503 the subtitle URI will be set to 'file:///some/uri.mov.en.srt'
1504
1505  * Implementer namespace: validate-launcher
1506
1507 ### Parameters
1508
1509 * `subtitle-file`:(mandatory): Sets a subtitles file on a playbin pipeline
1510
1511   Possible types: `string (A URI)`
1512
1513 * `playback-time`:(optional): The playback time at which the action will be executed
1514
1515   Possible variables:
1516
1517   * `position`: The current position in the stream
1518
1519   * `duration`: The duration of the stream
1520
1521   Possible types: `double,string`
1522
1523   Default: 0.0
1524
1525 * `on-message`:(optional): Specify on what message type the action will be executed.
1526  If both 'playback-time' and 'on-message' is specified, the action will be executed
1527  on whatever happens first.
1528
1529   Possible types: `string`
1530
1531   Default: (null)