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

A stream-start event. More...

#include <gstreamermm/event.h>

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

Public Member Functions

Glib::ustring parse_stream_id () const
 Parse a stream-id event. More...
 
void set_stream_flags (Gst::StreamFlags flags)
 
Gst::StreamFlags parse_stream_flags () const
 Parse a stream flag. More...
 
bool parse_group_id (guint& group_id) const
 
void set_group_id (guint group_id)
 All streams that have the same group id are supposed to be played together, i.e. all streams inside a container file should have the same group id but different stream ids. 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
 
Eventoperator= (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::Eventcopy () const
 Copy the event using the event specific copy function. More...
 
Glib::RefPtr< Gst::Eventcreate_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
 
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::EventStreamStartcreate (const Glib::ustring& stream_id)
 Create a new STREAM_START event. 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)
 

Detailed Description

A stream-start event.

See create() for more details.

Member Function Documentation

◆ create()

static Glib::RefPtr<Gst::EventStreamStart> Gst::EventStreamStart::create ( const Glib::ustring &  stream_id)
static

Create a new STREAM_START event.

The stream start event can only travel downstream synchronized with the buffer flow. It is expected to be the first event that is sent for a new stream.

Source elements, demuxers and other elements that create new streams are supposed to send this event as the first event of a new stream. It should not be sent after a flushing seek or in similar situations and is used to mark the beginning of a new logical stream. Elements combining multiple streams must ensure that this event is only forwarded downstream once and not for every single input stream.

The stream_id should be a unique string that consists of the upstream stream-id, / as separator and a unique stream-id for this specific stream. A new stream-id should only be created for a stream if the upstream stream is split into (potentially) multiple new streams, e.g. in a demuxer, but not for every single element in the pipeline. Gst::Pad::create_stream_id() or Gst::Pad::create_stream_id_printf() can be used to create a stream-id. There are no particular semantics for the stream-id, though it should be deterministic (to support stream matching) and it might be used to order streams (besides any information conveyed by stream flags).

Parameters
stream_idIdentifier for this stream.
Returns
The new STREAM_START event.

◆ parse_group_id()

bool Gst::EventStreamStart::parse_group_id ( guint &  group_id) const
Parameters
group_idAddress of variable where to store the group id.
Returns
true if a group id was set on the event and could be parsed, false otherwise.

◆ parse_stream_flags()

Gst::StreamFlags Gst::EventStreamStart::parse_stream_flags ( ) const

Parse a stream flag.

Returns
A stream flags.

◆ parse_stream_id()

Glib::ustring Gst::EventStreamStart::parse_stream_id ( ) const

Parse a stream-id event.

Returns
A stream id.

◆ set_group_id()

void Gst::EventStreamStart::set_group_id ( guint  group_id)

All streams that have the same group id are supposed to be played together, i.e. all streams inside a container file should have the same group id but different stream ids.

The group id should change each time the stream is started, resulting in different group ids each time a file is played for example.

Use gst_util_group_id_next() to get a new group id.

Parameters
group_idThe group id to set.

◆ set_stream_flags()

void Gst::EventStreamStart::set_stream_flags ( Gst::StreamFlags  flags)
Parameters
flagsThe stream flags to set.