Gst::EventProtection Class Reference

A protection event. More...

`#include <gstreamermm/event.h>`

Inheritance diagram for Gst::EventProtection:
[legend]

## Public Member Functions

void | parse (Glib::ustring& system_id, Glib::RefPtr< Gst::Buffer >& data, Glib::ustring& origin) const
| Parses an event containing protection system specific information and stores the results in system_id, data and origin. More...
Glib::ustring | parse_system_id () const
| Parse UUID of the protection event. More...
Glib::RefPtr< Gst::Buffer > | parse_data ()
| Parse data of the protection event. More...
Glib::RefPtr< const Gst::Buffer > | parse_data () const
| Parse data of the protection event. More...
Glib::ustring | parse_origin () const
| Parse origin of the protection event. More...
Public Member Functions inherited from Gst::Event
void | reference () const
| Increment the reference count for this object. More...
void | unreference () const
| Decrement the reference count for this object. More...
GstEvent* | gobj ()
| Provides access to the underlying C instance. More...
const GstEvent* | gobj () const
| Provides access to the underlying C instance. More...
GstEvent* | 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...
| Event ()=delete
| Event (const Event&)=delete
Event& | operator= (const Event&)=delete
Gst::Structure | get_structure () const
| Access the structure of the event. More...
bool | has_name (const Glib::ustring& name) const
| Checks if event has the given name. More...
guint32 | get_seqnum () const
| Retrieve the sequence number of a event. More...
void | set_seqnum (guint32 seqnum)
| Set the sequence number of a event. More...
gint64 | get_running_time_offset () const
| Retrieve the accumulated running time offset of the event. More...
void | set_running_time_offset (gint64 offset)
| Set the running time offset of a event. More...
Glib::RefPtr< Gst::Event > | copy () const
| Copy the event using the event specific copy function. More...
Glib::RefPtr< Gst::Event > | create_writable ()
| Makes a writable event from the given event. More...
bool | is_downstream () const
| Check if an event can travel downstream. More...
bool | is_serialized () const
| Check if an event is serialized with the data stream. More...
bool | is_upstream () const
| Check if an event can travel upstream. More...
EventType | get_event_type () const
| Get the Gst::EventType of the event. More...
Gst::ClockTime | get_timestamp () const
| Get the Gst::ClockTime timestamp of the event. 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::EventProtection > | create (const Glib::ustring& system_id, const Glib::RefPtr< Gst::Buffer >& data, const Glib::ustring& origin)
| Creates a new event containing information specific to a particular protection system (uniquely identified by system_id), by which that protection system can acquire key(s) to decrypt a protected stream. More...

## Additional Inherited Members

Public Types inherited from Gst::MiniObject
typedef sigc::slot< void > | SlotFinalizer
Protected Member Functions inherited from Gst::Event
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::Event
Glib::RefPtr< Gst::Event > | wrap (GstEvent* 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 protection event.

See create() for more details.

## Member Function Documentation

## create()

static Glib::RefPtr<Gst::EventProtection> Gst::EventProtection::create | ( | const Glib::ustring & | system_id,
|  | const Glib::RefPtr< Gst::Buffer >& | data,
|  | const Glib::ustring & | origin
| ) |  |

static

Creates a new event containing information specific to a particular protection system (uniquely identified by system_id), by which that protection system can acquire key(s) to decrypt a protected stream.

In order for a decryption element to decrypt media protected using a specific system, it first needs all the protection system specific information necessary to acquire the decryption key(s) for that stream. The functions defined here enable this information to be passed in events from elements that extract it (e.g., ISOBMFF demuxers, MPEG DASH demuxers) to protection decrypter elements that use it.

Events containing protection system specific information are created using #gst_event_new_protection, and they can be parsed by downstream elements using #gst_event_parse_protection.

In Common Encryption, protection system specific information may be located within ISOBMFF files, both in movie (moov) boxes and movie fragment (moof) boxes; it may also be contained in ContentProtection elements within MPEG DASH MPDs. The events created by #gst_event_new_protection contain data identifying from which of these locations the encapsulated protection system specific information originated. This origin information is required as some protection systems use different encodings depending upon where the information originates.

The events returned by new_protection() are implemented in such a way as to ensure that the most recently-pushed protection info event of a particular origin and system_id will be stuck to the output pad of the sending element.

Parameters

  system_id | A string holding a UUID that uniquely identifies a protection system.
  data | A Gst::Buffer holding protection system specific information. The reference count of the buffer will be incremented by one.
  origin | A string indicating where the protection information carried in the event was extracted from. The allowed values of this string will depend upon the protection scheme.

Returns
  A Gst::EVENT_PROTECTION event, if successful; `nullptr` if unsuccessful.

## parse()

void Gst::EventProtection::parse | ( | Glib::ustring & | system_id,
|  | Glib::RefPtr< Gst::Buffer >& | data,
|  | Glib::ustring & | origin
| ) |  | const

Parses an event containing protection system specific information and stores the results in system_id, data and origin.

Parameters

  system_id | Result location for the UUID string uniquely identifying a content protection system.
  data | Result location for the Gst::Buffer holding protection system specific information.
  origin | Result location for the value that indicates where the protection information carried by event was extracted from.

## parse_data() [1/2]

Glib::RefPtr<Gst::Buffer> Gst::EventProtection::parse_data | ( |  | ) |

Parse data of the protection event.

Returns
  The data.

## parse_data() [2/2]

Glib::RefPtr<const Gst::Buffer> Gst::EventProtection::parse_data | ( |  | ) | const

Parse data of the protection event.

Returns
  The data.

## parse_origin()

Glib::ustring Gst::EventProtection::parse_origin | ( |  | ) | const

Parse origin of the protection event.

Returns
  The origin.

## parse_system_id()

Glib::ustring Gst::EventProtection::parse_system_id | ( |  | ) | const

Parse UUID of the protection event.

Returns
  The UUID.