Context

#GstContext 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 #GstElementClass.set_context() 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.

#GstContext<!-- -->s can be persistent. A persistent #GstContext is kept in elements when they reach %GST_STATE_NULL, non-persistent ones will be removed. Also, a non-persistent context won't override a previous persistent context set to an element.

Constructors

this
this(GstContext* gstContext, bool ownedRef)

Sets our main struct and passes it to the parent class.

this
this(string contextType, bool persistent)

Create a new context.

Members

Functions

getContextStruct
GstContext* getContextStruct(bool transferOwnership)

Get the main Gtk struct

getContextType
string getContextType()

Get the type of @context.

getStruct
void* getStruct()

the main Gtk struct as a void*

getStructure
Structure getStructure()

Access the structure of the context.

hasContextType
bool hasContextType(string contextType)

Checks if @context has @context_type.

isPersistent
bool isPersistent()

Check if @context is persistent.

writableStructure
Structure writableStructure()

Get a writable version of the structure.

Static functions

getType
GType getType()

Variables

gstContext
GstContext* gstContext;

the main Gtk struct

ownedRef
bool ownedRef;
Undocumented in source.

Meta