gstreamermm  0.10.11
Public Types | Public Member Functions | Protected Member Functions | Related Functions
Gst::ClockID Class Reference

A data type to hold the handle to an outstanding sync or async clock callback. More...

List of all members.

Public Types

typedef sigc::slot< bool,
const Glib::RefPtr< Gst::Clock >
&, ClockTime, const
Glib::RefPtr< Gst::ClockID >& > 
SlotClock
 For example, bool on_clock(const Glib::RefPtr<Gst::Clock>& clock, ClockTime time, const Glib::RefPtr<Gst::ClockID>& id);.

Public Member Functions

void reference () const
 Increment the reference count for this object.
void unreference () const
 Decrement the reference count for this object.
GstClockEntry* gobj ()
 Provides access to the underlying C instance.
const GstClockEntry* gobj () const
 Provides access to the underlying C instance.
GstClockEntry* gobj_copy () const
 Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.
ClockTime get_time () const
 Get the time of the clock ID.
ClockReturn wait (ClockTimeDiff& jitter)
 Perform a blocking wait on the Gst::ClockID.
ClockReturn wait ()
 Perform a blocking wait without requiring a jitter argument.
ClockReturn wait_async (const SlotClock& slot)
 Register a slot on the given Gst::ClockID id with the given slot.
void unschedule ()
 Cancel an outstanding request with id.

Protected Member Functions

 ClockID ()
void operator delete (void*, std::size_t)

Related Functions

(Note that these are not member functions.)

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

Detailed Description

A data type to hold the handle to an outstanding sync or async clock callback.


Member Typedef Documentation

For example, bool on_clock(const Glib::RefPtr<Gst::Clock>& clock, ClockTime time, const Glib::RefPtr<Gst::ClockID>& id);.

The clock function return value is currently unused (see GstClockCallback).


Constructor & Destructor Documentation

Gst::ClockID::ClockID ( ) [protected]

Member Function Documentation

Get the time of the clock ID.

Returns:
The time of the given clock id.

MT safe.

GstClockEntry* Gst::ClockID::gobj ( )

Provides access to the underlying C instance.

const GstClockEntry* Gst::ClockID::gobj ( ) const

Provides access to the underlying C instance.

GstClockEntry* Gst::ClockID::gobj_copy ( ) const

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

void Gst::ClockID::operator delete ( void *  ,
std::size_t   
) [protected]
void Gst::ClockID::reference ( ) const

Increment the reference count for this object.

You should never need to do this manually - use the object via a RefPtr instead.

void Gst::ClockID::unreference ( ) const

Decrement the reference count for this object.

You should never need to do this manually - use the object via a RefPtr instead.

Cancel an outstanding request with id.

This can either be an outstanding async notification or a pending sync notification. After this call, id cannot be used anymore to receive sync or async notifications, you need to create a new Gst::ClockID.

MT safe.

Perform a blocking wait on the Gst::ClockID.

The Gst::ClockID should have been created with Gst::Clock::create_single_shot_id() or Gst::Clock::create_periodic_id() and should not have been unscheduled with a call to unschedule().

If this function returns Gst::CLOCK_OK or Gst::CLOCK_EARLY, the jitter argument will contain the difference against the clock and the time of the Gst::ClockID when this method was called. Positive values indicate how late the Gst::ClockID was relative to the clock (in which case this function will return Gst::CLOCK_EARLY). Negative values indicate how much time was spent waiting on the clock before this function returned.

Parameters:
jitterA pointer that will contain the jitter.
Returns:
The result of the blocking wait. Gst::CLOCK_EARLY will be returned if the current clock time is past the time of the Gst::ClockID, Gst::CLOCK_OK if Gst::ClockID was scheduled in time. Gst::CLOCK_UNSCHEDULED if Gst::ClockID was unscheduled with unschedule().

MT safe.

Perform a blocking wait without requiring a jitter argument.

Gst::ClockID should have been created with Gst::Clock::create_single_shot_id() or Gst::Clock::create_periodic_id() and should not have been unscheduled with a call to unschedule().

Returns:
The result of the blocking wait. Gst::CLOCK_EARLY will be returned if the current clock time is past the time of Gst::ClockID, Gst::CLOCK_OK if Gst::ClockID was scheduled in time. Gst::CLOCK_UNSCHEDULED if Gst::ClockID was unscheduled with unschedule().

Register a slot on the given Gst::ClockID id with the given slot.

When passing a Gst::ClockID with an invalid time to this function, the slot will be called immediatly with a time set to Gst::CLOCK_TIME_NONE. The slot will be called when the time of id has been reached.

Parameters:
slotThe slot to callback.
Returns:
The result of the non blocking wait. MT safe.

Friends And Related Function Documentation

Glib::RefPtr< Gst::ClockID > wrap ( GstClockEntry *  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.

The documentation for this class was generated from the following file: