GstTimedValueControlSource

GstTimedValueControlSource — timed value control source base class

Synopsis

#include <libs/controller/gsttimedvaluecontrolsource.h>

struct              GstTimedValueControlSource;
struct              GstControlPoint;
GSequenceIter *     gst_timed_value_control_source_find_control_point_iter
                                                        (GstTimedValueControlSource *self,
                                                         GstClockTime timestamp);
gboolean            gst_timed_value_control_source_set  (GstTimedValueControlSource *self,
                                                         GstClockTime timestamp,
                                                         const gdouble value);
gboolean            gst_timed_value_control_source_set_from_list
                                                        (GstTimedValueControlSource *self,
                                                         const GSList *timedvalues);
GList *             gst_timed_value_control_source_get_all
                                                        (GstTimedValueControlSource *self);
gboolean            gst_timed_value_control_source_unset
                                                        (GstTimedValueControlSource *self,
                                                         GstClockTime timestamp);
void                gst_timed_value_control_source_unset_all
                                                        (GstTimedValueControlSource *self);
gint                gst_timed_value_control_source_get_count
                                                        (GstTimedValueControlSource *self);
void                gst_timed_value_control_invalidate_cache
                                                        (GstTimedValueControlSource *self);

Object Hierarchy

  GObject
   +----GInitiallyUnowned
         +----GstObject
               +----GstControlSource
                     +----GstTimedValueControlSource
                           +----GstInterpolationControlSource
                           +----GstTriggerControlSource

Signals

  "value-added"                                    : Run First
  "value-changed"                                  : Run First
  "value-removed"                                  : Run First

Description

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.

Details

struct GstTimedValueControlSource

struct GstTimedValueControlSource;

The instance structure of GstControlSource.


struct GstControlPoint

struct GstControlPoint {
  /* fields from GstTimedValue. DO NOT CHANGE! */
  GstClockTime timestamp;
  gdouble value;
};

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

GstClockTime timestamp;

timestamp of the value change

gdouble value;

the new value

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.

self :

the control source to search in

timestamp :

the search key

Returns :

the found GSequenceIter or NULL. [transfer none]

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.

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.

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.

self :

the GstTimedValueControlSource object

timedvalues :

a list with GstTimedValue items. [transfer none][element-type GstTimedValue]

Returns :

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

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 GstTimedValue for the given property. Free the list after done with it.

self :

the GstTimedValueControlSource to get the list from

Returns :

a copy of the list, or NULL if the property isn't handled by the controller. [transfer container][element-type GstTimedValue]

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.

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.

gst_timed_value_control_source_unset_all ()

void                gst_timed_value_control_source_unset_all
                                                        (GstTimedValueControlSource *self);

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

self :

the GstTimedValueControlSource object

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.

self :

the GstTimedValueControlSource to get the number of values from

Returns :

the number of control points that are set.

gst_timed_value_control_invalidate_cache ()

void                gst_timed_value_control_invalidate_cache
                                                        (GstTimedValueControlSource *self);

Reset the controlled value cache.

Signal Details

The "value-added" signal

void                user_function                      (GstTimedValueControlSource *self,
                                                        GstControlPoint            *timed_value,
                                                        gpointer                    user_data)        : Run First

Emited right after the new value has been added to self

self :

The GstTimedValueControlSource into which a GstTimedValue has been added

timed_value :

The newly added GstTimedValue

user_data :

user data set when the signal handler was connected.

Since 1.6


The "value-changed" signal

void                user_function                      (GstTimedValueControlSource *self,
                                                        GstControlPoint            *timed_value,
                                                        gpointer                    user_data)        : Run First

Emited right after the new value has been set on timed_signals

self :

The GstTimedValueControlSource on which a GstTimedValue has changed

timed_value :

The GstTimedValue where the value changed

user_data :

user data set when the signal handler was connected.

Since 1.6


The "value-removed" signal

void                user_function                      (GstTimedValueControlSource *self,
                                                        GstControlPoint            *timed_value,
                                                        gpointer                    user_data)        : Run First

Emited when timed_value is removed from self

self :

The GstTimedValueControlSource from which a GstTimedValue has been removed

timed_value :

The removed GstTimedValue

user_data :

user data set when the signal handler was connected.

Since 1.6