Gst::Context Class Reference

Lightweight objects to represent element contexts. More...

`#include <gstreamermm/context.h>`

Inheritance diagram for Gst::Context:
[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
Context& | operator= (const Context&)=delete
Glib::RefPtr< Gst::Context > | copy () 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
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::Context > | create (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::Context > | wrap (GstContext* 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...

## 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_type | Context type.
  persistent | Persistent 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_type | Context 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

  object | The C instance.
  take_copy | False 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.