gstreamermm  1.10.0
Public Member Functions | Static Public Member Functions | List of all members
Gst::MessageQos Class Reference

A qos message. More...

#include <gstreamermm/message.h>

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

Public Member Functions

void set_values (gint64 jitter, double proportion, gint quality)
 Set the QoS values that have been calculated/analysed from the QoS data. More...
 
void set_stats (Gst::Format format, guint64 processed, guint64 dropped)
 Set the QoS stats representing the history of the current continuous pipeline playback period. More...
 
void parse (bool& live, guint64& running_time, guint64& stream_time, guint64& timestamp, guint64& duration) const
 Extract the timestamps and live status from the QoS message. More...
 
void parse_values (gint64& jitter, double& proportion, gint& quality) const
 Extract the QoS values that have been calculated/analysed from the QoS data. More...
 
void parse_stats (Gst::Format& format, guint64& processed, guint64& dropped) const
 Extract the QoS stats representing the history of the current continuous pipeline playback period. More...
 
- Public Member Functions inherited from Gst::Message
void reference () const
 Increment the reference count for this object. More...
 
void unreference () const
 Decrement the reference count for this object. More...
 
GstMessage* gobj ()
 Provides access to the underlying C instance. More...
 
const GstMessage* gobj () const
 Provides access to the underlying C instance. More...
 
GstMessage* gobj_copy () const
 Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. More...
 
 Message ()=delete
 
 Message (const Message&)=delete
 
Messageoperator= (const Message&)=delete
 
Gst::Structure get_structure () const
 Access the structure of the message. More...
 
Glib::RefPtr< Gst::Messagecreate_writable ()
 Checks if a message is writable. More...
 
guint32 get_seqnum () const
 Retrieve the sequence number of a message. More...
 
void set_seqnum (guint32 seqnum)
 Set the sequence number of a message. More...
 
Glib::RefPtr< Gst::Messagecopy () const
 Creates a copy of the message. More...
 
MessageType get_message_type () const
 Get the GstMessageType of message. More...
 
Gst::ClockTime get_timestamp () const
 Get the timestamp of message. More...
 
Glib::RefPtr< Gst::Objectget_source ()
 Get the object that posted the message. More...
 
Glib::RefPtr< const Gst::Objectget_source () const
 
bool has_name (const Glib::ustring& name) const
 Checks if message has the given name. More...
 
- Public Member Functions inherited from Gst::MiniObject
void reference () const
 Increment the reference count for this object. More...
 
void unreference () const
 Decrement the reference count for this object. More...
 
GstMiniObject* gobj ()
 Provides access to the underlying C instance. More...
 
const GstMiniObject* gobj () const
 Provides access to the underlying C instance. More...
 
GstMiniObject* gobj_copy () const
 Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. More...
 
 MiniObject ()=delete
 
 MiniObject (const MiniObject&)=delete
 
MiniObjectoperator= (const MiniObject&)=delete
 
 ~MiniObject ()
 
guint get_flags () const
 
void set_flags (const guint& value)
 
gint get_refcount () const
 
gint get_lockstate () const
 
bool lock (LockFlags flags)
 Lock the mini-object with the specified access mode in flags. More...
 
void unlock (LockFlags flags)
 Unlock the mini-object with the specified access mode in flags. More...
 
bool is_writable () const
 If mini_object has the LOCKABLE flag set, check if the current EXCLUSIVE lock on object is the only one, this means that changes to the object will not be visible to any other object. More...
 
Glib::RefPtr< MiniObjectcreate_writable ()
 Checks if a mini-object is writable. More...
 
void set_qdata (GQuark quark, QuarkData* data)
 This sets an opaque, named pointer on a miniobject. More...
 
QuarkDataget_qdata (GQuark quark) const
 This function gets back user data pointers stored via set_qdata(). More...
 
QuarkDatasteal_qdata (GQuark quark)
 This function gets back user data pointers stored via set_qdata() and removes the data from object without invoking its destroy() function (if any was set). More...
 
void add_finalize_notifier (const SlotFinalizer& slot)
 Adds notifier when mini object is finalized. More...
 
void remove_finalize_notifier ()
 Remove finalize notifier. More...
 

Static Public Member Functions

static Glib::RefPtr< Gst::MessageQoscreate (const Glib::RefPtr< Gst::Object >& src, bool live, guint64 running_time, guint64 stream_time, guint64 timestamp, guint64 duration)
 A QOS message is posted on the bus whenever an element decides to drop a buffer because of QoS reasons or whenever it changes its processing strategy because of QoS reasons (quality adjustments such as processing at lower accuracy). More...
 

Additional Inherited Members

- Public Types inherited from Gst::MiniObject
typedef sigc::slot< void > SlotFinalizer
 
- Protected Member Functions inherited from Gst::Message
void operator delete (void*, std::size_t)
 
- Protected Member Functions inherited from Gst::MiniObject
void operator delete (void*, std::size_t)
 

Detailed Description

A qos message.

See create() for more details.

Member Function Documentation

◆ create()

static Glib::RefPtr<Gst::MessageQos> Gst::MessageQos::create ( const Glib::RefPtr< Gst::Object >&  src,
bool  live,
guint64  running_time,
guint64  stream_time,
guint64  timestamp,
guint64  duration 
)
static

A QOS message is posted on the bus whenever an element decides to drop a buffer because of QoS reasons or whenever it changes its processing strategy because of QoS reasons (quality adjustments such as processing at lower accuracy).

This message can be posted by an element that performs synchronisation against the clock (live) or it could be dropped by an element that performs QoS because of QOS events received from a downstream element (!live).

running_time, stream_time, timestamp, duration should be set to the respective running-time, stream-time, timestamp and duration of the (dropped) buffer that generated the QoS event. Values can be left to GST_CLOCK_TIME_NONE when unknown.

Parameters
srcThe object originating the message.
liveIf the message was generated by a live element.
running_timeThe running time of the buffer that generated the message.
stream_timeThe stream time of the buffer that generated the message.
timestampThe timestamps of the buffer that generated the message.
durationThe duration of the buffer that generated the message.
Returns
The new qos message.

MT safe.

◆ parse()

void Gst::MessageQos::parse ( bool &  live,
guint64 &  running_time,
guint64 &  stream_time,
guint64 &  timestamp,
guint64 &  duration 
) const

Extract the timestamps and live status from the QoS message.

The returned values give the running_time, stream_time, timestamp and duration of the dropped buffer. Values of Gst::CLOCK_TIME_NONE mean unknown values.

MT safe.

Parameters
liveIf the message was generated by a live element.
running_timeThe running time of the buffer that generated the message.
stream_timeThe stream time of the buffer that generated the message.
timestampThe timestamps of the buffer that generated the message.
durationThe duration of the buffer that generated the message.

◆ parse_stats()

void Gst::MessageQos::parse_stats ( Gst::Format format,
guint64 &  processed,
guint64 &  dropped 
) const

Extract the QoS stats representing the history of the current continuous pipeline playback period.

Parameters
formatUnits of the 'processed' and 'dropped' fields. Video sinks and video filters will use GST_FORMAT_BUFFERS (frames). Audio sinks and audio filters will likely use GST_FORMAT_DEFAULT (samples).
processedTotal number of units correctly processed since the last state change to READY or a flushing operation.
droppedTotal number of units dropped since the last state change to READY or a flushing operation.

MT_safe.

When format is Gst::FORMAT_UNDEFINED both dropped and processed are invalid. Values of -1 for either processed or dropped mean unknown values.

◆ parse_values()

void Gst::MessageQos::parse_values ( gint64 &  jitter,
double &  proportion,
gint &  quality 
) const

Extract the QoS values that have been calculated/analysed from the QoS data.

Parameters
jitterThe difference of the running-time against the deadline.
proportionLong term prediction of the ideal rate relative to normal rate to get optimal quality.
qualityAn element dependent integer value that specifies the current quality level of the element. The default maximum quality is 1000000.

MT safe.

◆ set_stats()

void Gst::MessageQos::set_stats ( Gst::Format  format,
guint64  processed,
guint64  dropped 
)

Set the QoS stats representing the history of the current continuous pipeline playback period.

When format is Gst::FORMAT_UNDEFINED both dropped and processed are invalid. Values of -1 for either processed or dropped mean unknown values.

MT safe.

Parameters
formatUnits of the processed and dropped fields. Video sinks and video filters will use Gst::FORMAT_BUFFERS (frames). Audio sinks and audio filters will likely use Gst::FORMAT_DEFAULT (samples).
processedTotal number of units correctly processed since the last state change to READY or a flushing operation.
droppedTotal number of units dropped since the last state change to READY or a flushing operation.

◆ set_values()

void Gst::MessageQos::set_values ( gint64  jitter,
double  proportion,
gint  quality 
)

Set the QoS values that have been calculated/analysed from the QoS data.

MT safe.

Parameters
jitterThe difference of the running-time against the deadline.
proportionLong term prediction of the ideal rate relative to normal rate to get optimal quality.
qualityAn element dependent integer value that specifies the current quality level of the element. The default maximum quality is 1000000.