# GstTimedValueControlSource

Base class for GstControlSource that use time-stamped values.

When overriding bind, chain up first to give this bind implementation a chance to setup things.

All functions are MT-safe.

## GstControlPoint

An internal structure for value+time and various temporary values used for interpolation. This "inherits" from GstTimedValue.

### Members

`timestamp` (GstClockTime) –

timestamp of the value change

`value` (gdouble) –

the new value

`cache.cubic.h` (gdouble) –
No description available
`cache.cubic.z` (gdouble) –
No description available
`c1s` (gdouble) –
No description available
`c2s` (gdouble) –
No description available
`c3s` (gdouble) –
No description available
`_gst_reserved` (guint8 *) –
No description available

## GstController.ControlPoint

An internal structure for value+time and various temporary values used for interpolation. This "inherits" from GstTimedValue.

### Members

`timestamp` (Number) –

timestamp of the value change

`value` (Number) –

the new value

## GstController.ControlPoint

An internal structure for value+time and various temporary values used for interpolation. This "inherits" from GstTimedValue.

### Members

`timestamp` (int) –

timestamp of the value change

`value` (float) –

the new value

### Methods

#### gst_control_point_copy

    GstControlPoint *
    gst_control_point_copy (GstControlPoint * cp)

Copies a GstControlPoint

Parameters:

`cp` –

The control point to copy

Returns ( [transfer: full]) –

A copy of cp

#### GstController.ControlPoint.prototype.copy

    function GstController.ControlPoint.prototype.copy(): {
        // javascript wrapper for 'gst_control_point_copy'
    }

Copies a GstController.ControlPoint

Parameters:

`cp` (GstController.ControlPoint) –

The control point to copy

Returns (GstController.ControlPoint) –

A copy of cp

#### GstController.ControlPoint.copy

    def GstController.ControlPoint.copy (self):
        #python wrapper for 'gst_control_point_copy'

Copies a GstController.ControlPoint

Parameters:

`cp` (GstController.ControlPoint) –

The control point to copy

Returns (GstController.ControlPoint) –

A copy of cp

#### gst_control_point_free

    gst_control_point_free (GstControlPoint * cp)

Frees all data allocated by a GstControlPoint instance.

Parameters:

`cp` –

the object to free

#### GstController.ControlPoint.prototype.free

    function GstController.ControlPoint.prototype.free(): {
        // javascript wrapper for 'gst_control_point_free'
    }

Frees all data allocated by a GstController.ControlPoint instance.

Parameters:

`cp` (GstController.ControlPoint) –

the object to free

#### GstController.ControlPoint.free

    def GstController.ControlPoint.free (self):
        #python wrapper for 'gst_control_point_free'

Frees all data allocated by a GstController.ControlPoint instance.

Parameters:

`cp` (GstController.ControlPoint) –

the object to free

## GstTimedValueControlSource

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstControlSource
                    ╰──GstTimedValueControlSource
                        ╰──GstInterpolationControlSource
                        ╰──GstTriggerControlSource

The instance structure of GstControlSource.

### Members

`parent` (GstControlSource) –
No description available
`lock` (GMutex) –
No description available
`values` (GSequence *) –
No description available
`nvalues` (gint) –
No description available
`valid_cache` (gboolean) –
No description available

### Class structure

#### GstTimedValueControlSourceClass

##### Fields

`parent_class` (GstControlSourceClass) –
No description available

### GstController.TimedValueControlSourceClass

##### Attributes

`parent_class` (Gst.ControlSourceClass) –
No description available

### GstController.TimedValueControlSourceClass

##### Attributes

`parent_class` (Gst.ControlSourceClass) –
No description available

## GstController.TimedValueControlSource

    GObject.Object
        ╰──GObject.InitiallyUnowned
            ╰──Gst.Object
                ╰──Gst.ControlSource
                    ╰──GstController.TimedValueControlSource
                        ╰──GstController.InterpolationControlSource
                        ╰──GstController.TriggerControlSource

The instance structure of Gst.ControlSource.

### Members

`parent` (Gst.ControlSource) –
No description available
`lock` (GLib.Mutex) –
No description available
`values` (GLib.Sequence) –
No description available
`nvalues` (Number) –
No description available
`valid_cache` (Number) –
No description available

## GstController.TimedValueControlSource

    GObject.Object
        ╰──GObject.InitiallyUnowned
            ╰──Gst.Object
                ╰──Gst.ControlSource
                    ╰──GstController.TimedValueControlSource
                        ╰──GstController.InterpolationControlSource
                        ╰──GstController.TriggerControlSource

The instance structure of Gst.ControlSource.

### Members

`parent` (Gst.ControlSource) –
No description available
`lock` (GLib.Mutex) –
No description available
`values` (GLib.Sequence) –
No description available
`nvalues` (int) –
No description available
`valid_cache` (bool) –
No description available

### Methods

#### gst_timed_value_control_source_find_control_point_iter

    GSequenceIter *
    gst_timed_value_control_source_find_control_point_iter (GstTimedValueControlSource * self,
                                                            GstClockTime timestamp)

Find last value before given timestamp in control point list. If all values in the control point list come after the given timestamp or no values exist, NULL is returned.

For use in control source implementations.

Parameters:

`self` –

the control source to search in

`timestamp` –

the search key

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

the found GSequenceIter or NULL

#### GstController.TimedValueControlSource.prototype.find_control_point_iter

    function GstController.TimedValueControlSource.prototype.find_control_point_iter(timestamp: Number): {
        // javascript wrapper for 'gst_timed_value_control_source_find_control_point_iter'
    }

Find last value before given timestamp in control point list. If all values in the control point list come after the given timestamp or no values exist, null is returned.

For use in control source implementations.

Parameters:

`self` (GstController.TimedValueControlSource) –

the control source to search in

`timestamp` (Number) –

the search key

Returns (GLib.SequenceIter) –

the found GLib.SequenceIter or null

#### GstController.TimedValueControlSource.find_control_point_iter

    def GstController.TimedValueControlSource.find_control_point_iter (self, timestamp):
        #python wrapper for 'gst_timed_value_control_source_find_control_point_iter'

Find last value before given timestamp in control point list. If all values in the control point list come after the given timestamp or no values exist, None is returned.

For use in control source implementations.

Parameters:

`self` (GstController.TimedValueControlSource) –

the control source to search in

`timestamp` (int) –

the search key

Returns (GLib.SequenceIter) –

the found GLib.SequenceIter or None

#### gst_timed_value_control_source_get_all

    GList *
    gst_timed_value_control_source_get_all (GstTimedValueControlSource * self)

Returns a read-only copy of the list of GstControlPoint for the given property. Free the list after done with it.

Parameters:

`self` –

the GstTimedValueControlSource to get the list from

Returns ( [transfer: container][element-type GstControlPoint]) –

a copy of the list, or NULL if the property isn't handled by the controller

deprecated : 1.28: Use gst_timed_value_control_source_list_control_points() instead.

#### GstController.TimedValueControlSource.prototype.get_all

    function GstController.TimedValueControlSource.prototype.get_all(): {
        // javascript wrapper for 'gst_timed_value_control_source_get_all'
    }

Returns a read-only copy of the list of GstController.ControlPoint for the given property. Free the list after done with it.

Parameters:

`self` (GstController.TimedValueControlSource) –

the GstController.TimedValueControlSource to get the list from

Returns ([ GstController.ControlPoint ]) –

a copy of the list, or null if the property isn't handled by the controller

deprecated : 1.28: Use gst_timed_value_control_source_list_control_points() instead.

#### GstController.TimedValueControlSource.get_all

    def GstController.TimedValueControlSource.get_all (self):
        #python wrapper for 'gst_timed_value_control_source_get_all'

Returns a read-only copy of the list of GstController.ControlPoint for the given property. Free the list after done with it.

Parameters:

`self` (GstController.TimedValueControlSource) –

the GstController.TimedValueControlSource to get the list from

Returns ([ GstController.ControlPoint ]) –

a copy of the list, or None if the property isn't handled by the controller

deprecated : 1.28: Use gst_timed_value_control_source_list_control_points() instead.

#### gst_timed_value_control_source_get_count

    gint
    gst_timed_value_control_source_get_count (GstTimedValueControlSource * self)

Get the number of control points that are set.

Parameters:

`self` –

the GstTimedValueControlSource to get the number of values from

Returns –

the number of control points that are set.

#### GstController.TimedValueControlSource.prototype.get_count

    function GstController.TimedValueControlSource.prototype.get_count(): {
        // javascript wrapper for 'gst_timed_value_control_source_get_count'
    }

Get the number of control points that are set.

Parameters:

`self` (GstController.TimedValueControlSource) –

the GstController.TimedValueControlSource to get the number of values from

Returns (Number) –

the number of control points that are set.

#### GstController.TimedValueControlSource.get_count

    def GstController.TimedValueControlSource.get_count (self):
        #python wrapper for 'gst_timed_value_control_source_get_count'

Get the number of control points that are set.

Parameters:

`self` (GstController.TimedValueControlSource) –

the GstController.TimedValueControlSource to get the number of values from

Returns (int) –

the number of control points that are set.

#### gst_timed_value_control_source_list_control_points

    GstTimedValue *
    gst_timed_value_control_source_list_control_points (GstTimedValueControlSource * self,
                                                        gsize * n_control_points)

Returns an array of GstTimedValue representing the control points that have been set on this control source. To modify the value of a control point, use gst_timed_value_control_source_set.

Parameters:

`self` –

the GstTimedValueControlSource to get the list from

`n_control_points` ( [out]) –

location to store the number of control points

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

an array of control points, or NULL if no control points are set.

Since : 1.28

#### GstController.TimedValueControlSource.prototype.list_control_points

    function GstController.TimedValueControlSource.prototype.list_control_points(): {
        // javascript wrapper for 'gst_timed_value_control_source_list_control_points'
    }

Returns an array of Gst.TimedValue representing the control points that have been set on this control source. To modify the value of a control point, use GstController.TimedValueControlSource.prototype.set.

Parameters:

`self` (GstController.TimedValueControlSource) –

the GstController.TimedValueControlSource to get the list from

Returns a tuple made of:

([ Gst.TimedValue ] ) –

an array of control points, or null if no control points are set.

`n_control_points` (Number ) –

an array of control points, or null if no control points are set.

Since : 1.28

#### GstController.TimedValueControlSource.list_control_points

    def GstController.TimedValueControlSource.list_control_points (self):
        #python wrapper for 'gst_timed_value_control_source_list_control_points'

Returns an array of Gst.TimedValue representing the control points that have been set on this control source. To modify the value of a control point, use GstController.TimedValueControlSource.set.

Parameters:

`self` (GstController.TimedValueControlSource) –

the GstController.TimedValueControlSource to get the list from

Returns a tuple made of:

([ Gst.TimedValue ] ) –

an array of control points, or None if no control points are set.

`n_control_points` (int ) –

an array of control points, or None if no control points are set.

Since : 1.28

#### gst_timed_value_control_source_set

    gboolean
    gst_timed_value_control_source_set (GstTimedValueControlSource * self,
                                        GstClockTime timestamp,
                                        const gdouble value)

Set the value of given controller-handled property at a certain time.

Parameters:

`self` –

the GstTimedValueControlSource object

`timestamp` –

the time the control-change is scheduled for

`value` –

the control-value

Returns –

FALSE if the values couldn't be set, TRUE otherwise.

#### GstController.TimedValueControlSource.prototype.set

    function GstController.TimedValueControlSource.prototype.set(timestamp: Number, value: Number): {
        // javascript wrapper for 'gst_timed_value_control_source_set'
    }

Set the value of given controller-handled property at a certain time.

Parameters:

`self` (GstController.TimedValueControlSource) –

the GstController.TimedValueControlSource object

`timestamp` (Number) –

the time the control-change is scheduled for

`value` (Number) –

the control-value

Returns (Number) –

FALSE if the values couldn't be set, TRUE otherwise.

#### GstController.TimedValueControlSource.set

    def GstController.TimedValueControlSource.set (self, timestamp, value):
        #python wrapper for 'gst_timed_value_control_source_set'

Set the value of given controller-handled property at a certain time.

Parameters:

`self` (GstController.TimedValueControlSource) –

the GstController.TimedValueControlSource object

`timestamp` (int) –

the time the control-change is scheduled for

`value` (float) –

the control-value

Returns (bool) –

FALSE if the values couldn't be set, TRUE otherwise.

#### gst_timed_value_control_source_set_from_list

    gboolean
    gst_timed_value_control_source_set_from_list (GstTimedValueControlSource * self,
                                                  const GSList * timedvalues)

Sets multiple timed values at once.

Parameters:

`self` –

the GstTimedValueControlSource object

`timedvalues` ( [transfer: none][element-type GstTimedValue]) –

a list with GstTimedValue items

Returns –

FALSE if the values couldn't be set, TRUE otherwise.

#### GstController.TimedValueControlSource.prototype.set_from_list

    function GstController.TimedValueControlSource.prototype.set_from_list(timedvalues: GLib.SList): {
        // javascript wrapper for 'gst_timed_value_control_source_set_from_list'
    }

Sets multiple timed values at once.

Parameters:

`self` (GstController.TimedValueControlSource) –

the GstController.TimedValueControlSource object

`timedvalues` (GLib.SList) –

a list with Gst.TimedValue items

Returns (Number) –

FALSE if the values couldn't be set, TRUE otherwise.

#### GstController.TimedValueControlSource.set_from_list

    def GstController.TimedValueControlSource.set_from_list (self, timedvalues):
        #python wrapper for 'gst_timed_value_control_source_set_from_list'

Sets multiple timed values at once.

Parameters:

`self` (GstController.TimedValueControlSource) –

the GstController.TimedValueControlSource object

`timedvalues` (GLib.SList) –

a list with Gst.TimedValue items

Returns (bool) –

FALSE if the values couldn't be set, TRUE otherwise.

#### gst_timed_value_control_source_unset

    gboolean
    gst_timed_value_control_source_unset (GstTimedValueControlSource * self,
                                          GstClockTime timestamp)

Used to remove the value of given controller-handled property at a certain time.

Parameters:

`self` –

the GstTimedValueControlSource object

`timestamp` –

the time the control-change should be removed from

Returns –

FALSE if the value couldn't be unset (i.e. not found, TRUE otherwise.

#### GstController.TimedValueControlSource.prototype.unset

    function GstController.TimedValueControlSource.prototype.unset(timestamp: Number): {
        // javascript wrapper for 'gst_timed_value_control_source_unset'
    }

Used to remove the value of given controller-handled property at a certain time.

Parameters:

`self` (GstController.TimedValueControlSource) –

the GstController.TimedValueControlSource object

`timestamp` (Number) –

the time the control-change should be removed from

Returns (Number) –

FALSE if the value couldn't be unset (i.e. not found, TRUE otherwise.

#### GstController.TimedValueControlSource.unset

    def GstController.TimedValueControlSource.unset (self, timestamp):
        #python wrapper for 'gst_timed_value_control_source_unset'

Used to remove the value of given controller-handled property at a certain time.

Parameters:

`self` (GstController.TimedValueControlSource) –

the GstController.TimedValueControlSource object

`timestamp` (int) –

the time the control-change should be removed from

Returns (bool) –

FALSE if the value couldn't be unset (i.e. not found, TRUE otherwise.

#### gst_timed_value_control_source_unset_all

    gst_timed_value_control_source_unset_all (GstTimedValueControlSource * self)

Used to remove all time-stamped values of given controller-handled property

Parameters:

`self` –

the GstTimedValueControlSource object

#### GstController.TimedValueControlSource.prototype.unset_all

    function GstController.TimedValueControlSource.prototype.unset_all(): {
        // javascript wrapper for 'gst_timed_value_control_source_unset_all'
    }

Used to remove all time-stamped values of given controller-handled property

Parameters:

`self` (GstController.TimedValueControlSource) –

the GstController.TimedValueControlSource object

#### GstController.TimedValueControlSource.unset_all

    def GstController.TimedValueControlSource.unset_all (self):
        #python wrapper for 'gst_timed_value_control_source_unset_all'

Used to remove all time-stamped values of given controller-handled property

Parameters:

`self` (GstController.TimedValueControlSource) –

the GstController.TimedValueControlSource object

### Signals

#### value-added

    value_added_callback (GstTimedValueControlSource * self,
                          GstControlPoint * timed_value,
                          gpointer user_data)

Emitted right after the new value has been added to self

Parameters:

`self` –

The GstTimedValueControlSource into which a GstTimedValue has been added

`timed_value` –

The newly added GstTimedValue

`user_data` –
No description available

Flags: Run First

Since : 1.6

#### value-added

    function value_added_callback(self: GstController.TimedValueControlSource, timed_value: GstController.ControlPoint, user_data: Object): {
        // javascript callback for the 'value-added' signal
    }

Emitted right after the new value has been added to self

Parameters:

`self` (GstController.TimedValueControlSource) –

The GstController.TimedValueControlSource into which a Gst.TimedValue has been added

`timed_value` (GstController.ControlPoint) –

The newly added Gst.TimedValue

`user_data` (Object) –
No description available

Flags: Run First

Since : 1.6

#### value-added

    def value_added_callback (self, timed_value, *user_data):
        #python callback for the 'value-added' signal

Emitted right after the new value has been added to self

Parameters:

`self` (GstController.TimedValueControlSource) –

The GstController.TimedValueControlSource into which a Gst.TimedValue has been added

`timed_value` (GstController.ControlPoint) –

The newly added Gst.TimedValue

`user_data` (variadic) –
No description available

Flags: Run First

Since : 1.6

#### value-changed

    value_changed_callback (GstTimedValueControlSource * self,
                            GstControlPoint * timed_value,
                            gpointer user_data)

Emitted right after the new value has been set on timed_signals

Parameters:

`self` –

The GstTimedValueControlSource on which a GstTimedValue has changed

`timed_value` –

The GstTimedValue where the value changed

`user_data` –
No description available

Flags: Run First

Since : 1.6

#### value-changed

    function value_changed_callback(self: GstController.TimedValueControlSource, timed_value: GstController.ControlPoint, user_data: Object): {
        // javascript callback for the 'value-changed' signal
    }

Emitted right after the new value has been set on timed_signals

Parameters:

`self` (GstController.TimedValueControlSource) –

The GstController.TimedValueControlSource on which a Gst.TimedValue has changed

`timed_value` (GstController.ControlPoint) –

The Gst.TimedValue where the value changed

`user_data` (Object) –
No description available

Flags: Run First

Since : 1.6

#### value-changed

    def value_changed_callback (self, timed_value, *user_data):
        #python callback for the 'value-changed' signal

Emitted right after the new value has been set on timed_signals

Parameters:

`self` (GstController.TimedValueControlSource) –

The GstController.TimedValueControlSource on which a Gst.TimedValue has changed

`timed_value` (GstController.ControlPoint) –

The Gst.TimedValue where the value changed

`user_data` (variadic) –
No description available

Flags: Run First

Since : 1.6

#### value-removed

    value_removed_callback (GstTimedValueControlSource * self,
                            GstControlPoint * timed_value,
                            gpointer user_data)

Emitted when timed_value is removed from self

Parameters:

`self` –

The GstTimedValueControlSource from which a GstTimedValue has been removed

`timed_value` –

The removed GstTimedValue

`user_data` –
No description available

Flags: Run First

Since : 1.6

#### value-removed

    function value_removed_callback(self: GstController.TimedValueControlSource, timed_value: GstController.ControlPoint, user_data: Object): {
        // javascript callback for the 'value-removed' signal
    }

Emitted when timed_value is removed from self

Parameters:

`self` (GstController.TimedValueControlSource) –

The GstController.TimedValueControlSource from which a Gst.TimedValue has been removed

`timed_value` (GstController.ControlPoint) –

The removed Gst.TimedValue

`user_data` (Object) –
No description available

Flags: Run First

Since : 1.6

#### value-removed

    def value_removed_callback (self, timed_value, *user_data):
        #python callback for the 'value-removed' signal

Emitted when timed_value is removed from self

Parameters:

`self` (GstController.TimedValueControlSource) –

The GstController.TimedValueControlSource from which a Gst.TimedValue has been removed

`timed_value` (GstController.ControlPoint) –

The removed Gst.TimedValue

`user_data` (variadic) –
No description available

Flags: Run First

Since : 1.6

## Functions

### gst_timed_value_control_invalidate_cache

    gst_timed_value_control_invalidate_cache (GstTimedValueControlSource * self)

Reset the controlled value cache.

Parameters:

`self` –

the GstTimedValueControlSource

### GstController.prototype.timed_value_control_invalidate_cache

    function GstController.prototype.timed_value_control_invalidate_cache(self: GstController.TimedValueControlSource): {
        // javascript wrapper for 'gst_timed_value_control_invalidate_cache'
    }

Reset the controlled value cache.

Parameters:

`self` (GstController.TimedValueControlSource) –

the GstController.TimedValueControlSource

### GstController.timed_value_control_invalidate_cache

    def GstController.timed_value_control_invalidate_cache (self):
        #python wrapper for 'gst_timed_value_control_invalidate_cache'

Reset the controlled value cache.

Parameters:

`self` (GstController.TimedValueControlSource) –

the GstController.TimedValueControlSource

## Function Macros

### GST_TIMED_VALUE_CONTROL_SOURCE_LOCK

    #define GST_TIMED_VALUE_CONTROL_SOURCE_LOCK(o) \
      g_mutex_lock(&((GstTimedValueControlSource *)o)->lock)

### GST_TIMED_VALUE_CONTROL_SOURCE_UNLOCK

    #define GST_TIMED_VALUE_CONTROL_SOURCE_UNLOCK(o) \
      g_mutex_unlock(&((GstTimedValueControlSource *)o)->lock)

## Constants

### GST_TYPE_TIMED_VALUE_CONTROL_SOURCE

    #define GST_TYPE_TIMED_VALUE_CONTROL_SOURCE \
      (gst_timed_value_control_source_get_type ())

The results of the search are