# GES action types

## seek

    seek,
        flags=(string describing the GstSeekFlags to set),
        start=(double or string (GstClockTime)),
        [rate=(double)],
        [start_type=(string)],
        [stop=(double or string (GstClockTime))],
        [stop_type=(string)],
        [playback-time=(double,string)];

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:

      seek, playback-time="min(5.0, (duration/8))", start="min(10, 2*(duration/8))", flags=accurate+flush

Implementer namespace: ges

### Parameters

#### `flags` (mandatory)

The GstSeekFlags to use

Possible types: `string describing the GstSeekFlags to set`

#### `start` (mandatory)

The starting value of the seek

Possible variables:

- `position`: The current position in the stream

- `duration`: The duration of the stream

Possible types: `double or string (GstClockTime)`

#### `rate` (optional)

The rate value of the seek

Possible types: `double`

Default: 1.0

#### `start_type` (optional)

The GstSeekType to use for the start of the seek, in: [none, set, end]

Possible types: `string`

Default: set

#### `stop` (optional)

The stop value of the seek

Possible variables:

- `position`: The current position in the stream

- `duration`: The duration of the stream

Possible types: `double or string (GstClockTime)`

Default: GST_CLOCK_TIME_NONE

#### `stop_type` (optional)

The GstSeekType to use for the stop of the seek, in: [none, set, end]

Possible types: `string`

Default: set

#### `playback-time` (optional)

The playback time at which the action will be executed

Possible variables:

- `position`: The current position in the stream

- `duration`: The duration of the stream

Possible types: `double,string`

Default: 0.0

#### `on-message` (optional)

Specify on what message type the action will be executed. If both 'playback-time' and 'on-message' is specified, the action will be executed on whatever happens first.

Possible types: `string`

Default: (null)

## edit-container

    edit-container,
        container-name=(string),
        [edge=(string)],
        [edit-mode=(string)],
        [new-layer-priority=(int)],
        [position=(double or string)],
        [project-uri=(string)],
        [playback-time=(double,string)];

Allows to edit a container (like a GESClip), for more details, have a look at: ges_timeline_element_edit documentation, Note that the timeline will be committed, and flushed so that the edition is taken into account

Implementer namespace: ges

### Parameters

#### `container-name` (mandatory)

The name of the GESContainer to edit

Possible types: `string`

#### `edge` (optional)

The GESEdge to use to edit @container-name should be in [ start, end, none ]

Possible types: `string`

Default: none

#### `edit-mode` (optional)

The GESEditMode to use to edit @container-name

Possible types: `string`

Default: normal

#### `new-layer-priority` (optional)

The priority of the layer @container should land in. If the layer you're trying to move the container to doesn't exist, it will be created automatically. -1 means no move.

Possible types: `int`

Default: -1

#### `position` (optional)

The new position of the GESContainer

Possible variables:

- position: The current position in the stream

- duration: The duration of the stream

Possible types: `double or string`

Default: (null)

#### `project-uri` (optional)

The project URI with the serialized timeline to execute the action on

Possible types: `string`

Default: (null)

#### `playback-time` (optional)

The playback time at which the action will be executed

Possible variables:

- `position`: The current position in the stream

- `duration`: The duration of the stream

Possible types: `double,string`

Default: 0.0

#### `on-message` (optional)

Specify on what message type the action will be executed. If both 'playback-time' and 'on-message' is specified, the action will be executed on whatever happens first.

Possible types: `string`

Default: (null)

## edit

    edit,
        element-name=(string),
        [edge=(string)],
        [edit-mode=(string)],
        [new-layer-priority=(int)],
        [position=(double or string)],
        [project-uri=(string)],
        [source-frame=(double or string)],
        [playback-time=(double,string)];

Allows to edit a element (like a GESClip), for more details, have a look at: ges_timeline_element_edit documentation, Note that the timeline will be committed, and flushed so that the edition is taken into account

Implementer namespace: ges

### Parameters

#### `element-name` (mandatory)

The name of the element to edit

Possible types: `string`

#### `edge` (optional)

The GESEdge to use to edit @element-name should be in [ start, end, none ]

Possible types: `string`

Default: none

#### `edit-mode` (optional)

The GESEditMode to use to edit @element-name

Possible types: `string`

Default: normal

#### `new-layer-priority` (optional)

The priority of the layer @element should land in. If the layer you're trying to move the element to doesn't exist, it will be created automatically. -1 means no move.

Possible types: `int`

Default: -1

#### `position` (optional)

The new position of the element

Possible variables:

- position: The current position in the stream

- duration: The duration of the stream

Possible types: `double or string`

Default: (null)

#### `project-uri` (optional)

The project URI with the serialized timeline to execute the action on

Possible types: `string`

Default: (null)

#### `source-frame` (optional)

The new frame of the element, computed from the @element-nameclip's source frame.

Possible types: `double or string`

Default: (null)

#### `playback-time` (optional)

The playback time at which the action will be executed

Possible variables:

- `position`: The current position in the stream

- `duration`: The duration of the stream

Possible types: `double,string`

Default: 0.0

#### `on-message` (optional)

Specify on what message type the action will be executed. If both 'playback-time' and 'on-message' is specified, the action will be executed on whatever happens first.

Possible types: `string`

Default: (null)

## add-asset

    add-asset,
        id,
        type,
        [project-uri=(string)],
        [playback-time=(double,string)];

Allows to add an asset to the current project

Implementer namespace: ges

### Parameters

#### `id` (mandatory)

Adds an asset to a project.

#### `type` (mandatory)

The type of asset to add

#### `project-uri` (optional)

The project URI with the serialized timeline to execute the action on

Possible types: `string`

Default: (null)

#### `playback-time` (optional)

The playback time at which the action will be executed

Possible variables:

- `position`: The current position in the stream

- `duration`: The duration of the stream

Possible types: `double,string`

Default: 0.0

#### `on-message` (optional)

Specify on what message type the action will be executed. If both 'playback-time' and 'on-message' is specified, the action will be executed on whatever happens first.

Possible types: `string`

Default: (null)

## remove-asset

    remove-asset,
        id,
        type,
        [project-uri=(string)],
        [playback-time=(double,string)];

Allows to remove an asset from the current project

Implementer namespace: ges

### Parameters

#### `id` (mandatory)

The ID of the clip to remove

#### `type` (mandatory)

The type of asset to remove

#### `project-uri` (optional)

The project URI with the serialized timeline to execute the action on

Possible types: `string`

Default: (null)

#### `playback-time` (optional)

The playback time at which the action will be executed

Possible variables:

- `position`: The current position in the stream

- `duration`: The duration of the stream

Possible types: `double,string`

Default: 0.0

#### `on-message` (optional)

Specify on what message type the action will be executed. If both 'playback-time' and 'on-message' is specified, the action will be executed on whatever happens first.

Possible types: `string`

Default: (null)

## add-layer

    add-layer,
        [priority],
        [project-uri=(string)],
        [playback-time=(double,string)];

Allows to add a layer to the current timeline

Implementer namespace: ges

### Parameters

#### `priority` (optional)

The priority of the new layer to add,if not specified, the new layer will be appended to the timeline

Default: (null)

#### `project-uri` (optional)

The project URI with the serialized timeline to execute the action on

Possible types: `string`

Default: (null)

#### `playback-time` (optional)

The playback time at which the action will be executed

Possible variables:

- `position`: The current position in the stream

- `duration`: The duration of the stream

Possible types: `double,string`

Default: 0.0

#### `on-message` (optional)

Specify on what message type the action will be executed. If both 'playback-time' and 'on-message' is specified, the action will be executed on whatever happens first.

Possible types: `string`

Default: (null)

## remove-layer

    remove-layer,
        priority,
        [auto-transition=(boolean)],
        [project-uri=(string)],
        [playback-time=(double,string)];

Allows to remove a layer from the current timeline

Implementer namespace: ges

### Parameters

#### `priority` (mandatory)

The priority of the layer to remove

#### `auto-transition` (optional)

Whether auto-transition is activated on the new layer.

Possible types: `boolean`

Default: False

#### `project-uri` (optional)

The nested timeline to add clip to

Possible types: `string`

Default: (null)

#### `playback-time` (optional)

The playback time at which the action will be executed

Possible variables:

- `position`: The current position in the stream

- `duration`: The duration of the stream

Possible types: `double,string`

Default: 0.0

#### `on-message` (optional)

Specify on what message type the action will be executed. If both 'playback-time' and 'on-message' is specified, the action will be executed on whatever happens first.

Possible types: `string`

Default: (null)

## add-clip

    add-clip,
        asset-id=(string),
        layer-priority=(int),
        name=(string),
        type=(string),
        [duration=(double or string)],
        [inpoint=(double or string)],
        [project-uri=(string)],
        [start=(double or string)],
        [playback-time=(double,string)];

Allows to add a clip to a given layer

Implementer namespace: ges

### Parameters

#### `asset-id` (mandatory)

The id of the asset from which to extract the clip

Possible types: `string`

#### `layer-priority` (mandatory)

The priority of the clip to add

Possible types: `int`

#### `name` (mandatory)

The name of the clip to add

Possible types: `string`

#### `type` (mandatory)

The type of the clip to create

Possible types: `string`

#### `duration` (optional)

The duration value to set on the new GESClip

Possible types: `double or string`

Default: (null)

#### `inpoint` (optional)

The inpoint value to set on the new GESClip

Possible types: `double or string`

Default: (null)

#### `project-uri` (optional)

The project URI with the serialized timeline to execute the action on

Possible types: `string`

Default: (null)

#### `start` (optional)

The start value to set on the new GESClip.

Possible types: `double or string`

Default: (null)

#### `playback-time` (optional)

The playback time at which the action will be executed

Possible variables:

- `position`: The current position in the stream

- `duration`: The duration of the stream

Possible types: `double,string`

Default: 0.0

#### `on-message` (optional)

Specify on what message type the action will be executed. If both 'playback-time' and 'on-message' is specified, the action will be executed on whatever happens first.

Possible types: `string`

Default: (null)

## remove-clip

    remove-clip,
        name=(string),
        [project-uri=(string)],
        [playback-time=(double,string)];

Allows to remove a clip from a given layer

Implementer namespace: ges

### Parameters

#### `name` (mandatory)

The name of the clip to remove

Possible types: `string`

#### `project-uri` (optional)

The project URI with the serialized timeline to execute the action on

Possible types: `string`

Default: (null)

#### `playback-time` (optional)

The playback time at which the action will be executed

Possible variables:

- `position`: The current position in the stream

- `duration`: The duration of the stream

Possible types: `double,string`

Default: 0.0

#### `on-message` (optional)

Specify on what message type the action will be executed. If both 'playback-time' and 'on-message' is specified, the action will be executed on whatever happens first.

Possible types: `string`

Default: (null)

## serialize-project

    serialize-project,
        uri=(string),
        [playback-time=(double,string)];

serializes a project

Implementer namespace: ges

### Parameters

#### `uri` (mandatory)

The uri where to store the serialized project

Possible types: `string`

#### `playback-time` (optional)

The playback time at which the action will be executed

Possible variables:

- `position`: The current position in the stream

- `duration`: The duration of the stream

Possible types: `double,string`

Default: 0.0

#### `on-message` (optional)

Specify on what message type the action will be executed. If both 'playback-time' and 'on-message' is specified, the action will be executed on whatever happens first.

Possible types: `string`

Default: (null)

## set-child-property

    set-child-property,
        element-name=(string),
        property=(string),
        value=(gvalue),
        [project-uri=(string)],
        [playback-time=(double,string)];

Allows to change child property of an object

Implementer namespace: ges

### Parameters

#### `element-name` (mandatory)

The name of the element on which to modify the property

Possible types: `string`

#### `property` (mandatory)

The name of the property to modify

Possible types: `string`

#### `value` (mandatory)

The value of the property

Possible types: `gvalue`

#### `project-uri` (optional)

The project URI with the serialized timeline to execute the action on

Possible types: `string`

Default: (null)

#### `playback-time` (optional)

The playback time at which the action will be executed

Possible variables:

- `position`: The current position in the stream

- `duration`: The duration of the stream

Possible types: `double,string`

Default: 0.0

#### `on-message` (optional)

Specify on what message type the action will be executed. If both 'playback-time' and 'on-message' is specified, the action will be executed on whatever happens first.

Possible types: `string`

Default: (null)

## set-layer-active

    set-layer-active,
        active=(gboolean),
        layer-priority=(gint),
        [tracks=({string, })],
        [playback-time=(double,string)];

Set activness of a layer (on optional tracks).

Implementer namespace: ges

### Parameters

#### `active` (mandatory)

The activness of the layer

Possible types: `gboolean`

#### `layer-priority` (mandatory)

The priority of the layer to set activness on

Possible types: `gint`

#### `tracks` (optional)

tracks

Possible types: `{string, }`

Default: (null)

#### `playback-time` (optional)

The playback time at which the action will be executed

Possible variables:

- `position`: The current position in the stream

- `duration`: The duration of the stream

Possible types: `double,string`

Default: 0.0

#### `on-message` (optional)

Specify on what message type the action will be executed. If both 'playback-time' and 'on-message' is specified, the action will be executed on whatever happens first.

Possible types: `string`

Default: (null)

## set-ges-properties

    set-ges-properties,
        element-name=(string),
        [playback-time=(double,string)];

Set `element-name` properties values defined by the fields in the following format: `property_name=expected-value`

Implementer namespace: ges

### Parameters

#### `element-name` (mandatory)

The name of the element on which to set properties

Possible types: `string`

#### `playback-time` (optional)

The playback time at which the action will be executed

Possible variables:

- `position`: The current position in the stream

- `duration`: The duration of the stream

Possible types: `double,string`

Default: 0.0

#### `on-message` (optional)

Specify on what message type the action will be executed. If both 'playback-time' and 'on-message' is specified, the action will be executed on whatever happens first.

Possible types: `string`

Default: (null)

## check-ges-properties

    check-ges-properties,
        element-name=(string),
        [playback-time=(double,string)];

Check `element-name` properties values defined by the fields in the following format: `property_name=expected-value`

Implementer namespace: ges

### Parameters

#### `element-name` (mandatory)

The name of the element on which to check properties

Possible types: `string`

#### `playback-time` (optional)

The playback time at which the action will be executed

Possible variables:

- `position`: The current position in the stream

- `duration`: The duration of the stream

Possible types: `double,string`

Default: 0.0

#### `on-message` (optional)

Specify on what message type the action will be executed. If both 'playback-time' and 'on-message' is specified, the action will be executed on whatever happens first.

Possible types: `string`

Default: (null)

## check-child-properties

    check-child-properties,
        element-name=(string),
        [at-time=(string)],
        [playback-time=(double,string)];

Check `element-name` children properties values defined by the fields in the following format: `property_name=expected-value`

Implementer namespace: ges

### Parameters

#### `element-name` (mandatory)

The name of the element on which to check children properties

Possible types: `string`

#### `at-time` (optional)

The time at which to check the values, taking into account the ControlBinding if any set.

Possible types: `string`

Default: (null)

#### `playback-time` (optional)

The playback time at which the action will be executed

Possible variables:

- `position`: The current position in the stream

- `duration`: The duration of the stream

Possible types: `double,string`

Default: 0.0

#### `on-message` (optional)

Specify on what message type the action will be executed. If both 'playback-time' and 'on-message' is specified, the action will be executed on whatever happens first.

Possible types: `string`

Default: (null)

## set-child-properties

    set-child-properties,
        element-name=(string),
        [playback-time=(double,string)];

Sets `element-name` children properties values defined by the fields in the following format: `property-name=new-value`

Implementer namespace: ges

### Parameters

#### `element-name` (mandatory)

The name of the element on which to modify child properties

Possible types: `string`

#### `playback-time` (optional)

The playback time at which the action will be executed

Possible variables:

- `position`: The current position in the stream

- `duration`: The duration of the stream

Possible types: `double,string`

Default: 0.0

#### `on-message` (optional)

Specify on what message type the action will be executed. If both 'playback-time' and 'on-message' is specified, the action will be executed on whatever happens first.

Possible types: `string`

Default: (null)

## split-clip

    split-clip,
        clip-name=(string),
        position=(double or string),
        [project-uri=(string)],
        [playback-time=(double,string)];

Split a clip at a specified position.

Implementer namespace: ges

### Parameters

#### `clip-name` (mandatory)

The name of the clip to split

Possible types: `string`

#### `position` (mandatory)

The position at which to split the clip

Possible types: `double or string`

#### `project-uri` (optional)

The project URI with the serialized timeline to execute the action on

Possible types: `string`

Default: (null)

#### `playback-time` (optional)

The playback time at which the action will be executed

Possible variables:

- `position`: The current position in the stream

- `duration`: The duration of the stream

Possible types: `double,string`

Default: 0.0

#### `on-message` (optional)

Specify on what message type the action will be executed. If both 'playback-time' and 'on-message' is specified, the action will be executed on whatever happens first.

Possible types: `string`

Default: (null)

## set-track-restriction-caps

    set-track-restriction-caps,
        caps=(string),
        track-type=(string),
        [project-uri=(string)],
        [playback-time=(double,string)];

Sets restriction caps on tracks of a specific type.

Implementer namespace: ges

### Parameters

#### `caps` (mandatory)

The caps to set on the track

Possible types: `string`

#### `track-type` (mandatory)

The type of track to set restriction caps on

Possible types: `string`

#### `project-uri` (optional)

The project URI with the serialized timeline to execute the action on

Possible types: `string`

Default: (null)

#### `playback-time` (optional)

The playback time at which the action will be executed

Possible variables:

- `position`: The current position in the stream

- `duration`: The duration of the stream

Possible types: `double,string`

Default: 0.0

#### `on-message` (optional)

Specify on what message type the action will be executed. If both 'playback-time' and 'on-message' is specified, the action will be executed on whatever happens first.

Possible types: `string`

Default: (null)

## element-set-asset

    element-set-asset,
        asset-id=(string),
        element-name=(string),
        [project-uri=(string)],
        [playback-time=(double,string)];

Sets restriction caps on tracks of a specific type.

Implementer namespace: ges

### Parameters

#### `asset-id` (mandatory)

The id of the asset from which to extract the clip

Possible types: `string`

#### `element-name` (mandatory)

The name of the TimelineElement to set an asset on

Possible types: `string`

#### `project-uri` (optional)

The project URI with the serialized timeline to execute the action on

Possible types: `string`

Default: (null)

#### `playback-time` (optional)

The playback time at which the action will be executed

Possible variables:

- `position`: The current position in the stream

- `duration`: The duration of the stream

Possible types: `double,string`

Default: 0.0

#### `on-message` (optional)

Specify on what message type the action will be executed. If both 'playback-time' and 'on-message' is specified, the action will be executed on whatever happens first.

Possible types: `string`

Default: (null)

## container-add-child

    container-add-child,
        asset-id=(string),
        container-name=(string),
        [child-name=(string)],
        [child-type=(string)],
        [project-uri=(string)],
        [playback-time=(double,string)];

Add a child to @container-name. If asset-id and child-type are specified, the child will be created and added. Otherwise @child-name has to be specified and will be added to the container.

Implementer namespace: ges

### Parameters

#### `asset-id` (mandatory)

The id of the asset from which to extract the child

Possible types: `string`

#### `container-name` (mandatory)

The name of the GESContainer to add a child to

Possible types: `string`

#### `child-name` (optional)

The name of the child to add to @container-name

Possible types: `string`

Default: NULL

#### `child-type` (optional)

The type of the child to create

Possible types: `string`

Default: NULL

#### `project-uri` (optional)

The project URI with the serialized timeline to execute the action on

Possible types: `string`

Default: (null)

#### `playback-time` (optional)

The playback time at which the action will be executed

Possible variables:

- `position`: The current position in the stream

- `duration`: The duration of the stream

Possible types: `double,string`

Default: 0.0

#### `on-message` (optional)

Specify on what message type the action will be executed. If both 'playback-time' and 'on-message' is specified, the action will be executed on whatever happens first.

Possible types: `string`

Default: (null)

## container-remove-child

    container-remove-child,
        child-name=(string),
        container-name=(string),
        [project-uri=(string)],
        [playback-time=(double,string)];

Remove a child from @container-name.

Implementer namespace: ges

### Parameters

#### `child-name` (mandatory)

The name of the child to reomve from @container-name

Possible types: `string`

#### `container-name` (mandatory)

The name of the GESContainer to remove a child from

Possible types: `string`

#### `project-uri` (optional)

The project URI with the serialized timeline to execute the action on

Possible types: `string`

Default: (null)

#### `playback-time` (optional)

The playback time at which the action will be executed

Possible variables:

- `position`: The current position in the stream

- `duration`: The duration of the stream

Possible types: `double,string`

Default: 0.0

#### `on-message` (optional)

Specify on what message type the action will be executed. If both 'playback-time' and 'on-message' is specified, the action will be executed on whatever happens first.

Possible types: `string`

Default: (null)

## group

    group,
        containers=({ container-name, }),
        [container-name=(string)],
        [project-uri=(string)],
        [playback-time=(double,string)];

Group containers together.

Implementer namespace: ges

### Parameters

#### `containers` (mandatory)

Array of GESContainer names to group

Possible types: `{ container-name, }`

#### `container-name` (optional)

The name of the resulting group

Possible types: `string`

Default: (null)

#### `project-uri` (optional)

The project URI with the serialized timeline to execute the action on

Possible types: `string`

Default: (null)

#### `playback-time` (optional)

The playback time at which the action will be executed

Possible variables:

- `position`: The current position in the stream

- `duration`: The duration of the stream

Possible types: `double,string`

Default: 0.0

#### `on-message` (optional)

Specify on what message type the action will be executed. If both 'playback-time' and 'on-message' is specified, the action will be executed on whatever happens first.

Possible types: `string`

Default: (null)

## ungroup-container

    ungroup-container,
        container-name=(string),
        [project-uri=(string)],
        [recursive=(boolean)],
        [playback-time=(double,string)];

Ungroup children of @container-name.

Implementer namespace: ges

### Parameters

#### `container-name` (mandatory)

The name of the GESContainer to ungroup children from

Possible types: `string`

#### `project-uri` (optional)

The project URI with the serialized timeline to execute the action on

Possible types: `string`

Default: (null)

#### `recursive` (optional)

Whether to recurse ungrouping or not.

Possible types: `boolean`

Default: (null)

#### `playback-time` (optional)

The playback time at which the action will be executed

Possible variables:

- `position`: The current position in the stream

- `duration`: The duration of the stream

Possible types: `double,string`

Default: 0.0

#### `on-message` (optional)

Specify on what message type the action will be executed. If both 'playback-time' and 'on-message' is specified, the action will be executed on whatever happens first.

Possible types: `string`

Default: (null)

## set-control-source

    set-control-source,
        element-name=(string),
        property-name=(string),
        [binding-type=(string)],
        [interpolation-mode=(string)],
        [project-uri=(string)],
        [source-type=(string)],
        [playback-time=(double,string)];

Adds a GstControlSource on @element-name::@property-name allowing you to then add keyframes on that property.

Implementer namespace: ges

### Parameters

#### `element-name` (mandatory)

The name of the GESTrackElement to set the control source on

Possible types: `string`

#### `property-name` (mandatory)

The name of the property for which to set a control source

Possible types: `string`

#### `binding-type` (optional)

The name of the type of binding to use

Possible types: `string`

Default: direct

#### `interpolation-mode` (optional)

The name of the GstInterpolationMode to on the source

Possible types: `string`

Default: linear

#### `project-uri` (optional)

The project URI with the serialized timeline to execute the action on

Possible types: `string`

Default: (null)

#### `source-type` (optional)

The name of the type of ControlSource to use

Possible types: `string`

Default: interpolation

#### `playback-time` (optional)

The playback time at which the action will be executed

Possible variables:

- `position`: The current position in the stream

- `duration`: The duration of the stream

Possible types: `double,string`

Default: 0.0

#### `on-message` (optional)

Specify on what message type the action will be executed. If both 'playback-time' and 'on-message' is specified, the action will be executed on whatever happens first.

Possible types: `string`

Default: (null)

## add-keyframe

    add-keyframe,
        element-name=(string),
        property-name=(string),
        timestamp=(string or float),
        value=(float),
        [project-uri=(string)],
        [playback-time=(double,string)];

Set a keyframe on @element-name:property-name.

Implementer namespace: ges

### Parameters

#### `element-name` (mandatory)

The name of the GESTrackElement to add a keyframe on

Possible types: `string`

#### `property-name` (mandatory)

The name of the property for which to add a keyframe on

Possible types: `string`

#### `timestamp` (mandatory)

The timestamp of the keyframe

Possible types: `string or float`

#### `value` (mandatory)

The value of the keyframe

Possible types: `float`

#### `project-uri` (optional)

The project URI with the serialized timeline to execute the action on

Possible types: `string`

Default: (null)

#### `playback-time` (optional)

The playback time at which the action will be executed

Possible variables:

- `position`: The current position in the stream

- `duration`: The duration of the stream

Possible types: `double,string`

Default: 0.0

#### `on-message` (optional)

Specify on what message type the action will be executed. If both 'playback-time' and 'on-message' is specified, the action will be executed on whatever happens first.

Possible types: `string`

Default: (null)

## copy-element

    copy-element,
        element-name=(string),
        position=(string or float),
        [paste-name=(string)],
        [project-uri=(string)],
        [recurse=(boolean)],
        [playback-time=(double,string)];

Remove a child from @container-name.

Implementer namespace: ges

### Parameters

#### `element-name` (mandatory)

The name of the GESTtimelineElement to copy

Possible types: `string`

#### `position` (mandatory)

The time where to paste the element

Possible types: `string or float`

#### `paste-name` (optional)

The name of the copied element

Possible types: `string`

Default: (null)

#### `project-uri` (optional)

The project URI with the serialized timeline to execute the action on

Possible types: `string`

Default: (null)

#### `recurse` (optional)

Copy recursively or not

Possible types: `boolean`

Default: true

#### `playback-time` (optional)

The playback time at which the action will be executed

Possible variables:

- `position`: The current position in the stream

- `duration`: The duration of the stream

Possible types: `double,string`

Default: 0.0

#### `on-message` (optional)

Specify on what message type the action will be executed. If both 'playback-time' and 'on-message' is specified, the action will be executed on whatever happens first.

Possible types: `string`

Default: (null)

## remove-keyframe

    remove-keyframe,
        element-name=(string),
        property-name=(string),
        timestamp=(string or float),
        [project-uri=(string)],
        [playback-time=(double,string)];

Remove a keyframe on @element-name:property-name.

Implementer namespace: ges

### Parameters

#### `element-name` (mandatory)

The name of the GESTrackElement to add a keyframe on

Possible types: `string`

#### `property-name` (mandatory)

The name of the property for which to add a keyframe on

Possible types: `string`

#### `timestamp` (mandatory)

The timestamp of the keyframe

Possible types: `string or float`

#### `project-uri` (optional)

The project URI with the serialized timeline to execute the action on

Possible types: `string`

Default: (null)

#### `playback-time` (optional)

The playback time at which the action will be executed

Possible variables:

- `position`: The current position in the stream

- `duration`: The duration of the stream

Possible types: `double,string`

Default: 0.0

#### `on-message` (optional)

Specify on what message type the action will be executed. If both 'playback-time' and 'on-message' is specified, the action will be executed on whatever happens first.

Possible types: `string`

Default: (null)

## load-project

    load-project,
        [serialized-content=(string)],
        [uri=(string)],
        [playback-time=(double,string)];

Loads a project either from its content passed in the 'serialized-content' field or using the provided 'uri'. Note that it will completely clean the previous timeline

Implementer namespace: ges

### Parameters

#### `serialized-content` (optional)

The full content of the XML describing project in XGES format.

Possible types: `string`

Default: (null)

#### `uri` (optional)

The uri of the project to load (used only if serialized-content is not provided)

Possible types: `string`

Default: (null)

#### `playback-time` (optional)

The playback time at which the action will be executed

Possible variables:

- `position`: The current position in the stream

- `duration`: The duration of the stream

Possible types: `double,string`

Default: 0.0

#### `on-message` (optional)

Specify on what message type the action will be executed. If both 'playback-time' and 'on-message' is specified, the action will be executed on whatever happens first.

Possible types: `string`

Default: (null)

## commit

    commit,
        [playback-time=(double,string)];

Commit the timeline.

Implementer namespace: ges

### Parameters

#### `playback-time` (optional)

The playback time at which the action will be executed

Possible variables:

- `position`: The current position in the stream

- `duration`: The duration of the stream

Possible types: `double,string`

Default: 0.0

#### `on-message` (optional)

Specify on what message type the action will be executed. If both 'playback-time' and 'on-message' is specified, the action will be executed on whatever happens first.

Possible types: `string`

Default: (null)

## check-ges-video-element-selector

    check-ges-video-element-selector,
        [colorconvert-factory=(string)],
        [compositor-factory=(string)],
        [convert-scale-factory=(string)],
        [deinterlace-factory=(string)],
        [downloader-factory=(string)],
        [memory-feature=(string)],
        [scale-factory=(string)],
        [strict=(boolean)],
        [uploader-factory=(string)],
        [videoflip-factory=(string)],
        [playback-time=(double,string)];

Assert that the GESVideoElementSelector singleton resolved to the expected factories and flags. Every field is optional; fields not listed in the action are not checked.

Implementer namespace: ges

### Parameters

#### `colorconvert-factory` (optional)

Expected colorconvert factory name.

Possible types: `string`

Default: (null)

#### `compositor-factory` (optional)

Expected name of the selected compositor factory.

Possible types: `string`

Default: (null)

#### `convert-scale-factory` (optional)

Expected combined convert+scale factory name. Empty string asserts none (fallback sandwich is used).

Possible types: `string`

Default: (null)

#### `deinterlace-factory` (optional)

Expected deinterlace factory name.

Possible types: `string`

Default: (null)

#### `downloader-factory` (optional)

Expected downloader factory name. Empty string asserts none.

Possible types: `string`

Default: (null)

#### `memory-feature` (optional)

Expected memory feature (e.g. `memory:GLMemory`). Empty string asserts the selector is on system memory.

Possible types: `string`

Default: (null)

#### `scale-factory` (optional)

Expected scaler factory name.

Possible types: `string`

Default: (null)

#### `strict` (optional)

Expected value of ges_video_element_selector_is_strict().

Possible types: `boolean`

Default: (null)

#### `uploader-factory` (optional)

Expected uploader factory name. Empty string asserts none.

Possible types: `string`

Default: (null)

#### `videoflip-factory` (optional)

Expected videoflip factory name.

Possible types: `string`

Default: (null)

#### `playback-time` (optional)

The playback time at which the action will be executed

Possible variables:

- `position`: The current position in the stream

- `duration`: The duration of the stream

Possible types: `double,string`

Default: 0.0

#### `on-message` (optional)

Specify on what message type the action will be executed. If both 'playback-time' and 'on-message' is specified, the action will be executed on whatever happens first.

Possible types: `string`

Default: (null)

The results of the search are