GstClock

GstClock

Functions

#define GST_CLOCK_TIME_IS_VALID()
#define GST_CLOCK_STIME_IS_VALID()
#define GST_TIME_AS_SECONDS()
#define GST_TIME_AS_MSECONDS()
#define GST_TIME_AS_USECONDS()
#define GST_TIME_AS_NSECONDS()
#define GST_CLOCK_DIFF()
#define GST_TIMEVAL_TO_TIME()
#define GST_TIME_TO_TIMEVAL()
#define GST_TIMESPEC_TO_TIME()
#define GST_TIME_TO_TIMESPEC()
gboolean (*GstClockCallback) ()
#define GST_CLOCK_ENTRY()
#define GST_CLOCK_ENTRY_CLOCK()
#define GST_CLOCK_ENTRY_TYPE()
#define GST_CLOCK_ENTRY_TIME()
#define GST_CLOCK_ENTRY_INTERVAL()
#define GST_CLOCK_ENTRY_STATUS()
#define GST_CLOCK_FLAGS()
gboolean gst_clock_add_observation ()
gboolean gst_clock_add_observation_unapplied ()
gboolean gst_clock_set_master ()
GstClock * gst_clock_get_master ()
GstClockTime gst_clock_set_resolution ()
GstClockTime gst_clock_get_resolution ()
GstClockTime gst_clock_get_time ()
GstClockID gst_clock_new_single_shot_id ()
GstClockID gst_clock_new_periodic_id ()
gboolean gst_clock_single_shot_id_reinit ()
gboolean gst_clock_periodic_id_reinit ()
GstClockTime gst_clock_get_internal_time ()
GstClockTime gst_clock_adjust_unlocked ()
GstClockTime gst_clock_unadjust_unlocked ()
GstClockTime gst_clock_adjust_with_calibration ()
GstClockTime gst_clock_unadjust_with_calibration ()
void gst_clock_get_calibration ()
void gst_clock_set_calibration ()
GstClockTime gst_clock_get_timeout ()
void gst_clock_set_timeout ()
gboolean gst_clock_wait_for_sync ()
gboolean gst_clock_is_synced ()
void gst_clock_set_synced ()
GstClockTime gst_clock_id_get_time ()
GstClockReturn gst_clock_id_wait ()
GstClockReturn gst_clock_id_wait_async ()
void gst_clock_id_unschedule ()
gint gst_clock_id_compare_func ()
GstClockID gst_clock_id_ref ()
void gst_clock_id_unref ()

Properties

guint64 timeout Read / Write
gint window-size Read / Write
gint window-threshold Read / Write

Signals

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstClock
                ╰── GstSystemClock

Includes

#include <gst/gst.h>

Description

Functions

GST_CLOCK_TIME_IS_VALID()

#define GST_CLOCK_TIME_IS_VALID(time)   (((GstClockTime)(time)) != GST_CLOCK_TIME_NONE)

GST_CLOCK_STIME_IS_VALID()

#define GST_CLOCK_STIME_IS_VALID(time)   (((GstClockTimeDiff)(time)) != GST_CLOCK_STIME_NONE)

GST_TIME_AS_SECONDS()

#define GST_TIME_AS_SECONDS(time)  ((time) / GST_SECOND)

GST_TIME_AS_MSECONDS()

#define GST_TIME_AS_MSECONDS(time) ((time) / G_GINT64_CONSTANT (1000000))

GST_TIME_AS_USECONDS()

#define GST_TIME_AS_USECONDS(time) ((time) / G_GINT64_CONSTANT (1000))

GST_TIME_AS_NSECONDS()

#define GST_TIME_AS_NSECONDS(time) (time)

GST_CLOCK_DIFF()

#define GST_CLOCK_DIFF(s, e)            (GstClockTimeDiff)((e) - (s))

GST_TIMEVAL_TO_TIME()

#define GST_TIMEVAL_TO_TIME(tv)         (GstClockTime)((tv).tv_sec * GST_SECOND + (tv).tv_usec * GST_USECOND)

GST_TIME_TO_TIMEVAL()

#define             GST_TIME_TO_TIMEVAL(t,tv)

GST_TIMESPEC_TO_TIME()

#define GST_TIMESPEC_TO_TIME(ts)        (GstClockTime)((ts).tv_sec * GST_SECOND + (ts).tv_nsec * GST_NSECOND)

GST_TIME_TO_TIMESPEC()

#define             GST_TIME_TO_TIMESPEC(t,ts)

GstClockCallback ()

gboolean
(*GstClockCallback) (GstClock *clock,
                     GstClockTime time,
                     GstClockID id,
                     gpointer user_data);

GST_CLOCK_ENTRY()

#define GST_CLOCK_ENTRY(entry)          ((GstClockEntry *)(entry))

GST_CLOCK_ENTRY_CLOCK()

#define GST_CLOCK_ENTRY_CLOCK(entry)    ((entry)->clock)

GST_CLOCK_ENTRY_TYPE()

#define GST_CLOCK_ENTRY_TYPE(entry)     ((entry)->type)

GST_CLOCK_ENTRY_TIME()

#define GST_CLOCK_ENTRY_TIME(entry)     ((entry)->time)

GST_CLOCK_ENTRY_INTERVAL()

#define GST_CLOCK_ENTRY_INTERVAL(entry) ((entry)->interval)

GST_CLOCK_ENTRY_STATUS()

#define GST_CLOCK_ENTRY_STATUS(entry)   ((entry)->status)

GST_CLOCK_FLAGS()

#define GST_CLOCK_FLAGS(clock)  GST_OBJECT_FLAGS(clock)

gst_clock_add_observation ()

gboolean
gst_clock_add_observation (GstClock *clock,
                           GstClockTime slave,
                           GstClockTime master,
                           gdouble *r_squared);

gst_clock_add_observation_unapplied ()

gboolean
gst_clock_add_observation_unapplied (GstClock *clock,
                                     GstClockTime slave,
                                     GstClockTime master,
                                     gdouble *r_squared,
                                     GstClockTime *internal,
                                     GstClockTime *external,
                                     GstClockTime *rate_num,
                                     GstClockTime *rate_denom);

gst_clock_set_master ()

gboolean
gst_clock_set_master (GstClock *clock,
                      GstClock *master);

gst_clock_get_master ()

GstClock *
gst_clock_get_master (GstClock *clock);

gst_clock_set_resolution ()

GstClockTime
gst_clock_set_resolution (GstClock *clock,
                          GstClockTime resolution);

gst_clock_get_resolution ()

GstClockTime
gst_clock_get_resolution (GstClock *clock);

gst_clock_get_time ()

GstClockTime
gst_clock_get_time (GstClock *clock);

gst_clock_new_single_shot_id ()

GstClockID
gst_clock_new_single_shot_id (GstClock *clock,
                              GstClockTime time);

gst_clock_new_periodic_id ()

GstClockID
gst_clock_new_periodic_id (GstClock *clock,
                           GstClockTime start_time,
                           GstClockTime interval);

gst_clock_single_shot_id_reinit ()

gboolean
gst_clock_single_shot_id_reinit (GstClock *clock,
                                 GstClockID id,
                                 GstClockTime time);

gst_clock_periodic_id_reinit ()

gboolean
gst_clock_periodic_id_reinit (GstClock *clock,
                              GstClockID id,
                              GstClockTime start_time,
                              GstClockTime interval);

gst_clock_get_internal_time ()

GstClockTime
gst_clock_get_internal_time (GstClock *clock);

gst_clock_adjust_unlocked ()

GstClockTime
gst_clock_adjust_unlocked (GstClock *clock,
                           GstClockTime internal);

gst_clock_unadjust_unlocked ()

GstClockTime
gst_clock_unadjust_unlocked (GstClock *clock,
                             GstClockTime external);

gst_clock_adjust_with_calibration ()

GstClockTime
gst_clock_adjust_with_calibration (GstClock *clock,
                                   GstClockTime internal_target,
                                   GstClockTime cinternal,
                                   GstClockTime cexternal,
                                   GstClockTime cnum,
                                   GstClockTime cdenom);

gst_clock_unadjust_with_calibration ()

GstClockTime
gst_clock_unadjust_with_calibration (GstClock *clock,
                                     GstClockTime external_target,
                                     GstClockTime cinternal,
                                     GstClockTime cexternal,
                                     GstClockTime cnum,
                                     GstClockTime cdenom);

gst_clock_get_calibration ()

void
gst_clock_get_calibration (GstClock *clock,
                           GstClockTime *internal,
                           GstClockTime *external,
                           GstClockTime *rate_num,
                           GstClockTime *rate_denom);

gst_clock_set_calibration ()

void
gst_clock_set_calibration (GstClock *clock,
                           GstClockTime internal,
                           GstClockTime external,
                           GstClockTime rate_num,
                           GstClockTime rate_denom);

gst_clock_get_timeout ()

GstClockTime
gst_clock_get_timeout (GstClock *clock);

gst_clock_set_timeout ()

void
gst_clock_set_timeout (GstClock *clock,
                       GstClockTime timeout);

gst_clock_wait_for_sync ()

gboolean
gst_clock_wait_for_sync (GstClock *clock,
                         GstClockTime timeout);

gst_clock_is_synced ()

gboolean
gst_clock_is_synced (GstClock *clock);

gst_clock_set_synced ()

void
gst_clock_set_synced (GstClock *clock,
                      gboolean synced);

gst_clock_id_get_time ()

GstClockTime
gst_clock_id_get_time (GstClockID id);

gst_clock_id_wait ()

GstClockReturn
gst_clock_id_wait (GstClockID id,
                   GstClockTimeDiff *jitter);

gst_clock_id_wait_async ()

GstClockReturn
gst_clock_id_wait_async (GstClockID id,
                         GstClockCallback func,
                         gpointer user_data,
                         GDestroyNotify destroy_data);

gst_clock_id_unschedule ()

void
gst_clock_id_unschedule (GstClockID id);

gst_clock_id_compare_func ()

gint
gst_clock_id_compare_func (gconstpointer id1,
                           gconstpointer id2);

gst_clock_id_ref ()

GstClockID
gst_clock_id_ref (GstClockID id);

gst_clock_id_unref ()

void
gst_clock_id_unref (GstClockID id);

Types and Values

struct GstClock

struct GstClock;

struct GstClockClass

struct GstClockClass {
  GstObjectClass        parent_class;

  /* vtable */
  GstClockTime          (*change_resolution)    (GstClock *clock,
                                                 GstClockTime old_resolution,
                                                 GstClockTime new_resolution);
  GstClockTime          (*get_resolution)       (GstClock *clock);

  GstClockTime          (*get_internal_time)    (GstClock *clock);

  /* waiting on an ID */
  GstClockReturn        (*wait)                 (GstClock *clock, GstClockEntry *entry,
                                                 GstClockTimeDiff *jitter);
  GstClockReturn        (*wait_async)           (GstClock *clock, GstClockEntry *entry);
  void                  (*unschedule)           (GstClock *clock, GstClockEntry *entry);
};

GstClockTime

typedef guint64 GstClockTime;

GstClockTimeDiff

typedef gint64 GstClockTimeDiff;

GstClockID

typedef gpointer GstClockID;

GST_CLOCK_TIME_NONE

#define GST_CLOCK_TIME_NONE             ((GstClockTime) -1)

GST_CLOCK_STIME_NONE

#define GST_CLOCK_STIME_NONE             G_MININT64

GST_SECOND

#define GST_SECOND  (G_USEC_PER_SEC * G_GINT64_CONSTANT (1000))

GST_MSECOND

#define GST_MSECOND (GST_SECOND / G_GINT64_CONSTANT (1000))

GST_USECOND

#define GST_USECOND (GST_SECOND / G_GINT64_CONSTANT (1000000))

GST_NSECOND

#define GST_NSECOND (GST_SECOND / G_GINT64_CONSTANT (1000000000))

struct GstClockEntry

struct GstClockEntry {
  gint                  refcount;
};

enum GstClockEntryType

Members

GST_CLOCK_ENTRY_SINGLE

   

GST_CLOCK_ENTRY_PERIODIC

   

enum GstClockReturn

Members

GST_CLOCK_OK

   

GST_CLOCK_EARLY

   

GST_CLOCK_UNSCHEDULED

   

GST_CLOCK_BUSY

   

GST_CLOCK_BADTIME

   

GST_CLOCK_ERROR

   

GST_CLOCK_UNSUPPORTED

   

GST_CLOCK_DONE

   

enum GstClockFlags

Members

GST_CLOCK_FLAG_CAN_DO_SINGLE_SYNC

   

GST_CLOCK_FLAG_CAN_DO_SINGLE_ASYNC

   

GST_CLOCK_FLAG_CAN_DO_PERIODIC_SYNC

   

GST_CLOCK_FLAG_CAN_DO_PERIODIC_ASYNC

   

GST_CLOCK_FLAG_CAN_SET_RESOLUTION

   

GST_CLOCK_FLAG_CAN_SET_MASTER

   

GST_CLOCK_FLAG_NEEDS_STARTUP_SYNC

   

GST_CLOCK_FLAG_LAST

   

Property Details

The “timeout” property

  “timeout”                  guint64

The amount of time, in nanoseconds, to sample master and slave clocks.

Flags: Read / Write

Default value: 100000000


The “window-size” property

  “window-size”              gint

The size of the window used to calculate rate and offset.

Flags: Read / Write

Allowed values: [2,1024]

Default value: 32


The “window-threshold” property

  “window-threshold”         gint

The threshold to start calculating rate and offset.

Flags: Read / Write

Allowed values: [2,1024]

Default value: 4

Signal Details

The “synced” signal

void
user_function (GstClock *gstclock,
               gboolean  arg1,
               gpointer  user_data)

Flags: Run Last