Initialize Tizen 2.3
[framework/multimedia/gstreamer0.10.git] / mobile / docs / gst / html / GstTask.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>GstTask</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
7 <link rel="home" href="index.html" title="GStreamer 0.10 Core Reference Manual">
8 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
9 <link rel="prev" href="GstTagSetter.html" title="GstTagSetter">
10 <link rel="next" href="GstTaskPool.html" title="GstTaskPool">
11 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 </head>
14 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
16 <tr valign="middle">
17 <td><a accesskey="p" href="GstTagSetter.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
18 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
19 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
20 <th width="100%" align="center">GStreamer 0.10 Core Reference Manual</th>
21 <td><a accesskey="n" href="GstTaskPool.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
22 </tr>
23 <tr><td colspan="5" class="shortcuts">
24 <a href="#GstTask.synopsis" class="shortcut">Top</a>
25                    | 
26                   <a href="#GstTask.description" class="shortcut">Description</a>
27                    | 
28                   <a href="#GstTask.object-hierarchy" class="shortcut">Object Hierarchy</a>
29 </td></tr>
30 </table>
31 <div class="refentry">
32 <a name="GstTask"></a><div class="titlepage"></div>
33 <div class="refnamediv"><table width="100%"><tr>
34 <td valign="top">
35 <h2><span class="refentrytitle"><a name="GstTask.top_of_page"></a>GstTask</span></h2>
36 <p>GstTask — Abstraction of GStreamer streaming threads.</p>
37 </td>
38 <td valign="top" align="right"></td>
39 </tr></table></div>
40 <div class="refsynopsisdiv">
41 <a name="GstTask.synopsis"></a><h2>Synopsis</h2>
42 <pre class="synopsis">
43 #include &lt;gst/gst.h&gt;
44
45 struct              <a class="link" href="GstTask.html#GstTask-struct" title="struct GstTask">GstTask</a>;
46 <span class="returnvalue">void</span>                (<a class="link" href="GstTask.html#GstTaskFunction" title="GstTaskFunction ()">*GstTaskFunction</a>)                  (<em class="parameter"><code><span class="type">void</span> *data</code></em>);
47 enum                <a class="link" href="GstTask.html#GstTaskState" title="enum GstTaskState">GstTaskState</a>;
48 #define             <a class="link" href="GstTask.html#GST-TASK-BROADCAST:CAPS" title="GST_TASK_BROADCAST()">GST_TASK_BROADCAST</a>                  (task)
49 #define             <a class="link" href="GstTask.html#GST-TASK-GET-COND:CAPS" title="GST_TASK_GET_COND()">GST_TASK_GET_COND</a>                   (task)
50 #define             <a class="link" href="GstTask.html#GST-TASK-GET-LOCK:CAPS" title="GST_TASK_GET_LOCK()">GST_TASK_GET_LOCK</a>                   (task)
51 #define             <a class="link" href="GstTask.html#GST-TASK-SIGNAL:CAPS" title="GST_TASK_SIGNAL()">GST_TASK_SIGNAL</a>                     (task)
52 #define             <a class="link" href="GstTask.html#GST-TASK-STATE:CAPS" title="GST_TASK_STATE()">GST_TASK_STATE</a>                      (task)
53 #define             <a class="link" href="GstTask.html#GST-TASK-WAIT:CAPS" title="GST_TASK_WAIT()">GST_TASK_WAIT</a>                       (task)
54 <a class="link" href="GstTask.html" title="GstTask"><span class="returnvalue">GstTask</span></a> *           <a class="link" href="GstTask.html#gst-task-create" title="gst_task_create ()">gst_task_create</a>                     (<em class="parameter"><code><a class="link" href="GstTask.html#GstTaskFunction" title="GstTaskFunction ()"><span class="type">GstTaskFunction</span></a> func</code></em>,
55                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);
56 <span class="returnvalue">void</span>                <a class="link" href="GstTask.html#gst-task-set-lock" title="gst_task_set_lock ()">gst_task_set_lock</a>                   (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>,
57                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GStaticRecMutex"><span class="type">GStaticRecMutex</span></a> *mutex</code></em>);
58 <span class="returnvalue">void</span>                <a class="link" href="GstTask.html#gst-task-set-priority" title="gst_task_set_priority ()">gst_task_set_priority</a>               (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>,
59                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GThreadPriority"><span class="type">GThreadPriority</span></a> priority</code></em>);
60 <span class="returnvalue">void</span>                <a class="link" href="GstTask.html#gst-task-set-pool" title="gst_task_set_pool ()">gst_task_set_pool</a>                   (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>,
61                                                          <em class="parameter"><code><a class="link" href="GstTaskPool.html" title="GstTaskPool"><span class="type">GstTaskPool</span></a> *pool</code></em>);
62 <a class="link" href="GstTaskPool.html" title="GstTaskPool"><span class="returnvalue">GstTaskPool</span></a> *       <a class="link" href="GstTask.html#gst-task-get-pool" title="gst_task_get_pool ()">gst_task_get_pool</a>                   (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>);
63                     <a class="link" href="GstTask.html#GstTaskThreadCallbacks" title="GstTaskThreadCallbacks">GstTaskThreadCallbacks</a>;
64 <span class="returnvalue">void</span>                <a class="link" href="GstTask.html#gst-task-set-thread-callbacks" title="gst_task_set_thread_callbacks ()">gst_task_set_thread_callbacks</a>       (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>,
65                                                          <em class="parameter"><code><a class="link" href="GstTask.html#GstTaskThreadCallbacks" title="GstTaskThreadCallbacks"><span class="type">GstTaskThreadCallbacks</span></a> *callbacks</code></em>,
66                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
67                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);
68 <a class="link" href="GstTask.html#GstTaskState" title="enum GstTaskState"><span class="returnvalue">GstTaskState</span></a>        <a class="link" href="GstTask.html#gst-task-get-state" title="gst_task_get_state ()">gst_task_get_state</a>                  (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>);
69 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstTask.html#gst-task-set-state" title="gst_task_set_state ()">gst_task_set_state</a>                  (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>,
70                                                          <em class="parameter"><code><a class="link" href="GstTask.html#GstTaskState" title="enum GstTaskState"><span class="type">GstTaskState</span></a> state</code></em>);
71 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstTask.html#gst-task-pause" title="gst_task_pause ()">gst_task_pause</a>                      (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>);
72 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstTask.html#gst-task-start" title="gst_task_start ()">gst_task_start</a>                      (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>);
73 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstTask.html#gst-task-stop" title="gst_task_stop ()">gst_task_stop</a>                       (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>);
74 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstTask.html#gst-task-join" title="gst_task_join ()">gst_task_join</a>                       (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>);
75 <span class="returnvalue">void</span>                <a class="link" href="GstTask.html#gst-task-cleanup-all" title="gst_task_cleanup_all ()">gst_task_cleanup_all</a>                (<em class="parameter"><code><span class="type">void</span></code></em>);
76 </pre>
77 </div>
78 <div class="refsect1">
79 <a name="GstTask.object-hierarchy"></a><h2>Object Hierarchy</h2>
80 <pre class="synopsis">
81   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
82    +----<a class="link" href="GstObject.html" title="GstObject">GstObject</a>
83          +----GstTask
84 </pre>
85 </div>
86 <div class="refsect1">
87 <a name="GstTask.description"></a><h2>Description</h2>
88 <p>
89 <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> is used by <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> and <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to provide the data passing
90 threads in a <a class="link" href="GstPipeline.html" title="GstPipeline"><span class="type">GstPipeline</span></a>.
91 </p>
92 <p>
93 A <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> will typically start a <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> to push or pull data to/from the
94 peer pads. Most source elements start a <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> to push data. In some cases
95 a demuxer element can start a <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> to pull data from a peer element. This
96 is typically done when the demuxer can perform random access on the upstream
97 peer element for improved performance.
98 </p>
99 <p>
100 Although convenience functions exist on <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to start/pause/stop tasks, it
101 might sometimes be needed to create a <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> manually if it is not related to
102 a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>.
103 </p>
104 <p>
105 Before the <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> can be run, it needs a <a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GStaticRecMutex"><span class="type">GStaticRecMutex</span></a> that can be set with
106 <a class="link" href="GstTask.html#gst-task-set-lock" title="gst_task_set_lock ()"><code class="function">gst_task_set_lock()</code></a>.
107 </p>
108 <p>
109 The task can be started, paused and stopped with <a class="link" href="GstTask.html#gst-task-start" title="gst_task_start ()"><code class="function">gst_task_start()</code></a>, <a class="link" href="GstTask.html#gst-task-pause" title="gst_task_pause ()"><code class="function">gst_task_pause()</code></a>
110 and <a class="link" href="GstTask.html#gst-task-stop" title="gst_task_stop ()"><code class="function">gst_task_stop()</code></a> respectively or with the <a class="link" href="GstTask.html#gst-task-set-state" title="gst_task_set_state ()"><code class="function">gst_task_set_state()</code></a> function.
111 </p>
112 <p>
113 A <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> will repeatedly call the <a class="link" href="GstTask.html#GstTaskFunction" title="GstTaskFunction ()"><span class="type">GstTaskFunction</span></a> with the user data
114 that was provided when creating the task with <a class="link" href="GstTask.html#gst-task-create" title="gst_task_create ()"><code class="function">gst_task_create()</code></a>. While calling
115 the function it will acquire the provided lock. The provided lock is released
116 when the task pauses or stops.
117 </p>
118 <p>
119 Stopping a task with <a class="link" href="GstTask.html#gst-task-stop" title="gst_task_stop ()"><code class="function">gst_task_stop()</code></a> will not immediately make sure the task is
120 not running anymore. Use <a class="link" href="GstTask.html#gst-task-join" title="gst_task_join ()"><code class="function">gst_task_join()</code></a> to make sure the task is completely
121 stopped and the thread is stopped.
122 </p>
123 <p>
124 After creating a <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a>, use <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> to free its resources. This can
125 only be done it the task is not running anymore.
126 </p>
127 <p>
128 Task functions can send a <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> to send out-of-band data to the
129 application. The application can receive messages from the <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> in its
130 mainloop.
131 </p>
132 <p>
133 For debugging perposes, the task will configure its object name as the thread
134 name on Linux. Please note that the object name should be configured before the
135 task is started; changing the object name after the task has been started, has
136 no effect on the thread name.
137 </p>
138 <p>
139 Last reviewed on 2010-03-15 (0.10.29)
140 </p>
141 </div>
142 <div class="refsect1">
143 <a name="GstTask.details"></a><h2>Details</h2>
144 <div class="refsect2">
145 <a name="GstTask-struct"></a><h3>struct GstTask</h3>
146 <pre class="programlisting">struct GstTask {
147   GstTaskState     state;
148   GCond           *cond;
149
150   GStaticRecMutex *lock;
151
152   GstTaskFunction  func;
153   gpointer         data;
154
155   gboolean         running;
156 };
157 </pre>
158 <p>
159 The <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> object.
160 </p>
161 <div class="variablelist"><table border="0">
162 <col align="left" valign="top">
163 <tbody>
164 <tr>
165 <td><p><span class="term"><a class="link" href="GstTask.html#GstTaskState" title="enum GstTaskState"><span class="type">GstTaskState</span></a> <em class="structfield"><code><a name="GstTask-struct.state"></a>state</code></em>;</span></p></td>
166 <td>the state of the task</td>
167 </tr>
168 <tr>
169 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GCond"><span class="type">GCond</span></a> *<em class="structfield"><code><a name="GstTask-struct.cond"></a>cond</code></em>;</span></p></td>
170 <td>used to pause/resume the task</td>
171 </tr>
172 <tr>
173 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GStaticRecMutex"><span class="type">GStaticRecMutex</span></a> *<em class="structfield"><code><a name="GstTask-struct.lock"></a>lock</code></em>;</span></p></td>
174 <td>The lock taken when iterating the task function</td>
175 </tr>
176 <tr>
177 <td><p><span class="term"><a class="link" href="GstTask.html#GstTaskFunction" title="GstTaskFunction ()"><span class="type">GstTaskFunction</span></a> <em class="structfield"><code><a name="GstTask-struct.func"></a>func</code></em>;</span></p></td>
178 <td>the function executed by this task</td>
179 </tr>
180 <tr>
181 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> <em class="structfield"><code><a name="GstTask-struct.data"></a>data</code></em>;</span></p></td>
182 <td>data passed to the task function</td>
183 </tr>
184 <tr>
185 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GstTask-struct.running"></a>running</code></em>;</span></p></td>
186 <td>a flag indicating that the task is running</td>
187 </tr>
188 </tbody>
189 </table></div>
190 </div>
191 <hr>
192 <div class="refsect2">
193 <a name="GstTaskFunction"></a><h3>GstTaskFunction ()</h3>
194 <pre class="programlisting"><span class="returnvalue">void</span>                (*GstTaskFunction)                  (<em class="parameter"><code><span class="type">void</span> *data</code></em>);</pre>
195 <p>
196 A function that will repeatedly be called in the thread created by
197 a <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a>.
198 </p>
199 <div class="variablelist"><table border="0">
200 <col align="left" valign="top">
201 <tbody><tr>
202 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
203 <td>user data passed to the function</td>
204 </tr></tbody>
205 </table></div>
206 </div>
207 <hr>
208 <div class="refsect2">
209 <a name="GstTaskState"></a><h3>enum GstTaskState</h3>
210 <pre class="programlisting">typedef enum {
211   GST_TASK_STARTED,
212   GST_TASK_STOPPED,
213   GST_TASK_PAUSED
214 } GstTaskState;
215 </pre>
216 <p>
217 The different states a task can be in
218 </p>
219 <div class="variablelist"><table border="0">
220 <col align="left" valign="top">
221 <tbody>
222 <tr>
223 <td><p><a name="GST-TASK-STARTED:CAPS"></a><span class="term"><code class="literal">GST_TASK_STARTED</code></span></p></td>
224 <td>the task is started and running
225 </td>
226 </tr>
227 <tr>
228 <td><p><a name="GST-TASK-STOPPED:CAPS"></a><span class="term"><code class="literal">GST_TASK_STOPPED</code></span></p></td>
229 <td>the task is stopped
230 </td>
231 </tr>
232 <tr>
233 <td><p><a name="GST-TASK-PAUSED:CAPS"></a><span class="term"><code class="literal">GST_TASK_PAUSED</code></span></p></td>
234 <td>the task is paused
235 </td>
236 </tr>
237 </tbody>
238 </table></div>
239 </div>
240 <hr>
241 <div class="refsect2">
242 <a name="GST-TASK-BROADCAST:CAPS"></a><h3>GST_TASK_BROADCAST()</h3>
243 <pre class="programlisting">#define GST_TASK_BROADCAST(task)        g_cond_broadcast(GST_TASK_GET_COND (task))
244 </pre>
245 <p>
246 Send a broadcast signal to all waiting task conds
247 </p>
248 <div class="variablelist"><table border="0">
249 <col align="left" valign="top">
250 <tbody><tr>
251 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
252 <td>Task to broadcast</td>
253 </tr></tbody>
254 </table></div>
255 </div>
256 <hr>
257 <div class="refsect2">
258 <a name="GST-TASK-GET-COND:CAPS"></a><h3>GST_TASK_GET_COND()</h3>
259 <pre class="programlisting">#define GST_TASK_GET_COND(task)         (GST_TASK_CAST(task)-&gt;cond)
260 </pre>
261 <p>
262 Get access to the cond of the task.
263 </p>
264 <div class="variablelist"><table border="0">
265 <col align="left" valign="top">
266 <tbody><tr>
267 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
268 <td>Task to get the cond of</td>
269 </tr></tbody>
270 </table></div>
271 </div>
272 <hr>
273 <div class="refsect2">
274 <a name="GST-TASK-GET-LOCK:CAPS"></a><h3>GST_TASK_GET_LOCK()</h3>
275 <pre class="programlisting">#define GST_TASK_GET_LOCK(task)         (GST_TASK_CAST(task)-&gt;lock)
276 </pre>
277 <p>
278 Get access to the task lock.
279 </p>
280 <div class="variablelist"><table border="0">
281 <col align="left" valign="top">
282 <tbody><tr>
283 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
284 <td>Task to get the lock of</td>
285 </tr></tbody>
286 </table></div>
287 </div>
288 <hr>
289 <div class="refsect2">
290 <a name="GST-TASK-SIGNAL:CAPS"></a><h3>GST_TASK_SIGNAL()</h3>
291 <pre class="programlisting">#define GST_TASK_SIGNAL(task)           g_cond_signal(GST_TASK_GET_COND (task))
292 </pre>
293 <p>
294 Signal the task cond
295 </p>
296 <div class="variablelist"><table border="0">
297 <col align="left" valign="top">
298 <tbody><tr>
299 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
300 <td>Task to signal</td>
301 </tr></tbody>
302 </table></div>
303 </div>
304 <hr>
305 <div class="refsect2">
306 <a name="GST-TASK-STATE:CAPS"></a><h3>GST_TASK_STATE()</h3>
307 <pre class="programlisting">#define GST_TASK_STATE(task)            (GST_TASK_CAST(task)-&gt;state)
308 </pre>
309 <p>
310 Get access to the state of the task.
311 </p>
312 <div class="variablelist"><table border="0">
313 <col align="left" valign="top">
314 <tbody><tr>
315 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
316 <td>Task to get the state of</td>
317 </tr></tbody>
318 </table></div>
319 </div>
320 <hr>
321 <div class="refsect2">
322 <a name="GST-TASK-WAIT:CAPS"></a><h3>GST_TASK_WAIT()</h3>
323 <pre class="programlisting">#define GST_TASK_WAIT(task)             g_cond_wait(GST_TASK_GET_COND (task), GST_OBJECT_GET_LOCK (task))
324 </pre>
325 <p>
326 Wait for the task cond to be signalled
327 </p>
328 <div class="variablelist"><table border="0">
329 <col align="left" valign="top">
330 <tbody><tr>
331 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
332 <td>Task to wait for</td>
333 </tr></tbody>
334 </table></div>
335 </div>
336 <hr>
337 <div class="refsect2">
338 <a name="gst-task-create"></a><h3>gst_task_create ()</h3>
339 <pre class="programlisting"><a class="link" href="GstTask.html" title="GstTask"><span class="returnvalue">GstTask</span></a> *           gst_task_create                     (<em class="parameter"><code><a class="link" href="GstTask.html#GstTaskFunction" title="GstTaskFunction ()"><span class="type">GstTaskFunction</span></a> func</code></em>,
340                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
341 <p>
342 Create a new Task that will repeatedly call the provided <em class="parameter"><code>func</code></em>
343 with <em class="parameter"><code>data</code></em> as a parameter. Typically the task will run in
344 a new thread.
345 </p>
346 <p>
347 The function cannot be changed after the task has been created. You
348 must create a new <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> to change the function.
349 </p>
350 <p>
351 This function will not yet create and start a thread. Use <a class="link" href="GstTask.html#gst-task-start" title="gst_task_start ()"><code class="function">gst_task_start()</code></a> or
352 <a class="link" href="GstTask.html#gst-task-pause" title="gst_task_pause ()"><code class="function">gst_task_pause()</code></a> to create and start the GThread.
353 </p>
354 <p>
355 Before the task can be used, a <a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GStaticRecMutex"><span class="type">GStaticRecMutex</span></a> must be configured using the
356 <a class="link" href="GstTask.html#gst-task-set-lock" title="gst_task_set_lock ()"><code class="function">gst_task_set_lock()</code></a> function. This lock will always be acquired while
357 <em class="parameter"><code>func</code></em> is called.
358 </p>
359 <div class="variablelist"><table border="0">
360 <col align="left" valign="top">
361 <tbody>
362 <tr>
363 <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
364 <td>The <a class="link" href="GstTask.html#GstTaskFunction" title="GstTaskFunction ()"><span class="type">GstTaskFunction</span></a> to use</td>
365 </tr>
366 <tr>
367 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
368 <td>User data to pass to <em class="parameter"><code>func</code></em>. <span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span>
369 </td>
370 </tr>
371 <tr>
372 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
373 <td>A new <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a>.
374 MT safe. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
375 </td>
376 </tr>
377 </tbody>
378 </table></div>
379 </div>
380 <hr>
381 <div class="refsect2">
382 <a name="gst-task-set-lock"></a><h3>gst_task_set_lock ()</h3>
383 <pre class="programlisting"><span class="returnvalue">void</span>                gst_task_set_lock                   (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>,
384                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GStaticRecMutex"><span class="type">GStaticRecMutex</span></a> *mutex</code></em>);</pre>
385 <p>
386 Set the mutex used by the task. The mutex will be acquired before
387 calling the <a class="link" href="GstTask.html#GstTaskFunction" title="GstTaskFunction ()"><span class="type">GstTaskFunction</span></a>.
388 </p>
389 <p>
390 This function has to be called before calling <a class="link" href="GstTask.html#gst-task-pause" title="gst_task_pause ()"><code class="function">gst_task_pause()</code></a> or
391 <a class="link" href="GstTask.html#gst-task-start" title="gst_task_start ()"><code class="function">gst_task_start()</code></a>.
392 </p>
393 <p>
394 MT safe.
395 </p>
396 <div class="variablelist"><table border="0">
397 <col align="left" valign="top">
398 <tbody>
399 <tr>
400 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
401 <td>The <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> to use</td>
402 </tr>
403 <tr>
404 <td><p><span class="term"><em class="parameter"><code>mutex</code></em> :</span></p></td>
405 <td>The <a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GMutex"><span class="type">GMutex</span></a> to use</td>
406 </tr>
407 </tbody>
408 </table></div>
409 </div>
410 <hr>
411 <div class="refsect2">
412 <a name="gst-task-set-priority"></a><h3>gst_task_set_priority ()</h3>
413 <pre class="programlisting"><span class="returnvalue">void</span>                gst_task_set_priority               (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>,
414                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GThreadPriority"><span class="type">GThreadPriority</span></a> priority</code></em>);</pre>
415 <p>
416 Changes the priority of <em class="parameter"><code>task</code></em> to <em class="parameter"><code>priority</code></em>.
417 </p>
418 <p>
419 Note: try not to depend on task priorities.
420 </p>
421 <p>
422 MT safe.
423 </p>
424 <div class="variablelist"><table border="0">
425 <col align="left" valign="top">
426 <tbody>
427 <tr>
428 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
429 <td>a <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a>
430 </td>
431 </tr>
432 <tr>
433 <td><p><span class="term"><em class="parameter"><code>priority</code></em> :</span></p></td>
434 <td>a new priority for <em class="parameter"><code>task</code></em>
435 </td>
436 </tr>
437 </tbody>
438 </table></div>
439 <p class="since">Since 0.10.24</p>
440 </div>
441 <hr>
442 <div class="refsect2">
443 <a name="gst-task-set-pool"></a><h3>gst_task_set_pool ()</h3>
444 <pre class="programlisting"><span class="returnvalue">void</span>                gst_task_set_pool                   (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>,
445                                                          <em class="parameter"><code><a class="link" href="GstTaskPool.html" title="GstTaskPool"><span class="type">GstTaskPool</span></a> *pool</code></em>);</pre>
446 <p>
447 Set <em class="parameter"><code>pool</code></em> as the new GstTaskPool for <em class="parameter"><code>task</code></em>. Any new streaming threads that
448 will be created by <em class="parameter"><code>task</code></em> will now use <em class="parameter"><code>pool</code></em>.
449 </p>
450 <p>
451 MT safe.
452 </p>
453 <div class="variablelist"><table border="0">
454 <col align="left" valign="top">
455 <tbody>
456 <tr>
457 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
458 <td>a <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a>
459 </td>
460 </tr>
461 <tr>
462 <td><p><span class="term"><em class="parameter"><code>pool</code></em> :</span></p></td>
463 <td>a <a class="link" href="GstTaskPool.html" title="GstTaskPool"><span class="type">GstTaskPool</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
464 </td>
465 </tr>
466 </tbody>
467 </table></div>
468 <p class="since">Since 0.10.24</p>
469 </div>
470 <hr>
471 <div class="refsect2">
472 <a name="gst-task-get-pool"></a><h3>gst_task_get_pool ()</h3>
473 <pre class="programlisting"><a class="link" href="GstTaskPool.html" title="GstTaskPool"><span class="returnvalue">GstTaskPool</span></a> *       gst_task_get_pool                   (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>);</pre>
474 <p>
475 Get the <a class="link" href="GstTaskPool.html" title="GstTaskPool"><span class="type">GstTaskPool</span></a> that this task will use for its streaming
476 threads.
477 </p>
478 <p>
479 MT safe.
480 </p>
481 <div class="variablelist"><table border="0">
482 <col align="left" valign="top">
483 <tbody>
484 <tr>
485 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
486 <td>a <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a>
487 </td>
488 </tr>
489 <tr>
490 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
491 <td>the <a class="link" href="GstTaskPool.html" title="GstTaskPool"><span class="type">GstTaskPool</span></a> used by <em class="parameter"><code>task</code></em>. <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a>
492 after usage. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
493 </td>
494 </tr>
495 </tbody>
496 </table></div>
497 <p class="since">Since 0.10.24</p>
498 </div>
499 <hr>
500 <div class="refsect2">
501 <a name="GstTaskThreadCallbacks"></a><h3>GstTaskThreadCallbacks</h3>
502 <pre class="programlisting">typedef struct {
503   /* manage the lifetime of the thread */
504   void      (*enter_thread)     (GstTask *task, GThread *thread, gpointer user_data);
505   void      (*leave_thread)     (GstTask *task, GThread *thread, gpointer user_data);
506 } GstTaskThreadCallbacks;
507 </pre>
508 <p>
509 Custom GstTask thread callback functions that can be installed.
510 </p>
511 <div class="variablelist"><table border="0">
512 <col align="left" valign="top">
513 <tbody>
514 <tr>
515 <td><p><span class="term"><em class="structfield"><code><a name="GstTaskThreadCallbacks.enter-thread"></a>enter_thread</code></em> ()</span></p></td>
516 <td>a thread is entered, this callback is called when the new
517 thread enters its function.</td>
518 </tr>
519 <tr>
520 <td><p><span class="term"><em class="structfield"><code><a name="GstTaskThreadCallbacks.leave-thread"></a>leave_thread</code></em> ()</span></p></td>
521 <td>a thread is exiting, this is called when the thread is about
522 to leave its function</td>
523 </tr>
524 </tbody>
525 </table></div>
526 <p class="since">Since 0.10.24</p>
527 </div>
528 <hr>
529 <div class="refsect2">
530 <a name="gst-task-set-thread-callbacks"></a><h3>gst_task_set_thread_callbacks ()</h3>
531 <pre class="programlisting"><span class="returnvalue">void</span>                gst_task_set_thread_callbacks       (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>,
532                                                          <em class="parameter"><code><a class="link" href="GstTask.html#GstTaskThreadCallbacks" title="GstTaskThreadCallbacks"><span class="type">GstTaskThreadCallbacks</span></a> *callbacks</code></em>,
533                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
534                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
535 <p>
536 Set callbacks which will be executed when a new thread is needed, the thread
537 function is entered and left and when the thread is joined.
538 </p>
539 <p>
540 By default a thread for <em class="parameter"><code>task</code></em> will be created from a default thread pool.
541 </p>
542 <p>
543 Objects can use custom GThreads or can perform additional configuration of
544 the threads (such as changing the thread priority) by installing callbacks.
545 </p>
546 <p>
547 MT safe.
548 </p>
549 <div class="variablelist"><table border="0">
550 <col align="left" valign="top">
551 <tbody>
552 <tr>
553 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
554 <td>The <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> to use</td>
555 </tr>
556 <tr>
557 <td><p><span class="term"><em class="parameter"><code>callbacks</code></em> :</span></p></td>
558 <td>a <a class="link" href="GstTask.html#GstTaskThreadCallbacks" title="GstTaskThreadCallbacks"><span class="type">GstTaskThreadCallbacks</span></a> pointer. <span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>]</span>
559 </td>
560 </tr>
561 <tr>
562 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
563 <td>user data passed to the callbacks. <span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span>
564 </td>
565 </tr>
566 <tr>
567 <td><p><span class="term"><em class="parameter"><code>notify</code></em> :</span></p></td>
568 <td>called when <em class="parameter"><code>user_data</code></em> is no longer referenced</td>
569 </tr>
570 </tbody>
571 </table></div>
572 <p class="since">Since 0.10.24</p>
573 </div>
574 <hr>
575 <div class="refsect2">
576 <a name="gst-task-get-state"></a><h3>gst_task_get_state ()</h3>
577 <pre class="programlisting"><a class="link" href="GstTask.html#GstTaskState" title="enum GstTaskState"><span class="returnvalue">GstTaskState</span></a>        gst_task_get_state                  (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>);</pre>
578 <p>
579 Get the current state of the task.
580 </p>
581 <div class="variablelist"><table border="0">
582 <col align="left" valign="top">
583 <tbody>
584 <tr>
585 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
586 <td>The <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> to query</td>
587 </tr>
588 <tr>
589 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
590 <td>The <a class="link" href="GstTask.html#GstTaskState" title="enum GstTaskState"><span class="type">GstTaskState</span></a> of the task
591 MT safe.</td>
592 </tr>
593 </tbody>
594 </table></div>
595 </div>
596 <hr>
597 <div class="refsect2">
598 <a name="gst-task-set-state"></a><h3>gst_task_set_state ()</h3>
599 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_task_set_state                  (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>,
600                                                          <em class="parameter"><code><a class="link" href="GstTask.html#GstTaskState" title="enum GstTaskState"><span class="type">GstTaskState</span></a> state</code></em>);</pre>
601 <p>
602 Sets the state of <em class="parameter"><code>task</code></em> to <em class="parameter"><code>state</code></em>.
603 </p>
604 <p>
605 The <em class="parameter"><code>task</code></em> must have a lock associated with it using
606 <a class="link" href="GstTask.html#gst-task-set-lock" title="gst_task_set_lock ()"><code class="function">gst_task_set_lock()</code></a> when going to GST_TASK_STARTED or GST_TASK_PAUSED or
607 this function will return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.
608 </p>
609 <p>
610 MT safe.
611 </p>
612 <div class="variablelist"><table border="0">
613 <col align="left" valign="top">
614 <tbody>
615 <tr>
616 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
617 <td>a <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a>
618 </td>
619 </tr>
620 <tr>
621 <td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
622 <td>the new task state</td>
623 </tr>
624 <tr>
625 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
626 <td>
627 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the state could be changed.</td>
628 </tr>
629 </tbody>
630 </table></div>
631 <p class="since">Since 0.10.24</p>
632 </div>
633 <hr>
634 <div class="refsect2">
635 <a name="gst-task-pause"></a><h3>gst_task_pause ()</h3>
636 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_task_pause                      (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>);</pre>
637 <p>
638 Pauses <em class="parameter"><code>task</code></em>. This method can also be called on a task in the
639 stopped state, in which case a thread will be started and will remain
640 in the paused state. This function does not wait for the task to complete
641 the paused state.
642 </p>
643 <div class="variablelist"><table border="0">
644 <col align="left" valign="top">
645 <tbody>
646 <tr>
647 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
648 <td>The <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> to pause</td>
649 </tr>
650 <tr>
651 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
652 <td>
653 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the task could be paused.
654 MT safe.</td>
655 </tr>
656 </tbody>
657 </table></div>
658 </div>
659 <hr>
660 <div class="refsect2">
661 <a name="gst-task-start"></a><h3>gst_task_start ()</h3>
662 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_task_start                      (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>);</pre>
663 <p>
664 Starts <em class="parameter"><code>task</code></em>. The <em class="parameter"><code>task</code></em> must have a lock associated with it using
665 <a class="link" href="GstTask.html#gst-task-set-lock" title="gst_task_set_lock ()"><code class="function">gst_task_set_lock()</code></a> or this function will return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.
666 </p>
667 <div class="variablelist"><table border="0">
668 <col align="left" valign="top">
669 <tbody>
670 <tr>
671 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
672 <td>The <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> to start</td>
673 </tr>
674 <tr>
675 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
676 <td>
677 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the task could be started.
678 MT safe.</td>
679 </tr>
680 </tbody>
681 </table></div>
682 </div>
683 <hr>
684 <div class="refsect2">
685 <a name="gst-task-stop"></a><h3>gst_task_stop ()</h3>
686 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_task_stop                       (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>);</pre>
687 <p>
688 Stops <em class="parameter"><code>task</code></em>. This method merely schedules the task to stop and
689 will not wait for the task to have completely stopped. Use
690 <a class="link" href="GstTask.html#gst-task-join" title="gst_task_join ()"><code class="function">gst_task_join()</code></a> to stop and wait for completion.
691 </p>
692 <div class="variablelist"><table border="0">
693 <col align="left" valign="top">
694 <tbody>
695 <tr>
696 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
697 <td>The <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> to stop</td>
698 </tr>
699 <tr>
700 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
701 <td>
702 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the task could be stopped.
703 MT safe.</td>
704 </tr>
705 </tbody>
706 </table></div>
707 </div>
708 <hr>
709 <div class="refsect2">
710 <a name="gst-task-join"></a><h3>gst_task_join ()</h3>
711 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_task_join                       (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>);</pre>
712 <p>
713 Joins <em class="parameter"><code>task</code></em>. After this call, it is safe to unref the task
714 and clean up the lock set with <a class="link" href="GstTask.html#gst-task-set-lock" title="gst_task_set_lock ()"><code class="function">gst_task_set_lock()</code></a>.
715 </p>
716 <p>
717 The task will automatically be stopped with this call.
718 </p>
719 <p>
720 This function cannot be called from within a task function as this
721 would cause a deadlock. The function will detect this and print a
722 g_warning.
723 </p>
724 <div class="variablelist"><table border="0">
725 <col align="left" valign="top">
726 <tbody>
727 <tr>
728 <td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
729 <td>The <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> to join</td>
730 </tr>
731 <tr>
732 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
733 <td>
734 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the task could be joined.
735 MT safe.</td>
736 </tr>
737 </tbody>
738 </table></div>
739 </div>
740 <hr>
741 <div class="refsect2">
742 <a name="gst-task-cleanup-all"></a><h3>gst_task_cleanup_all ()</h3>
743 <pre class="programlisting"><span class="returnvalue">void</span>                gst_task_cleanup_all                (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
744 <p>
745 Wait for all tasks to be stopped. This is mainly used internally
746 to ensure proper cleanup of internal data structures in test suites.
747 </p>
748 <p>
749 MT safe.
750 </p>
751 </div>
752 </div>
753 <div class="refsect1">
754 <a name="GstTask.see-also"></a><h2>See Also</h2>
755 <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>, <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>
756 </div>
757 </div>
758 <div class="footer">
759 <hr>
760           Generated by GTK-Doc V1.18</div>
761 </body>
762 </html>