| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
| <html> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
| <title>GstController</title> |
| <meta name="generator" content="DocBook XSL Stylesheets V1.75.2"> |
| <link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual"> |
| <link rel="up" href="gstreamer-control.html" title="GStreamer Dynamic Parameter Control"> |
| <link rel="prev" href="gstreamer-control.html" title="GStreamer Dynamic Parameter Control"> |
| <link rel="next" href="GstControlSource.html" title="GstControlSource"> |
| <meta name="generator" content="GTK-Doc V1.18 (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="2"> |
| <tr valign="middle"> |
| <td><a accesskey="p" href="gstreamer-control.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> |
| <td><a accesskey="u" href="gstreamer-control.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> |
| <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> |
| <th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th> |
| <td><a accesskey="n" href="GstControlSource.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> |
| </tr> |
| <tr><td colspan="5" class="shortcuts"> |
| <a href="#GstController.synopsis" class="shortcut">Top</a> |
| | |
| <a href="#GstController.description" class="shortcut">Description</a> |
| | |
| <a href="#GstController.object-hierarchy" class="shortcut">Object Hierarchy</a> |
| | |
| <a href="#GstController.properties" class="shortcut">Properties</a> |
| </td></tr> |
| </table> |
| <div class="refentry"> |
| <a name="GstController"></a><div class="titlepage"></div> |
| <div class="refnamediv"><table width="100%"><tr> |
| <td valign="top"> |
| <h2><span class="refentrytitle"><a name="GstController.top_of_page"></a>GstController</span></h2> |
| <p>GstController — dynamic parameter control subsystem</p> |
| </td> |
| <td valign="top" align="right"></td> |
| </tr></table></div> |
| <div class="refsynopsisdiv"> |
| <a name="GstController.synopsis"></a><h2>Synopsis</h2> |
| <pre class="synopsis"> |
| #include <gst/controller/gstcontroller.h> |
| |
| struct <a class="link" href="GstController.html#GstController-struct" title="struct GstController">GstController</a>; |
| <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GstController.html#gst-controller-init" title="gst_controller_init ()">gst_controller_init</a> (<em class="parameter"><code><span class="type">int</span> *argc</code></em>, |
| <em class="parameter"><code><span class="type">char</span> ***argv</code></em>); |
| <a class="link" href="GstController.html" title="GstController"><span class="returnvalue">GstController</span></a> * <a class="link" href="GstController.html#gst-controller-new" title="gst_controller_new ()">gst_controller_new</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>, |
| <em class="parameter"><code>...</code></em>); |
| <a class="link" href="GstController.html" title="GstController"><span class="returnvalue">GstController</span></a> * <a class="link" href="GstController.html#gst-controller-new-list" title="gst_controller_new_list ()">gst_controller_new_list</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>, |
| <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *list</code></em>); |
| <a class="link" href="GstController.html" title="GstController"><span class="returnvalue">GstController</span></a> * <a class="link" href="GstController.html#gst-controller-new-valist" title="gst_controller_new_valist ()">gst_controller_new_valist</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>, |
| <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>); |
| <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GstController.html#gst-controller-remove-properties" title="gst_controller_remove_properties ()">gst_controller_remove_properties</a> (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>, |
| <em class="parameter"><code>...</code></em>); |
| <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GstController.html#gst-controller-remove-properties-list" title="gst_controller_remove_properties_list ()">gst_controller_remove_properties_list</a> |
| (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>, |
| <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *list</code></em>); |
| <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GstController.html#gst-controller-remove-properties-valist" title="gst_controller_remove_properties_valist ()">gst_controller_remove_properties_valist</a> |
| (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>, |
| <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>); |
| <span class="returnvalue">void</span> <a class="link" href="GstController.html#gst-controller-set-disabled" title="gst_controller_set_disabled ()">gst_controller_set_disabled</a> (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>, |
| <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> disabled</code></em>); |
| <span class="returnvalue">void</span> <a class="link" href="GstController.html#gst-controller-set-property-disabled" title="gst_controller_set_property_disabled ()">gst_controller_set_property_disabled</a> |
| (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>, |
| <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>, |
| <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> disabled</code></em>); |
| <a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a> <a class="link" href="GstController.html#gst-controller-suggest-next-sync" title="gst_controller_suggest_next_sync ()">gst_controller_suggest_next_sync</a> (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>); |
| <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GstController.html#gst-controller-sync-values" title="gst_controller_sync_values ()">gst_controller_sync_values</a> (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>, |
| <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>); |
| <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="returnvalue">GstControlSource</span></a> * <a class="link" href="GstController.html#gst-controller-get-control-source" title="gst_controller_get_control_source ()">gst_controller_get_control_source</a> (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>, |
| <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>); |
| <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GstController.html#gst-controller-set-control-source" title="gst_controller_set_control_source ()">gst_controller_set_control_source</a> (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>, |
| <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>, |
| <em class="parameter"><code><a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> *csource</code></em>); |
| <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="returnvalue">GValue</span></a> * <a class="link" href="GstController.html#gst-controller-get" title="gst_controller_get ()">gst_controller_get</a> (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>, |
| <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>, |
| <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>); |
| <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GstController.html#gst-controller-get-value-arrays" title="gst_controller_get_value_arrays ()">gst_controller_get_value_arrays</a> (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>, |
| <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>, |
| <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> *value_arrays</code></em>); |
| <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GstController.html#gst-controller-get-value-array" title="gst_controller_get_value_array ()">gst_controller_get_value_array</a> (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>, |
| <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>, |
| <em class="parameter"><code><a class="link" href="GstControlSource.html#GstValueArray" title="struct GstValueArray"><span class="type">GstValueArray</span></a> *value_array</code></em>); |
| </pre> |
| </div> |
| <div class="refsect1"> |
| <a name="GstController.object-hierarchy"></a><h2>Object Hierarchy</h2> |
| <pre class="synopsis"> |
| <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> |
| +----GstController |
| </pre> |
| </div> |
| <div class="refsect1"> |
| <a name="GstController.properties"></a><h2>Properties</h2> |
| <pre class="synopsis"> |
| "<a class="link" href="GstController.html#GstController--control-rate" title='The "control-rate" property'>control-rate</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read / Write |
| </pre> |
| </div> |
| <div class="refsect1"> |
| <a name="GstController.description"></a><h2>Description</h2> |
| <p> |
| The controller subsystem offers a lightweight way to adjust gobject |
| properties over stream-time. It works by using time-stamped value pairs that |
| are queued for element-properties. At run-time the elements continously pull |
| values changes for the current stream-time. |
| </p> |
| <p> |
| What needs to be changed in a <a href="../gstreamer-0.11/GstElement.html"><span class="type">GstElement</span></a>? |
| Very little - it is just two steps to make a plugin controllable! |
| </p> |
| <div class="orderedlist"><ol class="orderedlist" type="1"> |
| <li class="listitem"><p> |
| mark gobject-properties paramspecs that make sense to be controlled, |
| by GST_PARAM_CONTROLLABLE. |
| </p></li> |
| <li class="listitem"><p> |
| when processing data (get, chain, loop function) at the beginning call |
| gst_object_sync_values(element,timestamp). |
| This will made the controller to update all gobject properties that are under |
| control with the current values based on timestamp. |
| </p></li> |
| </ol></div> |
| <p> |
| </p> |
| <p> |
| What needs to be done in applications? |
| Again its not a lot to change. |
| </p> |
| <div class="orderedlist"><ol class="orderedlist" type="1"> |
| <li class="listitem"><p> |
| first put some properties under control, by calling |
| controller = gst_object_control_properties (object, "prop1", "prop2",...); |
| </p></li> |
| <li class="listitem"><p> |
| Get a <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> for the property and set it up. |
| csource = <a class="link" href="GstInterpolationControlSource.html#gst-interpolation-control-source-new" title="gst_interpolation_control_source_new ()"><code class="function">gst_interpolation_control_source_new()</code></a>; |
| gst_interpolation_control_source_set_interpolation_mode(csource, mode); |
| gst_interpolation_control_source_set (csource,0 * GST_SECOND, value1); |
| gst_interpolation_control_source_set (csource,1 * GST_SECOND, value2); |
| </p></li> |
| <li class="listitem"><p> |
| Set the <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> in the controller. |
| gst_controller_set_control_source (controller, "prop1", csource); |
| </p></li> |
| <li class="listitem"><p> |
| start your pipeline |
| </p></li> |
| </ol></div> |
| <p> |
| </p> |
| </div> |
| <div class="refsect1"> |
| <a name="GstController.details"></a><h2>Details</h2> |
| <div class="refsect2"> |
| <a name="GstController-struct"></a><h3>struct GstController</h3> |
| <pre class="programlisting">struct GstController;</pre> |
| <p> |
| The instance structure of GstController |
| </p> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-controller-init"></a><h3>gst_controller_init ()</h3> |
| <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_controller_init (<em class="parameter"><code><span class="type">int</span> *argc</code></em>, |
| <em class="parameter"><code><span class="type">char</span> ***argv</code></em>);</pre> |
| <p> |
| Initializes the use of the controller library. Suggested to be called right |
| after <a href="../gstreamer-0.11/gstreamer-Gst.html#gst-init"><code class="function">gst_init()</code></a>. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>argc</code></em> :</span></p></td> |
| <td>pointer to the commandline argument count</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>argv</code></em> :</span></p></td> |
| <td>pointer to the commandline argument values</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td>the <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for success.</td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-controller-new"></a><h3>gst_controller_new ()</h3> |
| <pre class="programlisting"><a class="link" href="GstController.html" title="GstController"><span class="returnvalue">GstController</span></a> * gst_controller_new (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>, |
| <em class="parameter"><code>...</code></em>);</pre> |
| <p> |
| Creates a new GstController for the given object's properties |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td> |
| <td>the object of which some properties should be controlled</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td> |
| <td> |
| <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated list of property names that should be controlled</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td>the new controller.</td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-controller-new-list"></a><h3>gst_controller_new_list ()</h3> |
| <pre class="programlisting"><a class="link" href="GstController.html" title="GstController"><span class="returnvalue">GstController</span></a> * gst_controller_new_list (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>, |
| <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *list</code></em>);</pre> |
| <p> |
| Creates a new GstController for the given object's properties |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td> |
| <td>the object of which some properties should be controlled</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td> |
| <td>list of property names that should be controlled</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td>the new controller.</td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-controller-new-valist"></a><h3>gst_controller_new_valist ()</h3> |
| <pre class="programlisting"><a class="link" href="GstController.html" title="GstController"><span class="returnvalue">GstController</span></a> * gst_controller_new_valist (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>, |
| <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre> |
| <p> |
| Creates a new GstController for the given object's properties |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td> |
| <td>the object of which some properties should be controlled</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>var_args</code></em> :</span></p></td> |
| <td> |
| <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated list of property names that should be controlled</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td>the new controller.</td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-controller-remove-properties"></a><h3>gst_controller_remove_properties ()</h3> |
| <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_controller_remove_properties (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>, |
| <em class="parameter"><code>...</code></em>);</pre> |
| <p> |
| Removes the given object properties from the controller |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td> |
| <td>the controller object from which some properties should be removed</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td> |
| <td> |
| <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated list of property names that should be removed</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> |
| <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if one of the given property isn't handled by the controller, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> otherwise</td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-controller-remove-properties-list"></a><h3>gst_controller_remove_properties_list ()</h3> |
| <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_controller_remove_properties_list |
| (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>, |
| <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *list</code></em>);</pre> |
| <p> |
| Removes the given object properties from the controller |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td> |
| <td>the controller object from which some properties should be removed</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td> |
| <td> |
| <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of property names that should be removed</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> |
| <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if one of the given property isn't handled by the controller, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> otherwise</td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-controller-remove-properties-valist"></a><h3>gst_controller_remove_properties_valist ()</h3> |
| <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_controller_remove_properties_valist |
| (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>, |
| <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre> |
| <p> |
| Removes the given object properties from the controller |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td> |
| <td>the controller object from which some properties should be removed</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>var_args</code></em> :</span></p></td> |
| <td> |
| <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated list of property names that should be removed</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> |
| <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if one of the given property isn't handled by the controller, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> otherwise</td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-controller-set-disabled"></a><h3>gst_controller_set_disabled ()</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> gst_controller_set_disabled (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>, |
| <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> disabled</code></em>);</pre> |
| <p> |
| This function is used to disable all properties of the <a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> |
| for some time, i.e. <a class="link" href="GstController.html#gst-controller-sync-values" title="gst_controller_sync_values ()"><code class="function">gst_controller_sync_values()</code></a> will do nothing. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td> |
| <td>the <a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> which should be disabled</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>disabled</code></em> :</span></p></td> |
| <td>boolean that specifies whether to disable the controller |
| or not.</td> |
| </tr> |
| </tbody> |
| </table></div> |
| <p class="since">Since 0.10.14</p> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-controller-set-property-disabled"></a><h3>gst_controller_set_property_disabled ()</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> gst_controller_set_property_disabled |
| (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>, |
| <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>, |
| <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> disabled</code></em>);</pre> |
| <p> |
| This function is used to disable the <a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> on a property for |
| some time, i.e. <a class="link" href="GstController.html#gst-controller-sync-values" title="gst_controller_sync_values ()"><code class="function">gst_controller_sync_values()</code></a> will do nothing for the |
| property. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td> |
| <td>the <a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> which should be disabled</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>property_name</code></em> :</span></p></td> |
| <td>property to disable</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>disabled</code></em> :</span></p></td> |
| <td>boolean that specifies whether to disable the controller |
| or not.</td> |
| </tr> |
| </tbody> |
| </table></div> |
| <p class="since">Since 0.10.14</p> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-controller-suggest-next-sync"></a><h3>gst_controller_suggest_next_sync ()</h3> |
| <pre class="programlisting"><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a> gst_controller_suggest_next_sync (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>);</pre> |
| <p> |
| Returns a suggestion for timestamps where buffers should be split |
| to get best controller results. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td> |
| <td>the controller that handles the values</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td>Returns the suggested timestamp or <a href="../gstreamer-0.11/GstClock.html#GST-CLOCK-TIME-NONE:CAPS"><code class="literal">GST_CLOCK_TIME_NONE</code></a> |
| if no control-rate was set.</td> |
| </tr> |
| </tbody> |
| </table></div> |
| <p class="since">Since 0.10.13</p> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-controller-sync-values"></a><h3>gst_controller_sync_values ()</h3> |
| <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_controller_sync_values (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>, |
| <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);</pre> |
| <p> |
| Sets the properties of the element, according to the controller that (maybe) |
| handles them and for the given timestamp. |
| </p> |
| <p> |
| If this function fails, it is most likely the application developers fault. |
| Most probably the control sources are not setup correctly. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td> |
| <td>the controller that handles the values</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td> |
| <td>the time that should be processed</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> |
| <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the controller values could be applied to the object |
| properties, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-controller-get-control-source"></a><h3>gst_controller_get_control_source ()</h3> |
| <pre class="programlisting"><a class="link" href="GstControlSource.html" title="GstControlSource"><span class="returnvalue">GstControlSource</span></a> * gst_controller_get_control_source (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>, |
| <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>);</pre> |
| <p> |
| Gets the corresponding <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> for the property. This should be unreferenced |
| again after use. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td> |
| <td>the controller object</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>property_name</code></em> :</span></p></td> |
| <td>name of the property for which the <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> should be get</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td>the <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> for <em class="parameter"><code>property_name</code></em> or NULL if the property is not |
| controlled by this controller or no <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> was assigned yet.</td> |
| </tr> |
| </tbody> |
| </table></div> |
| <p class="since">Since 0.10.14</p> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-controller-set-control-source"></a><h3>gst_controller_set_control_source ()</h3> |
| <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_controller_set_control_source (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>, |
| <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>, |
| <em class="parameter"><code><a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> *csource</code></em>);</pre> |
| <p> |
| Sets the <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> for <em class="parameter"><code>property_name</code></em>. If there already was a <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> |
| for this property it will be unreferenced. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td> |
| <td>the controller object</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>property_name</code></em> :</span></p></td> |
| <td>name of the property for which the <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> should be set</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>csource</code></em> :</span></p></td> |
| <td>the <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> that should be used for the property</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> |
| <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the given property isn't handled by the controller or the new <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> |
| couldn't be bound to the property, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if everything worked as expected.</td> |
| </tr> |
| </tbody> |
| </table></div> |
| <p class="since">Since 0.10.14</p> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-controller-get"></a><h3>gst_controller_get ()</h3> |
| <pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="returnvalue">GValue</span></a> * gst_controller_get (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>, |
| <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>, |
| <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);</pre> |
| <p> |
| Gets the value for the given controller-handled property at the requested |
| time. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td> |
| <td>the controller object which handles the properties</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>property_name</code></em> :</span></p></td> |
| <td>the name of the property to get</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td> |
| <td>the time the control-change should be read from</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td>the GValue of the property at the given time, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the |
| property isn't handled by the controller</td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-controller-get-value-arrays"></a><h3>gst_controller_get_value_arrays ()</h3> |
| <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_controller_get_value_arrays (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>, |
| <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>, |
| <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> *value_arrays</code></em>);</pre> |
| <p> |
| Function to be able to get an array of values for one or more given element |
| properties. |
| </p> |
| <p> |
| All fields of the <a class="link" href="GstControlSource.html#GstValueArray" title="struct GstValueArray"><code class="literal">GstValueArray</code></a> in the list must be filled correctly. |
| Especially the GstValueArray->values arrays must be big enough to keep |
| the requested amount of values. |
| </p> |
| <p> |
| The types of the values in the array are the same as the property's type. |
| </p> |
| <p> |
| </p> |
| <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> |
| <h3 class="title">Note</h3> |
| <p>This doesn't modify the controlled GObject properties!</p> |
| </div> |
| <p> |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td> |
| <td>the controller that handles the values</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td> |
| <td>the time that should be processed</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>value_arrays</code></em> :</span></p></td> |
| <td>list to return the control-values in</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> |
| <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the given array(s) could be filled, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-controller-get-value-array"></a><h3>gst_controller_get_value_array ()</h3> |
| <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_controller_get_value_array (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>, |
| <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>, |
| <em class="parameter"><code><a class="link" href="GstControlSource.html#GstValueArray" title="struct GstValueArray"><span class="type">GstValueArray</span></a> *value_array</code></em>);</pre> |
| <p> |
| Function to be able to get an array of values for one element property. |
| </p> |
| <p> |
| All fields of <em class="parameter"><code>value_array</code></em> must be filled correctly. Especially the |
| <em class="parameter"><code>value_array->values</code></em> array must be big enough to keep the requested amount |
| of values (as indicated by the nbsamples field). |
| </p> |
| <p> |
| The type of the values in the array is the same as the property's type. |
| </p> |
| <p> |
| </p> |
| <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> |
| <h3 class="title">Note</h3> |
| <p>This doesn't modify the controlled GObject property!</p> |
| </div> |
| <p> |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td> |
| <td>the controller that handles the values</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td> |
| <td>the time that should be processed</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>value_array</code></em> :</span></p></td> |
| <td>array to put control-values in</td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> |
| <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the given array could be filled, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| </div> |
| <div class="refsect1"> |
| <a name="GstController.property-details"></a><h2>Property Details</h2> |
| <div class="refsect2"> |
| <a name="GstController--control-rate"></a><h3>The <code class="literal">"control-rate"</code> property</h3> |
| <pre class="programlisting"> "control-rate" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read / Write</pre> |
| <p>Controlled properties will be updated at least every control-rate nanoseconds.</p> |
| <p>Allowed values: [1,4294967295]</p> |
| <p>Default value: 100000000</p> |
| </div> |
| </div> |
| </div> |
| <div class="footer"> |
| <hr> |
| Generated by GTK-Doc V1.18</div> |
| </body> |
| </html> |