# GESTrackElement

A GESTrackElement is a GESTimelineElement that specifically belongs to a single GESTrack of its timeline. Its start and duration specify its temporal extent in the track. Specifically, a track element wraps some nleobject, such as an NleSource or nleoperation, which can be retrieved with ges_track_element_get_nleobject, and its start, duration, in-point, priority and active properties expose the corresponding nleobject properties. When a track element is added to a track, its nleobject is added to the corresponding nlecomposition that the track wraps.

Most users will not have to work directly with track elements since a GESClip will automatically create track elements for its timeline's tracks and take responsibility for updating them. The only track elements that are not automatically created by clips, but a user is likely to want to create, are GESEffect-s.

## Control Bindings for Children Properties

You can set up control bindings for a track element child property using ges_track_element_set_control_source. A GstTimedValueControlSource should specify the timed values using the internal source coordinates (see GESTimelineElement). By default, these will be updated to lie between the in-point and out-point of the element. This can be switched off by setting auto-clamp-control-sources to FALSE.

## GESTrackElement

    GObject
        ╰──GInitiallyUnowned
            ╰──GESTimelineElement
                ╰──GESTrackElement
                    ╰──GESOperation
                    ╰──GESSource

The GESTrackElement base class.

### Members

`parent` (GESTimelineElement) –
No description available

### Class structure

#### GESTrackElementClass

##### Fields

`nleobject_factorytype` (const gchar *) –
No description available
`ABI._ges_reserved` (gpointer *) –
No description available
`ABI.abi.default_has_internal_source` (gboolean) –
No description available
`ABI.abi.default_track_type` (GESTrackType) –
No description available

### GES.TrackElementClass

##### Attributes

`nleobject_factorytype` (String) –
No description available

### GES.TrackElementClass

##### Attributes

`nleobject_factorytype` (str) –
No description available

## GES.TrackElement

    GObject.Object
        ╰──GObject.InitiallyUnowned
            ╰──GES.TimelineElement
                ╰──GES.TrackElement
                    ╰──GES.Operation
                    ╰──GES.Source

The GES.TrackElement base class.

### Members

`parent` (GES.TimelineElement) –
No description available

## GES.TrackElement

    GObject.Object
        ╰──GObject.InitiallyUnowned
            ╰──GES.TimelineElement
                ╰──GES.TrackElement
                    ╰──GES.Operation
                    ╰──GES.Source

The GES.TrackElement base class.

### Members

`parent` (GES.TimelineElement) –
No description available

### Methods

#### ges_track_element_add_children_props

    ges_track_element_add_children_props (GESTrackElement * self,
                                          GstElement * element,
                                          const gchar ** wanted_categories,
                                          const gchar ** blacklist,
                                          const gchar ** whitelist)

Adds all the properties of a GstElement that match the criteria as children properties of the track element. If the name of element's GstElementFactory is not in blacklist, and the factory's GST_ELEMENT_METADATA_KLASS contains at least one member of wanted_categories (e.g. GST_ELEMENT_FACTORY_KLASS_DECODER), then all the properties of element that are also in whitelist are added as child properties of self using ges_timeline_element_add_child_property.

This is intended to be used by subclasses when constructing.

Parameters:

`self` –

A GESTrackElement

`element` –

The child object to retrieve properties from

`wanted_categories` –

(array zero-terminated=1) (transfer none) (allow-none): An array of element factory "klass" categories to whitelist, or NULL to accept all categories

`blacklist` ( [array zero-terminated=1][transfer: none][allow-none]) –

A blacklist of element factory names, or NULL to not blacklist any element factory

`whitelist` ( [array zero-terminated=1][transfer: none][allow-none]) –

A whitelist of element property names, or NULL to whitelist all writeable properties

#### GES.TrackElement.prototype.add_children_props

    function GES.TrackElement.prototype.add_children_props(element: Gst.Element, wanted_categories: [ String ], blacklist: [ String ], whitelist: [ String ]): {
        // javascript wrapper for 'ges_track_element_add_children_props'
    }

Adds all the properties of a Gst.Element that match the criteria as children properties of the track element. If the name of element's Gst.ElementFactory is not in blacklist, and the factory's Gst.ELEMENT_METADATA_KLASS contains at least one member of wanted_categories (e.g. Gst.ELEMENT_FACTORY_KLASS_DECODER), then all the properties of element that are also in whitelist are added as child properties of self using GES.TimelineElement.prototype.add_child_property.

This is intended to be used by subclasses when constructing.

Parameters:

`self` (GES.TrackElement) –

A GES.TrackElement

`element` (Gst.Element) –

The child object to retrieve properties from

`wanted_categories` ([ String ]) –

(array zero-terminated=1) (transfer none) (allow-none): An array of element factory "klass" categories to whitelist, or null to accept all categories

`blacklist` ([ String ]) –

A blacklist of element factory names, or null to not blacklist any element factory

`whitelist` ([ String ]) –

A whitelist of element property names, or null to whitelist all writeable properties

#### GES.TrackElement.add_children_props

    def GES.TrackElement.add_children_props (self, element, wanted_categories, blacklist, whitelist):
        #python wrapper for 'ges_track_element_add_children_props'

Adds all the properties of a Gst.Element that match the criteria as children properties of the track element. If the name of element's Gst.ElementFactory is not in blacklist, and the factory's Gst.ELEMENT_METADATA_KLASS contains at least one member of wanted_categories (e.g. Gst.ELEMENT_FACTORY_KLASS_DECODER), then all the properties of element that are also in whitelist are added as child properties of self using GES.TimelineElement.add_child_property.

This is intended to be used by subclasses when constructing.

Parameters:

`self` (GES.TrackElement) –

A GES.TrackElement

`element` (Gst.Element) –

The child object to retrieve properties from

`wanted_categories` ([ str ]) –

(array zero-terminated=1) (transfer none) (allow-none): An array of element factory "klass" categories to whitelist, or None to accept all categories

`blacklist` ([ str ]) –

A blacklist of element factory names, or None to not blacklist any element factory

`whitelist` ([ str ]) –

A whitelist of element property names, or None to whitelist all writeable properties

#### ges_track_element_clamp_control_source

    ges_track_element_clamp_control_source (GESTrackElement * object,
                                            const gchar * property_name)

Clamp the GstTimedValueControlSource for the specified child property to lie between the in-point and out-point of the element. The out-point is the GES_TIMELINE_ELEMENT_END of the element translated from the timeline coordinates to the internal source coordinates of the element.

If the property does not have a GstTimedValueControlSource set by ges_track_element_set_control_source, nothing happens. Otherwise, if a timed value for the control source lies before the in-point of the element, or after its out-point, then it will be removed. At the in-point and out-point times, a new interpolated value will be placed.

Parameters:

`object` –

A GESTrackElement

`property_name` –

The name of the child property to clamp the control source of

Since : 1.18

#### GES.TrackElement.prototype.clamp_control_source

    function GES.TrackElement.prototype.clamp_control_source(property_name: String): {
        // javascript wrapper for 'ges_track_element_clamp_control_source'
    }

Clamp the GstController.TimedValueControlSource for the specified child property to lie between the in-point and out-point of the element. The out-point is the GES_TIMELINE_ELEMENT_END (not introspectable) of the element translated from the timeline coordinates to the internal source coordinates of the element.

If the property does not have a GstController.TimedValueControlSource set by GES.TrackElement.prototype.set_control_source, nothing happens. Otherwise, if a timed value for the control source lies before the in-point of the element, or after its out-point, then it will be removed. At the in-point and out-point times, a new interpolated value will be placed.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

`property_name` (String) –

The name of the child property to clamp the control source of

Since : 1.18

#### GES.TrackElement.clamp_control_source

    def GES.TrackElement.clamp_control_source (self, property_name):
        #python wrapper for 'ges_track_element_clamp_control_source'

Clamp the GstController.TimedValueControlSource for the specified child property to lie between the in_point and out-point of the element. The out-point is the GES_TIMELINE_ELEMENT_END (not introspectable) of the element translated from the timeline coordinates to the internal source coordinates of the element.

If the property does not have a GstController.TimedValueControlSource set by GES.TrackElement.set_control_source, nothing happens. Otherwise, if a timed value for the control source lies before the in-point of the element, or after its out-point, then it will be removed. At the in-point and out-point times, a new interpolated value will be placed.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

`property_name` (str) –

The name of the child property to clamp the control source of

Since : 1.18

#### ges_track_element_edit

    gboolean
    ges_track_element_edit (GESTrackElement * object,
                            GList * layers,
                            GESEditMode mode,
                            GESEdge edge,
                            guint64 position)

Edits the element within its track.

Parameters:

`object` –

The GESTrackElement to edit

`layers` ( [element-type GESLayer][nullable]) –

A whitelist of layers where the edit can be performed, NULL allows all layers in the timeline

`mode` –

The edit mode

`edge` –

The edge of object where the edit should occur

`position` –

The edit position: a new location for the edge of object (in nanoseconds)

Returns –

TRUE if the edit of object completed, FALSE on failure.

deprecated : 1.18: use #ges_timeline_element_edit instead.

#### GES.TrackElement.prototype.edit

    function GES.TrackElement.prototype.edit(layers: [ GES.Layer ], mode: GES.EditMode, edge: GES.Edge, position: Number): {
        // javascript wrapper for 'ges_track_element_edit'
    }

Edits the element within its track.

Parameters:

`object` (GES.TrackElement) –

The GES.TrackElement to edit

`layers` ([ GES.Layer ]) –

A whitelist of layers where the edit can be performed, null allows all layers in the timeline

`mode` (GES.EditMode) –

The edit mode

`edge` (GES.Edge) –

The edge of object where the edit should occur

`position` (Number) –

The edit position: a new location for the edge of object (in nanoseconds)

Returns (Number) –

true if the edit of object completed, false on failure.

deprecated : 1.18: use #ges_timeline_element_edit instead.

#### GES.TrackElement.edit

    def GES.TrackElement.edit (self, layers, mode, edge, position):
        #python wrapper for 'ges_track_element_edit'

Edits the element within its track.

Parameters:

`object` (GES.TrackElement) –

The GES.TrackElement to edit

`layers` ([ GES.Layer ]) –

A whitelist of layers where the edit can be performed, None allows all layers in the timeline

`mode` (GES.EditMode) –

The edit mode

`edge` (GES.Edge) –

The edge of object where the edit should occur

`position` (int) –

The edit position: a new location for the edge of object (in nanoseconds)

Returns (bool) –

True if the edit of object completed, False on failure.

deprecated : 1.18: use #ges_timeline_element_edit instead.

#### ges_track_element_get_all_control_bindings

    GHashTable *
    ges_track_element_get_all_control_bindings (GESTrackElement * trackelement)

Get all the control bindings that have been created for the children properties of the track element using ges_track_element_set_control_source. The keys used in the returned hash table are the child property names that were passed to ges_track_element_set_control_source, and their values are the corresponding created GstControlBinding.

Parameters:

`trackelement` –

A GESTrackElement

Returns ( [element-type gchar*][transfer: none]) –

A hash table containing all child-property-name/control-binding pairs for trackelement.

#### GES.TrackElement.prototype.get_all_control_bindings

    function GES.TrackElement.prototype.get_all_control_bindings(): {
        // javascript wrapper for 'ges_track_element_get_all_control_bindings'
    }

Get all the control bindings that have been created for the children properties of the track element using GES.TrackElement.prototype.set_control_source. The keys used in the returned hash table are the child property names that were passed to GES.TrackElement.prototype.set_control_source, and their values are the corresponding created Gst.ControlBinding.

Parameters:

`trackelement` (GES.TrackElement) –

A GES.TrackElement

Returns (GHashTable (not introspectable)) –

A hash table containing all child-property-name/control-binding pairs for trackelement.

#### GES.TrackElement.get_all_control_bindings

    def GES.TrackElement.get_all_control_bindings (self):
        #python wrapper for 'ges_track_element_get_all_control_bindings'

Get all the control bindings that have been created for the children properties of the track element using GES.TrackElement.set_control_source. The keys used in the returned hash table are the child property names that were passed to GES.TrackElement.set_control_source, and their values are the corresponding created Gst.ControlBinding.

Parameters:

`trackelement` (GES.TrackElement) –

A GES.TrackElement

Returns (GHashTable (not introspectable)) –

A hash table containing all child-property-name/control-binding pairs for trackelement.

#### ges_track_element_get_auto_clamp_control_sources

    gboolean
    ges_track_element_get_auto_clamp_control_sources (GESTrackElement * object)

Gets auto-clamp-control-sources.

Parameters:

`object` –

A GESTrackElement

Returns –

Whether the control sources for the child properties of object are automatically clamped.

Since : 1.18

#### GES.TrackElement.prototype.get_auto_clamp_control_sources

    function GES.TrackElement.prototype.get_auto_clamp_control_sources(): {
        // javascript wrapper for 'ges_track_element_get_auto_clamp_control_sources'
    }

Gets auto-clamp-control-sources.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

Returns (Number) –

Whether the control sources for the child properties of object are automatically clamped.

Since : 1.18

#### GES.TrackElement.get_auto_clamp_control_sources

    def GES.TrackElement.get_auto_clamp_control_sources (self):
        #python wrapper for 'ges_track_element_get_auto_clamp_control_sources'

Gets auto_clamp_control_sources.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

Returns (bool) –

Whether the control sources for the child properties of object are automatically clamped.

Since : 1.18

#### ges_track_element_get_child_properties

    ges_track_element_get_child_properties (GESTrackElement * object,
                                            const gchar * first_property_name,
                                            ... ...)

Gets properties of a child of object.

Parameters:

`object` –

The origin GESTrackElement

`first_property_name` –

The name of the first property to get

`...` –

return location for the first property, followed optionally by more name/return location pairs, followed by NULL

deprecated : Use #ges_timeline_element_get_child_properties

#### ges_track_element_get_child_property

    gboolean
    ges_track_element_get_child_property (GESTrackElement * object,
                                          const gchar * property_name,
                                          GValue * value)

In general, a copy is made of the property contents and the caller is responsible for freeing the memory by calling g_value_unset.

Gets a property of a GstElement contained in object.

Note that ges_track_element_get_child_property is really intended for language bindings, ges_track_element_get_child_properties is much more convenient for C programming.

Parameters:

`object` –

The origin GESTrackElement

`property_name` –

The name of the property

`value` ( [out]) –

return location for the property value, it will be initialized if it is initialized with 0

Returns –

TRUE if the property was found, FALSE otherwise.

deprecated : Use #ges_timeline_element_get_child_property

#### ges_track_element_get_child_property_by_pspec

    ges_track_element_get_child_property_by_pspec (GESTrackElement * object,
                                                   GParamSpec * pspec,
                                                   GValue * value)

Gets a property of a child of object.

Parameters:

`object` –

A GESTrackElement

`pspec` –

The GParamSpec that specifies the property you want to get

`value` ( [out]) –

return location for the value

deprecated : Use #ges_timeline_element_get_child_property_by_pspec

#### ges_track_element_get_child_property_valist

    ges_track_element_get_child_property_valist (GESTrackElement * object,
                                                 const gchar * first_property_name,
                                                 va_list var_args)

Gets a property of a child of object. If there are various child elements that have the same property name, you can distinguish them using the following syntax: 'ClasseName::property_name' as property name. If you don't, the corresponding property of the first element found will be set.

Parameters:

`object` –

The GESTrackElement parent object

`first_property_name` –

The name of the first property to get

`var_args` –

Value for the first property, followed optionally by more name/return location pairs, followed by NULL

deprecated : Use #ges_timeline_element_get_child_property_valist

#### ges_track_element_get_control_binding

    GstControlBinding *
    ges_track_element_get_control_binding (GESTrackElement * object,
                                           const gchar * property_name)

Gets the control binding that was created for the specified child property of the track element using ges_track_element_set_control_source. The given property_name must be the same name of the child property that was passed to ges_track_element_set_control_source.

Parameters:

`object` –

A GESTrackElement

`property_name` –

The name of the child property to return the control binding of

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

The control binding that was created for the specified child property of object, or NULL if property_name does not correspond to any control binding.

#### GES.TrackElement.prototype.get_control_binding

    function GES.TrackElement.prototype.get_control_binding(property_name: String): {
        // javascript wrapper for 'ges_track_element_get_control_binding'
    }

Gets the control binding that was created for the specified child property of the track element using GES.TrackElement.prototype.set_control_source. The given property_name must be the same name of the child property that was passed to GES.TrackElement.prototype.set_control_source.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

`property_name` (String) –

The name of the child property to return the control binding of

Returns (Gst.ControlBinding) –

The control binding that was created for the specified child property of object, or null if property_name does not correspond to any control binding.

#### GES.TrackElement.get_control_binding

    def GES.TrackElement.get_control_binding (self, property_name):
        #python wrapper for 'ges_track_element_get_control_binding'

Gets the control binding that was created for the specified child property of the track element using GES.TrackElement.set_control_source. The given property_name must be the same name of the child property that was passed to GES.TrackElement.set_control_source.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

`property_name` (str) –

The name of the child property to return the control binding of

Returns (Gst.ControlBinding) –

The control binding that was created for the specified child property of object, or None if property_name does not correspond to any control binding.

#### ges_track_element_get_element

    GstElement *
    ges_track_element_get_element (GESTrackElement * object)

Get the GstElement that the track element's underlying nleobject controls.

Parameters:

`object` –

A GESTrackElement

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

The GstElement being controlled by the nleobject that object wraps.

#### GES.TrackElement.prototype.get_element

    function GES.TrackElement.prototype.get_element(): {
        // javascript wrapper for 'ges_track_element_get_element'
    }

Get the Gst.Element that the track element's underlying nleobject controls.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

Returns (Gst.Element) –

The Gst.Element being controlled by the nleobject that object wraps.

#### GES.TrackElement.get_element

    def GES.TrackElement.get_element (self):
        #python wrapper for 'ges_track_element_get_element'

Get the Gst.Element that the track element's underlying nleobject controls.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

Returns (Gst.Element) –

The Gst.Element being controlled by the nleobject that object wraps.

#### ges_track_element_get_gnlobject

    GstElement *
    ges_track_element_get_gnlobject (GESTrackElement * object)

Get the GNonLin object this object is controlling.

Parameters:

`object` –

A GESTrackElement

Returns ( [transfer: none]) –

The GNonLin object this object is controlling.

deprecated : use #ges_track_element_get_nleobject instead.

#### GES.TrackElement.prototype.get_gnlobject

    function GES.TrackElement.prototype.get_gnlobject(): {
        // javascript wrapper for 'ges_track_element_get_gnlobject'
    }

Get the GNonLin object this object is controlling.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

Returns (Gst.Element) –

The GNonLin object this object is controlling.

deprecated : use #ges_track_element_get_nleobject instead.

#### GES.TrackElement.get_gnlobject

    def GES.TrackElement.get_gnlobject (self):
        #python wrapper for 'ges_track_element_get_gnlobject'

Get the GNonLin object this object is controlling.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

Returns (Gst.Element) –

The GNonLin object this object is controlling.

deprecated : use #ges_track_element_get_nleobject instead.

#### ges_track_element_get_nleobject

    GstElement *
    ges_track_element_get_nleobject (GESTrackElement * object)

Get the nleobject that this element wraps.

Parameters:

`object` –

A GESTrackElement

Returns ( [transfer: none]) –

The nleobject that object wraps.

Since : 1.6

#### GES.TrackElement.prototype.get_nleobject

    function GES.TrackElement.prototype.get_nleobject(): {
        // javascript wrapper for 'ges_track_element_get_nleobject'
    }

Get the nleobject that this element wraps.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

Returns (Gst.Element) –

The nleobject that object wraps.

Since : 1.6

#### GES.TrackElement.get_nleobject

    def GES.TrackElement.get_nleobject (self):
        #python wrapper for 'ges_track_element_get_nleobject'

Get the nleobject that this element wraps.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

Returns (Gst.Element) –

The nleobject that object wraps.

Since : 1.6

#### ges_track_element_get_track

    GESTrack *
    ges_track_element_get_track (GESTrackElement * object)

Get the track for the element.

Parameters:

`object` –

A GESTrackElement

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

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

#### GES.TrackElement.prototype.get_track

    function GES.TrackElement.prototype.get_track(): {
        // javascript wrapper for 'ges_track_element_get_track'
    }

Get the track for the element.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

Returns (GES.Track) –

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

#### GES.TrackElement.get_track

    def GES.TrackElement.get_track (self):
        #python wrapper for 'ges_track_element_get_track'

Get the track for the element.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

Returns (GES.Track) –

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

#### ges_track_element_get_track_type

    GESTrackType
    ges_track_element_get_track_type (GESTrackElement * object)

Gets the track-type for the element.

Parameters:

`object` –

A GESTrackElement

Returns –

The track-type of object.

#### GES.TrackElement.prototype.get_track_type

    function GES.TrackElement.prototype.get_track_type(): {
        // javascript wrapper for 'ges_track_element_get_track_type'
    }

Gets the track-type for the element.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

Returns (GES.TrackType) –

The track-type of object.

#### GES.TrackElement.get_track_type

    def GES.TrackElement.get_track_type (self):
        #python wrapper for 'ges_track_element_get_track_type'

Gets the track_type for the element.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

Returns (GES.TrackType) –

The track-type of object.

#### ges_track_element_has_internal_source

    gboolean
    ges_track_element_has_internal_source (GESTrackElement * object)

Gets has-internal-source for the element.

Parameters:

`object` –

A GESTrackElement

Returns –

TRUE if object can have its 'internal time' properties set.

Since : 1.18

#### GES.TrackElement.prototype.has_internal_source

    function GES.TrackElement.prototype.has_internal_source(): {
        // javascript wrapper for 'ges_track_element_has_internal_source'
    }

Gets has-internal-source for the element.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

Returns (Number) –

true if object can have its 'internal time' properties set.

Since : 1.18

#### GES.TrackElement.has_internal_source

    def GES.TrackElement.has_internal_source (self):
        #python wrapper for 'ges_track_element_has_internal_source'

Gets has_internal_source for the element.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

Returns (bool) –

True if object can have its 'internal time' properties set.

Since : 1.18

#### ges_track_element_is_active

    gboolean
    ges_track_element_is_active (GESTrackElement * object)

Gets active for the element.

Parameters:

`object` –

A GESTrackElement

Returns –

TRUE if object is active in its track.

#### GES.TrackElement.prototype.is_active

    function GES.TrackElement.prototype.is_active(): {
        // javascript wrapper for 'ges_track_element_is_active'
    }

Gets active for the element.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

Returns (Number) –

true if object is active in its track.

#### GES.TrackElement.is_active

    def GES.TrackElement.is_active (self):
        #python wrapper for 'ges_track_element_is_active'

Gets active for the element.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

Returns (bool) –

True if object is active in its track.

#### ges_track_element_is_core

    gboolean
    ges_track_element_is_core (GESTrackElement * object)

Get whether the given track element is a core track element. That is, it was created by the create_track_elements GESClipClass method for some GESClip.

Note that such a track element can only be added to a clip that shares the same GESAsset as the clip that created it. For example, you are allowed to move core children between clips that resulted from ges_container_ungroup, but you could not move the core child from a GESUriClip to a GESTitleClip or another GESUriClip with a different uri.

Moreover, if a core track element is added to a clip, it will always be added as a core child. Therefore, if this returns TRUE, then element will be a core child of its parent clip.

Parameters:

`object` –

A GESTrackElement

Returns –

TRUE if element is a core track element.

Since : 1.18

#### GES.TrackElement.prototype.is_core

    function GES.TrackElement.prototype.is_core(): {
        // javascript wrapper for 'ges_track_element_is_core'
    }

Get whether the given track element is a core track element. That is, it was created by the create_track_elements GES.ClipClass method for some GES.Clip.

Note that such a track element can only be added to a clip that shares the same GES.Asset as the clip that created it. For example, you are allowed to move core children between clips that resulted from GES.Container.prototype.ungroup, but you could not move the core child from a GES.UriClip to a GES.TitleClip or another GES.UriClip with a different uri.

Moreover, if a core track element is added to a clip, it will always be added as a core child. Therefore, if this returns true, then element will be a core child of its parent clip.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

Returns (Number) –

true if element is a core track element.

Since : 1.18

#### GES.TrackElement.is_core

    def GES.TrackElement.is_core (self):
        #python wrapper for 'ges_track_element_is_core'

Get whether the given track element is a core track element. That is, it was created by the create_track_elements GES.ClipClass method for some GES.Clip.

Note that such a track element can only be added to a clip that shares the same GES.Asset as the clip that created it. For example, you are allowed to move core children between clips that resulted from GES.Container.ungroup, but you could not move the core child from a GES.UriClip to a GES.TitleClip or another GES.UriClip with a different uri.

Moreover, if a core track element is added to a clip, it will always be added as a core child. Therefore, if this returns True, then element will be a core child of its parent clip.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

Returns (bool) –

True if element is a core track element.

Since : 1.18

#### ges_track_element_list_children_properties

    GParamSpec **
    ges_track_element_list_children_properties (GESTrackElement * object,
                                                guint * n_properties)

Gets an array of GParamSpec* for all configurable properties of the children of object.

Parameters:

`object` –

The GESTrackElement to get the list of children properties from

`n_properties` ( [out]) –

return location for the length of the returned array

Returns ( [transfer: full][array length=n_properties]) –

An array of GParamSpec* which should be freed after use or NULL if something went wrong.

deprecated : Use #ges_timeline_element_list_children_properties

#### GES.TrackElement.prototype.list_children_properties

    function GES.TrackElement.prototype.list_children_properties(): {
        // javascript wrapper for 'ges_track_element_list_children_properties'
    }

Gets an array of GObject.ParamSpec* for all configurable properties of the children of object.

Parameters:

`object` (GES.TrackElement) –

The GES.TrackElement to get the list of children properties from

Returns a tuple made of:

([ GObject.ParamSpec ] ) –

An array of GObject.ParamSpec* which should be freed after use or null if something went wrong.

`n_properties` (Number ) –

An array of GObject.ParamSpec* which should be freed after use or null if something went wrong.

deprecated : Use #ges_timeline_element_list_children_properties

#### GES.TrackElement.list_children_properties

    def GES.TrackElement.list_children_properties (self):
        #python wrapper for 'ges_track_element_list_children_properties'

Gets an array of GObject.ParamSpec* for all configurable properties of the children of object.

Parameters:

`object` (GES.TrackElement) –

The GES.TrackElement to get the list of children properties from

Returns a tuple made of:

([ GObject.ParamSpec ] ) –

An array of GObject.ParamSpec* which should be freed after use or None if something went wrong.

`n_properties` (int ) –

An array of GObject.ParamSpec* which should be freed after use or None if something went wrong.

deprecated : Use #ges_timeline_element_list_children_properties

#### ges_track_element_lookup_child

    gboolean
    ges_track_element_lookup_child (GESTrackElement * object,
                                    const gchar * prop_name,
                                    GstElement ** element,
                                    GParamSpec ** pspec)

Looks up which element and pspec would be effected by the given name. If various contained elements have this property name you will get the first one, unless you specify the class name in name.

Parameters:

`object` –

Object to lookup the property in

`prop_name` –

Name of the property to look up. You can specify the name of the class as such: "ClassName::property-name", to guarantee that you get the proper GParamSpec in case various GstElement-s contain the same property name. If you don't do so, you will get the first element found, having this property and the and the corresponding GParamSpec.

`element` ( [out][allow-none][transfer: full]) –

pointer to a GstElement that takes the real object to set property on

`pspec` ( [out][allow-none][transfer: full]) –

pointer to take the specification describing the property

Returns –

TRUE if element and pspec could be found. FALSE otherwise. In that case the values for pspec and element are not modified. Unref element after usage.

deprecated : Use #ges_timeline_element_lookup_child

#### GES.TrackElement.prototype.lookup_child

    function GES.TrackElement.prototype.lookup_child(prop_name: String): {
        // javascript wrapper for 'ges_track_element_lookup_child'
    }

Looks up which element and pspec would be effected by the given name. If various contained elements have this property name you will get the first one, unless you specify the class name in name.

Parameters:

`object` (GES.TrackElement) –

Object to lookup the property in

`prop_name` (String) –

Name of the property to look up. You can specify the name of the class as such: "ClassName::property-name", to guarantee that you get the proper GParamSpec in case various GstElement-s contain the same property name. If you don't do so, you will get the first element found, having this property and the and the corresponding GParamSpec.

Returns a tuple made of:

(Number ) –

TRUE if element and pspec could be found. FALSE otherwise. In that case the values for pspec and element are not modified. Unref element after usage.

`element` (Gst.Element ) –

TRUE if element and pspec could be found. FALSE otherwise. In that case the values for pspec and element are not modified. Unref element after usage.

`pspec` (GObject.ParamSpec ) –

TRUE if element and pspec could be found. FALSE otherwise. In that case the values for pspec and element are not modified. Unref element after usage.

deprecated : Use #ges_timeline_element_lookup_child

#### GES.TrackElement.lookup_child

    def GES.TrackElement.lookup_child (self, prop_name):
        #python wrapper for 'ges_track_element_lookup_child'

Looks up which element and pspec would be effected by the given name. If various contained elements have this property name you will get the first one, unless you specify the class name in name.

Parameters:

`object` (GES.TrackElement) –

Object to lookup the property in

`prop_name` (str) –

Name of the property to look up. You can specify the name of the class as such: "ClassName::property-name", to guarantee that you get the proper GParamSpec in case various GstElement-s contain the same property name. If you don't do so, you will get the first element found, having this property and the and the corresponding GParamSpec.

Returns a tuple made of:

(bool ) –

TRUE if element and pspec could be found. FALSE otherwise. In that case the values for pspec and element are not modified. Unref element after usage.

`element` (Gst.Element ) –

TRUE if element and pspec could be found. FALSE otherwise. In that case the values for pspec and element are not modified. Unref element after usage.

`pspec` (GObject.ParamSpec ) –

TRUE if element and pspec could be found. FALSE otherwise. In that case the values for pspec and element are not modified. Unref element after usage.

deprecated : Use #ges_timeline_element_lookup_child

#### ges_track_element_remove_control_binding

    gboolean
    ges_track_element_remove_control_binding (GESTrackElement * object,
                                              const gchar * property_name)

Removes the GstControlBinding that was created for the specified child property of the track element using ges_track_element_set_control_source. The given property_name must be the same name of the child property that was passed to ges_track_element_set_control_source.

Parameters:

`object` –

A GESTrackElement

`property_name` –

The name of the child property to remove the control binding from

Returns –

TRUE if the control binding was removed from the specified child property of object, or FALSE if an error occurred.

#### GES.TrackElement.prototype.remove_control_binding

    function GES.TrackElement.prototype.remove_control_binding(property_name: String): {
        // javascript wrapper for 'ges_track_element_remove_control_binding'
    }

Removes the Gst.ControlBinding that was created for the specified child property of the track element using GES.TrackElement.prototype.set_control_source. The given property_name must be the same name of the child property that was passed to GES.TrackElement.prototype.set_control_source.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

`property_name` (String) –

The name of the child property to remove the control binding from

Returns (Number) –

true if the control binding was removed from the specified child property of object, or false if an error occurred.

#### GES.TrackElement.remove_control_binding

    def GES.TrackElement.remove_control_binding (self, property_name):
        #python wrapper for 'ges_track_element_remove_control_binding'

Removes the Gst.ControlBinding that was created for the specified child property of the track element using GES.TrackElement.set_control_source. The given property_name must be the same name of the child property that was passed to GES.TrackElement.set_control_source.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

`property_name` (str) –

The name of the child property to remove the control binding from

Returns (bool) –

True if the control binding was removed from the specified child property of object, or False if an error occurred.

#### ges_track_element_set_active

    gboolean
    ges_track_element_set_active (GESTrackElement * object,
                                  gboolean active)

Sets active for the element.

Parameters:

`object` –

A GESTrackElement

`active` –

Whether object should be active in its track

Returns –

TRUE if the property was toggled.

#### GES.TrackElement.prototype.set_active

    function GES.TrackElement.prototype.set_active(active: Number): {
        // javascript wrapper for 'ges_track_element_set_active'
    }

Sets active for the element.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

`active` (Number) –

Whether object should be active in its track

Returns (Number) –

true if the property was toggled.

#### GES.TrackElement.set_active

    def GES.TrackElement.set_active (self, active):
        #python wrapper for 'ges_track_element_set_active'

Sets active for the element.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

`active` (bool) –

Whether object should be active in its track

Returns (bool) –

True if the property was toggled.

#### ges_track_element_set_auto_clamp_control_sources

    ges_track_element_set_auto_clamp_control_sources (GESTrackElement * object,
                                                      gboolean auto_clamp)

Sets auto-clamp-control-sources. If set to TRUE, this will immediately clamp all the control sources.

Parameters:

`object` –

A GESTrackElement

`auto_clamp` –

Whether to automatically clamp the control sources for the child properties of object

Since : 1.18

#### GES.TrackElement.prototype.set_auto_clamp_control_sources

    function GES.TrackElement.prototype.set_auto_clamp_control_sources(auto_clamp: Number): {
        // javascript wrapper for 'ges_track_element_set_auto_clamp_control_sources'
    }

Sets auto-clamp-control-sources. If set to true, this will immediately clamp all the control sources.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

`auto_clamp` (Number) –

Whether to automatically clamp the control sources for the child properties of object

Since : 1.18

#### GES.TrackElement.set_auto_clamp_control_sources

    def GES.TrackElement.set_auto_clamp_control_sources (self, auto_clamp):
        #python wrapper for 'ges_track_element_set_auto_clamp_control_sources'

Sets auto_clamp_control_sources. If set to True, this will immediately clamp all the control sources.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

`auto_clamp` (bool) –

Whether to automatically clamp the control sources for the child properties of object

Since : 1.18

#### ges_track_element_set_child_properties

    ges_track_element_set_child_properties (GESTrackElement * object,
                                            const gchar * first_property_name,
                                            ... ...)

Sets a property of a child of object. If there are various child elements that have the same property name, you can distinguish them using the following syntax: 'ClasseName::property_name' as property name. If you don't, the corresponding property of the first element found will be set.

Parameters:

`object` –

The GESTrackElement parent object

`first_property_name` –

The name of the first property to set

`...` –

value for the first property, followed optionally by more name/return location pairs, followed by NULL

deprecated : Use #ges_timeline_element_set_child_properties

#### ges_track_element_set_child_property

    gboolean
    ges_track_element_set_child_property (GESTrackElement * object,
                                          const gchar * property_name,
                                          GValue * value)

Sets a property of a GstElement contained in object.

Note that ges_track_element_set_child_property is really intended for language bindings, ges_track_element_set_child_properties is much more convenient for C programming.

Parameters:

`object` –

The origin GESTrackElement

`property_name` –

The name of the property

`value` –

The value

Returns –

TRUE if the property was set, FALSE otherwise.

deprecated : use #ges_timeline_element_set_child_property instead

#### ges_track_element_set_child_property_by_pspec

    ges_track_element_set_child_property_by_pspec (GESTrackElement * object,
                                                   GParamSpec * pspec,
                                                   GValue * value)

Sets a property of a child of object.

Parameters:

`object` –

A GESTrackElement

`pspec` –

The GParamSpec that specifies the property you want to set

`value` –

The value

deprecated : Use #ges_timeline_element_set_child_property_by_spec

#### ges_track_element_set_child_property_valist

    ges_track_element_set_child_property_valist (GESTrackElement * object,
                                                 const gchar * first_property_name,
                                                 va_list var_args)

Sets a property of a child of object. If there are various child elements that have the same property name, you can distinguish them using the following syntax: 'ClasseName::property_name' as property name. If you don't, the corresponding property of the first element found will be set.

Parameters:

`object` –

The GESTrackElement parent object

`first_property_name` –

The name of the first property to set

`var_args` –

Value for the first property, followed optionally by more name/return location pairs, followed by NULL

deprecated : Use #ges_timeline_element_set_child_property_valist

#### ges_track_element_set_control_source

    gboolean
    ges_track_element_set_control_source (GESTrackElement * object,
                                          GstControlSource * source,
                                          const gchar * property_name,
                                          const gchar * binding_type)

Creates a GstControlBinding for the specified child property of the track element using the given control source. The given property_name should refer to an existing child property of the track element, as used in ges_timeline_element_lookup_child.

If binding_type is "direct", then the control binding is created with gst_direct_control_binding_new using the given control source. If binding_type is "direct-absolute", it is created with gst_direct_control_binding_new_absolute instead.

Parameters:

`object` –

A GESTrackElement

`source` –

The control source to bind the child property to

`property_name` –

The name of the child property to control

`binding_type` –

The type of binding to create ("direct" or "direct-absolute")

Returns –

TRUE if the specified child property could be bound to source, or FALSE if an error occurred.

#### GES.TrackElement.prototype.set_control_source

    function GES.TrackElement.prototype.set_control_source(source: Gst.ControlSource, property_name: String, binding_type: String): {
        // javascript wrapper for 'ges_track_element_set_control_source'
    }

Creates a Gst.ControlBinding for the specified child property of the track element using the given control source. The given property_name should refer to an existing child property of the track element, as used in GES.TimelineElement.prototype.lookup_child.

If binding_type is "direct", then the control binding is created with GstController.DirectControlBinding.prototype.new using the given control source. If binding_type is "direct-absolute", it is created with GstController.DirectControlBinding.prototype.new_absolute instead.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

`source` (Gst.ControlSource) –

The control source to bind the child property to

`property_name` (String) –

The name of the child property to control

`binding_type` (String) –

The type of binding to create ("direct" or "direct-absolute")

Returns (Number) –

true if the specified child property could be bound to source, or false if an error occurred.

#### GES.TrackElement.set_control_source

    def GES.TrackElement.set_control_source (self, source, property_name, binding_type):
        #python wrapper for 'ges_track_element_set_control_source'

Creates a Gst.ControlBinding for the specified child property of the track element using the given control source. The given property_name should refer to an existing child property of the track element, as used in GES.TimelineElement.lookup_child.

If binding_type is "direct", then the control binding is created with GstController.DirectControlBinding.new using the given control source. If binding_type is "direct-absolute", it is created with GstController.DirectControlBinding.new_absolute instead.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

`source` (Gst.ControlSource) –

The control source to bind the child property to

`property_name` (str) –

The name of the child property to control

`binding_type` (str) –

The type of binding to create ("direct" or "direct-absolute")

Returns (bool) –

True if the specified child property could be bound to source, or False if an error occurred.

#### ges_track_element_set_has_internal_source

    gboolean
    ges_track_element_set_has_internal_source (GESTrackElement * object,
                                               gboolean has_internal_source)

Sets has-internal-source for the element. If this is set to FALSE, this method will also set the in-point of the element to 0 and its max-duration to GST_CLOCK_TIME_NONE.

Parameters:

`object` –

A GESTrackElement

`has_internal_source` –

Whether the object should be allowed to have its 'internal time' properties set.

Returns –

FALSE if has_internal_source is forbidden for object and TRUE in any other case.

Since : 1.18

#### GES.TrackElement.prototype.set_has_internal_source

    function GES.TrackElement.prototype.set_has_internal_source(has_internal_source: Number): {
        // javascript wrapper for 'ges_track_element_set_has_internal_source'
    }

Sets has-internal-source for the element. If this is set to false, this method will also set the in-point of the element to 0 and its max-duration to Gst.CLOCK_TIME_NONE.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

`has_internal_source` (Number) –

Whether the object should be allowed to have its 'internal time' properties set.

Returns (Number) –

false if has_internal_source is forbidden for object and true in any other case.

Since : 1.18

#### GES.TrackElement.set_has_internal_source

    def GES.TrackElement.set_has_internal_source (self, has_internal_source):
        #python wrapper for 'ges_track_element_set_has_internal_source'

Sets has_internal_source for the element. If this is set to False, this method will also set the in_point of the element to 0 and its max_duration to Gst.CLOCK_TIME_NONE.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

`has_internal_source` (bool) –

Whether the object should be allowed to have its 'internal time' properties set.

Returns (bool) –

False if has_internal_source is forbidden for object and True in any other case.

Since : 1.18

#### ges_track_element_set_track_type

    ges_track_element_set_track_type (GESTrackElement * object,
                                      GESTrackType type)

Sets the track-type for the element.

Parameters:

`object` –

A GESTrackElement

`type` –

The new track-type for object

#### GES.TrackElement.prototype.set_track_type

    function GES.TrackElement.prototype.set_track_type(type: GES.TrackType): {
        // javascript wrapper for 'ges_track_element_set_track_type'
    }

Sets the track-type for the element.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

`type` (GES.TrackType) –

The new track-type for object

#### GES.TrackElement.set_track_type

    def GES.TrackElement.set_track_type (self, type):
        #python wrapper for 'ges_track_element_set_track_type'

Sets the track_type for the element.

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

`type` (GES.TrackType) –

The new track-type for object

### Signals

#### control-binding-added

    control_binding_added_callback (GESTrackElement * self,
                                    GstControlBinding * control_binding,
                                    gpointer user_data)

This is emitted when a control binding is added to a child property of the track element.

Parameters:

`self` –
No description available
`control_binding` –

The control binding that has been added

`user_data` –
No description available

Flags: Run First

#### control-binding-added

    function control_binding_added_callback(self: GES.TrackElement, control_binding: Gst.ControlBinding, user_data: Object): {
        // javascript callback for the 'control-binding-added' signal
    }

This is emitted when a control binding is added to a child property of the track element.

Parameters:

`self` (GES.TrackElement) –
No description available
`control_binding` (Gst.ControlBinding) –

The control binding that has been added

`user_data` (Object) –
No description available

Flags: Run First

#### control-binding-added

    def control_binding_added_callback (self, control_binding, *user_data):
        #python callback for the 'control-binding-added' signal

This is emitted when a control binding is added to a child property of the track element.

Parameters:

`self` (GES.TrackElement) –
No description available
`control_binding` (Gst.ControlBinding) –

The control binding that has been added

`user_data` (variadic) –
No description available

Flags: Run First

#### control-binding-removed

    control_binding_removed_callback (GESTrackElement * self,
                                      GstControlBinding * control_binding,
                                      gpointer user_data)

This is emitted when a control binding is removed from a child property of the track element.

Parameters:

`self` –
No description available
`control_binding` –

The control binding that has been removed

`user_data` –
No description available

Flags: Run First

#### control-binding-removed

    function control_binding_removed_callback(self: GES.TrackElement, control_binding: Gst.ControlBinding, user_data: Object): {
        // javascript callback for the 'control-binding-removed' signal
    }

This is emitted when a control binding is removed from a child property of the track element.

Parameters:

`self` (GES.TrackElement) –
No description available
`control_binding` (Gst.ControlBinding) –

The control binding that has been removed

`user_data` (Object) –
No description available

Flags: Run First

#### control-binding-removed

    def control_binding_removed_callback (self, control_binding, *user_data):
        #python callback for the 'control-binding-removed' signal

This is emitted when a control binding is removed from a child property of the track element.

Parameters:

`self` (GES.TrackElement) –
No description available
`control_binding` (Gst.ControlBinding) –

The control binding that has been removed

`user_data` (variadic) –
No description available

Flags: Run First

### Properties

#### active

    “active” gboolean

Whether the effect of the element should be applied in its track. If set to FALSE, it will not be used in the output of the track.

Flags : Read / Write

#### active

    “active” Number

Whether the effect of the element should be applied in its track. If set to false, it will not be used in the output of the track.

Flags : Read / Write

#### active

    “self.props.active” bool

Whether the effect of the element should be applied in its track. If set to False, it will not be used in the output of the track.

Flags : Read / Write

#### auto-clamp-control-sources

    “auto-clamp-control-sources” gboolean

Whether the control sources on the element (see ges_track_element_set_control_source) will be automatically updated whenever the in-point or out-point of the element change in value.

See ges_track_element_clamp_control_source for how this is done per control source.

Default value: TRUE

Flags : Read / Write

Since : 1.18

#### auto-clamp-control-sources

    “auto-clamp-control-sources” Number

Whether the control sources on the element (see GES.TrackElement.prototype.set_control_source) will be automatically updated whenever the in-point or out-point of the element change in value.

See GES.TrackElement.prototype.clamp_control_source for how this is done per control source.

Default value: true

Flags : Read / Write

Since : 1.18

#### auto_clamp_control_sources

    “self.props.auto_clamp_control_sources” bool

Whether the control sources on the element (see GES.TrackElement.set_control_source) will be automatically updated whenever the in_point or out-point of the element change in value.

See GES.TrackElement.clamp_control_source for how this is done per control source.

Default value: True

Flags : Read / Write

Since : 1.18

#### has-internal-source

    “has-internal-source” gboolean

This property is used to determine whether the 'internal time' properties of the element have any meaning. In particular, unless this is set to TRUE, the in-point and max-duration can not be set to any value other than the default 0 and GST_CLOCK_TIME_NONE, respectively.

If an element has some internal timed source GstElement that it reads stream data from as part of its function in a GESTrack, then you'll likely want to set this to TRUE to allow the in-point and max-duration to be set.

The default value is determined by the GESTrackElementClass default_has_internal_source class property. For most GESSourceClass-es, this will be TRUE, with the exception of those that have a potentially static source, such as GESImageSourceClass and GESTitleSourceClass. Otherwise, this will usually be FALSE.

For most GESOperation-s you will likely want to leave this set to FALSE. The exception may be for an operation that reads some stream data from some private internal source as part of manipulating the input data from the usual linked upstream GESTrackElement.

For example, you may want to set this to TRUE for a GES_TRACK_TYPE_VIDEO operation that wraps a textoverlay that reads from a subtitle file and places its text on top of the received video data. The in-point of the element would be used to shift the initial seek time on the textoverlay away from 0, and the max-duration could be set to reflect the time at which the subtitle file runs out of data.

Note that GES can not support track elements that have both internal content and manipulate the timing of their data streams (time effects).

Flags : Read / Write

Since : 1.18

#### has-internal-source

    “has-internal-source” Number

This property is used to determine whether the 'internal time' properties of the element have any meaning. In particular, unless this is set to true, the in-point and max-duration can not be set to any value other than the default 0 and Gst.CLOCK_TIME_NONE, respectively.

If an element has some internal timed source Gst.Element that it reads stream data from as part of its function in a GES.Track, then you'll likely want to set this to true to allow the in-point and max-duration to be set.

The default value is determined by the GES.TrackElementClass default_has_internal_source class property. For most GES.SourceClass-es, this will be true, with the exception of those that have a potentially static source, such as GES.ImageSourceClass and GES.TitleSourceClass. Otherwise, this will usually be false.

For most GES.Operation-s you will likely want to leave this set to false. The exception may be for an operation that reads some stream data from some private internal source as part of manipulating the input data from the usual linked upstream GES.TrackElement.

For example, you may want to set this to true for a GES.TrackType.VIDEO operation that wraps a textoverlay (not introspectable) that reads from a subtitle file and places its text on top of the received video data. The in-point of the element would be used to shift the initial seek time on the textoverlay (not introspectable) away from 0, and the max-duration could be set to reflect the time at which the subtitle file runs out of data.

Note that GES can not support track elements that have both internal content and manipulate the timing of their data streams (time effects).

Flags : Read / Write

Since : 1.18

#### has_internal_source

    “self.props.has_internal_source” bool

This property is used to determine whether the 'internal time' properties of the element have any meaning. In particular, unless this is set to True, the in_point and max_duration can not be set to any value other than the default 0 and Gst.CLOCK_TIME_NONE, respectively.

If an element has some internal timed source Gst.Element that it reads stream data from as part of its function in a GES.Track, then you'll likely want to set this to True to allow the in_point and max_duration to be set.

The default value is determined by the GES.TrackElementClass default_has_internal_source class property. For most GES.SourceClass-es, this will be True, with the exception of those that have a potentially static source, such as GES.ImageSourceClass and GES.TitleSourceClass. Otherwise, this will usually be False.

For most GES.Operation-s you will likely want to leave this set to False. The exception may be for an operation that reads some stream data from some private internal source as part of manipulating the input data from the usual linked upstream GES.TrackElement.

For example, you may want to set this to True for a GES.TrackType.VIDEO operation that wraps a textoverlay (not introspectable) that reads from a subtitle file and places its text on top of the received video data. The in_point of the element would be used to shift the initial seek time on the textoverlay (not introspectable) away from 0, and the max_duration could be set to reflect the time at which the subtitle file runs out of data.

Note that GES can not support track elements that have both internal content and manipulate the timing of their data streams (time effects).

Flags : Read / Write

Since : 1.18

#### track

    “track” GESTrack *

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

Flags : Read

#### track

    “track” GES.Track

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

Flags : Read

#### track

    “self.props.track” GES.Track

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

Flags : Read

#### track-type

    “track-type” GESTrackType *

The track type of the element, which determines the type of track the element can be added to (see track-type). This should correspond to the type of data that the element can produce or process.

Flags : Read / Write / Construct

#### track-type

    “track-type” GES.TrackType

The track type of the element, which determines the type of track the element can be added to (see track-type). This should correspond to the type of data that the element can produce or process.

Flags : Read / Write / Construct

#### track_type

    “self.props.track_type” GES.TrackType

The track type of the element, which determines the type of track the element can be added to (see track_type). This should correspond to the type of data that the element can produce or process.

Flags : Read / Write / Construct

### Virtual Methods

#### active_changed

    active_changed (GESTrackElement * object,
                    gboolean active)

Notify when the active property changes

Parameters:

`object` –

A GESTrackElement

`active` –

Whether the element is active or not inside the nlecomposition

#### vfunc_active_changed

    function vfunc_active_changed(object: GES.TrackElement, active: Number): {
        // javascript implementation of the 'active_changed' virtual method
    }

Notify when the active property changes

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

`active` (Number) –

Whether the element is active or not inside the nlecomposition (not introspectable)

#### do_active_changed

    def do_active_changed (object, active):
        #python implementation of the 'active_changed' virtual method

Notify when the active property changes

Parameters:

`object` (GES.TrackElement) –

A GES.TrackElement

`active` (bool) –

Whether the element is active or not inside the nlecomposition (not introspectable)

#### changed

    changed (GESTrackElement * object)

Parameters:

`object` –
No description available

deprecated

#### vfunc_changed

    function vfunc_changed(object: GES.TrackElement): {
        // javascript implementation of the 'changed' virtual method
    }

Parameters:

`object` (GES.TrackElement) –
No description available

deprecated

#### do_changed

    def do_changed (object):
        #python implementation of the 'changed' virtual method

Parameters:

`object` (GES.TrackElement) –
No description available

deprecated

#### create_element

    GstElement *
    create_element (GESTrackElement * object)

Parameters:

`object` –

The GESTrackElement

Returns ( [transfer: floating]) –

the GstElement that the underlying nleobject controls.

#### vfunc_create_element

    function vfunc_create_element(object: GES.TrackElement): {
        // javascript implementation of the 'create_element' virtual method
    }

Parameters:

`object` (GES.TrackElement) –

The GES.TrackElement

Returns (Gst.Element) –

the Gst.Element that the underlying nleobject controls.

#### do_create_element

    def do_create_element (object):
        #python implementation of the 'create_element' virtual method

Parameters:

`object` (GES.TrackElement) –

The GES.TrackElement

Returns (Gst.Element) –

the Gst.Element that the underlying nleobject controls.

#### create_gnl_object

    GstElement *
    create_gnl_object (GESTrackElement * object)

Parameters:

`object` –

The GESTrackElement

Returns ( [transfer: floating]) –

the NLEObject to use in the nlecomposition

#### vfunc_create_gnl_object

    function vfunc_create_gnl_object(object: GES.TrackElement): {
        // javascript implementation of the 'create_gnl_object' virtual method
    }

Parameters:

`object` (GES.TrackElement) –

The GES.TrackElement

Returns (Gst.Element) –

the NLEObject to use in the nlecomposition (not introspectable)

#### do_create_gnl_object

    def do_create_gnl_object (object):
        #python implementation of the 'create_gnl_object' virtual method

Parameters:

`object` (GES.TrackElement) –

The GES.TrackElement

Returns (Gst.Element) –

the NLEObject to use in the nlecomposition (not introspectable)

#### list_children_properties

    GParamSpec **
    list_children_properties (GESTrackElement * object,
                              guint * n_properties)

Listing children properties is handled by ges_timeline_element_list_children_properties instead.

Parameters:

`object` –
No description available
`n_properties` –
No description available
Returns –
No description available

deprecated : 1.14: Use #GESTimelineElementClass::list_children_properties instead

#### lookup_child

    gboolean
    lookup_child (GESTrackElement * object,
                  const gchar * prop_name,
                  GstElement ** element,
                  GParamSpec ** pspec)

Parameters:

`object` –
No description available
`prop_name` –
No description available
`element` –
No description available
`pspec` –
No description available
Returns –
No description available

deprecated : 1.14: Use #GESTimelineElementClass::lookup_child instead

#### vfunc_lookup_child

    function vfunc_lookup_child(object: GES.TrackElement, prop_name: String): {
        // javascript implementation of the 'lookup_child' virtual method
    }

Parameters:

`object` (GES.TrackElement) –
No description available
`prop_name` (String) –
No description available

Returns a tuple made of:

(Number ) –
No description available
`element` (Gst.Element ) –
No description available
`pspec` (GObject.ParamSpec ) –
No description available

deprecated : 1.14: Use #GESTimelineElementClass::lookup_child instead

#### do_lookup_child

    def do_lookup_child (object, prop_name):
        #python implementation of the 'lookup_child' virtual method

Parameters:

`object` (GES.TrackElement) –
No description available
`prop_name` (str) –
No description available

Returns a tuple made of:

(bool ) –
No description available
`element` (Gst.Element ) –
No description available
`pspec` (GObject.ParamSpec ) –
No description available

deprecated : 1.14: Use #GESTimelineElementClass::lookup_child instead

## Function Macros

### GES_TRACK_ELEMENT_CLASS_DEFAULT_HAS_INTERNAL_SOURCE

    #define GES_TRACK_ELEMENT_CLASS_DEFAULT_HAS_INTERNAL_SOURCE(klass) \
      ((GES_TRACK_ELEMENT_CLASS (klass))->ABI.abi.default_has_internal_source)

What the default has-internal-source value should be for new elements from this class.

Parameters:

`klass` –

A GESTrackElementClass

## Constants

### GES_TYPE_TRACK_ELEMENT

    #define GES_TYPE_TRACK_ELEMENT ges_track_element_get_type()

Subpages:

GESVideoSource – Base Class for video sources

GESAudioSource – Base Class for audio sources

GESAudioTestSource – produce a simple test waveform or silence

GESAudioUriSource – outputs a single audio stream from a given file

GESVideoUriSource – outputs a single video stream from a given file

GESVideoTestSource – produce solid colors and patterns, possibly with a time overlay.

GESTitleSource – render stand-alone text titles

GESTextOverlay – render text onto another video stream in a GESLayer

The results of the search are