blob: c8827321922736f8c01416efe2881879a61a46f4 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GstContext: GStreamer 1.0 Core Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
<link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
<link rel="prev" href="gstreamer-gstconfig.html" title="gstconfig">
<link rel="next" href="GstControlBinding.html" title="GstControlBinding">
<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
<a href="#GstContext.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
<a href="#GstContext.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="gstreamer-gstconfig.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="GstControlBinding.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="GstContext"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="GstContext.top_of_page"></a>GstContext</span></h2>
<p>GstContext — Lightweight objects to represent element contexts</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="GstContext.functions"></a><h2>Functions</h2>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="functions_return">
<col class="functions_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<a class="link" href="GstContext.html" title="GstContext"><span class="returnvalue">GstContext</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstContext.html#gst-context-new" title="gst_context_new ()">gst_context_new</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstContext.html" title="GstContext"><span class="returnvalue">GstContext</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstContext.html#gst-context-ref" title="gst_context_ref ()">gst_context_ref</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstContext.html#gst-context-unref" title="gst_context_unref ()">gst_context_unref</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstContext.html" title="GstContext"><span class="returnvalue">GstContext</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstContext.html#gst-context-copy" title="gst_context_copy ()">gst_context_copy</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstContext.html#gst-context-get-context-type" title="gst_context_get_context_type ()">gst_context_get_context_type</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstContext.html#gst-context-has-context-type" title="gst_context_has_context_type ()">gst_context_has_context_type</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstContext.html#gst-context-is-persistent" title="gst_context_is_persistent ()">gst_context_is_persistent</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <a class="link" href="GstStructure.html" title="GstStructure"><span class="returnvalue">GstStructure</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstContext.html#gst-context-get-structure" title="gst_context_get_structure ()">gst_context_get_structure</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GstStructure.html" title="GstStructure"><span class="returnvalue">GstStructure</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstContext.html#gst-context-writable-structure" title="gst_context_writable_structure ()">gst_context_writable_structure</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstContext.html#gst-context-make-writable" title="gst_context_make_writable()">gst_context_make_writable</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GstContext.html#gst-context-is-writable" title="gst_context_is_writable()">gst_context_is_writable</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstContext.html#gst-context-replace" title="gst_context_replace ()">gst_context_replace</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GstContext.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="name">
<col class="description">
</colgroup>
<tbody><tr>
<td class="datatype_keyword"> </td>
<td class="function_name"><a class="link" href="GstContext.html#GstContext-struct" title="GstContext">GstContext</a></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GstContext.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="screen"> <a href="https://developer.gnome.org/gobject/unstable/gobject-Boxed-Types.html">GBoxed</a>
<span class="lineart">╰──</span> GstContext
</pre>
</div>
<div class="refsect1">
<a name="GstContext.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;gst/gst.h&gt;
</pre>
</div>
<div class="refsect1">
<a name="GstContext.description"></a><h2>Description</h2>
<p><a class="link" href="GstContext.html" title="GstContext"><span class="type">GstContext</span></a> 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.</p>
<p>Applications can set a context on a complete pipeline by using
<a class="link" href="GstElement.html#gst-element-set-context" title="gst_element_set_context ()"><code class="function">gst_element_set_context()</code></a>, which will then be propagated to all
child elements. Elements can handle these in <a class="link" href="GstElement.html#GstElementClass.set-context"><code class="function">GstElementClass.set_context()</code></a>
and merge them with the context information they already have.</p>
<p>When an element needs a context it will do the following actions in this
order until one step succeeds:</p>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem"><p>Check if the element already has a context</p></li>
<li class="listitem"><p>Query downstream with GST_QUERY_CONTEXT for the context</p></li>
<li class="listitem"><p>Query upstream with GST_QUERY_CONTEXT for the context</p></li>
<li class="listitem"><p>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</p></li>
<li class="listitem"><p>Create a context by itself and post a GST_MESSAGE_HAVE_CONTEXT message
on the bus.</p></li>
</ol></div>
<p>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.</p>
</div>
<div class="refsect1">
<a name="GstContext.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="gst-context-new"></a><h3>gst_context_new ()</h3>
<pre class="programlisting"><a class="link" href="GstContext.html" title="GstContext"><span class="returnvalue">GstContext</span></a> *
gst_context_new (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *context_type</code></em>,
<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> persistent</code></em>);</pre>
<p>Create a new context.</p>
<div class="refsect3">
<a name="id-1.3.17.8.2.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>context_type</p></td>
<td class="parameter_description"><p>Context type</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>persistent</p></td>
<td class="parameter_description"><p>Persistent context</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.3.17.8.2.6"></a><h4>Returns</h4>
<p> The new context. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: 1.2</p>
</div>
<hr>
<div class="refsect2">
<a name="gst-context-ref"></a><h3>gst_context_ref ()</h3>
<pre class="programlisting"><a class="link" href="GstContext.html" title="GstContext"><span class="returnvalue">GstContext</span></a> *
gst_context_ref (<em class="parameter"><code><a class="link" href="GstContext.html" title="GstContext"><span class="type">GstContext</span></a> *context</code></em>);</pre>
<p>Convenience macro to increase the reference count of the context.</p>
<div class="refsect3">
<a name="id-1.3.17.8.3.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>context</p></td>
<td class="parameter_description"><p>the context to ref</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.3.17.8.3.6"></a><h4>Returns</h4>
<p> <em class="parameter"><code>context</code></em>
(for convenience when doing assignments)</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-context-unref"></a><h3>gst_context_unref ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_context_unref (<em class="parameter"><code><a class="link" href="GstContext.html" title="GstContext"><span class="type">GstContext</span></a> *context</code></em>);</pre>
<p>Convenience macro to decrease the reference count of the context, possibly
freeing it.</p>
<div class="refsect3">
<a name="id-1.3.17.8.4.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>context</p></td>
<td class="parameter_description"><p>the context to unref</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-context-copy"></a><h3>gst_context_copy ()</h3>
<pre class="programlisting"><a class="link" href="GstContext.html" title="GstContext"><span class="returnvalue">GstContext</span></a> *
gst_context_copy (<em class="parameter"><code>const <a class="link" href="GstContext.html" title="GstContext"><span class="type">GstContext</span></a> *context</code></em>);</pre>
<p>Creates a copy of the context. Returns a copy of the context.</p>
<div class="refsect3">
<a name="id-1.3.17.8.5.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>context</p></td>
<td class="parameter_description"><p>the context to copy</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.3.17.8.5.6"></a><h4>Returns</h4>
<p> a new copy of <em class="parameter"><code>context</code></em>
.</p>
<p>MT safe. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-context-get-context-type"></a><h3>gst_context_get_context_type ()</h3>
<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
gst_context_get_context_type (<em class="parameter"><code>const <a class="link" href="GstContext.html" title="GstContext"><span class="type">GstContext</span></a> *context</code></em>);</pre>
<p>Get the type of <em class="parameter"><code>context</code></em>
.</p>
<div class="refsect3">
<a name="id-1.3.17.8.6.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>context</p></td>
<td class="parameter_description"><p>The <a class="link" href="GstContext.html" title="GstContext"><span class="type">GstContext</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.3.17.8.6.6"></a><h4>Returns</h4>
<p> The type of the context.</p>
</div>
<p class="since">Since: 1.2</p>
</div>
<hr>
<div class="refsect2">
<a name="gst-context-has-context-type"></a><h3>gst_context_has_context_type ()</h3>
<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
gst_context_has_context_type (<em class="parameter"><code>const <a class="link" href="GstContext.html" title="GstContext"><span class="type">GstContext</span></a> *context</code></em>,
<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *context_type</code></em>);</pre>
<p>Checks if <em class="parameter"><code>context</code></em>
has <em class="parameter"><code>context_type</code></em>
.</p>
<div class="refsect3">
<a name="id-1.3.17.8.7.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>context</p></td>
<td class="parameter_description"><p>The <a class="link" href="GstContext.html" title="GstContext"><span class="type">GstContext</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>context_type</p></td>
<td class="parameter_description"><p>Context type to check.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.3.17.8.7.6"></a><h4>Returns</h4>
<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>context</code></em>
has <em class="parameter"><code>context_type</code></em>
.</p>
</div>
<p class="since">Since: 1.2</p>
</div>
<hr>
<div class="refsect2">
<a name="gst-context-is-persistent"></a><h3>gst_context_is_persistent ()</h3>
<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
gst_context_is_persistent (<em class="parameter"><code>const <a class="link" href="GstContext.html" title="GstContext"><span class="type">GstContext</span></a> *context</code></em>);</pre>
<p>Check if <em class="parameter"><code>context</code></em>
is persistent.</p>
<div class="refsect3">
<a name="id-1.3.17.8.8.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>context</p></td>
<td class="parameter_description"><p>The <a class="link" href="GstContext.html" title="GstContext"><span class="type">GstContext</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.3.17.8.8.6"></a><h4>Returns</h4>
<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the context is persistent.</p>
</div>
<p class="since">Since: 1.2</p>
</div>
<hr>
<div class="refsect2">
<a name="gst-context-get-structure"></a><h3>gst_context_get_structure ()</h3>
<pre class="programlisting">const <a class="link" href="GstStructure.html" title="GstStructure"><span class="returnvalue">GstStructure</span></a> *
gst_context_get_structure (<em class="parameter"><code>const <a class="link" href="GstContext.html" title="GstContext"><span class="type">GstContext</span></a> *context</code></em>);</pre>
<p>Access the structure of the context.</p>
<div class="refsect3">
<a name="id-1.3.17.8.9.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>context</p></td>
<td class="parameter_description"><p>The <a class="link" href="GstContext.html" title="GstContext"><span class="type">GstContext</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.3.17.8.9.6"></a><h4>Returns</h4>
<p> 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. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
<p class="since">Since: 1.2</p>
</div>
<hr>
<div class="refsect2">
<a name="gst-context-writable-structure"></a><h3>gst_context_writable_structure ()</h3>
<pre class="programlisting"><a class="link" href="GstStructure.html" title="GstStructure"><span class="returnvalue">GstStructure</span></a> *
gst_context_writable_structure (<em class="parameter"><code><a class="link" href="GstContext.html" title="GstContext"><span class="type">GstContext</span></a> *context</code></em>);</pre>
<p>Get a writable version of the structure.</p>
<div class="refsect3">
<a name="id-1.3.17.8.10.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>context</p></td>
<td class="parameter_description"><p>The <a class="link" href="GstContext.html" title="GstContext"><span class="type">GstContext</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.3.17.8.10.6"></a><h4>Returns</h4>
<p> The structure of the context. The structure is still
owned by the event, which means that you should not free it and
that the pointer becomes invalid when you free the event.
This function checks if <em class="parameter"><code>context</code></em>
is writable.</p>
</div>
<p class="since">Since: 1.2</p>
</div>
<hr>
<div class="refsect2">
<a name="gst-context-make-writable"></a><h3>gst_context_make_writable()</h3>
<pre class="programlisting">#define gst_context_make_writable(context) GST_CONTEXT_CAST (gst_mini_object_make_writable (GST_MINI_OBJECT_CAST (context)))
</pre>
<p>Checks if a context is writable. If not, a writable copy is made and
returned.</p>
<div class="refsect3">
<a name="id-1.3.17.8.11.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>context</p></td>
<td class="parameter_description"><p> the context to make writable. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.3.17.8.11.6"></a><h4>Returns</h4>
<p> a context (possibly a duplicate) that is writable.</p>
<p>MT safe. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-context-is-writable"></a><h3>gst_context_is_writable()</h3>
<pre class="programlisting">#define gst_context_is_writable(context) gst_mini_object_is_writable (GST_MINI_OBJECT_CAST (context))
</pre>
<p>Tests if you can safely write into a context's structure or validly
modify the seqnum and timestamp fields.</p>
<div class="refsect3">
<a name="id-1.3.17.8.12.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>context</p></td>
<td class="parameter_description"><p>a <a class="link" href="GstContext.html" title="GstContext"><span class="type">GstContext</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-context-replace"></a><h3>gst_context_replace ()</h3>
<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
gst_context_replace (<em class="parameter"><code><a class="link" href="GstContext.html" title="GstContext"><span class="type">GstContext</span></a> **old_context</code></em>,
<em class="parameter"><code><a class="link" href="GstContext.html" title="GstContext"><span class="type">GstContext</span></a> *new_context</code></em>);</pre>
<p>Modifies a pointer to a <a class="link" href="GstContext.html" title="GstContext"><span class="type">GstContext</span></a> to point to a different <a class="link" href="GstContext.html" title="GstContext"><span class="type">GstContext</span></a>. 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).</p>
<p>Either <em class="parameter"><code>new_context</code></em>
or the <a class="link" href="GstContext.html" title="GstContext"><span class="type">GstContext</span></a> pointed to by <em class="parameter"><code>old_context</code></em>
may be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
<div class="refsect3">
<a name="id-1.3.17.8.13.6"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>old_context</p></td>
<td class="parameter_description"><p> pointer to a pointer to a <a class="link" href="GstContext.html" title="GstContext"><span class="type">GstContext</span></a>
to be replaced. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>new_context</p></td>
<td class="parameter_description"><p> pointer to a <a class="link" href="GstContext.html" title="GstContext"><span class="type">GstContext</span></a> that will
replace the context pointed to by <em class="parameter"><code>old_context</code></em>
. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.3.17.8.13.7"></a><h4>Returns</h4>
<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>new_context</code></em>
was different from <em class="parameter"><code>old_context</code></em>
</p>
</div>
</div>
</div>
<div class="refsect1">
<a name="GstContext.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="GstContext-struct"></a><h3>GstContext</h3>
<pre class="programlisting">typedef struct _GstContext GstContext;</pre>
</div>
</div>
<div class="refsect1">
<a name="GstContext.see-also"></a><h2>See Also</h2>
<p><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a>, <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a></p>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.24</div>
</body>
</html>