# GESTrack

A GESTrack acts an output source for a GESTimeline. Each one essentially provides an additional GstPad for the timeline, with restriction-caps capabilities. Internally, a track wraps an nlecomposition filtered by a capsfilter.

A track will contain a number of GESTrackElement-s, and its role is to select and activate these elements according to their timings when the timeline in played. For example, a track would activate a GESSource when its start is reached by outputting its data for its duration. Similarly, a GESOperation would be activated by applying its effect to the source data, starting from its start time and lasting for its duration.

For most users, it will usually be sufficient to add newly created tracks to a timeline, but never directly add an element to a track. Whenever a GESClip is added to a timeline, the clip adds its elements to the timeline's tracks and assumes responsibility for updating them.

## GESTrack

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstElement
                    ╰──GstBin
                        ╰──GESTrack
                            ╰──GESAudioTrack
                            ╰──GESVideoTrack

### Members

`parent` (GstBin) –
No description available
`type` (GESTrackType) –

The track-type of the track

### Class structure

#### GESTrackClass

### GES.TrackClass

## GES.Track

    GObject.Object
        ╰──GObject.InitiallyUnowned
            ╰──Gst.Object
                ╰──Gst.Element
                    ╰──Gst.Bin
                        ╰──GES.Track
                            ╰──GES.AudioTrack
                            ╰──GES.VideoTrack

### Members

`parent` (Gst.Bin) –
No description available
`type` (GES.TrackType) –

The track-type of the track

## GES.Track

    GObject.Object
        ╰──GObject.InitiallyUnowned
            ╰──Gst.Object
                ╰──Gst.Element
                    ╰──Gst.Bin
                        ╰──GES.Track
                            ╰──GES.AudioTrack
                            ╰──GES.VideoTrack

### Members

`parent` (Gst.Bin) –
No description available
`type` (GES.TrackType) –

The track_type of the track

### Constructors

#### ges_track_new

    GESTrack *
    ges_track_new (GESTrackType type,
                   GstCaps * caps)

Creates a new track with the given track-type and caps.

If type is GES_TRACK_TYPE_VIDEO, and caps is a subset of "video/x-raw(ANY)", then a GESVideoTrack is created. This will automatically choose a gap creation method suitable for video data. You will likely want to set restriction-caps separately. You may prefer to use the ges_video_track_new method instead.

If type is GES_TRACK_TYPE_AUDIO, and caps is a subset of "audio/x-raw(ANY)", then a GESAudioTrack is created. This will automatically choose a gap creation method suitable for audio data, and will set the restriction-caps to the default for GESAudioTrack. You may prefer to use the ges_audio_track_new method instead.

Otherwise, a plain GESTrack is returned. You will likely want to set the restriction-caps and call ges_track_set_create_element_for_gap_func on the returned track.

Parameters:

`type` –

The track-type for the track

`caps` ( [transfer: full]) –

The caps for the track

Returns ( [transfer: floating]) –

A new track.

#### GES.Track.prototype.new

    function GES.Track.prototype.new(type: GES.TrackType, caps: Gst.Caps): {
        // javascript wrapper for 'ges_track_new'
    }

Creates a new track with the given track-type and caps.

If type is GES.TrackType.VIDEO, and caps is a subset of "video/x-raw(ANY)", then a GES.VideoTrack is created. This will automatically choose a gap creation method suitable for video data. You will likely want to set restriction-caps separately. You may prefer to use the GES.VideoTrack.prototype.new method instead.

If type is GES.TrackType.AUDIO, and caps is a subset of "audio/x-raw(ANY)", then a GES.AudioTrack is created. This will automatically choose a gap creation method suitable for audio data, and will set the restriction-caps to the default for GES.AudioTrack. You may prefer to use the GES.AudioTrack.prototype.new method instead.

Otherwise, a plain GES.Track is returned. You will likely want to set the restriction-caps and call ges_track_set_create_element_for_gap_func (not introspectable) on the returned track.

Parameters:

`type` (GES.TrackType) –

The track-type for the track

`caps` (Gst.Caps) –

The caps for the track

Returns (GES.Track) –

A new track.

#### GES.Track.new

    def GES.Track.new (type, caps):
        #python wrapper for 'ges_track_new'

Creates a new track with the given track-type and caps.

If type is GES.TrackType.VIDEO, and caps is a subset of "video/x-raw(ANY)", then a GES.VideoTrack is created. This will automatically choose a gap creation method suitable for video data. You will likely want to set restriction_caps separately. You may prefer to use the GES.VideoTrack.new method instead.

If type is GES.TrackType.AUDIO, and caps is a subset of "audio/x-raw(ANY)", then a GES.AudioTrack is created. This will automatically choose a gap creation method suitable for audio data, and will set the restriction_caps to the default for GES.AudioTrack. You may prefer to use the GES.AudioTrack.new method instead.

Otherwise, a plain GES.Track is returned. You will likely want to set the restriction_caps and call ges_track_set_create_element_for_gap_func (not introspectable) on the returned track.

Parameters:

`type` (GES.TrackType) –

The track_type for the track

`caps` (Gst.Caps) –

The caps for the track

Returns (GES.Track) –

A new track.

### Methods

#### ges_track_add_element

    gboolean
    ges_track_add_element (GESTrack * track,
                           GESTrackElement * object)

See ges_track_add_element, which also gives an error.

Parameters:

`track` –

A GESTrack

`object` ( [transfer: floating]) –

The element to add

Returns –

TRUE if object was successfully added to track.

#### GES.Track.prototype.add_element

    function GES.Track.prototype.add_element(object: GES.TrackElement): {
        // javascript wrapper for 'ges_track_add_element'
    }

See GES.Track.prototype.add_element, which also gives an error.

Parameters:

`track` (GES.Track) –

A GES.Track

`object` (GES.TrackElement) –

The element to add

Returns (Number) –

true if object was successfully added to track.

#### GES.Track.add_element

    def GES.Track.add_element (self, object):
        #python wrapper for 'ges_track_add_element'

See GES.Track.add_element, which also gives an error.

Parameters:

`track` (GES.Track) –

A GES.Track

`object` (GES.TrackElement) –

The element to add

Returns (bool) –

True if object was successfully added to track.

#### ges_track_add_element_full

    gboolean
    ges_track_add_element_full (GESTrack * track,
                                GESTrackElement * object,
                                GError ** error)

Adds the given track element to the track, which takes ownership of the element.

Note that this can fail if it would break a configuration rule of the track's GESTimeline.

Note that a GESTrackElement can only be added to one track.

Parameters:

`track` –

A GESTrack

`object` ( [transfer: floating]) –

The element to add

`error` ( [nullable]) –

Return location for an error

Returns –

TRUE if object was successfully added to track.

Since : 1.18

#### GES.Track.prototype.add_element_full

    function GES.Track.prototype.add_element_full(object: GES.TrackElement): {
        // javascript wrapper for 'ges_track_add_element_full'
    }

Adds the given track element to the track, which takes ownership of the element.

Note that this can fail if it would break a configuration rule of the track's GES.Timeline.

Note that a GES.TrackElement can only be added to one track.

Parameters:

`track` (GES.Track) –

A GES.Track

`object` (GES.TrackElement) –

The element to add

Returns (Number) –

true if object was successfully added to track.

Since : 1.18

#### GES.Track.add_element_full

    @raises(GLib.GError)
    def GES.Track.add_element_full (self, object):
        #python wrapper for 'ges_track_add_element_full'

Adds the given track element to the track, which takes ownership of the element.

Note that this can fail if it would break a configuration rule of the track's GES.Timeline.

Note that a GES.TrackElement can only be added to one track.

Parameters:

`track` (GES.Track) –

A GES.Track

`object` (GES.TrackElement) –

The element to add

Returns (bool) –

True if object was successfully added to track.

Since : 1.18

#### ges_track_commit

    gboolean
    ges_track_commit (GESTrack * track)

Commits all the pending changes for the elements contained in the track.

When changes are made to the timing or priority of elements within a track, they are not directly executed for the underlying nlecomposition and its children. This method will finally execute these changes so they are reflected in the data output of the track.

Any pending changes will be executed in the backend. The commited signal will be emitted once this has completed.

Note that ges_timeline_commit will call this method on all of its tracks, so you are unlikely to need to use this directly.

Parameters:

`track` –

A GESTrack

Returns –

TRUE if pending changes were committed, or FALSE if nothing needed to be committed.

#### GES.Track.prototype.commit

    function GES.Track.prototype.commit(): {
        // javascript wrapper for 'ges_track_commit'
    }

Commits all the pending changes for the elements contained in the track.

When changes are made to the timing or priority of elements within a track, they are not directly executed for the underlying nlecomposition (not introspectable) and its children. This method will finally execute these changes so they are reflected in the data output of the track.

Any pending changes will be executed in the backend. The commited signal will be emitted once this has completed.

Note that GES.Timeline.prototype.commit will call this method on all of its tracks, so you are unlikely to need to use this directly.

Parameters:

`track` (GES.Track) –

A GES.Track

Returns (Number) –

true if pending changes were committed, or false if nothing needed to be committed.

#### GES.Track.commit

    def GES.Track.commit (self):
        #python wrapper for 'ges_track_commit'

Commits all the pending changes for the elements contained in the track.

When changes are made to the timing or priority of elements within a track, they are not directly executed for the underlying nlecomposition (not introspectable) and its children. This method will finally execute these changes so they are reflected in the data output of the track.

Any pending changes will be executed in the backend. The commited signal will be emitted once this has completed.

Note that GES.Timeline.commit will call this method on all of its tracks, so you are unlikely to need to use this directly.

Parameters:

`track` (GES.Track) –

A GES.Track

Returns (bool) –

True if pending changes were committed, or False if nothing needed to be committed.

#### ges_track_get_caps

    const GstCaps *
    ges_track_get_caps (GESTrack * track)

Get the caps of the track.

Parameters:

`track` –

A GESTrack

Returns ( [nullable]) –

The caps of track.

#### GES.Track.prototype.get_caps

    function GES.Track.prototype.get_caps(): {
        // javascript wrapper for 'ges_track_get_caps'
    }

Get the caps of the track.

Parameters:

`track` (GES.Track) –

A GES.Track

Returns (Gst.Caps) –

The caps of track.

#### GES.Track.get_caps

    def GES.Track.get_caps (self):
        #python wrapper for 'ges_track_get_caps'

Get the caps of the track.

Parameters:

`track` (GES.Track) –

A GES.Track

Returns (Gst.Caps) –

The caps of track.

#### ges_track_get_elements

    GList *
    ges_track_get_elements (GESTrack * track)

Gets the track elements contained in the track. The returned list is sorted by the element's priority and start.

Parameters:

`track` –

A GESTrack

Returns ( [transfer: full][element-type GESTrackElement]) –

A list of all the GESTrackElement-s in track.

#### GES.Track.prototype.get_elements

    function GES.Track.prototype.get_elements(): {
        // javascript wrapper for 'ges_track_get_elements'
    }

Gets the track elements contained in the track. The returned list is sorted by the element's priority and start.

Parameters:

`track` (GES.Track) –

A GES.Track

Returns ([ GES.TrackElement ]) –

A list of all the GES.TrackElement-s in track.

#### GES.Track.get_elements

    def GES.Track.get_elements (self):
        #python wrapper for 'ges_track_get_elements'

Gets the track elements contained in the track. The returned list is sorted by the element's priority and start.

Parameters:

`track` (GES.Track) –

A GES.Track

Returns ([ GES.TrackElement ]) –

A list of all the GES.TrackElement-s in track.

#### ges_track_get_mixing

    gboolean
    ges_track_get_mixing (GESTrack * track)

Gets the mixing of the track.

Parameters:

`track` –

A GESTrack

Returns –

Whether track is mixing.

#### GES.Track.prototype.get_mixing

    function GES.Track.prototype.get_mixing(): {
        // javascript wrapper for 'ges_track_get_mixing'
    }

Gets the mixing of the track.

Parameters:

`track` (GES.Track) –

A GES.Track

Returns (Number) –

Whether track is mixing.

#### GES.Track.get_mixing

    def GES.Track.get_mixing (self):
        #python wrapper for 'ges_track_get_mixing'

Gets the mixing of the track.

Parameters:

`track` (GES.Track) –

A GES.Track

Returns (bool) –

Whether track is mixing.

#### ges_track_get_restriction_caps

    GstCaps *
    ges_track_get_restriction_caps (GESTrack * track)

Gets the restriction-caps of the track.

Parameters:

`track` –

A GESTrack

Returns ( [transfer: full][nullable]) –

The restriction-caps of track.

Since : 1.18

#### GES.Track.prototype.get_restriction_caps

    function GES.Track.prototype.get_restriction_caps(): {
        // javascript wrapper for 'ges_track_get_restriction_caps'
    }

Gets the restriction-caps of the track.

Parameters:

`track` (GES.Track) –

A GES.Track

Returns (Gst.Caps) –

The restriction-caps of track.

Since : 1.18

#### GES.Track.get_restriction_caps

    def GES.Track.get_restriction_caps (self):
        #python wrapper for 'ges_track_get_restriction_caps'

Gets the restriction_caps of the track.

Parameters:

`track` (GES.Track) –

A GES.Track

Returns (Gst.Caps) –

The restriction-caps of track.

Since : 1.18

#### ges_track_get_timeline

    const GESTimeline *
    ges_track_get_timeline (GESTrack * track)

Get the timeline this track belongs to.

Parameters:

`track` –

A GESTrack

Returns ( [nullable]) –

The timeline that track belongs to, or NULL if it does not belong to a timeline.

#### GES.Track.prototype.get_timeline

    function GES.Track.prototype.get_timeline(): {
        // javascript wrapper for 'ges_track_get_timeline'
    }

Get the timeline this track belongs to.

Parameters:

`track` (GES.Track) –

A GES.Track

Returns (GES.Timeline) –

The timeline that track belongs to, or null if it does not belong to a timeline.

#### GES.Track.get_timeline

    def GES.Track.get_timeline (self):
        #python wrapper for 'ges_track_get_timeline'

Get the timeline this track belongs to.

Parameters:

`track` (GES.Track) –

A GES.Track

Returns (GES.Timeline) –

The timeline that track belongs to, or None if it does not belong to a timeline.

#### ges_track_remove_element

    gboolean
    ges_track_remove_element (GESTrack * track,
                              GESTrackElement * object)

See ges_track_remove_element_full, which also returns an error.

Parameters:

`track` –

A GESTrack

`object` –

The element to remove

Returns –

TRUE if object was successfully removed from track.

#### GES.Track.prototype.remove_element

    function GES.Track.prototype.remove_element(object: GES.TrackElement): {
        // javascript wrapper for 'ges_track_remove_element'
    }

See GES.Track.prototype.remove_element_full, which also returns an error.

Parameters:

`track` (GES.Track) –

A GES.Track

`object` (GES.TrackElement) –

The element to remove

Returns (Number) –

true if object was successfully removed from track.

#### GES.Track.remove_element

    def GES.Track.remove_element (self, object):
        #python wrapper for 'ges_track_remove_element'

See GES.Track.remove_element_full, which also returns an error.

Parameters:

`track` (GES.Track) –

A GES.Track

`object` (GES.TrackElement) –

The element to remove

Returns (bool) –

True if object was successfully removed from track.

#### ges_track_remove_element_full

    gboolean
    ges_track_remove_element_full (GESTrack * track,
                                   GESTrackElement * object,
                                   GError ** error)

Removes the given track element from the track, which revokes ownership of the element.

Parameters:

`track` –

A GESTrack

`object` –

The element to remove

`error` ( [nullable]) –

Return location for an error

Returns –

TRUE if object was successfully removed from track.

Since : 1.18

#### GES.Track.prototype.remove_element_full

    function GES.Track.prototype.remove_element_full(object: GES.TrackElement): {
        // javascript wrapper for 'ges_track_remove_element_full'
    }

Removes the given track element from the track, which revokes ownership of the element.

Parameters:

`track` (GES.Track) –

A GES.Track

`object` (GES.TrackElement) –

The element to remove

Returns (Number) –

true if object was successfully removed from track.

Since : 1.18

#### GES.Track.remove_element_full

    @raises(GLib.GError)
    def GES.Track.remove_element_full (self, object):
        #python wrapper for 'ges_track_remove_element_full'

Removes the given track element from the track, which revokes ownership of the element.

Parameters:

`track` (GES.Track) –

A GES.Track

`object` (GES.TrackElement) –

The element to remove

Returns (bool) –

True if object was successfully removed from track.

Since : 1.18

#### ges_track_set_create_element_for_gap_func

    ges_track_set_create_element_for_gap_func (GESTrack * track,
                                               GESCreateElementForGapFunc func)

Sets the function that will be used to create a GstElement that can be used as a source to fill the gaps of the track. A gap is a timeline region where the track has no GESTrackElement sources. Therefore, you are likely to want the GstElement returned by the function to always produce 'empty' content, defined relative to the stream type, such as transparent frames for a video, or mute samples for audio.

GESAudioTrack and GESVideoTrack objects are created with such a function already set appropriately.

Parameters:

`track` –

A GESTrack

`func` ( [scope notified]) –

The function to be used to create a source GstElement that can fill gaps in track

#### ges_track_set_mixing

    ges_track_set_mixing (GESTrack * track,
                          gboolean mixing)

Sets the mixing for the track.

Parameters:

`track` –

A GESTrack

`mixing` –

Whether track should be mixing

#### GES.Track.prototype.set_mixing

    function GES.Track.prototype.set_mixing(mixing: Number): {
        // javascript wrapper for 'ges_track_set_mixing'
    }

Sets the mixing for the track.

Parameters:

`track` (GES.Track) –

A GES.Track

`mixing` (Number) –

Whether track should be mixing

#### GES.Track.set_mixing

    def GES.Track.set_mixing (self, mixing):
        #python wrapper for 'ges_track_set_mixing'

Sets the mixing for the track.

Parameters:

`track` (GES.Track) –

A GES.Track

`mixing` (bool) –

Whether track should be mixing

#### ges_track_set_restriction_caps

    ges_track_set_restriction_caps (GESTrack * track,
                                    const GstCaps * caps)

Sets the restriction-caps for the track.

> NOTE: Restriction caps are not taken into account when using mode=#GES_PIPELINE_MODE_SMART_RENDER.

Parameters:

`track` –

A GESTrack

`caps` –

The new restriction-caps for track

#### GES.Track.prototype.set_restriction_caps

    function GES.Track.prototype.set_restriction_caps(caps: Gst.Caps): {
        // javascript wrapper for 'ges_track_set_restriction_caps'
    }

Sets the restriction-caps for the track.

> NOTE: Restriction caps are not taken into account when using mode=#GES_PIPELINE_MODE_SMART_RENDER.

Parameters:

`track` (GES.Track) –

A GES.Track

`caps` (Gst.Caps) –

The new restriction-caps for track

#### GES.Track.set_restriction_caps

    def GES.Track.set_restriction_caps (self, caps):
        #python wrapper for 'ges_track_set_restriction_caps'

Sets the restriction_caps for the track.

> NOTE: Restriction caps are not taken into account when using mode=#GES_PIPELINE_MODE_SMART_RENDER.

Parameters:

`track` (GES.Track) –

A GES.Track

`caps` (Gst.Caps) –

The new restriction-caps for track

#### ges_track_set_timeline

    ges_track_set_timeline (GESTrack * track,
                            GESTimeline * timeline)

Informs the track that it belongs to the given timeline. Calling this does not actually add the track to the timeline. For that, you should use ges_timeline_add_track, which will also take care of informing the track that it belongs to the timeline. As such, there is no need for you to call this method.

Parameters:

`track` –

A GESTrack timeline (nullable): A GESTimeline

`timeline` –
No description available

#### GES.Track.prototype.set_timeline

    function GES.Track.prototype.set_timeline(timeline: GES.Timeline): {
        // javascript wrapper for 'ges_track_set_timeline'
    }

Informs the track that it belongs to the given timeline. Calling this does not actually add the track to the timeline. For that, you should use GES.Timeline.prototype.add_track, which will also take care of informing the track that it belongs to the timeline. As such, there is no need for you to call this method.

Parameters:

`track` (GES.Track) –

A GES.Track timeline (nullable): A GES.Timeline

`timeline` (GES.Timeline) –
No description available

#### GES.Track.set_timeline

    def GES.Track.set_timeline (self, timeline):
        #python wrapper for 'ges_track_set_timeline'

Informs the track that it belongs to the given timeline. Calling this does not actually add the track to the timeline. For that, you should use GES.Timeline.add_track, which will also take care of informing the track that it belongs to the timeline. As such, there is no need for you to call this method.

Parameters:

`track` (GES.Track) –

A GES.Track timeline (nullable): A GES.Timeline

`timeline` (GES.Timeline) –
No description available

#### ges_track_update_restriction_caps

    ges_track_update_restriction_caps (GESTrack * track,
                                       const GstCaps * caps)

Updates the restriction-caps of the track using the fields found in the given caps. Each of the GstStructure-s in caps is compared against the existing structure with the same index in the current restriction-caps. If there is no corresponding existing structure at that index, then the new structure is simply copied to that index. Otherwise, any fields in the new structure are copied into the existing structure. This will replace existing values, and may introduce new ones, but any fields 'missing' in the new structure are left unchanged in the existing structure.

For example, if the existing restriction-caps are "video/x-raw, width=480, height=360", and the updating caps is "video/x-raw, format=I420, width=500; video/x-bayer, width=400", then the new restriction-caps after calling this will be "video/x-raw, width=500, height=360, format=I420; video/x-bayer, width=400".

Parameters:

`track` –

A GESTrack

`caps` –

The caps to update the restriction-caps with

#### GES.Track.prototype.update_restriction_caps

    function GES.Track.prototype.update_restriction_caps(caps: Gst.Caps): {
        // javascript wrapper for 'ges_track_update_restriction_caps'
    }

Updates the restriction-caps of the track using the fields found in the given caps. Each of the Gst.Structure-s in caps is compared against the existing structure with the same index in the current restriction-caps. If there is no corresponding existing structure at that index, then the new structure is simply copied to that index. Otherwise, any fields in the new structure are copied into the existing structure. This will replace existing values, and may introduce new ones, but any fields 'missing' in the new structure are left unchanged in the existing structure.

For example, if the existing restriction-caps are "video/x-raw, width=480, height=360", and the updating caps is "video/x-raw, format=I420, width=500; video/x-bayer, width=400", then the new restriction-caps after calling this will be "video/x-raw, width=500, height=360, format=I420; video/x-bayer, width=400".

Parameters:

`track` (GES.Track) –

A GES.Track

`caps` (Gst.Caps) –

The caps to update the restriction-caps with

#### GES.Track.update_restriction_caps

    def GES.Track.update_restriction_caps (self, caps):
        #python wrapper for 'ges_track_update_restriction_caps'

Updates the restriction_caps of the track using the fields found in the given caps. Each of the Gst.Structure-s in caps is compared against the existing structure with the same index in the current restriction_caps. If there is no corresponding existing structure at that index, then the new structure is simply copied to that index. Otherwise, any fields in the new structure are copied into the existing structure. This will replace existing values, and may introduce new ones, but any fields 'missing' in the new structure are left unchanged in the existing structure.

For example, if the existing restriction_caps are "video/x-raw, width=480, height=360", and the updating caps is "video/x-raw, format=I420, width=500; video/x-bayer, width=400", then the new restriction_caps after calling this will be "video/x-raw, width=500, height=360, format=I420; video/x-bayer, width=400".

Parameters:

`track` (GES.Track) –

A GES.Track

`caps` (Gst.Caps) –

The caps to update the restriction-caps with

### Signals

#### commited

    commited_callback (GESTrack * self,
                       gpointer user_data)

This signal will be emitted once the changes initiated by ges_track_commit have been executed in the backend. In particular, this will be emitted whenever the underlying nlecomposition has been committed (see commited).

Parameters:

`self` –
No description available
`user_data` –
No description available

Flags: Run Last

#### commited

    function commited_callback(self: GES.Track, user_data: Object): {
        // javascript callback for the 'commited' signal
    }

This signal will be emitted once the changes initiated by GES.Track.prototype.commit have been executed in the backend. In particular, this will be emitted whenever the underlying nlecomposition (not introspectable) has been committed (see commited (not introspectable)).

Parameters:

`self` (GES.Track) –
No description available
`user_data` (Object) –
No description available

Flags: Run Last

#### commited

    def commited_callback (self, *user_data):
        #python callback for the 'commited' signal

This signal will be emitted once the changes initiated by GES.Track.commit have been executed in the backend. In particular, this will be emitted whenever the underlying nlecomposition (not introspectable) has been committed (see commited (not introspectable)).

Parameters:

`self` (GES.Track) –
No description available
`user_data` (variadic) –
No description available

Flags: Run Last

#### track-element-added

    track_element_added_callback (GESTrack * self,
                                  GESTrackElement * effect,
                                  gpointer user_data)

Will be emitted after a track element is added to the track.

Parameters:

`self` –
No description available
`effect` –

The element that was added

`user_data` –
No description available

Flags: Run First

#### track-element-added

    function track_element_added_callback(self: GES.Track, effect: GES.TrackElement, user_data: Object): {
        // javascript callback for the 'track-element-added' signal
    }

Will be emitted after a track element is added to the track.

Parameters:

`self` (GES.Track) –
No description available
`effect` (GES.TrackElement) –

The element that was added

`user_data` (Object) –
No description available

Flags: Run First

#### track-element-added

    def track_element_added_callback (self, effect, *user_data):
        #python callback for the 'track-element-added' signal

Will be emitted after a track element is added to the track.

Parameters:

`self` (GES.Track) –
No description available
`effect` (GES.TrackElement) –

The element that was added

`user_data` (variadic) –
No description available

Flags: Run First

#### track-element-removed

    track_element_removed_callback (GESTrack * self,
                                    GESTrackElement * effect,
                                    gpointer user_data)

Will be emitted after a track element is removed from the track.

Parameters:

`self` –
No description available
`effect` –

The element that was removed

`user_data` –
No description available

Flags: Run First

#### track-element-removed

    function track_element_removed_callback(self: GES.Track, effect: GES.TrackElement, user_data: Object): {
        // javascript callback for the 'track-element-removed' signal
    }

Will be emitted after a track element is removed from the track.

Parameters:

`self` (GES.Track) –
No description available
`effect` (GES.TrackElement) –

The element that was removed

`user_data` (Object) –
No description available

Flags: Run First

#### track-element-removed

    def track_element_removed_callback (self, effect, *user_data):
        #python callback for the 'track-element-removed' signal

Will be emitted after a track element is removed from the track.

Parameters:

`self` (GES.Track) –
No description available
`effect` (GES.TrackElement) –

The element that was removed

`user_data` (variadic) –
No description available

Flags: Run First

### Properties

#### caps

    “caps” GstCaps *

The capabilities used to choose the output of the GESTrack's elements. Internally, this is used to select output streams when several may be available, by determining whether its GstPad is compatible (see caps for nlecomposition). As such, this is used as a weaker indication of the desired output type of the track, before the restriction-caps is applied. Therefore, this should be set to a generic superset of the restriction-caps, such as "video/x-raw(ANY)". In addition, it should match with the track's track-type.

Note that when you set this property, the GstCapsFeatures of all its GstStructure-s will be automatically set to GST_CAPS_FEATURES_ANY.

Once a track has been added to a GESTimeline, you should not change this.

Default value: GST_CAPS_ANY.

Flags : Read / Write / Construct Only

#### caps

    “caps” Gst.Caps

The capabilities used to choose the output of the GES.Track's elements. Internally, this is used to select output streams when several may be available, by determining whether its Gst.Pad is compatible (see caps (not introspectable) for nlecomposition (not introspectable)). As such, this is used as a weaker indication of the desired output type of the track, before the restriction-caps is applied. Therefore, this should be set to a generic superset of the restriction-caps, such as "video/x-raw(ANY)". In addition, it should match with the track's track-type.

Note that when you set this property, the Gst.CapsFeatures of all its Gst.Structure-s will be automatically set to GST_CAPS_FEATURES_ANY (not introspectable).

Once a track has been added to a GES.Timeline, you should not change this.

Default value: GST_CAPS_ANY (not introspectable).

Flags : Read / Write / Construct Only

#### caps

    “self.props.caps” Gst.Caps

The capabilities used to choose the output of the GES.Track's elements. Internally, this is used to select output streams when several may be available, by determining whether its Gst.Pad is compatible (see caps (not introspectable) for nlecomposition (not introspectable)). As such, this is used as a weaker indication of the desired output type of the track, before the restriction_caps is applied. Therefore, this should be set to a generic superset of the restriction_caps, such as "video/x-raw(ANY)". In addition, it should match with the track's track_type.

Note that when you set this property, the Gst.CapsFeatures of all its Gst.Structure-s will be automatically set to GST_CAPS_FEATURES_ANY (not introspectable).

Once a track has been added to a GES.Timeline, you should not change this.

Default value: GST_CAPS_ANY (not introspectable).

Flags : Read / Write / Construct Only

#### duration

    “duration” guint64

Current duration of the track

Default value: O

Flags : Read

#### duration

    “duration” Number

Current duration of the track

Default value: O

Flags : Read

#### duration

    “self.props.duration” int

Current duration of the track

Default value: O

Flags : Read

#### id

    “id” gchar *

The id of the underlying nlecomposition.

Flags : Read / Write

Since : 1.18

#### id

    “id” String

The id (not introspectable) of the underlying nlecomposition (not introspectable).

Flags : Read / Write

Since : 1.18

#### id

    “self.props.id” str

The id (not introspectable) of the underlying nlecomposition (not introspectable).

Flags : Read / Write

Since : 1.18

#### mixing

    “mixing” gboolean

Whether the track should support the mixing of GESLayer data, such as composing the video data of each layer (when part of the video data is transparent, the next layer will become visible) or adding together the audio data. As such, for audio and video tracks, you'll likely want to keep this set to TRUE.

Flags : Read / Write / Construct

#### mixing

    “mixing” Number

Whether the track should support the mixing of GES.Layer data, such as composing the video data of each layer (when part of the video data is transparent, the next layer will become visible) or adding together the audio data. As such, for audio and video tracks, you'll likely want to keep this set to true.

Flags : Read / Write / Construct

#### mixing

    “self.props.mixing” bool

Whether the track should support the mixing of GES.Layer data, such as composing the video data of each layer (when part of the video data is transparent, the next layer will become visible) or adding together the audio data. As such, for audio and video tracks, you'll likely want to keep this set to True.

Flags : Read / Write / Construct

#### restriction-caps

    “restriction-caps” GstCaps *

The capabilities that specifies the final output format of the GESTrack. For example, for a video track, it would specify the height, width, framerate and other properties of the stream.

You may change this property after the track has been added to a GESTimeline, but it must remain compatible with the track's caps.

Default value: GST_CAPS_ANY.

Flags : Read / Write

#### restriction-caps

    “restriction-caps” Gst.Caps

The capabilities that specifies the final output format of the GES.Track. For example, for a video track, it would specify the height, width, framerate and other properties of the stream.

You may change this property after the track has been added to a GES.Timeline, but it must remain compatible with the track's caps.

Default value: GST_CAPS_ANY (not introspectable).

Flags : Read / Write

#### restriction_caps

    “self.props.restriction_caps” Gst.Caps

The capabilities that specifies the final output format of the GES.Track. For example, for a video track, it would specify the height, width, framerate and other properties of the stream.

You may change this property after the track has been added to a GES.Timeline, but it must remain compatible with the track's caps.

Default value: GST_CAPS_ANY (not introspectable).

Flags : Read / Write

#### track-type

    “track-type” GESTrackType *

The track type of the track. This controls the type of GESTrackElement-s that can be added to the track. This should match with the track's caps.

Once a track has been added to a GESTimeline, you should not change this.

Flags : Read / Write / Construct Only

#### track-type

    “track-type” GES.TrackType

The track type of the track. This controls the type of GES.TrackElement-s that can be added to the track. This should match with the track's caps.

Once a track has been added to a GES.Timeline, you should not change this.

Flags : Read / Write / Construct Only

#### track_type

    “self.props.track_type” GES.TrackType

The track type of the track. This controls the type of GES.TrackElement-s that can be added to the track. This should match with the track's caps.

Once a track has been added to a GES.Timeline, you should not change this.

Flags : Read / Write / Construct Only

### Virtual Methods

#### get_mixing_element

    GstElement *
    get_mixing_element (GESTrack * track)

Parameters:

`track` –
No description available
Returns –
No description available

## Constants

### GES_TYPE_TRACK

    #define GES_TYPE_TRACK            ges_track_get_type()

## Callbacks

### GESCreateElementForGapFunc

    GstElement *
    (*GESCreateElementForGapFunc) (GESTrack * track)

A function that creates a GstElement that can be used as a source to fill the gaps of the track. A gap is a timeline region where the track has no GESTrackElement sources.

Parameters:

`track` –

The GESTrack

Returns –

A source GstElement to fill gaps in track.

Subpages:

GESAudioTrack – A standard #GESTrack for raw audio

GESVideoTrack – A standard GESTrack for raw video

The results of the search are