Class Context
- All Implemented Interfaces:
Proxy
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 QueryType.CONTEXT
for the context
3. Query upstream with QueryType.CONTEXT
for the context
4. Post a MessageType.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 MessageType.HAVE_CONTEXT
message
on the bus.
Bins will catch MessageType.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
can be persistent.
A persistent GstContext
is kept in elements when they reach
State.NULL
, non-persistent ones will be removed.
Also, a non-persistent context won't override a previous persistent
context set to an element.
-
Constructor Summary
ConstructorDescriptionContext
(MemorySegment address) Create a Context proxy instance for the provided memory address.Creates a new context. -
Method Summary
Modifier and TypeMethodDescriptioncopy()
Creates a copy of the context.Gets the type of this Context.Accesses the structure of the context.static Type
getType()
Get the GType of the Context classboolean
hasContextType
(String contextType) Checks if this Context hascontextType
.boolean
Checks if this Context is persistent.ref()
Convenience macro to increase the reference count of the context.static boolean
Modifies a pointer to aGstContext
to point to a differentGstContext
.void
unref()
Convenience macro to decrease the reference count of the context, possibly freeing it.Gets a writable version of the structure.Methods inherited from class io.github.jwharm.javagi.base.ProxyInstance
equals, handle, hashCode
-
Constructor Details
-
Method Details
-
getType
-
replace
Modifies a pointer to aGstContext
to point to a differentGstContext
. The modification is done atomically (so this is useful for ensuring thread safety in some cases), and the reference counts are updated appropriately (the old context is unreffed, the new one is reffed).Either
newContext
or theGstContext
pointed to byoldContext
may benull
.- Parameters:
oldContext
- pointer to a pointer to aGstContext
to be replaced.newContext
- pointer to aGstContext
that will replace the context pointed to byoldContext
.- Returns:
true
ifnewContext
was different fromoldContext
-
copy
Creates a copy of the context. Returns a copy of the context.- Returns:
- a new copy of this Context.
MT safe
-
getContextType
-
getStructure
Accesses the structure of the context.- Returns:
- The structure of the context. The structure is still owned by the context, which means that you should not modify it, free it and that the pointer becomes invalid when you free the context.
-
hasContextType
Checks if this Context hascontextType
.- Parameters:
contextType
- Context type to check.- Returns:
true
if this Context hascontextType
.
-
isPersistent
public boolean isPersistent()Checks if this Context is persistent.- Returns:
true
if the context is persistent.
-
ref
Convenience macro to increase the reference count of the context.- Returns:
- this Context (for convenience when doing assignments)
-
unref
public void unref()Convenience macro to decrease the reference count of the context, possibly freeing it. -
writableStructure
Gets 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 this Context is writable.
-