gstreamermm  1.10.0
Public Member Functions | Static Public Member Functions | Protected Member Functions | Related Functions | List of all members
Gst::Context Class Reference

Lightweight objects to represent element contexts. More...

#include <gstreamermm/context.h>

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

Public Member Functions

void reference () const
 Increment the reference count for this object. More...
 
void unreference () const
 Decrement the reference count for this object. More...
 
GstContext* gobj ()
 Provides access to the underlying C instance. More...
 
const GstContext* gobj () const
 Provides access to the underlying C instance. More...
 
GstContext* 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...
 
 Context ()=delete
 
 Context (const Context&)=delete
 
Contextoperator= (const Context&)=delete
 
Glib::RefPtr< Gst::Contextcopy () const
 Creates a copy of the context. More...
 
Glib::ustring get_context_type () const
 Get the type of context. More...
 
bool has_context_type (const Glib::ustring& context_type) const
 Checks if context has context_type. More...
 
bool is_persistent () const
 Check if context is persistent. More...
 
Gst::Structure writable_structure () const
 Get a writable version of the structure. 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::Contextcreate (const Glib::ustring& context_type, bool persistent)
 Create a new context. More...
 

Protected Member Functions

void operator delete (void*, std::size_t)
 
- Protected Member Functions inherited from Gst::MiniObject
void operator delete (void*, std::size_t)
 

Related Functions

(Note that these are not member functions.)

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

Additional Inherited Members

- Public Types inherited from Gst::MiniObject
typedef sigc::slot< void > SlotFinalizer
 

Detailed Description

Lightweight objects to represent element contexts.

Gst::Context is a container object used to store contexts like a device context, a display server connection and similar concepts that should be shared between multiple elements.

Applications can set a context on a complete pipeline by using Gst::Element::set_context(), which will then be propagated to all child elements. Elements can handle these in Gst::Element::set_context_vfunc() and merge them with the context information they already have.

When an element needs a context it will do the following actions in this order until one step succeeds:

  1. Check if the element already has a context
  2. Query downstream with Gst::QUERY_CONTEXT for the context
  3. Query upstream with Gst::QUERY_CONTEXT for the context
  4. Post a Gst::MESSAGE_NEED_CONTEXT message on the bus with the required context types and afterwards check if a usable context was set now
  5. Create a context by itself and post a Gst::MESSAGE_HAVE_CONTEXT message on the bus.

Bins will catch Gst::MESSAGE_NEED_CONTEXT messages and will set any previously known context on the element that asks for it if possible. Otherwise the application should provide one if it can.

Last reviewed on 2016-05-16 (1.8.0)

Since: 1.2

Constructor & Destructor Documentation

◆ Context() [1/2]

Gst::Context::Context ( )
delete

◆ Context() [2/2]

Gst::Context::Context ( const Context )
delete

Member Function Documentation

◆ copy()

Glib::RefPtr<Gst::Context> Gst::Context::copy ( ) const

Creates a copy of the context.

Returns a copy of the context.

Returns
A new copy of context.

MT safe.

◆ create()

static Glib::RefPtr<Gst::Context> Gst::Context::create ( const Glib::ustring &  context_type,
bool  persistent 
)
static

Create a new context.

Parameters
context_typeContext type.
persistentPersistent context.
Returns
The new context.

◆ get_context_type()

Glib::ustring Gst::Context::get_context_type ( ) const

Get the type of context.

Returns
The type of the context.

◆ gobj() [1/2]

GstContext* Gst::Context::gobj ( )

Provides access to the underlying C instance.

◆ gobj() [2/2]

const GstContext* Gst::Context::gobj ( ) const

Provides access to the underlying C instance.

◆ gobj_copy()

GstContext* Gst::Context::gobj_copy ( ) const

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

◆ has_context_type()

bool Gst::Context::has_context_type ( const Glib::ustring &  context_type) const

Checks if context has context_type.

Parameters
context_typeContext type to check.
Returns
true if context has context_type.

◆ is_persistent()

bool Gst::Context::is_persistent ( ) const

Check if context is persistent.

Returns
true if the context is persistent.

◆ operator delete()

void Gst::Context::operator delete ( void *  ,
std::size_t   
)
protected

◆ operator=()

Context& Gst::Context::operator= ( const Context )
delete

◆ reference()

void Gst::Context::reference ( ) const

Increment the reference count for this object.

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

◆ unreference()

void Gst::Context::unreference ( ) const

Decrement the reference count for this object.

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

◆ writable_structure()

Gst::Structure Gst::Context::writable_structure ( ) const

Get a writable version of the structure.

Returns
The structure of the context. The structure is still owned by the context, which means that you should not free it and that the pointer becomes invalid when you free the context. This function checks if context is writable.

Friends And Related Function Documentation

◆ wrap()

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