gstreamermm  1.10.0
Public Member Functions | Static Public Member Functions | Protected Member Functions | Related Functions | List of all members
Gst::SystemClock Class Reference

A default clock that uses the current system time. More...

#include <gstreamermm/systemclock.h>

Inheritance diagram for Gst::SystemClock:
Inheritance graph
[legend]

Public Member Functions

 SystemClock (SystemClock&& src) noexcept
 
SystemClockoperator= (SystemClock&& src) noexcept
 
 ~SystemClock () noexcept override
 
GstSystemClock* gobj ()
 Provides access to the underlying C GObject. More...
 
const GstSystemClock* gobj () const
 Provides access to the underlying C GObject. More...
 
GstSystemClock* gobj_copy ()
 Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. More...
 
- Public Member Functions inherited from Gst::Clock
 Clock (Clock&& src) noexcept
 
Clockoperator= (Clock&& src) noexcept
 
 ~Clock () noexcept override
 
GstClock* gobj ()
 Provides access to the underlying C GObject. More...
 
const GstClock* gobj () const
 Provides access to the underlying C GObject. More...
 
GstClock* gobj_copy ()
 Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. More...
 
bool add_observation (Gst::ClockTime slave_time, Gst::ClockTime master_time, gdouble& result)
 The time master_time of the master clock and the time slave_time of the slave clock are added to the list of observations. More...
 
bool add_observation (Gst::ClockTime slave_time, Gst::ClockTime master_time, gdouble& result, Gst::ClockTime&internal, Gst::ClockTime& external, Gst::ClockTime& rate_num, Gst::ClockTime& rate_denom)
 Add a clock observation to the internal slaving algorithm the same as add_observation(), and return the result of the master clock estimation, without updating the internal calibration. More...
 
bool set_master (const Clock& master_clock)
 Set master_clock as the master clock for clock. More...
 
Glib::RefPtr< Gst::Clockget_master ()
 Get the master clock that clock is slaved to or nullptr when the clock is not slaved to any master clock. More...
 
Glib::RefPtr< const Gst::Clockget_master () const
 Get the master clock that clock is slaved to or nullptr when the clock is not slaved to any master clock. More...
 
Gst::ClockTime set_resolution (Gst::ClockTime resolution)
 Set the accuracy of the clock. More...
 
Gst::ClockTime get_resolution () const
 Get the accuracy of the clock. More...
 
Gst::ClockTime get_time () const
 Gets the current time of the given clock. More...
 
Glib::RefPtr< Gst::ClockIDcreate_single_shot_id (Gst::ClockTime time)
 Get a Gst::ClockID from clock to trigger a single shot notification at the requested time. More...
 
Glib::RefPtr< Gst::ClockIDcreate_periodic_id (Gst::ClockTime start_time, Gst::ClockTime intervals)
 Get an ID from clock to trigger a periodic notification. More...
 
bool single_shot_id_reinit (const Glib::RefPtr< Gst::ClockID >& id, Gst::ClockTime time)
 Reinitializes the provided single shot id to the provided time. More...
 
bool periodic_id_reinit (const Glib::RefPtr< Gst::ClockID >& id, Gst::ClockTime start_time, Gst::ClockTime interval)
 Reinitializes the provided periodic id to the provided start time and interval. More...
 
Gst::ClockTime get_internal_time () const
 Gets the current internal time of the given clock. More...
 
Gst::ClockTime adjust_unlocked (Gst::ClockTime internal_time)
 Converts the given internal_time clock time to the external time, adjusting for the rate and reference time set with set_calibration() and making sure that the returned time is increasing. More...
 
Gst::ClockTime unadjust_unlocked (Gst::ClockTime external_time)
 Converts the given external_time clock time to the internal time of clock, using the rate and reference time set with set_calibration(). More...
 
Gst::ClockTime adjust_with_calibration (Gst::ClockTime internal_target, Gst::ClockTime cinternal, Gst::ClockTime cexternal, Gst::ClockTime cnum, Gst::ClockTime cdenom)
 Converts the given internal_target clock time to the external time, using the passed calibration parameters. More...
 
Gst::ClockTime unadjust_with_calibration (Gst::ClockTime external_target, Gst::ClockTime cinternal, Gst::ClockTime cexternal, Gst::ClockTime cnum, Gst::ClockTime cdenom)
 Converts the given external_target clock time to the internal time, using the passed calibration parameters. More...
 
void get_calibration (Gst::ClockTime&internal, Gst::ClockTime& external, Gst::ClockTime& rate_num, Gst::ClockTime& rate_denom) const
 Gets the internal rate and reference time of clock. More...
 
void set_calibration (Gst::ClockTime internal, Gst::ClockTime external, Gst::ClockTime rate_num, Gst::ClockTime rate_denom)
 Adjusts the rate and time of clock. More...
 
bool wait_for_sync (Gst::ClockTime timeout)
 Waits until clock is synced for reporting the current time. More...
 
bool is_synced () const
 Checks if the clock is currently synced. More...
 
void set_synced (bool synced)
 Sets clock to synced and emits the GstClock::synced signal, and wakes up any thread waiting in wait_for_sync(). More...
 
Glib::PropertyProxy< guint64 > property_timeout ()
 get/set timeout can be achieved through 'timeout' property, so wrapping gst_clock_{get|set|_timeout is unnecessary. More...
 
Glib::PropertyProxy_ReadOnly< guint64 > property_timeout () const
 The amount of time, in nanoseconds, to sample master and slave clocks. More...
 
Glib::PropertyProxy< int > property_window_size ()
 The size of the window used to calculate rate and offset. More...
 
Glib::PropertyProxy_ReadOnly< int > property_window_size () const
 The size of the window used to calculate rate and offset. More...
 
Glib::PropertyProxy< int > property_window_threshold ()
 The threshold to start calculating rate and offset. More...
 
Glib::PropertyProxy_ReadOnly< int > property_window_threshold () const
 The threshold to start calculating rate and offset. More...
 
virtual Gst::ClockTime change_resolution_vfunc (Gst::ClockTime old_resolution, Gst::ClockTime new_resolution)
 Change the resolution of the clock. More...
 
virtual Gst::ClockTime get_resolution_vfunc () const
 Get the resolution of the clock. More...
 
virtual Gst::ClockTime get_internal_time_vfunc () const
 Get the internal unadjusted time of the clock. More...
 
virtual ClockReturn wait_vfunc (const Glib::RefPtr< Gst::ClockID >& id, Gst::ClockTimeDiff& jitter)
 Perform a blocking wait for the given Gst::ClockID. More...
 
virtual ClockReturn wait_async_vfunc (const Glib::RefPtr< Gst::ClockID >& id)
 Perform an asynchronous wait for the given Gst::ClockID. More...
 
virtual void unschedule_vfunc (const Glib::RefPtr< Gst::ClockID >& id)
 Unblock a blocking or async wait operation. More...
 
Glib::SignalProxy< void, bool > signal_synced ()
 
- Public Member Functions inherited from Gst::Object
 Object (Object&& src) noexcept
 
Objectoperator= (Object&& src) noexcept
 
 ~Object () noexcept override
 
GstObject* gobj ()
 Provides access to the underlying C GObject. More...
 
const GstObject* gobj () const
 Provides access to the underlying C GObject. More...
 
GstObject* gobj_copy ()
 Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. More...
 
bool is_element () const
 
bool is_element_factory () const
 
bool is_pad () const
 
bool is_pad_template () const
 
bool is_bin () const
 
guint32 get_flags () const
 Returns the entire set of flags for the object. More...
 
bool set_name (const Glib::ustring& name)
 Sets the name of object, or gives object a guaranteed unique name (if name is nullptr). More...
 
Glib::ustring get_name () const
 Returns a copy of the name of object. More...
 
bool set_parent (const Glib::RefPtr< Gst::Object >& parent)
 Sets the parent of object to parent. More...
 
Glib::RefPtr< Gst::Objectget_parent ()
 Returns the parent of object. More...
 
Glib::RefPtr< const Gst::Objectget_parent () const
 Returns the parent of object. More...
 
void unparent ()
 Clear the parent of object, removing the associated reference. More...
 
void set_control_rate (Gst::ClockTime control_rate)
 Change the control-rate for this object. More...
 
Gst::ClockTime get_control_rate () const
 Obtain the control-rate for this object. More...
 
Gst::ClockTime suggest_next_sync () const
 Returns a suggestion for timestamps where buffers should be split to get best controller results. More...
 
bool sync_values (Gst::ClockTime timestamp)
 Sets the properties of the object, according to the Gst::ControlSources that (maybe) handle them and for the given timestamp. More...
 
void set_control_bindings_disabled (bool disabled)
 This function is used to disable all controlled properties of the object for some time, i.e. sync_values() will do nothing. More...
 
bool has_asctive_control_bindings () const
 Check if the object has an active controlled properties. More...
 
bool has_ancestor (const Glib::RefPtr< const Gst::Object >& ancestor) const
 Check if object has an ancestor ancestor somewhere up in the hierarchy. More...
 
bool has_as_ancestor (const Glib::RefPtr< Gst::Object >& ancestor) const
 Check if object has an ancestor ancestor somewhere up in the hierarchy. More...
 
bool has_as_parent (const Glib::RefPtr< Gst::Object >& parent) const
 Check if parent is the parent of object. More...
 
Glib::ustring get_path_string ()
 Generates a string describing the path of object in the object hierarchy. More...
 
Glib::PropertyProxy< Glib::ustring > property_name ()
 The name of the object. More...
 
Glib::PropertyProxy_ReadOnly< Glib::ustring > property_name () const
 The name of the object. More...
 
Glib::PropertyProxy< Glib::RefPtr< Gst::Object > > property_parent ()
 The parent of the object. More...
 
Glib::PropertyProxy_ReadOnly< Glib::RefPtr< Gst::Object > > property_parent () const
 The parent of the object. More...
 
Glib::SignalProxy< void, const Glib::RefPtr< Gst::Object >&, GParamSpec*> signal_deep_notify ()
 
int get_refcount () const
 

Static Public Member Functions

static GType get_type ()
 Get the GType for this class, for use with the underlying GObject type system. More...
 
static Glib::RefPtr< Gst::Clockobtain ()
 Get a handle to the default system clock. More...
 
- Static Public Member Functions inherited from Gst::Clock
static GType get_type ()
 Get the GType for this class, for use with the underlying GObject type system. More...
 
- Static Public Member Functions inherited from Gst::Object
static GType get_type ()
 Get the GType for this class, for use with the underlying GObject type system. More...
 
static bool check_uniqueness (const Glib::ListHandle< const Gst::Object >& list, const Glib::ustring& name)
 Checks to see if there is any object named name in list. More...
 

Protected Member Functions

 SystemClock ()
 
- Protected Member Functions inherited from Gst::Object
virtual void on_deep_notify (const Glib::RefPtr< Gst::Object >& prop_object, GParamSpec* prop)
 This is a default handler for the signal signal_deep_notify(). More...
 

Related Functions

(Note that these are not member functions.)

Glib::RefPtr< Gst::SystemClockwrap (GstSystemClock* object, bool take_copy=false)
 A Glib::wrap() method for this object. More...
 

Detailed Description

A default clock that uses the current system time.

The GStreamer core provides a Gst::SystemClock based on the system time. Asynchronous callbacks are scheduled from an internal thread.

Gst::Clock implementors are encouraged to subclass this systemclock as it implements the async notification.

Subclasses can however override all of the important methods for sync and async notifications to implement their own callback methods or blocking wait operations.

Last reviewed on 2006-03-08 (0.10.4)

Constructor & Destructor Documentation

◆ SystemClock() [1/2]

Gst::SystemClock::SystemClock ( SystemClock&&  src)
noexcept

◆ ~SystemClock()

Gst::SystemClock::~SystemClock ( )
overridenoexcept

◆ SystemClock() [2/2]

Gst::SystemClock::SystemClock ( )
protected

Member Function Documentation

◆ get_type()

static GType Gst::SystemClock::get_type ( )
static

Get the GType for this class, for use with the underlying GObject type system.

◆ gobj() [1/2]

GstSystemClock* Gst::SystemClock::gobj ( )
inline

Provides access to the underlying C GObject.

◆ gobj() [2/2]

const GstSystemClock* Gst::SystemClock::gobj ( ) const
inline

Provides access to the underlying C GObject.

◆ gobj_copy()

GstSystemClock* Gst::SystemClock::gobj_copy ( )

Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.

◆ obtain()

static Glib::RefPtr<Gst::Clock> Gst::SystemClock::obtain ( )
static

Get a handle to the default system clock.

The refcount of the clock will be increased so you need to unref the clock after usage.

Returns
The default clock.

MT safe.

◆ operator=()

SystemClock& Gst::SystemClock::operator= ( SystemClock&&  src)
noexcept

Friends And Related Function Documentation

◆ wrap()

Glib::RefPtr< Gst::SystemClock > wrap ( GstSystemClock *  object,
bool  take_copy = false 
)
related

A Glib::wrap() method for this object.

Parameters
objectThe C instance.
take_copyFalse if the result should take ownership of the C instance. True if it should take a new copy or ref.
Returns
A C++ instance that wraps this C instance.