Gst::MessageQos Class Reference

A qos message. More...

`#include <gstreamermm/message.h>`

Inheritance diagram for Gst::MessageQos:
[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
Message& | operator= (const Message&)=delete
Gst::Structure | get_structure () const
| Access the structure of the message. More...
Glib::RefPtr< Gst::Message > | create_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::Message > | copy () 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::Object > | get_source ()
| Get the object that posted the message. More...
Glib::RefPtr< const Gst::Object > | get_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
MiniObject& | operator= (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< MiniObject > | create_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...
QuarkData* | get_qdata (GQuark quark) const
| This function gets back user data pointers stored via set_qdata(). More...
QuarkData* | steal_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::MessageQos > | create (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)
Related Functions inherited from Gst::Message
Glib::RefPtr< Gst::Message > | wrap (GstMessage* object, bool take_copy=false)
| A Glib::wrap() method for this object. More...
Related Functions inherited from Gst::MiniObject
Glib::RefPtr< Gst::MiniObject > | wrap (GstMiniObject* object, bool take_copy=false)
| A Glib::wrap() method for this object. More...

## 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

  src | The object originating the message.
  live | If the message was generated by a live element.
  running_time | The running time of the buffer that generated the message.
  stream_time | The stream time of the buffer that generated the message.
  timestamp | The timestamps of the buffer that generated the message.
  duration | The 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

  live | If the message was generated by a live element.
  running_time | The running time of the buffer that generated the message.
  stream_time | The stream time of the buffer that generated the message.
  timestamp | The timestamps of the buffer that generated the message.
  duration | The 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

  format | Units 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).
  processed | Total number of units correctly processed since the last state change to READY or a flushing operation.
  dropped | Total 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

  jitter | The difference of the running-time against the deadline.
  proportion | Long term prediction of the ideal rate relative to normal rate to get optimal quality.
  quality | An 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

  format | Units 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).
  processed | Total number of units correctly processed since the last state change to READY or a flushing operation.
  dropped | Total 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

  jitter | The difference of the running-time against the deadline.
  proportion | Long term prediction of the ideal rate relative to normal rate to get optimal quality.
  quality | An element dependent integer value that specifies the current quality level of the element. The default maximum quality is 1000000.