GstInterpolationControlSource

GstInterpolationControlSource — interpolation control source

Synopsis

#include <libs/controller/gstinterpolationcontrolsource.h>

struct              GstInterpolationControlSource;
enum                GstInterpolateMode;
GstInterpolationControlSource * gst_interpolation_control_source_new
                                                        (void);
gboolean            gst_interpolation_control_source_set
                                                        (GstInterpolationControlSource *self,
                                                         GstClockTime timestamp,
                                                         const GValue *value);
gboolean            gst_interpolation_control_source_set_from_list
                                                        (GstInterpolationControlSource *self,
                                                         const GSList *timedvalues);
gboolean            gst_interpolation_control_source_set_interpolation_mode
                                                        (GstInterpolationControlSource *self,
                                                         GstInterpolateMode mode);
GList *             gst_interpolation_control_source_get_all
                                                        (GstInterpolationControlSource *self);
gboolean            gst_interpolation_control_source_unset
                                                        (GstInterpolationControlSource *self,
                                                         GstClockTime timestamp);
void                gst_interpolation_control_source_unset_all
                                                        (GstInterpolationControlSource *self);
gint                gst_interpolation_control_source_get_count
                                                        (GstInterpolationControlSource *self);

Object Hierarchy

  GObject
   +----GstControlSource
         +----GstInterpolationControlSource

Description

GstInterpolationControlSource is a GstControlSource, that interpolates values between user-given control points. It supports several interpolation modes and property types.

To use GstInterpolationControlSource get a new instance by calling gst_interpolation_control_source_new(), bind it to a GParamSpec, select a interpolation mode with gst_interpolation_control_source_set_interpolation_mode() and set some control points by calling gst_interpolation_control_source_set().

All functions are MT-safe.

Details

struct GstInterpolationControlSource

struct GstInterpolationControlSource;

The instance structure of GstControlSource.


enum GstInterpolateMode

typedef enum
{
  GST_INTERPOLATE_NONE,
  GST_INTERPOLATE_TRIGGER,
  GST_INTERPOLATE_LINEAR,
  GST_INTERPOLATE_QUADRATIC,
  GST_INTERPOLATE_CUBIC,
  GST_INTERPOLATE_USER
} GstInterpolateMode;

The various interpolation modes available.

GST_INTERPOLATE_NONE

steps-like interpolation, default

GST_INTERPOLATE_TRIGGER

returns the default value of the property, except for times with specific values

GST_INTERPOLATE_LINEAR

linear interpolation

GST_INTERPOLATE_QUADRATIC

square interpolation (deprecated, maps to cubic)

GST_INTERPOLATE_CUBIC

cubic interpolation

GST_INTERPOLATE_USER

user-provided interpolation (not yet available)

gst_interpolation_control_source_new ()

GstInterpolationControlSource * gst_interpolation_control_source_new
                                                        (void);

This returns a new, unbound GstInterpolationControlSource.

Returns :

a new, unbound GstInterpolationControlSource.

gst_interpolation_control_source_set ()

gboolean            gst_interpolation_control_source_set
                                                        (GstInterpolationControlSource *self,
                                                         GstClockTime timestamp,
                                                         const GValue *value);

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

self :

the GstInterpolationControlSource 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_interpolation_control_source_set_from_list ()

gboolean            gst_interpolation_control_source_set_from_list
                                                        (GstInterpolationControlSource *self,
                                                         const GSList *timedvalues);

Sets multiple timed values at once.

self :

the GstInterpolationControlSource object

timedvalues :

a list with GstTimedValue items

Returns :

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

gst_interpolation_control_source_set_interpolation_mode ()

gboolean            gst_interpolation_control_source_set_interpolation_mode
                                                        (GstInterpolationControlSource *self,
                                                         GstInterpolateMode mode);

Sets the given interpolation mode.

Note

User interpolation is not yet available and quadratic interpolation is deprecated and maps to cubic interpolation.

self :

the GstInterpolationControlSource object

mode :

interpolation mode

Returns :

TRUE if the interpolation mode could be set, FALSE otherwise

gst_interpolation_control_source_get_all ()

GList *             gst_interpolation_control_source_get_all
                                                        (GstInterpolationControlSource *self);

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

self :

the GstInterpolationControlSource to get the list from

Returns :

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

gst_interpolation_control_source_unset ()

gboolean            gst_interpolation_control_source_unset
                                                        (GstInterpolationControlSource *self,
                                                         GstClockTime timestamp);

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

self :

the GstInterpolationControlSource 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_interpolation_control_source_unset_all ()

void                gst_interpolation_control_source_unset_all
                                                        (GstInterpolationControlSource *self);

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

self :

the GstInterpolationControlSource object

gst_interpolation_control_source_get_count ()

gint                gst_interpolation_control_source_get_count
                                                        (GstInterpolationControlSource *self);

Returns the number of control points that are set.

self :

the GstInterpolationControlSource to get the number of values from

Returns :

the number of control points that are set.