diff --git a/markdown/design/context.md b/markdown/design/context.md index ef35aef908..1954a2ebdb 100644 --- a/markdown/design/context.md +++ b/markdown/design/context.md @@ -1,7 +1,7 @@ # Context -GstContext is a container object, containing a type string and a generic -GstStructure. It is used to store and propagate context information in a +`GstContext` is a container object, containing a type string and a generic +`GstStructure`. It is used to store and propagate context information in a pipeline, like device handles, display server connections and other information that should be shared between multiple elements in a pipeline. @@ -22,40 +22,40 @@ Elements that need a specific context for their operation would do the following steps until one succeeds: 1) Check if the element already has a context of the specific type, - i.e. it was previously set via gst_element_set_context(). + i.e. it was previously set via `gst_element_set_context()`. -2) Query downstream with GST_QUERY_CONTEXT for the context and check if +2) Query downstream with `GST_QUERY_CONTEXT` for the context and check if downstream already has a context of the specific type -3) Query upstream with GST_QUERY_CONTEXT for the context and check if +3) Query upstream with `GST_QUERY_CONTEXT` for the context and check if upstream already has a context of the specific type -4) Post a GST_MESSAGE_NEED_CONTEXT message on the bus with the required +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 as in 1). The message could be handled by the parent bins of the element and the application. -4) Create a context by itself and post a GST_MESSAGE_HAVE_CONTEXT message +4) Create a context by itself and post a `GST_MESSAGE_HAVE_CONTEXT` message on the bus. Bins will propagate any context that is set on them to their child -elements via gst\_element\_set\_context(). Even to elements added after +elements via `gst_element_set_context()`. Even to elements added after a given context has been set. -Bins can handle the GST\_MESSAGE\_NEED\_CONTEXT message, can filter both +Bins can handle the `GST_MESSAGE_NEED_CONTEXT` message, can filter both messages and can also set different contexts for different pipeline parts. ## Applications Applications can set a specific context on a pipeline or elements inside -a pipeline with gst\_element\_set\_context(). +a pipeline with `gst_element_set_context()`. If an element inside the pipeline needs a specific context, it will post -a GST\_MESSAGE\_NEED\_CONTEXT message on the bus. The application can +a `GST_MESSAGE_NEED_CONTEXT` message on the bus. The application can now create a context of the requested type or pass an already existing context to the element (or to the complete pipeline). Whenever an element creates a context internally it will post a -GST\_MESSAGE\_HAVE\_CONTEXT message on the bus. Bins will cache these +`GST_MESSAGE_HAVE_CONTEXT` message on the bus. Bins will cache these contexts and pass them to any future element that requests them.