GstTimedValueControlSource

GstTimedValueControlSource — timed value control source base class

Synopsis

#include <libs/controller/gsttimedvaluecontrolsource.h>

struct              GstTimedValueControlSource;
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

Description

Base class for GstContrlSources 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.


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

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 GstController.TimedValue]

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 GstController.TimedValue]

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.