Merging gst-devtools
[platform/upstream/gstreamer.git] / docs / ges-validate-action-types.md
1 # GES action types
2
3 ## edit-container
4
5 ``` validate-scenario
6 edit-container,
7     [playback-time=(double,string)],
8     container-name=(string),
9     position=(double or string),
10     [edit-mode=(string)],
11     [edge=(string)],
12     [new-layer-priority=(int)];
13 ```
14
15 Allows to edit a container (like a GESClip), for more details, have a look at:
16 ges_container_edit documentation, Note that the timeline will
17 be commited, and flushed so that the edition is taken into account
18  * Implementer namespace: ges
19
20 ### Parameters
21
22   Parameters:
23
24 * `playback-time`:(optional): The playback time at which the action will be executed
25
26   Possible variables:
27
28   * `position`: The current position in the stream
29
30   * `duration`: The duration of the stream
31
32   Possible types: `double,string`
33
34   Default: 0.0
35
36 * `on-message`:(optional): Specify on what message type the action will be executed.
37  If both 'playback-time' and 'on-message' is specified, the action will be executed
38  on whatever happens first.
39
40   Possible types: `string`
41
42   Default: (null)
43
44 * `container-name`:(mandatory): The name of the GESContainer to edit
45
46   Possible types: `string`
47
48 * `position`:(mandatory): The new position of the GESContainer
49
50   Possible variables:
51
52   * position: The current position in the stream
53
54   * duration: The duration of the stream
55
56   Possible types: `double or string`
57
58 * `edit-mode`:(optional): The GESEditMode to use to edit @container-name
59
60   Possible types: `string`
61
62   Default: normal
63
64 * `edge`:(optional): The GESEdge to use to edit @container-name
65 should be in [ edge_start, edge_end, edge_none ]
66
67   Possible types: `string`
68
69   Default: edge_none
70
71 * `new-layer-priority`:(optional): The priority of the layer @container should land in.
72 If the layer you're trying to move the container to doesn't exist, it will
73 be created automatically. -1 means no move.
74
75   Possible types: `int`
76
77   Default: -1
78
79 ## add-asset
80
81
82 ``` validate-scenario
83 add-asset,
84     [playback-time=(double,string)],
85     id,
86     type;
87 ```
88
89 Allows to add an asset to the current project
90  * Implementer namespace: ges
91
92 ### Parameters
93
94   Parameters:
95
96 * `playback-time`:(optional): The playback time at which the action will be executed
97
98   Possible variables:
99
100   * `position`: The current position in the stream
101
102   * `duration`: The duration of the stream
103
104   Possible types: `double,string`
105
106   Default: 0.0
107
108 * `on-message`:(optional): Specify on what message type the action will be executed.
109  If both 'playback-time' and 'on-message' is specified, the action will be executed
110  on whatever happens first.
111
112   Possible types: `string`
113
114   Default: (null)
115
116 * `id`:(mandatory): Adds an asset to a project.
117
118 * `type`:(mandatory): The type of asset to add
119
120 ## remove-asset
121
122
123 ``` validate-scenario
124 remove-asset,
125     [playback-time=(double,string)],
126     id,
127     type;
128 ```
129
130 Allows to remove an asset from the current project
131  * Implementer namespace: ges
132
133 ### Parameters
134
135   Parameters:
136
137 * `playback-time`:(optional): The playback time at which the action will be executed
138
139   Possible variables:
140
141   * `position`: The current position in the stream
142
143   * `duration`: The duration of the stream
144
145   Possible types: `double,string`
146
147   Default: 0.0
148
149 * `on-message`:(optional): Specify on what message type the action will be executed.
150  If both 'playback-time' and 'on-message' is specified, the action will be executed
151  on whatever happens first.
152
153   Possible types: `string`
154
155   Default: (null)
156
157 * `id`:(mandatory): The ID of the clip to remove
158
159 * `type`:(mandatory): The type of asset to remove
160
161 ## add-layer
162
163
164 ``` validate-scenario
165 add-layer,
166     [playback-time=(double,string)],
167     [priority];
168 ```
169
170 Allows to add a layer to the current timeline
171  * Implementer namespace: ges
172
173 ### Parameters
174
175   Parameters:
176
177 * `playback-time`:(optional): The playback time at which the action will be executed
178
179   Possible variables:
180
181   * `position`: The current position in the stream
182
183   * `duration`: The duration of the stream
184
185   Possible types: `double,string`
186
187   Default: 0.0
188
189 * `on-message`:(optional): Specify on what message type the action will be executed.
190  If both 'playback-time' and 'on-message' is specified, the action will be executed
191  on whatever happens first.
192
193   Possible types: `string`
194
195   Default: (null)
196
197 * `priority`:(optional): The priority of the new layer to add,if not specified, the new layer will be appended to the timeline
198
199   Default: (null)
200
201 ## remove-layer
202
203
204 ``` validate-scenario
205 remove-layer,
206     [playback-time=(double,string)],
207     priority,
208     [auto-transition=(boolean)];
209 ```
210
211 Allows to remove a layer from the current timeline
212  * Implementer namespace: ges
213
214 ### Parameters
215
216   Parameters:
217
218 * `playback-time`:(optional): The playback time at which the action will be executed
219
220   Possible variables:
221
222   * `position`: The current position in the stream
223
224   * `duration`: The duration of the stream
225
226   Possible types: `double,string`
227
228   Default: 0.0
229
230 * `on-message`:(optional): Specify on what message type the action will be executed.
231  If both 'playback-time' and 'on-message' is specified, the action will be executed
232  on whatever happens first.
233
234   Possible types: `string`
235
236   Default: (null)
237
238 * `priority`:(mandatory): The priority of the layer to remove
239
240 * `auto-transition`:(optional): Wheter auto-transition is activated on the new layer.
241
242   Possible types: `boolean`
243
244   Default: False
245
246 ## add-clip
247
248
249 ``` validate-scenario
250 add-clip,
251     [playback-time=(double,string)],
252     name=(string),
253     layer-priority=(int),
254     asset-id=(string),
255     type=(string),
256     [start=(double or string)],
257     [inpoint=(double or string)],
258     [duration=(double or string)];
259 ```
260
261 Allows to add a clip to a given layer
262  * Implementer namespace: ges
263
264 ### Parameters
265
266   Parameters:
267
268 * `playback-time`:(optional): The playback time at which the action will be executed
269
270   Possible variables:
271
272   * `position`: The current position in the stream
273
274   * `duration`: The duration of the stream
275
276   Possible types: `double,string`
277
278   Default: 0.0
279
280 * `on-message`:(optional): Specify on what message type the action will be executed.
281  If both 'playback-time' and 'on-message' is specified, the action will be executed
282  on whatever happens first.
283
284   Possible types: `string`
285
286   Default: (null)
287
288 * `name`:(mandatory): The name of the clip to add
289
290   Possible types: `string`
291
292 * `layer-priority`:(mandatory): The priority of the clip to add
293
294   Possible types: `int`
295
296 * `asset-id`:(mandatory): The id of the asset from which to extract the clip
297
298   Possible types: `string`
299
300 * `type`:(mandatory): The type of the clip to create
301
302   Possible types: `string`
303
304 * `start`:(optional): The start value to set on the new GESClip.
305
306   Possible types: `double or string`
307
308   Default: (null)
309
310 * `inpoint`:(optional): The  inpoint value to set on the new GESClip
311
312   Possible types: `double or string`
313
314   Default: (null)
315
316 * `duration`:(optional): The  duration value to set on the new GESClip
317
318   Possible types: `double or string`
319
320   Default: (null)
321
322 ## remove-clip
323
324
325 ``` validate-scenario
326 remove-clip,
327     [playback-time=(double,string)],
328     name=(string);
329 ```
330
331 Allows to remove a clip from a given layer
332  * Implementer namespace: ges
333
334 ### Parameters
335
336   Parameters:
337
338 * `playback-time`:(optional): The playback time at which the action will be executed
339
340   Possible variables:
341
342   * `position`: The current position in the stream
343
344   * `duration`: The duration of the stream
345
346   Possible types: `double,string`
347
348   Default: 0.0
349
350 * `on-message`:(optional): Specify on what message type the action will be executed.
351  If both 'playback-time' and 'on-message' is specified, the action will be executed
352  on whatever happens first.
353
354   Possible types: `string`
355
356   Default: (null)
357
358 * `name`:(mandatory): The name of the clip to remove
359
360   Possible types: `string`
361
362 ## serialize-project
363
364
365 ``` validate-scenario
366 serialize-project,
367     [playback-time=(double,string)],
368     uri=(string);
369 ```
370
371 serializes a project
372  * Implementer namespace: ges
373
374 ### Parameters
375
376   Parameters:
377
378 * `playback-time`:(optional): The playback time at which the action will be executed
379
380   Possible variables:
381
382   * `position`: The current position in the stream
383
384   * `duration`: The duration of the stream
385
386   Possible types: `double,string`
387
388   Default: 0.0
389
390 * `on-message`:(optional): Specify on what message type the action will be executed.
391  If both 'playback-time' and 'on-message' is specified, the action will be executed
392  on whatever happens first.
393
394   Possible types: `string`
395
396   Default: (null)
397
398 * `uri`:(mandatory): The uri where to store the serialized project
399
400   Possible types: `string`
401
402 ## set-child-property
403
404
405 ``` validate-scenario
406 set-child-property,
407     [playback-time=(double,string)],
408     element-name=(string),
409     property=(string),
410     value=(gvalue);
411 ```
412
413 Allows to change child property of an object
414  * Implementer namespace: ges
415
416 ### Parameters
417
418   Parameters:
419
420 * `playback-time`:(optional): The playback time at which the action will be executed
421
422   Possible variables:
423
424   * `position`: The current position in the stream
425
426   * `duration`: The duration of the stream
427
428   Possible types: `double,string`
429
430   Default: 0.0
431
432 * `on-message`:(optional): Specify on what message type the action will be executed.
433  If both 'playback-time' and 'on-message' is specified, the action will be executed
434  on whatever happens first.
435
436   Possible types: `string`
437
438   Default: (null)
439
440 * `element-name`:(mandatory): The name of the element on which to modify the property
441
442   Possible types: `string`
443
444 * `property`:(mandatory): The name of the property to modify
445
446   Possible types: `string`
447
448 * `value`:(mandatory): The value of the property
449
450   Possible types: `gvalue`
451
452 ## split-clip
453
454
455 ``` validate-scenario
456 split-clip,
457     [playback-time=(double,string)],
458     clip-name=(string),
459     position=(double or string);
460 ```
461
462 Split a clip at a specified position.
463  * Implementer namespace: ges
464
465 ### Parameters
466
467   Parameters:
468
469 * `playback-time`:(optional): The playback time at which the action will be executed
470
471   Possible variables:
472
473   * `position`: The current position in the stream
474
475   * `duration`: The duration of the stream
476
477   Possible types: `double,string`
478
479   Default: 0.0
480
481 * `on-message`:(optional): Specify on what message type the action will be executed.
482  If both 'playback-time' and 'on-message' is specified, the action will be executed
483  on whatever happens first.
484
485   Possible types: `string`
486
487   Default: (null)
488
489 * `clip-name`:(mandatory): The name of the clip to split
490
491   Possible types: `string`
492
493 * `position`:(mandatory): The position at which to split the clip
494
495   Possible types: `double or string`
496
497 ## set-track-restriction-caps
498
499
500 ``` validate-scenario
501 set-track-restriction-caps,
502     [playback-time=(double,string)],
503     track-type=(string),
504     caps=(string);
505 ```
506
507 Sets restriction caps on tracks of a specific type.
508  * Implementer namespace: ges
509
510 ### Parameters
511
512   Parameters:
513
514 * `playback-time`:(optional): The playback time at which the action will be executed
515
516   Possible variables:
517
518   * `position`: The current position in the stream
519
520   * `duration`: The duration of the stream
521
522   Possible types: `double,string`
523
524   Default: 0.0
525
526 * `on-message`:(optional): Specify on what message type the action will be executed.
527  If both 'playback-time' and 'on-message' is specified, the action will be executed
528  on whatever happens first.
529
530   Possible types: `string`
531
532   Default: (null)
533
534 * `track-type`:(mandatory): The type of track to set restriction caps on
535
536   Possible types: `string`
537
538 * `caps`:(mandatory): The caps to set on the track
539
540   Possible types: `string`
541
542 ## element-set-asset
543
544
545 ``` validate-scenario
546 element-set-asset,
547     [playback-time=(double,string)],
548     element-name=(string),
549     asset-id=(string);
550 ```
551
552 Sets restriction caps on tracks of a specific type.
553  * Implementer namespace: ges
554
555 ### Parameters
556
557   Parameters:
558
559 * `playback-time`:(optional): The playback time at which the action will be executed
560
561   Possible variables:
562
563   * `position`: The current position in the stream
564
565   * `duration`: The duration of the stream
566
567   Possible types: `double,string`
568
569   Default: 0.0
570
571 * `on-message`:(optional): Specify on what message type the action will be executed.
572  If both 'playback-time' and 'on-message' is specified, the action will be executed
573  on whatever happens first.
574
575   Possible types: `string`
576
577   Default: (null)
578
579 * `element-name`:(mandatory): The name of the TimelineElement to set an asset on
580
581   Possible types: `string`
582
583 * `asset-id`:(mandatory): The id of the asset from which to extract the clip
584
585   Possible types: `string`
586
587 ## container-add-child
588
589
590 ``` validate-scenario
591 container-add-child,
592     [playback-time=(double,string)],
593     container-name=(string),
594     [child-name=(string)],
595     asset-id=(string),
596     [child-type=(string)];
597 ```
598
599 Add a child to @container-name. If asset-id and child-type are specified, the child will be created and added. Otherwize @child-name has to be specified and will be added to the container.
600  * Implementer namespace: ges
601
602 ### Parameters
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 * `container-name`:(mandatory): The name of the GESContainer to add a child to
627
628   Possible types: `string`
629
630 * `child-name`:(optional): The name of the child to add to @container-name
631
632   Possible types: `string`
633
634   Default: NULL
635
636 * `asset-id`:(mandatory): The id of the asset from which to extract the child
637
638   Possible types: `string`
639
640 * `child-type`:(optional): The type of the child to create
641
642   Possible types: `string`
643
644   Default: NULL
645
646 ## container-remove-child
647
648
649 ``` validate-scenario
650 container-remove-child,
651     [playback-time=(double,string)],
652     container-name=(string),
653     child-name=(string);
654 ```
655
656 Remove a child from @container-name.
657  * Implementer namespace: ges
658
659 ### Parameters
660
661   Parameters:
662
663 * `playback-time`:(optional): The playback time at which the action will be executed
664
665   Possible variables:
666
667   * `position`: The current position in the stream
668
669   * `duration`: The duration of the stream
670
671   Possible types: `double,string`
672
673   Default: 0.0
674
675 * `on-message`:(optional): Specify on what message type the action will be executed.
676  If both 'playback-time' and 'on-message' is specified, the action will be executed
677  on whatever happens first.
678
679   Possible types: `string`
680
681   Default: (null)
682
683 * `container-name`:(mandatory): The name of the GESContainer to remove a child from
684
685   Possible types: `string`
686
687 * `child-name`:(mandatory): The name of the child to reomve from @container-name
688
689   Possible types: `string`
690
691 ## ungroup-container
692
693
694 ``` validate-scenario
695 ungroup-container,
696     [playback-time=(double,string)],
697     container-name=(string),
698     [recursive=(boolean)];
699 ```
700
701 Ungroup children of @container-name.
702  * Implementer namespace: ges
703
704 ### Parameters
705
706   Parameters:
707
708 * `playback-time`:(optional): The playback time at which the action will be executed
709
710   Possible variables:
711
712   * `position`: The current position in the stream
713
714   * `duration`: The duration of the stream
715
716   Possible types: `double,string`
717
718   Default: 0.0
719
720 * `on-message`:(optional): Specify on what message type the action will be executed.
721  If both 'playback-time' and 'on-message' is specified, the action will be executed
722  on whatever happens first.
723
724   Possible types: `string`
725
726   Default: (null)
727
728 * `container-name`:(mandatory): The name of the GESContainer to ungroup children from
729
730   Possible types: `string`
731
732 * `recursive`:(optional): Wether to recurse ungrouping or not.
733
734   Possible types: `boolean`
735
736   Default: (null)
737
738 ## set-control-source
739
740
741 ``` validate-scenario
742 set-control-source,
743     [playback-time=(double,string)],
744     element-name=(string),
745     property-name=(string),
746     [binding-type=(string)],
747     [source-type=(string)],
748     [interpolation-mode=(string)];
749 ```
750
751 Adds a GstControlSource on @element-name::@property-name allowing you to then add keyframes on that property.
752  * Implementer namespace: ges
753
754 ### Parameters
755
756   Parameters:
757
758 * `playback-time`:(optional): The playback time at which the action will be executed
759
760   Possible variables:
761
762   * `position`: The current position in the stream
763
764   * `duration`: The duration of the stream
765
766   Possible types: `double,string`
767
768   Default: 0.0
769
770 * `on-message`:(optional): Specify on what message type the action will be executed.
771  If both 'playback-time' and 'on-message' is specified, the action will be executed
772  on whatever happens first.
773
774   Possible types: `string`
775
776   Default: (null)
777
778 * `element-name`:(mandatory): The name of the GESTrackElement to set the control source on
779
780   Possible types: `string`
781
782 * `property-name`:(mandatory): The name of the property for which to set a control source
783
784   Possible types: `string`
785
786 * `binding-type`:(optional): The name of the type of binding to use
787
788   Possible types: `string`
789
790   Default: direct
791
792 * `source-type`:(optional): The name of the type of ControlSource to use
793
794   Possible types: `string`
795
796   Default: interpolation
797
798 * `interpolation-mode`:(optional): The name of the GstInterpolationMode to on the source
799
800   Possible types: `string`
801
802   Default: linear
803
804 ## add-keyframe
805
806
807 ``` validate-scenario
808 add-keyframe,
809     [playback-time=(double,string)],
810     element-name=(string),
811     property-name=(string),
812     timestamp=(string or float),
813     value=(float);
814 ```
815
816 Remove a child from @container-name.
817  * Implementer namespace: ges
818
819 ### Parameters
820
821   Parameters:
822
823 * `playback-time`:(optional): The playback time at which the action will be executed
824
825   Possible variables:
826
827   * `position`: The current position in the stream
828
829   * `duration`: The duration of the stream
830
831   Possible types: `double,string`
832
833   Default: 0.0
834
835 * `on-message`:(optional): Specify on what message type the action will be executed.
836  If both 'playback-time' and 'on-message' is specified, the action will be executed
837  on whatever happens first.
838
839   Possible types: `string`
840
841   Default: (null)
842
843 * `element-name`:(mandatory): The name of the GESTrackElement to add a keyframe on
844
845   Possible types: `string`
846
847 * `property-name`:(mandatory): The name of the property for which to add a keyframe on
848
849   Possible types: `string`
850
851 * `timestamp`:(mandatory): The timestamp of the keyframe
852
853   Possible types: `string or float`
854
855 * `value`:(mandatory): The value of the keyframe
856
857   Possible types: `float`
858
859 ## copy-element
860
861
862 ``` validate-scenario
863 copy-element,
864     [playback-time=(double,string)],
865     element-name=(string),
866     [recurse=(boolean)],
867     position=(string or float),
868     [paste-name=(string)];
869 ```
870
871 Remove a child from @container-name.
872  * Implementer namespace: ges
873
874 ### Parameters
875
876   Parameters:
877
878 * `playback-time`:(optional): The playback time at which the action will be executed
879
880   Possible variables:
881
882   * `position`: The current position in the stream
883
884   * `duration`: The duration of the stream
885
886   Possible types: `double,string`
887
888   Default: 0.0
889
890 * `on-message`:(optional): Specify on what message type the action will be executed.
891  If both 'playback-time' and 'on-message' is specified, the action will be executed
892  on whatever happens first.
893
894   Possible types: `string`
895
896   Default: (null)
897
898 * `element-name`:(mandatory): The name of the GESTtimelineElement to copy
899
900   Possible types: `string`
901
902 * `recurse`:(optional): Copy recursively or not
903
904   Possible types: `boolean`
905
906   Default: true
907
908 * `position`:(mandatory): The time where to paste the element
909
910   Possible types: `string or float`
911
912 * `paste-name`:(optional): The name of the copied element
913
914   Possible types: `string`
915
916   Default: (null)
917
918 ## remove-keyframe
919
920
921 ``` validate-scenario
922 remove-keyframe,
923     [playback-time=(double,string)],
924     element-name=(string),
925     property-name=(string),
926     timestamp=(string or float);
927 ```
928
929 Remove a child from @container-name.
930  * Implementer namespace: ges
931
932 ### Parameters
933
934   Parameters:
935
936 * `playback-time`:(optional): The playback time at which the action will be executed
937
938   Possible variables:
939
940   * `position`: The current position in the stream
941
942   * `duration`: The duration of the stream
943
944   Possible types: `double,string`
945
946   Default: 0.0
947
948 * `on-message`:(optional): Specify on what message type the action will be executed.
949  If both 'playback-time' and 'on-message' is specified, the action will be executed
950  on whatever happens first.
951
952   Possible types: `string`
953
954   Default: (null)
955
956 * `element-name`:(mandatory): The name of the GESTrackElement to add a keyframe on
957
958   Possible types: `string`
959
960 * `property-name`:(mandatory): The name of the property for which to add a keyframe on
961
962   Possible types: `string`
963
964 * `timestamp`:(mandatory): The timestamp of the keyframe
965
966   Possible types: `string or float`
967
968 ## load-project
969
970
971 ``` validate-scenario
972 load-project,
973     [playback-time=(double,string)],
974     serialized-content;
975 ```
976
977 Loads a project either from its content passed in the serialized-content field.
978 Note that it will completely clean the previous timeline
979  * Implementer namespace: ges
980
981 ### Parameters
982
983   Parameters:
984
985 * `playback-time`:(optional): The playback time at which the action will be executed
986
987   Possible variables:
988
989   * `position`: The current position in the stream
990
991   * `duration`: The duration of the stream
992
993   Possible types: `double,string`
994
995   Default: 0.0
996
997 * `on-message`:(optional): Specify on what message type the action will be executed.
998  If both 'playback-time' and 'on-message' is specified, the action will be executed
999  on whatever happens first.
1000
1001   Possible types: `string`
1002
1003   Default: (null)
1004
1005 * `serialized-content`:(mandatory): The full content of the XML describing project in XGES formet.
1006
1007 ## commit
1008
1009
1010 ``` validate-scenario
1011 commit,
1012     [playback-time=(double,string)];
1013 ```
1014
1015 Commit the timeline.
1016  * Implementer namespace: ges
1017
1018 ### Parameters
1019
1020   Parameters:
1021
1022 * `playback-time`:(optional): The playback time at which the action will be executed
1023
1024   Possible variables:
1025
1026   * `position`: The current position in the stream
1027
1028   * `duration`: The duration of the stream
1029
1030   Possible types: `double,string`
1031
1032   Default: 0.0
1033
1034 * `on-message`:(optional): Specify on what message type the action will be executed.
1035  If both 'playback-time' and 'on-message' is specified, the action will be executed
1036  on whatever happens first.
1037
1038   Possible types: `string`
1039
1040   Default: (null)