]> gitweb.factorcode.org Git - factor.git/blob - extra/gstreamer/Gst-0.10.gir
Update actions, because Node.js 16 actions are deprecated, to Node.js 20
[factor.git] / extra / gstreamer / Gst-0.10.gir
1 <?xml version="1.0"?>
2 <!-- This file was automatically generated from C sources - DO NOT EDIT!
3 To affect the contents of this file, edit the original C definitions,
4 and/or use gtk-doc annotations.  -->
5 <repository version="1.2"
6             xmlns="http://www.gtk.org/introspection/core/1.0"
7             xmlns:c="http://www.gtk.org/introspection/c/1.0"
8             xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
9   <include name="GLib" version="2.0"/>
10   <include name="GModule" version="2.0"/>
11   <include name="GObject" version="2.0"/>
12   <include name="libxml2" version="2.0"/>
13   <package name="gstreamer-0.10"/>
14   <c:include name="gst/gst.h"/>
15   <namespace name="Gst"
16              version="0.10"
17              shared-library="libgstreamer-0.10.so.0"
18              c:identifier-prefixes="Gst"
19              c:symbol-prefixes="gst">
20     <alias name="ClockID" c:type="GstClockID">
21       <doc xml:whitespace="preserve">A datatype to hold the handle to an outstanding sync or async clock callback.</doc>
22       <type name="gpointer" c:type="gpointer"/>
23     </alias>
24     <alias name="ClockTime" c:type="GstClockTime">
25       <doc xml:whitespace="preserve">A datatype to hold a time, measured in nanoseconds.</doc>
26       <type name="guint64" c:type="guint64"/>
27     </alias>
28     <alias name="ClockTimeDiff" c:type="GstClockTimeDiff">
29       <doc xml:whitespace="preserve">A datatype to hold a time difference, measured in nanoseconds.</doc>
30       <type name="gint64" c:type="gint64"/>
31     </alias>
32     <alias name="ElementFactoryListType" c:type="GstElementFactoryListType">
33       <type name="guint64" c:type="guint64"/>
34     </alias>
35     <enumeration name="ActivateMode" c:type="GstActivateMode">
36       <doc xml:whitespace="preserve">The status of a GstPad. After activating a pad, which usually happens when the
37 parent element goes from READY to PAUSED, the GstActivateMode defines if the
38 pad operates in push or pull mode.</doc>
39       <member name="none" value="0" c:identifier="GST_ACTIVATE_NONE"/>
40       <member name="push" value="1" c:identifier="GST_ACTIVATE_PUSH"/>
41       <member name="pull" value="2" c:identifier="GST_ACTIVATE_PULL"/>
42     </enumeration>
43     <record name="AllocTrace" c:type="GstAllocTrace">
44       <doc xml:whitespace="preserve">The main tracing object</doc>
45       <field name="name" writable="1">
46         <type name="utf8" c:type="gchar*"/>
47       </field>
48       <field name="flags" writable="1">
49         <type name="gint" c:type="gint"/>
50       </field>
51       <field name="live" writable="1">
52         <type name="gint" c:type="gint"/>
53       </field>
54       <field name="mem_live" writable="1">
55         <type name="GLib.SList" c:type="GSList*">
56           <type name="gpointer" c:type="gpointer"/>
57         </type>
58       </field>
59       <method name="print" c:identifier="gst_alloc_trace_print">
60         <doc xml:whitespace="preserve">Print the status of the given GstAllocTrace.</doc>
61         <return-value transfer-ownership="none">
62           <type name="none" c:type="void"/>
63         </return-value>
64       </method>
65       <method name="set_flags" c:identifier="gst_alloc_trace_set_flags">
66         <doc xml:whitespace="preserve">Enable the given features on the given GstAllocTrace object.</doc>
67         <return-value transfer-ownership="none">
68           <type name="none" c:type="void"/>
69         </return-value>
70         <parameters>
71           <parameter name="flags" transfer-ownership="none">
72             <doc xml:whitespace="preserve">flags to set</doc>
73             <type name="AllocTraceFlags" c:type="GstAllocTraceFlags"/>
74           </parameter>
75         </parameters>
76       </method>
77     </record>
78     <bitfield name="AllocTraceFlags" c:type="GstAllocTraceFlags">
79       <doc xml:whitespace="preserve">Flags indicating which tracing feature to enable.</doc>
80       <member name="live" value="1" c:identifier="GST_ALLOC_TRACE_LIVE"/>
81       <member name="mem_live"
82               value="2"
83               c:identifier="GST_ALLOC_TRACE_MEM_LIVE"/>
84     </bitfield>
85     <bitfield name="AssocFlags" c:type="GstAssocFlags">
86       <doc xml:whitespace="preserve">Flags for an association entry.</doc>
87       <member name="none" value="0" c:identifier="GST_ASSOCIATION_FLAG_NONE"/>
88       <member name="key_unit"
89               value="1"
90               c:identifier="GST_ASSOCIATION_FLAG_KEY_UNIT"/>
91       <member name="delta_unit"
92               value="2"
93               c:identifier="GST_ASSOCIATION_FLAG_DELTA_UNIT"/>
94       <member name="last"
95               value="256"
96               c:identifier="GST_ASSOCIATION_FLAG_LAST"/>
97     </bitfield>
98     <record name="AtomicQueue"
99             c:type="GstAtomicQueue"
100             disguised="1"
101             version="0.10.33">
102       <doc xml:whitespace="preserve">The #GstAtomicQueue object implements a queue that can be used from multiple
103 threads without performing any blocking operations.</doc>
104       <method name="length"
105               c:identifier="gst_atomic_queue_length"
106               version="0.10.33">
107         <doc xml:whitespace="preserve">Get the amount of items in the queue.</doc>
108         <return-value transfer-ownership="none">
109           <doc xml:whitespace="preserve">the number of elements in the queue.</doc>
110           <type name="guint" c:type="guint"/>
111         </return-value>
112       </method>
113       <method name="peek"
114               c:identifier="gst_atomic_queue_peek"
115               version="0.10.33"
116               introspectable="0">
117         <doc xml:whitespace="preserve">Peek the head element of the queue without removing it from the queue.</doc>
118         <return-value>
119           <doc xml:whitespace="preserve">the head element of @queue or NULL when the queue is empty.</doc>
120           <type name="gpointer" c:type="gpointer"/>
121         </return-value>
122       </method>
123       <method name="pop"
124               c:identifier="gst_atomic_queue_pop"
125               version="0.10.33"
126               introspectable="0">
127         <doc xml:whitespace="preserve">Get the head element of the queue.</doc>
128         <return-value>
129           <doc xml:whitespace="preserve">the head element of @queue or NULL when the queue is empty.</doc>
130           <type name="gpointer" c:type="gpointer"/>
131         </return-value>
132       </method>
133       <method name="push"
134               c:identifier="gst_atomic_queue_push"
135               version="0.10.33">
136         <doc xml:whitespace="preserve">Append @data to the tail of the queue.</doc>
137         <return-value transfer-ownership="none">
138           <type name="none" c:type="void"/>
139         </return-value>
140         <parameters>
141           <parameter name="data" transfer-ownership="none">
142             <doc xml:whitespace="preserve">the data</doc>
143             <type name="gpointer" c:type="gpointer"/>
144           </parameter>
145         </parameters>
146       </method>
147       <method name="ref" c:identifier="gst_atomic_queue_ref" version="0.10.33">
148         <doc xml:whitespace="preserve">Increase the refcount of @queue.</doc>
149         <return-value transfer-ownership="none">
150           <type name="none" c:type="void"/>
151         </return-value>
152       </method>
153       <method name="unref"
154               c:identifier="gst_atomic_queue_unref"
155               version="0.10.33">
156         <doc xml:whitespace="preserve">Unref @queue and free the memory when the refcount reaches 0.</doc>
157         <return-value transfer-ownership="none">
158           <type name="none" c:type="void"/>
159         </return-value>
160       </method>
161     </record>
162     <constant name="BUFFER_COPY_ALL" value="0">
163       <type name="gint" c:type="gint"/>
164     </constant>
165     <constant name="BUFFER_OFFSET_NONE" value="-1">
166       <type name="gint" c:type="gint"/>
167     </constant>
168     <constant name="BUFFER_TRACE_NAME" value="GstBuffer">
169       <type name="utf8" c:type="gchar*"/>
170     </constant>
171     <class name="Bin"
172            c:symbol-prefix="bin"
173            c:type="GstBin"
174            parent="Element"
175            glib:type-name="GstBin"
176            glib:get-type="gst_bin_get_type"
177            glib:type-struct="BinClass">
178       <doc xml:whitespace="preserve">#GstBin is an element that can contain other #GstElement, allowing them to be
179 managed as a group.
180 Pads from the child elements can be ghosted to the bin, see #GstGhostPad.
181 This makes the bin look like any other elements and enables creation of
182 higher-level abstraction elements.
183 A new #GstBin is created with gst_bin_new(). Use a #GstPipeline instead if you
184 want to create a toplevel bin because a normal bin doesn't have a bus or
185 handle clock distribution of its own.
186 After the bin has been created you will typically add elements to it with
187 gst_bin_add(). You can remove elements with gst_bin_remove().
188 An element can be retrieved from a bin with gst_bin_get_by_name(), using the
189 elements name. gst_bin_get_by_name_recurse_up() is mainly used for internal
190 purposes and will query the parent bins when the element is not found in the
191 current bin.
192 An iterator of elements in a bin can be retrieved with
193 gst_bin_iterate_elements(). Various other iterators exist to retrieve the
194 elements in a bin.
195 gst_object_unref() is used to drop your reference to the bin.
196 The #GstBin::element-added signal is fired whenever a new element is added to
197 the bin. Likewise the #GstBin::element-removed signal is fired whenever an
198 element is removed from the bin.
199 &lt;refsect2&gt;&lt;title&gt;Notes&lt;/title&gt;
200 &lt;para&gt;
201 A #GstBin internally intercepts every #GstMessage posted by its children and
202 implements the following default behaviour for each of them:
203 &lt;variablelist&gt;
204 &lt;varlistentry&gt;
205 &lt;term&gt;GST_MESSAGE_EOS&lt;/term&gt;
206 &lt;listitem&gt;&lt;para&gt;This message is only posted by sinks in the PLAYING
207 state. If all sinks posted the EOS message, this bin will post and EOS
208 message upwards.&lt;/para&gt;&lt;/listitem&gt;
209 &lt;/varlistentry&gt;
210 &lt;varlistentry&gt;
211 &lt;term&gt;GST_MESSAGE_SEGMENT_START&lt;/term&gt;
212 &lt;listitem&gt;&lt;para&gt;just collected and never forwarded upwards.
213 The messages are used to decide when all elements have completed playback
214 of their segment.&lt;/para&gt;&lt;/listitem&gt;
215 &lt;/varlistentry&gt;
216 &lt;varlistentry&gt;
217 &lt;term&gt;GST_MESSAGE_SEGMENT_DONE&lt;/term&gt;
218 &lt;listitem&gt;&lt;para&gt; Is posted by #GstBin when all elements that posted
219 a SEGMENT_START have posted a SEGMENT_DONE.&lt;/para&gt;&lt;/listitem&gt;
220 &lt;/varlistentry&gt;
221 &lt;varlistentry&gt;
222 &lt;term&gt;GST_MESSAGE_DURATION&lt;/term&gt;
223 &lt;listitem&gt;&lt;para&gt; Is posted by an element that detected a change
224 in the stream duration. The default bin behaviour is to clear any
225 cached duration values so that the next duration query will perform
226 a full duration recalculation. The duration change is posted to the
227 application so that it can refetch the new duration with a duration
228 query. Note that these messages can be posted before the bin is
229 prerolled, in which case the duration query might fail.
230 &lt;/para&gt;&lt;/listitem&gt;
231 &lt;/varlistentry&gt;
232 &lt;varlistentry&gt;
233 &lt;term&gt;GST_MESSAGE_CLOCK_LOST&lt;/term&gt;
234 &lt;listitem&gt;&lt;para&gt; This message is posted by an element when it
235 can no longer provide a clock. The default bin behaviour is to
236 check if the lost clock was the one provided by the bin. If so and
237 the bin is currently in the PLAYING state, the message is forwarded to
238 the bin parent.
239 This message is also generated when a clock provider is removed from
240 the bin. If this message is received by the application, it should
241 PAUSE the pipeline and set it back to PLAYING to force a new clock
242 distribution.
243 &lt;/para&gt;&lt;/listitem&gt;
244 &lt;/varlistentry&gt;
245 &lt;varlistentry&gt;
246 &lt;term&gt;GST_MESSAGE_CLOCK_PROVIDE&lt;/term&gt;
247 &lt;listitem&gt;&lt;para&gt; This message is generated when an element
248 can provide a clock. This mostly happens when a new clock
249 provider is added to the bin. The default behaviour of the bin is to
250 mark the currently selected clock as dirty, which will perform a clock
251 recalculation the next time the bin is asked to provide a clock.
252 This message is never sent tot the application but is forwarded to
253 the parent of the bin.
254 &lt;/para&gt;&lt;/listitem&gt;
255 &lt;/varlistentry&gt;
256 &lt;varlistentry&gt;
257 &lt;term&gt;OTHERS&lt;/term&gt;
258 &lt;listitem&gt;&lt;para&gt; posted upwards.&lt;/para&gt;&lt;/listitem&gt;
259 &lt;/varlistentry&gt;
260 &lt;/variablelist&gt;
261 A #GstBin implements the following default behaviour for answering to a
262 #GstQuery:
263 &lt;variablelist&gt;
264 &lt;varlistentry&gt;
265 &lt;term&gt;GST_QUERY_DURATION&lt;/term&gt;
266 &lt;listitem&gt;&lt;para&gt;If the query has been asked before with the same format
267 and the bin is a toplevel bin (ie. has no parent),
268 use the cached previous value. If no previous value was cached, the
269 query is sent to all sink elements in the bin and the MAXIMUM of all
270 values is returned. If the bin is a toplevel bin the value is cached.
271 If no sinks are available in the bin, the query fails.
272 &lt;/para&gt;&lt;/listitem&gt;
273 &lt;/varlistentry&gt;
274 &lt;varlistentry&gt;
275 &lt;term&gt;GST_QUERY_POSITION&lt;/term&gt;
276 &lt;listitem&gt;&lt;para&gt;The query is sent to all sink elements in the bin and the
277 MAXIMUM of all values is returned. If no sinks are available in the bin,
278 the query fails.
279 &lt;/para&gt;&lt;/listitem&gt;
280 &lt;/varlistentry&gt;
281 &lt;varlistentry&gt;
282 &lt;term&gt;OTHERS&lt;/term&gt;
283 &lt;listitem&gt;&lt;para&gt;the query is forwarded to all sink elements, the result
284 of the first sink that answers the query successfully is returned. If no
285 sink is in the bin, the query fails.&lt;/para&gt;&lt;/listitem&gt;
286 &lt;/varlistentry&gt;
287 &lt;/variablelist&gt;
288 A #GstBin will by default forward any event sent to it to all sink elements.
289 If all the sinks return TRUE, the bin will also return TRUE, else FALSE is
290 returned. If no sinks are in the bin, the event handler will return TRUE.
291 &lt;/para&gt;
292 &lt;/refsect2&gt;
293 Last reviewed on 2006-04-28 (0.10.6)</doc>
294       <implements name="ChildProxy"/>
295       <constructor name="new" c:identifier="gst_bin_new">
296         <doc xml:whitespace="preserve">Creates a new bin with the given name.</doc>
297         <return-value transfer-ownership="full">
298           <doc xml:whitespace="preserve">a new #GstBin</doc>
299           <type name="Element" c:type="GstElement*"/>
300         </return-value>
301         <parameters>
302           <parameter name="name" transfer-ownership="none">
303             <doc xml:whitespace="preserve">the name of the new bin</doc>
304             <type name="utf8" c:type="gchar*"/>
305           </parameter>
306         </parameters>
307       </constructor>
308       <virtual-method name="add_element">
309         <return-value transfer-ownership="none">
310           <type name="gboolean" c:type="gboolean"/>
311         </return-value>
312         <parameters>
313           <parameter name="element" transfer-ownership="none">
314             <type name="Element" c:type="GstElement*"/>
315           </parameter>
316         </parameters>
317       </virtual-method>
318       <virtual-method name="do_latency">
319         <return-value transfer-ownership="none">
320           <type name="gboolean" c:type="gboolean"/>
321         </return-value>
322       </virtual-method>
323       <virtual-method name="element_added">
324         <return-value transfer-ownership="none">
325           <type name="none" c:type="void"/>
326         </return-value>
327         <parameters>
328           <parameter name="child" transfer-ownership="none">
329             <type name="Element" c:type="GstElement*"/>
330           </parameter>
331         </parameters>
332       </virtual-method>
333       <virtual-method name="element_removed">
334         <return-value transfer-ownership="none">
335           <type name="none" c:type="void"/>
336         </return-value>
337         <parameters>
338           <parameter name="child" transfer-ownership="none">
339             <type name="Element" c:type="GstElement*"/>
340           </parameter>
341         </parameters>
342       </virtual-method>
343       <virtual-method name="handle_message">
344         <return-value transfer-ownership="none">
345           <type name="none" c:type="void"/>
346         </return-value>
347         <parameters>
348           <parameter name="message" transfer-ownership="none">
349             <type name="Message" c:type="GstMessage*"/>
350           </parameter>
351         </parameters>
352       </virtual-method>
353       <virtual-method name="remove_element">
354         <return-value transfer-ownership="none">
355           <type name="gboolean" c:type="gboolean"/>
356         </return-value>
357         <parameters>
358           <parameter name="element" transfer-ownership="none">
359             <type name="Element" c:type="GstElement*"/>
360           </parameter>
361         </parameters>
362       </virtual-method>
363       <method name="add" c:identifier="gst_bin_add">
364         <doc xml:whitespace="preserve">Adds the given element to the bin.  Sets the element's parent, and thus
365 takes ownership of the element. An element can only be added to one bin.
366 If the element's pads are linked to other pads, the pads will be unlinked
367 before the element is added to the bin.
368 &lt;note&gt;
369 When you add an element to an already-running pipeline, you will have to
370 take care to set the state of the newly-added element to the desired
371 state (usually PLAYING or PAUSED, same you set the pipeline to originally)
372 with gst_element_set_state(), or use gst_element_sync_state_with_parent().
373 The bin or pipeline will not take care of this for you.
374 &lt;/note&gt;
375 MT safe.
376 the bin does not want to accept the element.</doc>
377         <return-value transfer-ownership="none">
378           <doc xml:whitespace="preserve">TRUE if the element could be added, FALSE if</doc>
379           <type name="gboolean" c:type="gboolean"/>
380         </return-value>
381         <parameters>
382           <parameter name="element" transfer-ownership="full">
383             <doc xml:whitespace="preserve">the #GstElement to add</doc>
384             <type name="Element" c:type="GstElement*"/>
385           </parameter>
386         </parameters>
387       </method>
388       <method name="add_many"
389               c:identifier="gst_bin_add_many"
390               introspectable="0">
391         <doc xml:whitespace="preserve">Adds a NULL-terminated list of elements to a bin.  This function is
392 equivalent to calling gst_bin_add() for each member of the list. The return
393 value of each gst_bin_add() is ignored.</doc>
394         <return-value transfer-ownership="none">
395           <type name="none" c:type="void"/>
396         </return-value>
397         <parameters>
398           <parameter name="element_1" transfer-ownership="full">
399             <doc xml:whitespace="preserve">the #GstElement element to add to the bin</doc>
400             <type name="Element" c:type="GstElement*"/>
401           </parameter>
402           <parameter transfer-ownership="none">
403             <varargs>
404             </varargs>
405           </parameter>
406         </parameters>
407       </method>
408       <method name="find_unconnected_pad"
409               c:identifier="gst_bin_find_unconnected_pad"
410               version="0.10.3"
411               deprecated="use gst_bin_find_unlinked_pad() instead.">
412         <doc xml:whitespace="preserve">Recursively looks for elements with an unlinked pad of the given
413 direction within the specified bin and returns an unlinked pad
414 if one is found, or NULL otherwise. If a pad is found, the caller
415 owns a reference to it and should use gst_object_unref() on the
416 pad when it is not needed any longer.</doc>
417         <return-value transfer-ownership="full">
418           <doc xml:whitespace="preserve">unlinked pad of the given direction, or NULL.</doc>
419           <type name="Pad" c:type="GstPad*"/>
420         </return-value>
421         <parameters>
422           <parameter name="direction" transfer-ownership="none">
423             <doc xml:whitespace="preserve">whether to look for an unlinked source or sink pad</doc>
424             <type name="PadDirection" c:type="GstPadDirection"/>
425           </parameter>
426         </parameters>
427       </method>
428       <method name="find_unlinked_pad"
429               c:identifier="gst_bin_find_unlinked_pad"
430               version="0.10.20">
431         <doc xml:whitespace="preserve">Recursively looks for elements with an unlinked pad of the given
432 direction within the specified bin and returns an unlinked pad
433 if one is found, or NULL otherwise. If a pad is found, the caller
434 owns a reference to it and should use gst_object_unref() on the
435 pad when it is not needed any longer.</doc>
436         <return-value transfer-ownership="full">
437           <doc xml:whitespace="preserve">unlinked pad of the given direction, or NULL.</doc>
438           <type name="Pad" c:type="GstPad*"/>
439         </return-value>
440         <parameters>
441           <parameter name="direction" transfer-ownership="none">
442             <doc xml:whitespace="preserve">whether to look for an unlinked source or sink pad</doc>
443             <type name="PadDirection" c:type="GstPadDirection"/>
444           </parameter>
445         </parameters>
446       </method>
447       <method name="get_by_interface" c:identifier="gst_bin_get_by_interface">
448         <doc xml:whitespace="preserve">Looks for an element inside the bin that implements the given
449 interface. If such an element is found, it returns the element.
450 You can cast this element to the given interface afterwards.  If you want
451 all elements that implement the interface, use
452 gst_bin_iterate_all_by_interface(). This function recurses into child bins.
453 MT safe.  Caller owns returned reference.</doc>
454         <return-value transfer-ownership="full">
455           <doc xml:whitespace="preserve">A #GstElement inside the bin implementing the interface</doc>
456           <type name="Element" c:type="GstElement*"/>
457         </return-value>
458         <parameters>
459           <parameter name="iface" transfer-ownership="none">
460             <doc xml:whitespace="preserve">the #GType of an interface</doc>
461             <type name="GType" c:type="GType"/>
462           </parameter>
463         </parameters>
464       </method>
465       <method name="get_by_name" c:identifier="gst_bin_get_by_name">
466         <doc xml:whitespace="preserve">Gets the element with the given name from a bin. This
467 function recurses into child bins.
468 Returns NULL if no element with the given name is found in the bin.
469 MT safe.  Caller owns returned reference.</doc>
470         <return-value transfer-ownership="full">
471           <doc xml:whitespace="preserve">the #GstElement with the given name, or NULL</doc>
472           <type name="Element" c:type="GstElement*"/>
473         </return-value>
474         <parameters>
475           <parameter name="name" transfer-ownership="none">
476             <doc xml:whitespace="preserve">the element name to search for</doc>
477             <type name="utf8" c:type="gchar*"/>
478           </parameter>
479         </parameters>
480       </method>
481       <method name="get_by_name_recurse_up"
482               c:identifier="gst_bin_get_by_name_recurse_up">
483         <doc xml:whitespace="preserve">Gets the element with the given name from this bin. If the
484 element is not found, a recursion is performed on the parent bin.
485 Returns NULL if:
486 - no element with the given name is found in the bin
487 MT safe.  Caller owns returned reference.</doc>
488         <return-value transfer-ownership="full">
489           <doc xml:whitespace="preserve">the #GstElement with the given name, or NULL</doc>
490           <type name="Element" c:type="GstElement*"/>
491         </return-value>
492         <parameters>
493           <parameter name="name" transfer-ownership="none">
494             <doc xml:whitespace="preserve">the element name to search for</doc>
495             <type name="utf8" c:type="gchar*"/>
496           </parameter>
497         </parameters>
498       </method>
499       <method name="iterate_all_by_interface"
500               c:identifier="gst_bin_iterate_all_by_interface"
501               introspectable="0">
502         <doc xml:whitespace="preserve">Looks for all elements inside the bin that implements the given
503 interface. You can safely cast all returned elements to the given interface.
504 The function recurses inside child bins. The iterator will yield a series
505 of #GstElement that should be unreffed after use.
506 Each element yielded by the iterator will have its refcount increased, so
507 unref after use.
508 MT safe.  Caller owns returned value.
509 in the bin implementing the given interface, or NULL</doc>
510         <return-value transfer-ownership="full">
511           <doc xml:whitespace="preserve">a #GstIterator of #GstElement for all elements</doc>
512           <type name="Iterator" c:type="GstIterator*"/>
513         </return-value>
514         <parameters>
515           <parameter name="iface" transfer-ownership="none">
516             <doc xml:whitespace="preserve">the #GType of an interface</doc>
517             <type name="GType" c:type="GType"/>
518           </parameter>
519         </parameters>
520       </method>
521       <method name="iterate_elements"
522               c:identifier="gst_bin_iterate_elements"
523               introspectable="0">
524         <doc xml:whitespace="preserve">Gets an iterator for the elements in this bin.
525 Each element yielded by the iterator will have its refcount increased, so
526 unref after use.
527 MT safe.  Caller owns returned value.</doc>
528         <return-value transfer-ownership="full">
529           <doc xml:whitespace="preserve">a #GstIterator of #GstElement, or NULL</doc>
530           <type name="Iterator" c:type="GstIterator*"/>
531         </return-value>
532       </method>
533       <method name="iterate_recurse"
534               c:identifier="gst_bin_iterate_recurse"
535               introspectable="0">
536         <doc xml:whitespace="preserve">Gets an iterator for the elements in this bin.
537 This iterator recurses into GstBin children.
538 Each element yielded by the iterator will have its refcount increased, so
539 unref after use.
540 MT safe.  Caller owns returned value.</doc>
541         <return-value transfer-ownership="full">
542           <doc xml:whitespace="preserve">a #GstIterator of #GstElement, or NULL</doc>
543           <type name="Iterator" c:type="GstIterator*"/>
544         </return-value>
545       </method>
546       <method name="iterate_sinks"
547               c:identifier="gst_bin_iterate_sinks"
548               introspectable="0">
549         <doc xml:whitespace="preserve">Gets an iterator for all elements in the bin that have the
550 #GST_ELEMENT_IS_SINK flag set.
551 Each element yielded by the iterator will have its refcount increased, so
552 unref after use.
553 MT safe.  Caller owns returned value.</doc>
554         <return-value transfer-ownership="full">
555           <doc xml:whitespace="preserve">a #GstIterator of #GstElement, or NULL</doc>
556           <type name="Iterator" c:type="GstIterator*"/>
557         </return-value>
558       </method>
559       <method name="iterate_sorted"
560               c:identifier="gst_bin_iterate_sorted"
561               introspectable="0">
562         <doc xml:whitespace="preserve">Gets an iterator for the elements in this bin in topologically
563 sorted order. This means that the elements are returned from
564 the most downstream elements (sinks) to the sources.
565 This function is used internally to perform the state changes
566 of the bin elements and for clock selection.
567 Each element yielded by the iterator will have its refcount increased, so
568 unref after use.
569 MT safe.  Caller owns returned value.</doc>
570         <return-value transfer-ownership="full">
571           <doc xml:whitespace="preserve">a #GstIterator of #GstElement, or NULL</doc>
572           <type name="Iterator" c:type="GstIterator*"/>
573         </return-value>
574       </method>
575       <method name="iterate_sources"
576               c:identifier="gst_bin_iterate_sources"
577               introspectable="0">
578         <doc xml:whitespace="preserve">Gets an iterator for all elements in the bin that have the
579 #GST_ELEMENT_IS_SOURCE flag set.
580 Each element yielded by the iterator will have its refcount increased, so
581 unref after use.
582 MT safe.  Caller owns returned value.</doc>
583         <return-value transfer-ownership="full">
584           <doc xml:whitespace="preserve">a #GstIterator of #GstElement, or NULL</doc>
585           <type name="Iterator" c:type="GstIterator*"/>
586         </return-value>
587       </method>
588       <method name="recalculate_latency"
589               c:identifier="gst_bin_recalculate_latency"
590               version="0.10.22.">
591         <doc xml:whitespace="preserve">Query @bin for the current latency using and reconfigures this latency to all the
592 elements with a LATENCY event.
593 This method is typically called on the pipeline when a #GST_MESSAGE_LATENCY
594 is posted on the bus.
595 This function simply emits the 'do-latency' signal so any custom latency
596 calculations will be performed.</doc>
597         <return-value transfer-ownership="none">
598           <doc xml:whitespace="preserve">%TRUE if the latency could be queried and reconfigured.</doc>
599           <type name="gboolean" c:type="gboolean"/>
600         </return-value>
601       </method>
602       <method name="remove" c:identifier="gst_bin_remove">
603         <doc xml:whitespace="preserve">Removes the element from the bin, unparenting it as well.
604 Unparenting the element means that the element will be dereferenced,
605 so if the bin holds the only reference to the element, the element
606 will be freed in the process of removing it from the bin.  If you
607 want the element to still exist after removing, you need to call
608 gst_object_ref() before removing it from the bin.
609 If the element's pads are linked to other pads, the pads will be unlinked
610 before the element is removed from the bin.
611 MT safe.
612 the bin does not want to remove the element.</doc>
613         <return-value transfer-ownership="none">
614           <doc xml:whitespace="preserve">TRUE if the element could be removed, FALSE if</doc>
615           <type name="gboolean" c:type="gboolean"/>
616         </return-value>
617         <parameters>
618           <parameter name="element" transfer-ownership="none">
619             <doc xml:whitespace="preserve">the #GstElement to remove</doc>
620             <type name="Element" c:type="GstElement*"/>
621           </parameter>
622         </parameters>
623       </method>
624       <method name="remove_many"
625               c:identifier="gst_bin_remove_many"
626               introspectable="0">
627         <doc xml:whitespace="preserve">Remove a list of elements from a bin. This function is equivalent
628 to calling gst_bin_remove() with each member of the list.</doc>
629         <return-value transfer-ownership="none">
630           <type name="none" c:type="void"/>
631         </return-value>
632         <parameters>
633           <parameter name="element_1" transfer-ownership="none">
634             <doc xml:whitespace="preserve">the first #GstElement to remove from the bin</doc>
635             <type name="Element" c:type="GstElement*"/>
636           </parameter>
637           <parameter transfer-ownership="none">
638             <varargs>
639             </varargs>
640           </parameter>
641         </parameters>
642       </method>
643       <property name="async-handling"
644                 version="0.10.13"
645                 writable="1"
646                 transfer-ownership="none">
647         <doc xml:whitespace="preserve">If set to #TRUE, the bin will handle asynchronous state changes.
648 This should be used only if the bin subclass is modifying the state
649 of its children on its own.</doc>
650         <type name="gboolean"/>
651       </property>
652       <property name="message-forward"
653                 version="0.10.31"
654                 writable="1"
655                 transfer-ownership="none">
656         <doc xml:whitespace="preserve">Forward all children messages, even those that would normally be filtered by
657 the bin. This can be interesting when one wants to be notified of the EOS
658 state of individual elements, for example.
659 The messages are converted to an ELEMENT message with the bin as the
660 source. The structure of the message is named 'GstBinForwarded' and contains
661 a field named 'message' of type GST_TYPE_MESSAGE that contains the original
662 forwarded message.</doc>
663         <type name="gboolean"/>
664       </property>
665       <field name="element">
666         <type name="Element" c:type="GstElement"/>
667       </field>
668       <field name="numchildren">
669         <type name="gint" c:type="gint"/>
670       </field>
671       <field name="children">
672         <type name="GLib.List" c:type="GList*">
673           <type name="gpointer" c:type="gpointer"/>
674         </type>
675       </field>
676       <field name="children_cookie">
677         <type name="guint32" c:type="guint32"/>
678       </field>
679       <field name="child_bus">
680         <type name="Bus" c:type="GstBus*"/>
681       </field>
682       <field name="messages">
683         <type name="GLib.List" c:type="GList*">
684           <type name="gpointer" c:type="gpointer"/>
685         </type>
686       </field>
687       <field name="polling">
688         <type name="gboolean" c:type="gboolean"/>
689       </field>
690       <field name="state_dirty">
691         <type name="gboolean" c:type="gboolean"/>
692       </field>
693       <field name="clock_dirty">
694         <type name="gboolean" c:type="gboolean"/>
695       </field>
696       <field name="provided_clock">
697         <type name="Clock" c:type="GstClock*"/>
698       </field>
699       <field name="clock_provider">
700         <type name="Element" c:type="GstElement*"/>
701       </field>
702       <field name="priv" readable="0" private="1">
703         <type name="BinPrivate" c:type="GstBinPrivate*"/>
704       </field>
705       <field name="_gst_reserved" readable="0" private="1">
706         <array zero-terminated="0" c:type="gpointer" fixed-size="3">
707           <type name="gpointer" c:type="gpointer"/>
708         </array>
709       </field>
710       <glib:signal name="do-latency" version="0.10.22">
711         <doc xml:whitespace="preserve">Will be emitted when the bin needs to perform latency calculations. This
712 signal is only emited for toplevel bins or when async-handling is
713 enabled.
714 Only one signal handler is invoked. If no signals are connected, the
715 default handler is invoked, which will query and distribute the lowest
716 possible latency to all sinks.
717 Connect to this signal if the default latency calculations are not
718 sufficient, like when you need different latencies for different sinks in
719 the same pipeline.</doc>
720         <return-value transfer-ownership="none">
721           <type name="gboolean"/>
722         </return-value>
723       </glib:signal>
724       <glib:signal name="element-added">
725         <doc xml:whitespace="preserve">Will be emitted after the element was added to the bin.</doc>
726         <return-value transfer-ownership="none">
727           <type name="none"/>
728         </return-value>
729         <parameters>
730           <parameter name="element" transfer-ownership="none">
731             <doc xml:whitespace="preserve">the #GstElement that was added to the bin</doc>
732             <type name="Element"/>
733           </parameter>
734         </parameters>
735       </glib:signal>
736       <glib:signal name="element-removed">
737         <doc xml:whitespace="preserve">Will be emitted after the element was removed from the bin.</doc>
738         <return-value transfer-ownership="none">
739           <type name="none"/>
740         </return-value>
741         <parameters>
742           <parameter name="element" transfer-ownership="none">
743             <doc xml:whitespace="preserve">the #GstElement that was removed from the bin</doc>
744             <type name="Element"/>
745           </parameter>
746         </parameters>
747       </glib:signal>
748     </class>
749     <record name="BinClass"
750             c:type="GstBinClass"
751             glib:is-gtype-struct-for="Bin">
752       <doc xml:whitespace="preserve">Subclasses can override the @add_element and @remove_element to
753 update the list of children in the bin.
754 The @handle_message method can be overridden to implement custom
755 message handling.  @handle_message takes ownership of the message, just like
756 #gst_element_post_message.</doc>
757       <field name="parent_class">
758         <type name="ElementClass" c:type="GstElementClass"/>
759       </field>
760       <field name="pool" readable="0" private="1">
761         <type name="GLib.ThreadPool" c:type="GThreadPool*"/>
762       </field>
763       <field name="element_added">
764         <callback name="element_added">
765           <return-value transfer-ownership="none">
766             <type name="none" c:type="void"/>
767           </return-value>
768           <parameters>
769             <parameter name="bin" transfer-ownership="none">
770               <type name="Bin" c:type="GstBin*"/>
771             </parameter>
772             <parameter name="child" transfer-ownership="none">
773               <type name="Element" c:type="GstElement*"/>
774             </parameter>
775           </parameters>
776         </callback>
777       </field>
778       <field name="element_removed">
779         <callback name="element_removed">
780           <return-value transfer-ownership="none">
781             <type name="none" c:type="void"/>
782           </return-value>
783           <parameters>
784             <parameter name="bin" transfer-ownership="none">
785               <type name="Bin" c:type="GstBin*"/>
786             </parameter>
787             <parameter name="child" transfer-ownership="none">
788               <type name="Element" c:type="GstElement*"/>
789             </parameter>
790           </parameters>
791         </callback>
792       </field>
793       <field name="add_element">
794         <callback name="add_element">
795           <return-value transfer-ownership="none">
796             <type name="gboolean" c:type="gboolean"/>
797           </return-value>
798           <parameters>
799             <parameter name="bin" transfer-ownership="none">
800               <type name="Bin" c:type="GstBin*"/>
801             </parameter>
802             <parameter name="element" transfer-ownership="none">
803               <type name="Element" c:type="GstElement*"/>
804             </parameter>
805           </parameters>
806         </callback>
807       </field>
808       <field name="remove_element">
809         <callback name="remove_element">
810           <return-value transfer-ownership="none">
811             <type name="gboolean" c:type="gboolean"/>
812           </return-value>
813           <parameters>
814             <parameter name="bin" transfer-ownership="none">
815               <type name="Bin" c:type="GstBin*"/>
816             </parameter>
817             <parameter name="element" transfer-ownership="none">
818               <type name="Element" c:type="GstElement*"/>
819             </parameter>
820           </parameters>
821         </callback>
822       </field>
823       <field name="handle_message">
824         <callback name="handle_message">
825           <return-value transfer-ownership="none">
826             <type name="none" c:type="void"/>
827           </return-value>
828           <parameters>
829             <parameter name="bin" transfer-ownership="none">
830               <type name="Bin" c:type="GstBin*"/>
831             </parameter>
832             <parameter name="message" transfer-ownership="none">
833               <type name="Message" c:type="GstMessage*"/>
834             </parameter>
835           </parameters>
836         </callback>
837       </field>
838       <field name="do_latency">
839         <callback name="do_latency">
840           <return-value transfer-ownership="none">
841             <type name="gboolean" c:type="gboolean"/>
842           </return-value>
843           <parameters>
844             <parameter name="bin" transfer-ownership="none">
845               <type name="Bin" c:type="GstBin*"/>
846             </parameter>
847           </parameters>
848         </callback>
849       </field>
850       <field name="_gst_reserved" readable="0" private="1">
851         <array zero-terminated="0" c:type="gpointer" fixed-size="3">
852           <type name="gpointer" c:type="gpointer"/>
853         </array>
854       </field>
855     </record>
856     <bitfield name="BinFlags" c:type="GstBinFlags">
857       <doc xml:whitespace="preserve">GstBinFlags are a set of flags specific to bins. Most are set/used
858 internally. They can be checked using the GST_OBJECT_FLAG_IS_SET () macro,
859 and (un)set using GST_OBJECT_FLAG_SET () and GST_OBJECT_FLAG_UNSET ().</doc>
860       <member name="bin_flag_last"
861               value="33554432"
862               c:identifier="GST_BIN_FLAG_LAST"/>
863     </bitfield>
864     <record name="BinPrivate" c:type="GstBinPrivate" disguised="1">
865     </record>
866     <class name="Buffer"
867            c:symbol-prefix="buffer"
868            c:type="GstBuffer"
869            parent="MiniObject"
870            glib:type-name="GstBuffer"
871            glib:get-type="gst_buffer_get_type"
872            glib:type-struct="BufferClass"
873            glib:fundamental="1">
874       <doc xml:whitespace="preserve">Buffers are the basic unit of data transfer in GStreamer.  The #GstBuffer
875 type provides all the state necessary to define a region of memory as part
876 of a stream.  Sub-buffers are also supported, allowing a smaller region of a
877 buffer to become its own buffer, with mechanisms in place to ensure that
878 neither memory space goes away prematurely.
879 Buffers are usually created with gst_buffer_new(). After a buffer has been
880 created one will typically allocate memory for it and set the size of the
881 buffer data.  The following example creates a buffer that can hold a given
882 video frame with a given width, height and bits per plane.
883 &lt;example&gt;
884 &lt;title&gt;Creating a buffer for a video frame&lt;/title&gt;
885 &lt;programlisting&gt;
886 GstBuffer *buffer;
887 gint size, width, height, bpp;
888 ...
889 size = width * height * bpp;
890 buffer = gst_buffer_new ();
891 GST_BUFFER_SIZE (buffer) = size;
892 GST_BUFFER_MALLOCDATA (buffer) = g_malloc (size);
893 GST_BUFFER_DATA (buffer) = GST_BUFFER_MALLOCDATA (buffer);
894 ...
895 &lt;/programlisting&gt;
896 &lt;/example&gt;
897 Alternatively, use gst_buffer_new_and_alloc()
898 to create a buffer with preallocated data of a given size.
899 The data pointed to by the buffer can be retrieved with the GST_BUFFER_DATA()
900 macro. The size of the data can be found with GST_BUFFER_SIZE(). For buffers
901 of size 0, the data pointer is undefined (usually NULL) and should never be used.
902 If an element knows what pad you will push the buffer out on, it should use
903 gst_pad_alloc_buffer() instead to create a buffer.  This allows downstream
904 elements to provide special buffers to write in, like hardware buffers.
905 A buffer has a pointer to a #GstCaps describing the media type of the data
906 in the buffer. Attach caps to the buffer with gst_buffer_set_caps(); this
907 is typically done before pushing out a buffer using gst_pad_push() so that
908 the downstream element knows the type of the buffer.
909 A buffer will usually have a timestamp, and a duration, but neither of these
910 are guaranteed (they may be set to #GST_CLOCK_TIME_NONE). Whenever a
911 meaningful value can be given for these, they should be set. The timestamp
912 and duration are measured in nanoseconds (they are #GstClockTime values).
913 A buffer can also have one or both of a start and an end offset. These are
914 media-type specific. For video buffers, the start offset will generally be
915 the frame number. For audio buffers, it will be the number of samples
916 produced so far. For compressed data, it could be the byte offset in a
917 source or destination file. Likewise, the end offset will be the offset of
918 the end of the buffer. These can only be meaningfully interpreted if you
919 know the media type of the buffer (the #GstCaps set on it). Either or both
920 can be set to #GST_BUFFER_OFFSET_NONE.
921 gst_buffer_ref() is used to increase the refcount of a buffer. This must be
922 done when you want to keep a handle to the buffer after pushing it to the
923 next element.
924 To efficiently create a smaller buffer out of an existing one, you can
925 use gst_buffer_create_sub().
926 If a plug-in wants to modify the buffer data in-place, it should first obtain
927 a buffer that is safe to modify by using gst_buffer_make_writable().  This
928 function is optimized so that a copy will only be made when it is necessary.
929 A plugin that only wishes to modify the metadata of a buffer, such as the
930 offset, timestamp or caps, should use gst_buffer_make_metadata_writable(),
931 which will create a subbuffer of the original buffer to ensure the caller
932 has sole ownership, and not copy the buffer data.
933 Several flags of the buffer can be set and unset with the
934 GST_BUFFER_FLAG_SET() and GST_BUFFER_FLAG_UNSET() macros. Use
935 GST_BUFFER_FLAG_IS_SET() to test if a certain #GstBufferFlag is set.
936 Buffers can be efficiently merged into a larger buffer with
937 gst_buffer_merge() and gst_buffer_span() if the gst_buffer_is_span_fast()
938 function returns TRUE.
939 An element should either unref the buffer or push it out on a src pad
940 using gst_pad_push() (see #GstPad).
941 Buffers are usually freed by unreffing them with gst_buffer_unref(). When
942 the refcount drops to 0, any data pointed to by GST_BUFFER_MALLOCDATA() will
943 also be freed.
944 Last reviewed on August 11th, 2006 (0.10.10)</doc>
945       <constructor name="new" c:identifier="gst_buffer_new">
946         <doc xml:whitespace="preserve">Creates a newly allocated buffer without any data.
947 MT safe.</doc>
948         <return-value transfer-ownership="full">
949           <doc xml:whitespace="preserve">the new #GstBuffer.</doc>
950           <type name="Buffer" c:type="GstBuffer*"/>
951         </return-value>
952       </constructor>
953       <constructor name="new_and_alloc"
954                    c:identifier="gst_buffer_new_and_alloc">
955         <doc xml:whitespace="preserve">Creates a newly allocated buffer with data of the given size.
956 The buffer memory is not cleared. If the requested amount of
957 memory can't be allocated, the program will abort. Use
958 gst_buffer_try_new_and_alloc() if you want to handle this case
959 gracefully or have gotten the size to allocate from an untrusted
960 source such as a media stream.
961 Note that when @size == 0, the buffer data pointer will be NULL.
962 MT safe.</doc>
963         <return-value transfer-ownership="full">
964           <doc xml:whitespace="preserve">the new #GstBuffer.</doc>
965           <type name="Buffer" c:type="GstBuffer*"/>
966         </return-value>
967         <parameters>
968           <parameter name="size" transfer-ownership="none">
969             <doc xml:whitespace="preserve">the size in bytes of the new buffer's data.</doc>
970             <type name="guint" c:type="guint"/>
971           </parameter>
972         </parameters>
973       </constructor>
974       <constructor name="try_new_and_alloc"
975                    c:identifier="gst_buffer_try_new_and_alloc"
976                    version="0.10.13">
977         <doc xml:whitespace="preserve">Tries to create a newly allocated buffer with data of the given size. If
978 the requested amount of memory can't be allocated, NULL will be returned.
979 The buffer memory is not cleared.
980 Note that when @size == 0, the buffer data pointer will be NULL.
981 MT safe.
982 be allocated.</doc>
983         <return-value transfer-ownership="full">
984           <doc xml:whitespace="preserve">a new #GstBuffer, or NULL if the memory couldn't</doc>
985           <type name="Buffer" c:type="GstBuffer*"/>
986         </return-value>
987         <parameters>
988           <parameter name="size" transfer-ownership="none">
989             <doc xml:whitespace="preserve">the size in bytes of the new buffer's data.</doc>
990             <type name="guint" c:type="guint"/>
991           </parameter>
992         </parameters>
993       </constructor>
994       <method name="copy_metadata"
995               c:identifier="gst_buffer_copy_metadata"
996               version="0.10.13">
997         <doc xml:whitespace="preserve">Copies the metadata from @src into @dest. The data, size and mallocdata
998 fields are not copied.
999 all the metadata fields.
1000 This function is typically called from a custom buffer copy function after
1001 creating @dest and setting the data, size, mallocdata.</doc>
1002         <return-value transfer-ownership="none">
1003           <type name="none" c:type="void"/>
1004         </return-value>
1005         <parameters>
1006           <parameter name="src" transfer-ownership="none">
1007             <doc xml:whitespace="preserve">a source #GstBuffer</doc>
1008             <type name="Buffer" c:type="GstBuffer*"/>
1009           </parameter>
1010           <parameter name="flags" transfer-ownership="none">
1011             <doc xml:whitespace="preserve">flags indicating what metadata fields should be copied.</doc>
1012             <type name="BufferCopyFlags" c:type="GstBufferCopyFlags"/>
1013           </parameter>
1014         </parameters>
1015       </method>
1016       <method name="create_sub" c:identifier="gst_buffer_create_sub">
1017         <doc xml:whitespace="preserve">Creates a sub-buffer from @parent at @offset and @size.
1018 This sub-buffer uses the actual memory space of the parent buffer.
1019 This function will copy the offset and timestamp fields when the
1020 offset is 0. If not, they will be set to #GST_CLOCK_TIME_NONE and 
1021 #GST_BUFFER_OFFSET_NONE.
1022 If @offset equals 0 and @size equals the total size of @buffer, the
1023 duration and offset end fields are also copied. If not they will be set
1024 to #GST_CLOCK_TIME_NONE and #GST_BUFFER_OFFSET_NONE.
1025 MT safe.
1026 invalid.</doc>
1027         <return-value transfer-ownership="full">
1028           <doc xml:whitespace="preserve">the new #GstBuffer or NULL if the arguments were</doc>
1029           <type name="Buffer" c:type="GstBuffer*"/>
1030         </return-value>
1031         <parameters>
1032           <parameter name="offset" transfer-ownership="none">
1033             <doc xml:whitespace="preserve">the offset into parent #GstBuffer at which the new sub-buffer begins.</doc>
1034             <type name="guint" c:type="guint"/>
1035           </parameter>
1036           <parameter name="size" transfer-ownership="none">
1037             <doc xml:whitespace="preserve">the size of the new #GstBuffer sub-buffer, in bytes.</doc>
1038             <type name="guint" c:type="guint"/>
1039           </parameter>
1040         </parameters>
1041       </method>
1042       <method name="get_caps" c:identifier="gst_buffer_get_caps">
1043         <doc xml:whitespace="preserve">Gets the media type of the buffer. This can be NULL if there
1044 is no media type attached to this buffer.
1045 Returns NULL if there were no caps on this buffer.</doc>
1046         <return-value transfer-ownership="full">
1047           <doc xml:whitespace="preserve">a reference to the #GstCaps. unref after usage.</doc>
1048           <type name="Caps" c:type="GstCaps*"/>
1049         </return-value>
1050       </method>
1051       <method name="is_metadata_writable"
1052               c:identifier="gst_buffer_is_metadata_writable">
1053         <doc xml:whitespace="preserve">Similar to gst_buffer_is_writable, but this only ensures that the
1054 refcount of the buffer is 1, indicating that the caller is the sole
1055 owner and can change the buffer metadata, such as caps and timestamps.</doc>
1056         <return-value transfer-ownership="none">
1057           <doc xml:whitespace="preserve">TRUE if the metadata is writable.</doc>
1058           <type name="gboolean" c:type="gboolean"/>
1059         </return-value>
1060       </method>
1061       <method name="is_span_fast" c:identifier="gst_buffer_is_span_fast">
1062         <doc xml:whitespace="preserve">Determines whether a gst_buffer_span() can be done without copying
1063 the contents, that is, whether the data areas are contiguous sub-buffers of 
1064 the same buffer.
1065 MT safe.
1066 FALSE if a copy would be required.</doc>
1067         <return-value transfer-ownership="none">
1068           <doc xml:whitespace="preserve">TRUE if the buffers are contiguous,</doc>
1069           <type name="gboolean" c:type="gboolean"/>
1070         </return-value>
1071         <parameters>
1072           <parameter name="buf2" transfer-ownership="none">
1073             <doc xml:whitespace="preserve">the second #GstBuffer.</doc>
1074             <type name="Buffer" c:type="GstBuffer*"/>
1075           </parameter>
1076         </parameters>
1077       </method>
1078       <method name="join" c:identifier="gst_buffer_join">
1079         <doc xml:whitespace="preserve">Create a new buffer that is the concatenation of the two source
1080 buffers, and unrefs the original source buffers.
1081 If the buffers point to contiguous areas of memory, the buffer
1082 is created without copying the data.
1083 This is a convenience function for C programmers. See also
1084 gst_buffer_merge(), which does the same thing without
1085 unreffing the input parameters. Language bindings without
1086 explicit reference counting should not wrap this function.
1087 the source buffers.</doc>
1088         <return-value transfer-ownership="full">
1089           <doc xml:whitespace="preserve">the new #GstBuffer which is the concatenation of</doc>
1090           <type name="Buffer" c:type="GstBuffer*"/>
1091         </return-value>
1092         <parameters>
1093           <parameter name="buf2" transfer-ownership="none">
1094             <doc xml:whitespace="preserve">the second source #GstBuffer.</doc>
1095             <type name="Buffer" c:type="GstBuffer*"/>
1096           </parameter>
1097         </parameters>
1098       </method>
1099       <method name="make_metadata_writable"
1100               c:identifier="gst_buffer_make_metadata_writable">
1101         <doc xml:whitespace="preserve">Similar to gst_buffer_make_writable, but does not ensure that the buffer
1102 data array is writable. Instead, this just ensures that the returned buffer
1103 is solely owned by the caller, by creating a subbuffer of the original
1104 buffer if necessary.
1105 After calling this function, @buf should not be referenced anymore. The
1106 result of this function has guaranteed writable metadata.
1107 may or may not be the same as @buf.</doc>
1108         <return-value transfer-ownership="full">
1109           <doc xml:whitespace="preserve">a new #GstBuffer with writable metadata, which</doc>
1110           <type name="Buffer" c:type="GstBuffer*"/>
1111         </return-value>
1112       </method>
1113       <method name="merge" c:identifier="gst_buffer_merge">
1114         <doc xml:whitespace="preserve">Create a new buffer that is the concatenation of the two source
1115 buffers.  The original source buffers will not be modified or
1116 unref'd.  Make sure you unref the source buffers if they are not used
1117 anymore afterwards.
1118 If the buffers point to contiguous areas of memory, the buffer
1119 is created without copying the data.
1120 of the source buffers.</doc>
1121         <return-value transfer-ownership="full">
1122           <doc xml:whitespace="preserve">the new #GstBuffer which is the concatenation</doc>
1123           <type name="Buffer" c:type="GstBuffer*"/>
1124         </return-value>
1125         <parameters>
1126           <parameter name="buf2" transfer-ownership="none">
1127             <doc xml:whitespace="preserve">the second source #GstBuffer to merge.</doc>
1128             <type name="Buffer" c:type="GstBuffer*"/>
1129           </parameter>
1130         </parameters>
1131       </method>
1132       <method name="set_caps" c:identifier="gst_buffer_set_caps">
1133         <doc xml:whitespace="preserve">Sets the media type on the buffer. The refcount of the caps will
1134 be increased and any previous caps on the buffer will be
1135 unreffed.</doc>
1136         <return-value transfer-ownership="none">
1137           <type name="none" c:type="void"/>
1138         </return-value>
1139         <parameters>
1140           <parameter name="caps" transfer-ownership="none">
1141             <doc xml:whitespace="preserve">a #GstCaps.</doc>
1142             <type name="Caps" c:type="GstCaps*"/>
1143           </parameter>
1144         </parameters>
1145       </method>
1146       <method name="span" c:identifier="gst_buffer_span">
1147         <doc xml:whitespace="preserve">Creates a new buffer that consists of part of buf1 and buf2.
1148 Logically, buf1 and buf2 are concatenated into a single larger
1149 buffer, and a new buffer is created at the given offset inside
1150 this space, with a given length.
1151 If the two source buffers are children of the same larger buffer,
1152 and are contiguous, the new buffer will be a child of the shared
1153 parent, and thus no copying is necessary. you can use
1154 gst_buffer_is_span_fast() to determine if a memcpy will be needed.
1155 MT safe.
1156 buffers, or NULL if the arguments are invalid.</doc>
1157         <return-value transfer-ownership="full">
1158           <doc xml:whitespace="preserve">the new #GstBuffer that spans the two source</doc>
1159           <type name="Buffer" c:type="GstBuffer*"/>
1160         </return-value>
1161         <parameters>
1162           <parameter name="offset" transfer-ownership="none">
1163             <doc xml:whitespace="preserve">the offset in the first buffer from where the new buffer should start.</doc>
1164             <type name="guint32" c:type="guint32"/>
1165           </parameter>
1166           <parameter name="buf2" transfer-ownership="none">
1167             <doc xml:whitespace="preserve">the second source #GstBuffer to merge.</doc>
1168             <type name="Buffer" c:type="GstBuffer*"/>
1169           </parameter>
1170           <parameter name="len" transfer-ownership="none">
1171             <doc xml:whitespace="preserve">the total length of the new buffer.</doc>
1172             <type name="guint32" c:type="guint32"/>
1173           </parameter>
1174         </parameters>
1175       </method>
1176       <method name="stamp"
1177               c:identifier="gst_buffer_stamp"
1178               deprecated="use gst_buffer_copy_metadata() instead, it provides more">
1179         <doc xml:whitespace="preserve">Copies additional information (the timestamp, duration, and offset start
1180 and end) from one buffer to the other.
1181 This function does not copy any buffer flags or caps and is equivalent to
1182 gst_buffer_copy_metadata(@dest, @src, GST_BUFFER_COPY_TIMESTAMPS).
1183 control.</doc>
1184         <return-value transfer-ownership="none">
1185           <type name="none" c:type="void"/>
1186         </return-value>
1187         <parameters>
1188           <parameter name="src" transfer-ownership="none">
1189             <doc xml:whitespace="preserve">buffer to stamp from</doc>
1190             <type name="Buffer" c:type="GstBuffer*"/>
1191           </parameter>
1192         </parameters>
1193       </method>
1194       <field name="mini_object">
1195         <type name="MiniObject" c:type="GstMiniObject"/>
1196       </field>
1197       <field name="data">
1198         <type name="guint8" c:type="guint8*"/>
1199       </field>
1200       <field name="size">
1201         <type name="guint" c:type="guint"/>
1202       </field>
1203       <field name="timestamp">
1204         <type name="ClockTime" c:type="GstClockTime"/>
1205       </field>
1206       <field name="duration">
1207         <type name="ClockTime" c:type="GstClockTime"/>
1208       </field>
1209       <field name="caps">
1210         <type name="Caps" c:type="GstCaps*"/>
1211       </field>
1212       <field name="offset">
1213         <type name="guint64" c:type="guint64"/>
1214       </field>
1215       <field name="offset_end">
1216         <type name="guint64" c:type="guint64"/>
1217       </field>
1218       <field name="malloc_data">
1219         <type name="guint8" c:type="guint8*"/>
1220       </field>
1221       <field name="free_func">
1222         <type name="GLib.FreeFunc" c:type="GFreeFunc"/>
1223       </field>
1224       <field name="parent">
1225         <type name="Buffer" c:type="GstBuffer*"/>
1226       </field>
1227       <field name="_gst_reserved" readable="0" private="1">
1228         <array zero-terminated="0" c:type="gpointer" fixed-size="2">
1229           <type name="gpointer" c:type="gpointer"/>
1230         </array>
1231       </field>
1232     </class>
1233     <record name="BufferClass"
1234             c:type="GstBufferClass"
1235             glib:is-gtype-struct-for="Buffer">
1236       <field name="mini_object_class">
1237         <type name="MiniObjectClass" c:type="GstMiniObjectClass"/>
1238       </field>
1239     </record>
1240     <bitfield name="BufferCopyFlags"
1241               version="0.10.13"
1242               c:type="GstBufferCopyFlags">
1243       <doc xml:whitespace="preserve">A set of flags that can be provided to the gst_buffer_copy_metadata()
1244 function to specify which metadata fields should be copied.</doc>
1245       <member name="flags" value="1" c:identifier="GST_BUFFER_COPY_FLAGS"/>
1246       <member name="timestamps"
1247               value="2"
1248               c:identifier="GST_BUFFER_COPY_TIMESTAMPS"/>
1249       <member name="caps" value="4" c:identifier="GST_BUFFER_COPY_CAPS"/>
1250     </bitfield>
1251     <bitfield name="BufferFlag" c:type="GstBufferFlag">
1252       <doc xml:whitespace="preserve">A set of buffer flags used to describe properties of a #GstBuffer.</doc>
1253       <member name="readonly"
1254               value="1"
1255               c:identifier="GST_BUFFER_FLAG_READONLY"/>
1256       <member name="media4" value="2" c:identifier="GST_BUFFER_FLAG_MEDIA4"/>
1257       <member name="preroll"
1258               value="16"
1259               c:identifier="GST_BUFFER_FLAG_PREROLL"/>
1260       <member name="discont"
1261               value="32"
1262               c:identifier="GST_BUFFER_FLAG_DISCONT"/>
1263       <member name="in_caps"
1264               value="64"
1265               c:identifier="GST_BUFFER_FLAG_IN_CAPS"/>
1266       <member name="gap" value="128" c:identifier="GST_BUFFER_FLAG_GAP"/>
1267       <member name="delta_unit"
1268               value="256"
1269               c:identifier="GST_BUFFER_FLAG_DELTA_UNIT"/>
1270       <member name="media1" value="512" c:identifier="GST_BUFFER_FLAG_MEDIA1"/>
1271       <member name="media2"
1272               value="1024"
1273               c:identifier="GST_BUFFER_FLAG_MEDIA2"/>
1274       <member name="media3"
1275               value="2048"
1276               c:identifier="GST_BUFFER_FLAG_MEDIA3"/>
1277       <member name="last" value="4096" c:identifier="GST_BUFFER_FLAG_LAST"/>
1278     </bitfield>
1279     <class name="BufferList"
1280            c:symbol-prefix="buffer_list"
1281            c:type="GstBufferList"
1282            version="0.10.24"
1283            parent="MiniObject"
1284            glib:type-name="GstBufferList"
1285            glib:get-type="gst_buffer_list_get_type"
1286            glib:type-struct="BufferListClass"
1287            glib:fundamental="1">
1288       <doc xml:whitespace="preserve">Buffer lists are units of grouped scatter/gather data transfer in
1289 GStreamer.
1290 Buffer lists are created with gst_buffer_list_new() and filled with data
1291 using a #GstBufferListIterator. The iterator has no current buffer; its
1292 cursor position lies between buffers, immediately before the buffer that
1293 would be returned by gst_buffer_list_iterator_next(). After iterating to the
1294 end of a group the iterator must be advanced to the next group by a call to
1295 gst_buffer_list_iterator_next_group() before any further calls to
1296 gst_buffer_list_iterator_next() can return buffers again. The cursor position
1297 of a newly created iterator lies before the first group; a call to
1298 gst_buffer_list_iterator_next_group() is necessary before calls to
1299 gst_buffer_list_iterator_next() can return buffers.
1300 &lt;informalfigure&gt;
1301 &lt;programlisting&gt;
1302 +--- group0 ----------------------+--- group1 ------------+
1303 |   buffer0   buffer1   buffer2   |   buffer3   buffer4   |
1304 ^   ^         ^         ^         ^   ^         ^         ^
1305 Iterator positions between buffers
1306 &lt;/programlisting&gt;
1307 &lt;/informalfigure&gt;
1308 The gst_buffer_list_iterator_remove(), gst_buffer_list_iterator_steal(),
1309 gst_buffer_list_iterator_take() and gst_buffer_list_iterator_do() functions
1310 are not defined in terms of the cursor position; they operate on the last
1311 element returned from gst_buffer_list_iterator_next().
1312 The basic use pattern of creating a buffer list with an iterator is as
1313 follows:
1314 &lt;example&gt;
1315 &lt;title&gt;Creating a buffer list&lt;/title&gt;
1316 &lt;programlisting&gt;
1317 GstBufferList *list;
1318 GstBufferListIterator *it;
1319 list = gst_buffer_list_new ();
1320 it = gst_buffer_list_iterate (list);
1321 gst_buffer_list_iterator_add_group (it);
1322 gst_buffer_list_iterator_add (it, header1);
1323 gst_buffer_list_iterator_add (it, data1);
1324 gst_buffer_list_iterator_add_group (it);
1325 gst_buffer_list_iterator_add (it, header2);
1326 gst_buffer_list_iterator_add (it, data2);
1327 gst_buffer_list_iterator_add_group (it);
1328 gst_buffer_list_iterator_add (it, header3);
1329 gst_buffer_list_iterator_add (it, data3);
1330 ...
1331 gst_buffer_list_iterator_free (it);
1332 &lt;/programlisting&gt;
1333 &lt;/example&gt;
1334 The basic use pattern of iterating over a buffer list is as follows:
1335 &lt;example&gt;
1336 &lt;title&gt;Iterating a buffer list&lt;/title&gt;
1337 &lt;programlisting&gt;
1338 GstBufferListIterator *it;
1339 it = gst_buffer_list_iterate (list);
1340 while (gst_buffer_list_iterator_next_group (it)) {
1341 while ((buffer = gst_buffer_list_iterator_next (it)) != NULL) {
1342 do_something_with_buffer (buffer);
1343 }
1344 }
1345 gst_buffer_list_iterator_free (it);
1346 &lt;/programlisting&gt;
1347 &lt;/example&gt;
1348 The basic use pattern of modifying a buffer in a list is as follows:
1349 &lt;example&gt;
1350 &lt;title&gt;Modifying the data of the first buffer in a list&lt;/title&gt;
1351 &lt;programlisting&gt;
1352 GstBufferListIterator *it;
1353 list = gst_buffer_list_make_writable (list);
1354 it = gst_buffer_list_iterate (list);
1355 if (gst_buffer_list_iterator_next_group (it)) {
1356 GstBuffer *buf
1357 buf = gst_buffer_list_iterator_next (it);
1358 if (buf != NULL) {
1359 buf = gst_buffer_list_iterator_do (it,
1360 (GstBufferListDoFunction) gst_mini_object_make_writable, NULL);
1361 modify_data (GST_BUFFER_DATA (buf));
1362 }
1363 }
1364 gst_buffer_list_iterator_free (it);
1365 &lt;/programlisting&gt;
1366 &lt;/example&gt;</doc>
1367       <constructor name="new"
1368                    c:identifier="gst_buffer_list_new"
1369                    version="0.10.24">
1370         <doc xml:whitespace="preserve">Creates a new, empty #GstBufferList. The caller is responsible for unreffing
1371 the returned #GstBufferList.
1372 after usage.</doc>
1373         <return-value transfer-ownership="full">
1374           <doc xml:whitespace="preserve">the new #GstBufferList. gst_buffer_list_unref()</doc>
1375           <type name="BufferList" c:type="GstBufferList*"/>
1376         </return-value>
1377       </constructor>
1378       <method name="foreach"
1379               c:identifier="gst_buffer_list_foreach"
1380               version="0.10.24">
1381         <doc xml:whitespace="preserve">Call @func with @data for each buffer in @list.
1382 of @func define if this function returns or if the remaining buffers in a
1383 group should be skipped.</doc>
1384         <return-value transfer-ownership="none">
1385           <type name="none" c:type="void"/>
1386         </return-value>
1387         <parameters>
1388           <parameter name="func"
1389                      transfer-ownership="none"
1390                      scope="call"
1391                      closure="1">
1392             <doc xml:whitespace="preserve">a #GstBufferListFunc to call</doc>
1393             <type name="BufferListFunc" c:type="GstBufferListFunc"/>
1394           </parameter>
1395           <parameter name="user_data" transfer-ownership="none">
1396             <doc xml:whitespace="preserve">user data passed to @func</doc>
1397             <type name="gpointer" c:type="gpointer"/>
1398           </parameter>
1399         </parameters>
1400       </method>
1401       <method name="get" c:identifier="gst_buffer_list_get" version="0.10.24">
1402         <doc xml:whitespace="preserve">Get the buffer at @idx in @group.
1403 Note that this function is not efficient for iterating over the entire list.
1404 Use an iterator or gst_buffer_list_foreach() instead.
1405 is no buffer. The buffer remains valid as long as @list is valid.</doc>
1406         <return-value transfer-ownership="none">
1407           <doc xml:whitespace="preserve">the buffer at @idx in @group or NULL when there</doc>
1408           <type name="Buffer" c:type="GstBuffer*"/>
1409         </return-value>
1410         <parameters>
1411           <parameter name="group" transfer-ownership="none">
1412             <doc xml:whitespace="preserve">the group</doc>
1413             <type name="guint" c:type="guint"/>
1414           </parameter>
1415           <parameter name="idx" transfer-ownership="none">
1416             <doc xml:whitespace="preserve">the index in @group</doc>
1417             <type name="guint" c:type="guint"/>
1418           </parameter>
1419         </parameters>
1420       </method>
1421       <method name="iterate"
1422               c:identifier="gst_buffer_list_iterate"
1423               version="0.10.24">
1424         <doc xml:whitespace="preserve">Iterate the buffers in @list. The owner of the iterator must also be the
1425 owner of a reference to @list while the returned iterator is in use.</doc>
1426         <return-value transfer-ownership="full">
1427           <doc xml:whitespace="preserve">a new #GstBufferListIterator of the buffers in</doc>
1428           <type name="BufferListIterator" c:type="GstBufferListIterator*"/>
1429         </return-value>
1430       </method>
1431       <method name="n_groups"
1432               c:identifier="gst_buffer_list_n_groups"
1433               version="0.10.24">
1434         <doc xml:whitespace="preserve">Returns the number of groups in @list.</doc>
1435         <return-value transfer-ownership="none">
1436           <doc xml:whitespace="preserve">the number of groups in the buffer list</doc>
1437           <type name="guint" c:type="guint"/>
1438         </return-value>
1439       </method>
1440     </class>
1441     <record name="BufferListClass"
1442             c:type="GstBufferListClass"
1443             disguised="1"
1444             glib:is-gtype-struct-for="BufferList">
1445     </record>
1446     <callback name="BufferListDoFunction"
1447               c:type="GstBufferListDoFunction"
1448               version="0.10.24">
1449       <doc xml:whitespace="preserve">A function for accessing the last buffer returned by
1450 gst_buffer_list_iterator_next(). The function can leave @buffer in the list,
1451 replace @buffer in the list or remove @buffer from the list, depending on
1452 the return value. If the function returns NULL, @buffer will be removed from
1453 the list, otherwise @buffer will be replaced with the returned buffer.
1454 The last buffer returned by gst_buffer_list_iterator_next() will be replaced
1455 with the buffer returned from the function. The function takes ownership of
1456 unreffed. If NULL is returned, the buffer will be removed from the list. The
1457 list must be writable.
1458 to remove @buffer from the list</doc>
1459       <return-value transfer-ownership="full">
1460         <doc xml:whitespace="preserve">the buffer to replace @buffer in the list, or NULL</doc>
1461         <type name="Buffer" c:type="GstBuffer*"/>
1462       </return-value>
1463       <parameters>
1464         <parameter name="buffer" transfer-ownership="full">
1465           <doc xml:whitespace="preserve">the #GstBuffer</doc>
1466           <type name="Buffer" c:type="GstBuffer*"/>
1467         </parameter>
1468         <parameter name="user_data" transfer-ownership="none" closure="1">
1469           <doc xml:whitespace="preserve">user data</doc>
1470           <type name="gpointer" c:type="gpointer"/>
1471         </parameter>
1472       </parameters>
1473     </callback>
1474     <callback name="BufferListFunc"
1475               c:type="GstBufferListFunc"
1476               version="0.10.24">
1477       <doc xml:whitespace="preserve">A function that will be called from gst_buffer_list_foreach(). The @buffer
1478 field will point to a the reference of the buffer at @idx in @group.
1479 When this function returns #GST_BUFFER_LIST_CONTINUE, the next buffer will be
1480 returned. When #GST_BUFFER_LIST_SKIP_GROUP is returned, all remaining buffers
1481 in the current group will be skipped and the first buffer of the next group
1482 is returned (if any). When GST_BUFFER_LIST_END is returned,
1483 gst_buffer_list_foreach() will return.
1484 When @buffer is set to NULL, the item will be removed from the bufferlist.
1485 When @buffer has been made writable, the new buffer reference can be assigned
1486 to @buffer. This function is responsible for unreffing the old buffer when
1487 removing or modifying.</doc>
1488       <return-value transfer-ownership="none">
1489         <doc xml:whitespace="preserve">a #GstBufferListItem</doc>
1490         <type name="BufferListItem" c:type="GstBufferListItem"/>
1491       </return-value>
1492       <parameters>
1493         <parameter name="buffer" transfer-ownership="none">
1494           <doc xml:whitespace="preserve">pointer the buffer</doc>
1495           <type name="Buffer" c:type="GstBuffer**"/>
1496         </parameter>
1497         <parameter name="group" transfer-ownership="none">
1498           <doc xml:whitespace="preserve">the group index of @buffer</doc>
1499           <type name="guint" c:type="guint"/>
1500         </parameter>
1501         <parameter name="idx" transfer-ownership="none">
1502           <doc xml:whitespace="preserve">the index in @group of @buffer</doc>
1503           <type name="guint" c:type="guint"/>
1504         </parameter>
1505         <parameter name="user_data" transfer-ownership="none" closure="3">
1506           <doc xml:whitespace="preserve">user data passed to gst_buffer_list_foreach()</doc>
1507           <type name="gpointer" c:type="gpointer"/>
1508         </parameter>
1509       </parameters>
1510     </callback>
1511     <enumeration name="BufferListItem"
1512                  version="0.10.24"
1513                  c:type="GstBufferListItem">
1514       <doc xml:whitespace="preserve">The result of the #GstBufferListFunc.</doc>
1515       <member name="continue"
1516               value="0"
1517               c:identifier="GST_BUFFER_LIST_CONTINUE"/>
1518       <member name="skip_group"
1519               value="1"
1520               c:identifier="GST_BUFFER_LIST_SKIP_GROUP"/>
1521       <member name="end" value="2" c:identifier="GST_BUFFER_LIST_END"/>
1522     </enumeration>
1523     <record name="BufferListIterator"
1524             c:type="GstBufferListIterator"
1525             version="0.10.24"
1526             glib:type-name="GstBufferListIterator"
1527             glib:get-type="gst_buffer_list_iterator_get_type"
1528             c:symbol-prefix="buffer_list_iterator">
1529       <doc xml:whitespace="preserve">Opaque iterator for a #GstBufferList.</doc>
1530       <method name="add"
1531               c:identifier="gst_buffer_list_iterator_add"
1532               version="0.10.24">
1533         <doc xml:whitespace="preserve">Inserts @buffer into the #GstBufferList iterated with @it. The buffer is
1534 inserted into the current group, immediately before the buffer that would be
1535 returned by gst_buffer_list_iterator_next(). The buffer is inserted before
1536 the implicit cursor, a subsequent call to gst_buffer_list_iterator_next()
1537 will return the buffer after the inserted buffer, if any.
1538 This function takes ownership of @buffer.</doc>
1539         <return-value transfer-ownership="none">
1540           <type name="none" c:type="void"/>
1541         </return-value>
1542         <parameters>
1543           <parameter name="buffer" transfer-ownership="full">
1544             <doc xml:whitespace="preserve">a #GstBuffer</doc>
1545             <type name="Buffer" c:type="GstBuffer*"/>
1546           </parameter>
1547         </parameters>
1548       </method>
1549       <method name="add_group"
1550               c:identifier="gst_buffer_list_iterator_add_group"
1551               version="0.10.24">
1552         <doc xml:whitespace="preserve">Inserts a new, empty group into the #GstBufferList iterated with @it. The
1553 group is inserted immediately before the group that would be returned by
1554 gst_buffer_list_iterator_next_group(). A subsequent call to
1555 gst_buffer_list_iterator_next_group() will advance the iterator to the group
1556 after the inserted group, if any.</doc>
1557         <return-value transfer-ownership="none">
1558           <type name="none" c:type="void"/>
1559         </return-value>
1560       </method>
1561       <method name="add_list"
1562               c:identifier="gst_buffer_list_iterator_add_list"
1563               version="0.10.31">
1564         <doc xml:whitespace="preserve">Inserts @list of buffers into the #GstBufferList iterated with @it. The list is
1565 inserted into the current group, immediately before the buffer that would be
1566 returned by gst_buffer_list_iterator_next(). The list is inserted before
1567 the implicit cursor, a subsequent call to gst_buffer_list_iterator_next()
1568 will return the buffer after the last buffer of the inserted list, if any.
1569 This function takes ownership of @list and all its buffers.</doc>
1570         <return-value transfer-ownership="none">
1571           <type name="none" c:type="void"/>
1572         </return-value>
1573         <parameters>
1574           <parameter name="list" transfer-ownership="full">
1575             <doc xml:whitespace="preserve">a #GList of buffers</doc>
1576             <type name="GLib.List" c:type="GList*">
1577               <type name="Buffer"/>
1578             </type>
1579           </parameter>
1580         </parameters>
1581       </method>
1582       <method name="do"
1583               c:identifier="gst_buffer_list_iterator_do"
1584               version="0.10.24">
1585         <doc xml:whitespace="preserve">Calls the given function for the last buffer returned by
1586 gst_buffer_list_iterator_next(). gst_buffer_list_iterator_next() must have
1587 been called on @it before this function is called.
1588 gst_buffer_list_iterator_remove() and gst_buffer_list_iterator_steal() must
1589 not have been called since the last call to gst_buffer_list_iterator_next().
1590 See #GstBufferListDoFunction for more details.</doc>
1591         <return-value transfer-ownership="none">
1592           <doc xml:whitespace="preserve">the return value from @do_func</doc>
1593           <type name="Buffer" c:type="GstBuffer*"/>
1594         </return-value>
1595         <parameters>
1596           <parameter name="do_func"
1597                      transfer-ownership="none"
1598                      scope="call"
1599                      closure="1">
1600             <doc xml:whitespace="preserve">the function to be called</doc>
1601             <type name="BufferListDoFunction"
1602                   c:type="GstBufferListDoFunction"/>
1603           </parameter>
1604           <parameter name="user_data" transfer-ownership="none">
1605             <doc xml:whitespace="preserve">the gpointer to optional user data.</doc>
1606             <type name="gpointer" c:type="gpointer"/>
1607           </parameter>
1608         </parameters>
1609       </method>
1610       <method name="free"
1611               c:identifier="gst_buffer_list_iterator_free"
1612               version="0.10.24">
1613         <doc xml:whitespace="preserve">Free the iterator.</doc>
1614         <return-value transfer-ownership="none">
1615           <type name="none" c:type="void"/>
1616         </return-value>
1617       </method>
1618       <method name="merge_group"
1619               c:identifier="gst_buffer_list_iterator_merge_group"
1620               version="0.10.24">
1621         <doc xml:whitespace="preserve">Merge a buffer list group into a normal #GstBuffer by copying its metadata
1622 and memcpying its data into consecutive memory. All buffers in the current
1623 group after the implicit cursor will be merged into one new buffer. The
1624 metadata of the new buffer will be a copy of the metadata of the buffer that
1625 would be returned by gst_buffer_list_iterator_next(). If there is no buffer
1626 in the current group after the implicit cursor, NULL will be returned.
1627 This function will not move the implicit cursor or in any other way affect
1628 the state of the iterator @it or the list.
1629 or NULL</doc>
1630         <return-value transfer-ownership="full">
1631           <doc xml:whitespace="preserve">a new #GstBuffer, gst_buffer_unref() after usage,</doc>
1632           <type name="Buffer" c:type="GstBuffer*"/>
1633         </return-value>
1634       </method>
1635       <method name="n_buffers"
1636               c:identifier="gst_buffer_list_iterator_n_buffers"
1637               version="0.10.24">
1638         <doc xml:whitespace="preserve">Returns the number of buffers left to iterate in the current group. I.e. the
1639 number of calls that can be made to gst_buffer_list_iterator_next() before
1640 it returns NULL.
1641 This function will not move the implicit cursor or in any other way affect
1642 the state of the iterator @it.</doc>
1643         <return-value transfer-ownership="none">
1644           <doc xml:whitespace="preserve">the number of buffers left to iterate in the current group</doc>
1645           <type name="guint" c:type="guint"/>
1646         </return-value>
1647       </method>
1648       <method name="next"
1649               c:identifier="gst_buffer_list_iterator_next"
1650               version="0.10.24">
1651         <doc xml:whitespace="preserve">Returns the next buffer in the list iterated with @it. If the iterator is at
1652 the end of a group, NULL will be returned. This function may be called
1653 repeatedly to iterate through the current group.
1654 The caller will not get a new ref to the returned #GstBuffer and must not
1655 unref it.
1656 buffer list, or NULL</doc>
1657         <return-value transfer-ownership="none">
1658           <doc xml:whitespace="preserve">the next buffer in the current group of the</doc>
1659           <type name="Buffer" c:type="GstBuffer*"/>
1660         </return-value>
1661       </method>
1662       <method name="next_group"
1663               c:identifier="gst_buffer_list_iterator_next_group"
1664               version="0.10.24">
1665         <doc xml:whitespace="preserve">Advance the iterator @it to the first buffer in the next group. If the
1666 iterator is at the last group, FALSE will be returned. This function may be
1667 called repeatedly to iterate through the groups in a buffer list.
1668 the iterator was already at the last group</doc>
1669         <return-value transfer-ownership="none">
1670           <doc xml:whitespace="preserve">TRUE if the iterator could be advanced to the next group, FALSE if</doc>
1671           <type name="gboolean" c:type="gboolean"/>
1672         </return-value>
1673       </method>
1674       <method name="remove"
1675               c:identifier="gst_buffer_list_iterator_remove"
1676               version="0.10.24">
1677         <doc xml:whitespace="preserve">Removes the last buffer returned by gst_buffer_list_iterator_next() from
1678 the #GstBufferList iterated with @it. gst_buffer_list_iterator_next() must
1679 have been called on @it before this function is called. This function can
1680 only be called once per call to gst_buffer_list_iterator_next().
1681 The removed buffer is unreffed.</doc>
1682         <return-value transfer-ownership="none">
1683           <type name="none" c:type="void"/>
1684         </return-value>
1685       </method>
1686       <method name="steal"
1687               c:identifier="gst_buffer_list_iterator_steal"
1688               version="0.10.24">
1689         <doc xml:whitespace="preserve">Returns the last buffer returned by gst_buffer_list_iterator_next() without
1690 modifying the refcount of the buffer.
1691 gst_buffer_list_iterator_next()</doc>
1692         <return-value transfer-ownership="none">
1693           <doc xml:whitespace="preserve">the last buffer returned by</doc>
1694           <type name="Buffer" c:type="GstBuffer*"/>
1695         </return-value>
1696       </method>
1697       <method name="take"
1698               c:identifier="gst_buffer_list_iterator_take"
1699               version="0.10.24">
1700         <doc xml:whitespace="preserve">Replaces the last buffer returned by gst_buffer_list_iterator_next() with
1701 this function is called. gst_buffer_list_iterator_remove() must not have been
1702 called since the last call to gst_buffer_list_iterator_next().
1703 This function unrefs the replaced buffer if it has not been stolen with
1704 gst_buffer_list_iterator_steal() and takes ownership of @buffer (i.e. the
1705 refcount of @buffer is not increased).</doc>
1706         <return-value transfer-ownership="none">
1707           <type name="none" c:type="void"/>
1708         </return-value>
1709         <parameters>
1710           <parameter name="buffer" transfer-ownership="full">
1711             <doc xml:whitespace="preserve">a #GstBuffer</doc>
1712             <type name="Buffer" c:type="GstBuffer*"/>
1713           </parameter>
1714         </parameters>
1715       </method>
1716     </record>
1717     <enumeration name="BufferingMode" c:type="GstBufferingMode">
1718       <doc xml:whitespace="preserve">The different types of buffering methods.</doc>
1719       <member name="stream" value="0" c:identifier="GST_BUFFERING_STREAM"/>
1720       <member name="download" value="1" c:identifier="GST_BUFFERING_DOWNLOAD"/>
1721       <member name="timeshift"
1722               value="2"
1723               c:identifier="GST_BUFFERING_TIMESHIFT"/>
1724       <member name="live" value="3" c:identifier="GST_BUFFERING_LIVE"/>
1725     </enumeration>
1726     <class name="Bus"
1727            c:symbol-prefix="bus"
1728            c:type="GstBus"
1729            parent="Object"
1730            glib:type-name="GstBus"
1731            glib:get-type="gst_bus_get_type"
1732            glib:type-struct="BusClass">
1733       <doc xml:whitespace="preserve">The #GstBus is an object responsible for delivering #GstMessage packets in
1734 a first-in first-out way from the streaming threads (see #GstTask) to the
1735 application.
1736 Since the application typically only wants to deal with delivery of these
1737 messages from one thread, the GstBus will marshall the messages between
1738 different threads. This is important since the actual streaming of media
1739 is done in another thread than the application.
1740 The GstBus provides support for #GSource based notifications. This makes it
1741 possible to handle the delivery in the glib mainloop.
1742 The #GSource callback function gst_bus_async_signal_func() can be used to
1743 convert all bus messages into signal emissions.
1744 A message is posted on the bus with the gst_bus_post() method. With the
1745 gst_bus_peek() and gst_bus_pop() methods one can look at or retrieve a
1746 previously posted message.
1747 The bus can be polled with the gst_bus_poll() method. This methods blocks
1748 up to the specified timeout value until one of the specified messages types
1749 is posted on the bus. The application can then gst_bus_pop() the messages
1750 from the bus to handle them.
1751 Alternatively the application can register an asynchronous bus function
1752 using gst_bus_add_watch_full() or gst_bus_add_watch(). This function will
1753 install a #GSource in the default glib main loop and will deliver messages
1754 a short while after they have been posted. Note that the main loop should
1755 be running for the asynchronous callbacks.
1756 It is also possible to get messages from the bus without any thread
1757 marshalling with the gst_bus_set_sync_handler() method. This makes it
1758 possible to react to a message in the same thread that posted the
1759 message on the bus. This should only be used if the application is able
1760 to deal with messages from different threads.
1761 Every #GstPipeline has one bus.
1762 Note that a #GstPipeline will set its bus into flushing state when changing
1763 from READY to NULL state.
1764 Last reviewed on 2006-03-12 (0.10.5)</doc>
1765       <constructor name="new" c:identifier="gst_bus_new">
1766         <doc xml:whitespace="preserve">Creates a new #GstBus instance.</doc>
1767         <return-value transfer-ownership="full">
1768           <doc xml:whitespace="preserve">a new #GstBus instance</doc>
1769           <type name="Bus" c:type="GstBus*"/>
1770         </return-value>
1771       </constructor>
1772       <virtual-method name="message">
1773         <return-value transfer-ownership="none">
1774           <type name="none" c:type="void"/>
1775         </return-value>
1776         <parameters>
1777           <parameter name="message" transfer-ownership="none">
1778             <type name="Message" c:type="GstMessage*"/>
1779           </parameter>
1780         </parameters>
1781       </virtual-method>
1782       <virtual-method name="sync_message">
1783         <return-value transfer-ownership="none">
1784           <type name="none" c:type="void"/>
1785         </return-value>
1786         <parameters>
1787           <parameter name="message" transfer-ownership="none">
1788             <type name="Message" c:type="GstMessage*"/>
1789           </parameter>
1790         </parameters>
1791       </virtual-method>
1792       <method name="add_signal_watch" c:identifier="gst_bus_add_signal_watch">
1793         <doc xml:whitespace="preserve">Adds a bus signal watch to the default main context with the default priority
1794 (%G_PRIORITY_DEFAULT). Since 0.10.33 it is also possible to use a non-default
1795 main context set up using g_main_context_push_thread_default() (before
1796 one had to create a bus watch source and attach it to the desired main
1797 context 'manually').
1798 After calling this statement, the bus will emit the "message" signal for each
1799 message posted on the bus.
1800 This function may be called multiple times. To clean up, the caller is
1801 responsible for calling gst_bus_remove_signal_watch() as many times as this
1802 function is called.
1803 MT safe.</doc>
1804         <return-value transfer-ownership="none">
1805           <type name="none" c:type="void"/>
1806         </return-value>
1807       </method>
1808       <method name="add_signal_watch_full"
1809               c:identifier="gst_bus_add_signal_watch_full">
1810         <doc xml:whitespace="preserve">Adds a bus signal watch to the default main context with the given @priority
1811 (e.g. %G_PRIORITY_DEFAULT). Since 0.10.33 it is also possible to use a
1812 non-default main context set up using g_main_context_push_thread_default()
1813 (before one had to create a bus watch source and attach it to the desired
1814 main context 'manually').
1815 After calling this statement, the bus will emit the "message" signal for each
1816 message posted on the bus when the main loop is running.
1817 This function may be called multiple times. To clean up, the caller is
1818 responsible for calling gst_bus_remove_signal_watch() as many times as this
1819 function is called.
1820 There can only be a single bus watch per bus, you most remove all signal watch
1821 before you can set another type of watch.
1822 MT safe.</doc>
1823         <return-value transfer-ownership="none">
1824           <type name="none" c:type="void"/>
1825         </return-value>
1826         <parameters>
1827           <parameter name="priority" transfer-ownership="none">
1828             <doc xml:whitespace="preserve">The priority of the watch.</doc>
1829             <type name="gint" c:type="gint"/>
1830           </parameter>
1831         </parameters>
1832       </method>
1833       <method name="add_watch"
1834               c:identifier="gst_bus_add_watch"
1835               introspectable="0">
1836         <doc xml:whitespace="preserve">Adds a bus watch to the default main context with the default priority
1837 (%G_PRIORITY_DEFAULT). Since 0.10.33 it is also possible to use a non-default
1838 main context set up using g_main_context_push_thread_default() (before
1839 one had to create a bus watch source and attach it to the desired main
1840 context 'manually').
1841 This function is used to receive asynchronous messages in the main loop.
1842 There can only be a single bus watch per bus, you must remove it before you
1843 can set a new one.
1844 The watch can be removed using g_source_remove() or by returning FALSE
1845 from @func.
1846 MT safe.</doc>
1847         <return-value transfer-ownership="none">
1848           <doc xml:whitespace="preserve">The event source id.</doc>
1849           <type name="guint" c:type="guint"/>
1850         </return-value>
1851         <parameters>
1852           <parameter name="func" transfer-ownership="none" closure="1">
1853             <doc xml:whitespace="preserve">A function to call when a message is received.</doc>
1854             <type name="BusFunc" c:type="GstBusFunc"/>
1855           </parameter>
1856           <parameter name="user_data" transfer-ownership="none">
1857             <doc xml:whitespace="preserve">user data passed to @func.</doc>
1858             <type name="gpointer" c:type="gpointer"/>
1859           </parameter>
1860         </parameters>
1861       </method>
1862       <method name="add_watch_full" c:identifier="gst_bus_add_watch_full">
1863         <doc xml:whitespace="preserve">Adds a bus watch to the default main context with the given @priority (e.g.
1864 %G_PRIORITY_DEFAULT). Since 0.10.33 it is also possible to use a non-default
1865 main context set up using g_main_context_push_thread_default() (before
1866 one had to create a bus watch source and attach it to the desired main
1867 context 'manually').
1868 This function is used to receive asynchronous messages in the main loop.
1869 There can only be a single bus watch per bus, you must remove it before you
1870 can set a new one.
1871 When @func is called, the message belongs to the caller; if you want to
1872 keep a copy of it, call gst_message_ref() before leaving @func.
1873 The watch can be removed using g_source_remove() or by returning FALSE
1874 from @func.
1875 MT safe.</doc>
1876         <return-value transfer-ownership="none">
1877           <doc xml:whitespace="preserve">The event source id.</doc>
1878           <type name="guint" c:type="guint"/>
1879         </return-value>
1880         <parameters>
1881           <parameter name="priority" transfer-ownership="none">
1882             <doc xml:whitespace="preserve">The priority of the watch.</doc>
1883             <type name="gint" c:type="gint"/>
1884           </parameter>
1885           <parameter name="func"
1886                      transfer-ownership="none"
1887                      scope="notified"
1888                      closure="2"
1889                      destroy="3">
1890             <doc xml:whitespace="preserve">A function to call when a message is received.</doc>
1891             <type name="BusFunc" c:type="GstBusFunc"/>
1892           </parameter>
1893           <parameter name="user_data" transfer-ownership="none">
1894             <doc xml:whitespace="preserve">user data passed to @func.</doc>
1895             <type name="gpointer" c:type="gpointer"/>
1896           </parameter>
1897           <parameter name="notify" transfer-ownership="none" scope="async">
1898             <doc xml:whitespace="preserve">the function to call when the source is removed.</doc>
1899             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
1900           </parameter>
1901         </parameters>
1902       </method>
1903       <method name="async_signal_func"
1904               c:identifier="gst_bus_async_signal_func">
1905         <doc xml:whitespace="preserve">A helper #GstBusFunc that can be used to convert all asynchronous messages
1906 into signals.</doc>
1907         <return-value transfer-ownership="none">
1908           <doc xml:whitespace="preserve">TRUE</doc>
1909           <type name="gboolean" c:type="gboolean"/>
1910         </return-value>
1911         <parameters>
1912           <parameter name="message" transfer-ownership="none">
1913             <doc xml:whitespace="preserve">the #GstMessage received</doc>
1914             <type name="Message" c:type="GstMessage*"/>
1915           </parameter>
1916           <parameter name="data" transfer-ownership="none">
1917             <doc xml:whitespace="preserve">user data</doc>
1918             <type name="gpointer" c:type="gpointer"/>
1919           </parameter>
1920         </parameters>
1921       </method>
1922       <method name="create_watch"
1923               c:identifier="gst_bus_create_watch"
1924               introspectable="0">
1925         <doc xml:whitespace="preserve">Create watch for this bus. The GSource will be dispatched whenever
1926 a message is on the bus. After the GSource is dispatched, the
1927 message is popped off the bus and unreffed.</doc>
1928         <return-value transfer-ownership="full">
1929           <doc xml:whitespace="preserve">a #GSource that can be added to a mainloop.</doc>
1930           <type name="GLib.Source" c:type="GSource*"/>
1931         </return-value>
1932       </method>
1933       <method name="disable_sync_message_emission"
1934               c:identifier="gst_bus_disable_sync_message_emission">
1935         <doc xml:whitespace="preserve">Instructs GStreamer to stop emitting the "sync-message" signal for this bus.
1936 See gst_bus_enable_sync_message_emission() for more information.
1937 In the event that multiple pieces of code have called
1938 gst_bus_enable_sync_message_emission(), the sync-message emissions will only
1939 be stopped after all calls to gst_bus_enable_sync_message_emission() were
1940 "cancelled" by calling this function. In this way the semantics are exactly
1941 the same as gst_object_ref() that which calls enable should also call
1942 disable.
1943 MT safe.</doc>
1944         <return-value transfer-ownership="none">
1945           <type name="none" c:type="void"/>
1946         </return-value>
1947       </method>
1948       <method name="enable_sync_message_emission"
1949               c:identifier="gst_bus_enable_sync_message_emission">
1950         <doc xml:whitespace="preserve">Instructs GStreamer to emit the "sync-message" signal after running the bus's
1951 sync handler. This function is here so that code can ensure that they can
1952 synchronously receive messages without having to affect what the bin's sync
1953 handler is.
1954 This function may be called multiple times. To clean up, the caller is
1955 responsible for calling gst_bus_disable_sync_message_emission() as many times
1956 as this function is called.
1957 While this function looks similar to gst_bus_add_signal_watch(), it is not
1958 exactly the same -- this function enables &lt;emphasis&gt;synchronous&lt;/emphasis&gt; emission of
1959 signals when messages arrive; gst_bus_add_signal_watch() adds an idle callback
1960 to pop messages off the bus &lt;emphasis&gt;asynchronously&lt;/emphasis&gt;. The sync-message signal
1961 comes from the thread of whatever object posted the message; the "message"
1962 signal is marshalled to the main thread via the main loop.
1963 MT safe.</doc>
1964         <return-value transfer-ownership="none">
1965           <type name="none" c:type="void"/>
1966         </return-value>
1967       </method>
1968       <method name="have_pending" c:identifier="gst_bus_have_pending">
1969         <doc xml:whitespace="preserve">Check if there are pending messages on the bus that
1970 should be handled.
1971 otherwise.
1972 MT safe.</doc>
1973         <return-value transfer-ownership="none">
1974           <doc xml:whitespace="preserve">TRUE if there are messages on the bus to be handled, FALSE</doc>
1975           <type name="gboolean" c:type="gboolean"/>
1976         </return-value>
1977       </method>
1978       <method name="peek" c:identifier="gst_bus_peek">
1979         <doc xml:whitespace="preserve">Peek the message on the top of the bus' queue. The message will remain
1980 on the bus' message queue. A reference is returned, and needs to be unreffed
1981 by the caller.
1982 bus is empty.
1983 MT safe.</doc>
1984         <return-value transfer-ownership="full">
1985           <doc xml:whitespace="preserve">the #GstMessage that is on the bus, or NULL if the</doc>
1986           <type name="Message" c:type="GstMessage*"/>
1987         </return-value>
1988       </method>
1989       <method name="poll" c:identifier="gst_bus_poll">
1990         <doc xml:whitespace="preserve">Poll the bus for messages. Will block while waiting for messages to come.
1991 You can specify a maximum time to poll with the @timeout parameter. If
1992 All messages not in @events will be popped off the bus and will be ignored.
1993 Because poll is implemented using the "message" signal enabled by
1994 gst_bus_add_signal_watch(), calling gst_bus_poll() will cause the "message"
1995 signal to be emitted for every message that poll sees. Thus a "message"
1996 signal handler will see the same messages that this function sees -- neither
1997 will steal messages from the other.
1998 This function will run a main loop from the default main context when
1999 polling.
2000 You should never use this function, since it is pure evil. This is
2001 especially true for GUI applications based on Gtk+ or Qt, but also for any
2002 other non-trivial application that uses the GLib main loop. As this function
2003 runs a GLib main loop, any callback attached to the default GLib main
2004 context may be invoked. This could be timeouts, GUI events, I/O events etc.;
2005 even if gst_bus_poll() is called with a 0 timeout. Any of these callbacks
2006 may do things you do not expect, e.g. destroy the main application window or
2007 some other resource; change other application state; display a dialog and
2008 run another main loop until the user clicks it away. In short, using this
2009 function may add a lot of complexity to your code through unexpected
2010 re-entrancy and unexpected changes to your application's state.
2011 For 0 timeouts use gst_bus_pop_filtered() instead of this function; for
2012 other short timeouts use gst_bus_timed_pop_filtered(); everything else is
2013 better handled by setting up an asynchronous bus watch and doing things
2014 from there.
2015 poll timed out. The message is taken from the bus and needs to be
2016 unreffed with gst_message_unref() after usage.</doc>
2017         <return-value transfer-ownership="full">
2018           <doc xml:whitespace="preserve">the message that was received, or NULL if the</doc>
2019           <type name="Message" c:type="GstMessage*"/>
2020         </return-value>
2021         <parameters>
2022           <parameter name="events" transfer-ownership="none">
2023             <doc xml:whitespace="preserve">a mask of #GstMessageType, representing the set of message types to poll for.</doc>
2024             <type name="MessageType" c:type="GstMessageType"/>
2025           </parameter>
2026           <parameter name="timeout" transfer-ownership="none">
2027             <doc xml:whitespace="preserve">the poll timeout, as a #GstClockTimeDiff, or -1 to poll indefinitely.</doc>
2028             <type name="ClockTimeDiff" c:type="GstClockTimeDiff"/>
2029           </parameter>
2030         </parameters>
2031       </method>
2032       <method name="pop" c:identifier="gst_bus_pop">
2033         <doc xml:whitespace="preserve">Get a message from the bus.
2034 bus is empty. The message is taken from the bus and needs to be unreffed
2035 with gst_message_unref() after usage.
2036 MT safe.</doc>
2037         <return-value transfer-ownership="full">
2038           <doc xml:whitespace="preserve">the #GstMessage that is on the bus, or NULL if the</doc>
2039           <type name="Message" c:type="GstMessage*"/>
2040         </return-value>
2041       </method>
2042       <method name="pop_filtered"
2043               c:identifier="gst_bus_pop_filtered"
2044               version="0.10.15">
2045         <doc xml:whitespace="preserve">Get a message matching @type from the bus.  Will discard all messages on
2046 the bus that do not match @type and that have been posted before the first
2047 message that does match @type.  If there is no message matching @type on
2048 the bus, all messages will be discarded.
2049 the bus, or NULL if the bus is empty or there is no message matching
2050 gst_message_unref() after usage.
2051 MT safe.</doc>
2052         <return-value transfer-ownership="full">
2053           <doc xml:whitespace="preserve">the next #GstMessage matching @type that is on</doc>
2054           <type name="Message" c:type="GstMessage*"/>
2055         </return-value>
2056         <parameters>
2057           <parameter name="types" transfer-ownership="none">
2058             <doc xml:whitespace="preserve">message types to take into account</doc>
2059             <type name="MessageType" c:type="GstMessageType"/>
2060           </parameter>
2061         </parameters>
2062       </method>
2063       <method name="post" c:identifier="gst_bus_post">
2064         <doc xml:whitespace="preserve">Post a message on the given bus. Ownership of the message
2065 is taken by the bus.
2066 MT safe.</doc>
2067         <return-value transfer-ownership="none">
2068           <doc xml:whitespace="preserve">TRUE if the message could be posted, FALSE if the bus is flushing.</doc>
2069           <type name="gboolean" c:type="gboolean"/>
2070         </return-value>
2071         <parameters>
2072           <parameter name="message" transfer-ownership="full">
2073             <doc xml:whitespace="preserve">the #GstMessage to post</doc>
2074             <type name="Message" c:type="GstMessage*"/>
2075           </parameter>
2076         </parameters>
2077       </method>
2078       <method name="remove_signal_watch"
2079               c:identifier="gst_bus_remove_signal_watch">
2080         <doc xml:whitespace="preserve">Removes a signal watch previously added with gst_bus_add_signal_watch().
2081 MT safe.</doc>
2082         <return-value transfer-ownership="none">
2083           <type name="none" c:type="void"/>
2084         </return-value>
2085       </method>
2086       <method name="set_flushing" c:identifier="gst_bus_set_flushing">
2087         <doc xml:whitespace="preserve">If @flushing, flush out and unref any messages queued in the bus. Releases
2088 references to the message origin objects. Will flush future messages until
2089 gst_bus_set_flushing() sets @flushing to #FALSE.
2090 MT safe.</doc>
2091         <return-value transfer-ownership="none">
2092           <type name="none" c:type="void"/>
2093         </return-value>
2094         <parameters>
2095           <parameter name="flushing" transfer-ownership="none">
2096             <doc xml:whitespace="preserve">whether or not to flush the bus</doc>
2097             <type name="gboolean" c:type="gboolean"/>
2098           </parameter>
2099         </parameters>
2100       </method>
2101       <method name="set_sync_handler"
2102               c:identifier="gst_bus_set_sync_handler"
2103               introspectable="0">
2104         <doc xml:whitespace="preserve">Sets the synchronous handler on the bus. The function will be called
2105 every time a new message is posted on the bus. Note that the function
2106 will be called in the same thread context as the posting object. This
2107 function is usually only called by the creator of the bus. Applications
2108 should handle messages asynchronously using the gst_bus watch and poll
2109 functions.
2110 You cannot replace an existing sync_handler. You can pass NULL to this
2111 function, which will clear the existing handler.</doc>
2112         <return-value transfer-ownership="none">
2113           <type name="none" c:type="void"/>
2114         </return-value>
2115         <parameters>
2116           <parameter name="func" transfer-ownership="none" closure="1">
2117             <doc xml:whitespace="preserve">The handler function to install</doc>
2118             <type name="BusSyncHandler" c:type="GstBusSyncHandler"/>
2119           </parameter>
2120           <parameter name="data" transfer-ownership="none">
2121             <doc xml:whitespace="preserve">User data that will be sent to the handler function.</doc>
2122             <type name="gpointer" c:type="gpointer"/>
2123           </parameter>
2124         </parameters>
2125       </method>
2126       <method name="sync_signal_handler"
2127               c:identifier="gst_bus_sync_signal_handler">
2128         <doc xml:whitespace="preserve">A helper GstBusSyncHandler that can be used to convert all synchronous
2129 messages into signals.</doc>
2130         <return-value transfer-ownership="none">
2131           <doc xml:whitespace="preserve">GST_BUS_PASS</doc>
2132           <type name="BusSyncReply" c:type="GstBusSyncReply"/>
2133         </return-value>
2134         <parameters>
2135           <parameter name="message" transfer-ownership="none">
2136             <doc xml:whitespace="preserve">the #GstMessage received</doc>
2137             <type name="Message" c:type="GstMessage*"/>
2138           </parameter>
2139           <parameter name="data" transfer-ownership="none">
2140             <doc xml:whitespace="preserve">user data</doc>
2141             <type name="gpointer" c:type="gpointer"/>
2142           </parameter>
2143         </parameters>
2144       </method>
2145       <method name="timed_pop"
2146               c:identifier="gst_bus_timed_pop"
2147               version="0.10.12">
2148         <doc xml:whitespace="preserve">Get a message from the bus, waiting up to the specified timeout.
2149 If @timeout is 0, this function behaves like gst_bus_pop(). If @timeout is
2150 #GST_CLOCK_TIME_NONE, this function will block forever until a message was
2151 posted on the bus.
2152 specified timeout or NULL if the bus is empty after the timeout expired.
2153 The message is taken from the bus and needs to be unreffed with
2154 gst_message_unref() after usage.
2155 MT safe.</doc>
2156         <return-value transfer-ownership="full">
2157           <doc xml:whitespace="preserve">the #GstMessage that is on the bus after the</doc>
2158           <type name="Message" c:type="GstMessage*"/>
2159         </return-value>
2160         <parameters>
2161           <parameter name="timeout" transfer-ownership="none">
2162             <doc xml:whitespace="preserve">a timeout</doc>
2163             <type name="ClockTime" c:type="GstClockTime"/>
2164           </parameter>
2165         </parameters>
2166       </method>
2167       <method name="timed_pop_filtered"
2168               c:identifier="gst_bus_timed_pop_filtered"
2169               version="0.10.15">
2170         <doc xml:whitespace="preserve">Get a message from the bus whose type matches the message type mask @types,
2171 waiting up to the specified timeout (and discarding any messages that do not
2172 match the mask provided).
2173 If @timeout is 0, this function behaves like gst_bus_pop_filtered(). If
2174 matching message was posted on the bus.
2175 or NULL if no matching message was found on the bus until the timeout
2176 expired. The message is taken from the bus and needs to be unreffed
2177 with gst_message_unref() after usage.
2178 MT safe.</doc>
2179         <return-value transfer-ownership="full">
2180           <doc xml:whitespace="preserve">a #GstMessage matching the filter in @types,</doc>
2181           <type name="Message" c:type="GstMessage*"/>
2182         </return-value>
2183         <parameters>
2184           <parameter name="timeout" transfer-ownership="none">
2185             <doc xml:whitespace="preserve">a timeout in nanoseconds, or GST_CLOCK_TIME_NONE to wait forever</doc>
2186             <type name="ClockTime" c:type="GstClockTime"/>
2187           </parameter>
2188           <parameter name="types" transfer-ownership="none">
2189             <doc xml:whitespace="preserve">message types to take into account, GST_MESSAGE_ANY for any type</doc>
2190             <type name="MessageType" c:type="GstMessageType"/>
2191           </parameter>
2192         </parameters>
2193       </method>
2194       <field name="object">
2195         <type name="Object" c:type="GstObject"/>
2196       </field>
2197       <field name="queue" readable="0" private="1">
2198         <type name="GLib.Queue" c:type="GQueue*"/>
2199       </field>
2200       <field name="queue_lock" readable="0" private="1">
2201         <type name="GLib.Mutex" c:type="GMutex*"/>
2202       </field>
2203       <field name="sync_handler" readable="0" private="1">
2204         <type name="BusSyncHandler" c:type="GstBusSyncHandler"/>
2205       </field>
2206       <field name="sync_handler_data" readable="0" private="1">
2207         <type name="gpointer" c:type="gpointer"/>
2208       </field>
2209       <field name="signal_watch_id" readable="0" private="1">
2210         <type name="guint" c:type="guint"/>
2211       </field>
2212       <field name="num_signal_watchers" readable="0" private="1">
2213         <type name="guint" c:type="guint"/>
2214       </field>
2215       <field name="priv" readable="0" private="1">
2216         <type name="BusPrivate" c:type="GstBusPrivate*"/>
2217       </field>
2218       <field name="_gst_reserved" readable="0" private="1">
2219         <array zero-terminated="0" c:type="gpointer" fixed-size="3">
2220           <type name="gpointer" c:type="gpointer"/>
2221         </array>
2222       </field>
2223       <glib:signal name="message">
2224         <doc xml:whitespace="preserve">A message has been posted on the bus. This signal is emitted from a
2225 GSource added to the mainloop. this signal will only be emitted when
2226 there is a mainloop running.</doc>
2227         <return-value transfer-ownership="none">
2228           <type name="none"/>
2229         </return-value>
2230         <parameters>
2231           <parameter name="message" transfer-ownership="none">
2232             <doc xml:whitespace="preserve">the message that has been posted asynchronously</doc>
2233             <type name="Message"/>
2234           </parameter>
2235         </parameters>
2236       </glib:signal>
2237       <glib:signal name="sync-message">
2238         <doc xml:whitespace="preserve">A message has been posted on the bus. This signal is emitted from the
2239 thread that posted the message so one has to be careful with locking.
2240 This signal will not be emitted by default, you have to set up
2241 gst_bus_sync_signal_handler() as a sync handler if you want this
2242 signal to be emitted when a message is posted on the bus, like this:
2243 &lt;programlisting&gt;
2244 gst_bus_set_sync_handler (bus, gst_bus_sync_signal_handler, yourdata);
2245 &lt;/programlisting&gt;</doc>
2246         <return-value transfer-ownership="none">
2247           <type name="none"/>
2248         </return-value>
2249         <parameters>
2250           <parameter name="message" transfer-ownership="none">
2251             <doc xml:whitespace="preserve">the message that has been posted synchronously</doc>
2252             <type name="Message"/>
2253           </parameter>
2254         </parameters>
2255       </glib:signal>
2256     </class>
2257     <record name="BusClass"
2258             c:type="GstBusClass"
2259             glib:is-gtype-struct-for="Bus">
2260       <field name="parent_class">
2261         <type name="ObjectClass" c:type="GstObjectClass"/>
2262       </field>
2263       <field name="message">
2264         <callback name="message">
2265           <return-value transfer-ownership="none">
2266             <type name="none" c:type="void"/>
2267           </return-value>
2268           <parameters>
2269             <parameter name="bus" transfer-ownership="none">
2270               <type name="Bus" c:type="GstBus*"/>
2271             </parameter>
2272             <parameter name="message" transfer-ownership="none">
2273               <type name="Message" c:type="GstMessage*"/>
2274             </parameter>
2275           </parameters>
2276         </callback>
2277       </field>
2278       <field name="sync_message">
2279         <callback name="sync_message">
2280           <return-value transfer-ownership="none">
2281             <type name="none" c:type="void"/>
2282           </return-value>
2283           <parameters>
2284             <parameter name="bus" transfer-ownership="none">
2285               <type name="Bus" c:type="GstBus*"/>
2286             </parameter>
2287             <parameter name="message" transfer-ownership="none">
2288               <type name="Message" c:type="GstMessage*"/>
2289             </parameter>
2290           </parameters>
2291         </callback>
2292       </field>
2293       <field name="_gst_reserved" readable="0" private="1">
2294         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
2295           <type name="gpointer" c:type="gpointer"/>
2296         </array>
2297       </field>
2298     </record>
2299     <bitfield name="BusFlags" c:type="GstBusFlags">
2300       <doc xml:whitespace="preserve">The standard flags that a bus may have.</doc>
2301       <member name="flushing" value="16" c:identifier="GST_BUS_FLUSHING"/>
2302       <member name="flag_last" value="32" c:identifier="GST_BUS_FLAG_LAST"/>
2303     </bitfield>
2304     <callback name="BusFunc" c:type="GstBusFunc">
2305       <doc xml:whitespace="preserve">Specifies the type of function passed to gst_bus_add_watch() or
2306 gst_bus_add_watch_full(), which is called from the mainloop when a message
2307 is available on the bus.
2308 The message passed to the function will be unreffed after execution of this
2309 function so it should not be freed in the function.
2310 Note that this function is used as a GSourceFunc which means that returning
2311 FALSE will remove the GSource from the mainloop.</doc>
2312       <return-value transfer-ownership="none">
2313         <doc xml:whitespace="preserve">%FALSE if the event source should be removed.</doc>
2314         <type name="gboolean" c:type="gboolean"/>
2315       </return-value>
2316       <parameters>
2317         <parameter name="bus" transfer-ownership="none">
2318           <doc xml:whitespace="preserve">the #GstBus that sent the message</doc>
2319           <type name="Bus" c:type="GstBus*"/>
2320         </parameter>
2321         <parameter name="message" transfer-ownership="none">
2322           <doc xml:whitespace="preserve">the #GstMessage</doc>
2323           <type name="Message" c:type="GstMessage*"/>
2324         </parameter>
2325         <parameter name="data" transfer-ownership="none">
2326           <doc xml:whitespace="preserve">user data that has been given, when registering the handler</doc>
2327           <type name="gpointer" c:type="gpointer"/>
2328         </parameter>
2329       </parameters>
2330     </callback>
2331     <record name="BusPrivate" c:type="GstBusPrivate" disguised="1">
2332     </record>
2333     <callback name="BusSyncHandler" c:type="GstBusSyncHandler">
2334       <doc xml:whitespace="preserve">Handler will be invoked synchronously, when a new message has been injected
2335 into the bus. This function is mostly used internally. Only one sync handler
2336 can be attached to a given bus.
2337 If the handler returns GST_BUS_DROP, it should unref the message, else the
2338 message should not be unreffed by the sync handler.</doc>
2339       <return-value transfer-ownership="none">
2340         <doc xml:whitespace="preserve">#GstBusSyncReply stating what to do with the message</doc>
2341         <type name="BusSyncReply" c:type="GstBusSyncReply"/>
2342       </return-value>
2343       <parameters>
2344         <parameter name="bus" transfer-ownership="none">
2345           <doc xml:whitespace="preserve">the #GstBus that sent the message</doc>
2346           <type name="Bus" c:type="GstBus*"/>
2347         </parameter>
2348         <parameter name="message" transfer-ownership="none">
2349           <doc xml:whitespace="preserve">the #GstMessage</doc>
2350           <type name="Message" c:type="GstMessage*"/>
2351         </parameter>
2352         <parameter name="data" transfer-ownership="none">
2353           <doc xml:whitespace="preserve">user data that has been given, when registering the handler</doc>
2354           <type name="gpointer" c:type="gpointer"/>
2355         </parameter>
2356       </parameters>
2357     </callback>
2358     <enumeration name="BusSyncReply" c:type="GstBusSyncReply">
2359       <doc xml:whitespace="preserve">The result values for a GstBusSyncHandler.</doc>
2360       <member name="drop" value="0" c:identifier="GST_BUS_DROP"/>
2361       <member name="pass" value="1" c:identifier="GST_BUS_PASS"/>
2362       <member name="async" value="2" c:identifier="GST_BUS_ASYNC"/>
2363     </enumeration>
2364     <constant name="CAN_INLINE" value="1">
2365       <type name="gint" c:type="gint"/>
2366     </constant>
2367     <constant name="CLOCK_ENTRY_TRACE_NAME" value="GstClockEntry">
2368       <type name="utf8" c:type="gchar*"/>
2369     </constant>
2370     <constant name="CLOCK_TIME_NONE" value="-1">
2371       <type name="gint" c:type="gint"/>
2372     </constant>
2373     <record name="Caps"
2374             c:type="GstCaps"
2375             glib:type-name="GstCaps"
2376             glib:get-type="gst_caps_get_type"
2377             c:symbol-prefix="caps">
2378       <doc xml:whitespace="preserve">Caps (capabilities) are lighweight refcounted objects describing media types.
2379 They are composed of an array of #GstStructure.
2380 Caps are exposed on #GstPadTemplate to describe all possible types a
2381 given pad can handle. They are also stored in the #GstRegistry along with
2382 a description of the #GstElement.
2383 Caps are exposed on the element pads using the gst_pad_get_caps() pad
2384 function. This function describes the possible types that the pad can
2385 handle or produce at runtime.
2386 Caps are also attached to buffers to describe to content of the data
2387 pointed to by the buffer with gst_buffer_set_caps(). Caps attached to
2388 a #GstBuffer allow for format negotiation upstream and downstream.
2389 A #GstCaps can be constructed with the following code fragment:
2390 &lt;example&gt;
2391 &lt;title&gt;Creating caps&lt;/title&gt;
2392 &lt;programlisting&gt;
2393 GstCaps *caps;
2394 caps = gst_caps_new_simple ("video/x-raw-yuv",
2395 "format", GST_TYPE_FOURCC, GST_MAKE_FOURCC ('I', '4', '2', '0'),
2396 "framerate", GST_TYPE_FRACTION, 25, 1,
2397 "pixel-aspect-ratio", GST_TYPE_FRACTION, 1, 1,
2398 "width", G_TYPE_INT, 320,
2399 "height", G_TYPE_INT, 240,
2400 NULL);
2401 &lt;/programlisting&gt;
2402 &lt;/example&gt;
2403 A #GstCaps is fixed when it has no properties with ranges or lists. Use
2404 gst_caps_is_fixed() to test for fixed caps. Only fixed caps can be
2405 set on a #GstPad or #GstBuffer.
2406 Various methods exist to work with the media types such as subtracting
2407 or intersecting.
2408 Last reviewed on 2007-02-13 (0.10.10)</doc>
2409       <field name="type" writable="1">
2410         <type name="GType" c:type="GType"/>
2411       </field>
2412       <field name="refcount" writable="1">
2413         <type name="gint" c:type="gint"/>
2414       </field>
2415       <field name="flags" writable="1">
2416         <type name="CapsFlags" c:type="GstCapsFlags"/>
2417       </field>
2418       <field name="structs" readable="0" private="1">
2419         <array name="GLib.PtrArray" c:type="GPtrArray*">
2420           <type name="gpointer" c:type="gpointer"/>
2421         </array>
2422       </field>
2423       <field name="_gst_reserved" readable="0" private="1">
2424         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
2425           <type name="gpointer" c:type="gpointer"/>
2426         </array>
2427       </field>
2428       <constructor name="new_any" c:identifier="gst_caps_new_any">
2429         <doc xml:whitespace="preserve">Creates a new #GstCaps that indicates that it is compatible with
2430 any media format.</doc>
2431         <return-value transfer-ownership="full">
2432           <doc xml:whitespace="preserve">the new #GstCaps</doc>
2433           <type name="Caps" c:type="GstCaps*"/>
2434         </return-value>
2435       </constructor>
2436       <constructor name="new_empty" c:identifier="gst_caps_new_empty">
2437         <doc xml:whitespace="preserve">Creates a new #GstCaps that is empty.  That is, the returned
2438 #GstCaps contains no media formats.
2439 Caller is responsible for unreffing the returned caps.</doc>
2440         <return-value transfer-ownership="full">
2441           <doc xml:whitespace="preserve">the new #GstCaps</doc>
2442           <type name="Caps" c:type="GstCaps*"/>
2443         </return-value>
2444       </constructor>
2445       <constructor name="new_full"
2446                    c:identifier="gst_caps_new_full"
2447                    introspectable="0">
2448         <doc xml:whitespace="preserve">Creates a new #GstCaps and adds all the structures listed as
2449 arguments.  The list must be NULL-terminated.  The structures
2450 are not copied; the returned #GstCaps owns the structures.</doc>
2451         <return-value transfer-ownership="full">
2452           <doc xml:whitespace="preserve">the new #GstCaps</doc>
2453           <type name="Caps" c:type="GstCaps*"/>
2454         </return-value>
2455         <parameters>
2456           <parameter name="struct1" transfer-ownership="none">
2457             <doc xml:whitespace="preserve">the first structure to add</doc>
2458             <type name="Structure" c:type="GstStructure*"/>
2459           </parameter>
2460           <parameter transfer-ownership="none">
2461             <varargs>
2462             </varargs>
2463           </parameter>
2464         </parameters>
2465       </constructor>
2466       <constructor name="new_full_valist"
2467                    c:identifier="gst_caps_new_full_valist"
2468                    introspectable="0">
2469         <doc xml:whitespace="preserve">Creates a new #GstCaps and adds all the structures listed as
2470 arguments.  The list must be NULL-terminated.  The structures
2471 are not copied; the returned #GstCaps owns the structures.</doc>
2472         <return-value transfer-ownership="full">
2473           <doc xml:whitespace="preserve">the new #GstCaps</doc>
2474           <type name="Caps" c:type="GstCaps*"/>
2475         </return-value>
2476         <parameters>
2477           <parameter name="structure" transfer-ownership="none">
2478             <doc xml:whitespace="preserve">the first structure to add</doc>
2479             <type name="Structure" c:type="GstStructure*"/>
2480           </parameter>
2481           <parameter name="var_args" transfer-ownership="none">
2482             <doc xml:whitespace="preserve">additional structures to add</doc>
2483             <type name="va_list" c:type="va_list"/>
2484           </parameter>
2485         </parameters>
2486       </constructor>
2487       <constructor name="new_simple"
2488                    c:identifier="gst_caps_new_simple"
2489                    introspectable="0">
2490         <doc xml:whitespace="preserve">Creates a new #GstCaps that contains one #GstStructure.  The
2491 structure is defined by the arguments, which have the same format
2492 as gst_structure_new().
2493 Caller is responsible for unreffing the returned caps.</doc>
2494         <return-value transfer-ownership="full">
2495           <doc xml:whitespace="preserve">the new #GstCaps</doc>
2496           <type name="Caps" c:type="GstCaps*"/>
2497         </return-value>
2498         <parameters>
2499           <parameter name="media_type" transfer-ownership="none">
2500             <doc xml:whitespace="preserve">the media type of the structure</doc>
2501             <type name="utf8" c:type="char*"/>
2502           </parameter>
2503           <parameter name="fieldname" transfer-ownership="none">
2504             <doc xml:whitespace="preserve">first field to set</doc>
2505             <type name="utf8" c:type="char*"/>
2506           </parameter>
2507           <parameter transfer-ownership="none">
2508             <varargs>
2509             </varargs>
2510           </parameter>
2511         </parameters>
2512       </constructor>
2513       <method name="append" c:identifier="gst_caps_append">
2514         <doc xml:whitespace="preserve">Appends the structures contained in @caps2 to @caps1. The structures in
2515 freed. If either caps is ANY, the resulting caps will be ANY.</doc>
2516         <return-value transfer-ownership="none">
2517           <type name="none" c:type="void"/>
2518         </return-value>
2519         <parameters>
2520           <parameter name="caps2" transfer-ownership="full">
2521             <doc xml:whitespace="preserve">the #GstCaps to append</doc>
2522             <type name="Caps" c:type="GstCaps*"/>
2523           </parameter>
2524         </parameters>
2525       </method>
2526       <method name="append_structure" c:identifier="gst_caps_append_structure">
2527         <doc xml:whitespace="preserve">Appends @structure to @caps.  The structure is not copied; @caps
2528 becomes the owner of @structure.</doc>
2529         <return-value transfer-ownership="none">
2530           <type name="none" c:type="void"/>
2531         </return-value>
2532         <parameters>
2533           <parameter name="structure" transfer-ownership="full">
2534             <doc xml:whitespace="preserve">the #GstStructure to append</doc>
2535             <type name="Structure" c:type="GstStructure*"/>
2536           </parameter>
2537         </parameters>
2538       </method>
2539       <method name="can_intersect"
2540               c:identifier="gst_caps_can_intersect"
2541               version="0.10.25">
2542         <doc xml:whitespace="preserve">Tries intersecting @caps1 and @caps2 and reports whether the result would not
2543 be empty</doc>
2544         <return-value transfer-ownership="none">
2545           <doc xml:whitespace="preserve">%TRUE if intersection would be not empty</doc>
2546           <type name="gboolean" c:type="gboolean"/>
2547         </return-value>
2548         <parameters>
2549           <parameter name="caps2" transfer-ownership="none">
2550             <doc xml:whitespace="preserve">a #GstCaps to intersect</doc>
2551             <type name="Caps" c:type="GstCaps*"/>
2552           </parameter>
2553         </parameters>
2554       </method>
2555       <method name="copy" c:identifier="gst_caps_copy">
2556         <doc xml:whitespace="preserve">Creates a new #GstCaps as a copy of the old @caps. The new caps will have a
2557 refcount of 1, owned by the caller. The structures are copied as well.
2558 Note that this function is the semantic equivalent of a gst_caps_ref()
2559 followed by a gst_caps_make_writable(). If you only want to hold on to a
2560 reference to the data, you should use gst_caps_ref().
2561 When you are finished with the caps, call gst_caps_unref() on it.</doc>
2562         <return-value transfer-ownership="full">
2563           <doc xml:whitespace="preserve">the new #GstCaps</doc>
2564           <type name="Caps" c:type="GstCaps*"/>
2565         </return-value>
2566       </method>
2567       <method name="copy_nth" c:identifier="gst_caps_copy_nth">
2568         <doc xml:whitespace="preserve">Creates a new #GstCaps and appends a copy of the nth structure
2569 contained in @caps.</doc>
2570         <return-value transfer-ownership="full">
2571           <doc xml:whitespace="preserve">the new #GstCaps</doc>
2572           <type name="Caps" c:type="GstCaps*"/>
2573         </return-value>
2574         <parameters>
2575           <parameter name="nth" transfer-ownership="none">
2576             <doc xml:whitespace="preserve">the nth structure to copy</doc>
2577             <type name="guint" c:type="guint"/>
2578           </parameter>
2579         </parameters>
2580       </method>
2581       <method name="do_simplify" c:identifier="gst_caps_do_simplify">
2582         <doc xml:whitespace="preserve">Modifies the given @caps inplace into a representation that represents the
2583 same set of formats, but in a simpler form.  Component structures that are
2584 identical are merged.  Component structures that have values that can be
2585 merged are also merged.</doc>
2586         <return-value transfer-ownership="none">
2587           <doc xml:whitespace="preserve">TRUE, if the caps could be simplified</doc>
2588           <type name="gboolean" c:type="gboolean"/>
2589         </return-value>
2590       </method>
2591       <method name="get_size" c:identifier="gst_caps_get_size">
2592         <doc xml:whitespace="preserve">Gets the number of structures contained in @caps.</doc>
2593         <return-value transfer-ownership="none">
2594           <doc xml:whitespace="preserve">the number of structures that @caps contains</doc>
2595           <type name="guint" c:type="guint"/>
2596         </return-value>
2597       </method>
2598       <method name="get_structure" c:identifier="gst_caps_get_structure">
2599         <doc xml:whitespace="preserve">Finds the structure in @caps that has the index @index, and
2600 returns it.
2601 non-const GstStructure *.  This is for programming convenience --
2602 the caller should be aware that structures inside a constant
2603 #GstCaps should not be modified. However, if you know the caps
2604 are writable, either because you have just copied them or made
2605 them writable with gst_caps_make_writable(), you may modify the
2606 structure returned in the usual way, e.g. with functions like
2607 gst_structure_set().
2608 You do not need to free or unref the structure returned, it
2609 belongs to the #GstCaps.
2610 to @index</doc>
2611         <return-value transfer-ownership="none">
2612           <doc xml:whitespace="preserve">a pointer to the #GstStructure corresponding</doc>
2613           <type name="Structure" c:type="GstStructure*"/>
2614         </return-value>
2615         <parameters>
2616           <parameter name="index" transfer-ownership="none">
2617             <doc xml:whitespace="preserve">the index of the structure</doc>
2618             <type name="guint" c:type="guint"/>
2619           </parameter>
2620         </parameters>
2621       </method>
2622       <method name="intersect" c:identifier="gst_caps_intersect">
2623         <doc xml:whitespace="preserve">Creates a new #GstCaps that contains all the formats that are common
2624 to both @caps1 and @caps2. Defaults to %GST_CAPS_INTERSECT_ZIG_ZAG mode.</doc>
2625         <return-value transfer-ownership="full">
2626           <doc xml:whitespace="preserve">the new #GstCaps</doc>
2627           <type name="Caps" c:type="GstCaps*"/>
2628         </return-value>
2629         <parameters>
2630           <parameter name="caps2" transfer-ownership="none">
2631             <doc xml:whitespace="preserve">a #GstCaps to intersect</doc>
2632             <type name="Caps" c:type="GstCaps*"/>
2633           </parameter>
2634         </parameters>
2635       </method>
2636       <method name="intersect_full"
2637               c:identifier="gst_caps_intersect_full"
2638               version="0.10.33">
2639         <doc xml:whitespace="preserve">Creates a new #GstCaps that contains all the formats that are common
2640 to both @caps1 and @caps2, the order is defined by the #GstCapsIntersectMode
2641 used.</doc>
2642         <return-value transfer-ownership="full">
2643           <doc xml:whitespace="preserve">the new #GstCaps</doc>
2644           <type name="Caps" c:type="GstCaps*"/>
2645         </return-value>
2646         <parameters>
2647           <parameter name="caps2" transfer-ownership="none">
2648             <doc xml:whitespace="preserve">a #GstCaps to intersect</doc>
2649             <type name="Caps" c:type="GstCaps*"/>
2650           </parameter>
2651           <parameter name="mode" transfer-ownership="none">
2652             <doc xml:whitespace="preserve">The intersection algorithm/mode to use</doc>
2653             <type name="CapsIntersectMode" c:type="GstCapsIntersectMode"/>
2654           </parameter>
2655         </parameters>
2656       </method>
2657       <method name="is_always_compatible"
2658               c:identifier="gst_caps_is_always_compatible">
2659         <doc xml:whitespace="preserve">A given #GstCaps structure is always compatible with another if
2660 every media format that is in the first is also contained in the
2661 second.  That is, @caps1 is a subset of @caps2.</doc>
2662         <return-value transfer-ownership="none">
2663           <doc xml:whitespace="preserve">TRUE if @caps1 is a subset of @caps2.</doc>
2664           <type name="gboolean" c:type="gboolean"/>
2665         </return-value>
2666         <parameters>
2667           <parameter name="caps2" transfer-ownership="none">
2668             <doc xml:whitespace="preserve">the #GstCaps to test</doc>
2669             <type name="Caps" c:type="GstCaps*"/>
2670           </parameter>
2671         </parameters>
2672       </method>
2673       <method name="is_any" c:identifier="gst_caps_is_any">
2674         <doc xml:whitespace="preserve">Determines if @caps represents any media format.</doc>
2675         <return-value transfer-ownership="none">
2676           <doc xml:whitespace="preserve">TRUE if @caps represents any format.</doc>
2677           <type name="gboolean" c:type="gboolean"/>
2678         </return-value>
2679       </method>
2680       <method name="is_empty" c:identifier="gst_caps_is_empty">
2681         <doc xml:whitespace="preserve">Determines if @caps represents no media formats.</doc>
2682         <return-value transfer-ownership="none">
2683           <doc xml:whitespace="preserve">TRUE if @caps represents no formats.</doc>
2684           <type name="gboolean" c:type="gboolean"/>
2685         </return-value>
2686       </method>
2687       <method name="is_equal" c:identifier="gst_caps_is_equal">
2688         <doc xml:whitespace="preserve">Checks if the given caps represent the same set of caps.
2689 &lt;note&gt;This function does not work reliably if optional properties for caps
2690 are included on one caps and omitted on the other.&lt;/note&gt;
2691 This function deals correctly with passing NULL for any of the caps.</doc>
2692         <return-value transfer-ownership="none">
2693           <doc xml:whitespace="preserve">TRUE if both caps are equal.</doc>
2694           <type name="gboolean" c:type="gboolean"/>
2695         </return-value>
2696         <parameters>
2697           <parameter name="caps2" transfer-ownership="none">
2698             <doc xml:whitespace="preserve">another #GstCaps</doc>
2699             <type name="Caps" c:type="GstCaps*"/>
2700           </parameter>
2701         </parameters>
2702       </method>
2703       <method name="is_equal_fixed" c:identifier="gst_caps_is_equal_fixed">
2704         <doc xml:whitespace="preserve">Tests if two #GstCaps are equal.  This function only works on fixed
2705 #GstCaps.</doc>
2706         <return-value transfer-ownership="none">
2707           <doc xml:whitespace="preserve">TRUE if the arguments represent the same format</doc>
2708           <type name="gboolean" c:type="gboolean"/>
2709         </return-value>
2710         <parameters>
2711           <parameter name="caps2" transfer-ownership="none">
2712             <doc xml:whitespace="preserve">the #GstCaps to test</doc>
2713             <type name="Caps" c:type="GstCaps*"/>
2714           </parameter>
2715         </parameters>
2716       </method>
2717       <method name="is_fixed" c:identifier="gst_caps_is_fixed">
2718         <doc xml:whitespace="preserve">Fixed #GstCaps describe exactly one format, that is, they have exactly
2719 one structure, and each field in the structure describes a fixed type.
2720 Examples of non-fixed types are GST_TYPE_INT_RANGE and GST_TYPE_LIST.</doc>
2721         <return-value transfer-ownership="none">
2722           <doc xml:whitespace="preserve">TRUE if @caps is fixed</doc>
2723           <type name="gboolean" c:type="gboolean"/>
2724         </return-value>
2725       </method>
2726       <method name="is_subset" c:identifier="gst_caps_is_subset">
2727         <doc xml:whitespace="preserve">Checks if all caps represented by @subset are also represented by @superset.
2728 &lt;note&gt;This function does not work reliably if optional properties for caps
2729 are included on one caps and omitted on the other.&lt;/note&gt;</doc>
2730         <return-value transfer-ownership="none">
2731           <doc xml:whitespace="preserve">%TRUE if @subset is a subset of @superset</doc>
2732           <type name="gboolean" c:type="gboolean"/>
2733         </return-value>
2734         <parameters>
2735           <parameter name="superset" transfer-ownership="none">
2736             <doc xml:whitespace="preserve">a potentially greater #GstCaps</doc>
2737             <type name="Caps" c:type="GstCaps*"/>
2738           </parameter>
2739         </parameters>
2740       </method>
2741       <method name="make_writable" c:identifier="gst_caps_make_writable">
2742         <doc xml:whitespace="preserve">Returns a writable copy of @caps.
2743 If there is only one reference count on @caps, the caller must be the owner,
2744 and so this function will return the caps object unchanged. If on the other
2745 hand there is more than one reference on the object, a new caps object will
2746 be returned. The caller's reference on @caps will be removed, and instead the
2747 caller will own a reference to the returned object.
2748 In short, this function unrefs the caps in the argument and refs the caps
2749 that it returns. Don't access the argument after calling this function. See</doc>
2750         <return-value transfer-ownership="full">
2751           <doc xml:whitespace="preserve">the same #GstCaps object.</doc>
2752           <type name="Caps" c:type="GstCaps*"/>
2753         </return-value>
2754       </method>
2755       <method name="merge" c:identifier="gst_caps_merge" version="0.10.10">
2756         <doc xml:whitespace="preserve">Appends the structures contained in @caps2 to @caps1 if they are not yet
2757 expressed by @caps1. The structures in @caps2 are not copied -- they are
2758 transferred to @caps1, and then @caps2 is freed.
2759 If either caps is ANY, the resulting caps will be ANY.</doc>
2760         <return-value transfer-ownership="none">
2761           <type name="none" c:type="void"/>
2762         </return-value>
2763         <parameters>
2764           <parameter name="caps2" transfer-ownership="full">
2765             <doc xml:whitespace="preserve">the #GstCaps to merge in</doc>
2766             <type name="Caps" c:type="GstCaps*"/>
2767           </parameter>
2768         </parameters>
2769       </method>
2770       <method name="merge_structure" c:identifier="gst_caps_merge_structure">
2771         <doc xml:whitespace="preserve">Appends @structure to @caps if its not already expressed by @caps.  The
2772 structure is not copied; @caps becomes the owner of @structure.</doc>
2773         <return-value transfer-ownership="none">
2774           <type name="none" c:type="void"/>
2775         </return-value>
2776         <parameters>
2777           <parameter name="structure" transfer-ownership="full">
2778             <doc xml:whitespace="preserve">the #GstStructure to merge</doc>
2779             <type name="Structure" c:type="GstStructure*"/>
2780           </parameter>
2781         </parameters>
2782       </method>
2783       <method name="normalize" c:identifier="gst_caps_normalize">
2784         <doc xml:whitespace="preserve">Creates a new #GstCaps that represents the same set of formats as</doc>
2785         <return-value transfer-ownership="full">
2786           <doc xml:whitespace="preserve">the new #GstCaps</doc>
2787           <type name="Caps" c:type="GstCaps*"/>
2788         </return-value>
2789       </method>
2790       <method name="ref" c:identifier="gst_caps_ref">
2791         <doc xml:whitespace="preserve">Add a reference to a #GstCaps object.
2792 From this point on, until the caller calls gst_caps_unref() or
2793 gst_caps_make_writable(), it is guaranteed that the caps object will not
2794 change. This means its structures won't change, etc. To use a #GstCaps
2795 object, you must always have a refcount on it -- either the one made
2796 implicitly by e.g. gst_caps_new_simple(), or via taking one explicitly with
2797 this function.</doc>
2798         <return-value transfer-ownership="full">
2799           <doc xml:whitespace="preserve">the same #GstCaps object.</doc>
2800           <type name="Caps" c:type="GstCaps*"/>
2801         </return-value>
2802       </method>
2803       <method name="remove_structure" c:identifier="gst_caps_remove_structure">
2804         <doc xml:whitespace="preserve">removes the stucture with the given index from the list of structures
2805 contained in @caps.</doc>
2806         <return-value transfer-ownership="none">
2807           <type name="none" c:type="void"/>
2808         </return-value>
2809         <parameters>
2810           <parameter name="idx" transfer-ownership="none">
2811             <doc xml:whitespace="preserve">Index of the structure to remove</doc>
2812             <type name="guint" c:type="guint"/>
2813           </parameter>
2814         </parameters>
2815       </method>
2816       <method name="save_thyself"
2817               c:identifier="gst_caps_save_thyself"
2818               introspectable="0">
2819         <doc xml:whitespace="preserve">Serializes a #GstCaps to XML and adds it as a child node of @parent.</doc>
2820         <return-value>
2821           <doc xml:whitespace="preserve">a XML node pointer</doc>
2822           <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
2823         </return-value>
2824         <parameters>
2825           <parameter name="parent" transfer-ownership="none">
2826             <doc xml:whitespace="preserve">a XML parent node</doc>
2827             <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
2828           </parameter>
2829         </parameters>
2830       </method>
2831       <method name="set_simple"
2832               c:identifier="gst_caps_set_simple"
2833               introspectable="0">
2834         <doc xml:whitespace="preserve">Sets fields in a #GstCaps.  The arguments must be passed in the same
2835 manner as gst_structure_set(), and be NULL-terminated.
2836 &lt;note&gt;Prior to GStreamer version 0.10.26, this function failed when
2837 of GStreamer, you may only call this function when GST_CAPS_IS_SIMPLE()
2838 is %TRUE for @caps.&lt;/note&gt;</doc>
2839         <return-value transfer-ownership="none">
2840           <type name="none" c:type="void"/>
2841         </return-value>
2842         <parameters>
2843           <parameter name="field" transfer-ownership="none">
2844             <doc xml:whitespace="preserve">first field to set</doc>
2845             <type name="utf8" c:type="char*"/>
2846           </parameter>
2847           <parameter transfer-ownership="none">
2848             <varargs>
2849             </varargs>
2850           </parameter>
2851         </parameters>
2852       </method>
2853       <method name="set_simple_valist"
2854               c:identifier="gst_caps_set_simple_valist"
2855               introspectable="0">
2856         <doc xml:whitespace="preserve">Sets fields in a #GstCaps.  The arguments must be passed in the same
2857 manner as gst_structure_set(), and be NULL-terminated.
2858 &lt;note&gt;Prior to GStreamer version 0.10.26, this function failed when
2859 of GStreamer, you may only call this function when GST_CAPS_IS_SIMPLE()
2860 is %TRUE for @caps.&lt;/note&gt;</doc>
2861         <return-value transfer-ownership="none">
2862           <type name="none" c:type="void"/>
2863         </return-value>
2864         <parameters>
2865           <parameter name="field" transfer-ownership="none">
2866             <doc xml:whitespace="preserve">first field to set</doc>
2867             <type name="utf8" c:type="char*"/>
2868           </parameter>
2869           <parameter name="varargs" transfer-ownership="none">
2870             <doc xml:whitespace="preserve">additional parameters</doc>
2871             <type name="va_list" c:type="va_list"/>
2872           </parameter>
2873         </parameters>
2874       </method>
2875       <method name="set_value"
2876               c:identifier="gst_caps_set_value"
2877               version="0.10.26">
2878         <doc xml:whitespace="preserve">Sets the given @field on all structures of @caps to the given @value.
2879 This is a convenience function for calling gst_structure_set_value() on
2880 all structures of @caps.</doc>
2881         <return-value transfer-ownership="none">
2882           <type name="none" c:type="void"/>
2883         </return-value>
2884         <parameters>
2885           <parameter name="field" transfer-ownership="none">
2886             <doc xml:whitespace="preserve">name of the field to set</doc>
2887             <type name="utf8" c:type="char*"/>
2888           </parameter>
2889           <parameter name="value" transfer-ownership="none">
2890             <doc xml:whitespace="preserve">value to set the field to</doc>
2891             <type name="GObject.Value" c:type="GValue*"/>
2892           </parameter>
2893         </parameters>
2894       </method>
2895       <method name="steal_structure"
2896               c:identifier="gst_caps_steal_structure"
2897               version="0.10.30">
2898         <doc xml:whitespace="preserve">Retrieves the stucture with the given index from the list of structures
2899 contained in @caps. The caller becomes the owner of the returned structure.
2900 to @index.</doc>
2901         <return-value transfer-ownership="full">
2902           <doc xml:whitespace="preserve">a pointer to the #GstStructure corresponding</doc>
2903           <type name="Structure" c:type="GstStructure*"/>
2904         </return-value>
2905         <parameters>
2906           <parameter name="index" transfer-ownership="none">
2907             <doc xml:whitespace="preserve">Index of the structure to retrieve</doc>
2908             <type name="guint" c:type="guint"/>
2909           </parameter>
2910         </parameters>
2911       </method>
2912       <method name="subtract" c:identifier="gst_caps_subtract">
2913         <doc xml:whitespace="preserve">Subtracts the @subtrahend from the @minuend.
2914 &lt;note&gt;This function does not work reliably if optional properties for caps
2915 are included on one caps and omitted on the other.&lt;/note&gt;</doc>
2916         <return-value transfer-ownership="full">
2917           <doc xml:whitespace="preserve">the resulting caps</doc>
2918           <type name="Caps" c:type="GstCaps*"/>
2919         </return-value>
2920         <parameters>
2921           <parameter name="subtrahend" transfer-ownership="none">
2922             <doc xml:whitespace="preserve">#GstCaps to substract</doc>
2923             <type name="Caps" c:type="GstCaps*"/>
2924           </parameter>
2925         </parameters>
2926       </method>
2927       <method name="to_string" c:identifier="gst_caps_to_string">
2928         <doc xml:whitespace="preserve">Converts @caps to a string representation.  This string representation
2929 can be converted back to a #GstCaps by gst_caps_from_string().
2930 For debugging purposes its easier to do something like this:
2931 |[
2932 GST_LOG ("caps are %" GST_PTR_FORMAT, caps);
2933 ]|
2934 This prints the caps in human readble form.</doc>
2935         <return-value transfer-ownership="full">
2936           <doc xml:whitespace="preserve">a newly allocated string representing @caps.</doc>
2937           <type name="utf8" c:type="gchar*"/>
2938         </return-value>
2939       </method>
2940       <method name="truncate" c:identifier="gst_caps_truncate">
2941         <doc xml:whitespace="preserve">Destructively discard all but the first structure from @caps. Useful when
2942 fixating. @caps must be writable.</doc>
2943         <return-value transfer-ownership="none">
2944           <type name="none" c:type="void"/>
2945         </return-value>
2946       </method>
2947       <method name="union" c:identifier="gst_caps_union">
2948         <doc xml:whitespace="preserve">Creates a new #GstCaps that contains all the formats that are in
2949 either @caps1 and @caps2.</doc>
2950         <return-value transfer-ownership="full">
2951           <doc xml:whitespace="preserve">the new #GstCaps</doc>
2952           <type name="Caps" c:type="GstCaps*"/>
2953         </return-value>
2954         <parameters>
2955           <parameter name="caps2" transfer-ownership="none">
2956             <doc xml:whitespace="preserve">a #GstCaps to union</doc>
2957             <type name="Caps" c:type="GstCaps*"/>
2958           </parameter>
2959         </parameters>
2960       </method>
2961       <method name="unref" c:identifier="gst_caps_unref">
2962         <doc xml:whitespace="preserve">Unref a #GstCaps and and free all its structures and the
2963 structures' values when the refcount reaches 0.</doc>
2964         <return-value transfer-ownership="none">
2965           <type name="none" c:type="void"/>
2966         </return-value>
2967       </method>
2968     </record>
2969     <bitfield name="CapsFlags" c:type="GstCapsFlags">
2970       <doc xml:whitespace="preserve">Extra flags for a caps.</doc>
2971       <member name="caps_flags_any"
2972               value="1"
2973               c:identifier="GST_CAPS_FLAGS_ANY"/>
2974     </bitfield>
2975     <enumeration name="CapsIntersectMode"
2976                  version="0.10.33"
2977                  c:type="GstCapsIntersectMode">
2978       <doc xml:whitespace="preserve">Modes of caps intersection
2979 by iterating on the caps' structures as the following matrix shows:
2980 |[
2981 caps1
2982 +-------------
2983 | 1  2  4  7
2984 caps2 | 3  5  8 10
2985 | 6  9 11 12
2986 ]|
2987 Used when there is no explicit precedence of one caps over the other. e.g.
2988 tee's sink pad getcaps function, it will probe its src pad peers' for their
2989 caps and intersect them with this mode.
2990 another element's caps priority order when intersecting with its own caps.
2991 would be [A, B], maintaining the first caps priority on the intersection.</doc>
2992       <member name="zig_zag"
2993               value="0"
2994               c:identifier="GST_CAPS_INTERSECT_ZIG_ZAG"/>
2995       <member name="first" value="1" c:identifier="GST_CAPS_INTERSECT_FIRST"/>
2996     </enumeration>
2997     <interface name="ChildProxy"
2998                c:symbol-prefix="child_proxy"
2999                c:type="GstChildProxy"
3000                glib:type-name="GstChildProxy"
3001                glib:get-type="gst_child_proxy_get_type"
3002                glib:type-struct="ChildProxyInterface">
3003       <doc xml:whitespace="preserve">This interface abstracts handling of property sets for elements with
3004 children. Imagine elements such as mixers or polyphonic generators. They all
3005 have multiple #GstPad or some kind of voice objects. Another use case are
3006 container elements like #GstBin.
3007 The element implementing the interface acts as a parent for those child
3008 objects.
3009 By implementing this interface the child properties can be accessed from the
3010 parent element by using gst_child_proxy_get() and gst_child_proxy_set().
3011 Property names are written as "child-name::property-name". The whole naming
3012 scheme is recursive. Thus "child1::child2::property" is valid too, if
3013 "child1" and "child2" implement the #GstChildProxy interface.</doc>
3014       <prerequisite name="Object"/>
3015       <virtual-method name="child_added">
3016         <return-value transfer-ownership="none">
3017           <type name="none" c:type="void"/>
3018         </return-value>
3019         <parameters>
3020           <parameter name="child" transfer-ownership="none">
3021             <type name="Object" c:type="GstObject*"/>
3022           </parameter>
3023         </parameters>
3024       </virtual-method>
3025       <virtual-method name="child_removed">
3026         <return-value transfer-ownership="none">
3027           <type name="none" c:type="void"/>
3028         </return-value>
3029         <parameters>
3030           <parameter name="child" transfer-ownership="none">
3031             <type name="Object" c:type="GstObject*"/>
3032           </parameter>
3033         </parameters>
3034       </virtual-method>
3035       <virtual-method name="get_child_by_index" invoker="get_child_by_index">
3036         <doc xml:whitespace="preserve">Fetches a child by its number.
3037 too high). Unref after usage.
3038 MT safe.</doc>
3039         <return-value transfer-ownership="full">
3040           <doc xml:whitespace="preserve">the child object or %NULL if not found (index</doc>
3041           <type name="Object" c:type="GstObject*"/>
3042         </return-value>
3043         <parameters>
3044           <parameter name="index" transfer-ownership="none">
3045             <doc xml:whitespace="preserve">the childs position in the child list</doc>
3046             <type name="guint" c:type="guint"/>
3047           </parameter>
3048         </parameters>
3049       </virtual-method>
3050       <virtual-method name="get_children_count" invoker="get_children_count">
3051         <doc xml:whitespace="preserve">Gets the number of child objects this parent contains.
3052 MT safe.</doc>
3053         <return-value transfer-ownership="none">
3054           <doc xml:whitespace="preserve">the number of child objects</doc>
3055           <type name="guint" c:type="guint"/>
3056         </return-value>
3057       </virtual-method>
3058       <method name="get_child_by_index"
3059               c:identifier="gst_child_proxy_get_child_by_index">
3060         <doc xml:whitespace="preserve">Fetches a child by its number.
3061 too high). Unref after usage.
3062 MT safe.</doc>
3063         <return-value transfer-ownership="full">
3064           <doc xml:whitespace="preserve">the child object or %NULL if not found (index</doc>
3065           <type name="Object" c:type="GstObject*"/>
3066         </return-value>
3067         <parameters>
3068           <parameter name="index" transfer-ownership="none">
3069             <doc xml:whitespace="preserve">the childs position in the child list</doc>
3070             <type name="guint" c:type="guint"/>
3071           </parameter>
3072         </parameters>
3073       </method>
3074       <method name="get_child_by_name"
3075               c:identifier="gst_child_proxy_get_child_by_name">
3076         <doc xml:whitespace="preserve">Looks up a child element by the given name.
3077 Implementors can use #GstObject together with gst_object_get_name()
3078 after usage.
3079 MT safe.</doc>
3080         <return-value transfer-ownership="full">
3081           <doc xml:whitespace="preserve">the child object or %NULL if not found. Unref</doc>
3082           <type name="Object" c:type="GstObject*"/>
3083         </return-value>
3084         <parameters>
3085           <parameter name="name" transfer-ownership="none">
3086             <doc xml:whitespace="preserve">the childs name</doc>
3087             <type name="utf8" c:type="gchar*"/>
3088           </parameter>
3089         </parameters>
3090       </method>
3091       <method name="get_children_count"
3092               c:identifier="gst_child_proxy_get_children_count">
3093         <doc xml:whitespace="preserve">Gets the number of child objects this parent contains.
3094 MT safe.</doc>
3095         <return-value transfer-ownership="none">
3096           <doc xml:whitespace="preserve">the number of child objects</doc>
3097           <type name="guint" c:type="guint"/>
3098         </return-value>
3099       </method>
3100       <glib:signal name="child-added">
3101         <return-value transfer-ownership="none">
3102           <type name="none"/>
3103         </return-value>
3104         <parameters>
3105           <parameter name="object" transfer-ownership="none">
3106             <type name="GObject.Object"/>
3107           </parameter>
3108         </parameters>
3109       </glib:signal>
3110       <glib:signal name="child-removed">
3111         <return-value transfer-ownership="none">
3112           <type name="none"/>
3113         </return-value>
3114         <parameters>
3115           <parameter name="object" transfer-ownership="none">
3116             <type name="GObject.Object"/>
3117           </parameter>
3118         </parameters>
3119       </glib:signal>
3120     </interface>
3121     <record name="ChildProxyInterface"
3122             c:type="GstChildProxyInterface"
3123             glib:is-gtype-struct-for="ChildProxy">
3124       <doc xml:whitespace="preserve">#GstChildProxy interface.</doc>
3125       <field name="parent">
3126         <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
3127       </field>
3128       <field name="get_child_by_index">
3129         <callback name="get_child_by_index">
3130           <return-value transfer-ownership="full">
3131             <doc xml:whitespace="preserve">the child object or %NULL if not found (index</doc>
3132             <type name="Object" c:type="GstObject*"/>
3133           </return-value>
3134           <parameters>
3135             <parameter name="parent" transfer-ownership="none">
3136               <type name="ChildProxy" c:type="GstChildProxy*"/>
3137             </parameter>
3138             <parameter name="index" transfer-ownership="none">
3139               <doc xml:whitespace="preserve">the childs position in the child list</doc>
3140               <type name="guint" c:type="guint"/>
3141             </parameter>
3142           </parameters>
3143         </callback>
3144       </field>
3145       <field name="get_children_count">
3146         <callback name="get_children_count">
3147           <return-value transfer-ownership="none">
3148             <doc xml:whitespace="preserve">the number of child objects</doc>
3149             <type name="guint" c:type="guint"/>
3150           </return-value>
3151           <parameters>
3152             <parameter name="parent" transfer-ownership="none">
3153               <type name="ChildProxy" c:type="GstChildProxy*"/>
3154             </parameter>
3155           </parameters>
3156         </callback>
3157       </field>
3158       <field name="child_added">
3159         <callback name="child_added">
3160           <return-value transfer-ownership="none">
3161             <type name="none" c:type="void"/>
3162           </return-value>
3163           <parameters>
3164             <parameter name="parent" transfer-ownership="none">
3165               <type name="ChildProxy" c:type="GstChildProxy*"/>
3166             </parameter>
3167             <parameter name="child" transfer-ownership="none">
3168               <type name="Object" c:type="GstObject*"/>
3169             </parameter>
3170           </parameters>
3171         </callback>
3172       </field>
3173       <field name="child_removed">
3174         <callback name="child_removed">
3175           <return-value transfer-ownership="none">
3176             <type name="none" c:type="void"/>
3177           </return-value>
3178           <parameters>
3179             <parameter name="parent" transfer-ownership="none">
3180               <type name="ChildProxy" c:type="GstChildProxy*"/>
3181             </parameter>
3182             <parameter name="child" transfer-ownership="none">
3183               <type name="Object" c:type="GstObject*"/>
3184             </parameter>
3185           </parameters>
3186         </callback>
3187       </field>
3188       <field name="_gst_reserved" readable="0" private="1">
3189         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
3190           <type name="gpointer" c:type="gpointer"/>
3191         </array>
3192       </field>
3193     </record>
3194     <class name="Clock"
3195            c:symbol-prefix="clock"
3196            c:type="GstClock"
3197            parent="Object"
3198            glib:type-name="GstClock"
3199            glib:get-type="gst_clock_get_type"
3200            glib:type-struct="ClockClass">
3201       <doc xml:whitespace="preserve">GStreamer uses a global clock to synchronize the plugins in a pipeline.
3202 Different clock implementations are possible by implementing this abstract
3203 base class or, more conveniently, by subclassing #GstSystemClock.
3204 The #GstClock returns a monotonically increasing time with the method
3205 gst_clock_get_time(). Its accuracy and base time depend on the specific
3206 clock implementation but time is always expressed in nanoseconds. Since the
3207 baseline of the clock is undefined, the clock time returned is not
3208 meaningful in itself, what matters are the deltas between two clock times.
3209 The time returned by a clock is called the absolute time.
3210 The pipeline uses the clock to calculate the running time. Usually all
3211 renderers synchronize to the global clock using the buffer timestamps, the
3212 newsegment events and the element's base time, see #GstPipeline.
3213 A clock implementation can support periodic and single shot clock
3214 notifications both synchronous and asynchronous.
3215 One first needs to create a #GstClockID for the periodic or single shot
3216 notification using gst_clock_new_single_shot_id() or
3217 gst_clock_new_periodic_id().
3218 To perform a blocking wait for the specific time of the #GstClockID use the
3219 gst_clock_id_wait(). To receive a callback when the specific time is reached
3220 in the clock use gst_clock_id_wait_async(). Both these calls can be
3221 interrupted with the gst_clock_id_unschedule() call. If the blocking wait is
3222 unscheduled a return value of #GST_CLOCK_UNSCHEDULED is returned.
3223 Periodic callbacks scheduled async will be repeatedly called automatically
3224 until it is unscheduled. To schedule a sync periodic callback,
3225 gst_clock_id_wait() should be called repeatedly.
3226 The async callbacks can happen from any thread, either provided by the core
3227 or from a streaming thread. The application should be prepared for this.
3228 A #GstClockID that has been unscheduled cannot be used again for any wait
3229 operation, a new #GstClockID should be created and the old unscheduled one
3230 should be destroyed with gst_clock_id_unref().
3231 It is possible to perform a blocking wait on the same #GstClockID from
3232 multiple threads. However, registering the same #GstClockID for multiple
3233 async notifications is not possible, the callback will only be called for
3234 the thread registering the entry last.
3235 None of the wait operations unref the #GstClockID, the owner is responsible
3236 for unreffing the ids itself. This holds for both periodic and single shot
3237 notifications. The reason being that the owner of the #GstClockID has to
3238 keep a handle to the #GstClockID to unblock the wait on FLUSHING events or
3239 state changes and if the entry would be unreffed automatically, the handle 
3240 might become invalid without any notification.
3241 These clock operations do not operate on the running time, so the callbacks
3242 will also occur when not in PLAYING state as if the clock just keeps on
3243 running. Some clocks however do not progress when the element that provided
3244 the clock is not PLAYING.
3245 When a clock has the #GST_CLOCK_FLAG_CAN_SET_MASTER flag set, it can be
3246 slaved to another #GstClock with the gst_clock_set_master(). The clock will
3247 then automatically be synchronized to this master clock by repeatedly
3248 sampling the master clock and the slave clock and recalibrating the slave
3249 clock with gst_clock_set_calibration(). This feature is mostly useful for
3250 plugins that have an internal clock but must operate with another clock
3251 selected by the #GstPipeline.  They can track the offset and rate difference
3252 of their internal clock relative to the master clock by using the
3253 gst_clock_get_calibration() function. 
3254 The master/slave synchronisation can be tuned with the #GstClock:timeout,
3255 #GstClock:window-size and #GstClock:window-threshold properties.
3256 The #GstClock:timeout property defines the interval to sample the master
3257 clock and run the calibration functions. #GstClock:window-size defines the
3258 number of samples to use when calibrating and #GstClock:window-threshold
3259 defines the minimum number of samples before the calibration is performed.
3260 Last reviewed on 2009-05-21 (0.10.24)</doc>
3261       <function name="id_compare_func"
3262                 c:identifier="gst_clock_id_compare_func">
3263         <doc xml:whitespace="preserve">Compares the two #GstClockID instances. This function can be used
3264 as a GCompareFunc when sorting ids.
3265 MT safe.</doc>
3266         <return-value transfer-ownership="none">
3267           <doc xml:whitespace="preserve">negative value if a &lt; b; zero if a = b; positive value if a &gt; b</doc>
3268           <type name="gint" c:type="gint"/>
3269         </return-value>
3270         <parameters>
3271           <parameter name="id1" transfer-ownership="none">
3272             <doc xml:whitespace="preserve">A #GstClockID</doc>
3273             <type name="gpointer" c:type="gconstpointer"/>
3274           </parameter>
3275           <parameter name="id2" transfer-ownership="none">
3276             <doc xml:whitespace="preserve">A #GstClockID to compare with</doc>
3277             <type name="gpointer" c:type="gconstpointer"/>
3278           </parameter>
3279         </parameters>
3280       </function>
3281       <function name="id_get_time" c:identifier="gst_clock_id_get_time">
3282         <doc xml:whitespace="preserve">Get the time of the clock ID
3283 MT safe.</doc>
3284         <return-value transfer-ownership="none">
3285           <doc xml:whitespace="preserve">the time of the given clock id.</doc>
3286           <type name="ClockTime" c:type="GstClockTime"/>
3287         </return-value>
3288         <parameters>
3289           <parameter name="id" transfer-ownership="none">
3290             <doc xml:whitespace="preserve">The #GstClockID to query</doc>
3291             <type name="ClockID" c:type="GstClockID"/>
3292           </parameter>
3293         </parameters>
3294       </function>
3295       <function name="id_ref" c:identifier="gst_clock_id_ref">
3296         <doc xml:whitespace="preserve">Increase the refcount of given @id.
3297 MT safe.</doc>
3298         <return-value transfer-ownership="full">
3299           <doc xml:whitespace="preserve">The same #GstClockID with increased refcount.</doc>
3300           <type name="ClockID" c:type="GstClockID"/>
3301         </return-value>
3302         <parameters>
3303           <parameter name="id" transfer-ownership="none">
3304             <doc xml:whitespace="preserve">The #GstClockID to ref</doc>
3305             <type name="ClockID" c:type="GstClockID"/>
3306           </parameter>
3307         </parameters>
3308       </function>
3309       <function name="id_unref" c:identifier="gst_clock_id_unref">
3310         <doc xml:whitespace="preserve">Unref given @id. When the refcount reaches 0 the
3311 #GstClockID will be freed.
3312 MT safe.</doc>
3313         <return-value transfer-ownership="none">
3314           <type name="none" c:type="void"/>
3315         </return-value>
3316         <parameters>
3317           <parameter name="id" transfer-ownership="full">
3318             <doc xml:whitespace="preserve">The #GstClockID to unref</doc>
3319             <type name="ClockID" c:type="GstClockID"/>
3320           </parameter>
3321         </parameters>
3322       </function>
3323       <function name="id_unschedule" c:identifier="gst_clock_id_unschedule">
3324         <doc xml:whitespace="preserve">Cancel an outstanding request with @id. This can either
3325 be an outstanding async notification or a pending sync notification.
3326 After this call, @id cannot be used anymore to receive sync or
3327 async notifications, you need to create a new #GstClockID.
3328 MT safe.</doc>
3329         <return-value transfer-ownership="none">
3330           <type name="none" c:type="void"/>
3331         </return-value>
3332         <parameters>
3333           <parameter name="id" transfer-ownership="none">
3334             <doc xml:whitespace="preserve">The id to unschedule</doc>
3335             <type name="ClockID" c:type="GstClockID"/>
3336           </parameter>
3337         </parameters>
3338       </function>
3339       <function name="id_wait" c:identifier="gst_clock_id_wait">
3340         <doc xml:whitespace="preserve">Perform a blocking wait on @id. 
3341 or gst_clock_new_periodic_id() and should not have been unscheduled
3342 with a call to gst_clock_id_unschedule(). 
3343 If the @jitter argument is not %NULL and this function returns #GST_CLOCK_OK
3344 or #GST_CLOCK_EARLY, it will contain the difference
3345 against the clock and the time of @id when this method was
3346 called. 
3347 Positive values indicate how late @id was relative to the clock
3348 (in which case this function will return #GST_CLOCK_EARLY). 
3349 Negative values indicate how much time was spent waiting on the clock 
3350 before this function returned.
3351 if the current clock time is past the time of @id, #GST_CLOCK_OK if 
3352 unscheduled with gst_clock_id_unschedule().
3353 MT safe.</doc>
3354         <return-value transfer-ownership="none">
3355           <doc xml:whitespace="preserve">the result of the blocking wait. #GST_CLOCK_EARLY will be returned</doc>
3356           <type name="ClockReturn" c:type="GstClockReturn"/>
3357         </return-value>
3358         <parameters>
3359           <parameter name="id" transfer-ownership="none">
3360             <doc xml:whitespace="preserve">The #GstClockID to wait on</doc>
3361             <type name="ClockID" c:type="GstClockID"/>
3362           </parameter>
3363           <parameter name="jitter"
3364                      direction="out"
3365                      caller-allocates="0"
3366                      transfer-ownership="full"
3367                      allow-none="1">
3368             <doc xml:whitespace="preserve">a pointer that will contain the jitter, can be %NULL.</doc>
3369             <type name="ClockTimeDiff" c:type="GstClockTimeDiff*"/>
3370           </parameter>
3371         </parameters>
3372       </function>
3373       <function name="id_wait_async"
3374                 c:identifier="gst_clock_id_wait_async"
3375                 introspectable="0">
3376         <doc xml:whitespace="preserve">Register a callback on the given #GstClockID @id with the given
3377 function and user_data. When passing a #GstClockID with an invalid
3378 time to this function, the callback will be called immediately
3379 with  a time set to GST_CLOCK_TIME_NONE. The callback will
3380 be called when the time of @id has been reached.
3381 The callback @func can be invoked from any thread, either provided by the
3382 core or from a streaming thread. The application should be prepared for this.
3383 MT safe.</doc>
3384         <return-value transfer-ownership="none">
3385           <doc xml:whitespace="preserve">the result of the non blocking wait.</doc>
3386           <type name="ClockReturn" c:type="GstClockReturn"/>
3387         </return-value>
3388         <parameters>
3389           <parameter name="id" transfer-ownership="none">
3390             <doc xml:whitespace="preserve">a #GstClockID to wait on</doc>
3391             <type name="ClockID" c:type="GstClockID"/>
3392           </parameter>
3393           <parameter name="func" transfer-ownership="none" closure="2">
3394             <doc xml:whitespace="preserve">The callback function</doc>
3395             <type name="ClockCallback" c:type="GstClockCallback"/>
3396           </parameter>
3397           <parameter name="user_data" transfer-ownership="none">
3398             <doc xml:whitespace="preserve">User data passed in the callback</doc>
3399             <type name="gpointer" c:type="gpointer"/>
3400           </parameter>
3401         </parameters>
3402       </function>
3403       <function name="id_wait_async_full"
3404                 c:identifier="gst_clock_id_wait_async_full"
3405                 version="0.10.30">
3406         <doc xml:whitespace="preserve">Register a callback on the given #GstClockID @id with the given
3407 function and user_data. When passing a #GstClockID with an invalid
3408 time to this function, the callback will be called immediately
3409 with  a time set to GST_CLOCK_TIME_NONE. The callback will
3410 be called when the time of @id has been reached.
3411 The callback @func can be invoked from any thread, either provided by the
3412 core or from a streaming thread. The application should be prepared for this.
3413 MT safe.</doc>
3414         <return-value transfer-ownership="none">
3415           <doc xml:whitespace="preserve">the result of the non blocking wait.</doc>
3416           <type name="ClockReturn" c:type="GstClockReturn"/>
3417         </return-value>
3418         <parameters>
3419           <parameter name="id" transfer-ownership="none">
3420             <doc xml:whitespace="preserve">a #GstClockID to wait on</doc>
3421             <type name="ClockID" c:type="GstClockID"/>
3422           </parameter>
3423           <parameter name="func"
3424                      transfer-ownership="none"
3425                      scope="notified"
3426                      closure="2"
3427                      destroy="3">
3428             <doc xml:whitespace="preserve">The callback function</doc>
3429             <type name="ClockCallback" c:type="GstClockCallback"/>
3430           </parameter>
3431           <parameter name="user_data" transfer-ownership="none">
3432             <doc xml:whitespace="preserve">User data passed in the callback</doc>
3433             <type name="gpointer" c:type="gpointer"/>
3434           </parameter>
3435           <parameter name="destroy_data"
3436                      transfer-ownership="none"
3437                      scope="async">
3438             <doc xml:whitespace="preserve">#GDestroyNotify for user_data</doc>
3439             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
3440           </parameter>
3441         </parameters>
3442       </function>
3443       <virtual-method name="change_resolution">
3444         <return-value transfer-ownership="none">
3445           <type name="ClockTime" c:type="GstClockTime"/>
3446         </return-value>
3447         <parameters>
3448           <parameter name="old_resolution" transfer-ownership="none">
3449             <type name="ClockTime" c:type="GstClockTime"/>
3450           </parameter>
3451           <parameter name="new_resolution" transfer-ownership="none">
3452             <type name="ClockTime" c:type="GstClockTime"/>
3453           </parameter>
3454         </parameters>
3455       </virtual-method>
3456       <virtual-method name="get_internal_time" invoker="get_internal_time">
3457         <doc xml:whitespace="preserve">Gets the current internal time of the given clock. The time is returned
3458 unadjusted for the offset and the rate.
3459 given invalid input.
3460 MT safe.</doc>
3461         <return-value transfer-ownership="none">
3462           <doc xml:whitespace="preserve">the internal time of the clock. Or GST_CLOCK_TIME_NONE when</doc>
3463           <type name="ClockTime" c:type="GstClockTime"/>
3464         </return-value>
3465       </virtual-method>
3466       <virtual-method name="get_resolution" invoker="get_resolution">
3467         <doc xml:whitespace="preserve">Get the accuracy of the clock. The accuracy of the clock is the granularity
3468 of the values returned by gst_clock_get_time().
3469 MT safe.</doc>
3470         <return-value transfer-ownership="none">
3471           <doc xml:whitespace="preserve">the resolution of the clock in units of #GstClockTime.</doc>
3472           <type name="ClockTime" c:type="GstClockTime"/>
3473         </return-value>
3474       </virtual-method>
3475       <virtual-method name="unschedule">
3476         <return-value transfer-ownership="none">
3477           <type name="none" c:type="void"/>
3478         </return-value>
3479         <parameters>
3480           <parameter name="entry" transfer-ownership="none">
3481             <type name="ClockEntry" c:type="GstClockEntry*"/>
3482           </parameter>
3483         </parameters>
3484       </virtual-method>
3485       <virtual-method name="wait">
3486         <return-value transfer-ownership="none">
3487           <type name="ClockReturn" c:type="GstClockReturn"/>
3488         </return-value>
3489         <parameters>
3490           <parameter name="entry" transfer-ownership="none">
3491             <type name="ClockEntry" c:type="GstClockEntry*"/>
3492           </parameter>
3493         </parameters>
3494       </virtual-method>
3495       <virtual-method name="wait_async">
3496         <return-value transfer-ownership="none">
3497           <type name="ClockReturn" c:type="GstClockReturn"/>
3498         </return-value>
3499         <parameters>
3500           <parameter name="entry" transfer-ownership="none">
3501             <type name="ClockEntry" c:type="GstClockEntry*"/>
3502           </parameter>
3503         </parameters>
3504       </virtual-method>
3505       <virtual-method name="wait_jitter">
3506         <return-value transfer-ownership="none">
3507           <type name="ClockReturn" c:type="GstClockReturn"/>
3508         </return-value>
3509         <parameters>
3510           <parameter name="entry" transfer-ownership="none">
3511             <type name="ClockEntry" c:type="GstClockEntry*"/>
3512           </parameter>
3513           <parameter name="jitter" transfer-ownership="none">
3514             <type name="ClockTimeDiff" c:type="GstClockTimeDiff*"/>
3515           </parameter>
3516         </parameters>
3517       </virtual-method>
3518       <method name="add_observation" c:identifier="gst_clock_add_observation">
3519         <doc xml:whitespace="preserve">The time @master of the master clock and the time @slave of the slave
3520 clock are added to the list of observations. If enough observations
3521 are available, a linear regression algorithm is run on the
3522 observations and @clock is recalibrated.
3523 If this functions returns %TRUE, @r_squared will contain the 
3524 correlation coefficient of the interpolation. A value of 1.0
3525 means a perfect regression was performed. This value can
3526 be used to control the sampling frequency of the master and slave
3527 clocks.
3528 regression algorithm.
3529 MT safe.</doc>
3530         <return-value transfer-ownership="none">
3531           <doc xml:whitespace="preserve">%TRUE if enough observations were added to run the</doc>
3532           <type name="gboolean" c:type="gboolean"/>
3533         </return-value>
3534         <parameters>
3535           <parameter name="slave" transfer-ownership="none">
3536             <doc xml:whitespace="preserve">a time on the slave</doc>
3537             <type name="ClockTime" c:type="GstClockTime"/>
3538           </parameter>
3539           <parameter name="master" transfer-ownership="none">
3540             <doc xml:whitespace="preserve">a time on the master</doc>
3541             <type name="ClockTime" c:type="GstClockTime"/>
3542           </parameter>
3543           <parameter name="r_squared"
3544                      direction="out"
3545                      caller-allocates="0"
3546                      transfer-ownership="full">
3547             <doc xml:whitespace="preserve">a pointer to hold the result</doc>
3548             <type name="gdouble" c:type="gdouble*"/>
3549           </parameter>
3550         </parameters>
3551       </method>
3552       <method name="adjust_unlocked" c:identifier="gst_clock_adjust_unlocked">
3553         <doc xml:whitespace="preserve">Converts the given @internal clock time to the external time, adjusting for the
3554 rate and reference time set with gst_clock_set_calibration() and making sure
3555 that the returned time is increasing. This function should be called with the
3556 clock's OBJECT_LOCK held and is mainly used by clock subclasses.
3557 This function is the reverse of gst_clock_unadjust_unlocked().</doc>
3558         <return-value transfer-ownership="none">
3559           <doc xml:whitespace="preserve">the converted time of the clock.</doc>
3560           <type name="ClockTime" c:type="GstClockTime"/>
3561         </return-value>
3562         <parameters>
3563           <parameter name="internal" transfer-ownership="none">
3564             <doc xml:whitespace="preserve">a clock time</doc>
3565             <type name="ClockTime" c:type="GstClockTime"/>
3566           </parameter>
3567         </parameters>
3568       </method>
3569       <method name="get_calibration" c:identifier="gst_clock_get_calibration">
3570         <doc xml:whitespace="preserve">Gets the internal rate and reference time of @clock. See
3571 gst_clock_set_calibration() for more information.
3572 caller is not interested in the values.
3573 MT safe.</doc>
3574         <return-value transfer-ownership="none">
3575           <type name="none" c:type="void"/>
3576         </return-value>
3577         <parameters>
3578           <parameter name="internal"
3579                      direction="out"
3580                      caller-allocates="0"
3581                      transfer-ownership="full"
3582                      allow-none="1">
3583             <doc xml:whitespace="preserve">a location to store the internal time</doc>
3584             <type name="ClockTime" c:type="GstClockTime*"/>
3585           </parameter>
3586           <parameter name="external"
3587                      direction="out"
3588                      caller-allocates="0"
3589                      transfer-ownership="full"
3590                      allow-none="1">
3591             <doc xml:whitespace="preserve">a location to store the external time</doc>
3592             <type name="ClockTime" c:type="GstClockTime*"/>
3593           </parameter>
3594           <parameter name="rate_num"
3595                      direction="out"
3596                      caller-allocates="0"
3597                      transfer-ownership="full"
3598                      allow-none="1">
3599             <doc xml:whitespace="preserve">a location to store the rate numerator</doc>
3600             <type name="ClockTime" c:type="GstClockTime*"/>
3601           </parameter>
3602           <parameter name="rate_denom"
3603                      direction="out"
3604                      caller-allocates="0"
3605                      transfer-ownership="full"
3606                      allow-none="1">
3607             <doc xml:whitespace="preserve">a location to store the rate denominator</doc>
3608             <type name="ClockTime" c:type="GstClockTime*"/>
3609           </parameter>
3610         </parameters>
3611       </method>
3612       <method name="get_internal_time"
3613               c:identifier="gst_clock_get_internal_time">
3614         <doc xml:whitespace="preserve">Gets the current internal time of the given clock. The time is returned
3615 unadjusted for the offset and the rate.
3616 given invalid input.
3617 MT safe.</doc>
3618         <return-value transfer-ownership="none">
3619           <doc xml:whitespace="preserve">the internal time of the clock. Or GST_CLOCK_TIME_NONE when</doc>
3620           <type name="ClockTime" c:type="GstClockTime"/>
3621         </return-value>
3622       </method>
3623       <method name="get_master" c:identifier="gst_clock_get_master">
3624         <doc xml:whitespace="preserve">Get the master clock that @clock is slaved to or %NULL when the clock is
3625 not slaved to any master clock.
3626 not slaved to a master clock. Unref after usage.
3627 MT safe.</doc>
3628         <return-value transfer-ownership="full">
3629           <doc xml:whitespace="preserve">a master #GstClock or %NULL when this clock is</doc>
3630           <type name="Clock" c:type="GstClock*"/>
3631         </return-value>
3632       </method>
3633       <method name="get_resolution" c:identifier="gst_clock_get_resolution">
3634         <doc xml:whitespace="preserve">Get the accuracy of the clock. The accuracy of the clock is the granularity
3635 of the values returned by gst_clock_get_time().
3636 MT safe.</doc>
3637         <return-value transfer-ownership="none">
3638           <doc xml:whitespace="preserve">the resolution of the clock in units of #GstClockTime.</doc>
3639           <type name="ClockTime" c:type="GstClockTime"/>
3640         </return-value>
3641       </method>
3642       <method name="get_time" c:identifier="gst_clock_get_time">
3643         <doc xml:whitespace="preserve">Gets the current time of the given clock. The time is always
3644 monotonically increasing and adjusted according to the current
3645 offset and rate.
3646 given invalid input.
3647 MT safe.</doc>
3648         <return-value transfer-ownership="none">
3649           <doc xml:whitespace="preserve">the time of the clock. Or GST_CLOCK_TIME_NONE when</doc>
3650           <type name="ClockTime" c:type="GstClockTime"/>
3651         </return-value>
3652       </method>
3653       <method name="new_periodic_id" c:identifier="gst_clock_new_periodic_id">
3654         <doc xml:whitespace="preserve">Get an ID from @clock to trigger a periodic notification.
3655 The periodic notifications will start at time @start_time and
3656 will then be fired with the given @interval. @id should be unreffed
3657 after usage.
3658 time notification.
3659 MT safe.</doc>
3660         <return-value transfer-ownership="full">
3661           <doc xml:whitespace="preserve">a #GstClockID that can be used to request the</doc>
3662           <type name="ClockID" c:type="GstClockID"/>
3663         </return-value>
3664         <parameters>
3665           <parameter name="start_time" transfer-ownership="none">
3666             <doc xml:whitespace="preserve">the requested start time</doc>
3667             <type name="ClockTime" c:type="GstClockTime"/>
3668           </parameter>
3669           <parameter name="interval" transfer-ownership="none">
3670             <doc xml:whitespace="preserve">the requested interval</doc>
3671             <type name="ClockTime" c:type="GstClockTime"/>
3672           </parameter>
3673         </parameters>
3674       </method>
3675       <method name="new_single_shot_id"
3676               c:identifier="gst_clock_new_single_shot_id">
3677         <doc xml:whitespace="preserve">Get a #GstClockID from @clock to trigger a single shot
3678 notification at the requested time. The single shot id should be
3679 unreffed after usage.
3680 time notification.
3681 MT safe.</doc>
3682         <return-value transfer-ownership="full">
3683           <doc xml:whitespace="preserve">a #GstClockID that can be used to request the</doc>
3684           <type name="ClockID" c:type="GstClockID"/>
3685         </return-value>
3686         <parameters>
3687           <parameter name="time" transfer-ownership="none">
3688             <doc xml:whitespace="preserve">the requested time</doc>
3689             <type name="ClockTime" c:type="GstClockTime"/>
3690           </parameter>
3691         </parameters>
3692       </method>
3693       <method name="periodic_id_reinit"
3694               c:identifier="gst_clock_periodic_id_reinit"
3695               version="0.10.33">
3696         <doc xml:whitespace="preserve">Reinitializes the provided periodic @id to the provided start time and
3697 interval. Does not modify the reference count.</doc>
3698         <return-value transfer-ownership="none">
3699           <doc xml:whitespace="preserve">%TRUE if the GstClockID could be reinitialized to the provided</doc>
3700           <type name="gboolean" c:type="gboolean"/>
3701         </return-value>
3702         <parameters>
3703           <parameter name="id" transfer-ownership="none">
3704             <doc xml:whitespace="preserve">a #GstClockID</doc>
3705             <type name="ClockID" c:type="GstClockID"/>
3706           </parameter>
3707           <parameter name="start_time" transfer-ownership="none">
3708             <doc xml:whitespace="preserve">the requested start time</doc>
3709             <type name="ClockTime" c:type="GstClockTime"/>
3710           </parameter>
3711           <parameter name="interval" transfer-ownership="none">
3712             <doc xml:whitespace="preserve">the requested interval</doc>
3713             <type name="ClockTime" c:type="GstClockTime"/>
3714           </parameter>
3715         </parameters>
3716       </method>
3717       <method name="set_calibration" c:identifier="gst_clock_set_calibration">
3718         <doc xml:whitespace="preserve">Adjusts the rate and time of @clock. A rate of 1/1 is the normal speed of
3719 the clock. Values bigger than 1/1 make the clock go faster.
3720 gst_clock_get_time() should have been @external at internal time @internal.
3721 This internal time should not be in the future; that is, it should be less
3722 than the value of gst_clock_get_internal_time() when this function is called.
3723 Subsequent calls to gst_clock_get_time() will return clock times computed as
3724 follows:
3725 &lt;programlisting&gt;
3726 time = (internal_time - internal) * rate_num / rate_denom + external
3727 &lt;/programlisting&gt;
3728 This formula is implemented in gst_clock_adjust_unlocked(). Of course, it
3729 tries to do the integer arithmetic as precisely as possible.
3730 Note that gst_clock_get_time() always returns increasing values so when you
3731 move the clock backwards, gst_clock_get_time() will report the previous value
3732 until the clock catches up.
3733 MT safe.</doc>
3734         <return-value transfer-ownership="none">
3735           <type name="none" c:type="void"/>
3736         </return-value>
3737         <parameters>
3738           <parameter name="internal" transfer-ownership="none">
3739             <doc xml:whitespace="preserve">a reference internal time</doc>
3740             <type name="ClockTime" c:type="GstClockTime"/>
3741           </parameter>
3742           <parameter name="external" transfer-ownership="none">
3743             <doc xml:whitespace="preserve">a reference external time</doc>
3744             <type name="ClockTime" c:type="GstClockTime"/>
3745           </parameter>
3746           <parameter name="rate_num" transfer-ownership="none">
3747             <doc xml:whitespace="preserve">the numerator of the rate of the clock relative to its internal time</doc>
3748             <type name="ClockTime" c:type="GstClockTime"/>
3749           </parameter>
3750           <parameter name="rate_denom" transfer-ownership="none">
3751             <doc xml:whitespace="preserve">the denominator of the rate of the clock</doc>
3752             <type name="ClockTime" c:type="GstClockTime"/>
3753           </parameter>
3754         </parameters>
3755       </method>
3756       <method name="set_master" c:identifier="gst_clock_set_master">
3757         <doc xml:whitespace="preserve">Set @master as the master clock for @clock. @clock will be automatically
3758 calibrated so that gst_clock_get_time() reports the same time as the
3759 master clock.  
3760 A clock provider that slaves its clock to a master can get the current
3761 calibration values with gst_clock_get_calibration().
3762 however keep reporting its time adjusted with the last configured rate 
3763 and time offsets.
3764 Trying to set a master on a clock without the 
3765 #GST_CLOCK_FLAG_CAN_SET_MASTER flag will make this function return %FALSE.
3766 MT safe.</doc>
3767         <return-value transfer-ownership="none">
3768           <doc xml:whitespace="preserve">%TRUE if the clock is capable of being slaved to a master clock.</doc>
3769           <type name="gboolean" c:type="gboolean"/>
3770         </return-value>
3771         <parameters>
3772           <parameter name="master" transfer-ownership="none" allow-none="1">
3773             <doc xml:whitespace="preserve">a master #GstClock</doc>
3774             <type name="Clock" c:type="GstClock*"/>
3775           </parameter>
3776         </parameters>
3777       </method>
3778       <method name="set_resolution" c:identifier="gst_clock_set_resolution">
3779         <doc xml:whitespace="preserve">Set the accuracy of the clock. Some clocks have the possibility to operate
3780 with different accuracy at the expense of more resource usage. There is
3781 normally no need to change the default resolution of a clock. The resolution
3782 of a clock can only be changed if the clock has the
3783 #GST_CLOCK_FLAG_CAN_SET_RESOLUTION flag set.</doc>
3784         <return-value transfer-ownership="none">
3785           <doc xml:whitespace="preserve">the new resolution of the clock.</doc>
3786           <type name="ClockTime" c:type="GstClockTime"/>
3787         </return-value>
3788         <parameters>
3789           <parameter name="resolution" transfer-ownership="none">
3790             <doc xml:whitespace="preserve">The resolution to set</doc>
3791             <type name="ClockTime" c:type="GstClockTime"/>
3792           </parameter>
3793         </parameters>
3794       </method>
3795       <method name="single_shot_id_reinit"
3796               c:identifier="gst_clock_single_shot_id_reinit"
3797               version="0.10.32">
3798         <doc xml:whitespace="preserve">Reinitializes the provided single shot @id to the provided time. Does not
3799 modify the reference count.</doc>
3800         <return-value transfer-ownership="none">
3801           <doc xml:whitespace="preserve">%TRUE if the GstClockID could be reinitialized to the provided</doc>
3802           <type name="gboolean" c:type="gboolean"/>
3803         </return-value>
3804         <parameters>
3805           <parameter name="id" transfer-ownership="none">
3806             <doc xml:whitespace="preserve">a #GstClockID</doc>
3807             <type name="ClockID" c:type="GstClockID"/>
3808           </parameter>
3809           <parameter name="time" transfer-ownership="none">
3810             <doc xml:whitespace="preserve">The requested time.</doc>
3811             <type name="ClockTime" c:type="GstClockTime"/>
3812           </parameter>
3813         </parameters>
3814       </method>
3815       <method name="unadjust_unlocked"
3816               c:identifier="gst_clock_unadjust_unlocked"
3817               version="0.10.13">
3818         <doc xml:whitespace="preserve">Converts the given @external clock time to the internal time of @clock,
3819 using the rate and reference time set with gst_clock_set_calibration().
3820 This function should be called with the clock's OBJECT_LOCK held and
3821 is mainly used by clock subclasses.
3822 This function is the reverse of gst_clock_adjust_unlocked().</doc>
3823         <return-value transfer-ownership="none">
3824           <doc xml:whitespace="preserve">the internal time of the clock corresponding to @external.</doc>
3825           <type name="ClockTime" c:type="GstClockTime"/>
3826         </return-value>
3827         <parameters>
3828           <parameter name="external" transfer-ownership="none">
3829             <doc xml:whitespace="preserve">an external clock time</doc>
3830             <type name="ClockTime" c:type="GstClockTime"/>
3831           </parameter>
3832         </parameters>
3833       </method>
3834       <property name="stats" writable="1" transfer-ownership="none">
3835         <type name="gboolean"/>
3836       </property>
3837       <property name="timeout" writable="1" transfer-ownership="none">
3838         <type name="guint64"/>
3839       </property>
3840       <property name="window-size" writable="1" transfer-ownership="none">
3841         <type name="gint"/>
3842       </property>
3843       <property name="window-threshold" writable="1" transfer-ownership="none">
3844         <type name="gint"/>
3845       </property>
3846       <field name="object">
3847         <type name="Object" c:type="GstObject"/>
3848       </field>
3849       <field name="slave_lock">
3850         <type name="GLib.Mutex" c:type="GMutex*"/>
3851       </field>
3852       <field name="internal_calibration">
3853         <type name="ClockTime" c:type="GstClockTime"/>
3854       </field>
3855       <field name="external_calibration">
3856         <type name="ClockTime" c:type="GstClockTime"/>
3857       </field>
3858       <field name="rate_numerator">
3859         <type name="ClockTime" c:type="GstClockTime"/>
3860       </field>
3861       <field name="rate_denominator">
3862         <type name="ClockTime" c:type="GstClockTime"/>
3863       </field>
3864       <field name="last_time">
3865         <type name="ClockTime" c:type="GstClockTime"/>
3866       </field>
3867       <field name="entries">
3868         <type name="GLib.List" c:type="GList*">
3869           <type name="gpointer" c:type="gpointer"/>
3870         </type>
3871       </field>
3872       <field name="entries_changed">
3873         <type name="GLib.Cond" c:type="GCond*"/>
3874       </field>
3875       <field name="resolution" readable="0" private="1">
3876         <type name="ClockTime" c:type="GstClockTime"/>
3877       </field>
3878       <field name="stats" readable="0" private="1">
3879         <type name="gboolean" c:type="gboolean"/>
3880       </field>
3881       <field name="master" readable="0" private="1">
3882         <type name="Clock" c:type="GstClock*"/>
3883       </field>
3884       <field name="filling" readable="0" private="1">
3885         <type name="gboolean" c:type="gboolean"/>
3886       </field>
3887       <field name="window_size" readable="0" private="1">
3888         <type name="gint" c:type="gint"/>
3889       </field>
3890       <field name="window_threshold" readable="0" private="1">
3891         <type name="gint" c:type="gint"/>
3892       </field>
3893       <field name="time_index" readable="0" private="1">
3894         <type name="gint" c:type="gint"/>
3895       </field>
3896       <field name="timeout" readable="0" private="1">
3897         <type name="ClockTime" c:type="GstClockTime"/>
3898       </field>
3899       <field name="times" readable="0" private="1">
3900         <type name="ClockTime" c:type="GstClockTime*"/>
3901       </field>
3902       <field name="clockid" readable="0" private="1">
3903         <type name="ClockID" c:type="GstClockID"/>
3904       </field>
3905       <union name="ABI" c:type="ABI">
3906         <field name="priv" writable="1">
3907           <type name="ClockPrivate" c:type="GstClockPrivate*"/>
3908         </field>
3909         <field name="_gst_reserved" writable="1">
3910           <array zero-terminated="0" c:type="GstClockTime" fixed-size="4">
3911             <type name="ClockTime" c:type="GstClockTime"/>
3912           </array>
3913         </field>
3914       </union>
3915     </class>
3916     <callback name="ClockCallback" c:type="GstClockCallback">
3917       <doc xml:whitespace="preserve">The function prototype of the callback.</doc>
3918       <return-value transfer-ownership="none">
3919         <doc xml:whitespace="preserve">%TRUE or %FALSE (currently unused)</doc>
3920         <type name="gboolean" c:type="gboolean"/>
3921       </return-value>
3922       <parameters>
3923         <parameter name="clock" transfer-ownership="none">
3924           <doc xml:whitespace="preserve">The clock that triggered the callback</doc>
3925           <type name="Clock" c:type="GstClock*"/>
3926         </parameter>
3927         <parameter name="time" transfer-ownership="none">
3928           <doc xml:whitespace="preserve">The time it was triggered</doc>
3929           <type name="ClockTime" c:type="GstClockTime"/>
3930         </parameter>
3931         <parameter name="id" transfer-ownership="none">
3932           <doc xml:whitespace="preserve">The #GstClockID that expired</doc>
3933           <type name="ClockID" c:type="GstClockID"/>
3934         </parameter>
3935         <parameter name="user_data" transfer-ownership="none" closure="3">
3936           <doc xml:whitespace="preserve">user data passed in the gst_clock_id_wait_async() function</doc>
3937           <type name="gpointer" c:type="gpointer"/>
3938         </parameter>
3939       </parameters>
3940     </callback>
3941     <record name="ClockClass"
3942             c:type="GstClockClass"
3943             glib:is-gtype-struct-for="Clock">
3944       <doc xml:whitespace="preserve">GStreamer clock class. Override the vmethods to implement the clock
3945 functionality.</doc>
3946       <field name="parent_class">
3947         <type name="ObjectClass" c:type="GstObjectClass"/>
3948       </field>
3949       <field name="change_resolution">
3950         <callback name="change_resolution">
3951           <return-value transfer-ownership="none">
3952             <type name="ClockTime" c:type="GstClockTime"/>
3953           </return-value>
3954           <parameters>
3955             <parameter name="clock" transfer-ownership="none">
3956               <type name="Clock" c:type="GstClock*"/>
3957             </parameter>
3958             <parameter name="old_resolution" transfer-ownership="none">
3959               <type name="ClockTime" c:type="GstClockTime"/>
3960             </parameter>
3961             <parameter name="new_resolution" transfer-ownership="none">
3962               <type name="ClockTime" c:type="GstClockTime"/>
3963             </parameter>
3964           </parameters>
3965         </callback>
3966       </field>
3967       <field name="get_resolution">
3968         <callback name="get_resolution">
3969           <return-value transfer-ownership="none">
3970             <doc xml:whitespace="preserve">the resolution of the clock in units of #GstClockTime.</doc>
3971             <type name="ClockTime" c:type="GstClockTime"/>
3972           </return-value>
3973           <parameters>
3974             <parameter name="clock" transfer-ownership="none">
3975               <type name="Clock" c:type="GstClock*"/>
3976             </parameter>
3977           </parameters>
3978         </callback>
3979       </field>
3980       <field name="get_internal_time">
3981         <callback name="get_internal_time">
3982           <return-value transfer-ownership="none">
3983             <doc xml:whitespace="preserve">the internal time of the clock. Or GST_CLOCK_TIME_NONE when</doc>
3984             <type name="ClockTime" c:type="GstClockTime"/>
3985           </return-value>
3986           <parameters>
3987             <parameter name="clock" transfer-ownership="none">
3988               <type name="Clock" c:type="GstClock*"/>
3989             </parameter>
3990           </parameters>
3991         </callback>
3992       </field>
3993       <field name="wait">
3994         <callback name="wait">
3995           <return-value transfer-ownership="none">
3996             <type name="ClockReturn" c:type="GstClockReturn"/>
3997           </return-value>
3998           <parameters>
3999             <parameter name="clock" transfer-ownership="none">
4000               <type name="Clock" c:type="GstClock*"/>
4001             </parameter>
4002             <parameter name="entry" transfer-ownership="none">
4003               <type name="ClockEntry" c:type="GstClockEntry*"/>
4004             </parameter>
4005           </parameters>
4006         </callback>
4007       </field>
4008       <field name="wait_async">
4009         <callback name="wait_async">
4010           <return-value transfer-ownership="none">
4011             <type name="ClockReturn" c:type="GstClockReturn"/>
4012           </return-value>
4013           <parameters>
4014             <parameter name="clock" transfer-ownership="none">
4015               <type name="Clock" c:type="GstClock*"/>
4016             </parameter>
4017             <parameter name="entry" transfer-ownership="none">
4018               <type name="ClockEntry" c:type="GstClockEntry*"/>
4019             </parameter>
4020           </parameters>
4021         </callback>
4022       </field>
4023       <field name="unschedule">
4024         <callback name="unschedule">
4025           <return-value transfer-ownership="none">
4026             <type name="none" c:type="void"/>
4027           </return-value>
4028           <parameters>
4029             <parameter name="clock" transfer-ownership="none">
4030               <type name="Clock" c:type="GstClock*"/>
4031             </parameter>
4032             <parameter name="entry" transfer-ownership="none">
4033               <type name="ClockEntry" c:type="GstClockEntry*"/>
4034             </parameter>
4035           </parameters>
4036         </callback>
4037       </field>
4038       <field name="wait_jitter">
4039         <callback name="wait_jitter">
4040           <return-value transfer-ownership="none">
4041             <type name="ClockReturn" c:type="GstClockReturn"/>
4042           </return-value>
4043           <parameters>
4044             <parameter name="clock" transfer-ownership="none">
4045               <type name="Clock" c:type="GstClock*"/>
4046             </parameter>
4047             <parameter name="entry" transfer-ownership="none">
4048               <type name="ClockEntry" c:type="GstClockEntry*"/>
4049             </parameter>
4050             <parameter name="jitter" transfer-ownership="none">
4051               <type name="ClockTimeDiff" c:type="GstClockTimeDiff*"/>
4052             </parameter>
4053           </parameters>
4054         </callback>
4055       </field>
4056       <field name="_gst_reserved" readable="0" private="1">
4057         <array zero-terminated="0" c:type="gpointer" fixed-size="3">
4058           <type name="gpointer" c:type="gpointer"/>
4059         </array>
4060       </field>
4061     </record>
4062     <record name="ClockEntry" c:type="GstClockEntry">
4063       <doc xml:whitespace="preserve">All pending timeouts or periodic notifies are converted into
4064 an entry.
4065 Note that GstClockEntry should be treated as an opaque structure. It must
4066 not be extended or allocated using a custom allocator.</doc>
4067       <field name="refcount" writable="1">
4068         <type name="gint" c:type="gint"/>
4069       </field>
4070       <field name="clock" writable="1">
4071         <type name="Clock" c:type="GstClock*"/>
4072       </field>
4073       <field name="type" writable="1">
4074         <type name="ClockEntryType" c:type="GstClockEntryType"/>
4075       </field>
4076       <field name="time" writable="1">
4077         <type name="ClockTime" c:type="GstClockTime"/>
4078       </field>
4079       <field name="interval" writable="1">
4080         <type name="ClockTime" c:type="GstClockTime"/>
4081       </field>
4082       <field name="status" writable="1">
4083         <type name="ClockReturn" c:type="GstClockReturn"/>
4084       </field>
4085       <field name="func" writable="1">
4086         <type name="ClockCallback" c:type="GstClockCallback"/>
4087       </field>
4088       <field name="user_data" writable="1">
4089         <type name="gpointer" c:type="gpointer"/>
4090       </field>
4091       <field name="destroy_data" writable="1">
4092         <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
4093       </field>
4094       <field name="unscheduled" writable="1">
4095         <type name="gboolean" c:type="gboolean"/>
4096       </field>
4097       <field name="woken_up" writable="1">
4098         <type name="gboolean" c:type="gboolean"/>
4099       </field>
4100     </record>
4101     <enumeration name="ClockEntryType" c:type="GstClockEntryType">
4102       <doc xml:whitespace="preserve">The type of the clock entry</doc>
4103       <member name="single" value="0" c:identifier="GST_CLOCK_ENTRY_SINGLE"/>
4104       <member name="periodic"
4105               value="1"
4106               c:identifier="GST_CLOCK_ENTRY_PERIODIC"/>
4107     </enumeration>
4108     <bitfield name="ClockFlags" c:type="GstClockFlags">
4109       <doc xml:whitespace="preserve">The capabilities of this clock</doc>
4110       <member name="can_do_single_sync"
4111               value="16"
4112               c:identifier="GST_CLOCK_FLAG_CAN_DO_SINGLE_SYNC"/>
4113       <member name="can_do_single_async"
4114               value="32"
4115               c:identifier="GST_CLOCK_FLAG_CAN_DO_SINGLE_ASYNC"/>
4116       <member name="can_do_periodic_sync"
4117               value="64"
4118               c:identifier="GST_CLOCK_FLAG_CAN_DO_PERIODIC_SYNC"/>
4119       <member name="can_do_periodic_async"
4120               value="128"
4121               c:identifier="GST_CLOCK_FLAG_CAN_DO_PERIODIC_ASYNC"/>
4122       <member name="can_set_resolution"
4123               value="256"
4124               c:identifier="GST_CLOCK_FLAG_CAN_SET_RESOLUTION"/>
4125       <member name="can_set_master"
4126               value="512"
4127               c:identifier="GST_CLOCK_FLAG_CAN_SET_MASTER"/>
4128       <member name="last" value="4096" c:identifier="GST_CLOCK_FLAG_LAST"/>
4129     </bitfield>
4130     <record name="ClockPrivate" c:type="GstClockPrivate" disguised="1">
4131     </record>
4132     <enumeration name="ClockReturn" c:type="GstClockReturn">
4133       <doc xml:whitespace="preserve">The return value of a clock operation.</doc>
4134       <member name="ok" value="0" c:identifier="GST_CLOCK_OK"/>
4135       <member name="early" value="1" c:identifier="GST_CLOCK_EARLY"/>
4136       <member name="unscheduled"
4137               value="2"
4138               c:identifier="GST_CLOCK_UNSCHEDULED"/>
4139       <member name="busy" value="3" c:identifier="GST_CLOCK_BUSY"/>
4140       <member name="badtime" value="4" c:identifier="GST_CLOCK_BADTIME"/>
4141       <member name="error" value="5" c:identifier="GST_CLOCK_ERROR"/>
4142       <member name="unsupported"
4143               value="6"
4144               c:identifier="GST_CLOCK_UNSUPPORTED"/>
4145       <member name="done" value="7" c:identifier="GST_CLOCK_DONE"/>
4146     </enumeration>
4147     <enumeration name="ClockType" c:type="GstClockType">
4148       <doc xml:whitespace="preserve">The different kind of clocks.</doc>
4149       <member name="realtime"
4150               value="0"
4151               c:identifier="GST_CLOCK_TYPE_REALTIME"/>
4152       <member name="monotonic"
4153               value="1"
4154               c:identifier="GST_CLOCK_TYPE_MONOTONIC"/>
4155     </enumeration>
4156     <callback name="CopyFunction"
4157               c:type="GstCopyFunction"
4158               version="0.10.25"
4159               introspectable="0">
4160       <doc xml:whitespace="preserve">A function to create a copy of some object or
4161 increase its reference count.</doc>
4162       <return-value>
4163         <doc xml:whitespace="preserve">a copy of the object or the same object with increased reference count</doc>
4164         <type name="gpointer" c:type="gpointer"/>
4165       </return-value>
4166       <parameters>
4167         <parameter name="object" transfer-ownership="none">
4168           <doc xml:whitespace="preserve">The object to copy</doc>
4169           <type name="gpointer" c:type="gpointer"/>
4170         </parameter>
4171       </parameters>
4172     </callback>
4173     <enumeration name="CoreError"
4174                  c:type="GstCoreError"
4175                  glib:error-quark="gst_core_error_quark">
4176       <doc xml:whitespace="preserve">Core errors are errors inside the core GStreamer library.</doc>
4177       <member name="failed" value="1" c:identifier="GST_CORE_ERROR_FAILED"/>
4178       <member name="too_lazy"
4179               value="2"
4180               c:identifier="GST_CORE_ERROR_TOO_LAZY"/>
4181       <member name="not_implemented"
4182               value="3"
4183               c:identifier="GST_CORE_ERROR_NOT_IMPLEMENTED"/>
4184       <member name="state_change"
4185               value="4"
4186               c:identifier="GST_CORE_ERROR_STATE_CHANGE"/>
4187       <member name="pad" value="5" c:identifier="GST_CORE_ERROR_PAD"/>
4188       <member name="thread" value="6" c:identifier="GST_CORE_ERROR_THREAD"/>
4189       <member name="negotiation"
4190               value="7"
4191               c:identifier="GST_CORE_ERROR_NEGOTIATION"/>
4192       <member name="event" value="8" c:identifier="GST_CORE_ERROR_EVENT"/>
4193       <member name="seek" value="9" c:identifier="GST_CORE_ERROR_SEEK"/>
4194       <member name="caps" value="10" c:identifier="GST_CORE_ERROR_CAPS"/>
4195       <member name="tag" value="11" c:identifier="GST_CORE_ERROR_TAG"/>
4196       <member name="missing_plugin"
4197               value="12"
4198               c:identifier="GST_CORE_ERROR_MISSING_PLUGIN"/>
4199       <member name="clock" value="13" c:identifier="GST_CORE_ERROR_CLOCK"/>
4200       <member name="disabled"
4201               value="14"
4202               c:identifier="GST_CORE_ERROR_DISABLED"/>
4203       <member name="num_errors"
4204               value="15"
4205               c:identifier="GST_CORE_ERROR_NUM_ERRORS"/>
4206     </enumeration>
4207     <constant name="DEBUG_BG_MASK" value="240">
4208       <type name="gint" c:type="gint"/>
4209     </constant>
4210     <constant name="DEBUG_FG_MASK" value="15">
4211       <type name="gint" c:type="gint"/>
4212     </constant>
4213     <constant name="DEBUG_FORMAT_MASK" value="65280">
4214       <type name="gint" c:type="gint"/>
4215     </constant>
4216     <glib:boxed glib:name="Date"
4217                 c:symbol-prefix="date"
4218                 glib:type-name="GstDate"
4219                 glib:get-type="gst_date_get_type">
4220     </glib:boxed>
4221     <record name="DateTime"
4222             c:type="GstDateTime"
4223             glib:type-name="GstDateTime"
4224             glib:get-type="gst_date_time_get_type"
4225             c:symbol-prefix="date_time">
4226       <doc xml:whitespace="preserve">Struct to store date, time and timezone information altogether.
4227 #GstDateTime is refcounted and immutable.
4228 Date information is handled using the proleptic Gregorian calendar.
4229 Provides basic creation functions and accessor functions to its fields.</doc>
4230       <constructor name="new"
4231                    c:identifier="gst_date_time_new"
4232                    version="0.10.31">
4233         <doc xml:whitespace="preserve">Creates a new #GstDateTime using the date and times in the gregorian calendar
4234 in the supplied timezone.
4235 1 to 31, @hour from 0 to 23, @minutes and @seconds from 0 to 59.
4236 Note that @tzoffset is a float and was chosen so for being able to handle
4237 some fractional timezones, while it still keeps the readability of
4238 represeting it in hours for most timezones.</doc>
4239         <return-value transfer-ownership="full">
4240           <doc xml:whitespace="preserve">the newly created #GstDateTime</doc>
4241           <type name="DateTime" c:type="GstDateTime*"/>
4242         </return-value>
4243         <parameters>
4244           <parameter name="tzoffset" transfer-ownership="none">
4245             <doc xml:whitespace="preserve">Offset from UTC in hours.</doc>
4246             <type name="gfloat" c:type="gfloat"/>
4247           </parameter>
4248           <parameter name="year" transfer-ownership="none">
4249             <doc xml:whitespace="preserve">the gregorian year</doc>
4250             <type name="gint" c:type="gint"/>
4251           </parameter>
4252           <parameter name="month" transfer-ownership="none">
4253             <doc xml:whitespace="preserve">the gregorian month</doc>
4254             <type name="gint" c:type="gint"/>
4255           </parameter>
4256           <parameter name="day" transfer-ownership="none">
4257             <doc xml:whitespace="preserve">the day of the gregorian month</doc>
4258             <type name="gint" c:type="gint"/>
4259           </parameter>
4260           <parameter name="hour" transfer-ownership="none">
4261             <doc xml:whitespace="preserve">the hour of the day</doc>
4262             <type name="gint" c:type="gint"/>
4263           </parameter>
4264           <parameter name="minute" transfer-ownership="none">
4265             <doc xml:whitespace="preserve">the minute of the hour</doc>
4266             <type name="gint" c:type="gint"/>
4267           </parameter>
4268           <parameter name="seconds" transfer-ownership="none">
4269             <doc xml:whitespace="preserve">the second of the minute</doc>
4270             <type name="gdouble" c:type="gdouble"/>
4271           </parameter>
4272         </parameters>
4273       </constructor>
4274       <constructor name="new_from_unix_epoch_local_time"
4275                    c:identifier="gst_date_time_new_from_unix_epoch_local_time"
4276                    version="0.10.31">
4277         <doc xml:whitespace="preserve">Creates a new #GstDateTime using the time since Jan 1, 1970 specified by</doc>
4278         <return-value transfer-ownership="full">
4279           <doc xml:whitespace="preserve">the newly created #GstDateTime</doc>
4280           <type name="DateTime" c:type="GstDateTime*"/>
4281         </return-value>
4282         <parameters>
4283           <parameter name="secs" transfer-ownership="none">
4284             <doc xml:whitespace="preserve">seconds from the Unix epoch</doc>
4285             <type name="gint64" c:type="gint64"/>
4286           </parameter>
4287         </parameters>
4288       </constructor>
4289       <constructor name="new_from_unix_epoch_utc"
4290                    c:identifier="gst_date_time_new_from_unix_epoch_utc"
4291                    version="0.10.31">
4292         <doc xml:whitespace="preserve">Creates a new #GstDateTime using the time since Jan 1, 1970 specified by</doc>
4293         <return-value transfer-ownership="full">
4294           <doc xml:whitespace="preserve">the newly created #GstDateTime</doc>
4295           <type name="DateTime" c:type="GstDateTime*"/>
4296         </return-value>
4297         <parameters>
4298           <parameter name="secs" transfer-ownership="none">
4299             <doc xml:whitespace="preserve">seconds from the Unix epoch</doc>
4300             <type name="gint64" c:type="gint64"/>
4301           </parameter>
4302         </parameters>
4303       </constructor>
4304       <constructor name="new_local_time"
4305                    c:identifier="gst_date_time_new_local_time"
4306                    version="0.10.31">
4307         <doc xml:whitespace="preserve">Creates a new #GstDateTime using the date and times in the gregorian calendar
4308 in the local timezone.
4309 1 to 31, @hour from 0 to 23, @minutes and @seconds from 0 to 59.</doc>
4310         <return-value transfer-ownership="full">
4311           <doc xml:whitespace="preserve">the newly created #GstDateTime</doc>
4312           <type name="DateTime" c:type="GstDateTime*"/>
4313         </return-value>
4314         <parameters>
4315           <parameter name="year" transfer-ownership="none">
4316             <doc xml:whitespace="preserve">the gregorian year</doc>
4317             <type name="gint" c:type="gint"/>
4318           </parameter>
4319           <parameter name="month" transfer-ownership="none">
4320             <doc xml:whitespace="preserve">the gregorian month</doc>
4321             <type name="gint" c:type="gint"/>
4322           </parameter>
4323           <parameter name="day" transfer-ownership="none">
4324             <doc xml:whitespace="preserve">the day of the gregorian month</doc>
4325             <type name="gint" c:type="gint"/>
4326           </parameter>
4327           <parameter name="hour" transfer-ownership="none">
4328             <doc xml:whitespace="preserve">the hour of the day</doc>
4329             <type name="gint" c:type="gint"/>
4330           </parameter>
4331           <parameter name="minute" transfer-ownership="none">
4332             <doc xml:whitespace="preserve">the minute of the hour</doc>
4333             <type name="gint" c:type="gint"/>
4334           </parameter>
4335           <parameter name="seconds" transfer-ownership="none">
4336             <doc xml:whitespace="preserve">the second of the minute</doc>
4337             <type name="gdouble" c:type="gdouble"/>
4338           </parameter>
4339         </parameters>
4340       </constructor>
4341       <constructor name="new_now_local_time"
4342                    c:identifier="gst_date_time_new_now_local_time"
4343                    version="0.10.31">
4344         <doc xml:whitespace="preserve">Creates a new #GstDateTime representing the current date and time.
4345 be freed with gst_date_time_unref().</doc>
4346         <return-value transfer-ownership="full">
4347           <doc xml:whitespace="preserve">the newly created #GstDateTime which should</doc>
4348           <type name="DateTime" c:type="GstDateTime*"/>
4349         </return-value>
4350       </constructor>
4351       <constructor name="new_now_utc"
4352                    c:identifier="gst_date_time_new_now_utc"
4353                    version="0.10.31">
4354         <doc xml:whitespace="preserve">Creates a new #GstDateTime that represents the current instant at Universal
4355 coordinated time.
4356 be freed with gst_date_time_unref().</doc>
4357         <return-value transfer-ownership="full">
4358           <doc xml:whitespace="preserve">the newly created #GstDateTime which should</doc>
4359           <type name="DateTime" c:type="GstDateTime*"/>
4360         </return-value>
4361       </constructor>
4362       <method name="get_day"
4363               c:identifier="gst_date_time_get_day"
4364               version="0.10.31">
4365         <doc xml:whitespace="preserve">Returns the day of this #GstDateTime.</doc>
4366         <return-value transfer-ownership="none">
4367           <doc xml:whitespace="preserve">The day of this #GstDateTime</doc>
4368           <type name="gint" c:type="gint"/>
4369         </return-value>
4370       </method>
4371       <method name="get_hour"
4372               c:identifier="gst_date_time_get_hour"
4373               version="0.10.31">
4374         <doc xml:whitespace="preserve">Retrieves the hour of the day represented by @datetime in the gregorian
4375 calendar. The return is in the range of 0 to 23.</doc>
4376         <return-value transfer-ownership="none">
4377           <doc xml:whitespace="preserve">the hour of the day</doc>
4378           <type name="gint" c:type="gint"/>
4379         </return-value>
4380       </method>
4381       <method name="get_microsecond"
4382               c:identifier="gst_date_time_get_microsecond"
4383               version="0.10.31">
4384         <doc xml:whitespace="preserve">Retrieves the fractional part of the seconds in microseconds represented by</doc>
4385         <return-value transfer-ownership="none">
4386           <doc xml:whitespace="preserve">the microsecond of the second</doc>
4387           <type name="gint" c:type="gint"/>
4388         </return-value>
4389       </method>
4390       <method name="get_minute"
4391               c:identifier="gst_date_time_get_minute"
4392               version="0.10.31">
4393         <doc xml:whitespace="preserve">Retrieves the minute of the hour represented by @datetime in the gregorian
4394 calendar.</doc>
4395         <return-value transfer-ownership="none">
4396           <doc xml:whitespace="preserve">the minute of the hour</doc>
4397           <type name="gint" c:type="gint"/>
4398         </return-value>
4399       </method>
4400       <method name="get_month"
4401               c:identifier="gst_date_time_get_month"
4402               version="0.10.31">
4403         <doc xml:whitespace="preserve">Returns the month of this #GstDateTime. January is 1, February is 2, etc..</doc>
4404         <return-value transfer-ownership="none">
4405           <doc xml:whitespace="preserve">The month of this #GstDateTime</doc>
4406           <type name="gint" c:type="gint"/>
4407         </return-value>
4408       </method>
4409       <method name="get_second"
4410               c:identifier="gst_date_time_get_second"
4411               version="0.10.31">
4412         <doc xml:whitespace="preserve">Retrieves the second of the minute represented by @datetime in the gregorian
4413 calendar.</doc>
4414         <return-value transfer-ownership="none">
4415           <doc xml:whitespace="preserve">the second represented by @datetime</doc>
4416           <type name="gint" c:type="gint"/>
4417         </return-value>
4418       </method>
4419       <method name="get_time_zone_offset"
4420               c:identifier="gst_date_time_get_time_zone_offset"
4421               version="0.10.31">
4422         <doc xml:whitespace="preserve">Retrieves the offset from UTC in hours that the timezone specified
4423 by @datetime represents. Timezones ahead (to the east) of UTC have positive
4424 values, timezones before (to the west) of UTC have negative values.
4425 If @datetime represents UTC time, then the offset is zero.</doc>
4426         <return-value transfer-ownership="none">
4427           <doc xml:whitespace="preserve">the offset from UTC in hours</doc>
4428           <type name="gfloat" c:type="gfloat"/>
4429         </return-value>
4430       </method>
4431       <method name="get_year"
4432               c:identifier="gst_date_time_get_year"
4433               version="0.10.31">
4434         <doc xml:whitespace="preserve">Returns the year of this #GstDateTime</doc>
4435         <return-value transfer-ownership="none">
4436           <doc xml:whitespace="preserve">The year of this #GstDateTime</doc>
4437           <type name="gint" c:type="gint"/>
4438         </return-value>
4439       </method>
4440       <method name="ref" c:identifier="gst_date_time_ref" version="0.10.31">
4441         <doc xml:whitespace="preserve">Atomically increments the reference count of @datetime by one.</doc>
4442         <return-value transfer-ownership="full">
4443           <doc xml:whitespace="preserve">the reference @datetime</doc>
4444           <type name="DateTime" c:type="GstDateTime*"/>
4445         </return-value>
4446       </method>
4447       <method name="unref"
4448               c:identifier="gst_date_time_unref"
4449               version="0.10.31">
4450         <doc xml:whitespace="preserve">Atomically decrements the reference count of @datetime by one.  When the
4451 reference count reaches zero, the structure is freed.</doc>
4452         <return-value transfer-ownership="none">
4453           <type name="none" c:type="void"/>
4454         </return-value>
4455       </method>
4456     </record>
4457     <record name="DebugCategory" c:type="GstDebugCategory">
4458       <doc xml:whitespace="preserve">This is the struct that describes the categories. Once initialized with
4459 #GST_DEBUG_CATEGORY_INIT, its values can't be changed anymore.</doc>
4460       <field name="threshold" readable="0" private="1">
4461         <type name="gint" c:type="gint"/>
4462       </field>
4463       <field name="color" readable="0" private="1">
4464         <type name="guint" c:type="guint"/>
4465       </field>
4466       <field name="name" readable="0" private="1">
4467         <type name="utf8" c:type="gchar*"/>
4468       </field>
4469       <field name="description" readable="0" private="1">
4470         <type name="utf8" c:type="gchar*"/>
4471       </field>
4472       <method name="free" c:identifier="gst_debug_category_free">
4473         <doc xml:whitespace="preserve">Removes and frees the category and all associated resources.</doc>
4474         <return-value transfer-ownership="none">
4475           <type name="none" c:type="void"/>
4476         </return-value>
4477       </method>
4478       <method name="get_color" c:identifier="gst_debug_category_get_color">
4479         <doc xml:whitespace="preserve">Returns the color of a debug category used when printing output in this
4480 category.</doc>
4481         <return-value transfer-ownership="none">
4482           <doc xml:whitespace="preserve">the color of the category.</doc>
4483           <type name="guint" c:type="guint"/>
4484         </return-value>
4485       </method>
4486       <method name="get_description"
4487               c:identifier="gst_debug_category_get_description">
4488         <doc xml:whitespace="preserve">Returns the description of a debug category.</doc>
4489         <return-value transfer-ownership="none">
4490           <doc xml:whitespace="preserve">the description of the category.</doc>
4491           <type name="utf8" c:type="gchar*"/>
4492         </return-value>
4493       </method>
4494       <method name="get_name" c:identifier="gst_debug_category_get_name">
4495         <doc xml:whitespace="preserve">Returns the name of a debug category.</doc>
4496         <return-value transfer-ownership="none">
4497           <doc xml:whitespace="preserve">the name of the category.</doc>
4498           <type name="utf8" c:type="gchar*"/>
4499         </return-value>
4500       </method>
4501       <method name="get_threshold"
4502               c:identifier="gst_debug_category_get_threshold">
4503         <doc xml:whitespace="preserve">Returns the threshold of a #GstDebugCategory.</doc>
4504         <return-value transfer-ownership="none">
4505           <doc xml:whitespace="preserve">the #GstDebugLevel that is used as threshold.</doc>
4506           <type name="DebugLevel" c:type="GstDebugLevel"/>
4507         </return-value>
4508       </method>
4509       <method name="reset_threshold"
4510               c:identifier="gst_debug_category_reset_threshold">
4511         <doc xml:whitespace="preserve">Resets the threshold of the category to the default level. Debug information
4512 will only be output if the threshold is lower or equal to the level of the
4513 debugging message.
4514 Use this function to set the threshold back to where it was after using
4515 gst_debug_category_set_threshold().</doc>
4516         <return-value transfer-ownership="none">
4517           <type name="none" c:type="void"/>
4518         </return-value>
4519       </method>
4520       <method name="set_threshold"
4521               c:identifier="gst_debug_category_set_threshold">
4522         <doc xml:whitespace="preserve">Sets the threshold of the category to the given level. Debug information will
4523 only be output if the threshold is lower or equal to the level of the
4524 debugging message.
4525 &lt;note&gt;&lt;para&gt;
4526 Do not use this function in production code, because other functions may
4527 change the threshold of categories as side effect. It is however a nice
4528 function to use when debugging (even from gdb).
4529 &lt;/para&gt;&lt;/note&gt;</doc>
4530         <return-value transfer-ownership="none">
4531           <type name="none" c:type="void"/>
4532         </return-value>
4533         <parameters>
4534           <parameter name="level" transfer-ownership="none">
4535             <doc xml:whitespace="preserve">the #GstDebugLevel threshold to set.</doc>
4536             <type name="DebugLevel" c:type="GstDebugLevel"/>
4537           </parameter>
4538         </parameters>
4539       </method>
4540     </record>
4541     <enumeration name="DebugColorFlags" c:type="GstDebugColorFlags">
4542       <doc xml:whitespace="preserve">These are some terminal style flags you can use when creating your
4543 debugging categories to make them stand out in debugging output.</doc>
4544       <member name="fg_black" value="0" c:identifier="GST_DEBUG_FG_BLACK"/>
4545       <member name="fg_red" value="1" c:identifier="GST_DEBUG_FG_RED"/>
4546       <member name="fg_green" value="2" c:identifier="GST_DEBUG_FG_GREEN"/>
4547       <member name="fg_yellow" value="3" c:identifier="GST_DEBUG_FG_YELLOW"/>
4548       <member name="fg_blue" value="4" c:identifier="GST_DEBUG_FG_BLUE"/>
4549       <member name="fg_magenta" value="5" c:identifier="GST_DEBUG_FG_MAGENTA"/>
4550       <member name="fg_cyan" value="6" c:identifier="GST_DEBUG_FG_CYAN"/>
4551       <member name="fg_white" value="7" c:identifier="GST_DEBUG_FG_WHITE"/>
4552       <member name="bg_black" value="0" c:identifier="GST_DEBUG_BG_BLACK"/>
4553       <member name="bg_red" value="16" c:identifier="GST_DEBUG_BG_RED"/>
4554       <member name="bg_green" value="32" c:identifier="GST_DEBUG_BG_GREEN"/>
4555       <member name="bg_yellow" value="48" c:identifier="GST_DEBUG_BG_YELLOW"/>
4556       <member name="bg_blue" value="64" c:identifier="GST_DEBUG_BG_BLUE"/>
4557       <member name="bg_magenta"
4558               value="80"
4559               c:identifier="GST_DEBUG_BG_MAGENTA"/>
4560       <member name="bg_cyan" value="96" c:identifier="GST_DEBUG_BG_CYAN"/>
4561       <member name="bg_white" value="112" c:identifier="GST_DEBUG_BG_WHITE"/>
4562       <member name="bold" value="256" c:identifier="GST_DEBUG_BOLD"/>
4563       <member name="underline" value="512" c:identifier="GST_DEBUG_UNDERLINE"/>
4564     </enumeration>
4565     <callback name="DebugFuncPtr" c:type="GstDebugFuncPtr">
4566       <return-value transfer-ownership="none">
4567         <type name="none" c:type="void"/>
4568       </return-value>
4569     </callback>
4570     <bitfield name="DebugGraphDetails"
4571               version="0.10.15"
4572               c:type="GstDebugGraphDetails">
4573       <doc xml:whitespace="preserve">Available details for pipeline graphs produced by GST_DEBUG_BIN_TO_DOT_FILE()
4574 and GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS().</doc>
4575       <member name="media_type"
4576               value="1"
4577               c:identifier="GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE"/>
4578       <member name="caps_details"
4579               value="2"
4580               c:identifier="GST_DEBUG_GRAPH_SHOW_CAPS_DETAILS"/>
4581       <member name="non_default_params"
4582               value="4"
4583               c:identifier="GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS"/>
4584       <member name="states"
4585               value="8"
4586               c:identifier="GST_DEBUG_GRAPH_SHOW_STATES"/>
4587       <member name="all" value="15" c:identifier="GST_DEBUG_GRAPH_SHOW_ALL"/>
4588     </bitfield>
4589     <enumeration name="DebugLevel" c:type="GstDebugLevel">
4590       <doc xml:whitespace="preserve">The level defines the importance of a debugging message. The more important a
4591 message is, the greater the probability that the debugging system outputs it.</doc>
4592       <member name="none" value="0" c:identifier="GST_LEVEL_NONE"/>
4593       <member name="error" value="1" c:identifier="GST_LEVEL_ERROR"/>
4594       <member name="warning" value="2" c:identifier="GST_LEVEL_WARNING"/>
4595       <member name="info" value="3" c:identifier="GST_LEVEL_INFO"/>
4596       <member name="debug" value="4" c:identifier="GST_LEVEL_DEBUG"/>
4597       <member name="log" value="5" c:identifier="GST_LEVEL_LOG"/>
4598       <member name="fixme" value="6" c:identifier="GST_LEVEL_FIXME"/>
4599       <member name="trace" value="7" c:identifier="GST_LEVEL_TRACE"/>
4600       <member name="memdump" value="9" c:identifier="GST_LEVEL_MEMDUMP"/>
4601       <member name="count" value="10" c:identifier="GST_LEVEL_COUNT"/>
4602     </enumeration>
4603     <record name="DebugMessage" c:type="GstDebugMessage" disguised="1">
4604       <method name="get" c:identifier="gst_debug_message_get">
4605         <doc xml:whitespace="preserve">Gets the string representation of a #GstDebugMessage. This function is used
4606 in debug handlers to extract the message.</doc>
4607         <return-value transfer-ownership="none">
4608           <doc xml:whitespace="preserve">the string representation of a #GstDebugMessage.</doc>
4609           <type name="utf8" c:type="gchar*"/>
4610         </return-value>
4611       </method>
4612     </record>
4613     <constant name="ELEMENT_FACTORY_KLASS_DECODER" value="Decoder">
4614       <type name="utf8" c:type="gchar*"/>
4615     </constant>
4616     <constant name="ELEMENT_FACTORY_KLASS_DEMUXER" value="Demuxer">
4617       <type name="utf8" c:type="gchar*"/>
4618     </constant>
4619     <constant name="ELEMENT_FACTORY_KLASS_DEPAYLOADER" value="Depayloader">
4620       <type name="utf8" c:type="gchar*"/>
4621     </constant>
4622     <constant name="ELEMENT_FACTORY_KLASS_ENCODER" value="Encoder">
4623       <type name="utf8" c:type="gchar*"/>
4624     </constant>
4625     <constant name="ELEMENT_FACTORY_KLASS_FORMATTER" value="Formatter">
4626       <type name="utf8" c:type="gchar*"/>
4627     </constant>
4628     <constant name="ELEMENT_FACTORY_KLASS_MEDIA_AUDIO" value="Audio">
4629       <type name="utf8" c:type="gchar*"/>
4630     </constant>
4631     <constant name="ELEMENT_FACTORY_KLASS_MEDIA_IMAGE" value="Image">
4632       <type name="utf8" c:type="gchar*"/>
4633     </constant>
4634     <constant name="ELEMENT_FACTORY_KLASS_MEDIA_METADATA" value="Metadata">
4635       <type name="utf8" c:type="gchar*"/>
4636     </constant>
4637     <constant name="ELEMENT_FACTORY_KLASS_MEDIA_SUBTITLE" value="Subtitle">
4638       <type name="utf8" c:type="gchar*"/>
4639     </constant>
4640     <constant name="ELEMENT_FACTORY_KLASS_MEDIA_VIDEO" value="Video">
4641       <type name="utf8" c:type="gchar*"/>
4642     </constant>
4643     <constant name="ELEMENT_FACTORY_KLASS_MUXER" value="Muxer">
4644       <type name="utf8" c:type="gchar*"/>
4645     </constant>
4646     <constant name="ELEMENT_FACTORY_KLASS_PARSER" value="Parser">
4647       <type name="utf8" c:type="gchar*"/>
4648     </constant>
4649     <constant name="ELEMENT_FACTORY_KLASS_PAYLOADER" value="Payloader">
4650       <type name="utf8" c:type="gchar*"/>
4651     </constant>
4652     <constant name="ELEMENT_FACTORY_KLASS_SINK" value="Sink">
4653       <type name="utf8" c:type="gchar*"/>
4654     </constant>
4655     <constant name="ELEMENT_FACTORY_KLASS_SRC" value="Source">
4656       <type name="utf8" c:type="gchar*"/>
4657     </constant>
4658     <constant name="ELEMENT_FACTORY_TYPE_ANY" value="-1">
4659       <type name="gint" c:type="gint"/>
4660     </constant>
4661     <constant name="ELEMENT_FACTORY_TYPE_AUDIOVIDEO_SINKS" value="0">
4662       <type name="gint" c:type="gint"/>
4663     </constant>
4664     <constant name="ELEMENT_FACTORY_TYPE_AUDIO_ENCODER" value="0">
4665       <type name="gint" c:type="gint"/>
4666     </constant>
4667     <constant name="ELEMENT_FACTORY_TYPE_DECODABLE" value="0">
4668       <type name="gint" c:type="gint"/>
4669     </constant>
4670     <constant name="ELEMENT_FACTORY_TYPE_DECODER" value="0">
4671       <type name="gint" c:type="gint"/>
4672     </constant>
4673     <constant name="ELEMENT_FACTORY_TYPE_DEMUXER" value="0">
4674       <type name="gint" c:type="gint"/>
4675     </constant>
4676     <constant name="ELEMENT_FACTORY_TYPE_DEPAYLOADER" value="0">
4677       <type name="gint" c:type="gint"/>
4678     </constant>
4679     <constant name="ELEMENT_FACTORY_TYPE_ENCODER" value="0">
4680       <type name="gint" c:type="gint"/>
4681     </constant>
4682     <constant name="ELEMENT_FACTORY_TYPE_FORMATTER" value="0">
4683       <type name="gint" c:type="gint"/>
4684     </constant>
4685     <constant name="ELEMENT_FACTORY_TYPE_MAX_ELEMENTS" value="0">
4686       <type name="gint" c:type="gint"/>
4687     </constant>
4688     <constant name="ELEMENT_FACTORY_TYPE_MEDIA_ANY" value="-281474976710656">
4689       <type name="gint" c:type="gint"/>
4690     </constant>
4691     <constant name="ELEMENT_FACTORY_TYPE_MEDIA_AUDIO" value="0">
4692       <type name="gint" c:type="gint"/>
4693     </constant>
4694     <constant name="ELEMENT_FACTORY_TYPE_MEDIA_IMAGE" value="0">
4695       <type name="gint" c:type="gint"/>
4696     </constant>
4697     <constant name="ELEMENT_FACTORY_TYPE_MEDIA_METADATA" value="0">
4698       <type name="gint" c:type="gint"/>
4699     </constant>
4700     <constant name="ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE" value="0">
4701       <type name="gint" c:type="gint"/>
4702     </constant>
4703     <constant name="ELEMENT_FACTORY_TYPE_MEDIA_VIDEO" value="0">
4704       <type name="gint" c:type="gint"/>
4705     </constant>
4706     <constant name="ELEMENT_FACTORY_TYPE_MUXER" value="0">
4707       <type name="gint" c:type="gint"/>
4708     </constant>
4709     <constant name="ELEMENT_FACTORY_TYPE_PARSER" value="0">
4710       <type name="gint" c:type="gint"/>
4711     </constant>
4712     <constant name="ELEMENT_FACTORY_TYPE_PAYLOADER" value="0">
4713       <type name="gint" c:type="gint"/>
4714     </constant>
4715     <constant name="ELEMENT_FACTORY_TYPE_SINK" value="0">
4716       <type name="gint" c:type="gint"/>
4717     </constant>
4718     <constant name="ELEMENT_FACTORY_TYPE_SRC" value="0">
4719       <type name="gint" c:type="gint"/>
4720     </constant>
4721     <constant name="ELEMENT_FACTORY_TYPE_VIDEO_ENCODER" value="0">
4722       <type name="gint" c:type="gint"/>
4723     </constant>
4724     <constant name="ERROR_SYSTEM" value="system error: %s">
4725       <type name="utf8" c:type="gchar*"/>
4726     </constant>
4727     <constant name="EVENT_TRACE_NAME" value="GstEvent">
4728       <type name="utf8" c:type="gchar*"/>
4729     </constant>
4730     <constant name="EVENT_TYPE_BOTH" value="0">
4731       <type name="gint" c:type="gint"/>
4732     </constant>
4733     <constant name="EVENT_TYPE_SHIFT" value="4">
4734       <type name="gint" c:type="gint"/>
4735     </constant>
4736     <class name="Element"
4737            c:symbol-prefix="element"
4738            c:type="GstElement"
4739            parent="Object"
4740            abstract="1"
4741            glib:type-name="GstElement"
4742            glib:get-type="gst_element_get_type"
4743            glib:type-struct="ElementClass">
4744       <doc xml:whitespace="preserve">GstElement is the abstract base class needed to construct an element that
4745 can be used in a GStreamer pipeline. Please refer to the plugin writers
4746 guide for more information on creating #GstElement subclasses.
4747 The name of a #GstElement can be get with gst_element_get_name() and set with
4748 gst_element_set_name().  For speed, GST_ELEMENT_NAME() can be used in the
4749 core when using the appropriate locking. Do not use this in plug-ins or
4750 applications in order to retain ABI compatibility.
4751 All elements have pads (of the type #GstPad).  These pads link to pads on
4752 other elements.  #GstBuffer flow between these linked pads.
4753 A #GstElement has a #GList of #GstPad structures for all their input (or sink)
4754 and output (or source) pads.
4755 Core and plug-in writers can add and remove pads with gst_element_add_pad()
4756 and gst_element_remove_pad().
4757 A pad of an element can be retrieved by name with gst_element_get_pad().
4758 An iterator of all pads can be retrieved with gst_element_iterate_pads().
4759 Elements can be linked through their pads.
4760 If the link is straightforward, use the gst_element_link()
4761 convenience function to link two elements, or gst_element_link_many()
4762 for more elements in a row.
4763 Use gst_element_link_filtered() to link two elements constrained by
4764 a specified set of #GstCaps.
4765 For finer control, use gst_element_link_pads() and
4766 gst_element_link_pads_filtered() to specify the pads to link on
4767 each element by name.
4768 Each element has a state (see #GstState).  You can get and set the state
4769 of an element with gst_element_get_state() and gst_element_set_state().
4770 Setting a state triggers a #GstStateChange. To get a string representation
4771 of a #GstState, use gst_element_state_get_name().
4772 You can get and set a #GstClock on an element using gst_element_get_clock()
4773 and gst_element_set_clock().
4774 Some elements can provide a clock for the pipeline if
4775 gst_element_provides_clock() returns %TRUE. With the
4776 gst_element_provide_clock() method one can retrieve the clock provided by
4777 such an element.
4778 Not all elements require a clock to operate correctly. If
4779 gst_element_requires_clock() returns %TRUE, a clock should be set on the
4780 element with gst_element_set_clock().
4781 Note that clock slection and distribution is normally handled by the
4782 toplevel #GstPipeline so the clock functions are only to be used in very
4783 specific situations.
4784 Last reviewed on 2009-05-29 (0.10.24)</doc>
4785       <function name="make_from_uri" c:identifier="gst_element_make_from_uri">
4786         <doc xml:whitespace="preserve">Creates an element for handling the given URI.</doc>
4787         <return-value transfer-ownership="full">
4788           <doc xml:whitespace="preserve">a new element or NULL if none could be created</doc>
4789           <type name="Element" c:type="GstElement*"/>
4790         </return-value>
4791         <parameters>
4792           <parameter name="type" transfer-ownership="none">
4793             <doc xml:whitespace="preserve">Whether to create a source or a sink</doc>
4794             <type name="URIType" c:type="GstURIType"/>
4795           </parameter>
4796           <parameter name="uri" transfer-ownership="none">
4797             <doc xml:whitespace="preserve">URI to create an element for</doc>
4798             <type name="utf8" c:type="gchar*"/>
4799           </parameter>
4800           <parameter name="elementname"
4801                      transfer-ownership="none"
4802                      allow-none="1">
4803             <doc xml:whitespace="preserve">Name of created element, can be NULL.</doc>
4804             <type name="utf8" c:type="gchar*"/>
4805           </parameter>
4806         </parameters>
4807       </function>
4808       <function name="register" c:identifier="gst_element_register">
4809         <doc xml:whitespace="preserve">Create a new elementfactory capable of instantiating objects of the</doc>
4810         <return-value transfer-ownership="none">
4811           <doc xml:whitespace="preserve">TRUE, if the registering succeeded, FALSE on error</doc>
4812           <type name="gboolean" c:type="gboolean"/>
4813         </return-value>
4814         <parameters>
4815           <parameter name="plugin" transfer-ownership="none" allow-none="1">
4816             <doc xml:whitespace="preserve">#GstPlugin to register the element with, or NULL for a static element (note that passing NULL only works in GStreamer 0.10.13 and later)</doc>
4817             <type name="Plugin" c:type="GstPlugin*"/>
4818           </parameter>
4819           <parameter name="name" transfer-ownership="none">
4820             <doc xml:whitespace="preserve">name of elements of this type</doc>
4821             <type name="utf8" c:type="gchar*"/>
4822           </parameter>
4823           <parameter name="rank" transfer-ownership="none">
4824             <doc xml:whitespace="preserve">rank of element (higher rank means more importance when autoplugging)</doc>
4825             <type name="guint" c:type="guint"/>
4826           </parameter>
4827           <parameter name="type" transfer-ownership="none">
4828             <doc xml:whitespace="preserve">GType of element to register</doc>
4829             <type name="GType" c:type="GType"/>
4830           </parameter>
4831         </parameters>
4832       </function>
4833       <function name="state_change_return_get_name"
4834                 c:identifier="gst_element_state_change_return_get_name"
4835                 version="0.10.11">
4836         <doc xml:whitespace="preserve">Gets a string representing the given state change result.
4837 result.</doc>
4838         <return-value transfer-ownership="none">
4839           <doc xml:whitespace="preserve">a string with the name of the state</doc>
4840           <type name="utf8" c:type="gchar*"/>
4841         </return-value>
4842         <parameters>
4843           <parameter name="state_ret" transfer-ownership="none">
4844             <doc xml:whitespace="preserve">a #GstStateChangeReturn to get the name of.</doc>
4845             <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
4846           </parameter>
4847         </parameters>
4848       </function>
4849       <function name="state_get_name"
4850                 c:identifier="gst_element_state_get_name">
4851         <doc xml:whitespace="preserve">Gets a string representing the given state.</doc>
4852         <return-value transfer-ownership="none">
4853           <doc xml:whitespace="preserve">a string with the name of the state.</doc>
4854           <type name="utf8" c:type="gchar*"/>
4855         </return-value>
4856         <parameters>
4857           <parameter name="state" transfer-ownership="none">
4858             <doc xml:whitespace="preserve">a #GstState to get the name of.</doc>
4859             <type name="State" c:type="GstState"/>
4860           </parameter>
4861         </parameters>
4862       </function>
4863       <virtual-method name="change_state" invoker="change_state">
4864         <doc xml:whitespace="preserve">Perform @transition on @element.
4865 This function must be called with STATE_LOCK held and is mainly used
4866 internally.</doc>
4867         <return-value transfer-ownership="none">
4868           <doc xml:whitespace="preserve">the #GstStateChangeReturn of the state transition.</doc>
4869           <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
4870         </return-value>
4871         <parameters>
4872           <parameter name="transition" transfer-ownership="none">
4873             <doc xml:whitespace="preserve">the requested transition</doc>
4874             <type name="StateChange" c:type="GstStateChange"/>
4875           </parameter>
4876         </parameters>
4877       </virtual-method>
4878       <virtual-method name="get_index" invoker="get_index">
4879         <doc xml:whitespace="preserve">Gets the index from the element.
4880 element. unref after usage.
4881 MT safe.</doc>
4882         <return-value transfer-ownership="full">
4883           <doc xml:whitespace="preserve">a #GstIndex or %NULL when no index was set on the</doc>
4884           <type name="Index" c:type="GstIndex*"/>
4885         </return-value>
4886       </virtual-method>
4887       <virtual-method name="get_query_types" invoker="get_query_types">
4888         <doc xml:whitespace="preserve">Get an array of query types from the element.
4889 If the element doesn't implement a query types function,
4890 the query will be forwarded to the peer of a random linked sink pad.
4891 be freed or modified.
4892 MT safe.</doc>
4893         <return-value transfer-ownership="none">
4894           <doc xml:whitespace="preserve">An array of #GstQueryType elements that should not</doc>
4895           <type name="QueryType" c:type="GstQueryType*"/>
4896         </return-value>
4897       </virtual-method>
4898       <virtual-method name="get_state" invoker="get_state">
4899         <doc xml:whitespace="preserve">Gets the state of the element.
4900 For elements that performed an ASYNC state change, as reported by
4901 gst_element_set_state(), this function will block up to the
4902 specified timeout value for the state change to complete.
4903 If the element completes the state change or goes into
4904 an error, this function returns immediately with a return value of
4905 %GST_STATE_CHANGE_SUCCESS or %GST_STATE_CHANGE_FAILURE respectively.
4906 For elements that did not return %GST_STATE_CHANGE_ASYNC, this function
4907 returns the current and pending state immediately.
4908 This function returns %GST_STATE_CHANGE_NO_PREROLL if the element
4909 successfully changed its state but is not able to provide data yet.
4910 This mostly happens for live sources that only produce data in
4911 %GST_STATE_PLAYING. While the state change return is equivalent to
4912 %GST_STATE_CHANGE_SUCCESS, it is returned to the application to signal that
4913 some sink elements might not be able to complete their state change because
4914 an element is not producing data to complete the preroll. When setting the
4915 element to playing, the preroll will complete and playback will start.
4916 and the last state change succeeded, %GST_STATE_CHANGE_ASYNC if the
4917 element is still performing a state change or
4918 %GST_STATE_CHANGE_FAILURE if the last state change failed.
4919 MT safe.</doc>
4920         <return-value transfer-ownership="none">
4921           <doc xml:whitespace="preserve">%GST_STATE_CHANGE_SUCCESS if the element has no more pending state</doc>
4922           <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
4923         </return-value>
4924         <parameters>
4925           <parameter name="state"
4926                      direction="out"
4927                      caller-allocates="0"
4928                      transfer-ownership="full"
4929                      allow-none="1">
4930             <doc xml:whitespace="preserve">a pointer to #GstState to hold the state. Can be %NULL.</doc>
4931             <type name="State" c:type="GstState*"/>
4932           </parameter>
4933           <parameter name="pending"
4934                      direction="out"
4935                      caller-allocates="0"
4936                      transfer-ownership="full"
4937                      allow-none="1">
4938             <doc xml:whitespace="preserve">a pointer to #GstState to hold the pending state. Can be %NULL.</doc>
4939             <type name="State" c:type="GstState*"/>
4940           </parameter>
4941           <parameter name="timeout" transfer-ownership="none">
4942             <doc xml:whitespace="preserve">a #GstClockTime to specify the timeout for an async state change or %GST_CLOCK_TIME_NONE for infinite timeout.</doc>
4943             <type name="ClockTime" c:type="GstClockTime"/>
4944           </parameter>
4945         </parameters>
4946       </virtual-method>
4947       <virtual-method name="no_more_pads" invoker="no_more_pads">
4948         <doc xml:whitespace="preserve">Use this function to signal that the element does not expect any more pads
4949 to show up in the current pipeline. This function should be called whenever
4950 pads have been added by the element itself. Elements with #GST_PAD_SOMETIMES
4951 pad templates use this in combination with autopluggers to figure out that
4952 the element is done initializing its pads.
4953 This function emits the #GstElement::no-more-pads signal.
4954 MT safe.</doc>
4955         <return-value transfer-ownership="none">
4956           <type name="none" c:type="void"/>
4957         </return-value>
4958       </virtual-method>
4959       <virtual-method name="pad_added">
4960         <return-value transfer-ownership="none">
4961           <type name="none" c:type="void"/>
4962         </return-value>
4963         <parameters>
4964           <parameter name="pad" transfer-ownership="none">
4965             <type name="Pad" c:type="GstPad*"/>
4966           </parameter>
4967         </parameters>
4968       </virtual-method>
4969       <virtual-method name="pad_removed">
4970         <return-value transfer-ownership="none">
4971           <type name="none" c:type="void"/>
4972         </return-value>
4973         <parameters>
4974           <parameter name="pad" transfer-ownership="none">
4975             <type name="Pad" c:type="GstPad*"/>
4976           </parameter>
4977         </parameters>
4978       </virtual-method>
4979       <virtual-method name="provide_clock" invoker="provide_clock">
4980         <doc xml:whitespace="preserve">Get the clock provided by the given element.
4981 &lt;note&gt;An element is only required to provide a clock in the PAUSED
4982 state. Some elements can provide a clock in other states.&lt;/note&gt;
4983 if no clock could be provided.  Unref after usage.
4984 MT safe.</doc>
4985         <return-value transfer-ownership="full">
4986           <doc xml:whitespace="preserve">the GstClock provided by the element or %NULL</doc>
4987           <type name="Clock" c:type="GstClock*"/>
4988         </return-value>
4989       </virtual-method>
4990       <virtual-method name="query" invoker="query">
4991         <doc xml:whitespace="preserve">Performs a query on the given element.
4992 For elements that don't implement a query handler, this function
4993 forwards the query to a random srcpad or to the peer of a
4994 random linked sinkpad of this element.
4995 Please note that some queries might need a running pipeline to work.
4996 MT safe.</doc>
4997         <return-value transfer-ownership="none">
4998           <doc xml:whitespace="preserve">TRUE if the query could be performed.</doc>
4999           <type name="gboolean" c:type="gboolean"/>
5000         </return-value>
5001         <parameters>
5002           <parameter name="query" transfer-ownership="none">
5003             <doc xml:whitespace="preserve">the #GstQuery.</doc>
5004             <type name="Query" c:type="GstQuery*"/>
5005           </parameter>
5006         </parameters>
5007       </virtual-method>
5008       <virtual-method name="release_pad">
5009         <return-value transfer-ownership="none">
5010           <type name="none" c:type="void"/>
5011         </return-value>
5012         <parameters>
5013           <parameter name="pad" transfer-ownership="none">
5014             <type name="Pad" c:type="GstPad*"/>
5015           </parameter>
5016         </parameters>
5017       </virtual-method>
5018       <virtual-method name="request_new_pad" introspectable="0">
5019         <return-value>
5020           <type name="Pad" c:type="GstPad*"/>
5021         </return-value>
5022         <parameters>
5023           <parameter name="templ" transfer-ownership="none">
5024             <type name="PadTemplate" c:type="GstPadTemplate*"/>
5025           </parameter>
5026           <parameter name="name" transfer-ownership="none">
5027             <type name="utf8" c:type="gchar*"/>
5028           </parameter>
5029         </parameters>
5030       </virtual-method>
5031       <virtual-method name="request_new_pad_full" introspectable="0">
5032         <return-value>
5033           <type name="Pad" c:type="GstPad*"/>
5034         </return-value>
5035         <parameters>
5036           <parameter name="templ" transfer-ownership="none">
5037             <type name="PadTemplate" c:type="GstPadTemplate*"/>
5038           </parameter>
5039           <parameter name="name" transfer-ownership="none">
5040             <type name="utf8" c:type="gchar*"/>
5041           </parameter>
5042           <parameter name="caps" transfer-ownership="none">
5043             <type name="Caps" c:type="GstCaps*"/>
5044           </parameter>
5045         </parameters>
5046       </virtual-method>
5047       <virtual-method name="send_event" invoker="send_event">
5048         <doc xml:whitespace="preserve">Sends an event to an element. If the element doesn't implement an
5049 event handler, the event will be pushed on a random linked sink pad for
5050 upstream events or a random linked source pad for downstream events.
5051 This function takes owership of the provided event so you should
5052 gst_event_ref() it if you want to reuse the event after this call.
5053 MT safe.</doc>
5054         <return-value transfer-ownership="none">
5055           <doc xml:whitespace="preserve">%TRUE if the event was handled.</doc>
5056           <type name="gboolean" c:type="gboolean"/>
5057         </return-value>
5058         <parameters>
5059           <parameter name="event" transfer-ownership="full">
5060             <doc xml:whitespace="preserve">the #GstEvent to send to the element.</doc>
5061             <type name="Event" c:type="GstEvent*"/>
5062           </parameter>
5063         </parameters>
5064       </virtual-method>
5065       <virtual-method name="set_bus" invoker="set_bus">
5066         <doc xml:whitespace="preserve">Sets the bus of the element. Increases the refcount on the bus.
5067 For internal use only, unless you're testing elements.
5068 MT safe.</doc>
5069         <return-value transfer-ownership="none">
5070           <type name="none" c:type="void"/>
5071         </return-value>
5072         <parameters>
5073           <parameter name="bus" transfer-ownership="none">
5074             <doc xml:whitespace="preserve">the #GstBus to set.</doc>
5075             <type name="Bus" c:type="GstBus*"/>
5076           </parameter>
5077         </parameters>
5078       </virtual-method>
5079       <virtual-method name="set_clock" invoker="set_clock">
5080         <doc xml:whitespace="preserve">Sets the clock for the element. This function increases the
5081 refcount on the clock. Any previously set clock on the object
5082 is unreffed.
5083 clock when it, for example, is not able to slave its internal clock to the
5084 MT safe.</doc>
5085         <return-value transfer-ownership="none">
5086           <doc xml:whitespace="preserve">%TRUE if the element accepted the clock. An element can refuse a</doc>
5087           <type name="gboolean" c:type="gboolean"/>
5088         </return-value>
5089         <parameters>
5090           <parameter name="clock" transfer-ownership="none">
5091             <doc xml:whitespace="preserve">the #GstClock to set for the element.</doc>
5092             <type name="Clock" c:type="GstClock*"/>
5093           </parameter>
5094         </parameters>
5095       </virtual-method>
5096       <virtual-method name="set_index" invoker="set_index">
5097         <doc xml:whitespace="preserve">Set @index on the element. The refcount of the index
5098 will be increased, any previously set index is unreffed.
5099 MT safe.</doc>
5100         <return-value transfer-ownership="none">
5101           <type name="none" c:type="void"/>
5102         </return-value>
5103         <parameters>
5104           <parameter name="index" transfer-ownership="none">
5105             <doc xml:whitespace="preserve">a #GstIndex.</doc>
5106             <type name="Index" c:type="GstIndex*"/>
5107           </parameter>
5108         </parameters>
5109       </virtual-method>
5110       <virtual-method name="set_state" invoker="set_state">
5111         <doc xml:whitespace="preserve">Sets the state of the element. This function will try to set the
5112 requested state by going through all the intermediary states and calling
5113 the class's state change function for each.
5114 This function can return #GST_STATE_CHANGE_ASYNC, in which case the
5115 element will perform the remainder of the state change asynchronously in
5116 another thread.
5117 An application can use gst_element_get_state() to wait for the completion
5118 of the state change or it can wait for a state change message on the bus.
5119 State changes to %GST_STATE_READY or %GST_STATE_NULL never return
5120 #GST_STATE_CHANGE_ASYNC.
5121 MT safe.</doc>
5122         <return-value transfer-ownership="none">
5123           <doc xml:whitespace="preserve">Result of the state change using #GstStateChangeReturn.</doc>
5124           <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
5125         </return-value>
5126         <parameters>
5127           <parameter name="state" transfer-ownership="none">
5128             <doc xml:whitespace="preserve">the element's new #GstState.</doc>
5129             <type name="State" c:type="GstState"/>
5130           </parameter>
5131         </parameters>
5132       </virtual-method>
5133       <method name="abort_state" c:identifier="gst_element_abort_state">
5134         <doc xml:whitespace="preserve">Abort the state change of the element. This function is used
5135 by elements that do asynchronous state changes and find out
5136 something is wrong.
5137 This function should be called with the STATE_LOCK held.
5138 MT safe.</doc>
5139         <return-value transfer-ownership="none">
5140           <type name="none" c:type="void"/>
5141         </return-value>
5142       </method>
5143       <method name="add_pad" c:identifier="gst_element_add_pad">
5144         <doc xml:whitespace="preserve">Adds a pad (link point) to @element. @pad's parent will be set to @element;
5145 see gst_object_set_parent() for refcounting information.
5146 Pads are not automatically activated so elements should perform the needed
5147 steps to activate the pad in case this pad is added in the PAUSED or PLAYING
5148 state. See gst_pad_set_active() for more information about activating pads.
5149 The pad and the element should be unlocked when calling this function.
5150 This function will emit the #GstElement::pad-added signal on the element.
5151 a pad with the same name already existed or the pad already had another
5152 parent.
5153 MT safe.</doc>
5154         <return-value transfer-ownership="none">
5155           <doc xml:whitespace="preserve">%TRUE if the pad could be added. This function can fail when</doc>
5156           <type name="gboolean" c:type="gboolean"/>
5157         </return-value>
5158         <parameters>
5159           <parameter name="pad" transfer-ownership="full">
5160             <doc xml:whitespace="preserve">the #GstPad to add to the element.</doc>
5161             <type name="Pad" c:type="GstPad*"/>
5162           </parameter>
5163         </parameters>
5164       </method>
5165       <method name="change_state" c:identifier="gst_element_change_state">
5166         <doc xml:whitespace="preserve">Perform @transition on @element.
5167 This function must be called with STATE_LOCK held and is mainly used
5168 internally.</doc>
5169         <return-value transfer-ownership="none">
5170           <doc xml:whitespace="preserve">the #GstStateChangeReturn of the state transition.</doc>
5171           <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
5172         </return-value>
5173         <parameters>
5174           <parameter name="transition" transfer-ownership="none">
5175             <doc xml:whitespace="preserve">the requested transition</doc>
5176             <type name="StateChange" c:type="GstStateChange"/>
5177           </parameter>
5178         </parameters>
5179       </method>
5180       <method name="continue_state" c:identifier="gst_element_continue_state">
5181         <doc xml:whitespace="preserve">Commit the state change of the element and proceed to the next
5182 pending state if any. This function is used
5183 by elements that do asynchronous state changes.
5184 The core will normally call this method automatically when an
5185 element returned %GST_STATE_CHANGE_SUCCESS from the state change function.
5186 If after calling this method the element still has not reached
5187 the pending state, the next state change is performed.
5188 This method is used internally and should normally not be called by plugins
5189 or applications.
5190 MT safe.</doc>
5191         <return-value transfer-ownership="none">
5192           <doc xml:whitespace="preserve">The result of the commit state change.</doc>
5193           <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
5194         </return-value>
5195         <parameters>
5196           <parameter name="ret" transfer-ownership="none">
5197             <doc xml:whitespace="preserve">The previous state return value</doc>
5198             <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
5199           </parameter>
5200         </parameters>
5201       </method>
5202       <method name="create_all_pads"
5203               c:identifier="gst_element_create_all_pads">
5204         <doc xml:whitespace="preserve">Creates a pad for each pad template that is always available.
5205 This function is only useful during object intialization of
5206 subclasses of #GstElement.</doc>
5207         <return-value transfer-ownership="none">
5208           <type name="none" c:type="void"/>
5209         </return-value>
5210       </method>
5211       <method name="found_tags" c:identifier="gst_element_found_tags">
5212         <doc xml:whitespace="preserve">Posts a message to the bus that new tags were found, and pushes an event
5213 to all sourcepads. Takes ownership of the @list.
5214 This is a utility method for elements. Applications should use the
5215 #GstTagSetter interface.</doc>
5216         <return-value transfer-ownership="none">
5217           <type name="none" c:type="void"/>
5218         </return-value>
5219         <parameters>
5220           <parameter name="list" transfer-ownership="full">
5221             <doc xml:whitespace="preserve">list of tags.</doc>
5222             <type name="TagList" c:type="GstTagList*"/>
5223           </parameter>
5224         </parameters>
5225       </method>
5226       <method name="found_tags_for_pad"
5227               c:identifier="gst_element_found_tags_for_pad">
5228         <doc xml:whitespace="preserve">Posts a message to the bus that new tags were found and pushes the
5229 tags as event. Takes ownership of the @list.
5230 This is a utility method for elements. Applications should use the
5231 #GstTagSetter interface.</doc>
5232         <return-value transfer-ownership="none">
5233           <type name="none" c:type="void"/>
5234         </return-value>
5235         <parameters>
5236           <parameter name="pad" transfer-ownership="none">
5237             <doc xml:whitespace="preserve">pad on which to push tag-event</doc>
5238             <type name="Pad" c:type="GstPad*"/>
5239           </parameter>
5240           <parameter name="list" transfer-ownership="full">
5241             <doc xml:whitespace="preserve">the taglist to post on the bus and create event from</doc>
5242             <type name="TagList" c:type="GstTagList*"/>
5243           </parameter>
5244         </parameters>
5245       </method>
5246       <method name="get_base_time" c:identifier="gst_element_get_base_time">
5247         <doc xml:whitespace="preserve">Returns the base time of the element. The base time is the
5248 absolute time of the clock when this element was last put to
5249 PLAYING. Subtracting the base time from the clock time gives
5250 the running time of the element.
5251 MT safe.</doc>
5252         <return-value transfer-ownership="none">
5253           <doc xml:whitespace="preserve">the base time of the element.</doc>
5254           <type name="ClockTime" c:type="GstClockTime"/>
5255         </return-value>
5256       </method>
5257       <method name="get_bus" c:identifier="gst_element_get_bus">
5258         <doc xml:whitespace="preserve">Returns the bus of the element. Note that only a #GstPipeline will provide a
5259 bus for the application.
5260 MT safe.</doc>
5261         <return-value transfer-ownership="full">
5262           <doc xml:whitespace="preserve">the element's #GstBus. unref after usage.</doc>
5263           <type name="Bus" c:type="GstBus*"/>
5264         </return-value>
5265       </method>
5266       <method name="get_clock" c:identifier="gst_element_get_clock">
5267         <doc xml:whitespace="preserve">Gets the currently configured clock of the element. This is the clock as was
5268 last set with gst_element_set_clock().
5269 MT safe.</doc>
5270         <return-value transfer-ownership="full">
5271           <doc xml:whitespace="preserve">the #GstClock of the element. unref after usage.</doc>
5272           <type name="Clock" c:type="GstClock*"/>
5273         </return-value>
5274       </method>
5275       <method name="get_compatible_pad"
5276               c:identifier="gst_element_get_compatible_pad">
5277         <doc xml:whitespace="preserve">Looks for an unlinked pad to which the given pad can link. It is not
5278 guaranteed that linking the pads will work, though it should work in most
5279 cases.
5280 This function will first attempt to find a compatible unlinked ALWAYS pad,
5281 and if none can be found, it will request a compatible REQUEST pad by looking
5282 at the templates of @element.
5283 if one cannot be found. gst_object_unref() after usage.</doc>
5284         <return-value transfer-ownership="full">
5285           <doc xml:whitespace="preserve">the #GstPad to which a link can be made, or %NULL</doc>
5286           <type name="Pad" c:type="GstPad*"/>
5287         </return-value>
5288         <parameters>
5289           <parameter name="pad" transfer-ownership="none">
5290             <doc xml:whitespace="preserve">the #GstPad to find a compatible one for.</doc>
5291             <type name="Pad" c:type="GstPad*"/>
5292           </parameter>
5293           <parameter name="caps" transfer-ownership="none">
5294             <doc xml:whitespace="preserve">the #GstCaps to use as a filter.</doc>
5295             <type name="Caps" c:type="GstCaps*"/>
5296           </parameter>
5297         </parameters>
5298       </method>
5299       <method name="get_compatible_pad_template"
5300               c:identifier="gst_element_get_compatible_pad_template">
5301         <doc xml:whitespace="preserve">Retrieves a pad template from @element that is compatible with @compattempl.
5302 Pads from compatible templates can be linked together.
5303 was found. No unreferencing is necessary.</doc>
5304         <return-value transfer-ownership="none">
5305           <doc xml:whitespace="preserve">a compatible #GstPadTemplate, or NULL if none</doc>
5306           <type name="PadTemplate" c:type="GstPadTemplate*"/>
5307         </return-value>
5308         <parameters>
5309           <parameter name="compattempl" transfer-ownership="none">
5310             <doc xml:whitespace="preserve">the #GstPadTemplate to find a compatible template for</doc>
5311             <type name="PadTemplate" c:type="GstPadTemplate*"/>
5312           </parameter>
5313         </parameters>
5314       </method>
5315       <method name="get_factory" c:identifier="gst_element_get_factory">
5316         <doc xml:whitespace="preserve">Retrieves the factory that was used to create this element.
5317 element. no refcounting is needed.</doc>
5318         <return-value transfer-ownership="none">
5319           <doc xml:whitespace="preserve">the #GstElementFactory used for creating this</doc>
5320           <type name="ElementFactory" c:type="GstElementFactory*"/>
5321         </return-value>
5322       </method>
5323       <method name="get_index" c:identifier="gst_element_get_index">
5324         <doc xml:whitespace="preserve">Gets the index from the element.
5325 element. unref after usage.
5326 MT safe.</doc>
5327         <return-value transfer-ownership="full">
5328           <doc xml:whitespace="preserve">a #GstIndex or %NULL when no index was set on the</doc>
5329           <type name="Index" c:type="GstIndex*"/>
5330         </return-value>
5331       </method>
5332       <method name="get_pad"
5333               c:identifier="gst_element_get_pad"
5334               deprecated="This function is deprecated as it&apos;s unclear if the reference">
5335         <doc xml:whitespace="preserve">Retrieves a pad from @element by name. Tries gst_element_get_static_pad()
5336 first, then gst_element_get_request_pad().
5337 to the result pad should be released with gst_object_unref() in case of a static pad
5338 or gst_element_release_request_pad() in case of a request pad.
5339 Use gst_element_get_static_pad() or gst_element_get_request_pad() instead.
5340 depending on the type of the pad.</doc>
5341         <return-value transfer-ownership="full">
5342           <doc xml:whitespace="preserve">the #GstPad if found, otherwise %NULL. Unref or Release after usage,</doc>
5343           <type name="Pad" c:type="GstPad*"/>
5344         </return-value>
5345         <parameters>
5346           <parameter name="name" transfer-ownership="none">
5347             <doc xml:whitespace="preserve">the name of the pad to retrieve.</doc>
5348             <type name="utf8" c:type="gchar*"/>
5349           </parameter>
5350         </parameters>
5351       </method>
5352       <method name="get_query_types"
5353               c:identifier="gst_element_get_query_types">
5354         <doc xml:whitespace="preserve">Get an array of query types from the element.
5355 If the element doesn't implement a query types function,
5356 the query will be forwarded to the peer of a random linked sink pad.
5357 be freed or modified.
5358 MT safe.</doc>
5359         <return-value transfer-ownership="none">
5360           <doc xml:whitespace="preserve">An array of #GstQueryType elements that should not</doc>
5361           <type name="QueryType" c:type="GstQueryType*"/>
5362         </return-value>
5363       </method>
5364       <method name="get_request_pad"
5365               c:identifier="gst_element_get_request_pad">
5366         <doc xml:whitespace="preserve">Retrieves a pad from the element by name. This version only retrieves
5367 request pads. The pad should be released with
5368 gst_element_release_request_pad().
5369 This method is slow and will be deprecated in the future. New code should
5370 use gst_element_request_pad() with the requested template.
5371 Release after usage.</doc>
5372         <return-value transfer-ownership="full">
5373           <doc xml:whitespace="preserve">requested #GstPad if found, otherwise %NULL.</doc>
5374           <type name="Pad" c:type="GstPad*"/>
5375         </return-value>
5376         <parameters>
5377           <parameter name="name" transfer-ownership="none">
5378             <doc xml:whitespace="preserve">the name of the request #GstPad to retrieve.</doc>
5379             <type name="utf8" c:type="gchar*"/>
5380           </parameter>
5381         </parameters>
5382       </method>
5383       <method name="get_start_time"
5384               c:identifier="gst_element_get_start_time"
5385               version="0.10.24">
5386         <doc xml:whitespace="preserve">Returns the start time of the element. The start time is the
5387 running time of the clock when this element was last put to PAUSED.
5388 Usually the start_time is managed by a toplevel element such as
5389 #GstPipeline.
5390 MT safe.</doc>
5391         <return-value transfer-ownership="none">
5392           <doc xml:whitespace="preserve">the start time of the element.</doc>
5393           <type name="ClockTime" c:type="GstClockTime"/>
5394         </return-value>
5395       </method>
5396       <method name="get_state" c:identifier="gst_element_get_state">
5397         <doc xml:whitespace="preserve">Gets the state of the element.
5398 For elements that performed an ASYNC state change, as reported by
5399 gst_element_set_state(), this function will block up to the
5400 specified timeout value for the state change to complete.
5401 If the element completes the state change or goes into
5402 an error, this function returns immediately with a return value of
5403 %GST_STATE_CHANGE_SUCCESS or %GST_STATE_CHANGE_FAILURE respectively.
5404 For elements that did not return %GST_STATE_CHANGE_ASYNC, this function
5405 returns the current and pending state immediately.
5406 This function returns %GST_STATE_CHANGE_NO_PREROLL if the element
5407 successfully changed its state but is not able to provide data yet.
5408 This mostly happens for live sources that only produce data in
5409 %GST_STATE_PLAYING. While the state change return is equivalent to
5410 %GST_STATE_CHANGE_SUCCESS, it is returned to the application to signal that
5411 some sink elements might not be able to complete their state change because
5412 an element is not producing data to complete the preroll. When setting the
5413 element to playing, the preroll will complete and playback will start.
5414 and the last state change succeeded, %GST_STATE_CHANGE_ASYNC if the
5415 element is still performing a state change or
5416 %GST_STATE_CHANGE_FAILURE if the last state change failed.
5417 MT safe.</doc>
5418         <return-value transfer-ownership="none">
5419           <doc xml:whitespace="preserve">%GST_STATE_CHANGE_SUCCESS if the element has no more pending state</doc>
5420           <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
5421         </return-value>
5422         <parameters>
5423           <parameter name="state"
5424                      direction="out"
5425                      caller-allocates="0"
5426                      transfer-ownership="full"
5427                      allow-none="1">
5428             <doc xml:whitespace="preserve">a pointer to #GstState to hold the state. Can be %NULL.</doc>
5429             <type name="State" c:type="GstState*"/>
5430           </parameter>
5431           <parameter name="pending"
5432                      direction="out"
5433                      caller-allocates="0"
5434                      transfer-ownership="full"
5435                      allow-none="1">
5436             <doc xml:whitespace="preserve">a pointer to #GstState to hold the pending state. Can be %NULL.</doc>
5437             <type name="State" c:type="GstState*"/>
5438           </parameter>
5439           <parameter name="timeout" transfer-ownership="none">
5440             <doc xml:whitespace="preserve">a #GstClockTime to specify the timeout for an async state change or %GST_CLOCK_TIME_NONE for infinite timeout.</doc>
5441             <type name="ClockTime" c:type="GstClockTime"/>
5442           </parameter>
5443         </parameters>
5444       </method>
5445       <method name="get_static_pad" c:identifier="gst_element_get_static_pad">
5446         <doc xml:whitespace="preserve">Retrieves a pad from @element by name. This version only retrieves
5447 already-existing (i.e. 'static') pads.
5448 unref after usage.
5449 MT safe.</doc>
5450         <return-value transfer-ownership="full">
5451           <doc xml:whitespace="preserve">the requested #GstPad if found, otherwise %NULL.</doc>
5452           <type name="Pad" c:type="GstPad*"/>
5453         </return-value>
5454         <parameters>
5455           <parameter name="name" transfer-ownership="none">
5456             <doc xml:whitespace="preserve">the name of the static #GstPad to retrieve.</doc>
5457             <type name="utf8" c:type="gchar*"/>
5458           </parameter>
5459         </parameters>
5460       </method>
5461       <method name="implements_interface"
5462               c:identifier="gst_element_implements_interface">
5463         <doc xml:whitespace="preserve">Test whether the given element implements a certain interface of type
5464 iface_type, and test whether it is supported for this specific instance.</doc>
5465         <return-value transfer-ownership="none">
5466           <doc xml:whitespace="preserve">whether or not the element implements the interface.</doc>
5467           <type name="gboolean" c:type="gboolean"/>
5468         </return-value>
5469         <parameters>
5470           <parameter name="iface_type" transfer-ownership="none">
5471             <doc xml:whitespace="preserve">(final) type of the interface which we want to be implemented</doc>
5472             <type name="GType" c:type="GType"/>
5473           </parameter>
5474         </parameters>
5475       </method>
5476       <method name="is_indexable" c:identifier="gst_element_is_indexable">
5477         <doc xml:whitespace="preserve">Queries if the element can be indexed.
5478 MT safe.</doc>
5479         <return-value transfer-ownership="none">
5480           <doc xml:whitespace="preserve">TRUE if the element can be indexed.</doc>
5481           <type name="gboolean" c:type="gboolean"/>
5482         </return-value>
5483       </method>
5484       <method name="is_locked_state"
5485               c:identifier="gst_element_is_locked_state">
5486         <doc xml:whitespace="preserve">Checks if the state of an element is locked.
5487 If the state of an element is locked, state changes of the parent don't
5488 affect the element.
5489 This way you can leave currently unused elements inside bins. Just lock their
5490 state before changing the state from #GST_STATE_NULL.
5491 MT safe.</doc>
5492         <return-value transfer-ownership="none">
5493           <doc xml:whitespace="preserve">TRUE, if the element's state is locked.</doc>
5494           <type name="gboolean" c:type="gboolean"/>
5495         </return-value>
5496       </method>
5497       <method name="iterate_pads"
5498               c:identifier="gst_element_iterate_pads"
5499               introspectable="0">
5500         <doc xml:whitespace="preserve">Retrieves an iterattor of @element's pads. The iterator should
5501 be freed after usage.
5502 after use.
5503 MT safe.</doc>
5504         <return-value transfer-ownership="full">
5505           <doc xml:whitespace="preserve">the #GstIterator of #GstPad. Unref each pad</doc>
5506           <type name="Iterator" c:type="GstIterator*"/>
5507         </return-value>
5508       </method>
5509       <method name="iterate_sink_pads"
5510               c:identifier="gst_element_iterate_sink_pads"
5511               introspectable="0">
5512         <doc xml:whitespace="preserve">Retrieves an iterator of @element's sink pads.
5513 after use.
5514 MT safe.</doc>
5515         <return-value transfer-ownership="full">
5516           <doc xml:whitespace="preserve">the #GstIterator of #GstPad. Unref each pad</doc>
5517           <type name="Iterator" c:type="GstIterator*"/>
5518         </return-value>
5519       </method>
5520       <method name="iterate_src_pads"
5521               c:identifier="gst_element_iterate_src_pads"
5522               introspectable="0">
5523         <doc xml:whitespace="preserve">Retrieves an iterator of @element's source pads.
5524 after use.
5525 MT safe.</doc>
5526         <return-value transfer-ownership="full">
5527           <doc xml:whitespace="preserve">the #GstIterator of #GstPad. Unref each pad</doc>
5528           <type name="Iterator" c:type="GstIterator*"/>
5529         </return-value>
5530       </method>
5531       <method name="link" c:identifier="gst_element_link">
5532         <doc xml:whitespace="preserve">Links @src to @dest. The link must be from source to
5533 destination; the other direction will not be tried. The function looks for
5534 existing pads that aren't linked yet. It will request new pads if necessary.
5535 Such pads need to be released manualy when unlinking.
5536 If multiple links are possible, only one is established.
5537 Make sure you have added your elements to a bin or pipeline with
5538 gst_bin_add() before trying to link them.</doc>
5539         <return-value transfer-ownership="none">
5540           <doc xml:whitespace="preserve">TRUE if the elements could be linked, FALSE otherwise.</doc>
5541           <type name="gboolean" c:type="gboolean"/>
5542         </return-value>
5543         <parameters>
5544           <parameter name="dest" transfer-ownership="none">
5545             <doc xml:whitespace="preserve">the #GstElement containing the destination pad.</doc>
5546             <type name="Element" c:type="GstElement*"/>
5547           </parameter>
5548         </parameters>
5549       </method>
5550       <method name="link_filtered" c:identifier="gst_element_link_filtered">
5551         <doc xml:whitespace="preserve">Links @src to @dest using the given caps as filtercaps.
5552 The link must be from source to
5553 destination; the other direction will not be tried. The function looks for
5554 existing pads that aren't linked yet. It will request new pads if necessary.
5555 If multiple links are possible, only one is established.
5556 Make sure you have added your elements to a bin or pipeline with
5557 gst_bin_add() before trying to link them.</doc>
5558         <return-value transfer-ownership="none">
5559           <doc xml:whitespace="preserve">TRUE if the pads could be linked, FALSE otherwise.</doc>
5560           <type name="gboolean" c:type="gboolean"/>
5561         </return-value>
5562         <parameters>
5563           <parameter name="dest" transfer-ownership="none">
5564             <doc xml:whitespace="preserve">the #GstElement containing the destination pad.</doc>
5565             <type name="Element" c:type="GstElement*"/>
5566           </parameter>
5567           <parameter name="filter" transfer-ownership="none" allow-none="1">
5568             <doc xml:whitespace="preserve">the #GstCaps to filter the link, or #NULL for no filter.</doc>
5569             <type name="Caps" c:type="GstCaps*"/>
5570           </parameter>
5571         </parameters>
5572       </method>
5573       <method name="link_many"
5574               c:identifier="gst_element_link_many"
5575               introspectable="0">
5576         <doc xml:whitespace="preserve">Chain together a series of elements. Uses gst_element_link().
5577 Make sure you have added your elements to a bin or pipeline with
5578 gst_bin_add() before trying to link them.</doc>
5579         <return-value transfer-ownership="none">
5580           <doc xml:whitespace="preserve">TRUE on success, FALSE otherwise.</doc>
5581           <type name="gboolean" c:type="gboolean"/>
5582         </return-value>
5583         <parameters>
5584           <parameter name="element_2" transfer-ownership="none">
5585             <doc xml:whitespace="preserve">the second #GstElement in the link chain.</doc>
5586             <type name="Element" c:type="GstElement*"/>
5587           </parameter>
5588           <parameter transfer-ownership="none">
5589             <varargs>
5590             </varargs>
5591           </parameter>
5592         </parameters>
5593       </method>
5594       <method name="link_pads" c:identifier="gst_element_link_pads">
5595         <doc xml:whitespace="preserve">Links the two named pads of the source and destination elements.
5596 Side effect is that if one of the pads has no parent, it becomes a
5597 child of the parent of the other element.  If they have different
5598 parents, the link fails.</doc>
5599         <return-value transfer-ownership="none">
5600           <doc xml:whitespace="preserve">TRUE if the pads could be linked, FALSE otherwise.</doc>
5601           <type name="gboolean" c:type="gboolean"/>
5602         </return-value>
5603         <parameters>
5604           <parameter name="srcpadname"
5605                      transfer-ownership="none"
5606                      allow-none="1">
5607             <doc xml:whitespace="preserve">the name of the #GstPad in source element or NULL for any pad.</doc>
5608             <type name="utf8" c:type="gchar*"/>
5609           </parameter>
5610           <parameter name="dest" transfer-ownership="none">
5611             <doc xml:whitespace="preserve">the #GstElement containing the destination pad.</doc>
5612             <type name="Element" c:type="GstElement*"/>
5613           </parameter>
5614           <parameter name="destpadname"
5615                      transfer-ownership="none"
5616                      allow-none="1">
5617             <doc xml:whitespace="preserve">the name of the #GstPad in destination element, or NULL for any pad.</doc>
5618             <type name="utf8" c:type="gchar*"/>
5619           </parameter>
5620         </parameters>
5621       </method>
5622       <method name="link_pads_filtered"
5623               c:identifier="gst_element_link_pads_filtered">
5624         <doc xml:whitespace="preserve">Links the two named pads of the source and destination elements. Side effect
5625 is that if one of the pads has no parent, it becomes a child of the parent of
5626 the other element. If they have different parents, the link fails. If @caps
5627 is not #NULL, makes sure that the caps of the link is a subset of @caps.</doc>
5628         <return-value transfer-ownership="none">
5629           <doc xml:whitespace="preserve">TRUE if the pads could be linked, FALSE otherwise.</doc>
5630           <type name="gboolean" c:type="gboolean"/>
5631         </return-value>
5632         <parameters>
5633           <parameter name="srcpadname"
5634                      transfer-ownership="none"
5635                      allow-none="1">
5636             <doc xml:whitespace="preserve">the name of the #GstPad in source element or NULL for any pad.</doc>
5637             <type name="utf8" c:type="gchar*"/>
5638           </parameter>
5639           <parameter name="dest" transfer-ownership="none">
5640             <doc xml:whitespace="preserve">the #GstElement containing the destination pad.</doc>
5641             <type name="Element" c:type="GstElement*"/>
5642           </parameter>
5643           <parameter name="destpadname"
5644                      transfer-ownership="none"
5645                      allow-none="1">
5646             <doc xml:whitespace="preserve">the name of the #GstPad in destination element or NULL for any pad.</doc>
5647             <type name="utf8" c:type="gchar*"/>
5648           </parameter>
5649           <parameter name="filter" transfer-ownership="none" allow-none="1">
5650             <doc xml:whitespace="preserve">the #GstCaps to filter the link, or #NULL for no filter.</doc>
5651             <type name="Caps" c:type="GstCaps*"/>
5652           </parameter>
5653         </parameters>
5654       </method>
5655       <method name="link_pads_full"
5656               c:identifier="gst_element_link_pads_full"
5657               version="0.10.30">
5658         <doc xml:whitespace="preserve">Links the two named pads of the source and destination elements.
5659 Side effect is that if one of the pads has no parent, it becomes a
5660 child of the parent of the other element.  If they have different
5661 parents, the link fails.
5662 Calling gst_element_link_pads_full() with @flags == %GST_PAD_LINK_CHECK_DEFAULT
5663 is the same as calling gst_element_link_pads() and the recommended way of
5664 linking pads with safety checks applied.
5665 This is a convenience function for gst_pad_link_full().</doc>
5666         <return-value transfer-ownership="none">
5667           <doc xml:whitespace="preserve">TRUE if the pads could be linked, FALSE otherwise.</doc>
5668           <type name="gboolean" c:type="gboolean"/>
5669         </return-value>
5670         <parameters>
5671           <parameter name="srcpadname"
5672                      transfer-ownership="none"
5673                      allow-none="1">
5674             <doc xml:whitespace="preserve">the name of the #GstPad in source element or NULL for any pad.</doc>
5675             <type name="utf8" c:type="gchar*"/>
5676           </parameter>
5677           <parameter name="dest" transfer-ownership="none">
5678             <doc xml:whitespace="preserve">the #GstElement containing the destination pad.</doc>
5679             <type name="Element" c:type="GstElement*"/>
5680           </parameter>
5681           <parameter name="destpadname"
5682                      transfer-ownership="none"
5683                      allow-none="1">
5684             <doc xml:whitespace="preserve">the name of the #GstPad in destination element, or NULL for any pad.</doc>
5685             <type name="utf8" c:type="gchar*"/>
5686           </parameter>
5687           <parameter name="flags" transfer-ownership="none">
5688             <doc xml:whitespace="preserve">the #GstPadLinkCheck to be performed when linking pads.</doc>
5689             <type name="PadLinkCheck" c:type="GstPadLinkCheck"/>
5690           </parameter>
5691         </parameters>
5692       </method>
5693       <method name="lost_state" c:identifier="gst_element_lost_state">
5694         <doc xml:whitespace="preserve">Brings the element to the lost state. This function calls
5695 gst_element_lost_state_full() with the new_base_time set to %TRUE.
5696 This function is used internally and should normally not be called from
5697 plugins or applications.
5698 MT safe.</doc>
5699         <return-value transfer-ownership="none">
5700           <type name="none" c:type="void"/>
5701         </return-value>
5702       </method>
5703       <method name="lost_state_full"
5704               c:identifier="gst_element_lost_state_full"
5705               version="0.10.24">
5706         <doc xml:whitespace="preserve">Brings the element to the lost state. The current state of the
5707 element is copied to the pending state so that any call to
5708 gst_element_get_state() will return %GST_STATE_CHANGE_ASYNC.
5709 An ASYNC_START message is posted with indication to distribute a new
5710 base_time to the element when @new_base_time is %TRUE.
5711 If the element was PLAYING, it will go to PAUSED. The element
5712 will be restored to its PLAYING state by the parent pipeline when it
5713 prerolls again.
5714 This is mostly used for elements that lost their preroll buffer
5715 in the %GST_STATE_PAUSED or %GST_STATE_PLAYING state after a flush,
5716 they will go to their pending state again when a new preroll buffer is
5717 queued. This function can only be called when the element is currently
5718 not in error or an async state change.
5719 This function is used internally and should normally not be called from
5720 plugins or applications.
5721 MT safe.</doc>
5722         <return-value transfer-ownership="none">
5723           <type name="none" c:type="void"/>
5724         </return-value>
5725         <parameters>
5726           <parameter name="new_base_time" transfer-ownership="none">
5727             <doc xml:whitespace="preserve">if a new base time should be distributed</doc>
5728             <type name="gboolean" c:type="gboolean"/>
5729           </parameter>
5730         </parameters>
5731       </method>
5732       <method name="message_full" c:identifier="gst_element_message_full">
5733         <doc xml:whitespace="preserve">Post an error, warning or info message on the bus from inside an element.
5734 #GST_MESSAGE_INFO.
5735 MT safe.</doc>
5736         <return-value transfer-ownership="none">
5737           <type name="none" c:type="void"/>
5738         </return-value>
5739         <parameters>
5740           <parameter name="type" transfer-ownership="none">
5741             <doc xml:whitespace="preserve">the #GstMessageType</doc>
5742             <type name="MessageType" c:type="GstMessageType"/>
5743           </parameter>
5744           <parameter name="domain" transfer-ownership="none">
5745             <doc xml:whitespace="preserve">the GStreamer GError domain this message belongs to</doc>
5746             <type name="GLib.Quark" c:type="GQuark"/>
5747           </parameter>
5748           <parameter name="code" transfer-ownership="none">
5749             <doc xml:whitespace="preserve">the GError code belonging to the domain</doc>
5750             <type name="gint" c:type="gint"/>
5751           </parameter>
5752           <parameter name="text" transfer-ownership="full" allow-none="1">
5753             <doc xml:whitespace="preserve">an allocated text string to be used as a replacement for the default message connected to code, or %NULL</doc>
5754             <type name="utf8" c:type="gchar*"/>
5755           </parameter>
5756           <parameter name="debug" transfer-ownership="full" allow-none="1">
5757             <doc xml:whitespace="preserve">an allocated debug message to be used as a replacement for the default debugging information, or %NULL</doc>
5758             <type name="utf8" c:type="gchar*"/>
5759           </parameter>
5760           <parameter name="file" transfer-ownership="none">
5761             <doc xml:whitespace="preserve">the source code file where the error was generated</doc>
5762             <type name="utf8" c:type="gchar*"/>
5763           </parameter>
5764           <parameter name="function" transfer-ownership="none">
5765             <doc xml:whitespace="preserve">the source code function where the error was generated</doc>
5766             <type name="utf8" c:type="gchar*"/>
5767           </parameter>
5768           <parameter name="line" transfer-ownership="none">
5769             <doc xml:whitespace="preserve">the source code line where the error was generated</doc>
5770             <type name="gint" c:type="gint"/>
5771           </parameter>
5772         </parameters>
5773       </method>
5774       <method name="no_more_pads" c:identifier="gst_element_no_more_pads">
5775         <doc xml:whitespace="preserve">Use this function to signal that the element does not expect any more pads
5776 to show up in the current pipeline. This function should be called whenever
5777 pads have been added by the element itself. Elements with #GST_PAD_SOMETIMES
5778 pad templates use this in combination with autopluggers to figure out that
5779 the element is done initializing its pads.
5780 This function emits the #GstElement::no-more-pads signal.
5781 MT safe.</doc>
5782         <return-value transfer-ownership="none">
5783           <type name="none" c:type="void"/>
5784         </return-value>
5785       </method>
5786       <method name="post_message" c:identifier="gst_element_post_message">
5787         <doc xml:whitespace="preserve">Post a message on the element's #GstBus. This function takes ownership of the
5788 message; if you want to access the message after this call, you should add an
5789 additional reference before calling.
5790 %FALSE if the element did not have a bus.
5791 MT safe.</doc>
5792         <return-value transfer-ownership="none">
5793           <doc xml:whitespace="preserve">%TRUE if the message was successfully posted. The function returns</doc>
5794           <type name="gboolean" c:type="gboolean"/>
5795         </return-value>
5796         <parameters>
5797           <parameter name="message" transfer-ownership="full">
5798             <doc xml:whitespace="preserve">a #GstMessage to post</doc>
5799             <type name="Message" c:type="GstMessage*"/>
5800           </parameter>
5801         </parameters>
5802       </method>
5803       <method name="provide_clock" c:identifier="gst_element_provide_clock">
5804         <doc xml:whitespace="preserve">Get the clock provided by the given element.
5805 &lt;note&gt;An element is only required to provide a clock in the PAUSED
5806 state. Some elements can provide a clock in other states.&lt;/note&gt;
5807 if no clock could be provided.  Unref after usage.
5808 MT safe.</doc>
5809         <return-value transfer-ownership="full">
5810           <doc xml:whitespace="preserve">the GstClock provided by the element or %NULL</doc>
5811           <type name="Clock" c:type="GstClock*"/>
5812         </return-value>
5813       </method>
5814       <method name="provides_clock" c:identifier="gst_element_provides_clock">
5815         <doc xml:whitespace="preserve">Query if the element provides a clock. A #GstClock provided by an
5816 element can be used as the global #GstClock for the pipeline.
5817 An element that can provide a clock is only required to do so in the PAUSED
5818 state, this means when it is fully negotiated and has allocated the resources
5819 to operate the clock.
5820 MT safe.</doc>
5821         <return-value transfer-ownership="none">
5822           <doc xml:whitespace="preserve">%TRUE if the element provides a clock</doc>
5823           <type name="gboolean" c:type="gboolean"/>
5824         </return-value>
5825       </method>
5826       <method name="query" c:identifier="gst_element_query">
5827         <doc xml:whitespace="preserve">Performs a query on the given element.
5828 For elements that don't implement a query handler, this function
5829 forwards the query to a random srcpad or to the peer of a
5830 random linked sinkpad of this element.
5831 Please note that some queries might need a running pipeline to work.
5832 MT safe.</doc>
5833         <return-value transfer-ownership="none">
5834           <doc xml:whitespace="preserve">TRUE if the query could be performed.</doc>
5835           <type name="gboolean" c:type="gboolean"/>
5836         </return-value>
5837         <parameters>
5838           <parameter name="query" transfer-ownership="none">
5839             <doc xml:whitespace="preserve">the #GstQuery.</doc>
5840             <type name="Query" c:type="GstQuery*"/>
5841           </parameter>
5842         </parameters>
5843       </method>
5844       <method name="query_convert" c:identifier="gst_element_query_convert">
5845         <doc xml:whitespace="preserve">Queries an element to convert @src_val in @src_format to @dest_format.</doc>
5846         <return-value transfer-ownership="none">
5847           <doc xml:whitespace="preserve">TRUE if the query could be performed.</doc>
5848           <type name="gboolean" c:type="gboolean"/>
5849         </return-value>
5850         <parameters>
5851           <parameter name="src_format"
5852                      direction="inout"
5853                      caller-allocates="0"
5854                      transfer-ownership="full">
5855             <doc xml:whitespace="preserve">a #GstFormat to convert from.</doc>
5856             <type name="Format" c:type="GstFormat"/>
5857           </parameter>
5858           <parameter name="src_val" transfer-ownership="none">
5859             <doc xml:whitespace="preserve">a value to convert.</doc>
5860             <type name="gint64" c:type="gint64"/>
5861           </parameter>
5862           <parameter name="dest_format"
5863                      direction="inout"
5864                      caller-allocates="0"
5865                      transfer-ownership="full">
5866             <doc xml:whitespace="preserve">a pointer to the #GstFormat to convert to.</doc>
5867             <type name="Format" c:type="GstFormat*"/>
5868           </parameter>
5869           <parameter name="dest_val"
5870                      direction="out"
5871                      caller-allocates="0"
5872                      transfer-ownership="full">
5873             <doc xml:whitespace="preserve">a pointer to the result.</doc>
5874             <type name="gint64" c:type="gint64*"/>
5875           </parameter>
5876         </parameters>
5877       </method>
5878       <method name="query_duration" c:identifier="gst_element_query_duration">
5879         <doc xml:whitespace="preserve">Queries an element for the total stream duration.</doc>
5880         <return-value transfer-ownership="none">
5881           <doc xml:whitespace="preserve">TRUE if the query could be performed.</doc>
5882           <type name="gboolean" c:type="gboolean"/>
5883         </return-value>
5884         <parameters>
5885           <parameter name="format"
5886                      direction="inout"
5887                      caller-allocates="0"
5888                      transfer-ownership="full">
5889             <doc xml:whitespace="preserve">a pointer to the #GstFormat asked for. On return contains the #GstFormat used.</doc>
5890             <type name="Format" c:type="GstFormat*"/>
5891           </parameter>
5892           <parameter name="duration"
5893                      direction="out"
5894                      caller-allocates="0"
5895                      transfer-ownership="full">
5896             <doc xml:whitespace="preserve">A location in which to store the total duration, or NULL.</doc>
5897             <type name="gint64" c:type="gint64*"/>
5898           </parameter>
5899         </parameters>
5900       </method>
5901       <method name="query_position" c:identifier="gst_element_query_position">
5902         <doc xml:whitespace="preserve">Queries an element for the stream position. If one repeatedly calls this
5903 function one can also create and reuse it in gst_element_query().</doc>
5904         <return-value transfer-ownership="none">
5905           <doc xml:whitespace="preserve">TRUE if the query could be performed.</doc>
5906           <type name="gboolean" c:type="gboolean"/>
5907         </return-value>
5908         <parameters>
5909           <parameter name="format"
5910                      direction="inout"
5911                      caller-allocates="0"
5912                      transfer-ownership="full">
5913             <doc xml:whitespace="preserve">a pointer to the #GstFormat asked for. On return contains the #GstFormat used.</doc>
5914             <type name="Format" c:type="GstFormat*"/>
5915           </parameter>
5916           <parameter name="cur"
5917                      direction="out"
5918                      caller-allocates="0"
5919                      transfer-ownership="full"
5920                      allow-none="1">
5921             <doc xml:whitespace="preserve">a location in which to store the current position, or NULL.</doc>
5922             <type name="gint64" c:type="gint64*"/>
5923           </parameter>
5924         </parameters>
5925       </method>
5926       <method name="release_request_pad"
5927               c:identifier="gst_element_release_request_pad">
5928         <doc xml:whitespace="preserve">Makes the element free the previously requested pad as obtained
5929 with gst_element_get_request_pad().
5930 This does not unref the pad. If the pad was created by using
5931 gst_element_get_request_pad(), gst_element_release_request_pad() needs to be
5932 followed by gst_object_unref() to free the @pad.
5933 MT safe.</doc>
5934         <return-value transfer-ownership="none">
5935           <type name="none" c:type="void"/>
5936         </return-value>
5937         <parameters>
5938           <parameter name="pad" transfer-ownership="none">
5939             <doc xml:whitespace="preserve">the #GstPad to release.</doc>
5940             <type name="Pad" c:type="GstPad*"/>
5941           </parameter>
5942         </parameters>
5943       </method>
5944       <method name="remove_pad" c:identifier="gst_element_remove_pad">
5945         <doc xml:whitespace="preserve">Removes @pad from @element. @pad will be destroyed if it has not been
5946 referenced elsewhere using gst_object_unparent().
5947 This function is used by plugin developers and should not be used
5948 by applications. Pads that were dynamically requested from elements
5949 with gst_element_get_request_pad() should be released with the
5950 gst_element_release_request_pad() function instead.
5951 Pads are not automatically deactivated so elements should perform the needed
5952 steps to deactivate the pad in case this pad is removed in the PAUSED or
5953 PLAYING state. See gst_pad_set_active() for more information about
5954 deactivating pads.
5955 The pad and the element should be unlocked when calling this function.
5956 This function will emit the #GstElement::pad-removed signal on the element.
5957 pad does not belong to the provided element.
5958 MT safe.</doc>
5959         <return-value transfer-ownership="none">
5960           <doc xml:whitespace="preserve">%TRUE if the pad could be removed. Can return %FALSE if the</doc>
5961           <type name="gboolean" c:type="gboolean"/>
5962         </return-value>
5963         <parameters>
5964           <parameter name="pad" transfer-ownership="none">
5965             <doc xml:whitespace="preserve">the #GstPad to remove from the element.</doc>
5966             <type name="Pad" c:type="GstPad*"/>
5967           </parameter>
5968         </parameters>
5969       </method>
5970       <method name="request_pad"
5971               c:identifier="gst_element_request_pad"
5972               version="0.10.32">
5973         <doc xml:whitespace="preserve">Retrieves a request pad from the element according to the provided template.
5974 If the @caps are specified and the element implements thew new
5975 request_new_pad_full virtual method, the element will use them to select
5976 which pad to create.
5977 The pad should be released with gst_element_release_request_pad().
5978 Release after usage.</doc>
5979         <return-value transfer-ownership="full">
5980           <doc xml:whitespace="preserve">requested #GstPad if found, otherwise %NULL.</doc>
5981           <type name="Pad" c:type="GstPad*"/>
5982         </return-value>
5983         <parameters>
5984           <parameter name="templ" transfer-ownership="none">
5985             <doc xml:whitespace="preserve">a #GstPadTemplate of which we want a pad of.</doc>
5986             <type name="PadTemplate" c:type="GstPadTemplate*"/>
5987           </parameter>
5988           <parameter name="name" transfer-ownership="none" allow-none="1">
5989             <doc xml:whitespace="preserve">the name of the request #GstPad to retrieve. Can be %NULL.</doc>
5990             <type name="utf8" c:type="gchar*"/>
5991           </parameter>
5992           <parameter name="caps" transfer-ownership="none" allow-none="1">
5993             <doc xml:whitespace="preserve">the caps of the pad we want to request. Can be %NULL.</doc>
5994             <type name="Caps" c:type="GstCaps*"/>
5995           </parameter>
5996         </parameters>
5997       </method>
5998       <method name="requires_clock" c:identifier="gst_element_requires_clock">
5999         <doc xml:whitespace="preserve">Query if the element requires a clock.
6000 MT safe.</doc>
6001         <return-value transfer-ownership="none">
6002           <doc xml:whitespace="preserve">%TRUE if the element requires a clock</doc>
6003           <type name="gboolean" c:type="gboolean"/>
6004         </return-value>
6005       </method>
6006       <method name="seek" c:identifier="gst_element_seek">
6007         <doc xml:whitespace="preserve">Sends a seek event to an element. See gst_event_new_seek() for the details of
6008 the parameters. The seek event is sent to the element using
6009 gst_element_send_event().
6010 MT safe.</doc>
6011         <return-value transfer-ownership="none">
6012           <doc xml:whitespace="preserve">%TRUE if the event was handled.</doc>
6013           <type name="gboolean" c:type="gboolean"/>
6014         </return-value>
6015         <parameters>
6016           <parameter name="rate" transfer-ownership="none">
6017             <doc xml:whitespace="preserve">The new playback rate</doc>
6018             <type name="gdouble" c:type="gdouble"/>
6019           </parameter>
6020           <parameter name="format" transfer-ownership="none">
6021             <doc xml:whitespace="preserve">The format of the seek values</doc>
6022             <type name="Format" c:type="GstFormat"/>
6023           </parameter>
6024           <parameter name="flags" transfer-ownership="none">
6025             <doc xml:whitespace="preserve">The optional seek flags.</doc>
6026             <type name="SeekFlags" c:type="GstSeekFlags"/>
6027           </parameter>
6028           <parameter name="cur_type" transfer-ownership="none">
6029             <doc xml:whitespace="preserve">The type and flags for the new current position</doc>
6030             <type name="SeekType" c:type="GstSeekType"/>
6031           </parameter>
6032           <parameter name="cur" transfer-ownership="none">
6033             <doc xml:whitespace="preserve">The value of the new current position</doc>
6034             <type name="gint64" c:type="gint64"/>
6035           </parameter>
6036           <parameter name="stop_type" transfer-ownership="none">
6037             <doc xml:whitespace="preserve">The type and flags for the new stop position</doc>
6038             <type name="SeekType" c:type="GstSeekType"/>
6039           </parameter>
6040           <parameter name="stop" transfer-ownership="none">
6041             <doc xml:whitespace="preserve">The value of the new stop position</doc>
6042             <type name="gint64" c:type="gint64"/>
6043           </parameter>
6044         </parameters>
6045       </method>
6046       <method name="seek_simple"
6047               c:identifier="gst_element_seek_simple"
6048               version="0.10.7">
6049         <doc xml:whitespace="preserve">Simple API to perform a seek on the given element, meaning it just seeks
6050 to the given position relative to the start of the stream. For more complex
6051 operations like segment seeks (e.g. for looping) or changing the playback
6052 rate or seeking relative to the last configured playback segment you should
6053 use gst_element_seek().
6054 In a completely prerolled PAUSED or PLAYING pipeline, seeking is always
6055 guaranteed to return %TRUE on a seekable media type or %FALSE when the media
6056 type is certainly not seekable (such as a live stream).
6057 Some elements allow for seeking in the READY state, in this
6058 case they will store the seek event and execute it when they are put to
6059 PAUSED. If the element supports seek in READY, it will always return %TRUE when
6060 it receives the event in the READY state.
6061 executed instantly though)</doc>
6062         <return-value transfer-ownership="none">
6063           <doc xml:whitespace="preserve">%TRUE if the seek operation succeeded (the seek might not always be</doc>
6064           <type name="gboolean" c:type="gboolean"/>
6065         </return-value>
6066         <parameters>
6067           <parameter name="format" transfer-ownership="none">
6068             <doc xml:whitespace="preserve">a #GstFormat to execute the seek in, such as #GST_FORMAT_TIME</doc>
6069             <type name="Format" c:type="GstFormat"/>
6070           </parameter>
6071           <parameter name="seek_flags" transfer-ownership="none">
6072             <doc xml:whitespace="preserve">seek options; playback applications will usually want to use GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_KEY_UNIT here</doc>
6073             <type name="SeekFlags" c:type="GstSeekFlags"/>
6074           </parameter>
6075           <parameter name="seek_pos" transfer-ownership="none">
6076             <doc xml:whitespace="preserve">position to seek to (relative to the start); if you are doing a seek in #GST_FORMAT_TIME this value is in nanoseconds - multiply with #GST_SECOND to convert seconds to nanoseconds or with #GST_MSECOND to convert milliseconds to nanoseconds.</doc>
6077             <type name="gint64" c:type="gint64"/>
6078           </parameter>
6079         </parameters>
6080       </method>
6081       <method name="send_event" c:identifier="gst_element_send_event">
6082         <doc xml:whitespace="preserve">Sends an event to an element. If the element doesn't implement an
6083 event handler, the event will be pushed on a random linked sink pad for
6084 upstream events or a random linked source pad for downstream events.
6085 This function takes owership of the provided event so you should
6086 gst_event_ref() it if you want to reuse the event after this call.
6087 MT safe.</doc>
6088         <return-value transfer-ownership="none">
6089           <doc xml:whitespace="preserve">%TRUE if the event was handled.</doc>
6090           <type name="gboolean" c:type="gboolean"/>
6091         </return-value>
6092         <parameters>
6093           <parameter name="event" transfer-ownership="full">
6094             <doc xml:whitespace="preserve">the #GstEvent to send to the element.</doc>
6095             <type name="Event" c:type="GstEvent*"/>
6096           </parameter>
6097         </parameters>
6098       </method>
6099       <method name="set_base_time" c:identifier="gst_element_set_base_time">
6100         <doc xml:whitespace="preserve">Set the base time of an element. See gst_element_get_base_time().
6101 MT safe.</doc>
6102         <return-value transfer-ownership="none">
6103           <type name="none" c:type="void"/>
6104         </return-value>
6105         <parameters>
6106           <parameter name="time" transfer-ownership="none">
6107             <doc xml:whitespace="preserve">the base time to set.</doc>
6108             <type name="ClockTime" c:type="GstClockTime"/>
6109           </parameter>
6110         </parameters>
6111       </method>
6112       <method name="set_bus" c:identifier="gst_element_set_bus">
6113         <doc xml:whitespace="preserve">Sets the bus of the element. Increases the refcount on the bus.
6114 For internal use only, unless you're testing elements.
6115 MT safe.</doc>
6116         <return-value transfer-ownership="none">
6117           <type name="none" c:type="void"/>
6118         </return-value>
6119         <parameters>
6120           <parameter name="bus" transfer-ownership="none">
6121             <doc xml:whitespace="preserve">the #GstBus to set.</doc>
6122             <type name="Bus" c:type="GstBus*"/>
6123           </parameter>
6124         </parameters>
6125       </method>
6126       <method name="set_clock" c:identifier="gst_element_set_clock">
6127         <doc xml:whitespace="preserve">Sets the clock for the element. This function increases the
6128 refcount on the clock. Any previously set clock on the object
6129 is unreffed.
6130 clock when it, for example, is not able to slave its internal clock to the
6131 MT safe.</doc>
6132         <return-value transfer-ownership="none">
6133           <doc xml:whitespace="preserve">%TRUE if the element accepted the clock. An element can refuse a</doc>
6134           <type name="gboolean" c:type="gboolean"/>
6135         </return-value>
6136         <parameters>
6137           <parameter name="clock" transfer-ownership="none">
6138             <doc xml:whitespace="preserve">the #GstClock to set for the element.</doc>
6139             <type name="Clock" c:type="GstClock*"/>
6140           </parameter>
6141         </parameters>
6142       </method>
6143       <method name="set_index" c:identifier="gst_element_set_index">
6144         <doc xml:whitespace="preserve">Set @index on the element. The refcount of the index
6145 will be increased, any previously set index is unreffed.
6146 MT safe.</doc>
6147         <return-value transfer-ownership="none">
6148           <type name="none" c:type="void"/>
6149         </return-value>
6150         <parameters>
6151           <parameter name="index" transfer-ownership="none">
6152             <doc xml:whitespace="preserve">a #GstIndex.</doc>
6153             <type name="Index" c:type="GstIndex*"/>
6154           </parameter>
6155         </parameters>
6156       </method>
6157       <method name="set_locked_state"
6158               c:identifier="gst_element_set_locked_state">
6159         <doc xml:whitespace="preserve">Locks the state of an element, so state changes of the parent don't affect
6160 this element anymore.
6161 MT safe.
6162 or the elements state-locking needed no change.</doc>
6163         <return-value transfer-ownership="none">
6164           <doc xml:whitespace="preserve">TRUE if the state was changed, FALSE if bad parameters were given</doc>
6165           <type name="gboolean" c:type="gboolean"/>
6166         </return-value>
6167         <parameters>
6168           <parameter name="locked_state" transfer-ownership="none">
6169             <doc xml:whitespace="preserve">TRUE to lock the element's state</doc>
6170             <type name="gboolean" c:type="gboolean"/>
6171           </parameter>
6172         </parameters>
6173       </method>
6174       <method name="set_start_time"
6175               c:identifier="gst_element_set_start_time"
6176               version="0.10.24">
6177         <doc xml:whitespace="preserve">Set the start time of an element. The start time of the element is the
6178 running time of the element when it last went to the PAUSED state. In READY
6179 or after a flushing seek, it is set to 0.
6180 Toplevel elements like #GstPipeline will manage the start_time and
6181 base_time on its children. Setting the start_time to #GST_CLOCK_TIME_NONE
6182 on such a toplevel element will disable the distribution of the base_time to
6183 the children and can be useful if the application manages the base_time
6184 itself, for example if you want to synchronize capture from multiple
6185 pipelines, and you can also ensure that the pipelines have the same clock.
6186 MT safe.</doc>
6187         <return-value transfer-ownership="none">
6188           <type name="none" c:type="void"/>
6189         </return-value>
6190         <parameters>
6191           <parameter name="time" transfer-ownership="none">
6192             <doc xml:whitespace="preserve">the base time to set.</doc>
6193             <type name="ClockTime" c:type="GstClockTime"/>
6194           </parameter>
6195         </parameters>
6196       </method>
6197       <method name="set_state" c:identifier="gst_element_set_state">
6198         <doc xml:whitespace="preserve">Sets the state of the element. This function will try to set the
6199 requested state by going through all the intermediary states and calling
6200 the class's state change function for each.
6201 This function can return #GST_STATE_CHANGE_ASYNC, in which case the
6202 element will perform the remainder of the state change asynchronously in
6203 another thread.
6204 An application can use gst_element_get_state() to wait for the completion
6205 of the state change or it can wait for a state change message on the bus.
6206 State changes to %GST_STATE_READY or %GST_STATE_NULL never return
6207 #GST_STATE_CHANGE_ASYNC.
6208 MT safe.</doc>
6209         <return-value transfer-ownership="none">
6210           <doc xml:whitespace="preserve">Result of the state change using #GstStateChangeReturn.</doc>
6211           <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
6212         </return-value>
6213         <parameters>
6214           <parameter name="state" transfer-ownership="none">
6215             <doc xml:whitespace="preserve">the element's new #GstState.</doc>
6216             <type name="State" c:type="GstState"/>
6217           </parameter>
6218         </parameters>
6219       </method>
6220       <method name="sync_state_with_parent"
6221               c:identifier="gst_element_sync_state_with_parent">
6222         <doc xml:whitespace="preserve">Tries to change the state of the element to the same as its parent.
6223 If this function returns FALSE, the state of element is undefined.
6224 MT safe.</doc>
6225         <return-value transfer-ownership="none">
6226           <doc xml:whitespace="preserve">TRUE, if the element's state could be synced to the parent's state.</doc>
6227           <type name="gboolean" c:type="gboolean"/>
6228         </return-value>
6229       </method>
6230       <method name="unlink" c:identifier="gst_element_unlink">
6231         <doc xml:whitespace="preserve">Unlinks all source pads of the source element with all sink pads
6232 of the sink element to which they are linked.
6233 If the link has been made using gst_element_link(), it could have created an
6234 requestpad, which has to be released using gst_element_release_request_pad().</doc>
6235         <return-value transfer-ownership="none">
6236           <type name="none" c:type="void"/>
6237         </return-value>
6238         <parameters>
6239           <parameter name="dest" transfer-ownership="none">
6240             <doc xml:whitespace="preserve">the sink #GstElement to unlink.</doc>
6241             <type name="Element" c:type="GstElement*"/>
6242           </parameter>
6243         </parameters>
6244       </method>
6245       <method name="unlink_many"
6246               c:identifier="gst_element_unlink_many"
6247               introspectable="0">
6248         <doc xml:whitespace="preserve">Unlinks a series of elements. Uses gst_element_unlink().</doc>
6249         <return-value transfer-ownership="none">
6250           <type name="none" c:type="void"/>
6251         </return-value>
6252         <parameters>
6253           <parameter name="element_2" transfer-ownership="none">
6254             <doc xml:whitespace="preserve">the second #GstElement in the link chain.</doc>
6255             <type name="Element" c:type="GstElement*"/>
6256           </parameter>
6257           <parameter transfer-ownership="none">
6258             <varargs>
6259             </varargs>
6260           </parameter>
6261         </parameters>
6262       </method>
6263       <method name="unlink_pads" c:identifier="gst_element_unlink_pads">
6264         <doc xml:whitespace="preserve">Unlinks the two named pads of the source and destination elements.
6265 This is a convenience function for gst_pad_unlink().</doc>
6266         <return-value transfer-ownership="none">
6267           <type name="none" c:type="void"/>
6268         </return-value>
6269         <parameters>
6270           <parameter name="srcpadname" transfer-ownership="none">
6271             <doc xml:whitespace="preserve">the name of the #GstPad in source element.</doc>
6272             <type name="utf8" c:type="gchar*"/>
6273           </parameter>
6274           <parameter name="dest" transfer-ownership="none">
6275             <doc xml:whitespace="preserve">a #GstElement containing the destination pad.</doc>
6276             <type name="Element" c:type="GstElement*"/>
6277           </parameter>
6278           <parameter name="destpadname" transfer-ownership="none">
6279             <doc xml:whitespace="preserve">the name of the #GstPad in destination element.</doc>
6280             <type name="utf8" c:type="gchar*"/>
6281           </parameter>
6282         </parameters>
6283       </method>
6284       <field name="object">
6285         <type name="Object" c:type="GstObject"/>
6286       </field>
6287       <field name="state_lock">
6288         <type name="GLib.StaticRecMutex" c:type="GStaticRecMutex*"/>
6289       </field>
6290       <field name="state_cond">
6291         <type name="GLib.Cond" c:type="GCond*"/>
6292       </field>
6293       <field name="state_cookie">
6294         <type name="guint32" c:type="guint32"/>
6295       </field>
6296       <field name="current_state">
6297         <type name="State" c:type="GstState"/>
6298       </field>
6299       <field name="next_state">
6300         <type name="State" c:type="GstState"/>
6301       </field>
6302       <field name="pending_state">
6303         <type name="State" c:type="GstState"/>
6304       </field>
6305       <field name="last_return">
6306         <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
6307       </field>
6308       <field name="bus">
6309         <type name="Bus" c:type="GstBus*"/>
6310       </field>
6311       <field name="clock">
6312         <type name="Clock" c:type="GstClock*"/>
6313       </field>
6314       <field name="base_time">
6315         <type name="ClockTimeDiff" c:type="GstClockTimeDiff"/>
6316       </field>
6317       <field name="numpads">
6318         <type name="guint16" c:type="guint16"/>
6319       </field>
6320       <field name="pads">
6321         <type name="GLib.List" c:type="GList*">
6322           <type name="gpointer" c:type="gpointer"/>
6323         </type>
6324       </field>
6325       <field name="numsrcpads">
6326         <type name="guint16" c:type="guint16"/>
6327       </field>
6328       <field name="srcpads">
6329         <type name="GLib.List" c:type="GList*">
6330           <type name="gpointer" c:type="gpointer"/>
6331         </type>
6332       </field>
6333       <field name="numsinkpads">
6334         <type name="guint16" c:type="guint16"/>
6335       </field>
6336       <field name="sinkpads">
6337         <type name="GLib.List" c:type="GList*">
6338           <type name="gpointer" c:type="gpointer"/>
6339         </type>
6340       </field>
6341       <field name="pads_cookie">
6342         <type name="guint32" c:type="guint32"/>
6343       </field>
6344       <union name="abidata" c:type="abidata">
6345         <record name="ABI" c:type="ABI">
6346           <field name="target_state" writable="1">
6347             <type name="State" c:type="GstState"/>
6348           </field>
6349           <field name="start_time" writable="1">
6350             <type name="ClockTime" c:type="GstClockTime"/>
6351           </field>
6352         </record>
6353         <field name="_gst_reserved" writable="1">
6354           <array zero-terminated="0" c:type="gpointer" fixed-size="4">
6355             <type name="gpointer" c:type="gpointer"/>
6356           </array>
6357         </field>
6358       </union>
6359       <glib:signal name="no-more-pads">
6360         <doc xml:whitespace="preserve">This signals that the element will not generate more dynamic pads.
6361 Note that this signal will usually be emitted from the context of
6362 the streaming thread.</doc>
6363         <return-value transfer-ownership="none">
6364           <type name="none"/>
6365         </return-value>
6366       </glib:signal>
6367       <glib:signal name="pad-added">
6368         <doc xml:whitespace="preserve">a new #GstPad has been added to the element. Note that this signal will
6369 usually be emitted from the context of the streaming thread. Also keep in
6370 mind that if you add new elements to the pipeline in the signal handler
6371 you will need to set them to the desired target state with
6372 gst_element_set_state() or gst_element_sync_state_with_parent().</doc>
6373         <return-value transfer-ownership="none">
6374           <type name="none"/>
6375         </return-value>
6376         <parameters>
6377           <parameter name="new_pad" transfer-ownership="none">
6378             <doc xml:whitespace="preserve">the pad that has been added</doc>
6379             <type name="Pad"/>
6380           </parameter>
6381         </parameters>
6382       </glib:signal>
6383       <glib:signal name="pad-removed">
6384         <doc xml:whitespace="preserve">a #GstPad has been removed from the element</doc>
6385         <return-value transfer-ownership="none">
6386           <type name="none"/>
6387         </return-value>
6388         <parameters>
6389           <parameter name="old_pad" transfer-ownership="none">
6390             <doc xml:whitespace="preserve">the pad that has been removed</doc>
6391             <type name="Pad"/>
6392           </parameter>
6393         </parameters>
6394       </glib:signal>
6395     </class>
6396     <record name="ElementClass"
6397             c:type="GstElementClass"
6398             glib:is-gtype-struct-for="Element">
6399       <doc xml:whitespace="preserve">GStreamer element class. Override the vmethods to implement the element
6400 functionality.</doc>
6401       <field name="parent_class">
6402         <type name="ObjectClass" c:type="GstObjectClass"/>
6403       </field>
6404       <field name="details">
6405         <type name="ElementDetails" c:type="GstElementDetails"/>
6406       </field>
6407       <field name="elementfactory">
6408         <type name="ElementFactory" c:type="GstElementFactory*"/>
6409       </field>
6410       <field name="padtemplates">
6411         <type name="GLib.List" c:type="GList*">
6412           <type name="gpointer" c:type="gpointer"/>
6413         </type>
6414       </field>
6415       <field name="numpadtemplates">
6416         <type name="gint" c:type="gint"/>
6417       </field>
6418       <field name="pad_templ_cookie">
6419         <type name="guint32" c:type="guint32"/>
6420       </field>
6421       <field name="pad_added">
6422         <callback name="pad_added">
6423           <return-value transfer-ownership="none">
6424             <type name="none" c:type="void"/>
6425           </return-value>
6426           <parameters>
6427             <parameter name="element" transfer-ownership="none">
6428               <type name="Element" c:type="GstElement*"/>
6429             </parameter>
6430             <parameter name="pad" transfer-ownership="none">
6431               <type name="Pad" c:type="GstPad*"/>
6432             </parameter>
6433           </parameters>
6434         </callback>
6435       </field>
6436       <field name="pad_removed">
6437         <callback name="pad_removed">
6438           <return-value transfer-ownership="none">
6439             <type name="none" c:type="void"/>
6440           </return-value>
6441           <parameters>
6442             <parameter name="element" transfer-ownership="none">
6443               <type name="Element" c:type="GstElement*"/>
6444             </parameter>
6445             <parameter name="pad" transfer-ownership="none">
6446               <type name="Pad" c:type="GstPad*"/>
6447             </parameter>
6448           </parameters>
6449         </callback>
6450       </field>
6451       <field name="no_more_pads">
6452         <callback name="no_more_pads">
6453           <return-value transfer-ownership="none">
6454             <type name="none" c:type="void"/>
6455           </return-value>
6456           <parameters>
6457             <parameter name="element" transfer-ownership="none">
6458               <type name="Element" c:type="GstElement*"/>
6459             </parameter>
6460           </parameters>
6461         </callback>
6462       </field>
6463       <field name="request_new_pad" introspectable="0">
6464         <callback name="request_new_pad" introspectable="0">
6465           <return-value>
6466             <type name="Pad" c:type="GstPad*"/>
6467           </return-value>
6468           <parameters>
6469             <parameter name="element" transfer-ownership="none">
6470               <type name="Element" c:type="GstElement*"/>
6471             </parameter>
6472             <parameter name="templ" transfer-ownership="none">
6473               <type name="PadTemplate" c:type="GstPadTemplate*"/>
6474             </parameter>
6475             <parameter name="name" transfer-ownership="none">
6476               <type name="utf8" c:type="gchar*"/>
6477             </parameter>
6478           </parameters>
6479         </callback>
6480       </field>
6481       <field name="release_pad">
6482         <callback name="release_pad">
6483           <return-value transfer-ownership="none">
6484             <type name="none" c:type="void"/>
6485           </return-value>
6486           <parameters>
6487             <parameter name="element" transfer-ownership="none">
6488               <type name="Element" c:type="GstElement*"/>
6489             </parameter>
6490             <parameter name="pad" transfer-ownership="none">
6491               <type name="Pad" c:type="GstPad*"/>
6492             </parameter>
6493           </parameters>
6494         </callback>
6495       </field>
6496       <field name="get_state">
6497         <callback name="get_state">
6498           <return-value transfer-ownership="none">
6499             <doc xml:whitespace="preserve">%GST_STATE_CHANGE_SUCCESS if the element has no more pending state</doc>
6500             <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
6501           </return-value>
6502           <parameters>
6503             <parameter name="element" transfer-ownership="none">
6504               <type name="Element" c:type="GstElement*"/>
6505             </parameter>
6506             <parameter name="state"
6507                        direction="out"
6508                        caller-allocates="0"
6509                        transfer-ownership="full"
6510                        allow-none="1">
6511               <doc xml:whitespace="preserve">a pointer to #GstState to hold the state. Can be %NULL.</doc>
6512               <type name="State" c:type="GstState*"/>
6513             </parameter>
6514             <parameter name="pending"
6515                        direction="out"
6516                        caller-allocates="0"
6517                        transfer-ownership="full"
6518                        allow-none="1">
6519               <doc xml:whitespace="preserve">a pointer to #GstState to hold the pending state. Can be %NULL.</doc>
6520               <type name="State" c:type="GstState*"/>
6521             </parameter>
6522             <parameter name="timeout" transfer-ownership="none">
6523               <doc xml:whitespace="preserve">a #GstClockTime to specify the timeout for an async state change or %GST_CLOCK_TIME_NONE for infinite timeout.</doc>
6524               <type name="ClockTime" c:type="GstClockTime"/>
6525             </parameter>
6526           </parameters>
6527         </callback>
6528       </field>
6529       <field name="set_state">
6530         <callback name="set_state">
6531           <return-value transfer-ownership="none">
6532             <doc xml:whitespace="preserve">Result of the state change using #GstStateChangeReturn.</doc>
6533             <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
6534           </return-value>
6535           <parameters>
6536             <parameter name="element" transfer-ownership="none">
6537               <type name="Element" c:type="GstElement*"/>
6538             </parameter>
6539             <parameter name="state" transfer-ownership="none">
6540               <doc xml:whitespace="preserve">the element's new #GstState.</doc>
6541               <type name="State" c:type="GstState"/>
6542             </parameter>
6543           </parameters>
6544         </callback>
6545       </field>
6546       <field name="change_state">
6547         <callback name="change_state">
6548           <return-value transfer-ownership="none">
6549             <doc xml:whitespace="preserve">the #GstStateChangeReturn of the state transition.</doc>
6550             <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
6551           </return-value>
6552           <parameters>
6553             <parameter name="element" transfer-ownership="none">
6554               <type name="Element" c:type="GstElement*"/>
6555             </parameter>
6556             <parameter name="transition" transfer-ownership="none">
6557               <doc xml:whitespace="preserve">the requested transition</doc>
6558               <type name="StateChange" c:type="GstStateChange"/>
6559             </parameter>
6560           </parameters>
6561         </callback>
6562       </field>
6563       <field name="set_bus">
6564         <callback name="set_bus">
6565           <return-value transfer-ownership="none">
6566             <type name="none" c:type="void"/>
6567           </return-value>
6568           <parameters>
6569             <parameter name="element" transfer-ownership="none">
6570               <type name="Element" c:type="GstElement*"/>
6571             </parameter>
6572             <parameter name="bus" transfer-ownership="none">
6573               <doc xml:whitespace="preserve">the #GstBus to set.</doc>
6574               <type name="Bus" c:type="GstBus*"/>
6575             </parameter>
6576           </parameters>
6577         </callback>
6578       </field>
6579       <field name="provide_clock">
6580         <callback name="provide_clock">
6581           <return-value transfer-ownership="full">
6582             <doc xml:whitespace="preserve">the GstClock provided by the element or %NULL</doc>
6583             <type name="Clock" c:type="GstClock*"/>
6584           </return-value>
6585           <parameters>
6586             <parameter name="element" transfer-ownership="none">
6587               <type name="Element" c:type="GstElement*"/>
6588             </parameter>
6589           </parameters>
6590         </callback>
6591       </field>
6592       <field name="set_clock">
6593         <callback name="set_clock">
6594           <return-value transfer-ownership="none">
6595             <doc xml:whitespace="preserve">%TRUE if the element accepted the clock. An element can refuse a</doc>
6596             <type name="gboolean" c:type="gboolean"/>
6597           </return-value>
6598           <parameters>
6599             <parameter name="element" transfer-ownership="none">
6600               <type name="Element" c:type="GstElement*"/>
6601             </parameter>
6602             <parameter name="clock" transfer-ownership="none">
6603               <doc xml:whitespace="preserve">the #GstClock to set for the element.</doc>
6604               <type name="Clock" c:type="GstClock*"/>
6605             </parameter>
6606           </parameters>
6607         </callback>
6608       </field>
6609       <field name="get_index">
6610         <callback name="get_index">
6611           <return-value transfer-ownership="full">
6612             <doc xml:whitespace="preserve">a #GstIndex or %NULL when no index was set on the</doc>
6613             <type name="Index" c:type="GstIndex*"/>
6614           </return-value>
6615           <parameters>
6616             <parameter name="element" transfer-ownership="none">
6617               <type name="Element" c:type="GstElement*"/>
6618             </parameter>
6619           </parameters>
6620         </callback>
6621       </field>
6622       <field name="set_index">
6623         <callback name="set_index">
6624           <return-value transfer-ownership="none">
6625             <type name="none" c:type="void"/>
6626           </return-value>
6627           <parameters>
6628             <parameter name="element" transfer-ownership="none">
6629               <type name="Element" c:type="GstElement*"/>
6630             </parameter>
6631             <parameter name="index" transfer-ownership="none">
6632               <doc xml:whitespace="preserve">a #GstIndex.</doc>
6633               <type name="Index" c:type="GstIndex*"/>
6634             </parameter>
6635           </parameters>
6636         </callback>
6637       </field>
6638       <field name="send_event">
6639         <callback name="send_event">
6640           <return-value transfer-ownership="none">
6641             <doc xml:whitespace="preserve">%TRUE if the event was handled.</doc>
6642             <type name="gboolean" c:type="gboolean"/>
6643           </return-value>
6644           <parameters>
6645             <parameter name="element" transfer-ownership="none">
6646               <type name="Element" c:type="GstElement*"/>
6647             </parameter>
6648             <parameter name="event" transfer-ownership="full">
6649               <doc xml:whitespace="preserve">the #GstEvent to send to the element.</doc>
6650               <type name="Event" c:type="GstEvent*"/>
6651             </parameter>
6652           </parameters>
6653         </callback>
6654       </field>
6655       <field name="get_query_types">
6656         <callback name="get_query_types">
6657           <return-value transfer-ownership="none">
6658             <doc xml:whitespace="preserve">An array of #GstQueryType elements that should not</doc>
6659             <type name="QueryType" c:type="GstQueryType*"/>
6660           </return-value>
6661           <parameters>
6662             <parameter name="element" transfer-ownership="none">
6663               <type name="Element" c:type="GstElement*"/>
6664             </parameter>
6665           </parameters>
6666         </callback>
6667       </field>
6668       <field name="query">
6669         <callback name="query">
6670           <return-value transfer-ownership="none">
6671             <doc xml:whitespace="preserve">TRUE if the query could be performed.</doc>
6672             <type name="gboolean" c:type="gboolean"/>
6673           </return-value>
6674           <parameters>
6675             <parameter name="element" transfer-ownership="none">
6676               <type name="Element" c:type="GstElement*"/>
6677             </parameter>
6678             <parameter name="query" transfer-ownership="none">
6679               <doc xml:whitespace="preserve">the #GstQuery.</doc>
6680               <type name="Query" c:type="GstQuery*"/>
6681             </parameter>
6682           </parameters>
6683         </callback>
6684       </field>
6685       <field name="meta_data" readable="0" private="1">
6686         <type name="gpointer" c:type="gpointer"/>
6687       </field>
6688       <field name="request_new_pad_full" introspectable="0">
6689         <callback name="request_new_pad_full" introspectable="0">
6690           <return-value>
6691             <type name="Pad" c:type="GstPad*"/>
6692           </return-value>
6693           <parameters>
6694             <parameter name="element" transfer-ownership="none">
6695               <type name="Element" c:type="GstElement*"/>
6696             </parameter>
6697             <parameter name="templ" transfer-ownership="none">
6698               <type name="PadTemplate" c:type="GstPadTemplate*"/>
6699             </parameter>
6700             <parameter name="name" transfer-ownership="none">
6701               <type name="utf8" c:type="gchar*"/>
6702             </parameter>
6703             <parameter name="caps" transfer-ownership="none">
6704               <type name="Caps" c:type="GstCaps*"/>
6705             </parameter>
6706           </parameters>
6707         </callback>
6708       </field>
6709       <field name="_gst_reserved" readable="0" private="1">
6710         <array zero-terminated="0" c:type="gpointer" fixed-size="2">
6711           <type name="gpointer" c:type="gpointer"/>
6712         </array>
6713       </field>
6714       <method name="add_pad_template"
6715               c:identifier="gst_element_class_add_pad_template">
6716         <doc xml:whitespace="preserve">Adds a padtemplate to an element class. This is mainly used in the _base_init
6717 functions of classes.</doc>
6718         <return-value transfer-ownership="none">
6719           <type name="none" c:type="void"/>
6720         </return-value>
6721         <parameters>
6722           <parameter name="templ" transfer-ownership="none">
6723             <doc xml:whitespace="preserve">a #GstPadTemplate to add to the element class.</doc>
6724             <type name="PadTemplate" c:type="GstPadTemplate*"/>
6725           </parameter>
6726         </parameters>
6727       </method>
6728       <method name="get_pad_template"
6729               c:identifier="gst_element_class_get_pad_template">
6730         <doc xml:whitespace="preserve">Retrieves a padtemplate from @element_class with the given name.
6731 &lt;note&gt;If you use this function in the #GInstanceInitFunc of an object class
6732 that has subclasses, make sure to pass the g_class parameter of the
6733 #GInstanceInitFunc here.&lt;/note&gt;
6734 if none was found. No unreferencing is necessary.</doc>
6735         <return-value transfer-ownership="none">
6736           <doc xml:whitespace="preserve">the #GstPadTemplate with the given name, or %NULL</doc>
6737           <type name="PadTemplate" c:type="GstPadTemplate*"/>
6738         </return-value>
6739         <parameters>
6740           <parameter name="name" transfer-ownership="none">
6741             <doc xml:whitespace="preserve">the name of the #GstPadTemplate to get.</doc>
6742             <type name="utf8" c:type="gchar*"/>
6743           </parameter>
6744         </parameters>
6745       </method>
6746       <method name="get_pad_template_list"
6747               c:identifier="gst_element_class_get_pad_template_list">
6748         <doc xml:whitespace="preserve">Retrieves a list of the pad templates associated with @element_class. The
6749 list must not be modified by the calling code.
6750 &lt;note&gt;If you use this function in the #GInstanceInitFunc of an object class
6751 that has subclasses, make sure to pass the g_class parameter of the
6752 #GInstanceInitFunc here.&lt;/note&gt;
6753 pad templates.</doc>
6754         <return-value transfer-ownership="none">
6755           <doc xml:whitespace="preserve">the #GList of</doc>
6756           <type name="GLib.List" c:type="GList*">
6757             <type name="PadTemplate"/>
6758           </type>
6759         </return-value>
6760       </method>
6761       <method name="install_std_props"
6762               c:identifier="gst_element_class_install_std_props"
6763               introspectable="0">
6764         <doc xml:whitespace="preserve">Adds a list of standardized properties with types to the @klass.
6765 the id is for the property switch in your get_prop method, and
6766 the flags determine readability / writeability.</doc>
6767         <return-value transfer-ownership="none">
6768           <type name="none" c:type="void"/>
6769         </return-value>
6770         <parameters>
6771           <parameter name="first_name" transfer-ownership="none">
6772             <doc xml:whitespace="preserve">the name of the first property. in a NULL terminated</doc>
6773             <type name="utf8" c:type="gchar*"/>
6774           </parameter>
6775           <parameter transfer-ownership="none">
6776             <varargs>
6777             </varargs>
6778           </parameter>
6779         </parameters>
6780       </method>
6781       <method name="set_details"
6782               c:identifier="gst_element_class_set_details"
6783               deprecated="Use gst_element_class_set_details_simple() instead.">
6784         <doc xml:whitespace="preserve">Sets the detailed information for a #GstElementClass.
6785 &lt;note&gt;This function is for use in _base_init functions only.&lt;/note&gt;
6786 The @details are copied.</doc>
6787         <return-value transfer-ownership="none">
6788           <type name="none" c:type="void"/>
6789         </return-value>
6790         <parameters>
6791           <parameter name="details" transfer-ownership="none">
6792             <doc xml:whitespace="preserve">details to set</doc>
6793             <type name="ElementDetails" c:type="GstElementDetails*"/>
6794           </parameter>
6795         </parameters>
6796       </method>
6797       <method name="set_details_simple"
6798               c:identifier="gst_element_class_set_details_simple"
6799               version="0.10.14">
6800         <doc xml:whitespace="preserve">Sets the detailed information for a #GstElementClass. Simpler version of
6801 gst_element_class_set_details() that generates less linker overhead.
6802 &lt;note&gt;This function is for use in _base_init functions only.&lt;/note&gt;
6803 The detail parameter strings are copied into the #GstElementDetails for
6804 the element class.</doc>
6805         <return-value transfer-ownership="none">
6806           <type name="none" c:type="void"/>
6807         </return-value>
6808         <parameters>
6809           <parameter name="longname" transfer-ownership="none">
6810             <doc xml:whitespace="preserve">The long English name of the element. E.g. "File Sink"</doc>
6811             <type name="utf8" c:type="gchar*"/>
6812           </parameter>
6813           <parameter name="classification" transfer-ownership="none">
6814             <doc xml:whitespace="preserve">String describing the type of element, as an unordered list separated with slashes ('/'). See draft-klass.txt of the design docs for more details and common types. E.g: "Sink/File"</doc>
6815             <type name="utf8" c:type="gchar*"/>
6816           </parameter>
6817           <parameter name="description" transfer-ownership="none">
6818             <doc xml:whitespace="preserve">Sentence describing the purpose of the element. E.g: "Write stream to a file"</doc>
6819             <type name="utf8" c:type="gchar*"/>
6820           </parameter>
6821           <parameter name="author" transfer-ownership="none">
6822             <doc xml:whitespace="preserve">Name and contact details of the author(s). Use \n to separate multiple author details. E.g: "Joe Bloggs &amp;lt;joe.blogs at foo.com&amp;gt;"</doc>
6823             <type name="utf8" c:type="gchar*"/>
6824           </parameter>
6825         </parameters>
6826       </method>
6827       <method name="set_documentation_uri"
6828               c:identifier="gst_element_class_set_documentation_uri"
6829               version="0.10.31">
6830         <doc xml:whitespace="preserve">Set uri pointing to user documentation. Applications can use this to show
6831 help for e.g. effects to users.</doc>
6832         <return-value transfer-ownership="none">
6833           <type name="none" c:type="void"/>
6834         </return-value>
6835         <parameters>
6836           <parameter name="uri" transfer-ownership="none">
6837             <doc xml:whitespace="preserve">uri of element documentation</doc>
6838             <type name="utf8" c:type="gchar*"/>
6839           </parameter>
6840         </parameters>
6841       </method>
6842       <method name="set_icon_name"
6843               c:identifier="gst_element_class_set_icon_name"
6844               version="0.10.31">
6845         <doc xml:whitespace="preserve">Elements that bridge to certain other products can include an icon of that
6846 used product. Application can show the icon in menus/selectors to help
6847 identifying specific elements.</doc>
6848         <return-value transfer-ownership="none">
6849           <type name="none" c:type="void"/>
6850         </return-value>
6851         <parameters>
6852           <parameter name="name" transfer-ownership="none">
6853             <doc xml:whitespace="preserve">name of an icon</doc>
6854             <type name="utf8" c:type="gchar*"/>
6855           </parameter>
6856         </parameters>
6857       </method>
6858     </record>
6859     <record name="ElementDetails" c:type="GstElementDetails">
6860       <doc xml:whitespace="preserve">This struct defines the public information about a #GstElement. It contains
6861 meta-data about the element that is mostly for the benefit of editors.
6862 The @klass member can be used by applications to filter elements based
6863 on functionality.</doc>
6864       <field name="longname" writable="1">
6865         <type name="utf8" c:type="gchar*"/>
6866       </field>
6867       <field name="klass" writable="1">
6868         <type name="utf8" c:type="gchar*"/>
6869       </field>
6870       <field name="description" writable="1">
6871         <type name="utf8" c:type="gchar*"/>
6872       </field>
6873       <field name="author" writable="1">
6874         <type name="utf8" c:type="gchar*"/>
6875       </field>
6876       <field name="_gst_reserved" readable="0" private="1">
6877         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
6878           <type name="gpointer" c:type="gpointer"/>
6879         </array>
6880       </field>
6881     </record>
6882     <class name="ElementFactory"
6883            c:symbol-prefix="element_factory"
6884            c:type="GstElementFactory"
6885            parent="PluginFeature"
6886            glib:type-name="GstElementFactory"
6887            glib:get-type="gst_element_factory_get_type"
6888            glib:type-struct="ElementFactoryClass">
6889       <doc xml:whitespace="preserve">#GstElementFactory is used to create instances of elements. A
6890 GstElementfactory can be added to a #GstPlugin as it is also a
6891 #GstPluginFeature.
6892 Use the gst_element_factory_find() and gst_element_factory_create()
6893 functions to create element instances or use gst_element_factory_make() as a
6894 convenient shortcut.
6895 The following code example shows you how to create a GstFileSrc element.
6896 &lt;example&gt;
6897 &lt;title&gt;Using an element factory&lt;/title&gt;
6898 &lt;programlisting language="c"&gt;
6899 #include &amp;lt;gst/gst.h&amp;gt;
6900 GstElement *src;
6901 GstElementFactory *srcfactory;
6902 gst_init (&amp;amp;argc, &amp;amp;argv);
6903 srcfactory = gst_element_factory_find ("filesrc");
6904 g_return_if_fail (srcfactory != NULL);
6905 src = gst_element_factory_create (srcfactory, "src");
6906 g_return_if_fail (src != NULL);
6907 ...
6908 &lt;/programlisting&gt;
6909 &lt;/example&gt;
6910 Last reviewed on 2005-11-23 (0.9.5)</doc>
6911       <function name="find" c:identifier="gst_element_factory_find">
6912         <doc xml:whitespace="preserve">Search for an element factory of the given name. Refs the returned
6913 element factory; caller is responsible for unreffing.</doc>
6914         <return-value transfer-ownership="full">
6915           <doc xml:whitespace="preserve">#GstElementFactory if found, NULL otherwise</doc>
6916           <type name="ElementFactory" c:type="GstElementFactory*"/>
6917         </return-value>
6918         <parameters>
6919           <parameter name="name" transfer-ownership="none">
6920             <doc xml:whitespace="preserve">name of factory to find</doc>
6921             <type name="utf8" c:type="gchar*"/>
6922           </parameter>
6923         </parameters>
6924       </function>
6925       <function name="list_filter"
6926                 c:identifier="gst_element_factory_list_filter"
6927                 version="0.10.31">
6928         <doc xml:whitespace="preserve">Filter out all the elementfactories in @list that can handle @caps in
6929 the given direction.
6930 If @subsetonly is %TRUE, then only the elements whose pads templates
6931 are a complete superset of @caps will be returned. Else any element
6932 whose pad templates caps can intersect with @caps will be returned.
6933 #GstElementFactory elements that match the given requisits.
6934 Use #gst_plugin_feature_list_free after usage.</doc>
6935         <return-value transfer-ownership="full">
6936           <doc xml:whitespace="preserve">a #GList of</doc>
6937           <type name="GLib.List" c:type="GList*">
6938             <type name="ElementFactory"/>
6939           </type>
6940         </return-value>
6941         <parameters>
6942           <parameter name="list" transfer-ownership="none">
6943             <doc xml:whitespace="preserve">a #GList of #GstElementFactory to filter</doc>
6944             <type name="GLib.List" c:type="GList*">
6945               <type name="ElementFactory"/>
6946             </type>
6947           </parameter>
6948           <parameter name="caps" transfer-ownership="none">
6949             <doc xml:whitespace="preserve">a #GstCaps</doc>
6950             <type name="Caps" c:type="GstCaps*"/>
6951           </parameter>
6952           <parameter name="direction" transfer-ownership="none">
6953             <doc xml:whitespace="preserve">a #GstPadDirection to filter on</doc>
6954             <type name="PadDirection" c:type="GstPadDirection"/>
6955           </parameter>
6956           <parameter name="subsetonly" transfer-ownership="none">
6957             <doc xml:whitespace="preserve">whether to filter on caps subsets or not.</doc>
6958             <type name="gboolean" c:type="gboolean"/>
6959           </parameter>
6960         </parameters>
6961       </function>
6962       <function name="list_get_elements"
6963                 c:identifier="gst_element_factory_list_get_elements"
6964                 version="0.10.31">
6965         <doc xml:whitespace="preserve">Get a list of factories that match the given @type. Only elements
6966 with a rank greater or equal to @minrank will be returned.
6967 The list of factories is returned by decreasing rank.
6968 #GstElementFactory elements. Use gst_plugin_feature_list_free() after
6969 usage.</doc>
6970         <return-value transfer-ownership="full">
6971           <doc xml:whitespace="preserve">a #GList of</doc>
6972           <type name="GLib.List" c:type="GList*">
6973             <type name="ElementFactory"/>
6974           </type>
6975         </return-value>
6976         <parameters>
6977           <parameter name="type" transfer-ownership="none">
6978             <doc xml:whitespace="preserve">a #GstElementFactoryListType</doc>
6979             <type name="ElementFactoryListType"
6980                   c:type="GstElementFactoryListType"/>
6981           </parameter>
6982           <parameter name="minrank" transfer-ownership="none">
6983             <doc xml:whitespace="preserve">Minimum rank</doc>
6984             <type name="Rank" c:type="GstRank"/>
6985           </parameter>
6986         </parameters>
6987       </function>
6988       <function name="make" c:identifier="gst_element_factory_make">
6989         <doc xml:whitespace="preserve">Create a new element of the type defined by the given element factory.
6990 If name is NULL, then the element will receive a guaranteed unique name,
6991 consisting of the element factory name and a number.
6992 If name is given, it will be given the name supplied.</doc>
6993         <return-value transfer-ownership="full">
6994           <doc xml:whitespace="preserve">new #GstElement or NULL if unable to create element</doc>
6995           <type name="Element" c:type="GstElement*"/>
6996         </return-value>
6997         <parameters>
6998           <parameter name="factoryname" transfer-ownership="none">
6999             <doc xml:whitespace="preserve">a named factory to instantiate</doc>
7000             <type name="utf8" c:type="gchar*"/>
7001           </parameter>
7002           <parameter name="name" transfer-ownership="none" allow-none="1">
7003             <doc xml:whitespace="preserve">name of new element</doc>
7004             <type name="utf8" c:type="gchar*"/>
7005           </parameter>
7006         </parameters>
7007       </function>
7008       <method name="can_sink_all_caps"
7009               c:identifier="gst_element_factory_can_sink_all_caps"
7010               version="0.10.33">
7011         <doc xml:whitespace="preserve">Checks if the factory can sink all possible capabilities.</doc>
7012         <return-value transfer-ownership="none">
7013           <doc xml:whitespace="preserve">%TRUE if the caps are fully compatible.</doc>
7014           <type name="gboolean" c:type="gboolean"/>
7015         </return-value>
7016         <parameters>
7017           <parameter name="caps" transfer-ownership="none">
7018             <doc xml:whitespace="preserve">the caps to check</doc>
7019             <type name="Caps" c:type="GstCaps*"/>
7020           </parameter>
7021         </parameters>
7022       </method>
7023       <method name="can_sink_any_caps"
7024               c:identifier="gst_element_factory_can_sink_any_caps"
7025               version="0.10.33">
7026         <doc xml:whitespace="preserve">Checks if the factory can sink any possible capability.</doc>
7027         <return-value transfer-ownership="none">
7028           <doc xml:whitespace="preserve">%TRUE if the caps have a common subset.</doc>
7029           <type name="gboolean" c:type="gboolean"/>
7030         </return-value>
7031         <parameters>
7032           <parameter name="caps" transfer-ownership="none">
7033             <doc xml:whitespace="preserve">the caps to check</doc>
7034             <type name="Caps" c:type="GstCaps*"/>
7035           </parameter>
7036         </parameters>
7037       </method>
7038       <method name="can_sink_caps"
7039               c:identifier="gst_element_factory_can_sink_caps"
7040               deprecated="use gst_element_factory_can_sink_all_caps() instead.">
7041         <doc xml:whitespace="preserve">Checks if the factory can sink the given capability.</doc>
7042         <return-value transfer-ownership="none">
7043           <doc xml:whitespace="preserve">%TRUE if it can sink the capabilities</doc>
7044           <type name="gboolean" c:type="gboolean"/>
7045         </return-value>
7046         <parameters>
7047           <parameter name="caps" transfer-ownership="none">
7048             <doc xml:whitespace="preserve">the caps to check</doc>
7049             <type name="Caps" c:type="GstCaps*"/>
7050           </parameter>
7051         </parameters>
7052       </method>
7053       <method name="can_src_all_caps"
7054               c:identifier="gst_element_factory_can_src_all_caps"
7055               version="0.10.33">
7056         <doc xml:whitespace="preserve">Checks if the factory can src all possible capabilities.</doc>
7057         <return-value transfer-ownership="none">
7058           <doc xml:whitespace="preserve">%TRUE if the caps are fully compatible.</doc>
7059           <type name="gboolean" c:type="gboolean"/>
7060         </return-value>
7061         <parameters>
7062           <parameter name="caps" transfer-ownership="none">
7063             <doc xml:whitespace="preserve">the caps to check</doc>
7064             <type name="Caps" c:type="GstCaps*"/>
7065           </parameter>
7066         </parameters>
7067       </method>
7068       <method name="can_src_any_caps"
7069               c:identifier="gst_element_factory_can_src_any_caps"
7070               version="0.10.33">
7071         <doc xml:whitespace="preserve">Checks if the factory can src any possible capability.</doc>
7072         <return-value transfer-ownership="none">
7073           <doc xml:whitespace="preserve">%TRUE if the caps have a common subset.</doc>
7074           <type name="gboolean" c:type="gboolean"/>
7075         </return-value>
7076         <parameters>
7077           <parameter name="caps" transfer-ownership="none">
7078             <doc xml:whitespace="preserve">the caps to check</doc>
7079             <type name="Caps" c:type="GstCaps*"/>
7080           </parameter>
7081         </parameters>
7082       </method>
7083       <method name="can_src_caps"
7084               c:identifier="gst_element_factory_can_src_caps"
7085               deprecated="use gst_element_factory_can_src_all_caps() instead.">
7086         <doc xml:whitespace="preserve">Checks if the factory can source the given capability.</doc>
7087         <return-value transfer-ownership="none">
7088           <doc xml:whitespace="preserve">%TRUE if it can src the capabilities</doc>
7089           <type name="gboolean" c:type="gboolean"/>
7090         </return-value>
7091         <parameters>
7092           <parameter name="caps" transfer-ownership="none">
7093             <doc xml:whitespace="preserve">the caps to check</doc>
7094             <type name="Caps" c:type="GstCaps*"/>
7095           </parameter>
7096         </parameters>
7097       </method>
7098       <method name="create" c:identifier="gst_element_factory_create">
7099         <doc xml:whitespace="preserve">Create a new element of the type defined by the given elementfactory.
7100 It will be given the name supplied, since all elements require a name as
7101 their first argument.
7102 be created</doc>
7103         <return-value transfer-ownership="full">
7104           <doc xml:whitespace="preserve">new #GstElement or NULL if the element couldn't</doc>
7105           <type name="Element" c:type="GstElement*"/>
7106         </return-value>
7107         <parameters>
7108           <parameter name="name" transfer-ownership="none">
7109             <doc xml:whitespace="preserve">name of new element</doc>
7110             <type name="utf8" c:type="gchar*"/>
7111           </parameter>
7112         </parameters>
7113       </method>
7114       <method name="get_author" c:identifier="gst_element_factory_get_author">
7115         <doc xml:whitespace="preserve">Gets the author for this factory.</doc>
7116         <return-value transfer-ownership="none">
7117           <doc xml:whitespace="preserve">the author</doc>
7118           <type name="utf8" c:type="gchar*"/>
7119         </return-value>
7120       </method>
7121       <method name="get_description"
7122               c:identifier="gst_element_factory_get_description">
7123         <doc xml:whitespace="preserve">Gets the description for this factory.</doc>
7124         <return-value transfer-ownership="none">
7125           <doc xml:whitespace="preserve">the description</doc>
7126           <type name="utf8" c:type="gchar*"/>
7127         </return-value>
7128       </method>
7129       <method name="get_documentation_uri"
7130               c:identifier="gst_element_factory_get_documentation_uri"
7131               version="0.10.31">
7132         <doc xml:whitespace="preserve">Gets documentation uri for this factory if set.</doc>
7133         <return-value transfer-ownership="none">
7134           <doc xml:whitespace="preserve">the documentation uri</doc>
7135           <type name="utf8" c:type="gchar*"/>
7136         </return-value>
7137       </method>
7138       <method name="get_element_type"
7139               c:identifier="gst_element_factory_get_element_type">
7140         <doc xml:whitespace="preserve">Get the #GType for elements managed by this factory. The type can
7141 only be retrieved if the element factory is loaded, which can be
7142 assured with gst_plugin_feature_load().
7143 the factory is not loaded.</doc>
7144         <return-value transfer-ownership="none">
7145           <doc xml:whitespace="preserve">the #GType for elements managed by this factory or 0 if</doc>
7146           <type name="GType" c:type="GType"/>
7147         </return-value>
7148       </method>
7149       <method name="get_icon_name"
7150               c:identifier="gst_element_factory_get_icon_name"
7151               version="0.10.31">
7152         <doc xml:whitespace="preserve">Gets icon name for this factory if set.</doc>
7153         <return-value transfer-ownership="none">
7154           <doc xml:whitespace="preserve">the icon name</doc>
7155           <type name="utf8" c:type="gchar*"/>
7156         </return-value>
7157       </method>
7158       <method name="get_klass" c:identifier="gst_element_factory_get_klass">
7159         <doc xml:whitespace="preserve">Gets the class for this factory.</doc>
7160         <return-value transfer-ownership="none">
7161           <doc xml:whitespace="preserve">the class</doc>
7162           <type name="utf8" c:type="gchar*"/>
7163         </return-value>
7164       </method>
7165       <method name="get_longname"
7166               c:identifier="gst_element_factory_get_longname">
7167         <doc xml:whitespace="preserve">Gets the longname for this factory</doc>
7168         <return-value transfer-ownership="none">
7169           <doc xml:whitespace="preserve">the longname</doc>
7170           <type name="utf8" c:type="gchar*"/>
7171         </return-value>
7172       </method>
7173       <method name="get_num_pad_templates"
7174               c:identifier="gst_element_factory_get_num_pad_templates">
7175         <doc xml:whitespace="preserve">Gets the number of pad_templates in this factory.</doc>
7176         <return-value transfer-ownership="none">
7177           <doc xml:whitespace="preserve">the number of pad_templates</doc>
7178           <type name="guint" c:type="guint"/>
7179         </return-value>
7180       </method>
7181       <method name="get_static_pad_templates"
7182               c:identifier="gst_element_factory_get_static_pad_templates">
7183         <doc xml:whitespace="preserve">Gets the #GList of #GstStaticPadTemplate for this factory.
7184 static pad templates</doc>
7185         <return-value transfer-ownership="none">
7186           <doc xml:whitespace="preserve">the</doc>
7187           <type name="GLib.List" c:type="GList*">
7188             <type name="StaticPadTemplate"/>
7189           </type>
7190         </return-value>
7191       </method>
7192       <method name="get_uri_protocols"
7193               c:identifier="gst_element_factory_get_uri_protocols">
7194         <doc xml:whitespace="preserve">Gets a NULL-terminated array of protocols this element supports or NULL if
7195 no protocols are supported. You may not change the contents of the returned
7196 array, as it is still owned by the element factory. Use g_strdupv() to
7197 make a copy of the protocol string array if you need to.
7198 or NULL</doc>
7199         <return-value transfer-ownership="none">
7200           <doc xml:whitespace="preserve">the supported protocols</doc>
7201           <array c:type="gchar**">
7202             <type name="utf8"/>
7203           </array>
7204         </return-value>
7205       </method>
7206       <method name="get_uri_type"
7207               c:identifier="gst_element_factory_get_uri_type">
7208         <doc xml:whitespace="preserve">Gets the type of URIs the element supports or #GST_URI_UNKNOWN if none.</doc>
7209         <return-value transfer-ownership="none">
7210           <doc xml:whitespace="preserve">type of URIs this element supports</doc>
7211           <type name="gint" c:type="gint"/>
7212         </return-value>
7213       </method>
7214       <method name="has_interface"
7215               c:identifier="gst_element_factory_has_interface"
7216               version="0.10.14">
7217         <doc xml:whitespace="preserve">Check if @factory implements the interface with name @interfacename.</doc>
7218         <return-value transfer-ownership="none">
7219           <doc xml:whitespace="preserve">#TRUE when @factory implement the interface.</doc>
7220           <type name="gboolean" c:type="gboolean"/>
7221         </return-value>
7222         <parameters>
7223           <parameter name="interfacename" transfer-ownership="none">
7224             <doc xml:whitespace="preserve">an interface name</doc>
7225             <type name="utf8" c:type="gchar*"/>
7226           </parameter>
7227         </parameters>
7228       </method>
7229       <method name="list_is_type"
7230               c:identifier="gst_element_factory_list_is_type"
7231               version="0.10.31">
7232         <doc xml:whitespace="preserve">Check if @factory if of the given types.</doc>
7233         <return-value transfer-ownership="none">
7234           <doc xml:whitespace="preserve">%TRUE if @factory is of @type.</doc>
7235           <type name="gboolean" c:type="gboolean"/>
7236         </return-value>
7237         <parameters>
7238           <parameter name="type" transfer-ownership="none">
7239             <doc xml:whitespace="preserve">a #GstElementFactoryListType</doc>
7240             <type name="ElementFactoryListType"
7241                   c:type="GstElementFactoryListType"/>
7242           </parameter>
7243         </parameters>
7244       </method>
7245       <field name="parent">
7246         <type name="PluginFeature" c:type="GstPluginFeature"/>
7247       </field>
7248       <field name="type">
7249         <type name="GType" c:type="GType"/>
7250       </field>
7251       <field name="details">
7252         <type name="ElementDetails" c:type="GstElementDetails"/>
7253       </field>
7254       <field name="staticpadtemplates">
7255         <type name="GLib.List" c:type="GList*">
7256           <type name="gpointer" c:type="gpointer"/>
7257         </type>
7258       </field>
7259       <field name="numpadtemplates">
7260         <type name="guint" c:type="guint"/>
7261       </field>
7262       <field name="uri_type">
7263         <type name="guint" c:type="guint"/>
7264       </field>
7265       <field name="uri_protocols">
7266         <type name="utf8" c:type="gchar**"/>
7267       </field>
7268       <field name="interfaces">
7269         <type name="GLib.List" c:type="GList*">
7270           <type name="gpointer" c:type="gpointer"/>
7271         </type>
7272       </field>
7273       <field name="meta_data" readable="0" private="1">
7274         <type name="gpointer" c:type="gpointer"/>
7275       </field>
7276       <field name="_gst_reserved" readable="0" private="1">
7277         <array zero-terminated="0" c:type="gpointer" fixed-size="3">
7278           <type name="gpointer" c:type="gpointer"/>
7279         </array>
7280       </field>
7281     </class>
7282     <record name="ElementFactoryClass"
7283             c:type="GstElementFactoryClass"
7284             glib:is-gtype-struct-for="ElementFactory">
7285       <field name="parent_class">
7286         <type name="PluginFeatureClass" c:type="GstPluginFeatureClass"/>
7287       </field>
7288       <field name="_gst_reserved">
7289         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
7290           <type name="gpointer" c:type="gpointer"/>
7291         </array>
7292       </field>
7293     </record>
7294     <bitfield name="ElementFlags" c:type="GstElementFlags">
7295       <doc xml:whitespace="preserve">The standard flags that an element may have.</doc>
7296       <member name="locked_state"
7297               value="16"
7298               c:identifier="GST_ELEMENT_LOCKED_STATE"/>
7299       <member name="is_sink" value="32" c:identifier="GST_ELEMENT_IS_SINK"/>
7300       <member name="unparenting"
7301               value="64"
7302               c:identifier="GST_ELEMENT_UNPARENTING"/>
7303       <member name="is_source"
7304               value="128"
7305               c:identifier="GST_ELEMENT_IS_SOURCE"/>
7306       <member name="flag_last"
7307               value="1048576"
7308               c:identifier="GST_ELEMENT_FLAG_LAST"/>
7309     </bitfield>
7310     <class name="Event"
7311            c:symbol-prefix="event"
7312            c:type="GstEvent"
7313            parent="MiniObject"
7314            glib:type-name="GstEvent"
7315            glib:get-type="gst_event_get_type"
7316            glib:type-struct="EventClass"
7317            glib:fundamental="1">
7318       <doc xml:whitespace="preserve">The event class provides factory methods to construct events for sending
7319 and functions to query (parse) received events.
7320 Events are usually created with gst_event_new_*() which takes event-type
7321 specific parameters as arguments.
7322 To send an event application will usually use gst_element_send_event() and
7323 elements will use gst_pad_send_event() or gst_pad_push_event().
7324 The event should be unreffed with gst_event_unref() if it has not been sent.
7325 Events that have been received can be parsed with their respective 
7326 gst_event_parse_*() functions. It is valid to pass %NULL for unwanted details.
7327 Events are passed between elements in parallel to the data stream. Some events
7328 are serialized with buffers, others are not. Some events only travel downstream,
7329 others only upstream. Some events can travel both upstream and downstream. 
7330 The events are used to signal special conditions in the datastream such as
7331 EOS (end of stream) or the start of a new stream-segment.
7332 Events are also used to flush the pipeline of any pending data.
7333 Most of the event API is used inside plugins. Applications usually only 
7334 construct and use seek events. 
7335 To do that gst_event_new_seek() is used to create a seek event. It takes
7336 the needed parameters to specity seeking time and mode.
7337 &lt;example&gt;
7338 &lt;title&gt;performing a seek on a pipeline&lt;/title&gt;
7339 &lt;programlisting&gt;
7340 GstEvent *event;
7341 gboolean result;
7342 ...
7343 // construct a seek event to play the media from second 2 to 5, flush
7344 // the pipeline to decrease latency.
7345 event = gst_event_new_seek (1.0, 
7346 GST_FORMAT_TIME, 
7347 GST_SEEK_FLAG_FLUSH,
7348 GST_SEEK_TYPE_SET, 2 * GST_SECOND,
7349 GST_SEEK_TYPE_SET, 5 * GST_SECOND);
7350 ...
7351 result = gst_element_send_event (pipeline, event);
7352 if (!result)
7353 g_warning ("seek failed");
7354 ...
7355 &lt;/programlisting&gt;
7356 &lt;/example&gt;
7357 Last reviewed on 2006-09-6 (0.10.10)</doc>
7358       <constructor name="new_buffer_size"
7359                    c:identifier="gst_event_new_buffer_size">
7360         <doc xml:whitespace="preserve">Create a new buffersize event. The event is sent downstream and notifies
7361 elements that they should provide a buffer of the specified dimensions.
7362 When the @async flag is set, a thread boundary is prefered.</doc>
7363         <return-value transfer-ownership="full">
7364           <doc xml:whitespace="preserve">a new #GstEvent</doc>
7365           <type name="Event" c:type="GstEvent*"/>
7366         </return-value>
7367         <parameters>
7368           <parameter name="format" transfer-ownership="none">
7369             <doc xml:whitespace="preserve">buffer format</doc>
7370             <type name="Format" c:type="GstFormat"/>
7371           </parameter>
7372           <parameter name="minsize" transfer-ownership="none">
7373             <doc xml:whitespace="preserve">minimum buffer size</doc>
7374             <type name="gint64" c:type="gint64"/>
7375           </parameter>
7376           <parameter name="maxsize" transfer-ownership="none">
7377             <doc xml:whitespace="preserve">maximum buffer size</doc>
7378             <type name="gint64" c:type="gint64"/>
7379           </parameter>
7380           <parameter name="async" transfer-ownership="none">
7381             <doc xml:whitespace="preserve">thread behavior</doc>
7382             <type name="gboolean" c:type="gboolean"/>
7383           </parameter>
7384         </parameters>
7385       </constructor>
7386       <constructor name="new_custom" c:identifier="gst_event_new_custom">
7387         <doc xml:whitespace="preserve">Create a new custom-typed event. This can be used for anything not
7388 handled by other event-specific functions to pass an event to another
7389 element.
7390 Make sure to allocate an event type with the #GST_EVENT_MAKE_TYPE macro,
7391 assigning a free number and filling in the correct direction and
7392 serialization flags.
7393 New custom events can also be created by subclassing the event type if
7394 needed.</doc>
7395         <return-value transfer-ownership="full">
7396           <doc xml:whitespace="preserve">the new custom event.</doc>
7397           <type name="Event" c:type="GstEvent*"/>
7398         </return-value>
7399         <parameters>
7400           <parameter name="type" transfer-ownership="none">
7401             <doc xml:whitespace="preserve">The type of the new event</doc>
7402             <type name="EventType" c:type="GstEventType"/>
7403           </parameter>
7404           <parameter name="structure" transfer-ownership="full">
7405             <doc xml:whitespace="preserve">the structure for the event. The event will take ownership of the structure.</doc>
7406             <type name="Structure" c:type="GstStructure*"/>
7407           </parameter>
7408         </parameters>
7409       </constructor>
7410       <constructor name="new_eos" c:identifier="gst_event_new_eos">
7411         <doc xml:whitespace="preserve">Create a new EOS event. The eos event can only travel downstream
7412 synchronized with the buffer flow. Elements that receive the EOS
7413 event on a pad can return #GST_FLOW_UNEXPECTED as a #GstFlowReturn
7414 when data after the EOS event arrives.
7415 The EOS event will travel down to the sink elements in the pipeline
7416 which will then post the #GST_MESSAGE_EOS on the bus after they have
7417 finished playing any buffered data.
7418 When all sinks have posted an EOS message, an EOS message is
7419 forwarded to the application.
7420 The EOS event itself will not cause any state transitions of the pipeline.</doc>
7421         <return-value transfer-ownership="full">
7422           <doc xml:whitespace="preserve">the new EOS event.</doc>
7423           <type name="Event" c:type="GstEvent*"/>
7424         </return-value>
7425       </constructor>
7426       <constructor name="new_flush_start"
7427                    c:identifier="gst_event_new_flush_start">
7428         <doc xml:whitespace="preserve">Allocate a new flush start event. The flush start event can be sent
7429 upstream and downstream and travels out-of-bounds with the dataflow.
7430 It marks pads as being flushing and will make them return
7431 #GST_FLOW_WRONG_STATE when used for data flow with gst_pad_push(),
7432 gst_pad_chain(), gst_pad_alloc_buffer(), gst_pad_get_range() and
7433 gst_pad_pull_range(). Any event (except a #GST_EVENT_FLUSH_STOP) received
7434 on a flushing pad will return %FALSE immediately.
7435 Elements should unlock any blocking functions and exit their streaming
7436 functions as fast as possible when this event is received.
7437 This event is typically generated after a seek to flush out all queued data
7438 in the pipeline so that the new media is played as soon as possible.</doc>
7439         <return-value transfer-ownership="full">
7440           <doc xml:whitespace="preserve">a new flush start event.</doc>
7441           <type name="Event" c:type="GstEvent*"/>
7442         </return-value>
7443       </constructor>
7444       <constructor name="new_flush_stop"
7445                    c:identifier="gst_event_new_flush_stop">
7446         <doc xml:whitespace="preserve">Allocate a new flush stop event. The flush stop event can be sent
7447 upstream and downstream and travels serialized with the dataflow.
7448 It is typically sent after sending a FLUSH_START event to make the
7449 pads accept data again.
7450 Elements can process this event synchronized with the dataflow since
7451 the preceeding FLUSH_START event stopped the dataflow.
7452 This event is typically generated to complete a seek and to resume
7453 dataflow.</doc>
7454         <return-value transfer-ownership="full">
7455           <doc xml:whitespace="preserve">a new flush stop event.</doc>
7456           <type name="Event" c:type="GstEvent*"/>
7457         </return-value>
7458       </constructor>
7459       <constructor name="new_latency"
7460                    c:identifier="gst_event_new_latency"
7461                    version="0.10.12">
7462         <doc xml:whitespace="preserve">Create a new latency event. The event is sent upstream from the sinks and
7463 notifies elements that they should add an additional @latency to the
7464 running time before synchronising against the clock.
7465 The latency is mostly used in live sinks and is always expressed in
7466 the time format.</doc>
7467         <return-value transfer-ownership="full">
7468           <doc xml:whitespace="preserve">a new #GstEvent</doc>
7469           <type name="Event" c:type="GstEvent*"/>
7470         </return-value>
7471         <parameters>
7472           <parameter name="latency" transfer-ownership="none">
7473             <doc xml:whitespace="preserve">the new latency value</doc>
7474             <type name="ClockTime" c:type="GstClockTime"/>
7475           </parameter>
7476         </parameters>
7477       </constructor>
7478       <constructor name="new_navigation"
7479                    c:identifier="gst_event_new_navigation">
7480         <doc xml:whitespace="preserve">Create a new navigation event from the given description.</doc>
7481         <return-value transfer-ownership="full">
7482           <doc xml:whitespace="preserve">a new #GstEvent</doc>
7483           <type name="Event" c:type="GstEvent*"/>
7484         </return-value>
7485         <parameters>
7486           <parameter name="structure" transfer-ownership="full">
7487             <doc xml:whitespace="preserve">description of the event. The event will take ownership of the structure.</doc>
7488             <type name="Structure" c:type="GstStructure*"/>
7489           </parameter>
7490         </parameters>
7491       </constructor>
7492       <constructor name="new_new_segment"
7493                    c:identifier="gst_event_new_new_segment">
7494         <doc xml:whitespace="preserve">Allocate a new newsegment event with the given format/values tripplets
7495 This method calls gst_event_new_new_segment_full() passing a default
7496 value of 1.0 for applied_rate</doc>
7497         <return-value transfer-ownership="full">
7498           <doc xml:whitespace="preserve">a new newsegment event.</doc>
7499           <type name="Event" c:type="GstEvent*"/>
7500         </return-value>
7501         <parameters>
7502           <parameter name="update" transfer-ownership="none">
7503             <doc xml:whitespace="preserve">is this segment an update to a previous one</doc>
7504             <type name="gboolean" c:type="gboolean"/>
7505           </parameter>
7506           <parameter name="rate" transfer-ownership="none">
7507             <doc xml:whitespace="preserve">a new rate for playback</doc>
7508             <type name="gdouble" c:type="gdouble"/>
7509           </parameter>
7510           <parameter name="format" transfer-ownership="none">
7511             <doc xml:whitespace="preserve">The format of the segment values</doc>
7512             <type name="Format" c:type="GstFormat"/>
7513           </parameter>
7514           <parameter name="start" transfer-ownership="none">
7515             <doc xml:whitespace="preserve">the start value of the segment</doc>
7516             <type name="gint64" c:type="gint64"/>
7517           </parameter>
7518           <parameter name="stop" transfer-ownership="none">
7519             <doc xml:whitespace="preserve">the stop value of the segment</doc>
7520             <type name="gint64" c:type="gint64"/>
7521           </parameter>
7522           <parameter name="position" transfer-ownership="none">
7523             <doc xml:whitespace="preserve">stream position</doc>
7524             <type name="gint64" c:type="gint64"/>
7525           </parameter>
7526         </parameters>
7527       </constructor>
7528       <constructor name="new_new_segment_full"
7529                    c:identifier="gst_event_new_new_segment_full"
7530                    version="0.10.6">
7531         <doc xml:whitespace="preserve">Allocate a new newsegment event with the given format/values triplets.
7532 The newsegment event marks the range of buffers to be processed. All
7533 data not within the segment range is not to be processed. This can be
7534 used intelligently by plugins to apply more efficient methods of skipping
7535 unneeded data. The valid range is expressed with the @start and @stop
7536 values.
7537 The position value of the segment is used in conjunction with the start
7538 value to convert the buffer timestamps into the stream time. This is 
7539 usually done in sinks to report the current stream_time. 
7540 is a valid @stop given, it must be greater or equal the @start, including 
7541 when the indicated playback @rate is &lt; 0.
7542 The @applied_rate value provides information about any rate adjustment that
7543 has already been made to the timestamps and content on the buffers of the 
7544 stream. (@rate * @applied_rate) should always equal the rate that has been 
7545 requested for playback. For example, if an element has an input segment 
7546 with intended playback @rate of 2.0 and applied_rate of 1.0, it can adjust 
7547 incoming timestamps and buffer content by half and output a newsegment event 
7548 with @rate of 1.0 and @applied_rate of 2.0
7549 After a newsegment event, the buffer stream time is calculated with:
7550 position + (TIMESTAMP(buf) - start) * ABS (rate * applied_rate)</doc>
7551         <return-value transfer-ownership="full">
7552           <doc xml:whitespace="preserve">a new newsegment event.</doc>
7553           <type name="Event" c:type="GstEvent*"/>
7554         </return-value>
7555         <parameters>
7556           <parameter name="update" transfer-ownership="none">
7557             <doc xml:whitespace="preserve">Whether this segment is an update to a previous one</doc>
7558             <type name="gboolean" c:type="gboolean"/>
7559           </parameter>
7560           <parameter name="rate" transfer-ownership="none">
7561             <doc xml:whitespace="preserve">A new rate for playback</doc>
7562             <type name="gdouble" c:type="gdouble"/>
7563           </parameter>
7564           <parameter name="applied_rate" transfer-ownership="none">
7565             <doc xml:whitespace="preserve">The rate factor which has already been applied</doc>
7566             <type name="gdouble" c:type="gdouble"/>
7567           </parameter>
7568           <parameter name="format" transfer-ownership="none">
7569             <doc xml:whitespace="preserve">The format of the segment values</doc>
7570             <type name="Format" c:type="GstFormat"/>
7571           </parameter>
7572           <parameter name="start" transfer-ownership="none">
7573             <doc xml:whitespace="preserve">The start value of the segment</doc>
7574             <type name="gint64" c:type="gint64"/>
7575           </parameter>
7576           <parameter name="stop" transfer-ownership="none">
7577             <doc xml:whitespace="preserve">The stop value of the segment</doc>
7578             <type name="gint64" c:type="gint64"/>
7579           </parameter>
7580           <parameter name="position" transfer-ownership="none">
7581             <doc xml:whitespace="preserve">stream position</doc>
7582             <type name="gint64" c:type="gint64"/>
7583           </parameter>
7584         </parameters>
7585       </constructor>
7586       <constructor name="new_qos" c:identifier="gst_event_new_qos">
7587         <doc xml:whitespace="preserve">Allocate a new qos event with the given values. This function calls
7588 gst_event_new_qos_full() with the type set to #GST_QOS_TYPE_OVERFLOW
7589 when diff is negative (buffers are in time) and #GST_QOS_TYPE_UNDERFLOW
7590 when @diff is positive (buffers are late).</doc>
7591         <return-value transfer-ownership="full">
7592           <doc xml:whitespace="preserve">a new QOS event.</doc>
7593           <type name="Event" c:type="GstEvent*"/>
7594         </return-value>
7595         <parameters>
7596           <parameter name="proportion" transfer-ownership="none">
7597             <doc xml:whitespace="preserve">the proportion of the qos message</doc>
7598             <type name="gdouble" c:type="gdouble"/>
7599           </parameter>
7600           <parameter name="diff" transfer-ownership="none">
7601             <doc xml:whitespace="preserve">The time difference of the last Clock sync</doc>
7602             <type name="ClockTimeDiff" c:type="GstClockTimeDiff"/>
7603           </parameter>
7604           <parameter name="timestamp" transfer-ownership="none">
7605             <doc xml:whitespace="preserve">The timestamp of the buffer</doc>
7606             <type name="ClockTime" c:type="GstClockTime"/>
7607           </parameter>
7608         </parameters>
7609       </constructor>
7610       <constructor name="new_qos_full"
7611                    c:identifier="gst_event_new_qos_full"
7612                    version="0.10.33">
7613         <doc xml:whitespace="preserve">Allocate a new qos event with the given values.
7614 The QOS event is generated in an element that wants an upstream
7615 element to either reduce or increase its rate because of
7616 high/low CPU load or other resource usage such as network performance or
7617 throttling. Typically sinks generate these events for each buffer
7618 they receive.
7619 used when a buffer arrived in time or when the sink cannot keep up with
7620 the upstream datarate. #GST_QOS_TYPE_UNDERFLOW is when the sink is not
7621 receiving buffers fast enough and thus has to drop late buffers. 
7622 #GST_QOS_TYPE_THROTTLE is used when the datarate is artificially limited
7623 by the application, for example to reduce power consumption.
7624 element that generated the QoS event (usually the sink). The value is
7625 generally computed based on more long term statistics about the streams
7626 timestamps compared to the clock.
7627 A value &lt; 1.0 indicates that the upstream element is producing data faster
7628 than real-time. A value &gt; 1.0 indicates that the upstream element is not
7629 producing data fast enough. 1.0 is the ideal @proportion value. The
7630 proportion value can safely be used to lower or increase the quality of
7631 the element.
7632 buffer that caused the element to generate the QOS event. A negative value
7633 means that the buffer with @timestamp arrived in time. A positive value
7634 indicates how late the buffer with @timestamp was. When throttling is
7635 enabled, @diff will be set to the requested throttling interval.
7636 to generate the QOS event. It is expressed in running time and thus an ever
7637 increasing value.
7638 The upstream element can use the @diff and @timestamp values to decide
7639 whether to process more buffers. For possitive @diff, all buffers with
7640 timestamp &lt;= @timestamp + @diff will certainly arrive late in the sink
7641 as well. A (negative) @diff value so that @timestamp + @diff would yield a
7642 result smaller than 0 is not allowed.
7643 The application can use general event probes to intercept the QoS
7644 event and implement custom application specific QoS handling.</doc>
7645         <return-value transfer-ownership="full">
7646           <doc xml:whitespace="preserve">a new QOS event.</doc>
7647           <type name="Event" c:type="GstEvent*"/>
7648         </return-value>
7649         <parameters>
7650           <parameter name="type" transfer-ownership="none">
7651             <doc xml:whitespace="preserve">the QoS type</doc>
7652             <type name="QOSType" c:type="GstQOSType"/>
7653           </parameter>
7654           <parameter name="proportion" transfer-ownership="none">
7655             <doc xml:whitespace="preserve">the proportion of the qos message</doc>
7656             <type name="gdouble" c:type="gdouble"/>
7657           </parameter>
7658           <parameter name="diff" transfer-ownership="none">
7659             <doc xml:whitespace="preserve">The time difference of the last Clock sync</doc>
7660             <type name="ClockTimeDiff" c:type="GstClockTimeDiff"/>
7661           </parameter>
7662           <parameter name="timestamp" transfer-ownership="none">
7663             <doc xml:whitespace="preserve">The timestamp of the buffer</doc>
7664             <type name="ClockTime" c:type="GstClockTime"/>
7665           </parameter>
7666         </parameters>
7667       </constructor>
7668       <constructor name="new_seek" c:identifier="gst_event_new_seek">
7669         <doc xml:whitespace="preserve">Allocate a new seek event with the given parameters.
7670 The seek event configures playback of the pipeline between @start to @stop
7671 at the speed given in @rate, also called a playback segment.
7672 The @start and @stop values are expressed in @format.
7673 A @rate of 1.0 means normal playback rate, 2.0 means double speed.
7674 Negatives values means backwards playback. A value of 0.0 for the
7675 rate is not allowed and should be accomplished instead by PAUSING the
7676 pipeline.
7677 A pipeline has a default playback segment configured with a start
7678 position of 0, a stop position of -1 and a rate of 1.0. The currently
7679 configured playback segment can be queried with #GST_QUERY_SEGMENT. 
7680 start and stop fields in playback segment. Adjustments can be made relative
7681 or absolute to the last configured values. A type of #GST_SEEK_TYPE_NONE
7682 means that the position should not be updated.
7683 When the rate is positive and @start has been updated, playback will start
7684 from the newly configured start position. 
7685 For negative rates, playback will start from the newly configured stop
7686 position (if any). If the stop position if updated, it must be different from
7687 -1 for negative rates.
7688 It is not possible to seek relative to the current playback position, to do
7689 this, PAUSE the pipeline, query the current playback position with
7690 #GST_QUERY_POSITION and update the playback segment current position with a
7691 #GST_SEEK_TYPE_SET to the desired position.</doc>
7692         <return-value transfer-ownership="full">
7693           <doc xml:whitespace="preserve">a new seek event.</doc>
7694           <type name="Event" c:type="GstEvent*"/>
7695         </return-value>
7696         <parameters>
7697           <parameter name="rate" transfer-ownership="none">
7698             <doc xml:whitespace="preserve">The new playback rate</doc>
7699             <type name="gdouble" c:type="gdouble"/>
7700           </parameter>
7701           <parameter name="format" transfer-ownership="none">
7702             <doc xml:whitespace="preserve">The format of the seek values</doc>
7703             <type name="Format" c:type="GstFormat"/>
7704           </parameter>
7705           <parameter name="flags" transfer-ownership="none">
7706             <doc xml:whitespace="preserve">The optional seek flags</doc>
7707             <type name="SeekFlags" c:type="GstSeekFlags"/>
7708           </parameter>
7709           <parameter name="start_type" transfer-ownership="none">
7710             <doc xml:whitespace="preserve">The type and flags for the new start position</doc>
7711             <type name="SeekType" c:type="GstSeekType"/>
7712           </parameter>
7713           <parameter name="start" transfer-ownership="none">
7714             <doc xml:whitespace="preserve">The value of the new start position</doc>
7715             <type name="gint64" c:type="gint64"/>
7716           </parameter>
7717           <parameter name="stop_type" transfer-ownership="none">
7718             <doc xml:whitespace="preserve">The type and flags for the new stop position</doc>
7719             <type name="SeekType" c:type="GstSeekType"/>
7720           </parameter>
7721           <parameter name="stop" transfer-ownership="none">
7722             <doc xml:whitespace="preserve">The value of the new stop position</doc>
7723             <type name="gint64" c:type="gint64"/>
7724           </parameter>
7725         </parameters>
7726       </constructor>
7727       <constructor name="new_sink_message"
7728                    c:identifier="gst_event_new_sink_message"
7729                    version="0.10.26">
7730         <doc xml:whitespace="preserve">Create a new sink-message event. The purpose of the sink-message event is
7731 to instruct a sink to post the message contained in the event synchronized
7732 with the stream.</doc>
7733         <return-value transfer-ownership="full">
7734           <doc xml:whitespace="preserve">a new #GstEvent</doc>
7735           <type name="Event" c:type="GstEvent*"/>
7736         </return-value>
7737         <parameters>
7738           <parameter name="msg" transfer-ownership="none">
7739             <doc xml:whitespace="preserve">the #GstMessage to be posted</doc>
7740             <type name="Message" c:type="GstMessage*"/>
7741           </parameter>
7742         </parameters>
7743       </constructor>
7744       <constructor name="new_step"
7745                    c:identifier="gst_event_new_step"
7746                    version="0.10.24">
7747         <doc xml:whitespace="preserve">Create a new step event. The purpose of the step event is to instruct a sink
7748 to skip @amount (expressed in @format) of media. It can be used to implement
7749 stepping through the video frame by frame or for doing fast trick modes.
7750 A rate of &lt;= 0.0 is not allowed, pause the pipeline or reverse the playback
7751 direction of the pipeline to get the same effect.
7752 The @flush flag will clear any pending data in the pipeline before starting
7753 the step operation.
7754 The @intermediate flag instructs the pipeline that this step operation is
7755 part of a larger step operation.</doc>
7756         <return-value transfer-ownership="full">
7757           <doc xml:whitespace="preserve">a new #GstEvent</doc>
7758           <type name="Event" c:type="GstEvent*"/>
7759         </return-value>
7760         <parameters>
7761           <parameter name="format" transfer-ownership="none">
7762             <doc xml:whitespace="preserve">the format of @amount</doc>
7763             <type name="Format" c:type="GstFormat"/>
7764           </parameter>
7765           <parameter name="amount" transfer-ownership="none">
7766             <doc xml:whitespace="preserve">the amount of data to step</doc>
7767             <type name="guint64" c:type="guint64"/>
7768           </parameter>
7769           <parameter name="rate" transfer-ownership="none">
7770             <doc xml:whitespace="preserve">the step rate</doc>
7771             <type name="gdouble" c:type="gdouble"/>
7772           </parameter>
7773           <parameter name="flush" transfer-ownership="none">
7774             <doc xml:whitespace="preserve">flushing steps</doc>
7775             <type name="gboolean" c:type="gboolean"/>
7776           </parameter>
7777           <parameter name="intermediate" transfer-ownership="none">
7778             <doc xml:whitespace="preserve">intermediate steps</doc>
7779             <type name="gboolean" c:type="gboolean"/>
7780           </parameter>
7781         </parameters>
7782       </constructor>
7783       <constructor name="new_tag" c:identifier="gst_event_new_tag">
7784         <doc xml:whitespace="preserve">Generates a metadata tag event from the given @taglist.</doc>
7785         <return-value transfer-ownership="full">
7786           <doc xml:whitespace="preserve">a new #GstEvent</doc>
7787           <type name="Event" c:type="GstEvent*"/>
7788         </return-value>
7789         <parameters>
7790           <parameter name="taglist" transfer-ownership="full">
7791             <doc xml:whitespace="preserve">metadata list. The event will take ownership of the taglist.</doc>
7792             <type name="TagList" c:type="GstTagList*"/>
7793           </parameter>
7794         </parameters>
7795       </constructor>
7796       <function name="type_get_flags" c:identifier="gst_event_type_get_flags">
7797         <doc xml:whitespace="preserve">Gets the #GstEventTypeFlags associated with @type.</doc>
7798         <return-value transfer-ownership="none">
7799           <doc xml:whitespace="preserve">a #GstEventTypeFlags.</doc>
7800           <type name="EventTypeFlags" c:type="GstEventTypeFlags"/>
7801         </return-value>
7802         <parameters>
7803           <parameter name="type" transfer-ownership="none">
7804             <doc xml:whitespace="preserve">a #GstEventType</doc>
7805             <type name="EventType" c:type="GstEventType"/>
7806           </parameter>
7807         </parameters>
7808       </function>
7809       <function name="type_get_name" c:identifier="gst_event_type_get_name">
7810         <doc xml:whitespace="preserve">Get a printable name for the given event type. Do not modify or free.</doc>
7811         <return-value transfer-ownership="none">
7812           <doc xml:whitespace="preserve">a reference to the static name of the event.</doc>
7813           <type name="utf8" c:type="gchar*"/>
7814         </return-value>
7815         <parameters>
7816           <parameter name="type" transfer-ownership="none">
7817             <doc xml:whitespace="preserve">the event type</doc>
7818             <type name="EventType" c:type="GstEventType"/>
7819           </parameter>
7820         </parameters>
7821       </function>
7822       <function name="type_to_quark" c:identifier="gst_event_type_to_quark">
7823         <doc xml:whitespace="preserve">Get the unique quark for the given event type.</doc>
7824         <return-value transfer-ownership="none">
7825           <doc xml:whitespace="preserve">the quark associated with the event type</doc>
7826           <type name="GLib.Quark" c:type="GQuark"/>
7827         </return-value>
7828         <parameters>
7829           <parameter name="type" transfer-ownership="none">
7830             <doc xml:whitespace="preserve">the event type</doc>
7831             <type name="EventType" c:type="GstEventType"/>
7832           </parameter>
7833         </parameters>
7834       </function>
7835       <method name="get_seqnum"
7836               c:identifier="gst_event_get_seqnum"
7837               version="0.10.22">
7838         <doc xml:whitespace="preserve">Retrieve the sequence number of a event.
7839 Events have ever-incrementing sequence numbers, which may also be set
7840 explicitly via gst_event_set_seqnum(). Sequence numbers are typically used to
7841 indicate that a event corresponds to some other set of events or messages,
7842 for example an EOS event corresponding to a SEEK event. It is considered good
7843 practice to make this correspondence when possible, though it is not
7844 required.
7845 Note that events and messages share the same sequence number incrementor;
7846 two events or messages will never not have the same sequence number unless
7847 that correspondence was made explicitly.
7848 MT safe.</doc>
7849         <return-value transfer-ownership="none">
7850           <doc xml:whitespace="preserve">The event's sequence number.</doc>
7851           <type name="guint32" c:type="guint32"/>
7852         </return-value>
7853       </method>
7854       <method name="get_structure" c:identifier="gst_event_get_structure">
7855         <doc xml:whitespace="preserve">Access the structure of the event.
7856 owned by the event, which means that you should not free it and
7857 that the pointer becomes invalid when you free the event.
7858 MT safe.</doc>
7859         <return-value transfer-ownership="none">
7860           <doc xml:whitespace="preserve">The structure of the event. The structure is still</doc>
7861           <type name="Structure" c:type="GstStructure*"/>
7862         </return-value>
7863       </method>
7864       <method name="has_name"
7865               c:identifier="gst_event_has_name"
7866               version="0.10.20">
7867         <doc xml:whitespace="preserve">Checks if @event has the given @name. This function is usually used to
7868 check the name of a custom event.</doc>
7869         <return-value transfer-ownership="none">
7870           <doc xml:whitespace="preserve">%TRUE if @name matches the name of the event structure.</doc>
7871           <type name="gboolean" c:type="gboolean"/>
7872         </return-value>
7873         <parameters>
7874           <parameter name="name" transfer-ownership="none">
7875             <doc xml:whitespace="preserve">name to check</doc>
7876             <type name="utf8" c:type="gchar*"/>
7877           </parameter>
7878         </parameters>
7879       </method>
7880       <method name="parse_buffer_size"
7881               c:identifier="gst_event_parse_buffer_size">
7882         <doc xml:whitespace="preserve">Get the format, minsize, maxsize and async-flag in the buffersize event.</doc>
7883         <return-value transfer-ownership="none">
7884           <type name="none" c:type="void"/>
7885         </return-value>
7886         <parameters>
7887           <parameter name="format"
7888                      direction="out"
7889                      caller-allocates="0"
7890                      transfer-ownership="full">
7891             <doc xml:whitespace="preserve">A pointer to store the format in</doc>
7892             <type name="Format" c:type="GstFormat*"/>
7893           </parameter>
7894           <parameter name="minsize"
7895                      direction="out"
7896                      caller-allocates="0"
7897                      transfer-ownership="full">
7898             <doc xml:whitespace="preserve">A pointer to store the minsize in</doc>
7899             <type name="gint64" c:type="gint64*"/>
7900           </parameter>
7901           <parameter name="maxsize"
7902                      direction="out"
7903                      caller-allocates="0"
7904                      transfer-ownership="full">
7905             <doc xml:whitespace="preserve">A pointer to store the maxsize in</doc>
7906             <type name="gint64" c:type="gint64*"/>
7907           </parameter>
7908           <parameter name="async"
7909                      direction="out"
7910                      caller-allocates="0"
7911                      transfer-ownership="full">
7912             <doc xml:whitespace="preserve">A pointer to store the async-flag in</doc>
7913             <type name="gboolean" c:type="gboolean*"/>
7914           </parameter>
7915         </parameters>
7916       </method>
7917       <method name="parse_latency"
7918               c:identifier="gst_event_parse_latency"
7919               version="0.10.12">
7920         <doc xml:whitespace="preserve">Get the latency in the latency event.</doc>
7921         <return-value transfer-ownership="none">
7922           <type name="none" c:type="void"/>
7923         </return-value>
7924         <parameters>
7925           <parameter name="latency"
7926                      direction="out"
7927                      caller-allocates="0"
7928                      transfer-ownership="full">
7929             <doc xml:whitespace="preserve">A pointer to store the latency in.</doc>
7930             <type name="ClockTime" c:type="GstClockTime*"/>
7931           </parameter>
7932         </parameters>
7933       </method>
7934       <method name="parse_new_segment"
7935               c:identifier="gst_event_parse_new_segment">
7936         <doc xml:whitespace="preserve">Get the update flag, rate, format, start, stop and position in the 
7937 newsegment event. In general, gst_event_parse_new_segment_full() should
7938 be used instead of this, to also retrieve the applied_rate value of the
7939 segment. See gst_event_new_new_segment_full() for a full description 
7940 of the newsegment event.</doc>
7941         <return-value transfer-ownership="none">
7942           <type name="none" c:type="void"/>
7943         </return-value>
7944         <parameters>
7945           <parameter name="update"
7946                      direction="out"
7947                      caller-allocates="0"
7948                      transfer-ownership="full">
7949             <doc xml:whitespace="preserve">A pointer to the update flag of the segment</doc>
7950             <type name="gboolean" c:type="gboolean*"/>
7951           </parameter>
7952           <parameter name="rate"
7953                      direction="out"
7954                      caller-allocates="0"
7955                      transfer-ownership="full">
7956             <doc xml:whitespace="preserve">A pointer to the rate of the segment</doc>
7957             <type name="gdouble" c:type="gdouble*"/>
7958           </parameter>
7959           <parameter name="format"
7960                      direction="out"
7961                      caller-allocates="0"
7962                      transfer-ownership="full">
7963             <doc xml:whitespace="preserve">A pointer to the format of the newsegment values</doc>
7964             <type name="Format" c:type="GstFormat*"/>
7965           </parameter>
7966           <parameter name="start"
7967                      direction="out"
7968                      caller-allocates="0"
7969                      transfer-ownership="full">
7970             <doc xml:whitespace="preserve">A pointer to store the start value in</doc>
7971             <type name="gint64" c:type="gint64*"/>
7972           </parameter>
7973           <parameter name="stop"
7974                      direction="out"
7975                      caller-allocates="0"
7976                      transfer-ownership="full">
7977             <doc xml:whitespace="preserve">A pointer to store the stop value in</doc>
7978             <type name="gint64" c:type="gint64*"/>
7979           </parameter>
7980           <parameter name="position"
7981                      direction="out"
7982                      caller-allocates="0"
7983                      transfer-ownership="full">
7984             <doc xml:whitespace="preserve">A pointer to store the stream time in</doc>
7985             <type name="gint64" c:type="gint64*"/>
7986           </parameter>
7987         </parameters>
7988       </method>
7989       <method name="parse_new_segment_full"
7990               c:identifier="gst_event_parse_new_segment_full"
7991               version="0.10.6">
7992         <doc xml:whitespace="preserve">Get the update, rate, applied_rate, format, start, stop and 
7993 position in the newsegment event. See gst_event_new_new_segment_full() 
7994 for a full description of the newsegment event.</doc>
7995         <return-value transfer-ownership="none">
7996           <type name="none" c:type="void"/>
7997         </return-value>
7998         <parameters>
7999           <parameter name="update"
8000                      direction="out"
8001                      caller-allocates="0"
8002                      transfer-ownership="full">
8003             <doc xml:whitespace="preserve">A pointer to the update flag of the segment</doc>
8004             <type name="gboolean" c:type="gboolean*"/>
8005           </parameter>
8006           <parameter name="rate"
8007                      direction="out"
8008                      caller-allocates="0"
8009                      transfer-ownership="full">
8010             <doc xml:whitespace="preserve">A pointer to the rate of the segment</doc>
8011             <type name="gdouble" c:type="gdouble*"/>
8012           </parameter>
8013           <parameter name="applied_rate"
8014                      direction="out"
8015                      caller-allocates="0"
8016                      transfer-ownership="full">
8017             <doc xml:whitespace="preserve">A pointer to the applied_rate of the segment</doc>
8018             <type name="gdouble" c:type="gdouble*"/>
8019           </parameter>
8020           <parameter name="format"
8021                      direction="out"
8022                      caller-allocates="0"
8023                      transfer-ownership="full">
8024             <doc xml:whitespace="preserve">A pointer to the format of the newsegment values</doc>
8025             <type name="Format" c:type="GstFormat*"/>
8026           </parameter>
8027           <parameter name="start"
8028                      direction="out"
8029                      caller-allocates="0"
8030                      transfer-ownership="full">
8031             <doc xml:whitespace="preserve">A pointer to store the start value in</doc>
8032             <type name="gint64" c:type="gint64*"/>
8033           </parameter>
8034           <parameter name="stop"
8035                      direction="out"
8036                      caller-allocates="0"
8037                      transfer-ownership="full">
8038             <doc xml:whitespace="preserve">A pointer to store the stop value in</doc>
8039             <type name="gint64" c:type="gint64*"/>
8040           </parameter>
8041           <parameter name="position"
8042                      direction="out"
8043                      caller-allocates="0"
8044                      transfer-ownership="full">
8045             <doc xml:whitespace="preserve">A pointer to store the stream time in</doc>
8046             <type name="gint64" c:type="gint64*"/>
8047           </parameter>
8048         </parameters>
8049       </method>
8050       <method name="parse_qos" c:identifier="gst_event_parse_qos">
8051         <doc xml:whitespace="preserve">Get the proportion, diff and timestamp in the qos event. See
8052 gst_event_new_qos() for more information about the different QoS values.</doc>
8053         <return-value transfer-ownership="none">
8054           <type name="none" c:type="void"/>
8055         </return-value>
8056         <parameters>
8057           <parameter name="proportion"
8058                      direction="out"
8059                      caller-allocates="0"
8060                      transfer-ownership="full">
8061             <doc xml:whitespace="preserve">A pointer to store the proportion in</doc>
8062             <type name="gdouble" c:type="gdouble*"/>
8063           </parameter>
8064           <parameter name="diff"
8065                      direction="out"
8066                      caller-allocates="0"
8067                      transfer-ownership="full">
8068             <doc xml:whitespace="preserve">A pointer to store the diff in</doc>
8069             <type name="ClockTimeDiff" c:type="GstClockTimeDiff*"/>
8070           </parameter>
8071           <parameter name="timestamp"
8072                      direction="out"
8073                      caller-allocates="0"
8074                      transfer-ownership="full">
8075             <doc xml:whitespace="preserve">A pointer to store the timestamp in</doc>
8076             <type name="ClockTime" c:type="GstClockTime*"/>
8077           </parameter>
8078         </parameters>
8079       </method>
8080       <method name="parse_qos_full"
8081               c:identifier="gst_event_parse_qos_full"
8082               version="0.10.33">
8083         <doc xml:whitespace="preserve">Get the type, proportion, diff and timestamp in the qos event. See
8084 gst_event_new_qos_full() for more information about the different QoS values.</doc>
8085         <return-value transfer-ownership="none">
8086           <type name="none" c:type="void"/>
8087         </return-value>
8088         <parameters>
8089           <parameter name="type"
8090                      direction="out"
8091                      caller-allocates="0"
8092                      transfer-ownership="full">
8093             <doc xml:whitespace="preserve">A pointer to store the QoS type in</doc>
8094             <type name="QOSType" c:type="GstQOSType*"/>
8095           </parameter>
8096           <parameter name="proportion"
8097                      direction="out"
8098                      caller-allocates="0"
8099                      transfer-ownership="full">
8100             <doc xml:whitespace="preserve">A pointer to store the proportion in</doc>
8101             <type name="gdouble" c:type="gdouble*"/>
8102           </parameter>
8103           <parameter name="diff"
8104                      direction="out"
8105                      caller-allocates="0"
8106                      transfer-ownership="full">
8107             <doc xml:whitespace="preserve">A pointer to store the diff in</doc>
8108             <type name="ClockTimeDiff" c:type="GstClockTimeDiff*"/>
8109           </parameter>
8110           <parameter name="timestamp"
8111                      direction="out"
8112                      caller-allocates="0"
8113                      transfer-ownership="full">
8114             <doc xml:whitespace="preserve">A pointer to store the timestamp in</doc>
8115             <type name="ClockTime" c:type="GstClockTime*"/>
8116           </parameter>
8117         </parameters>
8118       </method>
8119       <method name="parse_seek" c:identifier="gst_event_parse_seek">
8120         <doc xml:whitespace="preserve">Parses a seek @event and stores the results in the given result locations.</doc>
8121         <return-value transfer-ownership="none">
8122           <type name="none" c:type="void"/>
8123         </return-value>
8124         <parameters>
8125           <parameter name="rate"
8126                      direction="out"
8127                      caller-allocates="0"
8128                      transfer-ownership="full">
8129             <doc xml:whitespace="preserve">result location for the rate</doc>
8130             <type name="gdouble" c:type="gdouble*"/>
8131           </parameter>
8132           <parameter name="format"
8133                      direction="out"
8134                      caller-allocates="0"
8135                      transfer-ownership="full">
8136             <doc xml:whitespace="preserve">result location for the stream format</doc>
8137             <type name="Format" c:type="GstFormat*"/>
8138           </parameter>
8139           <parameter name="flags"
8140                      direction="out"
8141                      caller-allocates="0"
8142                      transfer-ownership="full">
8143             <doc xml:whitespace="preserve">result location for the #GstSeekFlags</doc>
8144             <type name="SeekFlags" c:type="GstSeekFlags*"/>
8145           </parameter>
8146           <parameter name="start_type"
8147                      direction="out"
8148                      caller-allocates="0"
8149                      transfer-ownership="full">
8150             <doc xml:whitespace="preserve">result location for the #GstSeekType of the start position</doc>
8151             <type name="SeekType" c:type="GstSeekType*"/>
8152           </parameter>
8153           <parameter name="start"
8154                      direction="out"
8155                      caller-allocates="0"
8156                      transfer-ownership="full">
8157             <doc xml:whitespace="preserve">result location for the start postion expressed in @format</doc>
8158             <type name="gint64" c:type="gint64*"/>
8159           </parameter>
8160           <parameter name="stop_type"
8161                      direction="out"
8162                      caller-allocates="0"
8163                      transfer-ownership="full">
8164             <doc xml:whitespace="preserve">result location for the #GstSeekType of the stop position</doc>
8165             <type name="SeekType" c:type="GstSeekType*"/>
8166           </parameter>
8167           <parameter name="stop"
8168                      direction="out"
8169                      caller-allocates="0"
8170                      transfer-ownership="full">
8171             <doc xml:whitespace="preserve">result location for the stop postion expressed in @format</doc>
8172             <type name="gint64" c:type="gint64*"/>
8173           </parameter>
8174         </parameters>
8175       </method>
8176       <method name="parse_sink_message"
8177               c:identifier="gst_event_parse_sink_message"
8178               version="0.10.26">
8179         <doc xml:whitespace="preserve">Parse the sink-message event. Unref @msg after usage.</doc>
8180         <return-value transfer-ownership="none">
8181           <type name="none" c:type="void"/>
8182         </return-value>
8183         <parameters>
8184           <parameter name="msg"
8185                      direction="out"
8186                      caller-allocates="0"
8187                      transfer-ownership="full">
8188             <doc xml:whitespace="preserve">a pointer to store the #GstMessage in.</doc>
8189             <type name="Message" c:type="GstMessage**"/>
8190           </parameter>
8191         </parameters>
8192       </method>
8193       <method name="parse_step"
8194               c:identifier="gst_event_parse_step"
8195               version="0.10.24">
8196         <doc xml:whitespace="preserve">Parse the step event.</doc>
8197         <return-value transfer-ownership="none">
8198           <type name="none" c:type="void"/>
8199         </return-value>
8200         <parameters>
8201           <parameter name="format"
8202                      direction="out"
8203                      caller-allocates="0"
8204                      transfer-ownership="full"
8205                      allow-none="1">
8206             <doc xml:whitespace="preserve">a pointer to store the format in</doc>
8207             <type name="Format" c:type="GstFormat*"/>
8208           </parameter>
8209           <parameter name="amount"
8210                      direction="out"
8211                      caller-allocates="0"
8212                      transfer-ownership="full"
8213                      allow-none="1">
8214             <doc xml:whitespace="preserve">a pointer to store the amount in</doc>
8215             <type name="guint64" c:type="guint64*"/>
8216           </parameter>
8217           <parameter name="rate"
8218                      direction="out"
8219                      caller-allocates="0"
8220                      transfer-ownership="full"
8221                      allow-none="1">
8222             <doc xml:whitespace="preserve">a pointer to store the rate in</doc>
8223             <type name="gdouble" c:type="gdouble*"/>
8224           </parameter>
8225           <parameter name="flush"
8226                      direction="out"
8227                      caller-allocates="0"
8228                      transfer-ownership="full"
8229                      allow-none="1">
8230             <doc xml:whitespace="preserve">a pointer to store the flush boolean in</doc>
8231             <type name="gboolean" c:type="gboolean*"/>
8232           </parameter>
8233           <parameter name="intermediate"
8234                      direction="out"
8235                      caller-allocates="0"
8236                      transfer-ownership="full"
8237                      allow-none="1">
8238             <doc xml:whitespace="preserve">a pointer to store the intermediate boolean in</doc>
8239             <type name="gboolean" c:type="gboolean*"/>
8240           </parameter>
8241         </parameters>
8242       </method>
8243       <method name="parse_tag" c:identifier="gst_event_parse_tag">
8244         <doc xml:whitespace="preserve">Parses a tag @event and stores the results in the given @taglist location.
8245 No reference to the taglist will be returned, it remains valid only until
8246 the @event is freed. Don't modify or free the taglist, make a copy if you
8247 want to modify it or store it for later use.</doc>
8248         <return-value transfer-ownership="none">
8249           <type name="none" c:type="void"/>
8250         </return-value>
8251         <parameters>
8252           <parameter name="taglist"
8253                      direction="out"
8254                      caller-allocates="0"
8255                      transfer-ownership="none">
8256             <doc xml:whitespace="preserve">pointer to metadata list</doc>
8257             <type name="TagList" c:type="GstTagList**"/>
8258           </parameter>
8259         </parameters>
8260       </method>
8261       <method name="set_seqnum"
8262               c:identifier="gst_event_set_seqnum"
8263               version="0.10.22">
8264         <doc xml:whitespace="preserve">Set the sequence number of a event.
8265 This function might be called by the creator of a event to indicate that the
8266 event relates to other events or messages. See gst_event_get_seqnum() for
8267 more information.
8268 MT safe.</doc>
8269         <return-value transfer-ownership="none">
8270           <type name="none" c:type="void"/>
8271         </return-value>
8272         <parameters>
8273           <parameter name="seqnum" transfer-ownership="none">
8274             <doc xml:whitespace="preserve">A sequence number.</doc>
8275             <type name="guint32" c:type="guint32"/>
8276           </parameter>
8277         </parameters>
8278       </method>
8279       <field name="mini_object">
8280         <type name="MiniObject" c:type="GstMiniObject"/>
8281       </field>
8282       <field name="type">
8283         <type name="EventType" c:type="GstEventType"/>
8284       </field>
8285       <field name="timestamp">
8286         <type name="guint64" c:type="guint64"/>
8287       </field>
8288       <field name="src">
8289         <type name="Object" c:type="GstObject*"/>
8290       </field>
8291       <field name="structure">
8292         <type name="Structure" c:type="GstStructure*"/>
8293       </field>
8294       <union name="abidata" c:type="abidata">
8295         <field name="seqnum" writable="1">
8296           <type name="guint32" c:type="guint32"/>
8297         </field>
8298         <field name="_gst_reserved" writable="1">
8299           <type name="gpointer" c:type="gpointer"/>
8300         </field>
8301       </union>
8302     </class>
8303     <record name="EventClass"
8304             c:type="GstEventClass"
8305             glib:is-gtype-struct-for="Event">
8306       <field name="mini_object_class">
8307         <type name="MiniObjectClass" c:type="GstMiniObjectClass"/>
8308       </field>
8309       <field name="_gst_reserved" readable="0" private="1">
8310         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
8311           <type name="gpointer" c:type="gpointer"/>
8312         </array>
8313       </field>
8314     </record>
8315     <bitfield name="EventType" c:type="GstEventType">
8316       <doc xml:whitespace="preserve">#GstEventType lists the standard event types that can be sent in a pipeline.
8317 The custom event types can be used for private messages between elements
8318 that can't be expressed using normal
8319 GStreamer buffer passing semantics. Custom events carry an arbitrary
8320 #GstStructure.
8321 Specific custom events are distinguished by the name of the structure.</doc>
8322       <member name="unknown" value="0" c:identifier="GST_EVENT_UNKNOWN"/>
8323       <member name="flush_start"
8324               value="19"
8325               c:identifier="GST_EVENT_FLUSH_START"/>
8326       <member name="flush_stop"
8327               value="39"
8328               c:identifier="GST_EVENT_FLUSH_STOP"/>
8329       <member name="eos" value="86" c:identifier="GST_EVENT_EOS"/>
8330       <member name="newsegment"
8331               value="102"
8332               c:identifier="GST_EVENT_NEWSEGMENT"/>
8333       <member name="tag" value="118" c:identifier="GST_EVENT_TAG"/>
8334       <member name="buffersize"
8335               value="134"
8336               c:identifier="GST_EVENT_BUFFERSIZE"/>
8337       <member name="sink_message"
8338               value="150"
8339               c:identifier="GST_EVENT_SINK_MESSAGE"/>
8340       <member name="qos" value="241" c:identifier="GST_EVENT_QOS"/>
8341       <member name="seek" value="257" c:identifier="GST_EVENT_SEEK"/>
8342       <member name="navigation"
8343               value="273"
8344               c:identifier="GST_EVENT_NAVIGATION"/>
8345       <member name="latency" value="289" c:identifier="GST_EVENT_LATENCY"/>
8346       <member name="step" value="305" c:identifier="GST_EVENT_STEP"/>
8347       <member name="custom_upstream"
8348               value="513"
8349               c:identifier="GST_EVENT_CUSTOM_UPSTREAM"/>
8350       <member name="custom_downstream"
8351               value="518"
8352               c:identifier="GST_EVENT_CUSTOM_DOWNSTREAM"/>
8353       <member name="custom_downstream_oob"
8354               value="514"
8355               c:identifier="GST_EVENT_CUSTOM_DOWNSTREAM_OOB"/>
8356       <member name="custom_both"
8357               value="519"
8358               c:identifier="GST_EVENT_CUSTOM_BOTH"/>
8359       <member name="custom_both_oob"
8360               value="515"
8361               c:identifier="GST_EVENT_CUSTOM_BOTH_OOB"/>
8362     </bitfield>
8363     <bitfield name="EventTypeFlags" c:type="GstEventTypeFlags">
8364       <doc xml:whitespace="preserve">#GstEventTypeFlags indicate the aspects of the different #GstEventType
8365 values. You can get the type flags of a #GstEventType with the
8366 gst_event_type_get_flags() function.</doc>
8367       <member name="upstream"
8368               value="1"
8369               c:identifier="GST_EVENT_TYPE_UPSTREAM"/>
8370       <member name="downstream"
8371               value="2"
8372               c:identifier="GST_EVENT_TYPE_DOWNSTREAM"/>
8373       <member name="serialized"
8374               value="4"
8375               c:identifier="GST_EVENT_TYPE_SERIALIZED"/>
8376     </bitfield>
8377     <constant name="FOURCC_FORMAT" value="c%c%c%c">
8378       <type name="utf8" c:type="gchar*"/>
8379     </constant>
8380     <callback name="FilterFunc" c:type="GstFilterFunc">
8381       <doc xml:whitespace="preserve">Function prototype for a filter callback that can be use in gst_filter_run().
8382 The function should apply its filtering to @obj. Additional data passed to
8383 gst_filter_run() are in @data.</doc>
8384       <return-value transfer-ownership="none">
8385         <doc xml:whitespace="preserve">%TRUE for success.</doc>
8386         <type name="gboolean" c:type="gboolean"/>
8387       </return-value>
8388       <parameters>
8389         <parameter name="obj" transfer-ownership="none">
8390           <doc xml:whitespace="preserve">the object</doc>
8391           <type name="gpointer" c:type="gpointer"/>
8392         </parameter>
8393         <parameter name="user_data" transfer-ownership="none" closure="1">
8394           <doc xml:whitespace="preserve">filter data</doc>
8395           <type name="gpointer" c:type="gpointer"/>
8396         </parameter>
8397       </parameters>
8398     </callback>
8399     <enumeration name="FlowReturn" c:type="GstFlowReturn">
8400       <doc xml:whitespace="preserve">sent yet) (unused/unimplemented).
8401 this error should post an error message with more
8402 details.
8403 this (and higher) to define custom success
8404 codes. Since 0.10.7.
8405 custom success code to this to avoid compiler
8406 warnings). Since 0.10.29.
8407 this (and lower) to define custom error codes.
8408 Since 0.10.7.
8409 custom error code to this to avoid compiler
8410 warnings). Since 0.10.29.
8411 The result of passing data to a pad.
8412 Note that the custom return values should not be exposed outside of the
8413 element scope and are available since 0.10.7.</doc>
8414       <member name="custom_success_2"
8415               value="102"
8416               c:identifier="GST_FLOW_CUSTOM_SUCCESS_2"/>
8417       <member name="custom_success_1"
8418               value="101"
8419               c:identifier="GST_FLOW_CUSTOM_SUCCESS_1"/>
8420       <member name="custom_success"
8421               value="100"
8422               c:identifier="GST_FLOW_CUSTOM_SUCCESS"/>
8423       <member name="resend" value="1" c:identifier="GST_FLOW_RESEND"/>
8424       <member name="ok" value="0" c:identifier="GST_FLOW_OK"/>
8425       <member name="not_linked" value="-1" c:identifier="GST_FLOW_NOT_LINKED"/>
8426       <member name="wrong_state"
8427               value="-2"
8428               c:identifier="GST_FLOW_WRONG_STATE"/>
8429       <member name="unexpected" value="-3" c:identifier="GST_FLOW_UNEXPECTED"/>
8430       <member name="not_negotiated"
8431               value="-4"
8432               c:identifier="GST_FLOW_NOT_NEGOTIATED"/>
8433       <member name="error" value="-5" c:identifier="GST_FLOW_ERROR"/>
8434       <member name="not_supported"
8435               value="-6"
8436               c:identifier="GST_FLOW_NOT_SUPPORTED"/>
8437       <member name="custom_error"
8438               value="-100"
8439               c:identifier="GST_FLOW_CUSTOM_ERROR"/>
8440       <member name="custom_error_1"
8441               value="-101"
8442               c:identifier="GST_FLOW_CUSTOM_ERROR_1"/>
8443       <member name="custom_error_2"
8444               value="-102"
8445               c:identifier="GST_FLOW_CUSTOM_ERROR_2"/>
8446     </enumeration>
8447     <enumeration name="Format" c:type="GstFormat">
8448       <doc xml:whitespace="preserve">Standard predefined formats</doc>
8449       <member name="undefined" value="0" c:identifier="GST_FORMAT_UNDEFINED"/>
8450       <member name="default" value="1" c:identifier="GST_FORMAT_DEFAULT"/>
8451       <member name="bytes" value="2" c:identifier="GST_FORMAT_BYTES"/>
8452       <member name="time" value="3" c:identifier="GST_FORMAT_TIME"/>
8453       <member name="buffers" value="4" c:identifier="GST_FORMAT_BUFFERS"/>
8454       <member name="percent" value="5" c:identifier="GST_FORMAT_PERCENT"/>
8455     </enumeration>
8456     <record name="FormatDefinition" c:type="GstFormatDefinition">
8457       <doc xml:whitespace="preserve">A format definition</doc>
8458       <field name="value" writable="1">
8459         <type name="Format" c:type="GstFormat"/>
8460       </field>
8461       <field name="nick" writable="1">
8462         <type name="utf8" c:type="gchar*"/>
8463       </field>
8464       <field name="description" writable="1">
8465         <type name="utf8" c:type="gchar*"/>
8466       </field>
8467       <field name="quark" writable="1">
8468         <type name="GLib.Quark" c:type="GQuark"/>
8469       </field>
8470     </record>
8471     <class name="GhostPad"
8472            c:symbol-prefix="ghost_pad"
8473            c:type="GstGhostPad"
8474            parent="ProxyPad"
8475            glib:type-name="GstGhostPad"
8476            glib:get-type="gst_ghost_pad_get_type"
8477            glib:type-struct="GhostPadClass">
8478       <doc xml:whitespace="preserve">GhostPads are useful when organizing pipelines with #GstBin like elements.
8479 The idea here is to create hierarchical element graphs. The bin element
8480 contains a sub-graph. Now one would like to treat the bin-element like any
8481 other #GstElement. This is where GhostPads come into play. A GhostPad acts as
8482 a proxy for another pad. Thus the bin can have sink and source ghost-pads
8483 that are associated with sink and source pads of the child elements.
8484 If the target pad is known at creation time, gst_ghost_pad_new() is the
8485 function to use to get a ghost-pad. Otherwise one can use gst_ghost_pad_new_no_target()
8486 to create the ghost-pad and use gst_ghost_pad_set_target() to establish the
8487 association later on.
8488 Note that GhostPads add overhead to the data processing of a pipeline.
8489 Last reviewed on 2005-11-18 (0.9.5)</doc>
8490       <constructor name="new" c:identifier="gst_ghost_pad_new">
8491         <doc xml:whitespace="preserve">Create a new ghostpad with @target as the target. The direction will be taken
8492 from the target pad. @target must be unlinked.
8493 Will ref the target.</doc>
8494         <return-value transfer-ownership="full">
8495           <doc xml:whitespace="preserve">a new #GstPad, or NULL in case of an error.</doc>
8496           <type name="Pad" c:type="GstPad*"/>
8497         </return-value>
8498         <parameters>
8499           <parameter name="name" transfer-ownership="none" allow-none="1">
8500             <doc xml:whitespace="preserve">the name of the new pad, or NULL to assign a default name</doc>
8501             <type name="utf8" c:type="gchar*"/>
8502           </parameter>
8503           <parameter name="target" transfer-ownership="none">
8504             <doc xml:whitespace="preserve">the pad to ghost.</doc>
8505             <type name="Pad" c:type="GstPad*"/>
8506           </parameter>
8507         </parameters>
8508       </constructor>
8509       <constructor name="new_from_template"
8510                    c:identifier="gst_ghost_pad_new_from_template"
8511                    version="0.10.10">
8512         <doc xml:whitespace="preserve">Create a new ghostpad with @target as the target. The direction will be taken
8513 from the target pad. The template used on the ghostpad will be @template.
8514 Will ref the target.</doc>
8515         <return-value transfer-ownership="full">
8516           <doc xml:whitespace="preserve">a new #GstPad, or NULL in case of an error.</doc>
8517           <type name="Pad" c:type="GstPad*"/>
8518         </return-value>
8519         <parameters>
8520           <parameter name="name" transfer-ownership="none" allow-none="1">
8521             <doc xml:whitespace="preserve">the name of the new pad, or NULL to assign a default name.</doc>
8522             <type name="utf8" c:type="gchar*"/>
8523           </parameter>
8524           <parameter name="target" transfer-ownership="none">
8525             <doc xml:whitespace="preserve">the pad to ghost.</doc>
8526             <type name="Pad" c:type="GstPad*"/>
8527           </parameter>
8528           <parameter name="templ" transfer-ownership="none">
8529             <doc xml:whitespace="preserve">the #GstPadTemplate to use on the ghostpad.</doc>
8530             <type name="PadTemplate" c:type="GstPadTemplate*"/>
8531           </parameter>
8532         </parameters>
8533       </constructor>
8534       <constructor name="new_no_target"
8535                    c:identifier="gst_ghost_pad_new_no_target">
8536         <doc xml:whitespace="preserve">Create a new ghostpad without a target with the given direction.
8537 A target can be set on the ghostpad later with the
8538 gst_ghost_pad_set_target() function.
8539 The created ghostpad will not have a padtemplate.</doc>
8540         <return-value transfer-ownership="full">
8541           <doc xml:whitespace="preserve">a new #GstPad, or NULL in case of an error.</doc>
8542           <type name="Pad" c:type="GstPad*"/>
8543         </return-value>
8544         <parameters>
8545           <parameter name="name" transfer-ownership="none" allow-none="1">
8546             <doc xml:whitespace="preserve">the name of the new pad, or NULL to assign a default name.</doc>
8547             <type name="utf8" c:type="gchar*"/>
8548           </parameter>
8549           <parameter name="dir" transfer-ownership="none">
8550             <doc xml:whitespace="preserve">the direction of the ghostpad</doc>
8551             <type name="PadDirection" c:type="GstPadDirection"/>
8552           </parameter>
8553         </parameters>
8554       </constructor>
8555       <constructor name="new_no_target_from_template"
8556                    c:identifier="gst_ghost_pad_new_no_target_from_template"
8557                    version="0.10.10">
8558         <doc xml:whitespace="preserve">Create a new ghostpad based on @templ, without setting a target. The
8559 direction will be taken from the @templ.</doc>
8560         <return-value transfer-ownership="full">
8561           <doc xml:whitespace="preserve">a new #GstPad, or NULL in case of an error.</doc>
8562           <type name="Pad" c:type="GstPad*"/>
8563         </return-value>
8564         <parameters>
8565           <parameter name="name" transfer-ownership="none" allow-none="1">
8566             <doc xml:whitespace="preserve">the name of the new pad, or NULL to assign a default name</doc>
8567             <type name="utf8" c:type="gchar*"/>
8568           </parameter>
8569           <parameter name="templ" transfer-ownership="none">
8570             <doc xml:whitespace="preserve">the #GstPadTemplate to create the ghostpad from.</doc>
8571             <type name="PadTemplate" c:type="GstPadTemplate*"/>
8572           </parameter>
8573         </parameters>
8574       </constructor>
8575       <method name="construct"
8576               c:identifier="gst_ghost_pad_construct"
8577               version="0.10.22">
8578         <doc xml:whitespace="preserve">Finish initialization of a newly allocated ghost pad.
8579 This function is most useful in language bindings and when subclassing
8580 #GstGhostPad; plugin and application developers normally will not call this
8581 function. Call this function directly after a call to g_object_new
8582 (GST_TYPE_GHOST_PAD, "direction", @dir, ..., NULL).</doc>
8583         <return-value transfer-ownership="none">
8584           <doc xml:whitespace="preserve">%TRUE if the construction succeeds, %FALSE otherwise.</doc>
8585           <type name="gboolean" c:type="gboolean"/>
8586         </return-value>
8587       </method>
8588       <method name="get_target" c:identifier="gst_ghost_pad_get_target">
8589         <doc xml:whitespace="preserve">Get the target pad of @gpad. Unref target pad after usage.
8590 has no target set. Unref target pad after usage.</doc>
8591         <return-value transfer-ownership="full">
8592           <doc xml:whitespace="preserve">the target #GstPad, can be NULL if the ghostpad</doc>
8593           <type name="Pad" c:type="GstPad*"/>
8594         </return-value>
8595       </method>
8596       <method name="set_target" c:identifier="gst_ghost_pad_set_target">
8597         <doc xml:whitespace="preserve">Set the new target of the ghostpad @gpad. Any existing target
8598 is unlinked and links to the new target are established. if @newtarget is
8599 NULL the target will be cleared.
8600 can return FALSE when the internal pads could not be linked.</doc>
8601         <return-value transfer-ownership="full">
8602           <doc xml:whitespace="preserve">TRUE if the new target could be set. This function</doc>
8603           <type name="gboolean" c:type="gboolean"/>
8604         </return-value>
8605         <parameters>
8606           <parameter name="newtarget" transfer-ownership="none" allow-none="1">
8607             <doc xml:whitespace="preserve">the new pad target</doc>
8608             <type name="Pad" c:type="GstPad*"/>
8609           </parameter>
8610         </parameters>
8611       </method>
8612       <field name="pad">
8613         <type name="ProxyPad" c:type="GstProxyPad"/>
8614       </field>
8615       <field name="priv" readable="0" private="1">
8616         <type name="GhostPadPrivate" c:type="GstGhostPadPrivate*"/>
8617       </field>
8618     </class>
8619     <record name="GhostPadClass"
8620             c:type="GstGhostPadClass"
8621             glib:is-gtype-struct-for="GhostPad">
8622       <field name="parent_class">
8623         <type name="ProxyPadClass" c:type="GstProxyPadClass"/>
8624       </field>
8625       <field name="_gst_reserved" readable="0" private="1">
8626         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
8627           <type name="gpointer" c:type="gpointer"/>
8628         </array>
8629       </field>
8630     </record>
8631     <record name="GhostPadPrivate" c:type="GstGhostPadPrivate" disguised="1">
8632     </record>
8633     <constant name="INDEX_ID_INVALID" value="-1">
8634       <type name="gint" c:type="gint"/>
8635     </constant>
8636     <interface name="ImplementsInterface"
8637                c:symbol-prefix="implements_interface"
8638                c:type="GstImplementsInterface"
8639                glib:type-name="GstImplementsInterface"
8640                glib:get-type="gst_implements_interface_get_type">
8641       <doc xml:whitespace="preserve">Provides interface functionality on per instance basis and not per class
8642 basis, which is the case for gobject.</doc>
8643       <prerequisite name="Element"/>
8644     </interface>
8645     <record name="ImplementsInterfaceClass"
8646             c:type="GstImplementsInterfaceClass">
8647       <field name="parent" writable="1">
8648         <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
8649       </field>
8650       <field name="supported">
8651         <callback name="supported">
8652           <return-value transfer-ownership="none">
8653             <type name="gboolean" c:type="gboolean"/>
8654           </return-value>
8655           <parameters>
8656             <parameter name="iface" transfer-ownership="none">
8657               <type name="ImplementsInterface"
8658                     c:type="GstImplementsInterface*"/>
8659             </parameter>
8660             <parameter name="iface_type" transfer-ownership="none">
8661               <type name="GType" c:type="GType"/>
8662             </parameter>
8663           </parameters>
8664         </callback>
8665       </field>
8666       <field name="_gst_reserved" writable="1">
8667         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
8668           <type name="gpointer" c:type="gpointer"/>
8669         </array>
8670       </field>
8671     </record>
8672     <class name="Index"
8673            c:symbol-prefix="index"
8674            c:type="GstIndex"
8675            parent="Object"
8676            glib:type-name="GstIndex"
8677            glib:get-type="gst_index_get_type"
8678            glib:type-struct="IndexClass">
8679       <doc xml:whitespace="preserve">GstIndex is used to generate a stream index of one or more elements
8680 in a pipeline.
8681 Elements will overload the set_index and get_index virtual methods in
8682 #GstElement. When streaming data, the element will add index entries if it
8683 has an index set.
8684 Each element that adds to the index will do that using a writer_id. The
8685 writer_id is obtained from gst_index_get_writer_id().
8686 The application that wants to index the stream will create a new index object
8687 using gst_index_new() or gst_index_factory_make(). The index is assigned to a
8688 specific element, a bin or the whole pipeline. This will cause indexable
8689 elements to add entires to the index while playing.</doc>
8690       <constructor name="new" c:identifier="gst_index_new">
8691         <doc xml:whitespace="preserve">Create a new dummy index object. Use gst_element_set_index() to assign that
8692 to an element or pipeline. This index is not storing anything, but will
8693 still emit e.g. the #GstIndex::entry-added signal.</doc>
8694         <return-value transfer-ownership="full">
8695           <doc xml:whitespace="preserve">a new index object</doc>
8696           <type name="Index" c:type="GstIndex*"/>
8697         </return-value>
8698       </constructor>
8699       <virtual-method name="add_entry">
8700         <return-value transfer-ownership="none">
8701           <type name="none" c:type="void"/>
8702         </return-value>
8703         <parameters>
8704           <parameter name="entry" transfer-ownership="none">
8705             <type name="IndexEntry" c:type="GstIndexEntry*"/>
8706           </parameter>
8707         </parameters>
8708       </virtual-method>
8709       <virtual-method name="commit" invoker="commit">
8710         <doc xml:whitespace="preserve">Tell the index that the writer with the given id is done
8711 with this index and is not going to write any more entries
8712 to it.</doc>
8713         <return-value transfer-ownership="none">
8714           <type name="none" c:type="void"/>
8715         </return-value>
8716         <parameters>
8717           <parameter name="id" transfer-ownership="none">
8718             <doc xml:whitespace="preserve">the writer that commited the index</doc>
8719             <type name="gint" c:type="gint"/>
8720           </parameter>
8721         </parameters>
8722       </virtual-method>
8723       <virtual-method name="entry_added">
8724         <return-value transfer-ownership="none">
8725           <type name="none" c:type="void"/>
8726         </return-value>
8727         <parameters>
8728           <parameter name="entry" transfer-ownership="none">
8729             <type name="IndexEntry" c:type="GstIndexEntry*"/>
8730           </parameter>
8731         </parameters>
8732       </virtual-method>
8733       <virtual-method name="get_assoc_entry" introspectable="0">
8734         <return-value transfer-ownership="full">
8735           <type name="IndexEntry" c:type="GstIndexEntry*"/>
8736         </return-value>
8737         <parameters>
8738           <parameter name="id" transfer-ownership="none">
8739             <type name="gint" c:type="gint"/>
8740           </parameter>
8741           <parameter name="method" transfer-ownership="none">
8742             <type name="IndexLookupMethod" c:type="GstIndexLookupMethod"/>
8743           </parameter>
8744           <parameter name="flags" transfer-ownership="none">
8745             <type name="AssocFlags" c:type="GstAssocFlags"/>
8746           </parameter>
8747           <parameter name="format" transfer-ownership="none">
8748             <type name="Format" c:type="GstFormat"/>
8749           </parameter>
8750           <parameter name="value" transfer-ownership="none">
8751             <type name="gint64" c:type="gint64"/>
8752           </parameter>
8753           <parameter name="func" transfer-ownership="none" closure="6">
8754             <type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
8755           </parameter>
8756           <parameter name="user_data" transfer-ownership="none" closure="6">
8757             <type name="gpointer" c:type="gpointer"/>
8758           </parameter>
8759         </parameters>
8760       </virtual-method>
8761       <virtual-method name="get_writer_id" invoker="get_writer_id">
8762         <doc xml:whitespace="preserve">Before entries can be added to the index, a writer
8763 should obtain a unique id. The methods to add new entries
8764 to the index require this id as an argument.
8765 The application can implement a custom function to map the writer object
8766 to a string. That string will be used to register or look up an id
8767 in the index.
8768 &lt;note&gt;
8769 The caller must not hold @writer's #GST_OBJECT_LOCK, as the default
8770 resolver may call functions that take the object lock as well, and
8771 the lock is not recursive.
8772 &lt;/note&gt;</doc>
8773         <return-value transfer-ownership="none">
8774           <doc xml:whitespace="preserve">TRUE if the writer would be mapped to an id.</doc>
8775           <type name="gboolean" c:type="gboolean"/>
8776         </return-value>
8777         <parameters>
8778           <parameter name="writer_id" transfer-ownership="none">
8779             <type name="gint" c:type="gint*"/>
8780           </parameter>
8781           <parameter name="writer_string" transfer-ownership="none">
8782             <type name="utf8" c:type="gchar*"/>
8783           </parameter>
8784         </parameters>
8785       </virtual-method>
8786       <method name="add_association"
8787               c:identifier="gst_index_add_association"
8788               introspectable="0">
8789         <doc xml:whitespace="preserve">Associate given format/value pairs with each other.
8790 Be sure to pass gint64 values to this functions varargs,
8791 you might want to use a gint64 cast to be sure.</doc>
8792         <return-value transfer-ownership="full">
8793           <doc xml:whitespace="preserve">a pointer to the newly added entry in the index.</doc>
8794           <type name="IndexEntry" c:type="GstIndexEntry*"/>
8795         </return-value>
8796         <parameters>
8797           <parameter name="id" transfer-ownership="none">
8798             <doc xml:whitespace="preserve">the id of the index writer</doc>
8799             <type name="gint" c:type="gint"/>
8800           </parameter>
8801           <parameter name="flags" transfer-ownership="none">
8802             <doc xml:whitespace="preserve">optinal flags for this entry</doc>
8803             <type name="AssocFlags" c:type="GstAssocFlags"/>
8804           </parameter>
8805           <parameter name="format" transfer-ownership="none">
8806             <doc xml:whitespace="preserve">the format of the value</doc>
8807             <type name="Format" c:type="GstFormat"/>
8808           </parameter>
8809           <parameter name="value" transfer-ownership="none">
8810             <doc xml:whitespace="preserve">the value</doc>
8811             <type name="gint64" c:type="gint64"/>
8812           </parameter>
8813           <parameter transfer-ownership="none">
8814             <varargs>
8815             </varargs>
8816           </parameter>
8817         </parameters>
8818       </method>
8819       <method name="add_associationv"
8820               c:identifier="gst_index_add_associationv">
8821         <doc xml:whitespace="preserve">Associate given format/value pairs with each other.</doc>
8822         <return-value transfer-ownership="full">
8823           <doc xml:whitespace="preserve">a pointer to the newly added entry in the index.</doc>
8824           <type name="IndexEntry" c:type="GstIndexEntry*"/>
8825         </return-value>
8826         <parameters>
8827           <parameter name="id" transfer-ownership="none">
8828             <doc xml:whitespace="preserve">the id of the index writer</doc>
8829             <type name="gint" c:type="gint"/>
8830           </parameter>
8831           <parameter name="flags" transfer-ownership="none">
8832             <doc xml:whitespace="preserve">optinal flags for this entry</doc>
8833             <type name="AssocFlags" c:type="GstAssocFlags"/>
8834           </parameter>
8835           <parameter name="n" transfer-ownership="none">
8836             <doc xml:whitespace="preserve">number of associations</doc>
8837             <type name="gint" c:type="gint"/>
8838           </parameter>
8839           <parameter name="list" transfer-ownership="none">
8840             <doc xml:whitespace="preserve">list of associations</doc>
8841             <type name="IndexAssociation" c:type="GstIndexAssociation*"/>
8842           </parameter>
8843         </parameters>
8844       </method>
8845       <method name="add_format" c:identifier="gst_index_add_format">
8846         <doc xml:whitespace="preserve">Adds a format entry into the index. This function is
8847 used to map dynamic GstFormat ids to their original
8848 format key.</doc>
8849         <return-value transfer-ownership="full">
8850           <doc xml:whitespace="preserve">a pointer to the newly added entry in the index.</doc>
8851           <type name="IndexEntry" c:type="GstIndexEntry*"/>
8852         </return-value>
8853         <parameters>
8854           <parameter name="id" transfer-ownership="none">
8855             <doc xml:whitespace="preserve">the id of the index writer</doc>
8856             <type name="gint" c:type="gint"/>
8857           </parameter>
8858           <parameter name="format" transfer-ownership="none">
8859             <doc xml:whitespace="preserve">the format to add to the index</doc>
8860             <type name="Format" c:type="GstFormat"/>
8861           </parameter>
8862         </parameters>
8863       </method>
8864       <method name="add_id" c:identifier="gst_index_add_id">
8865         <doc xml:whitespace="preserve">Add an id entry into the index.</doc>
8866         <return-value transfer-ownership="full">
8867           <doc xml:whitespace="preserve">a pointer to the newly added entry in the index.</doc>
8868           <type name="IndexEntry" c:type="GstIndexEntry*"/>
8869         </return-value>
8870         <parameters>
8871           <parameter name="id" transfer-ownership="none">
8872             <doc xml:whitespace="preserve">the id of the index writer</doc>
8873             <type name="gint" c:type="gint"/>
8874           </parameter>
8875           <parameter name="description" transfer-ownership="none">
8876             <doc xml:whitespace="preserve">the description of the index writer</doc>
8877             <type name="utf8" c:type="gchar*"/>
8878           </parameter>
8879         </parameters>
8880       </method>
8881       <method name="add_object" c:identifier="gst_index_add_object">
8882         <doc xml:whitespace="preserve">Add the given object to the index with the given key.
8883 This function is not yet implemented.</doc>
8884         <return-value transfer-ownership="full">
8885           <doc xml:whitespace="preserve">a pointer to the newly added entry in the index.</doc>
8886           <type name="IndexEntry" c:type="GstIndexEntry*"/>
8887         </return-value>
8888         <parameters>
8889           <parameter name="id" transfer-ownership="none">
8890             <doc xml:whitespace="preserve">the id of the index writer</doc>
8891             <type name="gint" c:type="gint"/>
8892           </parameter>
8893           <parameter name="key" transfer-ownership="none">
8894             <doc xml:whitespace="preserve">a key for the object</doc>
8895             <type name="utf8" c:type="gchar*"/>
8896           </parameter>
8897           <parameter name="type" transfer-ownership="none">
8898             <doc xml:whitespace="preserve">the GType of the object</doc>
8899             <type name="GType" c:type="GType"/>
8900           </parameter>
8901           <parameter name="object" transfer-ownership="none">
8902             <doc xml:whitespace="preserve">a pointer to the object to add</doc>
8903             <type name="gpointer" c:type="gpointer"/>
8904           </parameter>
8905         </parameters>
8906       </method>
8907       <method name="commit" c:identifier="gst_index_commit">
8908         <doc xml:whitespace="preserve">Tell the index that the writer with the given id is done
8909 with this index and is not going to write any more entries
8910 to it.</doc>
8911         <return-value transfer-ownership="none">
8912           <type name="none" c:type="void"/>
8913         </return-value>
8914         <parameters>
8915           <parameter name="id" transfer-ownership="none">
8916             <doc xml:whitespace="preserve">the writer that commited the index</doc>
8917             <type name="gint" c:type="gint"/>
8918           </parameter>
8919         </parameters>
8920       </method>
8921       <method name="get_assoc_entry" c:identifier="gst_index_get_assoc_entry">
8922         <doc xml:whitespace="preserve">Finds the given format/value in the index
8923 value was not found.</doc>
8924         <return-value transfer-ownership="full">
8925           <doc xml:whitespace="preserve">the entry associated with the value or NULL if the</doc>
8926           <type name="IndexEntry" c:type="GstIndexEntry*"/>
8927         </return-value>
8928         <parameters>
8929           <parameter name="id" transfer-ownership="none">
8930             <doc xml:whitespace="preserve">the id of the index writer</doc>
8931             <type name="gint" c:type="gint"/>
8932           </parameter>
8933           <parameter name="method" transfer-ownership="none">
8934             <doc xml:whitespace="preserve">The lookup method to use</doc>
8935             <type name="IndexLookupMethod" c:type="GstIndexLookupMethod"/>
8936           </parameter>
8937           <parameter name="flags" transfer-ownership="none">
8938             <doc xml:whitespace="preserve">Flags for the entry</doc>
8939             <type name="AssocFlags" c:type="GstAssocFlags"/>
8940           </parameter>
8941           <parameter name="format" transfer-ownership="none">
8942             <doc xml:whitespace="preserve">the format of the value</doc>
8943             <type name="Format" c:type="GstFormat"/>
8944           </parameter>
8945           <parameter name="value" transfer-ownership="none">
8946             <doc xml:whitespace="preserve">the value to find</doc>
8947             <type name="gint64" c:type="gint64"/>
8948           </parameter>
8949         </parameters>
8950       </method>
8951       <method name="get_assoc_entry_full"
8952               c:identifier="gst_index_get_assoc_entry_full"
8953               introspectable="0">
8954         <doc xml:whitespace="preserve">Finds the given format/value in the index with the given
8955 compare function and user_data.
8956 value was not found.</doc>
8957         <return-value transfer-ownership="full">
8958           <doc xml:whitespace="preserve">the entry associated with the value or NULL if the</doc>
8959           <type name="IndexEntry" c:type="GstIndexEntry*"/>
8960         </return-value>
8961         <parameters>
8962           <parameter name="id" transfer-ownership="none">
8963             <doc xml:whitespace="preserve">the id of the index writer</doc>
8964             <type name="gint" c:type="gint"/>
8965           </parameter>
8966           <parameter name="method" transfer-ownership="none">
8967             <doc xml:whitespace="preserve">The lookup method to use</doc>
8968             <type name="IndexLookupMethod" c:type="GstIndexLookupMethod"/>
8969           </parameter>
8970           <parameter name="flags" transfer-ownership="none">
8971             <doc xml:whitespace="preserve">Flags for the entry</doc>
8972             <type name="AssocFlags" c:type="GstAssocFlags"/>
8973           </parameter>
8974           <parameter name="format" transfer-ownership="none">
8975             <doc xml:whitespace="preserve">the format of the value</doc>
8976             <type name="Format" c:type="GstFormat"/>
8977           </parameter>
8978           <parameter name="value" transfer-ownership="none">
8979             <doc xml:whitespace="preserve">the value to find</doc>
8980             <type name="gint64" c:type="gint64"/>
8981           </parameter>
8982           <parameter name="func" transfer-ownership="none" closure="6">
8983             <doc xml:whitespace="preserve">the function used to compare entries</doc>
8984             <type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
8985           </parameter>
8986           <parameter name="user_data" transfer-ownership="none">
8987             <doc xml:whitespace="preserve">user data passed to the compare function</doc>
8988             <type name="gpointer" c:type="gpointer"/>
8989           </parameter>
8990         </parameters>
8991       </method>
8992       <method name="get_certainty" c:identifier="gst_index_get_certainty">
8993         <doc xml:whitespace="preserve">Get the certainty of the given index.</doc>
8994         <return-value transfer-ownership="none">
8995           <doc xml:whitespace="preserve">the certainty of the index.</doc>
8996           <type name="IndexCertainty" c:type="GstIndexCertainty"/>
8997         </return-value>
8998       </method>
8999       <method name="get_group" c:identifier="gst_index_get_group">
9000         <doc xml:whitespace="preserve">Get the id of the current group.</doc>
9001         <return-value transfer-ownership="none">
9002           <doc xml:whitespace="preserve">the id of the current group.</doc>
9003           <type name="gint" c:type="gint"/>
9004         </return-value>
9005       </method>
9006       <method name="get_writer_id" c:identifier="gst_index_get_writer_id">
9007         <doc xml:whitespace="preserve">Before entries can be added to the index, a writer
9008 should obtain a unique id. The methods to add new entries
9009 to the index require this id as an argument.
9010 The application can implement a custom function to map the writer object
9011 to a string. That string will be used to register or look up an id
9012 in the index.
9013 &lt;note&gt;
9014 The caller must not hold @writer's #GST_OBJECT_LOCK, as the default
9015 resolver may call functions that take the object lock as well, and
9016 the lock is not recursive.
9017 &lt;/note&gt;</doc>
9018         <return-value transfer-ownership="none">
9019           <doc xml:whitespace="preserve">TRUE if the writer would be mapped to an id.</doc>
9020           <type name="gboolean" c:type="gboolean"/>
9021         </return-value>
9022         <parameters>
9023           <parameter name="writer" transfer-ownership="none">
9024             <doc xml:whitespace="preserve">the GstObject to allocate an id for</doc>
9025             <type name="Object" c:type="GstObject*"/>
9026           </parameter>
9027           <parameter name="id" transfer-ownership="none">
9028             <doc xml:whitespace="preserve">a pointer to a gint to hold the id</doc>
9029             <type name="gint" c:type="gint*"/>
9030           </parameter>
9031         </parameters>
9032       </method>
9033       <method name="new_group" c:identifier="gst_index_new_group">
9034         <doc xml:whitespace="preserve">Create a new group for the given index. It will be
9035 set as the current group.</doc>
9036         <return-value transfer-ownership="none">
9037           <doc xml:whitespace="preserve">the id of the newly created group.</doc>
9038           <type name="gint" c:type="gint"/>
9039         </return-value>
9040       </method>
9041       <method name="set_certainty" c:identifier="gst_index_set_certainty">
9042         <doc xml:whitespace="preserve">Set the certainty of the given index.</doc>
9043         <return-value transfer-ownership="none">
9044           <type name="none" c:type="void"/>
9045         </return-value>
9046         <parameters>
9047           <parameter name="certainty" transfer-ownership="none">
9048             <doc xml:whitespace="preserve">the certainty to set</doc>
9049             <type name="IndexCertainty" c:type="GstIndexCertainty"/>
9050           </parameter>
9051         </parameters>
9052       </method>
9053       <method name="set_filter"
9054               c:identifier="gst_index_set_filter"
9055               introspectable="0">
9056         <doc xml:whitespace="preserve">Lets the app register a custom filter function so that
9057 it can select what entries should be stored in the index.</doc>
9058         <return-value transfer-ownership="none">
9059           <type name="none" c:type="void"/>
9060         </return-value>
9061         <parameters>
9062           <parameter name="filter" transfer-ownership="none" closure="1">
9063             <doc xml:whitespace="preserve">the filter to register</doc>
9064             <type name="IndexFilter" c:type="GstIndexFilter"/>
9065           </parameter>
9066           <parameter name="user_data" transfer-ownership="none">
9067             <doc xml:whitespace="preserve">data passed to the filter function</doc>
9068             <type name="gpointer" c:type="gpointer"/>
9069           </parameter>
9070         </parameters>
9071       </method>
9072       <method name="set_filter_full" c:identifier="gst_index_set_filter_full">
9073         <doc xml:whitespace="preserve">Lets the app register a custom filter function so that
9074 it can select what entries should be stored in the index.</doc>
9075         <return-value transfer-ownership="none">
9076           <type name="none" c:type="void"/>
9077         </return-value>
9078         <parameters>
9079           <parameter name="filter"
9080                      transfer-ownership="none"
9081                      scope="notified"
9082                      closure="1"
9083                      destroy="2">
9084             <doc xml:whitespace="preserve">the filter to register</doc>
9085             <type name="IndexFilter" c:type="GstIndexFilter"/>
9086           </parameter>
9087           <parameter name="user_data" transfer-ownership="none">
9088             <doc xml:whitespace="preserve">data passed to the filter function</doc>
9089             <type name="gpointer" c:type="gpointer"/>
9090           </parameter>
9091           <parameter name="user_data_destroy"
9092                      transfer-ownership="none"
9093                      scope="async">
9094             <doc xml:whitespace="preserve">function to call when @user_data is unset</doc>
9095             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
9096           </parameter>
9097         </parameters>
9098       </method>
9099       <method name="set_group" c:identifier="gst_index_set_group">
9100         <doc xml:whitespace="preserve">Set the current groupnumber to the given argument.
9101 did not exist.</doc>
9102         <return-value transfer-ownership="none">
9103           <doc xml:whitespace="preserve">TRUE if the operation succeeded, FALSE if the group</doc>
9104           <type name="gboolean" c:type="gboolean"/>
9105         </return-value>
9106         <parameters>
9107           <parameter name="groupnum" transfer-ownership="none">
9108             <doc xml:whitespace="preserve">the groupnumber to set</doc>
9109             <type name="gint" c:type="gint"/>
9110           </parameter>
9111         </parameters>
9112       </method>
9113       <method name="set_resolver"
9114               c:identifier="gst_index_set_resolver"
9115               introspectable="0">
9116         <doc xml:whitespace="preserve">Lets the app register a custom function to map index
9117 ids to writer descriptions.</doc>
9118         <return-value transfer-ownership="none">
9119           <type name="none" c:type="void"/>
9120         </return-value>
9121         <parameters>
9122           <parameter name="resolver" transfer-ownership="none" closure="1">
9123             <doc xml:whitespace="preserve">the resolver to register</doc>
9124             <type name="IndexResolver" c:type="GstIndexResolver"/>
9125           </parameter>
9126           <parameter name="user_data" transfer-ownership="none">
9127             <doc xml:whitespace="preserve">data passed to the resolver function</doc>
9128             <type name="gpointer" c:type="gpointer"/>
9129           </parameter>
9130         </parameters>
9131       </method>
9132       <method name="set_resolver_full"
9133               c:identifier="gst_index_set_resolver_full"
9134               version="0.10.18">
9135         <doc xml:whitespace="preserve">Lets the app register a custom function to map index
9136 ids to writer descriptions.</doc>
9137         <return-value transfer-ownership="none">
9138           <type name="none" c:type="void"/>
9139         </return-value>
9140         <parameters>
9141           <parameter name="resolver"
9142                      transfer-ownership="none"
9143                      scope="notified"
9144                      closure="1"
9145                      destroy="2">
9146             <doc xml:whitespace="preserve">the resolver to register</doc>
9147             <type name="IndexResolver" c:type="GstIndexResolver"/>
9148           </parameter>
9149           <parameter name="user_data" transfer-ownership="none">
9150             <doc xml:whitespace="preserve">data passed to the resolver function</doc>
9151             <type name="gpointer" c:type="gpointer"/>
9152           </parameter>
9153           <parameter name="user_data_destroy"
9154                      transfer-ownership="none"
9155                      scope="async">
9156             <doc xml:whitespace="preserve">destroy function for @user_data</doc>
9157             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
9158           </parameter>
9159         </parameters>
9160       </method>
9161       <property name="resolver"
9162                 introspectable="0"
9163                 writable="1"
9164                 transfer-ownership="none">
9165         <type/>
9166       </property>
9167       <field name="object">
9168         <type name="Object" c:type="GstObject"/>
9169       </field>
9170       <field name="groups" readable="0" private="1">
9171         <type name="GLib.List" c:type="GList*">
9172           <type name="gpointer" c:type="gpointer"/>
9173         </type>
9174       </field>
9175       <field name="curgroup" readable="0" private="1">
9176         <type name="IndexGroup" c:type="GstIndexGroup*"/>
9177       </field>
9178       <field name="maxgroup" readable="0" private="1">
9179         <type name="gint" c:type="gint"/>
9180       </field>
9181       <field name="method" readable="0" private="1">
9182         <type name="IndexResolverMethod" c:type="GstIndexResolverMethod"/>
9183       </field>
9184       <field name="resolver" readable="0" private="1">
9185         <type name="IndexResolver" c:type="GstIndexResolver"/>
9186       </field>
9187       <field name="resolver_user_data" readable="0" private="1">
9188         <type name="gpointer" c:type="gpointer"/>
9189       </field>
9190       <field name="filter" readable="0" private="1">
9191         <type name="IndexFilter" c:type="GstIndexFilter"/>
9192       </field>
9193       <field name="filter_user_data" readable="0" private="1">
9194         <type name="gpointer" c:type="gpointer"/>
9195       </field>
9196       <field name="filter_user_data_destroy" readable="0" private="1">
9197         <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
9198       </field>
9199       <field name="writers" readable="0" private="1">
9200         <type name="GLib.HashTable" c:type="GHashTable*">
9201           <type name="gpointer" c:type="gpointer"/>
9202           <type name="gpointer" c:type="gpointer"/>
9203         </type>
9204       </field>
9205       <field name="last_id" readable="0" private="1">
9206         <type name="gint" c:type="gint"/>
9207       </field>
9208       <field name="resolver_user_data_destroy" readable="0" private="1">
9209         <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
9210       </field>
9211       <field name="_gst_reserved" readable="0" private="1">
9212         <array zero-terminated="0" c:type="gpointer" fixed-size="3">
9213           <type name="gpointer" c:type="gpointer"/>
9214         </array>
9215       </field>
9216       <glib:signal name="entry-added">
9217         <doc xml:whitespace="preserve">Is emitted when a new entry is added to the index.</doc>
9218         <return-value transfer-ownership="none">
9219           <type name="none"/>
9220         </return-value>
9221         <parameters>
9222           <parameter name="arg1" transfer-ownership="none">
9223             <doc xml:whitespace="preserve">The entry added to the index.</doc>
9224             <type name="IndexEntry"/>
9225           </parameter>
9226         </parameters>
9227       </glib:signal>
9228     </class>
9229     <record name="IndexAssociation" c:type="GstIndexAssociation">
9230       <doc xml:whitespace="preserve">An association in an entry.</doc>
9231       <field name="format" writable="1">
9232         <type name="Format" c:type="GstFormat"/>
9233       </field>
9234       <field name="value" writable="1">
9235         <type name="gint64" c:type="gint64"/>
9236       </field>
9237     </record>
9238     <enumeration name="IndexCertainty" c:type="GstIndexCertainty">
9239       <doc xml:whitespace="preserve">The certainty of a group in the index.</doc>
9240       <member name="unknown" value="0" c:identifier="GST_INDEX_UNKNOWN"/>
9241       <member name="certain" value="1" c:identifier="GST_INDEX_CERTAIN"/>
9242       <member name="fuzzy" value="2" c:identifier="GST_INDEX_FUZZY"/>
9243     </enumeration>
9244     <record name="IndexClass"
9245             c:type="GstIndexClass"
9246             glib:is-gtype-struct-for="Index">
9247       <field name="parent_class">
9248         <type name="ObjectClass" c:type="GstObjectClass"/>
9249       </field>
9250       <field name="get_writer_id">
9251         <callback name="get_writer_id">
9252           <return-value transfer-ownership="none">
9253             <doc xml:whitespace="preserve">TRUE if the writer would be mapped to an id.</doc>
9254             <type name="gboolean" c:type="gboolean"/>
9255           </return-value>
9256           <parameters>
9257             <parameter name="index" transfer-ownership="none">
9258               <type name="Index" c:type="GstIndex*"/>
9259             </parameter>
9260             <parameter name="writer_id" transfer-ownership="none">
9261               <type name="gint" c:type="gint*"/>
9262             </parameter>
9263             <parameter name="writer_string" transfer-ownership="none">
9264               <type name="utf8" c:type="gchar*"/>
9265             </parameter>
9266           </parameters>
9267         </callback>
9268       </field>
9269       <field name="commit">
9270         <callback name="commit">
9271           <return-value transfer-ownership="none">
9272             <type name="none" c:type="void"/>
9273           </return-value>
9274           <parameters>
9275             <parameter name="index" transfer-ownership="none">
9276               <type name="Index" c:type="GstIndex*"/>
9277             </parameter>
9278             <parameter name="id" transfer-ownership="none">
9279               <doc xml:whitespace="preserve">the writer that commited the index</doc>
9280               <type name="gint" c:type="gint"/>
9281             </parameter>
9282           </parameters>
9283         </callback>
9284       </field>
9285       <field name="add_entry">
9286         <callback name="add_entry">
9287           <return-value transfer-ownership="none">
9288             <type name="none" c:type="void"/>
9289           </return-value>
9290           <parameters>
9291             <parameter name="index" transfer-ownership="none">
9292               <type name="Index" c:type="GstIndex*"/>
9293             </parameter>
9294             <parameter name="entry" transfer-ownership="none">
9295               <type name="IndexEntry" c:type="GstIndexEntry*"/>
9296             </parameter>
9297           </parameters>
9298         </callback>
9299       </field>
9300       <field name="get_assoc_entry" introspectable="0">
9301         <callback name="get_assoc_entry" introspectable="0">
9302           <return-value transfer-ownership="full">
9303             <type name="IndexEntry" c:type="GstIndexEntry*"/>
9304           </return-value>
9305           <parameters>
9306             <parameter name="index" transfer-ownership="none">
9307               <type name="Index" c:type="GstIndex*"/>
9308             </parameter>
9309             <parameter name="id" transfer-ownership="none">
9310               <type name="gint" c:type="gint"/>
9311             </parameter>
9312             <parameter name="method" transfer-ownership="none">
9313               <type name="IndexLookupMethod" c:type="GstIndexLookupMethod"/>
9314             </parameter>
9315             <parameter name="flags" transfer-ownership="none">
9316               <type name="AssocFlags" c:type="GstAssocFlags"/>
9317             </parameter>
9318             <parameter name="format" transfer-ownership="none">
9319               <type name="Format" c:type="GstFormat"/>
9320             </parameter>
9321             <parameter name="value" transfer-ownership="none">
9322               <type name="gint64" c:type="gint64"/>
9323             </parameter>
9324             <parameter name="func" transfer-ownership="none" closure="7">
9325               <type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
9326             </parameter>
9327             <parameter name="user_data" transfer-ownership="none" closure="7">
9328               <type name="gpointer" c:type="gpointer"/>
9329             </parameter>
9330           </parameters>
9331         </callback>
9332       </field>
9333       <field name="entry_added">
9334         <callback name="entry_added">
9335           <return-value transfer-ownership="none">
9336             <type name="none" c:type="void"/>
9337           </return-value>
9338           <parameters>
9339             <parameter name="index" transfer-ownership="none">
9340               <type name="Index" c:type="GstIndex*"/>
9341             </parameter>
9342             <parameter name="entry" transfer-ownership="none">
9343               <type name="IndexEntry" c:type="GstIndexEntry*"/>
9344             </parameter>
9345           </parameters>
9346         </callback>
9347       </field>
9348       <field name="_gst_reserved" readable="0" private="1">
9349         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
9350           <type name="gpointer" c:type="gpointer"/>
9351         </array>
9352       </field>
9353     </record>
9354     <record name="IndexEntry"
9355             c:type="GstIndexEntry"
9356             glib:type-name="GstIndexEntry"
9357             glib:get-type="gst_index_entry_get_type"
9358             c:symbol-prefix="index_entry">
9359       <doc xml:whitespace="preserve">The basic element of an index.</doc>
9360       <field name="type" readable="0" private="1">
9361         <type name="IndexEntryType" c:type="GstIndexEntryType"/>
9362       </field>
9363       <field name="id" readable="0" private="1">
9364         <type name="gint" c:type="gint"/>
9365       </field>
9366       <union name="data" c:type="data">
9367         <record name="id" c:type="id">
9368           <field name="description" writable="1">
9369             <type name="utf8" c:type="gchar*"/>
9370           </field>
9371         </record>
9372         <record name="assoc" c:type="assoc">
9373           <field name="nassocs" writable="1">
9374             <type name="gint" c:type="gint"/>
9375           </field>
9376           <field name="assocs" writable="1">
9377             <type name="IndexAssociation" c:type="GstIndexAssociation*"/>
9378           </field>
9379           <field name="flags" writable="1">
9380             <type name="AssocFlags" c:type="GstAssocFlags"/>
9381           </field>
9382         </record>
9383         <record name="object" c:type="object">
9384           <field name="key" writable="1">
9385             <type name="utf8" c:type="gchar*"/>
9386           </field>
9387           <field name="type" writable="1">
9388             <type name="GType" c:type="GType"/>
9389           </field>
9390           <field name="object" writable="1">
9391             <type name="gpointer" c:type="gpointer"/>
9392           </field>
9393         </record>
9394         <record name="format" c:type="format">
9395           <field name="format" writable="1">
9396             <type name="Format" c:type="GstFormat"/>
9397           </field>
9398           <field name="key" writable="1">
9399             <type name="utf8" c:type="gchar*"/>
9400           </field>
9401         </record>
9402       </union>
9403       <method name="assoc_map" c:identifier="gst_index_entry_assoc_map">
9404         <doc xml:whitespace="preserve">Gets alternative formats associated with the indexentry.
9405 format.</doc>
9406         <return-value transfer-ownership="none">
9407           <doc xml:whitespace="preserve">TRUE if there was a value associated with the given</doc>
9408           <type name="gboolean" c:type="gboolean"/>
9409         </return-value>
9410         <parameters>
9411           <parameter name="format" transfer-ownership="none">
9412             <doc xml:whitespace="preserve">the format of the value the find</doc>
9413             <type name="Format" c:type="GstFormat"/>
9414           </parameter>
9415           <parameter name="value" transfer-ownership="none">
9416             <doc xml:whitespace="preserve">a pointer to store the value</doc>
9417             <type name="gint64" c:type="gint64*"/>
9418           </parameter>
9419         </parameters>
9420       </method>
9421       <method name="copy" c:identifier="gst_index_entry_copy">
9422         <doc xml:whitespace="preserve">Copies an entry and returns the result.</doc>
9423         <return-value transfer-ownership="full">
9424           <doc xml:whitespace="preserve">a newly allocated #GstIndexEntry.</doc>
9425           <type name="IndexEntry" c:type="GstIndexEntry*"/>
9426         </return-value>
9427       </method>
9428       <method name="free" c:identifier="gst_index_entry_free">
9429         <doc xml:whitespace="preserve">Free the memory used by the given entry.</doc>
9430         <return-value transfer-ownership="none">
9431           <type name="none" c:type="void"/>
9432         </return-value>
9433       </method>
9434     </record>
9435     <enumeration name="IndexEntryType" c:type="GstIndexEntryType">
9436       <doc xml:whitespace="preserve">The different types of entries in the index.</doc>
9437       <member name="id" value="0" c:identifier="GST_INDEX_ENTRY_ID"/>
9438       <member name="association"
9439               value="1"
9440               c:identifier="GST_INDEX_ENTRY_ASSOCIATION"/>
9441       <member name="object" value="2" c:identifier="GST_INDEX_ENTRY_OBJECT"/>
9442       <member name="format" value="3" c:identifier="GST_INDEX_ENTRY_FORMAT"/>
9443     </enumeration>
9444     <class name="IndexFactory"
9445            c:symbol-prefix="index_factory"
9446            c:type="GstIndexFactory"
9447            parent="PluginFeature"
9448            glib:type-name="GstIndexFactory"
9449            glib:get-type="gst_index_factory_get_type"
9450            glib:type-struct="IndexFactoryClass">
9451       <doc xml:whitespace="preserve">GstIndexFactory is used to dynamically create GstIndex implementations.</doc>
9452       <constructor name="new" c:identifier="gst_index_factory_new">
9453         <doc xml:whitespace="preserve">Create a new indexfactory with the given parameters</doc>
9454         <return-value transfer-ownership="full">
9455           <doc xml:whitespace="preserve">a new #GstIndexFactory.</doc>
9456           <type name="IndexFactory" c:type="GstIndexFactory*"/>
9457         </return-value>
9458         <parameters>
9459           <parameter name="name" transfer-ownership="none">
9460             <doc xml:whitespace="preserve">name of indexfactory to create</doc>
9461             <type name="utf8" c:type="gchar*"/>
9462           </parameter>
9463           <parameter name="longdesc" transfer-ownership="none">
9464             <doc xml:whitespace="preserve">long description of indexfactory to create</doc>
9465             <type name="utf8" c:type="gchar*"/>
9466           </parameter>
9467           <parameter name="type" transfer-ownership="none">
9468             <doc xml:whitespace="preserve">the GType of the GstIndex element of this factory</doc>
9469             <type name="GType" c:type="GType"/>
9470           </parameter>
9471         </parameters>
9472       </constructor>
9473       <function name="find" c:identifier="gst_index_factory_find">
9474         <doc xml:whitespace="preserve">Search for an indexfactory of the given name.</doc>
9475         <return-value transfer-ownership="full">
9476           <doc xml:whitespace="preserve">#GstIndexFactory if found, NULL otherwise</doc>
9477           <type name="IndexFactory" c:type="GstIndexFactory*"/>
9478         </return-value>
9479         <parameters>
9480           <parameter name="name" transfer-ownership="none">
9481             <doc xml:whitespace="preserve">name of indexfactory to find</doc>
9482             <type name="utf8" c:type="gchar*"/>
9483           </parameter>
9484         </parameters>
9485       </function>
9486       <function name="make" c:identifier="gst_index_factory_make">
9487         <doc xml:whitespace="preserve">Create a new #GstIndex instance from the
9488 indexfactory with the given name.</doc>
9489         <return-value transfer-ownership="full">
9490           <doc xml:whitespace="preserve">a new #GstIndex instance.</doc>
9491           <type name="Index" c:type="GstIndex*"/>
9492         </return-value>
9493         <parameters>
9494           <parameter name="name" transfer-ownership="none">
9495             <doc xml:whitespace="preserve">the name of the factory used to create the instance</doc>
9496             <type name="utf8" c:type="gchar*"/>
9497           </parameter>
9498         </parameters>
9499       </function>
9500       <method name="create" c:identifier="gst_index_factory_create">
9501         <doc xml:whitespace="preserve">Create a new #GstIndex instance from the
9502 given indexfactory.</doc>
9503         <return-value transfer-ownership="full">
9504           <doc xml:whitespace="preserve">a new #GstIndex instance.</doc>
9505           <type name="Index" c:type="GstIndex*"/>
9506         </return-value>
9507       </method>
9508       <method name="destroy" c:identifier="gst_index_factory_destroy">
9509         <doc xml:whitespace="preserve">Removes the index from the global list.</doc>
9510         <return-value transfer-ownership="none">
9511           <type name="none" c:type="void"/>
9512         </return-value>
9513       </method>
9514       <field name="feature">
9515         <type name="PluginFeature" c:type="GstPluginFeature"/>
9516       </field>
9517       <field name="longdesc">
9518         <type name="utf8" c:type="gchar*"/>
9519       </field>
9520       <field name="type">
9521         <type name="GType" c:type="GType"/>
9522       </field>
9523       <field name="_gst_reserved">
9524         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
9525           <type name="gpointer" c:type="gpointer"/>
9526         </array>
9527       </field>
9528     </class>
9529     <record name="IndexFactoryClass"
9530             c:type="GstIndexFactoryClass"
9531             glib:is-gtype-struct-for="IndexFactory">
9532       <field name="parent">
9533         <type name="PluginFeatureClass" c:type="GstPluginFeatureClass"/>
9534       </field>
9535       <field name="_gst_reserved">
9536         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
9537           <type name="gpointer" c:type="gpointer"/>
9538         </array>
9539       </field>
9540     </record>
9541     <callback name="IndexFilter" c:type="GstIndexFilter">
9542       <doc xml:whitespace="preserve">Function to filter out entries in the index.
9543 to the index, %FALSE otherwise.</doc>
9544       <return-value transfer-ownership="none">
9545         <doc xml:whitespace="preserve">This function should return %TRUE if the entry is to be added</doc>
9546         <type name="gboolean" c:type="gboolean"/>
9547       </return-value>
9548       <parameters>
9549         <parameter name="index" transfer-ownership="none">
9550           <doc xml:whitespace="preserve">The index being queried</doc>
9551           <type name="Index" c:type="GstIndex*"/>
9552         </parameter>
9553         <parameter name="entry" transfer-ownership="none">
9554           <doc xml:whitespace="preserve">The entry to be added.</doc>
9555           <type name="IndexEntry" c:type="GstIndexEntry*"/>
9556         </parameter>
9557         <parameter name="user_data" transfer-ownership="none" closure="2">
9558           <doc xml:whitespace="preserve">User data passed to the function.</doc>
9559           <type name="gpointer" c:type="gpointer"/>
9560         </parameter>
9561       </parameters>
9562     </callback>
9563     <bitfield name="IndexFlags" c:type="GstIndexFlags">
9564       <doc xml:whitespace="preserve">Flags for this index</doc>
9565       <member name="writable" value="16" c:identifier="GST_INDEX_WRITABLE"/>
9566       <member name="readable" value="32" c:identifier="GST_INDEX_READABLE"/>
9567       <member name="flag_last"
9568               value="4096"
9569               c:identifier="GST_INDEX_FLAG_LAST"/>
9570     </bitfield>
9571     <record name="IndexGroup" c:type="GstIndexGroup">
9572       <doc xml:whitespace="preserve">A group of related entries in an index.</doc>
9573       <field name="groupnum" readable="0" private="1">
9574         <type name="gint" c:type="gint"/>
9575       </field>
9576       <field name="entries" readable="0" private="1">
9577         <type name="GLib.List" c:type="GList*">
9578           <type name="gpointer" c:type="gpointer"/>
9579         </type>
9580       </field>
9581       <field name="certainty" readable="0" private="1">
9582         <type name="IndexCertainty" c:type="GstIndexCertainty"/>
9583       </field>
9584       <field name="peergroup" readable="0" private="1">
9585         <type name="gint" c:type="gint"/>
9586       </field>
9587     </record>
9588     <enumeration name="IndexLookupMethod" c:type="GstIndexLookupMethod">
9589       <doc xml:whitespace="preserve">Specify the method to find an index entry in the index.</doc>
9590       <member name="exact" value="0" c:identifier="GST_INDEX_LOOKUP_EXACT"/>
9591       <member name="before" value="1" c:identifier="GST_INDEX_LOOKUP_BEFORE"/>
9592       <member name="after" value="2" c:identifier="GST_INDEX_LOOKUP_AFTER"/>
9593     </enumeration>
9594     <callback name="IndexResolver" c:type="GstIndexResolver">
9595       <doc xml:whitespace="preserve">Function to resolve ids to writer descriptions.</doc>
9596       <return-value transfer-ownership="none">
9597         <doc xml:whitespace="preserve">%TRUE if an id could be assigned to the writer.</doc>
9598         <type name="gboolean" c:type="gboolean"/>
9599       </return-value>
9600       <parameters>
9601         <parameter name="index" transfer-ownership="none">
9602           <doc xml:whitespace="preserve">the index being queried.</doc>
9603           <type name="Index" c:type="GstIndex*"/>
9604         </parameter>
9605         <parameter name="writer" transfer-ownership="none">
9606           <doc xml:whitespace="preserve">The object that wants to write</doc>
9607           <type name="Object" c:type="GstObject*"/>
9608         </parameter>
9609         <parameter name="writer_string" transfer-ownership="none">
9610           <doc xml:whitespace="preserve">A description of the writer.</doc>
9611           <type name="utf8" c:type="gchar**"/>
9612         </parameter>
9613         <parameter name="user_data" transfer-ownership="none" closure="3">
9614           <doc xml:whitespace="preserve">user_data as registered</doc>
9615           <type name="gpointer" c:type="gpointer"/>
9616         </parameter>
9617       </parameters>
9618     </callback>
9619     <enumeration name="IndexResolverMethod" c:type="GstIndexResolverMethod">
9620       <doc xml:whitespace="preserve">The method used to resolve index writers</doc>
9621       <member name="custom"
9622               value="0"
9623               c:identifier="GST_INDEX_RESOLVER_CUSTOM"/>
9624       <member name="gtype" value="1" c:identifier="GST_INDEX_RESOLVER_GTYPE"/>
9625       <member name="path" value="2" c:identifier="GST_INDEX_RESOLVER_PATH"/>
9626     </enumeration>
9627     <record name="Iterator" c:type="GstIterator">
9628       <doc xml:whitespace="preserve">A GstIterator is used to retrieve multiple objects from another object in
9629 a threadsafe way.
9630 Various GStreamer objects provide access to their internal structures using
9631 an iterator.
9632 In general, whenever calling a GstIterator function results in your code
9633 receiving a refcounted object, the refcount for that object will have been
9634 increased.  Your code is responsible for unrefing that object after use.
9635 The basic use pattern of an iterator is as follows:
9636 &lt;example&gt;
9637 &lt;title&gt;Using an iterator&lt;/title&gt;
9638 &lt;programlisting&gt;
9639 it = _get_iterator(object);
9640 done = FALSE;
9641 while (!done) {
9642 switch (gst_iterator_next (it, &amp;amp;item)) {
9643 case GST_ITERATOR_OK:
9644 ... use/change item here...
9645 gst_object_unref (item);
9646 break;
9647 case GST_ITERATOR_RESYNC:
9648 ...rollback changes to items...
9649 gst_iterator_resync (it);
9650 break;
9651 case GST_ITERATOR_ERROR:
9652 ...wrong parameters were given...
9653 done = TRUE;
9654 break;
9655 case GST_ITERATOR_DONE:
9656 done = TRUE;
9657 break;
9658 }
9659 }
9660 gst_iterator_free (it);
9661 &lt;/programlisting&gt;
9662 &lt;/example&gt;
9663 Last reviewed on 2009-06-16 (0.10.24)</doc>
9664       <field name="next" writable="1">
9665         <type name="IteratorNextFunction" c:type="GstIteratorNextFunction"/>
9666       </field>
9667       <field name="item" writable="1">
9668         <type name="IteratorItemFunction" c:type="GstIteratorItemFunction"/>
9669       </field>
9670       <field name="resync" writable="1">
9671         <type name="IteratorResyncFunction"
9672               c:type="GstIteratorResyncFunction"/>
9673       </field>
9674       <field name="free" writable="1">
9675         <type name="IteratorFreeFunction" c:type="GstIteratorFreeFunction"/>
9676       </field>
9677       <field name="pushed" writable="1">
9678         <type name="Iterator" c:type="GstIterator*"/>
9679       </field>
9680       <field name="type" writable="1">
9681         <type name="GType" c:type="GType"/>
9682       </field>
9683       <field name="lock" writable="1">
9684         <type name="GLib.Mutex" c:type="GMutex*"/>
9685       </field>
9686       <field name="cookie" writable="1">
9687         <type name="guint32" c:type="guint32"/>
9688       </field>
9689       <field name="master_cookie" writable="1">
9690         <type name="guint32" c:type="guint32*"/>
9691       </field>
9692       <field name="_gst_reserved" readable="0" private="1">
9693         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
9694           <type name="gpointer" c:type="gpointer"/>
9695         </array>
9696       </field>
9697       <method name="filter"
9698               c:identifier="gst_iterator_filter"
9699               introspectable="0">
9700         <doc xml:whitespace="preserve">Create a new iterator from an existing iterator. The new iterator
9701 will only return those elements that match the given compare function @func.
9702 in the iterator.
9703 When this iterator is freed, @it will also be freed.
9704 MT safe.</doc>
9705         <return-value transfer-ownership="full">
9706           <doc xml:whitespace="preserve">a new #GstIterator.</doc>
9707           <type name="Iterator" c:type="GstIterator*"/>
9708         </return-value>
9709         <parameters>
9710           <parameter name="func"
9711                      transfer-ownership="none"
9712                      scope="call"
9713                      closure="1">
9714             <doc xml:whitespace="preserve">the compare function to select elements</doc>
9715             <type name="GLib.CompareFunc" c:type="GCompareFunc"/>
9716           </parameter>
9717           <parameter name="user_data" transfer-ownership="none">
9718             <doc xml:whitespace="preserve">user data passed to the compare function</doc>
9719             <type name="gpointer" c:type="gpointer"/>
9720           </parameter>
9721         </parameters>
9722       </method>
9723       <method name="find_custom" c:identifier="gst_iterator_find_custom">
9724         <doc xml:whitespace="preserve">Find the first element in @it that matches the compare function @func.
9725 the refcount of a refcounted object will be increased before @func is 
9726 called, and should be unrefed after use in @func unless it is the matching
9727 element.
9728 The iterator will not be freed.
9729 This function will return NULL if an error happened to the iterator.
9730 function or NULL when no element matched.
9731 MT safe.</doc>
9732         <return-value transfer-ownership="full">
9733           <doc xml:whitespace="preserve">The element in the iterator that matches the compare</doc>
9734           <type name="gpointer" c:type="gpointer"/>
9735         </return-value>
9736         <parameters>
9737           <parameter name="func"
9738                      transfer-ownership="none"
9739                      scope="call"
9740                      closure="1">
9741             <doc xml:whitespace="preserve">the compare function to use</doc>
9742             <type name="GLib.CompareFunc" c:type="GCompareFunc"/>
9743           </parameter>
9744           <parameter name="user_data" transfer-ownership="none">
9745             <doc xml:whitespace="preserve">user data passed to the compare function</doc>
9746             <type name="gpointer" c:type="gpointer"/>
9747           </parameter>
9748         </parameters>
9749       </method>
9750       <method name="fold" c:identifier="gst_iterator_fold">
9751         <doc xml:whitespace="preserve">Folds @func over the elements of @iter. That is to say, @func will be called
9752 as @func (object, @ret, @user_data) for each object in @it. The normal use
9753 of this procedure is to accumulate the results of operating on the objects in
9754 before @func is called, and it should be unrefed after use in @func.
9755 This procedure can be used (and is used internally) to implement the
9756 gst_iterator_foreach() and gst_iterator_find_custom() operations.
9757 The fold will proceed as long as @func returns TRUE. When the iterator has no
9758 more arguments, %GST_ITERATOR_DONE will be returned. If @func returns FALSE,
9759 the fold will stop, and %GST_ITERATOR_OK will be returned. Errors or resyncs
9760 will cause fold to return %GST_ITERATOR_ERROR or %GST_ITERATOR_RESYNC as
9761 appropriate.
9762 The iterator will not be freed.
9763 MT safe.</doc>
9764         <return-value transfer-ownership="none">
9765           <doc xml:whitespace="preserve">A #GstIteratorResult, as described above.</doc>
9766           <type name="IteratorResult" c:type="GstIteratorResult"/>
9767         </return-value>
9768         <parameters>
9769           <parameter name="func"
9770                      transfer-ownership="none"
9771                      scope="call"
9772                      closure="2">
9773             <doc xml:whitespace="preserve">the fold function</doc>
9774             <type name="IteratorFoldFunction"
9775                   c:type="GstIteratorFoldFunction"/>
9776           </parameter>
9777           <parameter name="ret" transfer-ownership="none">
9778             <doc xml:whitespace="preserve">the seed value passed to the fold function</doc>
9779             <type name="GObject.Value" c:type="GValue*"/>
9780           </parameter>
9781           <parameter name="user_data" transfer-ownership="none">
9782             <doc xml:whitespace="preserve">user data passed to the fold function</doc>
9783             <type name="gpointer" c:type="gpointer"/>
9784           </parameter>
9785         </parameters>
9786       </method>
9787       <method name="foreach" c:identifier="gst_iterator_foreach">
9788         <doc xml:whitespace="preserve">Iterate over all element of @it and call the given function @func for
9789 each element.  As in gst_iterator_fold(), the refcount of a refcounted 
9790 object will be increased before @func is called, and should be unrefed
9791 after use.
9792 freed.
9793 MT safe.</doc>
9794         <return-value transfer-ownership="none">
9795           <doc xml:whitespace="preserve">the result call to gst_iterator_fold(). The iterator will not be</doc>
9796           <type name="IteratorResult" c:type="GstIteratorResult"/>
9797         </return-value>
9798         <parameters>
9799           <parameter name="func"
9800                      transfer-ownership="none"
9801                      scope="call"
9802                      closure="1">
9803             <doc xml:whitespace="preserve">the function to call for each element.</doc>
9804             <type name="GLib.Func" c:type="GFunc"/>
9805           </parameter>
9806           <parameter name="user_data" transfer-ownership="none">
9807             <doc xml:whitespace="preserve">user data passed to the function</doc>
9808             <type name="gpointer" c:type="gpointer"/>
9809           </parameter>
9810         </parameters>
9811       </method>
9812       <method name="free" c:identifier="gst_iterator_free">
9813         <doc xml:whitespace="preserve">Free the iterator.
9814 MT safe.</doc>
9815         <return-value transfer-ownership="none">
9816           <type name="none" c:type="void"/>
9817         </return-value>
9818       </method>
9819       <method name="next" c:identifier="gst_iterator_next">
9820         <doc xml:whitespace="preserve">Get the next item from the iterator in @elem. 
9821 Only when this function returns %GST_ITERATOR_OK, @elem will contain a valid
9822 value. For iterators that return refcounted objects, the returned object
9823 will have its refcount increased and should therefore be unreffed after
9824 usage.
9825 When this function returns %GST_ITERATOR_DONE, no more elements can be
9826 retrieved from @it.
9827 A return value of %GST_ITERATOR_RESYNC indicates that the element list was
9828 concurrently updated. The user of @it should call gst_iterator_resync() to
9829 get the newly updated list. 
9830 A return value of %GST_ITERATOR_ERROR indicates an unrecoverable fatal error.
9831 is a refcounted object.
9832 MT safe.</doc>
9833         <return-value transfer-ownership="none">
9834           <doc xml:whitespace="preserve">The result of the iteration. Unref @elem after usage if this</doc>
9835           <type name="IteratorResult" c:type="GstIteratorResult"/>
9836         </return-value>
9837         <parameters>
9838           <parameter name="elem" transfer-ownership="none">
9839             <doc xml:whitespace="preserve">pointer to hold next element</doc>
9840             <type name="gpointer" c:type="gpointer*"/>
9841           </parameter>
9842         </parameters>
9843       </method>
9844       <method name="push" c:identifier="gst_iterator_push">
9845         <doc xml:whitespace="preserve">Pushes @other iterator onto @it. All calls performed on @it are
9846 forwarded to @other. If @other returns %GST_ITERATOR_DONE, it is
9847 popped again and calls are handled by @it again.
9848 This function is mainly used by objects implementing the iterator
9849 next function to recurse into substructures.
9850 When gst_iterator_resync() is called on @it, @other will automatically be
9851 popped.
9852 MT safe.</doc>
9853         <return-value transfer-ownership="none">
9854           <type name="none" c:type="void"/>
9855         </return-value>
9856         <parameters>
9857           <parameter name="other" transfer-ownership="none">
9858             <doc xml:whitespace="preserve">The #GstIterator to push</doc>
9859             <type name="Iterator" c:type="GstIterator*"/>
9860           </parameter>
9861         </parameters>
9862       </method>
9863       <method name="resync" c:identifier="gst_iterator_resync">
9864         <doc xml:whitespace="preserve">Resync the iterator. this function is mostly called
9865 after gst_iterator_next() returned %GST_ITERATOR_RESYNC.
9866 When an iterator was pushed on @it, it will automatically be popped again
9867 with this function.
9868 MT safe.</doc>
9869         <return-value transfer-ownership="none">
9870           <type name="none" c:type="void"/>
9871         </return-value>
9872       </method>
9873     </record>
9874     <callback name="IteratorDisposeFunction"
9875               c:type="GstIteratorDisposeFunction">
9876       <doc xml:whitespace="preserve">The function that will be called when a #GList iterator is freed. The
9877 owner of the #GList iterator can then clean up its resources.</doc>
9878       <return-value transfer-ownership="none">
9879         <type name="none" c:type="void"/>
9880       </return-value>
9881       <parameters>
9882         <parameter name="owner" transfer-ownership="none">
9883           <doc xml:whitespace="preserve">the owner of the iterator</doc>
9884           <type name="gpointer" c:type="gpointer"/>
9885         </parameter>
9886       </parameters>
9887     </callback>
9888     <callback name="IteratorFoldFunction" c:type="GstIteratorFoldFunction">
9889       <doc xml:whitespace="preserve">A function to be passed to gst_iterator_fold().</doc>
9890       <return-value transfer-ownership="none">
9891         <doc xml:whitespace="preserve">TRUE if the fold should continue, FALSE if it should stop.</doc>
9892         <type name="gboolean" c:type="gboolean"/>
9893       </return-value>
9894       <parameters>
9895         <parameter name="item" transfer-ownership="none">
9896           <doc xml:whitespace="preserve">the item to fold</doc>
9897           <type name="gpointer" c:type="gpointer"/>
9898         </parameter>
9899         <parameter name="ret" transfer-ownership="none">
9900           <doc xml:whitespace="preserve">a #GValue collecting the result</doc>
9901           <type name="GObject.Value" c:type="GValue*"/>
9902         </parameter>
9903         <parameter name="user_data" transfer-ownership="none" closure="2">
9904           <doc xml:whitespace="preserve">data passed to gst_iterator_fold()</doc>
9905           <type name="gpointer" c:type="gpointer"/>
9906         </parameter>
9907       </parameters>
9908     </callback>
9909     <callback name="IteratorFreeFunction" c:type="GstIteratorFreeFunction">
9910       <doc xml:whitespace="preserve">This function will be called when the iterator is freed.
9911 Implementors of a #GstIterator should implement this
9912 function and pass it to the constructor of the custom iterator.
9913 The function will be called with the iterator lock held.</doc>
9914       <return-value transfer-ownership="none">
9915         <type name="none" c:type="void"/>
9916       </return-value>
9917       <parameters>
9918         <parameter name="it" transfer-ownership="none">
9919           <doc xml:whitespace="preserve">the iterator</doc>
9920           <type name="Iterator" c:type="GstIterator*"/>
9921         </parameter>
9922       </parameters>
9923     </callback>
9924     <enumeration name="IteratorItem" c:type="GstIteratorItem">
9925       <doc xml:whitespace="preserve">The result of a #GstIteratorItemFunction.</doc>
9926       <member name="skip" value="0" c:identifier="GST_ITERATOR_ITEM_SKIP"/>
9927       <member name="pass" value="1" c:identifier="GST_ITERATOR_ITEM_PASS"/>
9928       <member name="end" value="2" c:identifier="GST_ITERATOR_ITEM_END"/>
9929     </enumeration>
9930     <callback name="IteratorItemFunction" c:type="GstIteratorItemFunction">
9931       <doc xml:whitespace="preserve">The function that will be called after the next item of the iterator
9932 has been retrieved. This function will typically increase the refcount
9933 of the item or make a copy.
9934 Implementors of a #GstIterator should implement this
9935 function and pass it to the constructor of the custom iterator.
9936 The function will be called with the iterator lock held.</doc>
9937       <return-value transfer-ownership="none">
9938         <doc xml:whitespace="preserve">the result of the operation.</doc>
9939         <type name="IteratorItem" c:type="GstIteratorItem"/>
9940       </return-value>
9941       <parameters>
9942         <parameter name="it" transfer-ownership="none">
9943           <doc xml:whitespace="preserve">the iterator</doc>
9944           <type name="Iterator" c:type="GstIterator*"/>
9945         </parameter>
9946         <parameter name="item" transfer-ownership="none">
9947           <doc xml:whitespace="preserve">the item being retrieved.</doc>
9948           <type name="gpointer" c:type="gpointer"/>
9949         </parameter>
9950       </parameters>
9951     </callback>
9952     <callback name="IteratorNextFunction" c:type="GstIteratorNextFunction">
9953       <doc xml:whitespace="preserve">The function that will be called when the next element of the iterator
9954 should be retrieved. 
9955 Implementors of a #GstIterator should implement this
9956 function and pass it to the constructor of the custom iterator.
9957 The function will be called with the iterator lock held.</doc>
9958       <return-value transfer-ownership="none">
9959         <doc xml:whitespace="preserve">the result of the operation.</doc>
9960         <type name="IteratorResult" c:type="GstIteratorResult"/>
9961       </return-value>
9962       <parameters>
9963         <parameter name="it" transfer-ownership="none">
9964           <doc xml:whitespace="preserve">the iterator</doc>
9965           <type name="Iterator" c:type="GstIterator*"/>
9966         </parameter>
9967         <parameter name="result" transfer-ownership="none">
9968           <doc xml:whitespace="preserve">a pointer to hold the next item</doc>
9969           <type name="gpointer" c:type="gpointer*"/>
9970         </parameter>
9971       </parameters>
9972     </callback>
9973     <enumeration name="IteratorResult" c:type="GstIteratorResult">
9974       <doc xml:whitespace="preserve">The result of gst_iterator_next().</doc>
9975       <member name="done" value="0" c:identifier="GST_ITERATOR_DONE"/>
9976       <member name="ok" value="1" c:identifier="GST_ITERATOR_OK"/>
9977       <member name="resync" value="2" c:identifier="GST_ITERATOR_RESYNC"/>
9978       <member name="error" value="3" c:identifier="GST_ITERATOR_ERROR"/>
9979     </enumeration>
9980     <callback name="IteratorResyncFunction" c:type="GstIteratorResyncFunction">
9981       <doc xml:whitespace="preserve">This function will be called whenever a concurrent update happened
9982 to the iterated datastructure. The implementor of the iterator should
9983 restart the iterator from the beginning and clean up any state it might
9984 have.
9985 Implementors of a #GstIterator should implement this
9986 function and pass it to the constructor of the custom iterator.
9987 The function will be called with the iterator lock held.</doc>
9988       <return-value transfer-ownership="none">
9989         <type name="none" c:type="void"/>
9990       </return-value>
9991       <parameters>
9992         <parameter name="it" transfer-ownership="none">
9993           <doc xml:whitespace="preserve">the iterator</doc>
9994           <type name="Iterator" c:type="GstIterator*"/>
9995         </parameter>
9996       </parameters>
9997     </callback>
9998     <constant name="LICENSE_UNKNOWN" value="unknown">
9999       <type name="utf8" c:type="gchar*"/>
10000     </constant>
10001     <enumeration name="LibraryError"
10002                  c:type="GstLibraryError"
10003                  glib:error-quark="gst_library_error_quark">
10004       <doc xml:whitespace="preserve">Library errors are for errors from the library being used by elements
10005 (initializing, finalizing, settings, ...)</doc>
10006       <member name="failed" value="1" c:identifier="GST_LIBRARY_ERROR_FAILED"/>
10007       <member name="too_lazy"
10008               value="2"
10009               c:identifier="GST_LIBRARY_ERROR_TOO_LAZY"/>
10010       <member name="init" value="3" c:identifier="GST_LIBRARY_ERROR_INIT"/>
10011       <member name="shutdown"
10012               value="4"
10013               c:identifier="GST_LIBRARY_ERROR_SHUTDOWN"/>
10014       <member name="settings"
10015               value="5"
10016               c:identifier="GST_LIBRARY_ERROR_SETTINGS"/>
10017       <member name="encode" value="6" c:identifier="GST_LIBRARY_ERROR_ENCODE"/>
10018       <member name="num_errors"
10019               value="7"
10020               c:identifier="GST_LIBRARY_ERROR_NUM_ERRORS"/>
10021     </enumeration>
10022     <callback name="LogFunction" c:type="GstLogFunction">
10023       <doc xml:whitespace="preserve">Function prototype for a logging function that can be registered with
10024 gst_debug_add_log_function().
10025 Use G_GNUC_NO_INSTRUMENT on that function.</doc>
10026       <return-value transfer-ownership="none">
10027         <type name="none" c:type="void"/>
10028       </return-value>
10029       <parameters>
10030         <parameter name="category" transfer-ownership="none">
10031           <doc xml:whitespace="preserve">a #GstDebugCategory</doc>
10032           <type name="DebugCategory" c:type="GstDebugCategory*"/>
10033         </parameter>
10034         <parameter name="level" transfer-ownership="none">
10035           <doc xml:whitespace="preserve">a #GstDebugLevel</doc>
10036           <type name="DebugLevel" c:type="GstDebugLevel"/>
10037         </parameter>
10038         <parameter name="file" transfer-ownership="none">
10039           <doc xml:whitespace="preserve">file name</doc>
10040           <type name="utf8" c:type="gchar*"/>
10041         </parameter>
10042         <parameter name="function" transfer-ownership="none">
10043           <doc xml:whitespace="preserve">function name</doc>
10044           <type name="utf8" c:type="gchar*"/>
10045         </parameter>
10046         <parameter name="line" transfer-ownership="none">
10047           <doc xml:whitespace="preserve">line number</doc>
10048           <type name="gint" c:type="gint"/>
10049         </parameter>
10050         <parameter name="object" transfer-ownership="none">
10051           <doc xml:whitespace="preserve">a #GObject</doc>
10052           <type name="GObject.Object" c:type="GObject*"/>
10053         </parameter>
10054         <parameter name="message" transfer-ownership="none">
10055           <doc xml:whitespace="preserve">the message</doc>
10056           <type name="DebugMessage" c:type="GstDebugMessage*"/>
10057         </parameter>
10058         <parameter name="data" transfer-ownership="none">
10059           <doc xml:whitespace="preserve">user data for the log function</doc>
10060           <type name="gpointer" c:type="gpointer"/>
10061         </parameter>
10062       </parameters>
10063     </callback>
10064     <constant name="MESSAGE_TRACE_NAME" value="GstMessage">
10065       <type name="utf8" c:type="gchar*"/>
10066     </constant>
10067     <constant name="MSECOND" value="0">
10068       <type name="gint" c:type="gint"/>
10069     </constant>
10070     <class name="Message"
10071            c:symbol-prefix="message"
10072            c:type="GstMessage"
10073            parent="MiniObject"
10074            glib:type-name="GstMessage"
10075            glib:get-type="gst_message_get_type"
10076            glib:type-struct="MessageClass"
10077            glib:fundamental="1">
10078       <doc xml:whitespace="preserve">Messages are implemented as a subclass of #GstMiniObject with a generic
10079 #GstStructure as the content. This allows for writing custom messages without
10080 requiring an API change while allowing a wide range of different types
10081 of messages.
10082 Messages are posted by objects in the pipeline and are passed to the
10083 application using the #GstBus.
10084 The basic use pattern of posting a message on a #GstBus is as follows:
10085 &lt;example&gt;
10086 &lt;title&gt;Posting a #GstMessage&lt;/title&gt;
10087 &lt;programlisting&gt;
10088 gst_bus_post (bus, gst_message_new_eos());
10089 &lt;/programlisting&gt;
10090 &lt;/example&gt;
10091 A #GstElement usually posts messages on the bus provided by the parent
10092 container using gst_element_post_message().
10093 Last reviewed on 2005-11-09 (0.9.4)</doc>
10094       <constructor name="new_application"
10095                    c:identifier="gst_message_new_application">
10096         <doc xml:whitespace="preserve">Create a new application-typed message. GStreamer will never create these
10097 messages; they are a gift from us to you. Enjoy.
10098 MT safe.</doc>
10099         <return-value transfer-ownership="full">
10100           <doc xml:whitespace="preserve">The new application message.</doc>
10101           <type name="Message" c:type="GstMessage*"/>
10102         </return-value>
10103         <parameters>
10104           <parameter name="src" transfer-ownership="none">
10105             <doc xml:whitespace="preserve">the object originating the message.</doc>
10106             <type name="Object" c:type="GstObject*"/>
10107           </parameter>
10108           <parameter name="structure" transfer-ownership="full">
10109             <doc xml:whitespace="preserve">the structure for the message. The message will take ownership of the structure.</doc>
10110             <type name="Structure" c:type="GstStructure*"/>
10111           </parameter>
10112         </parameters>
10113       </constructor>
10114       <constructor name="new_async_done"
10115                    c:identifier="gst_message_new_async_done"
10116                    version="0.10.13">
10117         <doc xml:whitespace="preserve">The message is posted when elements completed an ASYNC state change.
10118 MT safe.</doc>
10119         <return-value transfer-ownership="full">
10120           <doc xml:whitespace="preserve">The new async_done message.</doc>
10121           <type name="Message" c:type="GstMessage*"/>
10122         </return-value>
10123         <parameters>
10124           <parameter name="src" transfer-ownership="none">
10125             <doc xml:whitespace="preserve">The object originating the message.</doc>
10126             <type name="Object" c:type="GstObject*"/>
10127           </parameter>
10128         </parameters>
10129       </constructor>
10130       <constructor name="new_async_start"
10131                    c:identifier="gst_message_new_async_start"
10132                    version="0.10.13">
10133         <doc xml:whitespace="preserve">This message is posted by elements when they start an ASYNC state change. 
10134 PLAYING.
10135 MT safe.</doc>
10136         <return-value transfer-ownership="full">
10137           <doc xml:whitespace="preserve">The new async_start message.</doc>
10138           <type name="Message" c:type="GstMessage*"/>
10139         </return-value>
10140         <parameters>
10141           <parameter name="src" transfer-ownership="none">
10142             <doc xml:whitespace="preserve">The object originating the message.</doc>
10143             <type name="Object" c:type="GstObject*"/>
10144           </parameter>
10145           <parameter name="new_base_time" transfer-ownership="none">
10146             <doc xml:whitespace="preserve">if a new base_time should be set on the element</doc>
10147             <type name="gboolean" c:type="gboolean"/>
10148           </parameter>
10149         </parameters>
10150       </constructor>
10151       <constructor name="new_buffering"
10152                    c:identifier="gst_message_new_buffering"
10153                    version="0.10.11">
10154         <doc xml:whitespace="preserve">Create a new buffering message. This message can be posted by an element that
10155 needs to buffer data before it can continue processing. @percent should be a
10156 value between 0 and 100. A value of 100 means that the buffering completed.
10157 When @percent is &lt; 100 the application should PAUSE a PLAYING pipeline. When
10158 The application must be prepared to receive BUFFERING messages in the
10159 PREROLLING state and may only set the pipeline to PLAYING after receiving a
10160 message with @percent set to 100, which can happen after the pipeline
10161 completed prerolling. 
10162 MT safe.</doc>
10163         <return-value transfer-ownership="full">
10164           <doc xml:whitespace="preserve">The new buffering message.</doc>
10165           <type name="Message" c:type="GstMessage*"/>
10166         </return-value>
10167         <parameters>
10168           <parameter name="src" transfer-ownership="none">
10169             <doc xml:whitespace="preserve">The object originating the message.</doc>
10170             <type name="Object" c:type="GstObject*"/>
10171           </parameter>
10172           <parameter name="percent" transfer-ownership="none">
10173             <doc xml:whitespace="preserve">The buffering percent</doc>
10174             <type name="gint" c:type="gint"/>
10175           </parameter>
10176         </parameters>
10177       </constructor>
10178       <constructor name="new_clock_lost"
10179                    c:identifier="gst_message_new_clock_lost">
10180         <doc xml:whitespace="preserve">Create a clock lost message. This message is posted whenever the
10181 clock is not valid anymore.
10182 If this message is posted by the pipeline, the pipeline will
10183 select a new clock again when it goes to PLAYING. It might therefore
10184 be needed to set the pipeline to PAUSED and PLAYING again.
10185 MT safe.</doc>
10186         <return-value transfer-ownership="full">
10187           <doc xml:whitespace="preserve">The new clock lost message.</doc>
10188           <type name="Message" c:type="GstMessage*"/>
10189         </return-value>
10190         <parameters>
10191           <parameter name="src" transfer-ownership="none">
10192             <doc xml:whitespace="preserve">the object originating the message.</doc>
10193             <type name="Object" c:type="GstObject*"/>
10194           </parameter>
10195           <parameter name="clock" transfer-ownership="none">
10196             <doc xml:whitespace="preserve">the clock that was lost</doc>
10197             <type name="Clock" c:type="GstClock*"/>
10198           </parameter>
10199         </parameters>
10200       </constructor>
10201       <constructor name="new_clock_provide"
10202                    c:identifier="gst_message_new_clock_provide">
10203         <doc xml:whitespace="preserve">Create a clock provide message. This message is posted whenever an
10204 element is ready to provide a clock or lost its ability to provide
10205 a clock (maybe because it paused or became EOS).
10206 This message is mainly used internally to manage the clock
10207 selection.
10208 MT safe.</doc>
10209         <return-value transfer-ownership="full">
10210           <doc xml:whitespace="preserve">the new provide clock message.</doc>
10211           <type name="Message" c:type="GstMessage*"/>
10212         </return-value>
10213         <parameters>
10214           <parameter name="src" transfer-ownership="none">
10215             <doc xml:whitespace="preserve">the object originating the message.</doc>
10216             <type name="Object" c:type="GstObject*"/>
10217           </parameter>
10218           <parameter name="clock" transfer-ownership="none">
10219             <doc xml:whitespace="preserve">the clock it provides</doc>
10220             <type name="Clock" c:type="GstClock*"/>
10221           </parameter>
10222           <parameter name="ready" transfer-ownership="none">
10223             <doc xml:whitespace="preserve">TRUE if the sender can provide a clock</doc>
10224             <type name="gboolean" c:type="gboolean"/>
10225           </parameter>
10226         </parameters>
10227       </constructor>
10228       <constructor name="new_custom" c:identifier="gst_message_new_custom">
10229         <doc xml:whitespace="preserve">Create a new custom-typed message. This can be used for anything not
10230 handled by other message-specific functions to pass a message to the
10231 app. The structure field can be NULL.
10232 MT safe.</doc>
10233         <return-value transfer-ownership="full">
10234           <doc xml:whitespace="preserve">The new message.</doc>
10235           <type name="Message" c:type="GstMessage*"/>
10236         </return-value>
10237         <parameters>
10238           <parameter name="type" transfer-ownership="none">
10239             <doc xml:whitespace="preserve">The #GstMessageType to distinguish messages</doc>
10240             <type name="MessageType" c:type="GstMessageType"/>
10241           </parameter>
10242           <parameter name="src" transfer-ownership="none">
10243             <doc xml:whitespace="preserve">The object originating the message.</doc>
10244             <type name="Object" c:type="GstObject*"/>
10245           </parameter>
10246           <parameter name="structure" transfer-ownership="full">
10247             <doc xml:whitespace="preserve">the structure for the message. The message will take ownership of the structure.</doc>
10248             <type name="Structure" c:type="GstStructure*"/>
10249           </parameter>
10250         </parameters>
10251       </constructor>
10252       <constructor name="new_duration" c:identifier="gst_message_new_duration">
10253         <doc xml:whitespace="preserve">Create a new duration message. This message is posted by elements that
10254 know the duration of a stream in a specific format. This message
10255 is received by bins and is used to calculate the total duration of a
10256 pipeline. Elements may post a duration message with a duration of
10257 GST_CLOCK_TIME_NONE to indicate that the duration has changed and the 
10258 cached duration should be discarded. The new duration can then be 
10259 retrieved via a query.
10260 MT safe.</doc>
10261         <return-value transfer-ownership="full">
10262           <doc xml:whitespace="preserve">The new duration message.</doc>
10263           <type name="Message" c:type="GstMessage*"/>
10264         </return-value>
10265         <parameters>
10266           <parameter name="src" transfer-ownership="none">
10267             <doc xml:whitespace="preserve">The object originating the message.</doc>
10268             <type name="Object" c:type="GstObject*"/>
10269           </parameter>
10270           <parameter name="format" transfer-ownership="none">
10271             <doc xml:whitespace="preserve">The format of the duration</doc>
10272             <type name="Format" c:type="GstFormat"/>
10273           </parameter>
10274           <parameter name="duration" transfer-ownership="none">
10275             <doc xml:whitespace="preserve">The new duration</doc>
10276             <type name="gint64" c:type="gint64"/>
10277           </parameter>
10278         </parameters>
10279       </constructor>
10280       <constructor name="new_element" c:identifier="gst_message_new_element">
10281         <doc xml:whitespace="preserve">Create a new element-specific message. This is meant as a generic way of
10282 allowing one-way communication from an element to an application, for example
10283 "the firewire cable was unplugged". The format of the message should be
10284 documented in the element's documentation. The structure field can be NULL.
10285 MT safe.</doc>
10286         <return-value transfer-ownership="full">
10287           <doc xml:whitespace="preserve">The new element message.</doc>
10288           <type name="Message" c:type="GstMessage*"/>
10289         </return-value>
10290         <parameters>
10291           <parameter name="src" transfer-ownership="none">
10292             <doc xml:whitespace="preserve">The object originating the message.</doc>
10293             <type name="Object" c:type="GstObject*"/>
10294           </parameter>
10295           <parameter name="structure" transfer-ownership="full">
10296             <doc xml:whitespace="preserve">The structure for the message. The message will take ownership of the structure.</doc>
10297             <type name="Structure" c:type="GstStructure*"/>
10298           </parameter>
10299         </parameters>
10300       </constructor>
10301       <constructor name="new_eos" c:identifier="gst_message_new_eos">
10302         <doc xml:whitespace="preserve">Create a new eos message. This message is generated and posted in
10303 the sink elements of a GstBin. The bin will only forward the EOS
10304 message to the application if all sinks have posted an EOS message.
10305 MT safe.</doc>
10306         <return-value transfer-ownership="full">
10307           <doc xml:whitespace="preserve">The new eos message.</doc>
10308           <type name="Message" c:type="GstMessage*"/>
10309         </return-value>
10310         <parameters>
10311           <parameter name="src" transfer-ownership="none">
10312             <doc xml:whitespace="preserve">The object originating the message.</doc>
10313             <type name="Object" c:type="GstObject*"/>
10314           </parameter>
10315         </parameters>
10316       </constructor>
10317       <constructor name="new_error" c:identifier="gst_message_new_error">
10318         <doc xml:whitespace="preserve">Create a new error message. The message will copy @error and
10319 occured. The pipeline will probably (partially) stop. The application
10320 receiving this message should stop the pipeline.
10321 MT safe.</doc>
10322         <return-value transfer-ownership="full">
10323           <doc xml:whitespace="preserve">the new error message.</doc>
10324           <type name="Message" c:type="GstMessage*"/>
10325         </return-value>
10326         <parameters>
10327           <parameter name="src" transfer-ownership="none">
10328             <doc xml:whitespace="preserve">The object originating the message.</doc>
10329             <type name="Object" c:type="GstObject*"/>
10330           </parameter>
10331           <parameter name="error" transfer-ownership="none">
10332             <doc xml:whitespace="preserve">The GError for this message.</doc>
10333             <type name="GLib.Error" c:type="GError*"/>
10334           </parameter>
10335           <parameter name="debug" transfer-ownership="none">
10336             <doc xml:whitespace="preserve">A debugging string.</doc>
10337             <type name="utf8" c:type="gchar*"/>
10338           </parameter>
10339         </parameters>
10340       </constructor>
10341       <constructor name="new_info"
10342                    c:identifier="gst_message_new_info"
10343                    version="0.10.12">
10344         <doc xml:whitespace="preserve">Create a new info message. The message will make copies of @error and
10345 MT safe.</doc>
10346         <return-value transfer-ownership="full">
10347           <doc xml:whitespace="preserve">the new info message.</doc>
10348           <type name="Message" c:type="GstMessage*"/>
10349         </return-value>
10350         <parameters>
10351           <parameter name="src" transfer-ownership="none">
10352             <doc xml:whitespace="preserve">The object originating the message.</doc>
10353             <type name="Object" c:type="GstObject*"/>
10354           </parameter>
10355           <parameter name="error" transfer-ownership="none">
10356             <doc xml:whitespace="preserve">The GError for this message.</doc>
10357             <type name="GLib.Error" c:type="GError*"/>
10358           </parameter>
10359           <parameter name="debug" transfer-ownership="none">
10360             <doc xml:whitespace="preserve">A debugging string.</doc>
10361             <type name="utf8" c:type="gchar*"/>
10362           </parameter>
10363         </parameters>
10364       </constructor>
10365       <constructor name="new_latency"
10366                    c:identifier="gst_message_new_latency"
10367                    version="0.10.12">
10368         <doc xml:whitespace="preserve">This message can be posted by elements when their latency requirements have
10369 changed.
10370 MT safe.</doc>
10371         <return-value transfer-ownership="full">
10372           <doc xml:whitespace="preserve">The new latency message.</doc>
10373           <type name="Message" c:type="GstMessage*"/>
10374         </return-value>
10375         <parameters>
10376           <parameter name="src" transfer-ownership="none">
10377             <doc xml:whitespace="preserve">The object originating the message.</doc>
10378             <type name="Object" c:type="GstObject*"/>
10379           </parameter>
10380         </parameters>
10381       </constructor>
10382       <constructor name="new_new_clock"
10383                    c:identifier="gst_message_new_new_clock">
10384         <doc xml:whitespace="preserve">Create a new clock message. This message is posted whenever the
10385 pipeline selectes a new clock for the pipeline.
10386 MT safe.</doc>
10387         <return-value transfer-ownership="full">
10388           <doc xml:whitespace="preserve">The new new clock message.</doc>
10389           <type name="Message" c:type="GstMessage*"/>
10390         </return-value>
10391         <parameters>
10392           <parameter name="src" transfer-ownership="none">
10393             <doc xml:whitespace="preserve">The object originating the message.</doc>
10394             <type name="Object" c:type="GstObject*"/>
10395           </parameter>
10396           <parameter name="clock" transfer-ownership="none">
10397             <doc xml:whitespace="preserve">the new selected clock</doc>
10398             <type name="Clock" c:type="GstClock*"/>
10399           </parameter>
10400         </parameters>
10401       </constructor>
10402       <constructor name="new_progress"
10403                    c:identifier="gst_message_new_progress"
10404                    version="0.10.33">
10405         <doc xml:whitespace="preserve">Progress messages are posted by elements when they use an asynchronous task
10406 to perform actions triggered by a state change.</doc>
10407         <return-value transfer-ownership="full">
10408           <doc xml:whitespace="preserve">The new qos message.</doc>
10409           <type name="Message" c:type="GstMessage*"/>
10410         </return-value>
10411         <parameters>
10412           <parameter name="src" transfer-ownership="none">
10413             <doc xml:whitespace="preserve">The object originating the message.</doc>
10414             <type name="Object" c:type="GstObject*"/>
10415           </parameter>
10416           <parameter name="type" transfer-ownership="none">
10417             <doc xml:whitespace="preserve">a #GstProgressType</doc>
10418             <type name="ProgressType" c:type="GstProgressType"/>
10419           </parameter>
10420           <parameter name="code" transfer-ownership="none">
10421             <doc xml:whitespace="preserve">a progress code</doc>
10422             <type name="utf8" c:type="gchar*"/>
10423           </parameter>
10424           <parameter name="text" transfer-ownership="none">
10425             <doc xml:whitespace="preserve">free, user visible text describing the progress</doc>
10426             <type name="utf8" c:type="gchar*"/>
10427           </parameter>
10428         </parameters>
10429       </constructor>
10430       <constructor name="new_qos"
10431                    c:identifier="gst_message_new_qos"
10432                    version="0.10.29">
10433         <doc xml:whitespace="preserve">A QOS message is posted on the bus whenever an element decides to drop a
10434 buffer because of QoS reasons or whenever it changes its processing strategy
10435 because of QoS reasons (quality adjustments such as processing at lower
10436 accuracy).
10437 This message can be posted by an element that performs synchronisation against the
10438 clock (live) or it could be dropped by an element that performs QoS because of QOS
10439 events received from a downstream element (!live).
10440 respective running-time, stream-time, timestamp and duration of the (dropped)
10441 buffer that generated the QoS event. Values can be left to
10442 GST_CLOCK_TIME_NONE when unknown.
10443 MT safe.</doc>
10444         <return-value transfer-ownership="full">
10445           <doc xml:whitespace="preserve">The new qos message.</doc>
10446           <type name="Message" c:type="GstMessage*"/>
10447         </return-value>
10448         <parameters>
10449           <parameter name="src" transfer-ownership="none">
10450             <doc xml:whitespace="preserve">The object originating the message.</doc>
10451             <type name="Object" c:type="GstObject*"/>
10452           </parameter>
10453           <parameter name="live" transfer-ownership="none">
10454             <doc xml:whitespace="preserve">if the message was generated by a live element</doc>
10455             <type name="gboolean" c:type="gboolean"/>
10456           </parameter>
10457           <parameter name="running_time" transfer-ownership="none">
10458             <doc xml:whitespace="preserve">the running time of the buffer that generated the message</doc>
10459             <type name="guint64" c:type="guint64"/>
10460           </parameter>
10461           <parameter name="stream_time" transfer-ownership="none">
10462             <doc xml:whitespace="preserve">the stream time of the buffer that generated the message</doc>
10463             <type name="guint64" c:type="guint64"/>
10464           </parameter>
10465           <parameter name="timestamp" transfer-ownership="none">
10466             <doc xml:whitespace="preserve">the timestamps of the buffer that generated the message</doc>
10467             <type name="guint64" c:type="guint64"/>
10468           </parameter>
10469           <parameter name="duration" transfer-ownership="none">
10470             <doc xml:whitespace="preserve">the duration of the buffer that generated the message</doc>
10471             <type name="guint64" c:type="guint64"/>
10472           </parameter>
10473         </parameters>
10474       </constructor>
10475       <constructor name="new_request_state"
10476                    c:identifier="gst_message_new_request_state"
10477                    version="0.10.23">
10478         <doc xml:whitespace="preserve">This message can be posted by elements when they want to have their state
10479 changed. A typical use case would be an audio server that wants to pause the
10480 pipeline because a higher priority stream is being played.
10481 MT safe.</doc>
10482         <return-value transfer-ownership="full">
10483           <doc xml:whitespace="preserve">the new requst state message.</doc>
10484           <type name="Message" c:type="GstMessage*"/>
10485         </return-value>
10486         <parameters>
10487           <parameter name="src" transfer-ownership="none">
10488             <doc xml:whitespace="preserve">the object originating the message.</doc>
10489             <type name="Object" c:type="GstObject*"/>
10490           </parameter>
10491           <parameter name="state" transfer-ownership="none">
10492             <doc xml:whitespace="preserve">The new requested state</doc>
10493             <type name="State" c:type="GstState"/>
10494           </parameter>
10495         </parameters>
10496       </constructor>
10497       <constructor name="new_segment_done"
10498                    c:identifier="gst_message_new_segment_done">
10499         <doc xml:whitespace="preserve">Create a new segment done message. This message is posted by elements that
10500 finish playback of a segment as a result of a segment seek. This message
10501 is received by the application after all elements that posted a segment_start
10502 have posted the segment_done.
10503 MT safe.</doc>
10504         <return-value transfer-ownership="full">
10505           <doc xml:whitespace="preserve">the new segment done message.</doc>
10506           <type name="Message" c:type="GstMessage*"/>
10507         </return-value>
10508         <parameters>
10509           <parameter name="src" transfer-ownership="none">
10510             <doc xml:whitespace="preserve">the object originating the message.</doc>
10511             <type name="Object" c:type="GstObject*"/>
10512           </parameter>
10513           <parameter name="format" transfer-ownership="none">
10514             <doc xml:whitespace="preserve">The format of the position being done</doc>
10515             <type name="Format" c:type="GstFormat"/>
10516           </parameter>
10517           <parameter name="position" transfer-ownership="none">
10518             <doc xml:whitespace="preserve">The position of the segment being done</doc>
10519             <type name="gint64" c:type="gint64"/>
10520           </parameter>
10521         </parameters>
10522       </constructor>
10523       <constructor name="new_segment_start"
10524                    c:identifier="gst_message_new_segment_start">
10525         <doc xml:whitespace="preserve">Create a new segment message. This message is posted by elements that
10526 start playback of a segment as a result of a segment seek. This message
10527 is not received by the application but is used for maintenance reasons in
10528 container elements.
10529 MT safe.</doc>
10530         <return-value transfer-ownership="full">
10531           <doc xml:whitespace="preserve">the new segment start message.</doc>
10532           <type name="Message" c:type="GstMessage*"/>
10533         </return-value>
10534         <parameters>
10535           <parameter name="src" transfer-ownership="none">
10536             <doc xml:whitespace="preserve">The object originating the message.</doc>
10537             <type name="Object" c:type="GstObject*"/>
10538           </parameter>
10539           <parameter name="format" transfer-ownership="none">
10540             <doc xml:whitespace="preserve">The format of the position being played</doc>
10541             <type name="Format" c:type="GstFormat"/>
10542           </parameter>
10543           <parameter name="position" transfer-ownership="none">
10544             <doc xml:whitespace="preserve">The position of the segment being played</doc>
10545             <type name="gint64" c:type="gint64"/>
10546           </parameter>
10547         </parameters>
10548       </constructor>
10549       <constructor name="new_state_changed"
10550                    c:identifier="gst_message_new_state_changed">
10551         <doc xml:whitespace="preserve">Create a state change message. This message is posted whenever an element
10552 changed its state.
10553 MT safe.</doc>
10554         <return-value transfer-ownership="full">
10555           <doc xml:whitespace="preserve">the new state change message.</doc>
10556           <type name="Message" c:type="GstMessage*"/>
10557         </return-value>
10558         <parameters>
10559           <parameter name="src" transfer-ownership="none">
10560             <doc xml:whitespace="preserve">the object originating the message</doc>
10561             <type name="Object" c:type="GstObject*"/>
10562           </parameter>
10563           <parameter name="oldstate" transfer-ownership="none">
10564             <doc xml:whitespace="preserve">the previous state</doc>
10565             <type name="State" c:type="GstState"/>
10566           </parameter>
10567           <parameter name="newstate" transfer-ownership="none">
10568             <doc xml:whitespace="preserve">the new (current) state</doc>
10569             <type name="State" c:type="GstState"/>
10570           </parameter>
10571           <parameter name="pending" transfer-ownership="none">
10572             <doc xml:whitespace="preserve">the pending (target) state</doc>
10573             <type name="State" c:type="GstState"/>
10574           </parameter>
10575         </parameters>
10576       </constructor>
10577       <constructor name="new_state_dirty"
10578                    c:identifier="gst_message_new_state_dirty">
10579         <doc xml:whitespace="preserve">Create a state dirty message. This message is posted whenever an element
10580 changed its state asynchronously and is used internally to update the
10581 states of container objects.
10582 MT safe.</doc>
10583         <return-value transfer-ownership="full">
10584           <doc xml:whitespace="preserve">the new state dirty message.</doc>
10585           <type name="Message" c:type="GstMessage*"/>
10586         </return-value>
10587         <parameters>
10588           <parameter name="src" transfer-ownership="none">
10589             <doc xml:whitespace="preserve">the object originating the message</doc>
10590             <type name="Object" c:type="GstObject*"/>
10591           </parameter>
10592         </parameters>
10593       </constructor>
10594       <constructor name="new_step_done"
10595                    c:identifier="gst_message_new_step_done"
10596                    version="0.10.24">
10597         <doc xml:whitespace="preserve">This message is posted by elements when they complete a part, when @intermediate set
10598 to TRUE, or a complete step operation.
10599 MT safe.</doc>
10600         <return-value transfer-ownership="full">
10601           <doc xml:whitespace="preserve">the new step_done message.</doc>
10602           <type name="Message" c:type="GstMessage*"/>
10603         </return-value>
10604         <parameters>
10605           <parameter name="src" transfer-ownership="none">
10606             <doc xml:whitespace="preserve">The object originating the message.</doc>
10607             <type name="Object" c:type="GstObject*"/>
10608           </parameter>
10609           <parameter name="format" transfer-ownership="none">
10610             <doc xml:whitespace="preserve">the format of @amount</doc>
10611             <type name="Format" c:type="GstFormat"/>
10612           </parameter>
10613           <parameter name="amount" transfer-ownership="none">
10614             <doc xml:whitespace="preserve">the amount of stepped data</doc>
10615             <type name="guint64" c:type="guint64"/>
10616           </parameter>
10617           <parameter name="rate" transfer-ownership="none">
10618             <doc xml:whitespace="preserve">the rate of the stepped amount</doc>
10619             <type name="gdouble" c:type="gdouble"/>
10620           </parameter>
10621           <parameter name="flush" transfer-ownership="none">
10622             <doc xml:whitespace="preserve">is this an flushing step</doc>
10623             <type name="gboolean" c:type="gboolean"/>
10624           </parameter>
10625           <parameter name="intermediate" transfer-ownership="none">
10626             <doc xml:whitespace="preserve">is this an intermediate step</doc>
10627             <type name="gboolean" c:type="gboolean"/>
10628           </parameter>
10629           <parameter name="duration" transfer-ownership="none">
10630             <doc xml:whitespace="preserve">the duration of the data</doc>
10631             <type name="guint64" c:type="guint64"/>
10632           </parameter>
10633           <parameter name="eos" transfer-ownership="none">
10634             <doc xml:whitespace="preserve">the step caused EOS</doc>
10635             <type name="gboolean" c:type="gboolean"/>
10636           </parameter>
10637         </parameters>
10638       </constructor>
10639       <constructor name="new_step_start"
10640                    c:identifier="gst_message_new_step_start"
10641                    version="0.10.24">
10642         <doc xml:whitespace="preserve">This message is posted by elements when they accept or activate a new step
10643 event for @amount in @format. 
10644 queued it for execution in the streaming threads.
10645 is now ready to start executing the step in the streaming thread. After this
10646 message is emited, the application can queue a new step operation in the
10647 element.
10648 MT safe.</doc>
10649         <return-value transfer-ownership="full">
10650           <doc xml:whitespace="preserve">The new step_start message.</doc>
10651           <type name="Message" c:type="GstMessage*"/>
10652         </return-value>
10653         <parameters>
10654           <parameter name="src" transfer-ownership="none">
10655             <doc xml:whitespace="preserve">The object originating the message.</doc>
10656             <type name="Object" c:type="GstObject*"/>
10657           </parameter>
10658           <parameter name="active" transfer-ownership="none">
10659             <doc xml:whitespace="preserve">if the step is active or queued</doc>
10660             <type name="gboolean" c:type="gboolean"/>
10661           </parameter>
10662           <parameter name="format" transfer-ownership="none">
10663             <doc xml:whitespace="preserve">the format of @amount</doc>
10664             <type name="Format" c:type="GstFormat"/>
10665           </parameter>
10666           <parameter name="amount" transfer-ownership="none">
10667             <doc xml:whitespace="preserve">the amount of stepped data</doc>
10668             <type name="guint64" c:type="guint64"/>
10669           </parameter>
10670           <parameter name="rate" transfer-ownership="none">
10671             <doc xml:whitespace="preserve">the rate of the stepped amount</doc>
10672             <type name="gdouble" c:type="gdouble"/>
10673           </parameter>
10674           <parameter name="flush" transfer-ownership="none">
10675             <doc xml:whitespace="preserve">is this an flushing step</doc>
10676             <type name="gboolean" c:type="gboolean"/>
10677           </parameter>
10678           <parameter name="intermediate" transfer-ownership="none">
10679             <doc xml:whitespace="preserve">is this an intermediate step</doc>
10680             <type name="gboolean" c:type="gboolean"/>
10681           </parameter>
10682         </parameters>
10683       </constructor>
10684       <constructor name="new_stream_status"
10685                    c:identifier="gst_message_new_stream_status"
10686                    version="0.10.24.">
10687         <doc xml:whitespace="preserve">Create a new stream status message. This message is posted when a streaming
10688 thread is created/destroyed or when the state changed.
10689 MT safe.</doc>
10690         <return-value transfer-ownership="full">
10691           <doc xml:whitespace="preserve">the new stream status message.</doc>
10692           <type name="Message" c:type="GstMessage*"/>
10693         </return-value>
10694         <parameters>
10695           <parameter name="src" transfer-ownership="none">
10696             <doc xml:whitespace="preserve">The object originating the message.</doc>
10697             <type name="Object" c:type="GstObject*"/>
10698           </parameter>
10699           <parameter name="type" transfer-ownership="none">
10700             <doc xml:whitespace="preserve">The stream status type.</doc>
10701             <type name="StreamStatusType" c:type="GstStreamStatusType"/>
10702           </parameter>
10703           <parameter name="owner" transfer-ownership="none">
10704             <doc xml:whitespace="preserve">the owner element of @src.</doc>
10705             <type name="Element" c:type="GstElement*"/>
10706           </parameter>
10707         </parameters>
10708       </constructor>
10709       <constructor name="new_structure_change"
10710                    c:identifier="gst_message_new_structure_change"
10711                    version="0.10.22.">
10712         <doc xml:whitespace="preserve">Create a new structure change message. This message is posted when the
10713 structure of a pipeline is in the process of being changed, for example
10714 when pads are linked or unlinked.
10715 MT safe.</doc>
10716         <return-value transfer-ownership="full">
10717           <doc xml:whitespace="preserve">the new structure change message.</doc>
10718           <type name="Message" c:type="GstMessage*"/>
10719         </return-value>
10720         <parameters>
10721           <parameter name="src" transfer-ownership="none">
10722             <doc xml:whitespace="preserve">The object originating the message.</doc>
10723             <type name="Object" c:type="GstObject*"/>
10724           </parameter>
10725           <parameter name="type" transfer-ownership="none">
10726             <doc xml:whitespace="preserve">The change type.</doc>
10727             <type name="StructureChangeType" c:type="GstStructureChangeType"/>
10728           </parameter>
10729           <parameter name="owner" transfer-ownership="none">
10730             <doc xml:whitespace="preserve">The owner element of @src.</doc>
10731             <type name="Element" c:type="GstElement*"/>
10732           </parameter>
10733           <parameter name="busy" transfer-ownership="none">
10734             <doc xml:whitespace="preserve">Whether the structure change is busy.</doc>
10735             <type name="gboolean" c:type="gboolean"/>
10736           </parameter>
10737         </parameters>
10738       </constructor>
10739       <constructor name="new_tag" c:identifier="gst_message_new_tag">
10740         <doc xml:whitespace="preserve">Create a new tag message. The message will take ownership of the tag list.
10741 The message is posted by elements that discovered a new taglist.
10742 MT safe.</doc>
10743         <return-value transfer-ownership="full">
10744           <doc xml:whitespace="preserve">the new tag message.</doc>
10745           <type name="Message" c:type="GstMessage*"/>
10746         </return-value>
10747         <parameters>
10748           <parameter name="src" transfer-ownership="none">
10749             <doc xml:whitespace="preserve">The object originating the message.</doc>
10750             <type name="Object" c:type="GstObject*"/>
10751           </parameter>
10752           <parameter name="tag_list" transfer-ownership="full">
10753             <doc xml:whitespace="preserve">the tag list for the message.</doc>
10754             <type name="TagList" c:type="GstTagList*"/>
10755           </parameter>
10756         </parameters>
10757       </constructor>
10758       <constructor name="new_tag_full"
10759                    c:identifier="gst_message_new_tag_full"
10760                    version="0.10.24">
10761         <doc xml:whitespace="preserve">Create a new tag message. The message will take ownership of the tag list.
10762 The message is posted by elements that discovered a new taglist.
10763 MT safe.</doc>
10764         <return-value transfer-ownership="full">
10765           <doc xml:whitespace="preserve">the new tag message.</doc>
10766           <type name="Message" c:type="GstMessage*"/>
10767         </return-value>
10768         <parameters>
10769           <parameter name="src" transfer-ownership="none">
10770             <doc xml:whitespace="preserve">the object originating the message.</doc>
10771             <type name="Object" c:type="GstObject*"/>
10772           </parameter>
10773           <parameter name="pad" transfer-ownership="none">
10774             <doc xml:whitespace="preserve">the originating pad for the tag.</doc>
10775             <type name="Pad" c:type="GstPad*"/>
10776           </parameter>
10777           <parameter name="tag_list" transfer-ownership="full">
10778             <doc xml:whitespace="preserve">the tag list for the message.</doc>
10779             <type name="TagList" c:type="GstTagList*"/>
10780           </parameter>
10781         </parameters>
10782       </constructor>
10783       <constructor name="new_warning" c:identifier="gst_message_new_warning">
10784         <doc xml:whitespace="preserve">Create a new warning message. The message will make copies of @error and
10785 MT safe.</doc>
10786         <return-value transfer-ownership="full">
10787           <doc xml:whitespace="preserve">The new warning message.</doc>
10788           <type name="Message" c:type="GstMessage*"/>
10789         </return-value>
10790         <parameters>
10791           <parameter name="src" transfer-ownership="none">
10792             <doc xml:whitespace="preserve">The object originating the message.</doc>
10793             <type name="Object" c:type="GstObject*"/>
10794           </parameter>
10795           <parameter name="error" transfer-ownership="none">
10796             <doc xml:whitespace="preserve">The GError for this message.</doc>
10797             <type name="GLib.Error" c:type="GError*"/>
10798           </parameter>
10799           <parameter name="debug" transfer-ownership="none">
10800             <doc xml:whitespace="preserve">A debugging string.</doc>
10801             <type name="utf8" c:type="gchar*"/>
10802           </parameter>
10803         </parameters>
10804       </constructor>
10805       <function name="type_get_name" c:identifier="gst_message_type_get_name">
10806         <doc xml:whitespace="preserve">Get a printable name for the given message type. Do not modify or free.</doc>
10807         <return-value transfer-ownership="none">
10808           <doc xml:whitespace="preserve">a reference to the static name of the message.</doc>
10809           <type name="utf8" c:type="gchar*"/>
10810         </return-value>
10811         <parameters>
10812           <parameter name="type" transfer-ownership="none">
10813             <doc xml:whitespace="preserve">the message type</doc>
10814             <type name="MessageType" c:type="GstMessageType"/>
10815           </parameter>
10816         </parameters>
10817       </function>
10818       <function name="type_to_quark" c:identifier="gst_message_type_to_quark">
10819         <doc xml:whitespace="preserve">Get the unique quark for the given message type.</doc>
10820         <return-value transfer-ownership="none">
10821           <doc xml:whitespace="preserve">the quark associated with the message type</doc>
10822           <type name="GLib.Quark" c:type="GQuark"/>
10823         </return-value>
10824         <parameters>
10825           <parameter name="type" transfer-ownership="none">
10826             <doc xml:whitespace="preserve">the message type</doc>
10827             <type name="MessageType" c:type="GstMessageType"/>
10828           </parameter>
10829         </parameters>
10830       </function>
10831       <method name="get_seqnum"
10832               c:identifier="gst_message_get_seqnum"
10833               version="0.10.22">
10834         <doc xml:whitespace="preserve">Retrieve the sequence number of a message.
10835 Messages have ever-incrementing sequence numbers, which may also be set
10836 explicitly via gst_message_set_seqnum(). Sequence numbers are typically used
10837 to indicate that a message corresponds to some other set of messages or
10838 events, for example a SEGMENT_DONE message corresponding to a SEEK event. It
10839 is considered good practice to make this correspondence when possible, though
10840 it is not required.
10841 Note that events and messages share the same sequence number incrementor;
10842 two events or messages will never not have the same sequence number unless
10843 that correspondence was made explicitly.
10844 MT safe.</doc>
10845         <return-value transfer-ownership="none">
10846           <doc xml:whitespace="preserve">The message's sequence number.</doc>
10847           <type name="guint32" c:type="guint32"/>
10848         </return-value>
10849       </method>
10850       <method name="get_stream_status_object"
10851               c:identifier="gst_message_get_stream_status_object"
10852               version="0.10.24">
10853         <doc xml:whitespace="preserve">Extracts the object managing the streaming thread from @message.
10854 This object is usually of type GstTask but other types can be added in the
10855 future. The object remains valid as long as @message is valid.</doc>
10856         <return-value transfer-ownership="none">
10857           <doc xml:whitespace="preserve">a GValue containing the object that manages the streaming thread.</doc>
10858           <type name="GObject.Value" c:type="GValue*"/>
10859         </return-value>
10860       </method>
10861       <method name="get_structure" c:identifier="gst_message_get_structure">
10862         <doc xml:whitespace="preserve">Access the structure of the message.
10863 still owned by the message, which means that you should not free it and
10864 that the pointer becomes invalid when you free the message.
10865 MT safe.</doc>
10866         <return-value transfer-ownership="none">
10867           <doc xml:whitespace="preserve">The structure of the message. The structure is</doc>
10868           <type name="Structure" c:type="GstStructure*"/>
10869         </return-value>
10870       </method>
10871       <method name="parse_async_start"
10872               c:identifier="gst_message_parse_async_start"
10873               version="0.10.13">
10874         <doc xml:whitespace="preserve">Extract the new_base_time from the async_start message. 
10875 MT safe.</doc>
10876         <return-value transfer-ownership="none">
10877           <type name="none" c:type="void"/>
10878         </return-value>
10879         <parameters>
10880           <parameter name="new_base_time"
10881                      direction="out"
10882                      caller-allocates="0"
10883                      transfer-ownership="full">
10884             <doc xml:whitespace="preserve">Result location for the new_base_time or NULL</doc>
10885             <type name="gboolean" c:type="gboolean*"/>
10886           </parameter>
10887         </parameters>
10888       </method>
10889       <method name="parse_buffering"
10890               c:identifier="gst_message_parse_buffering"
10891               version="0.10.11">
10892         <doc xml:whitespace="preserve">Extracts the buffering percent from the GstMessage. see also
10893 gst_message_new_buffering().
10894 MT safe.</doc>
10895         <return-value transfer-ownership="none">
10896           <type name="none" c:type="void"/>
10897         </return-value>
10898         <parameters>
10899           <parameter name="percent"
10900                      direction="out"
10901                      caller-allocates="0"
10902                      transfer-ownership="full"
10903                      allow-none="1">
10904             <doc xml:whitespace="preserve">Return location for the percent.</doc>
10905             <type name="gint" c:type="gint*"/>
10906           </parameter>
10907         </parameters>
10908       </method>
10909       <method name="parse_buffering_stats"
10910               c:identifier="gst_message_parse_buffering_stats"
10911               version="0.10.20">
10912         <doc xml:whitespace="preserve">Extracts the buffering stats values from @message.</doc>
10913         <return-value transfer-ownership="none">
10914           <type name="none" c:type="void"/>
10915         </return-value>
10916         <parameters>
10917           <parameter name="mode"
10918                      direction="out"
10919                      caller-allocates="0"
10920                      transfer-ownership="full"
10921                      allow-none="1">
10922             <doc xml:whitespace="preserve">a buffering mode, or NULL</doc>
10923             <type name="BufferingMode" c:type="GstBufferingMode*"/>
10924           </parameter>
10925           <parameter name="avg_in"
10926                      direction="out"
10927                      caller-allocates="0"
10928                      transfer-ownership="full"
10929                      allow-none="1">
10930             <doc xml:whitespace="preserve">the average input rate, or NULL</doc>
10931             <type name="gint" c:type="gint*"/>
10932           </parameter>
10933           <parameter name="avg_out"
10934                      direction="out"
10935                      caller-allocates="0"
10936                      transfer-ownership="full"
10937                      allow-none="1">
10938             <doc xml:whitespace="preserve">the average output rate, or NULL</doc>
10939             <type name="gint" c:type="gint*"/>
10940           </parameter>
10941           <parameter name="buffering_left"
10942                      direction="out"
10943                      caller-allocates="0"
10944                      transfer-ownership="full"
10945                      allow-none="1">
10946             <doc xml:whitespace="preserve">amount of buffering time left in milliseconds, or NULL</doc>
10947             <type name="gint64" c:type="gint64*"/>
10948           </parameter>
10949         </parameters>
10950       </method>
10951       <method name="parse_clock_lost"
10952               c:identifier="gst_message_parse_clock_lost">
10953         <doc xml:whitespace="preserve">Extracts the lost clock from the GstMessage.
10954 The clock object returned remains valid until the message is freed.
10955 MT safe.</doc>
10956         <return-value transfer-ownership="none">
10957           <type name="none" c:type="void"/>
10958         </return-value>
10959         <parameters>
10960           <parameter name="clock"
10961                      direction="out"
10962                      caller-allocates="0"
10963                      transfer-ownership="none"
10964                      allow-none="1">
10965             <doc xml:whitespace="preserve">a pointer to hold the lost clock</doc>
10966             <type name="Clock" c:type="GstClock**"/>
10967           </parameter>
10968         </parameters>
10969       </method>
10970       <method name="parse_clock_provide"
10971               c:identifier="gst_message_parse_clock_provide">
10972         <doc xml:whitespace="preserve">Extracts the clock and ready flag from the GstMessage.
10973 The clock object returned remains valid until the message is freed.
10974 MT safe.</doc>
10975         <return-value transfer-ownership="none">
10976           <type name="none" c:type="void"/>
10977         </return-value>
10978         <parameters>
10979           <parameter name="clock"
10980                      direction="out"
10981                      caller-allocates="0"
10982                      transfer-ownership="none"
10983                      allow-none="1">
10984             <doc xml:whitespace="preserve">a pointer to  hold a clock object, or NULL</doc>
10985             <type name="Clock" c:type="GstClock**"/>
10986           </parameter>
10987           <parameter name="ready"
10988                      direction="out"
10989                      caller-allocates="0"
10990                      transfer-ownership="full"
10991                      allow-none="1">
10992             <doc xml:whitespace="preserve">a pointer to hold the ready flag, or NULL</doc>
10993             <type name="gboolean" c:type="gboolean*"/>
10994           </parameter>
10995         </parameters>
10996       </method>
10997       <method name="parse_duration" c:identifier="gst_message_parse_duration">
10998         <doc xml:whitespace="preserve">Extracts the duration and format from the duration message. The duration
10999 might be GST_CLOCK_TIME_NONE, which indicates that the duration has
11000 changed. Applications should always use a query to retrieve the duration
11001 of a pipeline.
11002 MT safe.</doc>
11003         <return-value transfer-ownership="none">
11004           <type name="none" c:type="void"/>
11005         </return-value>
11006         <parameters>
11007           <parameter name="format"
11008                      direction="out"
11009                      caller-allocates="0"
11010                      transfer-ownership="full">
11011             <doc xml:whitespace="preserve">Result location for the format, or NULL</doc>
11012             <type name="Format" c:type="GstFormat*"/>
11013           </parameter>
11014           <parameter name="duration"
11015                      direction="out"
11016                      caller-allocates="0"
11017                      transfer-ownership="full">
11018             <doc xml:whitespace="preserve">Result location for the duration, or NULL</doc>
11019             <type name="gint64" c:type="gint64*"/>
11020           </parameter>
11021         </parameters>
11022       </method>
11023       <method name="parse_error" c:identifier="gst_message_parse_error">
11024         <doc xml:whitespace="preserve">Extracts the GError and debug string from the GstMessage. The values returned
11025 in the output arguments are copies; the caller must free them when done.
11026 Typical usage of this function might be:
11027 |[
11028 ...
11029 switch (GST_MESSAGE_TYPE (msg)) {
11030 GError *err = NULL;
11031 gchar *dbg_info = NULL;
11032 gst_message_parse_error (msg, &amp;amp;err, &amp;amp;dbg_info);
11033 GST_OBJECT_NAME (msg-&gt;src), err-&gt;message);
11034 g_error_free (err);
11035 g_free (dbg_info);
11036 break;
11037 }
11038 ...
11039 }
11040 ...
11041 ]|
11042 MT safe.</doc>
11043         <return-value transfer-ownership="none">
11044           <type name="none" c:type="void"/>
11045         </return-value>
11046         <parameters>
11047           <parameter name="gerror"
11048                      direction="out"
11049                      caller-allocates="0"
11050                      transfer-ownership="full"
11051                      allow-none="1">
11052             <doc xml:whitespace="preserve">location for the GError</doc>
11053             <type name="GLib.Error" c:type="GError**"/>
11054           </parameter>
11055           <parameter name="debug"
11056                      direction="out"
11057                      caller-allocates="0"
11058                      transfer-ownership="full"
11059                      allow-none="1">
11060             <doc xml:whitespace="preserve">location for the debug message, or NULL</doc>
11061             <type name="utf8" c:type="gchar**"/>
11062           </parameter>
11063         </parameters>
11064       </method>
11065       <method name="parse_info"
11066               c:identifier="gst_message_parse_info"
11067               version="0.10.12">
11068         <doc xml:whitespace="preserve">Extracts the GError and debug string from the GstMessage. The values returned
11069 in the output arguments are copies; the caller must free them when done.
11070 MT safe.</doc>
11071         <return-value transfer-ownership="none">
11072           <type name="none" c:type="void"/>
11073         </return-value>
11074         <parameters>
11075           <parameter name="gerror"
11076                      direction="out"
11077                      caller-allocates="0"
11078                      transfer-ownership="full"
11079                      allow-none="1">
11080             <doc xml:whitespace="preserve">location for the GError</doc>
11081             <type name="GLib.Error" c:type="GError**"/>
11082           </parameter>
11083           <parameter name="debug"
11084                      direction="out"
11085                      caller-allocates="0"
11086                      transfer-ownership="full"
11087                      allow-none="1">
11088             <doc xml:whitespace="preserve">location for the debug message, or NULL</doc>
11089             <type name="utf8" c:type="gchar**"/>
11090           </parameter>
11091         </parameters>
11092       </method>
11093       <method name="parse_new_clock"
11094               c:identifier="gst_message_parse_new_clock">
11095         <doc xml:whitespace="preserve">Extracts the new clock from the GstMessage.
11096 The clock object returned remains valid until the message is freed.
11097 MT safe.</doc>
11098         <return-value transfer-ownership="none">
11099           <type name="none" c:type="void"/>
11100         </return-value>
11101         <parameters>
11102           <parameter name="clock"
11103                      direction="out"
11104                      caller-allocates="0"
11105                      transfer-ownership="none"
11106                      allow-none="1">
11107             <doc xml:whitespace="preserve">a pointer to hold the selected new clock</doc>
11108             <type name="Clock" c:type="GstClock**"/>
11109           </parameter>
11110         </parameters>
11111       </method>
11112       <method name="parse_progress"
11113               c:identifier="gst_message_parse_progress"
11114               version="0.10.33">
11115         <doc xml:whitespace="preserve">Parses the progress @type, @code and @text.</doc>
11116         <return-value transfer-ownership="none">
11117           <type name="none" c:type="void"/>
11118         </return-value>
11119         <parameters>
11120           <parameter name="type"
11121                      direction="out"
11122                      caller-allocates="0"
11123                      transfer-ownership="full"
11124                      allow-none="1">
11125             <doc xml:whitespace="preserve">location for the type</doc>
11126             <type name="ProgressType" c:type="GstProgressType*"/>
11127           </parameter>
11128           <parameter name="code"
11129                      direction="out"
11130                      caller-allocates="0"
11131                      transfer-ownership="full"
11132                      allow-none="1">
11133             <doc xml:whitespace="preserve">location for the code</doc>
11134             <type name="utf8" c:type="gchar**"/>
11135           </parameter>
11136           <parameter name="text"
11137                      direction="out"
11138                      caller-allocates="0"
11139                      transfer-ownership="full"
11140                      allow-none="1">
11141             <doc xml:whitespace="preserve">location for the text</doc>
11142             <type name="utf8" c:type="gchar**"/>
11143           </parameter>
11144         </parameters>
11145       </method>
11146       <method name="parse_qos"
11147               c:identifier="gst_message_parse_qos"
11148               version="0.10.29">
11149         <doc xml:whitespace="preserve">Extract the timestamps and live status from the QoS message.
11150 The returned values give the running_time, stream_time, timestamp and
11151 duration of the dropped buffer. Values of GST_CLOCK_TIME_NONE mean unknown
11152 values.
11153 MT safe.</doc>
11154         <return-value transfer-ownership="none">
11155           <type name="none" c:type="void"/>
11156         </return-value>
11157         <parameters>
11158           <parameter name="live"
11159                      direction="out"
11160                      caller-allocates="0"
11161                      transfer-ownership="full"
11162                      allow-none="1">
11163             <doc xml:whitespace="preserve">if the message was generated by a live element</doc>
11164             <type name="gboolean" c:type="gboolean*"/>
11165           </parameter>
11166           <parameter name="running_time"
11167                      direction="out"
11168                      caller-allocates="0"
11169                      transfer-ownership="full"
11170                      allow-none="1">
11171             <doc xml:whitespace="preserve">the running time of the buffer that generated the message</doc>
11172             <type name="guint64" c:type="guint64*"/>
11173           </parameter>
11174           <parameter name="stream_time"
11175                      direction="out"
11176                      caller-allocates="0"
11177                      transfer-ownership="full"
11178                      allow-none="1">
11179             <doc xml:whitespace="preserve">the stream time of the buffer that generated the message</doc>
11180             <type name="guint64" c:type="guint64*"/>
11181           </parameter>
11182           <parameter name="timestamp"
11183                      direction="out"
11184                      caller-allocates="0"
11185                      transfer-ownership="full"
11186                      allow-none="1">
11187             <doc xml:whitespace="preserve">the timestamps of the buffer that generated the message</doc>
11188             <type name="guint64" c:type="guint64*"/>
11189           </parameter>
11190           <parameter name="duration"
11191                      direction="out"
11192                      caller-allocates="0"
11193                      transfer-ownership="full"
11194                      allow-none="1">
11195             <doc xml:whitespace="preserve">the duration of the buffer that generated the message</doc>
11196             <type name="guint64" c:type="guint64*"/>
11197           </parameter>
11198         </parameters>
11199       </method>
11200       <method name="parse_qos_stats"
11201               c:identifier="gst_message_parse_qos_stats"
11202               version="0.10.29">
11203         <doc xml:whitespace="preserve">Extract the QoS stats representing the history of the current continuous
11204 pipeline playback period.
11205 When @format is @GST_FORMAT_UNDEFINED both @dropped and @processed are
11206 invalid. Values of -1 for either @processed or @dropped mean unknown values.
11207 MT safe.</doc>
11208         <return-value transfer-ownership="none">
11209           <type name="none" c:type="void"/>
11210         </return-value>
11211         <parameters>
11212           <parameter name="format"
11213                      direction="out"
11214                      caller-allocates="0"
11215                      transfer-ownership="full"
11216                      allow-none="1">
11217             <doc xml:whitespace="preserve">Units of the 'processed' and 'dropped' fields. Video sinks and video filters will use GST_FORMAT_BUFFERS (frames). Audio sinks and audio filters will likely use GST_FORMAT_DEFAULT (samples).</doc>
11218             <type name="Format" c:type="GstFormat*"/>
11219           </parameter>
11220           <parameter name="processed"
11221                      direction="out"
11222                      caller-allocates="0"
11223                      transfer-ownership="full"
11224                      allow-none="1">
11225             <doc xml:whitespace="preserve">Total number of units correctly processed since the last state change to READY or a flushing operation.</doc>
11226             <type name="guint64" c:type="guint64*"/>
11227           </parameter>
11228           <parameter name="dropped"
11229                      direction="out"
11230                      caller-allocates="0"
11231                      transfer-ownership="full"
11232                      allow-none="1">
11233             <doc xml:whitespace="preserve">Total number of units dropped since the last state change to READY or a flushing operation.</doc>
11234             <type name="guint64" c:type="guint64*"/>
11235           </parameter>
11236         </parameters>
11237       </method>
11238       <method name="parse_qos_values"
11239               c:identifier="gst_message_parse_qos_values"
11240               version="0.10.29">
11241         <doc xml:whitespace="preserve">Extract the QoS values that have been calculated/analysed from the QoS data
11242 MT safe.</doc>
11243         <return-value transfer-ownership="none">
11244           <type name="none" c:type="void"/>
11245         </return-value>
11246         <parameters>
11247           <parameter name="jitter"
11248                      direction="out"
11249                      caller-allocates="0"
11250                      transfer-ownership="full"
11251                      allow-none="1">
11252             <doc xml:whitespace="preserve">The difference of the running-time against the deadline.</doc>
11253             <type name="gint64" c:type="gint64*"/>
11254           </parameter>
11255           <parameter name="proportion"
11256                      direction="out"
11257                      caller-allocates="0"
11258                      transfer-ownership="full"
11259                      allow-none="1">
11260             <doc xml:whitespace="preserve">Long term prediction of the ideal rate relative to normal rate to get optimal quality.</doc>
11261             <type name="gdouble" c:type="gdouble*"/>
11262           </parameter>
11263           <parameter name="quality"
11264                      direction="out"
11265                      caller-allocates="0"
11266                      transfer-ownership="full"
11267                      allow-none="1">
11268             <doc xml:whitespace="preserve">An element dependent integer value that specifies the current quality level of the element. The default maximum quality is 1000000.</doc>
11269             <type name="gint" c:type="gint*"/>
11270           </parameter>
11271         </parameters>
11272       </method>
11273       <method name="parse_request_state"
11274               c:identifier="gst_message_parse_request_state"
11275               version="0.10.23">
11276         <doc xml:whitespace="preserve">Extract the requested state from the request_state message.
11277 MT safe.</doc>
11278         <return-value transfer-ownership="none">
11279           <type name="none" c:type="void"/>
11280         </return-value>
11281         <parameters>
11282           <parameter name="state"
11283                      direction="out"
11284                      caller-allocates="0"
11285                      transfer-ownership="full">
11286             <doc xml:whitespace="preserve">Result location for the requested state or NULL</doc>
11287             <type name="State" c:type="GstState*"/>
11288           </parameter>
11289         </parameters>
11290       </method>
11291       <method name="parse_segment_done"
11292               c:identifier="gst_message_parse_segment_done">
11293         <doc xml:whitespace="preserve">Extracts the position and format from the segment start message.
11294 MT safe.</doc>
11295         <return-value transfer-ownership="none">
11296           <type name="none" c:type="void"/>
11297         </return-value>
11298         <parameters>
11299           <parameter name="format"
11300                      direction="out"
11301                      caller-allocates="0"
11302                      transfer-ownership="full">
11303             <doc xml:whitespace="preserve">Result location for the format, or NULL</doc>
11304             <type name="Format" c:type="GstFormat*"/>
11305           </parameter>
11306           <parameter name="position"
11307                      direction="out"
11308                      caller-allocates="0"
11309                      transfer-ownership="full">
11310             <doc xml:whitespace="preserve">Result location for the position, or NULL</doc>
11311             <type name="gint64" c:type="gint64*"/>
11312           </parameter>
11313         </parameters>
11314       </method>
11315       <method name="parse_segment_start"
11316               c:identifier="gst_message_parse_segment_start">
11317         <doc xml:whitespace="preserve">Extracts the position and format from the segment start message.
11318 MT safe.</doc>
11319         <return-value transfer-ownership="none">
11320           <type name="none" c:type="void"/>
11321         </return-value>
11322         <parameters>
11323           <parameter name="format"
11324                      direction="out"
11325                      caller-allocates="0"
11326                      transfer-ownership="full">
11327             <doc xml:whitespace="preserve">Result location for the format, or NULL</doc>
11328             <type name="Format" c:type="GstFormat*"/>
11329           </parameter>
11330           <parameter name="position"
11331                      direction="out"
11332                      caller-allocates="0"
11333                      transfer-ownership="full">
11334             <doc xml:whitespace="preserve">Result location for the position, or NULL</doc>
11335             <type name="gint64" c:type="gint64*"/>
11336           </parameter>
11337         </parameters>
11338       </method>
11339       <method name="parse_state_changed"
11340               c:identifier="gst_message_parse_state_changed">
11341         <doc xml:whitespace="preserve">Extracts the old and new states from the GstMessage.
11342 Typical usage of this function might be:
11343 |[
11344 ...
11345 switch (GST_MESSAGE_TYPE (msg)) {
11346 GstState old_state, new_state;
11347 gst_message_parse_state_changed (msg, &amp;amp;old_state, &amp;amp;new_state, NULL);
11348 g_print ("Element %s changed state from %s to %s.\n",
11349 GST_OBJECT_NAME (msg-&gt;src),
11350 gst_element_state_get_name (old_state),
11351 gst_element_state_get_name (new_state));
11352 break;
11353 }
11354 ...
11355 }
11356 ...
11357 ]|
11358 MT safe.</doc>
11359         <return-value transfer-ownership="none">
11360           <type name="none" c:type="void"/>
11361         </return-value>
11362         <parameters>
11363           <parameter name="oldstate"
11364                      direction="out"
11365                      caller-allocates="0"
11366                      transfer-ownership="full"
11367                      allow-none="1">
11368             <doc xml:whitespace="preserve">the previous state, or NULL</doc>
11369             <type name="State" c:type="GstState*"/>
11370           </parameter>
11371           <parameter name="newstate"
11372                      direction="out"
11373                      caller-allocates="0"
11374                      transfer-ownership="full"
11375                      allow-none="1">
11376             <doc xml:whitespace="preserve">the new (current) state, or NULL</doc>
11377             <type name="State" c:type="GstState*"/>
11378           </parameter>
11379           <parameter name="pending"
11380                      direction="out"
11381                      caller-allocates="0"
11382                      transfer-ownership="full"
11383                      allow-none="1">
11384             <doc xml:whitespace="preserve">the pending (target) state, or NULL</doc>
11385             <type name="State" c:type="GstState*"/>
11386           </parameter>
11387         </parameters>
11388       </method>
11389       <method name="parse_step_done"
11390               c:identifier="gst_message_parse_step_done"
11391               version="0.10.24">
11392         <doc xml:whitespace="preserve">Extract the values the step_done message.
11393 MT safe.</doc>
11394         <return-value transfer-ownership="none">
11395           <type name="none" c:type="void"/>
11396         </return-value>
11397         <parameters>
11398           <parameter name="format"
11399                      direction="out"
11400                      caller-allocates="0"
11401                      transfer-ownership="full"
11402                      allow-none="1">
11403             <doc xml:whitespace="preserve">result location for the format</doc>
11404             <type name="Format" c:type="GstFormat*"/>
11405           </parameter>
11406           <parameter name="amount"
11407                      direction="out"
11408                      caller-allocates="0"
11409                      transfer-ownership="full"
11410                      allow-none="1">
11411             <doc xml:whitespace="preserve">result location for the amount</doc>
11412             <type name="guint64" c:type="guint64*"/>
11413           </parameter>
11414           <parameter name="rate"
11415                      direction="out"
11416                      caller-allocates="0"
11417                      transfer-ownership="full"
11418                      allow-none="1">
11419             <doc xml:whitespace="preserve">result location for the rate</doc>
11420             <type name="gdouble" c:type="gdouble*"/>
11421           </parameter>
11422           <parameter name="flush"
11423                      direction="out"
11424                      caller-allocates="0"
11425                      transfer-ownership="full"
11426                      allow-none="1">
11427             <doc xml:whitespace="preserve">result location for the flush flag</doc>
11428             <type name="gboolean" c:type="gboolean*"/>
11429           </parameter>
11430           <parameter name="intermediate"
11431                      direction="out"
11432                      caller-allocates="0"
11433                      transfer-ownership="full"
11434                      allow-none="1">
11435             <doc xml:whitespace="preserve">result location for the intermediate flag</doc>
11436             <type name="gboolean" c:type="gboolean*"/>
11437           </parameter>
11438           <parameter name="duration"
11439                      direction="out"
11440                      caller-allocates="0"
11441                      transfer-ownership="full"
11442                      allow-none="1">
11443             <doc xml:whitespace="preserve">result location for the duration</doc>
11444             <type name="guint64" c:type="guint64*"/>
11445           </parameter>
11446           <parameter name="eos"
11447                      direction="out"
11448                      caller-allocates="0"
11449                      transfer-ownership="full"
11450                      allow-none="1">
11451             <doc xml:whitespace="preserve">result location for the EOS flag</doc>
11452             <type name="gboolean" c:type="gboolean*"/>
11453           </parameter>
11454         </parameters>
11455       </method>
11456       <method name="parse_step_start"
11457               c:identifier="gst_message_parse_step_start"
11458               version="0.10.24">
11459         <doc xml:whitespace="preserve">Extract the values from step_start message.
11460 MT safe.</doc>
11461         <return-value transfer-ownership="none">
11462           <type name="none" c:type="void"/>
11463         </return-value>
11464         <parameters>
11465           <parameter name="active"
11466                      direction="out"
11467                      caller-allocates="0"
11468                      transfer-ownership="full"
11469                      allow-none="1">
11470             <doc xml:whitespace="preserve">result location for the active flag</doc>
11471             <type name="gboolean" c:type="gboolean*"/>
11472           </parameter>
11473           <parameter name="format"
11474                      direction="out"
11475                      caller-allocates="0"
11476                      transfer-ownership="full"
11477                      allow-none="1">
11478             <doc xml:whitespace="preserve">result location for the format</doc>
11479             <type name="Format" c:type="GstFormat*"/>
11480           </parameter>
11481           <parameter name="amount"
11482                      direction="out"
11483                      caller-allocates="0"
11484                      transfer-ownership="full"
11485                      allow-none="1">
11486             <doc xml:whitespace="preserve">result location for the amount</doc>
11487             <type name="guint64" c:type="guint64*"/>
11488           </parameter>
11489           <parameter name="rate"
11490                      direction="out"
11491                      caller-allocates="0"
11492                      transfer-ownership="full"
11493                      allow-none="1">
11494             <doc xml:whitespace="preserve">result location for the rate</doc>
11495             <type name="gdouble" c:type="gdouble*"/>
11496           </parameter>
11497           <parameter name="flush"
11498                      direction="out"
11499                      caller-allocates="0"
11500                      transfer-ownership="full"
11501                      allow-none="1">
11502             <doc xml:whitespace="preserve">result location for the flush flag</doc>
11503             <type name="gboolean" c:type="gboolean*"/>
11504           </parameter>
11505           <parameter name="intermediate"
11506                      direction="out"
11507                      caller-allocates="0"
11508                      transfer-ownership="full"
11509                      allow-none="1">
11510             <doc xml:whitespace="preserve">result location for the intermediate flag</doc>
11511             <type name="gboolean" c:type="gboolean*"/>
11512           </parameter>
11513         </parameters>
11514       </method>
11515       <method name="parse_stream_status"
11516               c:identifier="gst_message_parse_stream_status"
11517               version="0.10.24.">
11518         <doc xml:whitespace="preserve">Extracts the stream status type and owner the GstMessage. The returned
11519 owner remains valid for as long as the reference to @message is valid and
11520 should thus not be unreffed.
11521 MT safe.</doc>
11522         <return-value transfer-ownership="none">
11523           <type name="none" c:type="void"/>
11524         </return-value>
11525         <parameters>
11526           <parameter name="type"
11527                      direction="out"
11528                      caller-allocates="0"
11529                      transfer-ownership="full">
11530             <doc xml:whitespace="preserve">A pointer to hold the status type</doc>
11531             <type name="StreamStatusType" c:type="GstStreamStatusType*"/>
11532           </parameter>
11533           <parameter name="owner"
11534                      direction="out"
11535                      caller-allocates="0"
11536                      transfer-ownership="none">
11537             <doc xml:whitespace="preserve">The owner element of the message source</doc>
11538             <type name="Element" c:type="GstElement**"/>
11539           </parameter>
11540         </parameters>
11541       </method>
11542       <method name="parse_structure_change"
11543               c:identifier="gst_message_parse_structure_change"
11544               version="0.10.22">
11545         <doc xml:whitespace="preserve">Extracts the change type and completion status from the GstMessage.
11546 MT safe.</doc>
11547         <return-value transfer-ownership="none">
11548           <type name="none" c:type="void"/>
11549         </return-value>
11550         <parameters>
11551           <parameter name="type"
11552                      direction="out"
11553                      caller-allocates="0"
11554                      transfer-ownership="full">
11555             <doc xml:whitespace="preserve">A pointer to hold the change type</doc>
11556             <type name="StructureChangeType" c:type="GstStructureChangeType*"/>
11557           </parameter>
11558           <parameter name="owner"
11559                      direction="out"
11560                      caller-allocates="0"
11561                      transfer-ownership="none"
11562                      allow-none="1">
11563             <doc xml:whitespace="preserve">The owner element of the message source</doc>
11564             <type name="Element" c:type="GstElement**"/>
11565           </parameter>
11566           <parameter name="busy"
11567                      direction="out"
11568                      caller-allocates="0"
11569                      transfer-ownership="full"
11570                      allow-none="1">
11571             <doc xml:whitespace="preserve">a pointer to hold whether the change is in progress or has been completed</doc>
11572             <type name="gboolean" c:type="gboolean*"/>
11573           </parameter>
11574         </parameters>
11575       </method>
11576       <method name="parse_tag" c:identifier="gst_message_parse_tag">
11577         <doc xml:whitespace="preserve">Extracts the tag list from the GstMessage. The tag list returned in the
11578 output argument is a copy; the caller must free it when done.
11579 Typical usage of this function might be:
11580 |[
11581 ...
11582 switch (GST_MESSAGE_TYPE (msg)) {
11583 GstTagList *tags = NULL;
11584 gst_message_parse_tag (msg, &amp;amp;tags);
11585 g_print ("Got tags from element %s\n", GST_OBJECT_NAME (msg-&gt;src));
11586 handle_tags (tags);
11587 gst_tag_list_free (tags);
11588 break;
11589 }
11590 ...
11591 }
11592 ...
11593 ]|
11594 MT safe.</doc>
11595         <return-value transfer-ownership="none">
11596           <type name="none" c:type="void"/>
11597         </return-value>
11598         <parameters>
11599           <parameter name="tag_list"
11600                      direction="out"
11601                      caller-allocates="0"
11602                      transfer-ownership="full">
11603             <doc xml:whitespace="preserve">return location for the tag-list.</doc>
11604             <type name="TagList" c:type="GstTagList**"/>
11605           </parameter>
11606         </parameters>
11607       </method>
11608       <method name="parse_tag_full"
11609               c:identifier="gst_message_parse_tag_full"
11610               version="0.10.24">
11611         <doc xml:whitespace="preserve">Extracts the tag list from the GstMessage. The tag list returned in the
11612 output argument is a copy; the caller must free it when done.
11613 MT safe.</doc>
11614         <return-value transfer-ownership="none">
11615           <type name="none" c:type="void"/>
11616         </return-value>
11617         <parameters>
11618           <parameter name="pad"
11619                      direction="out"
11620                      caller-allocates="0"
11621                      transfer-ownership="full">
11622             <doc xml:whitespace="preserve">location where the originating pad is stored, unref after usage</doc>
11623             <type name="Pad" c:type="GstPad**"/>
11624           </parameter>
11625           <parameter name="tag_list"
11626                      direction="out"
11627                      caller-allocates="0"
11628                      transfer-ownership="full">
11629             <doc xml:whitespace="preserve">return location for the tag-list.</doc>
11630             <type name="TagList" c:type="GstTagList**"/>
11631           </parameter>
11632         </parameters>
11633       </method>
11634       <method name="parse_warning" c:identifier="gst_message_parse_warning">
11635         <doc xml:whitespace="preserve">Extracts the GError and debug string from the GstMessage. The values returned
11636 in the output arguments are copies; the caller must free them when done.
11637 MT safe.</doc>
11638         <return-value transfer-ownership="none">
11639           <type name="none" c:type="void"/>
11640         </return-value>
11641         <parameters>
11642           <parameter name="gerror"
11643                      direction="out"
11644                      caller-allocates="0"
11645                      transfer-ownership="full"
11646                      allow-none="1">
11647             <doc xml:whitespace="preserve">location for the GError</doc>
11648             <type name="GLib.Error" c:type="GError**"/>
11649           </parameter>
11650           <parameter name="debug"
11651                      direction="out"
11652                      caller-allocates="0"
11653                      transfer-ownership="full"
11654                      allow-none="1">
11655             <doc xml:whitespace="preserve">location for the debug message, or NULL</doc>
11656             <type name="utf8" c:type="gchar**"/>
11657           </parameter>
11658         </parameters>
11659       </method>
11660       <method name="set_buffering_stats"
11661               c:identifier="gst_message_set_buffering_stats"
11662               version="0.10.20">
11663         <doc xml:whitespace="preserve">Configures the buffering stats values in @message.</doc>
11664         <return-value transfer-ownership="none">
11665           <type name="none" c:type="void"/>
11666         </return-value>
11667         <parameters>
11668           <parameter name="mode" transfer-ownership="none">
11669             <doc xml:whitespace="preserve">a buffering mode</doc>
11670             <type name="BufferingMode" c:type="GstBufferingMode"/>
11671           </parameter>
11672           <parameter name="avg_in" transfer-ownership="none">
11673             <doc xml:whitespace="preserve">the average input rate</doc>
11674             <type name="gint" c:type="gint"/>
11675           </parameter>
11676           <parameter name="avg_out" transfer-ownership="none">
11677             <doc xml:whitespace="preserve">the average output rate</doc>
11678             <type name="gint" c:type="gint"/>
11679           </parameter>
11680           <parameter name="buffering_left" transfer-ownership="none">
11681             <doc xml:whitespace="preserve">amount of buffering time left in milliseconds</doc>
11682             <type name="gint64" c:type="gint64"/>
11683           </parameter>
11684         </parameters>
11685       </method>
11686       <method name="set_qos_stats"
11687               c:identifier="gst_message_set_qos_stats"
11688               version="0.10.29">
11689         <doc xml:whitespace="preserve">Set the QoS stats representing the history of the current continuous pipeline
11690 playback period.
11691 When @format is @GST_FORMAT_UNDEFINED both @dropped and @processed are
11692 invalid. Values of -1 for either @processed or @dropped mean unknown values.
11693 MT safe.</doc>
11694         <return-value transfer-ownership="none">
11695           <type name="none" c:type="void"/>
11696         </return-value>
11697         <parameters>
11698           <parameter name="format" transfer-ownership="none">
11699             <doc xml:whitespace="preserve">Units of the 'processed' and 'dropped' fields. Video sinks and video filters will use GST_FORMAT_BUFFERS (frames). Audio sinks and audio filters will likely use GST_FORMAT_DEFAULT (samples).</doc>
11700             <type name="Format" c:type="GstFormat"/>
11701           </parameter>
11702           <parameter name="processed" transfer-ownership="none">
11703             <doc xml:whitespace="preserve">Total number of units correctly processed since the last state change to READY or a flushing operation.</doc>
11704             <type name="guint64" c:type="guint64"/>
11705           </parameter>
11706           <parameter name="dropped" transfer-ownership="none">
11707             <doc xml:whitespace="preserve">Total number of units dropped since the last state change to READY or a flushing operation.</doc>
11708             <type name="guint64" c:type="guint64"/>
11709           </parameter>
11710         </parameters>
11711       </method>
11712       <method name="set_qos_values"
11713               c:identifier="gst_message_set_qos_values"
11714               version="0.10.29">
11715         <doc xml:whitespace="preserve">Set the QoS values that have been calculated/analysed from the QoS data
11716 MT safe.</doc>
11717         <return-value transfer-ownership="none">
11718           <type name="none" c:type="void"/>
11719         </return-value>
11720         <parameters>
11721           <parameter name="jitter" transfer-ownership="none">
11722             <doc xml:whitespace="preserve">The difference of the running-time against the deadline.</doc>
11723             <type name="gint64" c:type="gint64"/>
11724           </parameter>
11725           <parameter name="proportion" transfer-ownership="none">
11726             <doc xml:whitespace="preserve">Long term prediction of the ideal rate relative to normal rate to get optimal quality.</doc>
11727             <type name="gdouble" c:type="gdouble"/>
11728           </parameter>
11729           <parameter name="quality" transfer-ownership="none">
11730             <doc xml:whitespace="preserve">An element dependent integer value that specifies the current quality level of the element. The default maximum quality is 1000000.</doc>
11731             <type name="gint" c:type="gint"/>
11732           </parameter>
11733         </parameters>
11734       </method>
11735       <method name="set_seqnum"
11736               c:identifier="gst_message_set_seqnum"
11737               version="0.10.22">
11738         <doc xml:whitespace="preserve">Set the sequence number of a message.
11739 This function might be called by the creator of a message to indicate that
11740 the message relates to other messages or events. See gst_message_get_seqnum()
11741 for more information.
11742 MT safe.</doc>
11743         <return-value transfer-ownership="none">
11744           <type name="none" c:type="void"/>
11745         </return-value>
11746         <parameters>
11747           <parameter name="seqnum" transfer-ownership="none">
11748             <doc xml:whitespace="preserve">A sequence number.</doc>
11749             <type name="guint32" c:type="guint32"/>
11750           </parameter>
11751         </parameters>
11752       </method>
11753       <method name="set_stream_status_object"
11754               c:identifier="gst_message_set_stream_status_object"
11755               version="0.10.24">
11756         <doc xml:whitespace="preserve">Configures the object handling the streaming thread. This is usually a
11757 GstTask object but other objects might be added in the future.</doc>
11758         <return-value transfer-ownership="none">
11759           <type name="none" c:type="void"/>
11760         </return-value>
11761         <parameters>
11762           <parameter name="object" transfer-ownership="none">
11763             <doc xml:whitespace="preserve">the object controlling the streaming</doc>
11764             <type name="GObject.Value" c:type="GValue*"/>
11765           </parameter>
11766         </parameters>
11767       </method>
11768       <field name="mini_object">
11769         <type name="MiniObject" c:type="GstMiniObject"/>
11770       </field>
11771       <field name="lock" readable="0" private="1">
11772         <type name="GLib.Mutex" c:type="GMutex*"/>
11773       </field>
11774       <field name="cond" readable="0" private="1">
11775         <type name="GLib.Cond" c:type="GCond*"/>
11776       </field>
11777       <field name="type">
11778         <type name="MessageType" c:type="GstMessageType"/>
11779       </field>
11780       <field name="timestamp">
11781         <type name="guint64" c:type="guint64"/>
11782       </field>
11783       <field name="src">
11784         <type name="Object" c:type="GstObject*"/>
11785       </field>
11786       <field name="structure">
11787         <type name="Structure" c:type="GstStructure*"/>
11788       </field>
11789       <union name="abidata" c:type="abidata">
11790         <record name="ABI" c:type="ABI">
11791           <field name="seqnum" writable="1">
11792             <type name="guint32" c:type="guint32"/>
11793           </field>
11794         </record>
11795         <field name="_gst_reserved" writable="1">
11796           <array zero-terminated="0" c:type="gpointer" fixed-size="4">
11797             <type name="gpointer" c:type="gpointer"/>
11798           </array>
11799         </field>
11800       </union>
11801     </class>
11802     <record name="MessageClass"
11803             c:type="GstMessageClass"
11804             glib:is-gtype-struct-for="Message">
11805       <field name="mini_object_class">
11806         <type name="MiniObjectClass" c:type="GstMiniObjectClass"/>
11807       </field>
11808       <field name="_gst_reserved" readable="0" private="1">
11809         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
11810           <type name="gpointer" c:type="gpointer"/>
11811         </array>
11812       </field>
11813     </record>
11814     <bitfield name="MessageType" c:type="GstMessageType">
11815       <doc xml:whitespace="preserve">The different message types that are available.</doc>
11816       <member name="unknown" value="0" c:identifier="GST_MESSAGE_UNKNOWN"/>
11817       <member name="eos" value="1" c:identifier="GST_MESSAGE_EOS"/>
11818       <member name="error" value="2" c:identifier="GST_MESSAGE_ERROR"/>
11819       <member name="warning" value="4" c:identifier="GST_MESSAGE_WARNING"/>
11820       <member name="info" value="8" c:identifier="GST_MESSAGE_INFO"/>
11821       <member name="tag" value="16" c:identifier="GST_MESSAGE_TAG"/>
11822       <member name="buffering"
11823               value="32"
11824               c:identifier="GST_MESSAGE_BUFFERING"/>
11825       <member name="state_changed"
11826               value="64"
11827               c:identifier="GST_MESSAGE_STATE_CHANGED"/>
11828       <member name="state_dirty"
11829               value="128"
11830               c:identifier="GST_MESSAGE_STATE_DIRTY"/>
11831       <member name="step_done"
11832               value="256"
11833               c:identifier="GST_MESSAGE_STEP_DONE"/>
11834       <member name="clock_provide"
11835               value="512"
11836               c:identifier="GST_MESSAGE_CLOCK_PROVIDE"/>
11837       <member name="clock_lost"
11838               value="1024"
11839               c:identifier="GST_MESSAGE_CLOCK_LOST"/>
11840       <member name="new_clock"
11841               value="2048"
11842               c:identifier="GST_MESSAGE_NEW_CLOCK"/>
11843       <member name="structure_change"
11844               value="4096"
11845               c:identifier="GST_MESSAGE_STRUCTURE_CHANGE"/>
11846       <member name="stream_status"
11847               value="8192"
11848               c:identifier="GST_MESSAGE_STREAM_STATUS"/>
11849       <member name="application"
11850               value="16384"
11851               c:identifier="GST_MESSAGE_APPLICATION"/>
11852       <member name="element" value="32768" c:identifier="GST_MESSAGE_ELEMENT"/>
11853       <member name="segment_start"
11854               value="65536"
11855               c:identifier="GST_MESSAGE_SEGMENT_START"/>
11856       <member name="segment_done"
11857               value="131072"
11858               c:identifier="GST_MESSAGE_SEGMENT_DONE"/>
11859       <member name="duration"
11860               value="262144"
11861               c:identifier="GST_MESSAGE_DURATION"/>
11862       <member name="latency"
11863               value="524288"
11864               c:identifier="GST_MESSAGE_LATENCY"/>
11865       <member name="async_start"
11866               value="1048576"
11867               c:identifier="GST_MESSAGE_ASYNC_START"/>
11868       <member name="async_done"
11869               value="2097152"
11870               c:identifier="GST_MESSAGE_ASYNC_DONE"/>
11871       <member name="request_state"
11872               value="4194304"
11873               c:identifier="GST_MESSAGE_REQUEST_STATE"/>
11874       <member name="step_start"
11875               value="8388608"
11876               c:identifier="GST_MESSAGE_STEP_START"/>
11877       <member name="qos" value="16777216" c:identifier="GST_MESSAGE_QOS"/>
11878       <member name="progress"
11879               value="33554432"
11880               c:identifier="GST_MESSAGE_PROGRESS"/>
11881       <member name="any" value="-1" c:identifier="GST_MESSAGE_ANY"/>
11882     </bitfield>
11883     <class name="MiniObject"
11884            c:symbol-prefix="mini_object"
11885            c:type="GstMiniObject"
11886            abstract="1"
11887            glib:type-name="GstMiniObject"
11888            glib:get-type="gst_mini_object_get_type"
11889            glib:type-struct="MiniObjectClass"
11890            glib:fundamental="1"
11891            glib:ref-func="gst_mini_object_ref"
11892            glib:unref-func="gst_mini_object_unref"
11893            glib:set-value-func="gst_value_set_mini_object"
11894            glib:get-value-func="gst_value_get_mini_object">
11895       <doc xml:whitespace="preserve">#GstMiniObject is a baseclass like #GObject, but has been stripped down of
11896 features to be fast and small.
11897 It offers sub-classing and ref-counting in the same way as #GObject does.
11898 It has no properties and no signal-support though.
11899 Last reviewed on 2005-11-23 (0.9.5)</doc>
11900       <constructor name="new" c:identifier="gst_mini_object_new">
11901         <doc xml:whitespace="preserve">Creates a new mini-object of the desired type.
11902 MT safe</doc>
11903         <return-value transfer-ownership="full">
11904           <doc xml:whitespace="preserve">the new mini-object.</doc>
11905           <type name="MiniObject" c:type="GstMiniObject*"/>
11906         </return-value>
11907         <parameters>
11908           <parameter name="type" transfer-ownership="none">
11909             <doc xml:whitespace="preserve">the #GType of the mini-object to create</doc>
11910             <type name="GType" c:type="GType"/>
11911           </parameter>
11912         </parameters>
11913       </constructor>
11914       <function name="replace" c:identifier="gst_mini_object_replace">
11915         <doc xml:whitespace="preserve">Modifies a pointer to point to a new mini-object.  The modification
11916 is done atomically, and the reference counts are updated correctly.
11917 Either @newdata and the value pointed to by @olddata may be NULL.</doc>
11918         <return-value transfer-ownership="none">
11919           <type name="none" c:type="void"/>
11920         </return-value>
11921         <parameters>
11922           <parameter name="olddata"
11923                      direction="inout"
11924                      caller-allocates="0"
11925                      transfer-ownership="full">
11926             <doc xml:whitespace="preserve">pointer to a pointer to a mini-object to be replaced</doc>
11927             <type name="MiniObject" c:type="GstMiniObject**"/>
11928           </parameter>
11929           <parameter name="newdata" transfer-ownership="none">
11930             <doc xml:whitespace="preserve">pointer to new mini-object</doc>
11931             <type name="MiniObject" c:type="GstMiniObject*"/>
11932           </parameter>
11933         </parameters>
11934       </function>
11935       <method name="copy" c:identifier="gst_mini_object_copy">
11936         <doc xml:whitespace="preserve">Creates a copy of the mini-object.
11937 MT safe</doc>
11938         <return-value transfer-ownership="full">
11939           <doc xml:whitespace="preserve">the new mini-object.</doc>
11940           <type name="MiniObject" c:type="GstMiniObject*"/>
11941         </return-value>
11942       </method>
11943       <method name="is_writable" c:identifier="gst_mini_object_is_writable">
11944         <doc xml:whitespace="preserve">Checks if a mini-object is writable.  A mini-object is writable
11945 if the reference count is one and the #GST_MINI_OBJECT_FLAG_READONLY
11946 flag is not set.  Modification of a mini-object should only be
11947 done after verifying that it is writable.
11948 MT safe</doc>
11949         <return-value transfer-ownership="none">
11950           <doc xml:whitespace="preserve">TRUE if the object is writable.</doc>
11951           <type name="gboolean" c:type="gboolean"/>
11952         </return-value>
11953       </method>
11954       <method name="make_writable"
11955               c:identifier="gst_mini_object_make_writable">
11956         <doc xml:whitespace="preserve">Checks if a mini-object is writable.  If not, a writable copy is made and
11957 returned.  This gives away the reference to the original mini object,
11958 and returns a reference to the new object.
11959 MT safe
11960 is writable.</doc>
11961         <return-value transfer-ownership="full">
11962           <doc xml:whitespace="preserve">a mini-object (possibly the same pointer) that</doc>
11963           <type name="MiniObject" c:type="GstMiniObject*"/>
11964         </return-value>
11965       </method>
11966       <method name="ref" c:identifier="gst_mini_object_ref">
11967         <doc xml:whitespace="preserve">Increase the reference count of the mini-object.
11968 Note that the refcount affects the writeability
11969 of @mini-object, see gst_mini_object_is_writable(). It is
11970 important to note that keeping additional references to
11971 GstMiniObject instances can potentially increase the number
11972 of memcpy operations in a pipeline, especially if the miniobject
11973 is a #GstBuffer.</doc>
11974         <return-value transfer-ownership="full">
11975           <doc xml:whitespace="preserve">the mini-object.</doc>
11976           <type name="MiniObject" c:type="GstMiniObject*"/>
11977         </return-value>
11978       </method>
11979       <method name="unref" c:identifier="gst_mini_object_unref">
11980         <doc xml:whitespace="preserve">Decreases the reference count of the mini-object, possibly freeing
11981 the mini-object.</doc>
11982         <return-value transfer-ownership="none">
11983           <type name="none" c:type="void"/>
11984         </return-value>
11985       </method>
11986       <field name="instance">
11987         <type name="GObject.TypeInstance" c:type="GTypeInstance"/>
11988       </field>
11989       <field name="refcount">
11990         <type name="gint" c:type="gint"/>
11991       </field>
11992       <field name="flags">
11993         <type name="guint" c:type="guint"/>
11994       </field>
11995       <field name="_gst_reserved" readable="0" private="1">
11996         <type name="gpointer" c:type="gpointer"/>
11997       </field>
11998     </class>
11999     <record name="MiniObjectClass"
12000             c:type="GstMiniObjectClass"
12001             glib:is-gtype-struct-for="MiniObject">
12002       <field name="type_class">
12003         <type name="GObject.TypeClass" c:type="GTypeClass"/>
12004       </field>
12005       <field name="copy" introspectable="0">
12006         <type name="MiniObjectCopyFunction"
12007               c:type="GstMiniObjectCopyFunction"/>
12008       </field>
12009       <field name="finalize">
12010         <type name="MiniObjectFinalizeFunction"
12011               c:type="GstMiniObjectFinalizeFunction"/>
12012       </field>
12013       <field name="_gst_reserved" readable="0" private="1">
12014         <type name="gpointer" c:type="gpointer"/>
12015       </field>
12016     </record>
12017     <callback name="MiniObjectCopyFunction"
12018               c:type="GstMiniObjectCopyFunction"
12019               introspectable="0">
12020       <doc xml:whitespace="preserve">Virtual function prototype for methods to create copies of instances.</doc>
12021       <return-value>
12022         <doc xml:whitespace="preserve">reference to cloned instance.</doc>
12023         <type name="MiniObject" c:type="GstMiniObject*"/>
12024       </return-value>
12025       <parameters>
12026         <parameter name="obj" transfer-ownership="none">
12027           <doc xml:whitespace="preserve">MiniObject to copy</doc>
12028           <type name="MiniObject" c:type="GstMiniObject*"/>
12029         </parameter>
12030       </parameters>
12031     </callback>
12032     <callback name="MiniObjectFinalizeFunction"
12033               c:type="GstMiniObjectFinalizeFunction">
12034       <doc xml:whitespace="preserve">Virtual function prototype for methods to free ressources used by
12035 mini-objects. Subclasses of the mini object are allowed to revive the
12036 passed object by doing a gst_mini_object_ref(). If the object is not
12037 revived after the finalize function, the memory associated with the
12038 object is freed.</doc>
12039       <return-value transfer-ownership="none">
12040         <type name="none" c:type="void"/>
12041       </return-value>
12042       <parameters>
12043         <parameter name="obj" transfer-ownership="none">
12044           <doc xml:whitespace="preserve">MiniObject to finalize</doc>
12045           <type name="MiniObject" c:type="GstMiniObject*"/>
12046         </parameter>
12047       </parameters>
12048     </callback>
12049     <bitfield name="MiniObjectFlags" c:type="GstMiniObjectFlags">
12050       <doc xml:whitespace="preserve">Flags for the mini object</doc>
12051       <member name="readonly"
12052               value="1"
12053               c:identifier="GST_MINI_OBJECT_FLAG_READONLY"/>
12054       <member name="reserved1"
12055               value="2"
12056               c:identifier="GST_MINI_OBJECT_FLAG_RESERVED1"/>
12057       <member name="last" value="16" c:identifier="GST_MINI_OBJECT_FLAG_LAST"/>
12058     </bitfield>
12059     <constant name="NSECOND" value="0">
12060       <type name="gint" c:type="gint"/>
12061     </constant>
12062     <class name="Object"
12063            c:symbol-prefix="object"
12064            c:type="GstObject"
12065            parent="GObject.Object"
12066            abstract="1"
12067            glib:type-name="GstObject"
12068            glib:get-type="gst_object_get_type"
12069            glib:type-struct="ObjectClass">
12070       <doc xml:whitespace="preserve">#GstObject provides a root for the object hierarchy tree filed in by the
12071 GStreamer library.  It is currently a thin wrapper on top of
12072 #GObject. It is an abstract class that is not very usable on its own.
12073 #GstObject gives us basic refcounting, parenting functionality and locking.
12074 Most of the function are just extended for special GStreamer needs and can be
12075 found under the same name in the base class of #GstObject which is #GObject
12076 (e.g. g_object_ref() becomes gst_object_ref()).
12077 The most interesting difference between #GstObject and #GObject is the
12078 "floating" reference count. A #GObject is created with a reference count of
12079 1, owned by the creator of the #GObject. (The owner of a reference is the
12080 code section that has the right to call gst_object_unref() in order to
12081 remove that reference.) A #GstObject is created with a reference count of 1
12082 also, but it isn't owned by anyone; Instead, the initial reference count
12083 of a #GstObject is "floating". The floating reference can be removed by
12084 anyone at any time, by calling gst_object_sink().  gst_object_sink() does
12085 nothing if an object is already sunk (has no floating reference).
12086 When you add a #GstElement to its parent container, the parent container will
12087 do this:
12088 &lt;informalexample&gt;
12089 &lt;programlisting&gt;
12090 gst_object_ref (GST_OBJECT (child_element));
12091 gst_object_sink (GST_OBJECT (child_element));
12092 &lt;/programlisting&gt;
12093 &lt;/informalexample&gt;
12094 This means that the container now owns a reference to the child element
12095 (since it called gst_object_ref()), and the child element has no floating
12096 reference.
12097 The purpose of the floating reference is to keep the child element alive
12098 until you add it to a parent container, which then manages the lifetime of
12099 the object itself:
12100 &lt;informalexample&gt;
12101 &lt;programlisting&gt;
12102 element = gst_element_factory_make (factoryname, name);
12103 // element has one floating reference to keep it alive
12104 gst_bin_add (GST_BIN (bin), element);
12105 // element has one non-floating reference owned by the container
12106 &lt;/programlisting&gt;
12107 &lt;/informalexample&gt;
12108 Another effect of this is, that calling gst_object_unref() on a bin object,
12109 will also destoy all the #GstElement objects in it. The same is true for
12110 calling gst_bin_remove().
12111 Special care has to be taken for all methods that gst_object_sink() an object
12112 since if the caller of those functions had a floating reference to the object,
12113 the object reference is now invalid.
12114 In contrast to #GObject instances, #GstObject adds a name property. The functions
12115 gst_object_set_name() and gst_object_get_name() are used to set/get the name
12116 of the object.
12117 Last reviewed on 2005-11-09 (0.9.4)</doc>
12118       <function name="check_uniqueness"
12119                 c:identifier="gst_object_check_uniqueness">
12120         <doc xml:whitespace="preserve">Checks to see if there is any object named @name in @list. This function
12121 does not do any locking of any kind. You might want to protect the
12122 provided list with the lock of the owner of the list. This function
12123 will lock each #GstObject in the list to compare the name, so be
12124 carefull when passing a list with a locked object.
12125 FALSE if it does.
12126 MT safe. Grabs and releases the LOCK of each object in the list.</doc>
12127         <return-value transfer-ownership="none">
12128           <doc xml:whitespace="preserve">TRUE if a #GstObject named @name does not appear in @list,</doc>
12129           <type name="gboolean" c:type="gboolean"/>
12130         </return-value>
12131         <parameters>
12132           <parameter name="list" transfer-ownership="none">
12133             <doc xml:whitespace="preserve">a list of #GstObject to check through</doc>
12134             <type name="GLib.List" c:type="GList*">
12135               <type name="Object"/>
12136             </type>
12137           </parameter>
12138           <parameter name="name" transfer-ownership="none">
12139             <doc xml:whitespace="preserve">the name to search for</doc>
12140             <type name="utf8" c:type="gchar*"/>
12141           </parameter>
12142         </parameters>
12143       </function>
12144       <function name="default_deep_notify"
12145                 c:identifier="gst_object_default_deep_notify">
12146         <doc xml:whitespace="preserve">A default deep_notify signal callback for an object. The user data
12147 should contain a pointer to an array of strings that should be excluded
12148 from the notify. The default handler will print the new value of the property
12149 using g_print.
12150 MT safe. This function grabs and releases @object's LOCK for getting its
12151 path string.</doc>
12152         <return-value transfer-ownership="none">
12153           <type name="none" c:type="void"/>
12154         </return-value>
12155         <parameters>
12156           <parameter name="object" transfer-ownership="none">
12157             <doc xml:whitespace="preserve">the #GObject that signalled the notify.</doc>
12158             <type name="GObject.Object" c:type="GObject*"/>
12159           </parameter>
12160           <parameter name="orig" transfer-ownership="none">
12161             <doc xml:whitespace="preserve">a #GstObject that initiated the notify.</doc>
12162             <type name="Object" c:type="GstObject*"/>
12163           </parameter>
12164           <parameter name="pspec" transfer-ownership="none">
12165             <doc xml:whitespace="preserve">a #GParamSpec of the property.</doc>
12166             <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
12167           </parameter>
12168           <parameter name="excluded_props" transfer-ownership="none">
12169             <doc xml:whitespace="preserve">(array zero-terminated=1) (element-type gchar*) (allow-none):a set of user-specified properties to exclude or NULL to show all changes.</doc>
12170             <type name="utf8" c:type="gchar**"/>
12171           </parameter>
12172         </parameters>
12173       </function>
12174       <function name="ref" c:identifier="gst_object_ref">
12175         <doc xml:whitespace="preserve">Increments the reference count on @object. This function
12176 does not take the lock on @object because it relies on
12177 atomic refcounting.
12178 This object returns the input parameter to ease writing
12179 constructs like :
12180 result = gst_object_ref (object-&gt;parent);</doc>
12181         <return-value transfer-ownership="full">
12182           <doc xml:whitespace="preserve">A pointer to @object</doc>
12183           <type name="gpointer" c:type="gpointer"/>
12184         </return-value>
12185         <parameters>
12186           <parameter name="object" transfer-ownership="none">
12187             <doc xml:whitespace="preserve">a #GstObject to reference</doc>
12188             <type name="gpointer" c:type="gpointer"/>
12189           </parameter>
12190         </parameters>
12191       </function>
12192       <function name="ref_sink"
12193                 c:identifier="gst_object_ref_sink"
12194                 version="0.10.24">
12195         <doc xml:whitespace="preserve">Increase the reference count of @object, and possibly remove the floating
12196 reference, if @object has a floating reference.
12197 In other words, if the object is floating, then this call "assumes ownership"
12198 of the floating reference, converting it to a normal reference by clearing
12199 the floating flag while leaving the reference count unchanged. If the object
12200 is not floating, then this call adds a new normal reference increasing the
12201 reference count by one.
12202 MT safe. This function grabs and releases @object lock.</doc>
12203         <return-value transfer-ownership="none">
12204           <type name="none" c:type="void"/>
12205         </return-value>
12206         <parameters>
12207           <parameter name="object" transfer-ownership="none">
12208             <doc xml:whitespace="preserve">a #GstObject to sink</doc>
12209             <type name="gpointer" c:type="gpointer"/>
12210           </parameter>
12211         </parameters>
12212       </function>
12213       <function name="replace" c:identifier="gst_object_replace">
12214         <doc xml:whitespace="preserve">Unrefs the #GstObject pointed to by @oldobj, refs @newobj and
12215 puts @newobj in *@oldobj. Be carefull when calling this
12216 function, it does not take any locks. You might want to lock
12217 the object owning @oldobj pointer before calling this
12218 function.
12219 Make sure not to LOCK @oldobj because it might be unreffed
12220 which could cause a deadlock when it is disposed.</doc>
12221         <return-value transfer-ownership="none">
12222           <type name="none" c:type="void"/>
12223         </return-value>
12224         <parameters>
12225           <parameter name="oldobj"
12226                      direction="inout"
12227                      caller-allocates="0"
12228                      transfer-ownership="full">
12229             <doc xml:whitespace="preserve">pointer to a place of a #GstObject to replace</doc>
12230             <type name="Object" c:type="GstObject**"/>
12231           </parameter>
12232           <parameter name="newobj" transfer-ownership="none">
12233             <doc xml:whitespace="preserve">a new #GstObject</doc>
12234             <type name="Object" c:type="GstObject*"/>
12235           </parameter>
12236         </parameters>
12237       </function>
12238       <function name="sink" c:identifier="gst_object_sink">
12239         <doc xml:whitespace="preserve">If @object was floating, the #GST_OBJECT_FLOATING flag is removed
12240 and @object is unreffed. When @object was not floating,
12241 this function does nothing.
12242 Any newly created object has a refcount of 1 and is floating.
12243 This function should be used when creating a new object to
12244 symbolically 'take ownership' of @object. This done by first doing a
12245 gst_object_ref() to keep a reference to @object and then gst_object_sink()
12246 to remove and unref any floating references to @object.
12247 Use gst_object_set_parent() to have this done for you.
12248 MT safe. This function grabs and releases @object lock.</doc>
12249         <return-value transfer-ownership="none">
12250           <type name="none" c:type="void"/>
12251         </return-value>
12252         <parameters>
12253           <parameter name="object" transfer-ownership="none">
12254             <doc xml:whitespace="preserve">a #GstObject to sink</doc>
12255             <type name="gpointer" c:type="gpointer"/>
12256           </parameter>
12257         </parameters>
12258       </function>
12259       <function name="unref" c:identifier="gst_object_unref">
12260         <doc xml:whitespace="preserve">Decrements the reference count on @object.  If reference count hits
12261 zero, destroy @object. This function does not take the lock
12262 on @object as it relies on atomic refcounting.
12263 The unref method should never be called with the LOCK held since
12264 this might deadlock the dispose function.</doc>
12265         <return-value transfer-ownership="none">
12266           <type name="none" c:type="void"/>
12267         </return-value>
12268         <parameters>
12269           <parameter name="object" transfer-ownership="none">
12270             <doc xml:whitespace="preserve">a #GstObject to unreference</doc>
12271             <type name="gpointer" c:type="gpointer"/>
12272           </parameter>
12273         </parameters>
12274       </function>
12275       <virtual-method name="deep_notify">
12276         <return-value transfer-ownership="none">
12277           <type name="none" c:type="void"/>
12278         </return-value>
12279         <parameters>
12280           <parameter name="orig" transfer-ownership="none">
12281             <type name="Object" c:type="GstObject*"/>
12282           </parameter>
12283           <parameter name="pspec" transfer-ownership="none">
12284             <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
12285           </parameter>
12286         </parameters>
12287       </virtual-method>
12288       <virtual-method name="object_saved">
12289         <return-value transfer-ownership="none">
12290           <type name="none" c:type="void"/>
12291         </return-value>
12292         <parameters>
12293           <parameter name="parent" transfer-ownership="none">
12294             <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
12295           </parameter>
12296         </parameters>
12297       </virtual-method>
12298       <virtual-method name="parent_set">
12299         <return-value transfer-ownership="none">
12300           <type name="none" c:type="void"/>
12301         </return-value>
12302         <parameters>
12303           <parameter name="parent" transfer-ownership="none">
12304             <type name="Object" c:type="GstObject*"/>
12305           </parameter>
12306         </parameters>
12307       </virtual-method>
12308       <virtual-method name="parent_unset">
12309         <return-value transfer-ownership="none">
12310           <type name="none" c:type="void"/>
12311         </return-value>
12312         <parameters>
12313           <parameter name="parent" transfer-ownership="none">
12314             <type name="Object" c:type="GstObject*"/>
12315           </parameter>
12316         </parameters>
12317       </virtual-method>
12318       <virtual-method name="restore_thyself" invoker="restore_thyself">
12319         <doc xml:whitespace="preserve">Restores @object with the data from the parent XML node.</doc>
12320         <return-value transfer-ownership="none">
12321           <type name="none" c:type="void"/>
12322         </return-value>
12323         <parameters>
12324           <parameter name="self" transfer-ownership="none">
12325             <doc xml:whitespace="preserve">The XML node to load @object from</doc>
12326             <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
12327           </parameter>
12328         </parameters>
12329       </virtual-method>
12330       <virtual-method name="save_thyself"
12331                       invoker="save_thyself"
12332                       introspectable="0">
12333         <doc xml:whitespace="preserve">Saves @object into the parent XML node.</doc>
12334         <return-value>
12335           <doc xml:whitespace="preserve">the new xmlNodePtr with the saved object</doc>
12336           <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
12337         </return-value>
12338         <parameters>
12339           <parameter name="parent" transfer-ownership="none">
12340             <doc xml:whitespace="preserve">The parent XML node to save @object into</doc>
12341             <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
12342           </parameter>
12343         </parameters>
12344       </virtual-method>
12345       <method name="default_error" c:identifier="gst_object_default_error">
12346         <doc xml:whitespace="preserve">A default error function.
12347 The default handler will simply print the error string using g_print.</doc>
12348         <return-value transfer-ownership="none">
12349           <type name="none" c:type="void"/>
12350         </return-value>
12351         <parameters>
12352           <parameter name="error" transfer-ownership="none">
12353             <doc xml:whitespace="preserve">the GError.</doc>
12354             <type name="GLib.Error" c:type="GError*"/>
12355           </parameter>
12356           <parameter name="debug" transfer-ownership="none" allow-none="1">
12357             <doc xml:whitespace="preserve">an additional debug information string, or NULL</doc>
12358             <type name="utf8" c:type="gchar*"/>
12359           </parameter>
12360         </parameters>
12361       </method>
12362       <method name="get_name" c:identifier="gst_object_get_name">
12363         <doc xml:whitespace="preserve">Returns a copy of the name of @object.
12364 Caller should g_free() the return value after usage.
12365 For a nameless object, this returns NULL, which you can safely g_free()
12366 as well.
12367 MT safe. This function grabs and releases @object's LOCK.</doc>
12368         <return-value transfer-ownership="full">
12369           <doc xml:whitespace="preserve">the name of @object. g_free() after usage.</doc>
12370           <type name="utf8" c:type="gchar*"/>
12371         </return-value>
12372       </method>
12373       <method name="get_name_prefix"
12374               c:identifier="gst_object_get_name_prefix"
12375               deprecated="deprecated because the name prefix has never actually been used">
12376         <doc xml:whitespace="preserve">Returns a copy of the name prefix of @object.
12377 Caller should g_free() the return value after usage.
12378 For a prefixless object, this returns NULL, which you can safely g_free()
12379 as well.
12380 MT safe. This function grabs and releases @object's LOCK.
12381 for anything.</doc>
12382         <return-value transfer-ownership="full">
12383           <doc xml:whitespace="preserve">the name prefix of @object. g_free() after usage.</doc>
12384           <type name="utf8" c:type="gchar*"/>
12385         </return-value>
12386       </method>
12387       <method name="get_parent" c:identifier="gst_object_get_parent">
12388         <doc xml:whitespace="preserve">Returns the parent of @object. This function increases the refcount
12389 of the parent object so you should gst_object_unref() it after usage.
12390 has no parent. unref after usage.
12391 MT safe. Grabs and releases @object's LOCK.</doc>
12392         <return-value transfer-ownership="full">
12393           <doc xml:whitespace="preserve">parent of @object, this can be NULL if @object</doc>
12394           <type name="Object" c:type="GstObject*"/>
12395         </return-value>
12396       </method>
12397       <method name="get_path_string" c:identifier="gst_object_get_path_string">
12398         <doc xml:whitespace="preserve">Generates a string describing the path of @object in
12399 the object hierarchy. Only useful (or used) for debugging.
12400 g_free() the string after usage.
12401 MT safe. Grabs and releases the #GstObject's LOCK for all objects
12402 in the hierarchy.</doc>
12403         <return-value transfer-ownership="full">
12404           <doc xml:whitespace="preserve">a string describing the path of @object. You must</doc>
12405           <type name="utf8" c:type="gchar*"/>
12406         </return-value>
12407       </method>
12408       <method name="has_ancestor" c:identifier="gst_object_has_ancestor">
12409         <doc xml:whitespace="preserve">Check if @object has an ancestor @ancestor somewhere up in
12410 the hierarchy. One can e.g. check if a #GstElement is inside a #GstPipeline.
12411 MT safe. Grabs and releases @object's locks.</doc>
12412         <return-value transfer-ownership="none">
12413           <doc xml:whitespace="preserve">TRUE if @ancestor is an ancestor of @object.</doc>
12414           <type name="gboolean" c:type="gboolean"/>
12415         </return-value>
12416         <parameters>
12417           <parameter name="ancestor" transfer-ownership="none">
12418             <doc xml:whitespace="preserve">a #GstObject to check as ancestor</doc>
12419             <type name="Object" c:type="GstObject*"/>
12420           </parameter>
12421         </parameters>
12422       </method>
12423       <method name="restore_thyself" c:identifier="gst_object_restore_thyself">
12424         <doc xml:whitespace="preserve">Restores @object with the data from the parent XML node.</doc>
12425         <return-value transfer-ownership="none">
12426           <type name="none" c:type="void"/>
12427         </return-value>
12428         <parameters>
12429           <parameter name="self" transfer-ownership="none">
12430             <doc xml:whitespace="preserve">The XML node to load @object from</doc>
12431             <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
12432           </parameter>
12433         </parameters>
12434       </method>
12435       <method name="save_thyself"
12436               c:identifier="gst_object_save_thyself"
12437               introspectable="0">
12438         <doc xml:whitespace="preserve">Saves @object into the parent XML node.</doc>
12439         <return-value>
12440           <doc xml:whitespace="preserve">the new xmlNodePtr with the saved object</doc>
12441           <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
12442         </return-value>
12443         <parameters>
12444           <parameter name="parent" transfer-ownership="none">
12445             <doc xml:whitespace="preserve">The parent XML node to save @object into</doc>
12446             <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
12447           </parameter>
12448         </parameters>
12449       </method>
12450       <method name="set_name" c:identifier="gst_object_set_name">
12451         <doc xml:whitespace="preserve">Sets the name of @object, or gives @object a guaranteed unique
12452 name (if @name is NULL).
12453 This function makes a copy of the provided name, so the caller
12454 retains ownership of the name it sent.
12455 a parent cannot be renamed, this function returns FALSE in those
12456 cases.
12457 MT safe.  This function grabs and releases @object's LOCK.</doc>
12458         <return-value transfer-ownership="none">
12459           <doc xml:whitespace="preserve">TRUE if the name could be set. Since Objects that have</doc>
12460           <type name="gboolean" c:type="gboolean"/>
12461         </return-value>
12462         <parameters>
12463           <parameter name="name" transfer-ownership="none">
12464             <doc xml:whitespace="preserve">new name of object</doc>
12465             <type name="utf8" c:type="gchar*"/>
12466           </parameter>
12467         </parameters>
12468       </method>
12469       <method name="set_name_prefix"
12470               c:identifier="gst_object_set_name_prefix"
12471               deprecated="deprecated because the name prefix has never actually been used">
12472         <doc xml:whitespace="preserve">Sets the name prefix of @object to @name_prefix.
12473 This function makes a copy of the provided name prefix, so the caller
12474 retains ownership of the name prefix it sent.
12475 MT safe.  This function grabs and releases @object's LOCK.
12476 for anything.</doc>
12477         <return-value transfer-ownership="none">
12478           <type name="none" c:type="void"/>
12479         </return-value>
12480         <parameters>
12481           <parameter name="name_prefix" transfer-ownership="none">
12482             <doc xml:whitespace="preserve">new name prefix of @object</doc>
12483             <type name="utf8" c:type="gchar*"/>
12484           </parameter>
12485         </parameters>
12486       </method>
12487       <method name="set_parent" c:identifier="gst_object_set_parent">
12488         <doc xml:whitespace="preserve">Sets the parent of @object to @parent. The object's reference count will
12489 be incremented, and any floating reference will be removed (see gst_object_sink()).
12490 This function causes the parent-set signal to be emitted when the parent
12491 was successfully set.
12492 already had a parent or @object and @parent are the same.
12493 MT safe. Grabs and releases @object's LOCK.</doc>
12494         <return-value transfer-ownership="none">
12495           <doc xml:whitespace="preserve">TRUE if @parent could be set or FALSE when @object</doc>
12496           <type name="gboolean" c:type="gboolean"/>
12497         </return-value>
12498         <parameters>
12499           <parameter name="parent" transfer-ownership="none">
12500             <doc xml:whitespace="preserve">new parent of object</doc>
12501             <type name="Object" c:type="GstObject*"/>
12502           </parameter>
12503         </parameters>
12504       </method>
12505       <method name="unparent" c:identifier="gst_object_unparent">
12506         <doc xml:whitespace="preserve">Clear the parent of @object, removing the associated reference.
12507 This function decreases the refcount of @object.
12508 MT safe. Grabs and releases @object's lock.</doc>
12509         <return-value transfer-ownership="none">
12510           <type name="none" c:type="void"/>
12511         </return-value>
12512       </method>
12513       <property name="name"
12514                 writable="1"
12515                 construct="1"
12516                 transfer-ownership="none">
12517         <type name="utf8"/>
12518       </property>
12519       <field name="object">
12520         <type name="GObject.Object" c:type="GObject"/>
12521       </field>
12522       <field name="refcount">
12523         <type name="gint" c:type="gint"/>
12524       </field>
12525       <field name="lock">
12526         <type name="GLib.Mutex" c:type="GMutex*"/>
12527       </field>
12528       <field name="name">
12529         <type name="utf8" c:type="gchar*"/>
12530       </field>
12531       <field name="name_prefix">
12532         <type name="utf8" c:type="gchar*"/>
12533       </field>
12534       <field name="parent">
12535         <type name="Object" c:type="GstObject*"/>
12536       </field>
12537       <field name="flags">
12538         <type name="guint32" c:type="guint32"/>
12539       </field>
12540       <field name="_gst_reserved" readable="0" private="1">
12541         <type name="gpointer" c:type="gpointer"/>
12542       </field>
12543       <glib:signal name="deep-notify" introspectable="0">
12544         <doc xml:whitespace="preserve">The deep notify signal is used to be notified of property changes. It is
12545 typically attached to the toplevel bin to receive notifications from all
12546 the elements contained in that bin.</doc>
12547         <return-value transfer-ownership="none">
12548           <type name="none"/>
12549         </return-value>
12550         <parameters>
12551           <parameter name="prop_object" transfer-ownership="none">
12552             <doc xml:whitespace="preserve">the object that originated the signal</doc>
12553             <type name="Object"/>
12554           </parameter>
12555           <parameter name="prop" transfer-ownership="none">
12556             <doc xml:whitespace="preserve">the property that changed</doc>
12557             <type/>
12558           </parameter>
12559         </parameters>
12560       </glib:signal>
12561       <glib:signal name="object-saved">
12562         <doc xml:whitespace="preserve">Trigered whenever a new object is saved to XML. You can connect to this
12563 signal to insert custom XML tags into the core XML.</doc>
12564         <return-value transfer-ownership="none">
12565           <type name="none"/>
12566         </return-value>
12567         <parameters>
12568           <parameter name="xml_node" transfer-ownership="none">
12569             <doc xml:whitespace="preserve">the xmlNodePtr of the parent node</doc>
12570             <type name="gpointer"/>
12571           </parameter>
12572         </parameters>
12573       </glib:signal>
12574       <glib:signal name="parent-set">
12575         <doc xml:whitespace="preserve">Emitted when the parent of an object is set.</doc>
12576         <return-value transfer-ownership="none">
12577           <type name="none"/>
12578         </return-value>
12579         <parameters>
12580           <parameter name="parent" transfer-ownership="none">
12581             <doc xml:whitespace="preserve">the new parent</doc>
12582             <type name="Object"/>
12583           </parameter>
12584         </parameters>
12585       </glib:signal>
12586       <glib:signal name="parent-unset">
12587         <doc xml:whitespace="preserve">Emitted when the parent of an object is unset.</doc>
12588         <return-value transfer-ownership="none">
12589           <type name="none"/>
12590         </return-value>
12591         <parameters>
12592           <parameter name="parent" transfer-ownership="none">
12593             <doc xml:whitespace="preserve">the old parent</doc>
12594             <type name="Object"/>
12595           </parameter>
12596         </parameters>
12597       </glib:signal>
12598     </class>
12599     <record name="ObjectClass"
12600             c:type="GstObjectClass"
12601             glib:is-gtype-struct-for="Object">
12602       <doc xml:whitespace="preserve">GStreamer base object class.</doc>
12603       <field name="parent_class">
12604         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
12605       </field>
12606       <field name="path_string_separator">
12607         <type name="utf8" c:type="gchar*"/>
12608       </field>
12609       <field name="signal_object">
12610         <type name="GObject.Object" c:type="GObject*"/>
12611       </field>
12612       <field name="lock">
12613         <type name="GLib.StaticRecMutex" c:type="GStaticRecMutex*"/>
12614       </field>
12615       <field name="parent_set">
12616         <callback name="parent_set">
12617           <return-value transfer-ownership="none">
12618             <type name="none" c:type="void"/>
12619           </return-value>
12620           <parameters>
12621             <parameter name="object" transfer-ownership="none">
12622               <type name="Object" c:type="GstObject*"/>
12623             </parameter>
12624             <parameter name="parent" transfer-ownership="none">
12625               <type name="Object" c:type="GstObject*"/>
12626             </parameter>
12627           </parameters>
12628         </callback>
12629       </field>
12630       <field name="parent_unset">
12631         <callback name="parent_unset">
12632           <return-value transfer-ownership="none">
12633             <type name="none" c:type="void"/>
12634           </return-value>
12635           <parameters>
12636             <parameter name="object" transfer-ownership="none">
12637               <type name="Object" c:type="GstObject*"/>
12638             </parameter>
12639             <parameter name="parent" transfer-ownership="none">
12640               <type name="Object" c:type="GstObject*"/>
12641             </parameter>
12642           </parameters>
12643         </callback>
12644       </field>
12645       <field name="object_saved">
12646         <callback name="object_saved">
12647           <return-value transfer-ownership="none">
12648             <type name="none" c:type="void"/>
12649           </return-value>
12650           <parameters>
12651             <parameter name="object" transfer-ownership="none">
12652               <type name="Object" c:type="GstObject*"/>
12653             </parameter>
12654             <parameter name="parent" transfer-ownership="none">
12655               <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
12656             </parameter>
12657           </parameters>
12658         </callback>
12659       </field>
12660       <field name="deep_notify">
12661         <callback name="deep_notify">
12662           <return-value transfer-ownership="none">
12663             <type name="none" c:type="void"/>
12664           </return-value>
12665           <parameters>
12666             <parameter name="object" transfer-ownership="none">
12667               <type name="Object" c:type="GstObject*"/>
12668             </parameter>
12669             <parameter name="orig" transfer-ownership="none">
12670               <type name="Object" c:type="GstObject*"/>
12671             </parameter>
12672             <parameter name="pspec" transfer-ownership="none">
12673               <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
12674             </parameter>
12675           </parameters>
12676         </callback>
12677       </field>
12678       <field name="save_thyself" introspectable="0">
12679         <callback name="save_thyself" introspectable="0">
12680           <return-value>
12681             <doc xml:whitespace="preserve">the new xmlNodePtr with the saved object</doc>
12682             <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
12683           </return-value>
12684           <parameters>
12685             <parameter name="object" transfer-ownership="none">
12686               <type name="Object" c:type="GstObject*"/>
12687             </parameter>
12688             <parameter name="parent" transfer-ownership="none">
12689               <doc xml:whitespace="preserve">The parent XML node to save @object into</doc>
12690               <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
12691             </parameter>
12692           </parameters>
12693         </callback>
12694       </field>
12695       <field name="restore_thyself">
12696         <callback name="restore_thyself">
12697           <return-value transfer-ownership="none">
12698             <type name="none" c:type="void"/>
12699           </return-value>
12700           <parameters>
12701             <parameter name="object" transfer-ownership="none">
12702               <type name="Object" c:type="GstObject*"/>
12703             </parameter>
12704             <parameter name="self" transfer-ownership="none">
12705               <doc xml:whitespace="preserve">The XML node to load @object from</doc>
12706               <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
12707             </parameter>
12708           </parameters>
12709         </callback>
12710       </field>
12711       <field name="_gst_reserved" readable="0" private="1">
12712         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
12713           <type name="gpointer" c:type="gpointer"/>
12714         </array>
12715       </field>
12716     </record>
12717     <bitfield name="ObjectFlags" c:type="GstObjectFlags">
12718       <doc xml:whitespace="preserve">The standard flags that an gstobject may have.</doc>
12719       <member name="disposing" value="1" c:identifier="GST_OBJECT_DISPOSING"/>
12720       <member name="floating" value="2" c:identifier="GST_OBJECT_FLOATING"/>
12721       <member name="flag_last" value="16" c:identifier="GST_OBJECT_FLAG_LAST"/>
12722     </bitfield>
12723     <constant name="PAD_LINK_CHECK_DEFAULT" value="0">
12724       <type name="gint" c:type="gint"/>
12725     </constant>
12726     <constant name="PARAM_CONTROLLABLE" value="2">
12727       <type name="gint" c:type="gint"/>
12728     </constant>
12729     <constant name="PARAM_MUTABLE_PAUSED" value="8">
12730       <type name="gint" c:type="gint"/>
12731     </constant>
12732     <constant name="PARAM_MUTABLE_PLAYING" value="16">
12733       <type name="gint" c:type="gint"/>
12734     </constant>
12735     <constant name="PARAM_MUTABLE_READY" value="4">
12736       <type name="gint" c:type="gint"/>
12737     </constant>
12738     <constant name="PARAM_USER_SHIFT" value="256">
12739       <type name="gint" c:type="gint"/>
12740     </constant>
12741     <class name="Pad"
12742            c:symbol-prefix="pad"
12743            c:type="GstPad"
12744            parent="Object"
12745            glib:type-name="GstPad"
12746            glib:get-type="gst_pad_get_type"
12747            glib:type-struct="PadClass">
12748       <doc xml:whitespace="preserve">A #GstElement is linked to other elements via "pads", which are extremely
12749 light-weight generic link points.
12750 After two pads are retrieved from an element with gst_element_get_pad(),
12751 the pads can be link with gst_pad_link(). (For quick links,
12752 you can also use gst_element_link(), which will make the obvious
12753 link for you if it's straightforward.)
12754 Pads are typically created from a #GstPadTemplate with
12755 gst_pad_new_from_template().
12756 Pads have #GstCaps attached to it to describe the media type they are
12757 capable of dealing with.  gst_pad_get_caps() and gst_pad_set_caps() are
12758 used to manipulate the caps of the pads.
12759 Pads created from a pad template cannot set capabilities that are
12760 incompatible with the pad template capabilities.
12761 Pads without pad templates can be created with gst_pad_new(),
12762 which takes a direction and a name as an argument.  If the name is NULL,
12763 then a guaranteed unique name will be assigned to it.
12764 gst_pad_get_parent() will retrieve the #GstElement that owns the pad.
12765 A #GstElement creating a pad will typically use the various
12766 gst_pad_set_*_function() calls to register callbacks for various events
12767 on the pads.
12768 GstElements will use gst_pad_push() and gst_pad_pull_range() to push out
12769 or pull in a buffer.
12770 To send a #GstEvent on a pad, use gst_pad_send_event() and
12771 gst_pad_push_event().
12772 Last reviewed on 2006-07-06 (0.10.9)</doc>
12773       <constructor name="new" c:identifier="gst_pad_new">
12774         <doc xml:whitespace="preserve">Creates a new pad with the given name in the given direction.
12775 If name is NULL, a guaranteed unique name (across all pads)
12776 will be assigned.
12777 This function makes a copy of the name so you can safely free the name.
12778 MT safe.</doc>
12779         <return-value transfer-ownership="full">
12780           <doc xml:whitespace="preserve">a new #GstPad, or NULL in case of an error.</doc>
12781           <type name="Pad" c:type="GstPad*"/>
12782         </return-value>
12783         <parameters>
12784           <parameter name="name" transfer-ownership="none">
12785             <doc xml:whitespace="preserve">the name of the new pad.</doc>
12786             <type name="utf8" c:type="gchar*"/>
12787           </parameter>
12788           <parameter name="direction" transfer-ownership="none">
12789             <doc xml:whitespace="preserve">the #GstPadDirection of the pad.</doc>
12790             <type name="PadDirection" c:type="GstPadDirection"/>
12791           </parameter>
12792         </parameters>
12793       </constructor>
12794       <constructor name="new_from_static_template"
12795                    c:identifier="gst_pad_new_from_static_template">
12796         <doc xml:whitespace="preserve">Creates a new pad with the given name from the given static template.
12797 If name is NULL, a guaranteed unique name (across all pads)
12798 will be assigned.
12799 This function makes a copy of the name so you can safely free the name.</doc>
12800         <return-value transfer-ownership="full">
12801           <doc xml:whitespace="preserve">a new #GstPad, or NULL in case of an error.</doc>
12802           <type name="Pad" c:type="GstPad*"/>
12803         </return-value>
12804         <parameters>
12805           <parameter name="templ" transfer-ownership="none">
12806             <doc xml:whitespace="preserve">the #GstStaticPadTemplate to use</doc>
12807             <type name="StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
12808           </parameter>
12809           <parameter name="name" transfer-ownership="none">
12810             <doc xml:whitespace="preserve">the name of the element</doc>
12811             <type name="utf8" c:type="gchar*"/>
12812           </parameter>
12813         </parameters>
12814       </constructor>
12815       <constructor name="new_from_template"
12816                    c:identifier="gst_pad_new_from_template">
12817         <doc xml:whitespace="preserve">Creates a new pad with the given name from the given template.
12818 If name is NULL, a guaranteed unique name (across all pads)
12819 will be assigned.
12820 This function makes a copy of the name so you can safely free the name.</doc>
12821         <return-value transfer-ownership="full">
12822           <doc xml:whitespace="preserve">a new #GstPad, or NULL in case of an error.</doc>
12823           <type name="Pad" c:type="GstPad*"/>
12824         </return-value>
12825         <parameters>
12826           <parameter name="templ" transfer-ownership="none">
12827             <doc xml:whitespace="preserve">the pad template to use</doc>
12828             <type name="PadTemplate" c:type="GstPadTemplate*"/>
12829           </parameter>
12830           <parameter name="name" transfer-ownership="none">
12831             <doc xml:whitespace="preserve">the name of the element</doc>
12832             <type name="utf8" c:type="gchar*"/>
12833           </parameter>
12834         </parameters>
12835       </constructor>
12836       <function name="load_and_link" c:identifier="gst_pad_load_and_link">
12837         <doc xml:whitespace="preserve">Reads the pad definition from the XML node and links the given pad
12838 in the element to a pad of an element up in the hierarchy.</doc>
12839         <return-value transfer-ownership="none">
12840           <type name="none" c:type="void"/>
12841         </return-value>
12842         <parameters>
12843           <parameter name="self" transfer-ownership="none">
12844             <doc xml:whitespace="preserve">an #xmlNodePtr to read the description from.</doc>
12845             <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
12846           </parameter>
12847           <parameter name="parent" transfer-ownership="none">
12848             <doc xml:whitespace="preserve">the #GstObject element that owns the pad.</doc>
12849             <type name="Object" c:type="GstObject*"/>
12850           </parameter>
12851         </parameters>
12852       </function>
12853       <virtual-method name="have_data">
12854         <return-value transfer-ownership="none">
12855           <type name="gboolean" c:type="gboolean"/>
12856         </return-value>
12857         <parameters>
12858           <parameter name="data" transfer-ownership="none">
12859             <type name="MiniObject" c:type="GstMiniObject*"/>
12860           </parameter>
12861         </parameters>
12862       </virtual-method>
12863       <virtual-method name="linked">
12864         <return-value transfer-ownership="none">
12865           <type name="none" c:type="void"/>
12866         </return-value>
12867         <parameters>
12868           <parameter name="peer" transfer-ownership="none">
12869             <type name="Pad" c:type="GstPad*"/>
12870           </parameter>
12871         </parameters>
12872       </virtual-method>
12873       <virtual-method name="request_link">
12874         <return-value transfer-ownership="none">
12875           <type name="none" c:type="void"/>
12876         </return-value>
12877       </virtual-method>
12878       <virtual-method name="unlinked">
12879         <return-value transfer-ownership="none">
12880           <type name="none" c:type="void"/>
12881         </return-value>
12882         <parameters>
12883           <parameter name="peer" transfer-ownership="none">
12884             <type name="Pad" c:type="GstPad*"/>
12885           </parameter>
12886         </parameters>
12887       </virtual-method>
12888       <method name="accept_caps" c:identifier="gst_pad_accept_caps">
12889         <doc xml:whitespace="preserve">Check if the given pad accepts the caps.</doc>
12890         <return-value transfer-ownership="none">
12891           <doc xml:whitespace="preserve">TRUE if the pad can accept the caps.</doc>
12892           <type name="gboolean" c:type="gboolean"/>
12893         </return-value>
12894         <parameters>
12895           <parameter name="caps" transfer-ownership="none">
12896             <doc xml:whitespace="preserve">a #GstCaps to check on the pad</doc>
12897             <type name="Caps" c:type="GstCaps*"/>
12898           </parameter>
12899         </parameters>
12900       </method>
12901       <method name="activate_pull" c:identifier="gst_pad_activate_pull">
12902         <doc xml:whitespace="preserve">Activates or deactivates the given pad in pull mode via dispatching to the
12903 pad's activatepullfunc. For use from within pad activation functions only.
12904 When called on sink pads, will first proxy the call to the peer pad, which
12905 is expected to activate its internally linked pads from within its
12906 activate_pull function.
12907 If you don't know what this is, you probably don't want to call it.
12908 MT safe.</doc>
12909         <return-value transfer-ownership="none">
12910           <doc xml:whitespace="preserve">TRUE if the operation was successful.</doc>
12911           <type name="gboolean" c:type="gboolean"/>
12912         </return-value>
12913         <parameters>
12914           <parameter name="active" transfer-ownership="none">
12915             <doc xml:whitespace="preserve">whether or not the pad should be active.</doc>
12916             <type name="gboolean" c:type="gboolean"/>
12917           </parameter>
12918         </parameters>
12919       </method>
12920       <method name="activate_push" c:identifier="gst_pad_activate_push">
12921         <doc xml:whitespace="preserve">Activates or deactivates the given pad in push mode via dispatching to the
12922 pad's activatepushfunc. For use from within pad activation functions only.
12923 If you don't know what this is, you probably don't want to call it.
12924 MT safe.</doc>
12925         <return-value transfer-ownership="none">
12926           <doc xml:whitespace="preserve">%TRUE if the operation was successful.</doc>
12927           <type name="gboolean" c:type="gboolean"/>
12928         </return-value>
12929         <parameters>
12930           <parameter name="active" transfer-ownership="none">
12931             <doc xml:whitespace="preserve">whether the pad should be active or not.</doc>
12932             <type name="gboolean" c:type="gboolean"/>
12933           </parameter>
12934         </parameters>
12935       </method>
12936       <method name="add_buffer_probe"
12937               c:identifier="gst_pad_add_buffer_probe"
12938               introspectable="0">
12939         <doc xml:whitespace="preserve">Adds a probe that will be called for all buffers passing through a pad. See
12940 gst_pad_add_data_probe() for more information.</doc>
12941         <return-value transfer-ownership="none">
12942           <doc xml:whitespace="preserve">The handler id</doc>
12943           <type name="gulong" c:type="gulong"/>
12944         </return-value>
12945         <parameters>
12946           <parameter name="handler" transfer-ownership="none" closure="1">
12947             <doc xml:whitespace="preserve">function to call when buffers are passed over pad</doc>
12948             <type name="GObject.Callback" c:type="GCallback"/>
12949           </parameter>
12950           <parameter name="data" transfer-ownership="none">
12951             <doc xml:whitespace="preserve">data to pass along with the handler</doc>
12952             <type name="gpointer" c:type="gpointer"/>
12953           </parameter>
12954         </parameters>
12955       </method>
12956       <method name="add_buffer_probe_full"
12957               c:identifier="gst_pad_add_buffer_probe_full"
12958               version="0.10.20">
12959         <doc xml:whitespace="preserve">Adds a probe that will be called for all buffers passing through a pad. See
12960 gst_pad_add_data_probe() for more information.
12961 The @notify function is called when the probe is disconnected and usually
12962 used to free @data.</doc>
12963         <return-value transfer-ownership="none">
12964           <doc xml:whitespace="preserve">The handler id</doc>
12965           <type name="gulong" c:type="gulong"/>
12966         </return-value>
12967         <parameters>
12968           <parameter name="handler"
12969                      transfer-ownership="none"
12970                      scope="notified"
12971                      closure="1"
12972                      destroy="2">
12973             <doc xml:whitespace="preserve">function to call when buffer are passed over pad</doc>
12974             <type name="GObject.Callback" c:type="GCallback"/>
12975           </parameter>
12976           <parameter name="data" transfer-ownership="none">
12977             <doc xml:whitespace="preserve">data to pass along with the handler</doc>
12978             <type name="gpointer" c:type="gpointer"/>
12979           </parameter>
12980           <parameter name="notify"
12981                      transfer-ownership="none"
12982                      allow-none="1"
12983                      scope="async">
12984             <doc xml:whitespace="preserve">function to call when the probe is disconnected, or NULL</doc>
12985             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
12986           </parameter>
12987         </parameters>
12988       </method>
12989       <method name="add_data_probe"
12990               c:identifier="gst_pad_add_data_probe"
12991               introspectable="0">
12992         <doc xml:whitespace="preserve">Adds a "data probe" to a pad. This function will be called whenever data
12993 passes through a pad. In this case data means both events and buffers. The
12994 probe will be called with the data as an argument, meaning @handler should
12995 have the same callback signature as the #GstPad::have-data signal.
12996 Note that the data will have a reference count greater than 1, so it will
12997 be immutable -- you must not change it.
12998 For source pads, the probe will be called after the blocking function, if any
12999 (see gst_pad_set_blocked_async()), but before looking up the peer to chain
13000 to. For sink pads, the probe function will be called before configuring the
13001 sink with new caps, if any, and before calling the pad's chain function.
13002 Your data probe should return TRUE to let the data continue to flow, or FALSE
13003 to drop it. Dropping data is rarely useful, but occasionally comes in handy
13004 with events.
13005 Although probes are implemented internally by connecting @handler to the
13006 have-data signal on the pad, if you want to remove a probe it is insufficient
13007 to only call g_signal_handler_disconnect on the returned handler id. To
13008 remove a probe, use the appropriate function, such as
13009 gst_pad_remove_data_probe().</doc>
13010         <return-value transfer-ownership="none">
13011           <doc xml:whitespace="preserve">The handler id.</doc>
13012           <type name="gulong" c:type="gulong"/>
13013         </return-value>
13014         <parameters>
13015           <parameter name="handler" transfer-ownership="none" closure="1">
13016             <doc xml:whitespace="preserve">function to call when data is passed over pad</doc>
13017             <type name="GObject.Callback" c:type="GCallback"/>
13018           </parameter>
13019           <parameter name="data" transfer-ownership="none">
13020             <doc xml:whitespace="preserve">data to pass along with the handler</doc>
13021             <type name="gpointer" c:type="gpointer"/>
13022           </parameter>
13023         </parameters>
13024       </method>
13025       <method name="add_data_probe_full"
13026               c:identifier="gst_pad_add_data_probe_full"
13027               version="0.10.20">
13028         <doc xml:whitespace="preserve">Adds a "data probe" to a pad. This function will be called whenever data
13029 passes through a pad. In this case data means both events and buffers. The
13030 probe will be called with the data as an argument, meaning @handler should
13031 have the same callback signature as the #GstPad::have-data signal.
13032 Note that the data will have a reference count greater than 1, so it will
13033 be immutable -- you must not change it.
13034 For source pads, the probe will be called after the blocking function, if any
13035 (see gst_pad_set_blocked_async()), but before looking up the peer to chain
13036 to. For sink pads, the probe function will be called before configuring the
13037 sink with new caps, if any, and before calling the pad's chain function.
13038 Your data probe should return TRUE to let the data continue to flow, or FALSE
13039 to drop it. Dropping data is rarely useful, but occasionally comes in handy
13040 with events.
13041 Although probes are implemented internally by connecting @handler to the
13042 have-data signal on the pad, if you want to remove a probe it is insufficient
13043 to only call g_signal_handler_disconnect on the returned handler id. To
13044 remove a probe, use the appropriate function, such as
13045 gst_pad_remove_data_probe().
13046 The @notify function is called when the probe is disconnected and usually
13047 used to free @data.</doc>
13048         <return-value transfer-ownership="none">
13049           <doc xml:whitespace="preserve">The handler id.</doc>
13050           <type name="gulong" c:type="gulong"/>
13051         </return-value>
13052         <parameters>
13053           <parameter name="handler"
13054                      transfer-ownership="none"
13055                      scope="notified"
13056                      closure="1"
13057                      destroy="2">
13058             <doc xml:whitespace="preserve">function to call when data is passed over pad</doc>
13059             <type name="GObject.Callback" c:type="GCallback"/>
13060           </parameter>
13061           <parameter name="data" transfer-ownership="none">
13062             <doc xml:whitespace="preserve">data to pass along with the handler</doc>
13063             <type name="gpointer" c:type="gpointer"/>
13064           </parameter>
13065           <parameter name="notify"
13066                      transfer-ownership="none"
13067                      allow-none="1"
13068                      scope="async">
13069             <doc xml:whitespace="preserve">function to call when the probe is disconnected, or NULL</doc>
13070             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
13071           </parameter>
13072         </parameters>
13073       </method>
13074       <method name="add_event_probe"
13075               c:identifier="gst_pad_add_event_probe"
13076               introspectable="0">
13077         <doc xml:whitespace="preserve">Adds a probe that will be called for all events passing through a pad. See
13078 gst_pad_add_data_probe() for more information.</doc>
13079         <return-value transfer-ownership="none">
13080           <doc xml:whitespace="preserve">The handler id</doc>
13081           <type name="gulong" c:type="gulong"/>
13082         </return-value>
13083         <parameters>
13084           <parameter name="handler" transfer-ownership="none" closure="1">
13085             <doc xml:whitespace="preserve">function to call when events are passed over pad</doc>
13086             <type name="GObject.Callback" c:type="GCallback"/>
13087           </parameter>
13088           <parameter name="data" transfer-ownership="none">
13089             <doc xml:whitespace="preserve">data to pass along with the handler</doc>
13090             <type name="gpointer" c:type="gpointer"/>
13091           </parameter>
13092         </parameters>
13093       </method>
13094       <method name="add_event_probe_full"
13095               c:identifier="gst_pad_add_event_probe_full"
13096               version="0.10.20">
13097         <doc xml:whitespace="preserve">Adds a probe that will be called for all events passing through a pad. See
13098 gst_pad_add_data_probe() for more information.
13099 The @notify function is called when the probe is disconnected and usually
13100 used to free @data.</doc>
13101         <return-value transfer-ownership="none">
13102           <doc xml:whitespace="preserve">The handler id</doc>
13103           <type name="gulong" c:type="gulong"/>
13104         </return-value>
13105         <parameters>
13106           <parameter name="handler"
13107                      transfer-ownership="none"
13108                      scope="notified"
13109                      closure="1"
13110                      destroy="2">
13111             <doc xml:whitespace="preserve">function to call when events are passed over pad</doc>
13112             <type name="GObject.Callback" c:type="GCallback"/>
13113           </parameter>
13114           <parameter name="data" transfer-ownership="none">
13115             <doc xml:whitespace="preserve">data to pass along with the handler, or NULL</doc>
13116             <type name="gpointer" c:type="gpointer"/>
13117           </parameter>
13118           <parameter name="notify"
13119                      transfer-ownership="none"
13120                      allow-none="1"
13121                      scope="async">
13122             <doc xml:whitespace="preserve">function to call when probe is disconnected, or NULL</doc>
13123             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
13124           </parameter>
13125         </parameters>
13126       </method>
13127       <method name="alloc_buffer" c:identifier="gst_pad_alloc_buffer">
13128         <doc xml:whitespace="preserve">Allocates a new, empty buffer optimized to push to pad @pad.  This
13129 function only works if @pad is a source pad and has a peer.
13130 A new, empty #GstBuffer will be put in the @buf argument.
13131 You need to check the caps of the buffer after performing this
13132 function and renegotiate to the format if needed. If the caps changed, it is
13133 possible that the buffer returned in @buf is not of the right size for the
13134 new format, @buf needs to be unreffed and reallocated if this is the case.
13135 result code other than #GST_FLOW_OK is an error and @buf should
13136 not be used.
13137 An error can occur if the pad is not connected or when the downstream
13138 peer elements cannot provide an acceptable buffer.
13139 MT safe.</doc>
13140         <return-value transfer-ownership="none">
13141           <doc xml:whitespace="preserve">a result code indicating success of the operation. Any</doc>
13142           <type name="FlowReturn" c:type="GstFlowReturn"/>
13143         </return-value>
13144         <parameters>
13145           <parameter name="offset" transfer-ownership="none">
13146             <doc xml:whitespace="preserve">the offset of the new buffer in the stream</doc>
13147             <type name="guint64" c:type="guint64"/>
13148           </parameter>
13149           <parameter name="size" transfer-ownership="none">
13150             <doc xml:whitespace="preserve">the size of the new buffer</doc>
13151             <type name="gint" c:type="gint"/>
13152           </parameter>
13153           <parameter name="caps" transfer-ownership="none">
13154             <doc xml:whitespace="preserve">the caps of the new buffer</doc>
13155             <type name="Caps" c:type="GstCaps*"/>
13156           </parameter>
13157           <parameter name="buf" transfer-ownership="none">
13158             <doc xml:whitespace="preserve">a newly allocated buffer</doc>
13159             <type name="Buffer" c:type="GstBuffer**"/>
13160           </parameter>
13161         </parameters>
13162       </method>
13163       <method name="alloc_buffer_and_set_caps"
13164               c:identifier="gst_pad_alloc_buffer_and_set_caps">
13165         <doc xml:whitespace="preserve">In addition to the function gst_pad_alloc_buffer(), this function
13166 automatically calls gst_pad_set_caps() when the caps of the
13167 newly allocated buffer are different from the @pad caps.
13168 After a renegotiation, the size of the new buffer returned in @buf could
13169 be of the wrong size for the new format and must be unreffed an reallocated
13170 in that case.
13171 result code other than #GST_FLOW_OK is an error and @buf should
13172 not be used.
13173 An error can occur if the pad is not connected or when the downstream
13174 peer elements cannot provide an acceptable buffer.
13175 MT safe.</doc>
13176         <return-value transfer-ownership="none">
13177           <doc xml:whitespace="preserve">a result code indicating success of the operation. Any</doc>
13178           <type name="FlowReturn" c:type="GstFlowReturn"/>
13179         </return-value>
13180         <parameters>
13181           <parameter name="offset" transfer-ownership="none">
13182             <doc xml:whitespace="preserve">the offset of the new buffer in the stream</doc>
13183             <type name="guint64" c:type="guint64"/>
13184           </parameter>
13185           <parameter name="size" transfer-ownership="none">
13186             <doc xml:whitespace="preserve">the size of the new buffer</doc>
13187             <type name="gint" c:type="gint"/>
13188           </parameter>
13189           <parameter name="caps" transfer-ownership="none">
13190             <doc xml:whitespace="preserve">the caps of the new buffer</doc>
13191             <type name="Caps" c:type="GstCaps*"/>
13192           </parameter>
13193           <parameter name="buf"
13194                      direction="out"
13195                      caller-allocates="0"
13196                      transfer-ownership="full">
13197             <doc xml:whitespace="preserve">a newly allocated buffer</doc>
13198             <type name="Buffer" c:type="GstBuffer**"/>
13199           </parameter>
13200         </parameters>
13201       </method>
13202       <method name="can_link" c:identifier="gst_pad_can_link">
13203         <doc xml:whitespace="preserve">Checks if the source pad and the sink pad are compatible so they can be
13204 linked.</doc>
13205         <return-value transfer-ownership="none">
13206           <doc xml:whitespace="preserve">TRUE if the pads can be linked.</doc>
13207           <type name="gboolean" c:type="gboolean"/>
13208         </return-value>
13209         <parameters>
13210           <parameter name="sinkpad" transfer-ownership="none">
13211             <doc xml:whitespace="preserve">the sink #GstPad.</doc>
13212             <type name="Pad" c:type="GstPad*"/>
13213           </parameter>
13214         </parameters>
13215       </method>
13216       <method name="chain" c:identifier="gst_pad_chain">
13217         <doc xml:whitespace="preserve">Chain a buffer to @pad.
13218 The function returns #GST_FLOW_WRONG_STATE if the pad was flushing.
13219 If the caps on @buffer are different from the current caps on @pad, this
13220 function will call any setcaps function (see gst_pad_set_setcaps_function())
13221 installed on @pad. If the new caps are not acceptable for @pad, this
13222 function returns #GST_FLOW_NOT_NEGOTIATED.
13223 The function proceeds calling the chain function installed on @pad (see
13224 gst_pad_set_chain_function()) and the return value of that function is
13225 returned to the caller. #GST_FLOW_NOT_SUPPORTED is returned if @pad has no
13226 chain function.
13227 In all cases, success or failure, the caller loses its reference to @buffer
13228 after calling this function.
13229 MT safe.</doc>
13230         <return-value transfer-ownership="none">
13231           <doc xml:whitespace="preserve">a #GstFlowReturn from the pad.</doc>
13232           <type name="FlowReturn" c:type="GstFlowReturn"/>
13233         </return-value>
13234         <parameters>
13235           <parameter name="buffer" transfer-ownership="full">
13236             <doc xml:whitespace="preserve">the #GstBuffer to send, return GST_FLOW_ERROR if not.</doc>
13237             <type name="Buffer" c:type="GstBuffer*"/>
13238           </parameter>
13239         </parameters>
13240       </method>
13241       <method name="chain_list"
13242               c:identifier="gst_pad_chain_list"
13243               version="0.10.24">
13244         <doc xml:whitespace="preserve">Chain a bufferlist to @pad.
13245 The function returns #GST_FLOW_WRONG_STATE if the pad was flushing.
13246 If the caps on the first buffer of @list are different from the current
13247 caps on @pad, this function will call any setcaps function
13248 (see gst_pad_set_setcaps_function()) installed on @pad. If the new caps
13249 are not acceptable for @pad, this function returns #GST_FLOW_NOT_NEGOTIATED.
13250 The function proceeds calling the chainlist function installed on @pad (see
13251 gst_pad_set_chain_list_function()) and the return value of that function is
13252 returned to the caller. #GST_FLOW_NOT_SUPPORTED is returned if @pad has no
13253 chainlist function.
13254 In all cases, success or failure, the caller loses its reference to @list
13255 after calling this function.
13256 MT safe.</doc>
13257         <return-value transfer-ownership="none">
13258           <doc xml:whitespace="preserve">a #GstFlowReturn from the pad.</doc>
13259           <type name="FlowReturn" c:type="GstFlowReturn"/>
13260         </return-value>
13261         <parameters>
13262           <parameter name="list" transfer-ownership="full">
13263             <doc xml:whitespace="preserve">the #GstBufferList to send, return GST_FLOW_ERROR if not.</doc>
13264             <type name="BufferList" c:type="GstBufferList*"/>
13265           </parameter>
13266         </parameters>
13267       </method>
13268       <method name="check_pull_range" c:identifier="gst_pad_check_pull_range">
13269         <doc xml:whitespace="preserve">Checks if a gst_pad_pull_range() can be performed on the peer
13270 source pad. This function is used by plugins that want to check
13271 if they can use random access on the peer source pad.
13272 The peer sourcepad can implement a custom #GstPadCheckGetRangeFunction
13273 if it needs to perform some logic to determine if pull_range is
13274 possible.
13275 MT safe.</doc>
13276         <return-value transfer-ownership="none">
13277           <doc xml:whitespace="preserve">a gboolean with the result.</doc>
13278           <type name="gboolean" c:type="gboolean"/>
13279         </return-value>
13280       </method>
13281       <method name="dispatcher"
13282               c:identifier="gst_pad_dispatcher"
13283               introspectable="0">
13284         <doc xml:whitespace="preserve">Invokes the given dispatcher function on each respective peer of
13285 all pads that are internally linked to the given pad.
13286 The GstPadDispatcherFunction should return TRUE when no further pads
13287 need to be processed.</doc>
13288         <return-value transfer-ownership="none">
13289           <doc xml:whitespace="preserve">TRUE if one of the dispatcher functions returned TRUE.</doc>
13290           <type name="gboolean" c:type="gboolean"/>
13291         </return-value>
13292         <parameters>
13293           <parameter name="dispatch" transfer-ownership="none" closure="1">
13294             <doc xml:whitespace="preserve">the #GstPadDispatcherFunction to call.</doc>
13295             <type name="PadDispatcherFunction"
13296                   c:type="GstPadDispatcherFunction"/>
13297           </parameter>
13298           <parameter name="data" transfer-ownership="none">
13299             <doc xml:whitespace="preserve">gpointer user data passed to the dispatcher function.</doc>
13300             <type name="gpointer" c:type="gpointer"/>
13301           </parameter>
13302         </parameters>
13303       </method>
13304       <method name="event_default" c:identifier="gst_pad_event_default">
13305         <doc xml:whitespace="preserve">Invokes the default event handler for the given pad. End-of-stream and
13306 discontinuity events are handled specially, and then the event is sent to all
13307 pads internally linked to @pad. Note that if there are many possible sink
13308 pads that are internally linked to @pad, only one will be sent an event.
13309 Multi-sinkpad elements should implement custom event handlers.</doc>
13310         <return-value transfer-ownership="none">
13311           <doc xml:whitespace="preserve">TRUE if the event was sent succesfully.</doc>
13312           <type name="gboolean" c:type="gboolean"/>
13313         </return-value>
13314         <parameters>
13315           <parameter name="event" transfer-ownership="full">
13316             <doc xml:whitespace="preserve">the #GstEvent to handle.</doc>
13317             <type name="Event" c:type="GstEvent*"/>
13318           </parameter>
13319         </parameters>
13320       </method>
13321       <method name="fixate_caps" c:identifier="gst_pad_fixate_caps">
13322         <doc xml:whitespace="preserve">Fixate a caps on the given pad. Modifies the caps in place, so you should
13323 make sure that the caps are actually writable (see gst_caps_make_writable()).</doc>
13324         <return-value transfer-ownership="none">
13325           <type name="none" c:type="void"/>
13326         </return-value>
13327         <parameters>
13328           <parameter name="caps" transfer-ownership="none">
13329             <doc xml:whitespace="preserve">the  #GstCaps to fixate</doc>
13330             <type name="Caps" c:type="GstCaps*"/>
13331           </parameter>
13332         </parameters>
13333       </method>
13334       <method name="get_allowed_caps" c:identifier="gst_pad_get_allowed_caps">
13335         <doc xml:whitespace="preserve">Gets the capabilities of the allowed media types that can flow through
13336 The allowed capabilities is calculated as the intersection of the results of
13337 calling gst_pad_get_caps() on @pad and its peer. The caller owns a reference
13338 on the resulting caps.
13339 caps when you no longer need it. This function returns NULL when @pad
13340 has no peer.
13341 MT safe.</doc>
13342         <return-value transfer-ownership="full">
13343           <doc xml:whitespace="preserve">the allowed #GstCaps of the pad link. Unref the</doc>
13344           <type name="Caps" c:type="GstCaps*"/>
13345         </return-value>
13346       </method>
13347       <method name="get_caps" c:identifier="gst_pad_get_caps">
13348         <doc xml:whitespace="preserve">Gets the capabilities this pad can produce or consume.
13349 Note that this method doesn't necessarily return the caps set by
13350 gst_pad_set_caps() - use GST_PAD_CAPS() for that instead.
13351 gst_pad_get_caps returns all possible caps a pad can operate with, using
13352 the pad's get_caps function;
13353 this returns the pad template caps if not explicitly set.
13354 MT safe.</doc>
13355         <return-value transfer-ownership="full">
13356           <doc xml:whitespace="preserve">a newly allocated copy of the #GstCaps of this pad</doc>
13357           <type name="Caps" c:type="GstCaps*"/>
13358         </return-value>
13359       </method>
13360       <method name="get_caps_reffed"
13361               c:identifier="gst_pad_get_caps_reffed"
13362               version="0.10.26">
13363         <doc xml:whitespace="preserve">Gets the capabilities this pad can produce or consume. Preferred function if
13364 one only wants to read or intersect the caps.</doc>
13365         <return-value transfer-ownership="full">
13366           <doc xml:whitespace="preserve">the caps of the pad with incremented ref-count.</doc>
13367           <type name="Caps" c:type="GstCaps*"/>
13368         </return-value>
13369       </method>
13370       <method name="get_direction" c:identifier="gst_pad_get_direction">
13371         <doc xml:whitespace="preserve">Gets the direction of the pad. The direction of the pad is
13372 decided at construction time so this function does not take
13373 the LOCK.
13374 MT safe.</doc>
13375         <return-value transfer-ownership="none">
13376           <doc xml:whitespace="preserve">the #GstPadDirection of the pad.</doc>
13377           <type name="PadDirection" c:type="GstPadDirection"/>
13378         </return-value>
13379       </method>
13380       <method name="get_element_private"
13381               c:identifier="gst_pad_get_element_private">
13382         <doc xml:whitespace="preserve">Gets the private data of a pad.
13383 No locking is performed in this function.</doc>
13384         <return-value transfer-ownership="none">
13385           <doc xml:whitespace="preserve">a #gpointer to the private data.</doc>
13386           <type name="gpointer" c:type="gpointer"/>
13387         </return-value>
13388       </method>
13389       <method name="get_fixed_caps_func"
13390               c:identifier="gst_pad_get_fixed_caps_func">
13391         <doc xml:whitespace="preserve">A helper function you can use as a GetCaps function that
13392 will return the currently negotiated caps or the padtemplate
13393 when NULL.</doc>
13394         <return-value transfer-ownership="full">
13395           <doc xml:whitespace="preserve">the currently negotiated caps or the padtemplate.</doc>
13396           <type name="Caps" c:type="GstCaps*"/>
13397         </return-value>
13398       </method>
13399       <method name="get_internal_links"
13400               c:identifier="gst_pad_get_internal_links"
13401               deprecated="This function does not ref the pads in the list so that they">
13402         <doc xml:whitespace="preserve">Gets a list of pads to which the given pad is linked to
13403 inside of the parent element.
13404 The caller must free this list after use.
13405 Not MT safe.
13406 of pads, free with g_list_free().
13407 could become invalid by the time the application accesses them. It's also
13408 possible that the list changes while handling the pads, which the caller of
13409 this function is unable to know. Use the thread-safe 
13410 gst_pad_iterate_internal_links() instead.</doc>
13411         <return-value transfer-ownership="full">
13412           <doc xml:whitespace="preserve">a newly allocated #GList</doc>
13413           <type name="GLib.List" c:type="GList*">
13414             <type name="Pad"/>
13415           </type>
13416         </return-value>
13417       </method>
13418       <method name="get_internal_links_default"
13419               c:identifier="gst_pad_get_internal_links_default"
13420               deprecated="This function does not ref the pads in the list so that they">
13421         <doc xml:whitespace="preserve">Gets a list of pads to which the given pad is linked to
13422 inside of the parent element.
13423 This is the default handler, and thus returns a list of all of the
13424 pads inside the parent element with opposite direction.
13425 The caller must free this list after use with g_list_free().
13426 of pads, or NULL if the pad has no parent.
13427 Not MT safe.
13428 could become invalid by the time the application accesses them. It's also
13429 possible that the list changes while handling the pads, which the caller of
13430 this function is unable to know. Use the thread-safe 
13431 gst_pad_iterate_internal_links_default() instead.</doc>
13432         <return-value transfer-ownership="full">
13433           <doc xml:whitespace="preserve">a newly allocated #GList</doc>
13434           <type name="GLib.List" c:type="GList*">
13435             <type name="Pad"/>
13436           </type>
13437         </return-value>
13438       </method>
13439       <method name="get_negotiated_caps"
13440               c:identifier="gst_pad_get_negotiated_caps">
13441         <doc xml:whitespace="preserve">Gets the capabilities of the media type that currently flows through @pad
13442 and its peer.
13443 This function can be used on both src and sinkpads. Note that srcpads are
13444 always negotiated before sinkpads so it is possible that the negotiated caps
13445 on the srcpad do not match the negotiated caps of the peer.
13446 the caps when you no longer need it. This function returns NULL when
13447 the @pad has no peer or is not negotiated yet.
13448 MT safe.</doc>
13449         <return-value transfer-ownership="full">
13450           <doc xml:whitespace="preserve">the negotiated #GstCaps of the pad link. Unref</doc>
13451           <type name="Caps" c:type="GstCaps*"/>
13452         </return-value>
13453       </method>
13454       <method name="get_pad_template" c:identifier="gst_pad_get_pad_template">
13455         <doc xml:whitespace="preserve">Gets the template for @pad.
13456 instantiated, or %NULL if this pad has no template.</doc>
13457         <return-value transfer-ownership="none">
13458           <doc xml:whitespace="preserve">the #GstPadTemplate from which this pad was</doc>
13459           <type name="PadTemplate" c:type="GstPadTemplate*"/>
13460         </return-value>
13461       </method>
13462       <method name="get_pad_template_caps"
13463               c:identifier="gst_pad_get_pad_template_caps">
13464         <doc xml:whitespace="preserve">Gets the capabilities for @pad's template.
13465 to keep a reference on the caps, make a copy (see gst_caps_copy ()).</doc>
13466         <return-value transfer-ownership="none">
13467           <doc xml:whitespace="preserve">the #GstCaps of this pad template. If you intend</doc>
13468           <type name="Caps" c:type="GstCaps*"/>
13469         </return-value>
13470       </method>
13471       <method name="get_parent_element"
13472               c:identifier="gst_pad_get_parent_element">
13473         <doc xml:whitespace="preserve">Gets the parent of @pad, cast to a #GstElement. If a @pad has no parent or
13474 its parent is not an element, return NULL.
13475 reference on the parent, so unref when you're finished with it.
13476 MT safe.</doc>
13477         <return-value transfer-ownership="full">
13478           <doc xml:whitespace="preserve">the parent of the pad. The caller has a</doc>
13479           <type name="Element" c:type="GstElement*"/>
13480         </return-value>
13481       </method>
13482       <method name="get_peer" c:identifier="gst_pad_get_peer">
13483         <doc xml:whitespace="preserve">Gets the peer of @pad. This function refs the peer pad so
13484 you need to unref it after use.
13485 MT safe.</doc>
13486         <return-value transfer-ownership="full">
13487           <doc xml:whitespace="preserve">the peer #GstPad. Unref after usage.</doc>
13488           <type name="Pad" c:type="GstPad*"/>
13489         </return-value>
13490       </method>
13491       <method name="get_query_types" c:identifier="gst_pad_get_query_types">
13492         <doc xml:whitespace="preserve">Get an array of supported queries that can be performed
13493 on this pad.
13494 of #GstQueryType.</doc>
13495         <return-value transfer-ownership="none">
13496           <doc xml:whitespace="preserve">a zero-terminated array</doc>
13497           <array c:type="GstQueryType*">
13498             <type name="QueryType" c:type="GstQueryType"/>
13499           </array>
13500         </return-value>
13501       </method>
13502       <method name="get_query_types_default"
13503               c:identifier="gst_pad_get_query_types_default">
13504         <doc xml:whitespace="preserve">Invoke the default dispatcher for the query types on
13505 the pad.
13506 of #GstQueryType, or NULL if none of the internally-linked pads has a
13507 query types function.</doc>
13508         <return-value transfer-ownership="none">
13509           <doc xml:whitespace="preserve">a zero-terminated array</doc>
13510           <array c:type="GstQueryType*">
13511             <type name="QueryType" c:type="GstQueryType"/>
13512           </array>
13513         </return-value>
13514       </method>
13515       <method name="get_range" c:identifier="gst_pad_get_range">
13516         <doc xml:whitespace="preserve">When @pad is flushing this function returns #GST_FLOW_WRONG_STATE
13517 immediatly and @buffer is %NULL.
13518 Calls the getrange function of @pad, see #GstPadGetRangeFunction for a
13519 description of a getrange function. If @pad has no getrange function
13520 installed (see gst_pad_set_getrange_function()) this function returns
13521 #GST_FLOW_NOT_SUPPORTED.
13522 This is a lowlevel function. Usualy gst_pad_pull_range() is used.
13523 MT safe.</doc>
13524         <return-value transfer-ownership="none">
13525           <doc xml:whitespace="preserve">a #GstFlowReturn from the pad.</doc>
13526           <type name="FlowReturn" c:type="GstFlowReturn"/>
13527         </return-value>
13528         <parameters>
13529           <parameter name="offset" transfer-ownership="none">
13530             <doc xml:whitespace="preserve">The start offset of the buffer</doc>
13531             <type name="guint64" c:type="guint64"/>
13532           </parameter>
13533           <parameter name="size" transfer-ownership="none">
13534             <doc xml:whitespace="preserve">The length of the buffer</doc>
13535             <type name="guint" c:type="guint"/>
13536           </parameter>
13537           <parameter name="buffer"
13538                      direction="out"
13539                      caller-allocates="0"
13540                      transfer-ownership="full">
13541             <doc xml:whitespace="preserve">a pointer to hold the #GstBuffer, returns #GST_FLOW_ERROR if %NULL.</doc>
13542             <type name="Buffer" c:type="GstBuffer**"/>
13543           </parameter>
13544         </parameters>
13545       </method>
13546       <method name="is_active" c:identifier="gst_pad_is_active">
13547         <doc xml:whitespace="preserve">Query if a pad is active
13548 MT safe.</doc>
13549         <return-value transfer-ownership="none">
13550           <doc xml:whitespace="preserve">TRUE if the pad is active.</doc>
13551           <type name="gboolean" c:type="gboolean"/>
13552         </return-value>
13553       </method>
13554       <method name="is_blocked" c:identifier="gst_pad_is_blocked">
13555         <doc xml:whitespace="preserve">Checks if the pad is blocked or not. This function returns the
13556 last requested state of the pad. It is not certain that the pad
13557 is actually blocking at this point (see gst_pad_is_blocking()).
13558 MT safe.</doc>
13559         <return-value transfer-ownership="none">
13560           <doc xml:whitespace="preserve">TRUE if the pad is blocked.</doc>
13561           <type name="gboolean" c:type="gboolean"/>
13562         </return-value>
13563       </method>
13564       <method name="is_blocking"
13565               c:identifier="gst_pad_is_blocking"
13566               version="0.10.11">
13567         <doc xml:whitespace="preserve">Checks if the pad is blocking or not. This is a guaranteed state
13568 of whether the pad is actually blocking on a #GstBuffer or a #GstEvent.
13569 MT safe.</doc>
13570         <return-value transfer-ownership="none">
13571           <doc xml:whitespace="preserve">TRUE if the pad is blocking.</doc>
13572           <type name="gboolean" c:type="gboolean"/>
13573         </return-value>
13574       </method>
13575       <method name="is_linked" c:identifier="gst_pad_is_linked">
13576         <doc xml:whitespace="preserve">Checks if a @pad is linked to another pad or not.
13577 MT safe.</doc>
13578         <return-value transfer-ownership="none">
13579           <doc xml:whitespace="preserve">TRUE if the pad is linked, FALSE otherwise.</doc>
13580           <type name="gboolean" c:type="gboolean"/>
13581         </return-value>
13582       </method>
13583       <method name="iterate_internal_links"
13584               c:identifier="gst_pad_iterate_internal_links"
13585               version="0.10.21"
13586               introspectable="0">
13587         <doc xml:whitespace="preserve">Gets an iterator for the pads to which the given pad is linked to inside
13588 of the parent element.
13589 Each #GstPad element yielded by the iterator will have its refcount increased,
13590 so unref after use.
13591 pad does not have an iterator function configured. Use
13592 gst_iterator_free() after usage.</doc>
13593         <return-value transfer-ownership="full">
13594           <doc xml:whitespace="preserve">a new #GstIterator of #GstPad or %NULL when the</doc>
13595           <type name="Iterator" c:type="GstIterator*"/>
13596         </return-value>
13597       </method>
13598       <method name="iterate_internal_links_default"
13599               c:identifier="gst_pad_iterate_internal_links_default"
13600               version="0.10.21"
13601               introspectable="0">
13602         <doc xml:whitespace="preserve">Iterate the list of pads to which the given pad is linked to inside of
13603 the parent element.
13604 This is the default handler, and thus returns an iterator of all of the
13605 pads inside the parent element with opposite direction.
13606 The caller must free this iterator after use with gst_iterator_free().
13607 returned pad with gst_object_unref().</doc>
13608         <return-value>
13609           <doc xml:whitespace="preserve">a #GstIterator of #GstPad, or NULL if @pad has no parent. Unref each</doc>
13610           <type name="Iterator" c:type="GstIterator*"/>
13611         </return-value>
13612       </method>
13613       <method name="link" c:identifier="gst_pad_link">
13614         <doc xml:whitespace="preserve">Links the source pad and the sink pad.
13615 what went wrong.
13616 MT Safe.</doc>
13617         <return-value transfer-ownership="none">
13618           <doc xml:whitespace="preserve">A result code indicating if the connection worked or</doc>
13619           <type name="PadLinkReturn" c:type="GstPadLinkReturn"/>
13620         </return-value>
13621         <parameters>
13622           <parameter name="sinkpad" transfer-ownership="none">
13623             <doc xml:whitespace="preserve">the sink #GstPad to link.</doc>
13624             <type name="Pad" c:type="GstPad*"/>
13625           </parameter>
13626         </parameters>
13627       </method>
13628       <method name="link_full"
13629               c:identifier="gst_pad_link_full"
13630               version="0.10.30">
13631         <doc xml:whitespace="preserve">Links the source pad and the sink pad.
13632 This variant of #gst_pad_link provides a more granular control on the
13633 checks being done when linking. While providing some considerable speedups
13634 the caller of this method must be aware that wrong usage of those flags
13635 can cause severe issues. Refer to the documentation of #GstPadLinkCheck
13636 for more information.
13637 MT Safe.
13638 what went wrong.</doc>
13639         <return-value transfer-ownership="none">
13640           <doc xml:whitespace="preserve">A result code indicating if the connection worked or</doc>
13641           <type name="PadLinkReturn" c:type="GstPadLinkReturn"/>
13642         </return-value>
13643         <parameters>
13644           <parameter name="sinkpad" transfer-ownership="none">
13645             <doc xml:whitespace="preserve">the sink #GstPad to link.</doc>
13646             <type name="Pad" c:type="GstPad*"/>
13647           </parameter>
13648           <parameter name="flags" transfer-ownership="none">
13649             <doc xml:whitespace="preserve">the checks to validate when linking</doc>
13650             <type name="PadLinkCheck" c:type="GstPadLinkCheck"/>
13651           </parameter>
13652         </parameters>
13653       </method>
13654       <method name="pause_task" c:identifier="gst_pad_pause_task">
13655         <doc xml:whitespace="preserve">Pause the task of @pad. This function will also wait until the
13656 function executed by the task is finished if this function is not
13657 called from the task function.
13658 has no task.</doc>
13659         <return-value transfer-ownership="none">
13660           <doc xml:whitespace="preserve">a TRUE if the task could be paused or FALSE when the pad</doc>
13661           <type name="gboolean" c:type="gboolean"/>
13662         </return-value>
13663       </method>
13664       <method name="peer_accept_caps" c:identifier="gst_pad_peer_accept_caps">
13665         <doc xml:whitespace="preserve">Check if the peer of @pad accepts @caps. If @pad has no peer, this function
13666 returns TRUE.</doc>
13667         <return-value transfer-ownership="none">
13668           <doc xml:whitespace="preserve">TRUE if the peer of @pad can accept the caps or @pad has no peer.</doc>
13669           <type name="gboolean" c:type="gboolean"/>
13670         </return-value>
13671         <parameters>
13672           <parameter name="caps" transfer-ownership="none">
13673             <doc xml:whitespace="preserve">a #GstCaps to check on the pad</doc>
13674             <type name="Caps" c:type="GstCaps*"/>
13675           </parameter>
13676         </parameters>
13677       </method>
13678       <method name="peer_get_caps" c:identifier="gst_pad_peer_get_caps">
13679         <doc xml:whitespace="preserve">Gets the capabilities of the peer connected to this pad. Similar to
13680 gst_pad_get_caps().
13681 peer pad. Use gst_caps_unref() to get rid of it. This function
13682 returns %NULL if there is no peer pad.</doc>
13683         <return-value transfer-ownership="full">
13684           <doc xml:whitespace="preserve">a newly allocated copy of the #GstCaps of the</doc>
13685           <type name="Caps" c:type="GstCaps*"/>
13686         </return-value>
13687       </method>
13688       <method name="peer_get_caps_reffed"
13689               c:identifier="gst_pad_peer_get_caps_reffed"
13690               version="0.10.26">
13691         <doc xml:whitespace="preserve">Gets the capabilities of the peer connected to this pad. Preferred function
13692 if one only wants to read or intersect the caps.</doc>
13693         <return-value transfer-ownership="full">
13694           <doc xml:whitespace="preserve">the caps of the pad with incremented ref-count</doc>
13695           <type name="Caps" c:type="GstCaps*"/>
13696         </return-value>
13697       </method>
13698       <method name="peer_query"
13699               c:identifier="gst_pad_peer_query"
13700               version="0.10.15">
13701         <doc xml:whitespace="preserve">Performs gst_pad_query() on the peer of @pad.
13702 The caller is responsible for both the allocation and deallocation of
13703 the query structure.
13704 if @pad has no peer.</doc>
13705         <return-value transfer-ownership="none">
13706           <doc xml:whitespace="preserve">TRUE if the query could be performed. This function returns %FALSE</doc>
13707           <type name="gboolean" c:type="gboolean"/>
13708         </return-value>
13709         <parameters>
13710           <parameter name="query" transfer-ownership="none">
13711             <doc xml:whitespace="preserve">the #GstQuery to perform.</doc>
13712             <type name="Query" c:type="GstQuery*"/>
13713           </parameter>
13714         </parameters>
13715       </method>
13716       <method name="proxy_getcaps" c:identifier="gst_pad_proxy_getcaps">
13717         <doc xml:whitespace="preserve">Calls gst_pad_get_allowed_caps() for every other pad belonging to the
13718 same element as @pad, and returns the intersection of the results.
13719 This function is useful as a default getcaps function for an element
13720 that can handle any stream format, but requires all its pads to have
13721 the same caps.  Two such elements are tee and adder.</doc>
13722         <return-value transfer-ownership="full">
13723           <doc xml:whitespace="preserve">the intersection of the other pads' allowed caps.</doc>
13724           <type name="Caps" c:type="GstCaps*"/>
13725         </return-value>
13726       </method>
13727       <method name="proxy_setcaps" c:identifier="gst_pad_proxy_setcaps">
13728         <doc xml:whitespace="preserve">Calls gst_pad_set_caps() for every other pad belonging to the
13729 same element as @pad.  If gst_pad_set_caps() fails on any pad,
13730 the proxy setcaps fails. May be used only during negotiation.</doc>
13731         <return-value transfer-ownership="none">
13732           <doc xml:whitespace="preserve">TRUE if sucessful</doc>
13733           <type name="gboolean" c:type="gboolean"/>
13734         </return-value>
13735         <parameters>
13736           <parameter name="caps" transfer-ownership="none">
13737             <doc xml:whitespace="preserve">the #GstCaps to link with</doc>
13738             <type name="Caps" c:type="GstCaps*"/>
13739           </parameter>
13740         </parameters>
13741       </method>
13742       <method name="pull_range" c:identifier="gst_pad_pull_range">
13743         <doc xml:whitespace="preserve">Pulls a @buffer from the peer pad.
13744 This function will first trigger the pad block signal if it was
13745 installed.
13746 When @pad is not linked #GST_FLOW_NOT_LINKED is returned else this
13747 function returns the result of gst_pad_get_range() on the peer pad.
13748 See gst_pad_get_range() for a list of return values and for the
13749 semantics of the arguments of this function.
13750 configured on @pad. Renegotiation within a running pull-mode pipeline is not
13751 supported.
13752 When this function returns #GST_FLOW_OK, @buffer will contain a valid
13753 #GstBuffer that should be freed with gst_buffer_unref() after usage.
13754 #GST_FLOW_OK is returned.
13755 MT safe.</doc>
13756         <return-value transfer-ownership="none">
13757           <doc xml:whitespace="preserve">a #GstFlowReturn from the peer pad.</doc>
13758           <type name="FlowReturn" c:type="GstFlowReturn"/>
13759         </return-value>
13760         <parameters>
13761           <parameter name="offset" transfer-ownership="none">
13762             <doc xml:whitespace="preserve">The start offset of the buffer</doc>
13763             <type name="guint64" c:type="guint64"/>
13764           </parameter>
13765           <parameter name="size" transfer-ownership="none">
13766             <doc xml:whitespace="preserve">The length of the buffer</doc>
13767             <type name="guint" c:type="guint"/>
13768           </parameter>
13769           <parameter name="buffer"
13770                      direction="out"
13771                      caller-allocates="0"
13772                      transfer-ownership="full">
13773             <doc xml:whitespace="preserve">a pointer to hold the #GstBuffer, returns GST_FLOW_ERROR if %NULL.</doc>
13774             <type name="Buffer" c:type="GstBuffer**"/>
13775           </parameter>
13776         </parameters>
13777       </method>
13778       <method name="push" c:identifier="gst_pad_push">
13779         <doc xml:whitespace="preserve">Pushes a buffer to the peer of @pad.
13780 This function will call an installed pad block before triggering any
13781 installed pad probes.
13782 If the caps on @buffer are different from the currently configured caps on
13783 gst_pad_set_setcaps_function()). In case of failure to renegotiate the new
13784 format, this function returns #GST_FLOW_NOT_NEGOTIATED.
13785 The function proceeds calling gst_pad_chain() on the peer pad and returns
13786 the value from that function. If @pad has no peer, #GST_FLOW_NOT_LINKED will
13787 be returned.
13788 In all cases, success or failure, the caller loses its reference to @buffer
13789 after calling this function.
13790 MT safe.</doc>
13791         <return-value transfer-ownership="none">
13792           <doc xml:whitespace="preserve">a #GstFlowReturn from the peer pad.</doc>
13793           <type name="FlowReturn" c:type="GstFlowReturn"/>
13794         </return-value>
13795         <parameters>
13796           <parameter name="buffer" transfer-ownership="full">
13797             <doc xml:whitespace="preserve">the #GstBuffer to push returns GST_FLOW_ERROR if not.</doc>
13798             <type name="Buffer" c:type="GstBuffer*"/>
13799           </parameter>
13800         </parameters>
13801       </method>
13802       <method name="push_event" c:identifier="gst_pad_push_event">
13803         <doc xml:whitespace="preserve">Sends the event to the peer of the given pad. This function is
13804 mainly used by elements to send events to their peer
13805 elements.
13806 This function takes owership of the provided event so you should
13807 gst_event_ref() it if you want to reuse the event after this call.
13808 MT safe.</doc>
13809         <return-value transfer-ownership="none">
13810           <doc xml:whitespace="preserve">TRUE if the event was handled.</doc>
13811           <type name="gboolean" c:type="gboolean"/>
13812         </return-value>
13813         <parameters>
13814           <parameter name="event" transfer-ownership="full">
13815             <doc xml:whitespace="preserve">the #GstEvent to send to the pad.</doc>
13816             <type name="Event" c:type="GstEvent*"/>
13817           </parameter>
13818         </parameters>
13819       </method>
13820       <method name="push_list"
13821               c:identifier="gst_pad_push_list"
13822               version="0.10.24">
13823         <doc xml:whitespace="preserve">Pushes a buffer list to the peer of @pad.
13824 This function will call an installed pad block before triggering any
13825 installed pad probes.
13826 If the caps on the first buffer in the first group of @list are different
13827 from the currently configured caps on @pad, this function will call any
13828 installed setcaps function on @pad (see gst_pad_set_setcaps_function()). In
13829 case of failure to renegotiate the new format, this function returns
13830 #GST_FLOW_NOT_NEGOTIATED.
13831 If there are any probes installed on @pad every group of the buffer list
13832 will be merged into a normal #GstBuffer and pushed via gst_pad_push and the
13833 buffer list will be unreffed.
13834 The function proceeds calling the chain function on the peer pad and returns
13835 the value from that function. If @pad has no peer, #GST_FLOW_NOT_LINKED will
13836 be returned. If the peer pad does not have any installed chainlist function
13837 every group buffer of the list will be merged into a normal #GstBuffer and
13838 chained via gst_pad_chain().
13839 In all cases, success or failure, the caller loses its reference to @list
13840 after calling this function.
13841 MT safe.</doc>
13842         <return-value transfer-ownership="none">
13843           <doc xml:whitespace="preserve">a #GstFlowReturn from the peer pad.</doc>
13844           <type name="FlowReturn" c:type="GstFlowReturn"/>
13845         </return-value>
13846         <parameters>
13847           <parameter name="list" transfer-ownership="full">
13848             <doc xml:whitespace="preserve">the #GstBufferList to push returns GST_FLOW_ERROR if not.</doc>
13849             <type name="BufferList" c:type="GstBufferList*"/>
13850           </parameter>
13851         </parameters>
13852       </method>
13853       <method name="query" c:identifier="gst_pad_query">
13854         <doc xml:whitespace="preserve">Dispatches a query to a pad. The query should have been allocated by the
13855 caller via one of the type-specific allocation functions. The element that
13856 the pad belongs to is responsible for filling the query with an appropriate
13857 response, which should then be parsed with a type-specific query parsing
13858 function.
13859 Again, the caller is responsible for both the allocation and deallocation of
13860 the query structure.
13861 Please also note that some queries might need a running pipeline to work.</doc>
13862         <return-value transfer-ownership="none">
13863           <doc xml:whitespace="preserve">TRUE if the query could be performed.</doc>
13864           <type name="gboolean" c:type="gboolean"/>
13865         </return-value>
13866         <parameters>
13867           <parameter name="query" transfer-ownership="none">
13868             <doc xml:whitespace="preserve">the #GstQuery to perform.</doc>
13869             <type name="Query" c:type="GstQuery*"/>
13870           </parameter>
13871         </parameters>
13872       </method>
13873       <method name="query_convert" c:identifier="gst_pad_query_convert">
13874         <doc xml:whitespace="preserve">Queries a pad to convert @src_val in @src_format to @dest_format.</doc>
13875         <return-value transfer-ownership="none">
13876           <doc xml:whitespace="preserve">TRUE if the query could be performed.</doc>
13877           <type name="gboolean" c:type="gboolean"/>
13878         </return-value>
13879         <parameters>
13880           <parameter name="src_format" transfer-ownership="none">
13881             <doc xml:whitespace="preserve">a #GstFormat to convert from.</doc>
13882             <type name="Format" c:type="GstFormat"/>
13883           </parameter>
13884           <parameter name="src_val" transfer-ownership="none">
13885             <doc xml:whitespace="preserve">a value to convert.</doc>
13886             <type name="gint64" c:type="gint64"/>
13887           </parameter>
13888           <parameter name="dest_format"
13889                      direction="inout"
13890                      caller-allocates="0"
13891                      transfer-ownership="full">
13892             <doc xml:whitespace="preserve">a pointer to the #GstFormat to convert to.</doc>
13893             <type name="Format" c:type="GstFormat*"/>
13894           </parameter>
13895           <parameter name="dest_val"
13896                      direction="out"
13897                      caller-allocates="0"
13898                      transfer-ownership="full">
13899             <doc xml:whitespace="preserve">a pointer to the result.</doc>
13900             <type name="gint64" c:type="gint64*"/>
13901           </parameter>
13902         </parameters>
13903       </method>
13904       <method name="query_default" c:identifier="gst_pad_query_default">
13905         <doc xml:whitespace="preserve">Invokes the default query handler for the given pad.
13906 The query is sent to all pads internally linked to @pad. Note that
13907 if there are many possible sink pads that are internally linked to
13908 Multi-sinkpad elements should implement custom query handlers.</doc>
13909         <return-value transfer-ownership="none">
13910           <doc xml:whitespace="preserve">TRUE if the query was performed succesfully.</doc>
13911           <type name="gboolean" c:type="gboolean"/>
13912         </return-value>
13913         <parameters>
13914           <parameter name="query" transfer-ownership="none">
13915             <doc xml:whitespace="preserve">the #GstQuery to handle.</doc>
13916             <type name="Query" c:type="GstQuery*"/>
13917           </parameter>
13918         </parameters>
13919       </method>
13920       <method name="query_duration" c:identifier="gst_pad_query_duration">
13921         <doc xml:whitespace="preserve">Queries a pad for the total stream duration.</doc>
13922         <return-value transfer-ownership="none">
13923           <doc xml:whitespace="preserve">TRUE if the query could be performed.</doc>
13924           <type name="gboolean" c:type="gboolean"/>
13925         </return-value>
13926         <parameters>
13927           <parameter name="format"
13928                      direction="inout"
13929                      caller-allocates="0"
13930                      transfer-ownership="full">
13931             <doc xml:whitespace="preserve">a pointer to the #GstFormat asked for. On return contains the #GstFormat used.</doc>
13932             <type name="Format" c:type="GstFormat*"/>
13933           </parameter>
13934           <parameter name="duration"
13935                      direction="out"
13936                      caller-allocates="0"
13937                      transfer-ownership="full"
13938                      allow-none="1">
13939             <doc xml:whitespace="preserve">a location in which to store the total duration, or NULL.</doc>
13940             <type name="gint64" c:type="gint64*"/>
13941           </parameter>
13942         </parameters>
13943       </method>
13944       <method name="query_peer_convert"
13945               c:identifier="gst_pad_query_peer_convert">
13946         <doc xml:whitespace="preserve">Queries the peer pad of a given sink pad to convert @src_val in @src_format
13947 to @dest_format.</doc>
13948         <return-value transfer-ownership="none">
13949           <doc xml:whitespace="preserve">TRUE if the query could be performed.</doc>
13950           <type name="gboolean" c:type="gboolean"/>
13951         </return-value>
13952         <parameters>
13953           <parameter name="src_format" transfer-ownership="none">
13954             <doc xml:whitespace="preserve">a #GstFormat to convert from.</doc>
13955             <type name="Format" c:type="GstFormat"/>
13956           </parameter>
13957           <parameter name="src_val" transfer-ownership="none">
13958             <doc xml:whitespace="preserve">a value to convert.</doc>
13959             <type name="gint64" c:type="gint64"/>
13960           </parameter>
13961           <parameter name="dest_format"
13962                      direction="inout"
13963                      caller-allocates="0"
13964                      transfer-ownership="full">
13965             <doc xml:whitespace="preserve">a pointer to the #GstFormat to convert to.</doc>
13966             <type name="Format" c:type="GstFormat*"/>
13967           </parameter>
13968           <parameter name="dest_val"
13969                      direction="out"
13970                      caller-allocates="0"
13971                      transfer-ownership="full">
13972             <doc xml:whitespace="preserve">a pointer to the result.</doc>
13973             <type name="gint64" c:type="gint64*"/>
13974           </parameter>
13975         </parameters>
13976       </method>
13977       <method name="query_peer_duration"
13978               c:identifier="gst_pad_query_peer_duration">
13979         <doc xml:whitespace="preserve">Queries the peer pad of a given sink pad for the total stream duration.</doc>
13980         <return-value transfer-ownership="none">
13981           <doc xml:whitespace="preserve">TRUE if the query could be performed.</doc>
13982           <type name="gboolean" c:type="gboolean"/>
13983         </return-value>
13984         <parameters>
13985           <parameter name="format"
13986                      direction="inout"
13987                      caller-allocates="0"
13988                      transfer-ownership="full">
13989             <doc xml:whitespace="preserve">a pointer to the #GstFormat asked for. On return contains the #GstFormat used.</doc>
13990             <type name="Format" c:type="GstFormat*"/>
13991           </parameter>
13992           <parameter name="duration"
13993                      direction="out"
13994                      caller-allocates="0"
13995                      transfer-ownership="full"
13996                      allow-none="1">
13997             <doc xml:whitespace="preserve">a location in which to store the total duration, or NULL.</doc>
13998             <type name="gint64" c:type="gint64*"/>
13999           </parameter>
14000         </parameters>
14001       </method>
14002       <method name="query_peer_position"
14003               c:identifier="gst_pad_query_peer_position">
14004         <doc xml:whitespace="preserve">Queries the peer of a given sink pad for the stream position.</doc>
14005         <return-value transfer-ownership="none">
14006           <doc xml:whitespace="preserve">TRUE if the query could be performed.</doc>
14007           <type name="gboolean" c:type="gboolean"/>
14008         </return-value>
14009         <parameters>
14010           <parameter name="format"
14011                      direction="inout"
14012                      caller-allocates="0"
14013                      transfer-ownership="full">
14014             <doc xml:whitespace="preserve">a pointer to the #GstFormat asked for. On return contains the #GstFormat used.</doc>
14015             <type name="Format" c:type="GstFormat*"/>
14016           </parameter>
14017           <parameter name="cur"
14018                      direction="out"
14019                      caller-allocates="0"
14020                      transfer-ownership="full"
14021                      allow-none="1">
14022             <doc xml:whitespace="preserve">a location in which to store the current position, or NULL.</doc>
14023             <type name="gint64" c:type="gint64*"/>
14024           </parameter>
14025         </parameters>
14026       </method>
14027       <method name="query_position" c:identifier="gst_pad_query_position">
14028         <doc xml:whitespace="preserve">Queries a pad for the stream position.</doc>
14029         <return-value transfer-ownership="none">
14030           <doc xml:whitespace="preserve">TRUE if the query could be performed.</doc>
14031           <type name="gboolean" c:type="gboolean"/>
14032         </return-value>
14033         <parameters>
14034           <parameter name="format"
14035                      direction="inout"
14036                      caller-allocates="0"
14037                      transfer-ownership="full">
14038             <doc xml:whitespace="preserve">a pointer to the #GstFormat asked for. On return contains the #GstFormat used.</doc>
14039             <type name="Format" c:type="GstFormat*"/>
14040           </parameter>
14041           <parameter name="cur"
14042                      direction="out"
14043                      caller-allocates="0"
14044                      transfer-ownership="full">
14045             <doc xml:whitespace="preserve">A location in which to store the current position, or NULL.</doc>
14046             <type name="gint64" c:type="gint64*"/>
14047           </parameter>
14048         </parameters>
14049       </method>
14050       <method name="remove_buffer_probe"
14051               c:identifier="gst_pad_remove_buffer_probe">
14052         <doc xml:whitespace="preserve">Removes a buffer probe from @pad.</doc>
14053         <return-value transfer-ownership="none">
14054           <type name="none" c:type="void"/>
14055         </return-value>
14056         <parameters>
14057           <parameter name="handler_id" transfer-ownership="none">
14058             <doc xml:whitespace="preserve">handler id returned from gst_pad_add_buffer_probe</doc>
14059             <type name="guint" c:type="guint"/>
14060           </parameter>
14061         </parameters>
14062       </method>
14063       <method name="remove_data_probe"
14064               c:identifier="gst_pad_remove_data_probe">
14065         <doc xml:whitespace="preserve">Removes a data probe from @pad.</doc>
14066         <return-value transfer-ownership="none">
14067           <type name="none" c:type="void"/>
14068         </return-value>
14069         <parameters>
14070           <parameter name="handler_id" transfer-ownership="none">
14071             <doc xml:whitespace="preserve">handler id returned from gst_pad_add_data_probe</doc>
14072             <type name="guint" c:type="guint"/>
14073           </parameter>
14074         </parameters>
14075       </method>
14076       <method name="remove_event_probe"
14077               c:identifier="gst_pad_remove_event_probe">
14078         <doc xml:whitespace="preserve">Removes an event probe from @pad.</doc>
14079         <return-value transfer-ownership="none">
14080           <type name="none" c:type="void"/>
14081         </return-value>
14082         <parameters>
14083           <parameter name="handler_id" transfer-ownership="none">
14084             <doc xml:whitespace="preserve">handler id returned from gst_pad_add_event_probe</doc>
14085             <type name="guint" c:type="guint"/>
14086           </parameter>
14087         </parameters>
14088       </method>
14089       <method name="send_event" c:identifier="gst_pad_send_event">
14090         <doc xml:whitespace="preserve">Sends the event to the pad. This function can be used
14091 by applications to send events in the pipeline.
14092 If @pad is a source pad, @event should be an upstream event. If @pad is a
14093 sink pad, @event should be a downstream event. For example, you would not
14094 send a #GST_EVENT_EOS on a src pad; EOS events only propagate downstream.
14095 Furthermore, some downstream events have to be serialized with data flow,
14096 like EOS, while some can travel out-of-band, like #GST_EVENT_FLUSH_START. If
14097 the event needs to be serialized with data flow, this function will take the
14098 pad's stream lock while calling its event function.
14099 To find out whether an event type is upstream, downstream, or downstream and
14100 serialized, see #GstEventTypeFlags, gst_event_type_get_flags(),
14101 #GST_EVENT_IS_UPSTREAM, #GST_EVENT_IS_DOWNSTREAM, and
14102 #GST_EVENT_IS_SERIALIZED. Note that in practice that an application or
14103 plugin doesn't need to bother itself with this information; the core handles
14104 all necessary locks and checks.
14105 This function takes owership of the provided event so you should
14106 gst_event_ref() it if you want to reuse the event after this call.</doc>
14107         <return-value transfer-ownership="none">
14108           <doc xml:whitespace="preserve">TRUE if the event was handled.</doc>
14109           <type name="gboolean" c:type="gboolean"/>
14110         </return-value>
14111         <parameters>
14112           <parameter name="event" transfer-ownership="full">
14113             <doc xml:whitespace="preserve">the #GstEvent to send to the pad.</doc>
14114             <type name="Event" c:type="GstEvent*"/>
14115           </parameter>
14116         </parameters>
14117       </method>
14118       <method name="set_acceptcaps_function"
14119               c:identifier="gst_pad_set_acceptcaps_function"
14120               introspectable="0">
14121         <doc xml:whitespace="preserve">Sets the given acceptcaps function for the pad.  The acceptcaps function
14122 will be called to check if the pad can accept the given caps. Setting the
14123 acceptcaps function to NULL restores the default behaviour of allowing
14124 any caps that matches the caps from gst_pad_get_caps().</doc>
14125         <return-value transfer-ownership="none">
14126           <type name="none" c:type="void"/>
14127         </return-value>
14128         <parameters>
14129           <parameter name="acceptcaps" transfer-ownership="none">
14130             <doc xml:whitespace="preserve">the #GstPadAcceptCapsFunction to set.</doc>
14131             <type name="PadAcceptCapsFunction"
14132                   c:type="GstPadAcceptCapsFunction"/>
14133           </parameter>
14134         </parameters>
14135       </method>
14136       <method name="set_activate_function"
14137               c:identifier="gst_pad_set_activate_function"
14138               introspectable="0">
14139         <doc xml:whitespace="preserve">Sets the given activate function for @pad. The activate function will
14140 dispatch to gst_pad_activate_push() or gst_pad_activate_pull() to perform
14141 the actual activation. Only makes sense to set on sink pads.
14142 Call this function if your sink pad can start a pull-based task.</doc>
14143         <return-value transfer-ownership="none">
14144           <type name="none" c:type="void"/>
14145         </return-value>
14146         <parameters>
14147           <parameter name="activate" transfer-ownership="none">
14148             <doc xml:whitespace="preserve">the #GstPadActivateFunction to set.</doc>
14149             <type name="PadActivateFunction" c:type="GstPadActivateFunction"/>
14150           </parameter>
14151         </parameters>
14152       </method>
14153       <method name="set_activatepull_function"
14154               c:identifier="gst_pad_set_activatepull_function"
14155               introspectable="0">
14156         <doc xml:whitespace="preserve">Sets the given activate_pull function for the pad. An activate_pull function
14157 prepares the element and any upstream connections for pulling. See XXX
14158 part-activation.txt for details.</doc>
14159         <return-value transfer-ownership="none">
14160           <type name="none" c:type="void"/>
14161         </return-value>
14162         <parameters>
14163           <parameter name="activatepull" transfer-ownership="none">
14164             <doc xml:whitespace="preserve">the #GstPadActivateModeFunction to set.</doc>
14165             <type name="PadActivateModeFunction"
14166                   c:type="GstPadActivateModeFunction"/>
14167           </parameter>
14168         </parameters>
14169       </method>
14170       <method name="set_activatepush_function"
14171               c:identifier="gst_pad_set_activatepush_function"
14172               introspectable="0">
14173         <doc xml:whitespace="preserve">Sets the given activate_push function for the pad. An activate_push function
14174 prepares the element for pushing. See XXX part-activation.txt for details.</doc>
14175         <return-value transfer-ownership="none">
14176           <type name="none" c:type="void"/>
14177         </return-value>
14178         <parameters>
14179           <parameter name="activatepush" transfer-ownership="none">
14180             <doc xml:whitespace="preserve">the #GstPadActivateModeFunction to set.</doc>
14181             <type name="PadActivateModeFunction"
14182                   c:type="GstPadActivateModeFunction"/>
14183           </parameter>
14184         </parameters>
14185       </method>
14186       <method name="set_active" c:identifier="gst_pad_set_active">
14187         <doc xml:whitespace="preserve">Activates or deactivates the given pad.
14188 Normally called from within core state change functions.
14189 If @active, makes sure the pad is active. If it is already active, either in
14190 push or pull mode, just return. Otherwise dispatches to the pad's activate
14191 function to perform the actual activation.
14192 If not @active, checks the pad's current mode and calls
14193 gst_pad_activate_push() or gst_pad_activate_pull(), as appropriate, with a
14194 FALSE argument.
14195 MT safe.</doc>
14196         <return-value transfer-ownership="none">
14197           <doc xml:whitespace="preserve">#TRUE if the operation was successful.</doc>
14198           <type name="gboolean" c:type="gboolean"/>
14199         </return-value>
14200         <parameters>
14201           <parameter name="active" transfer-ownership="none">
14202             <doc xml:whitespace="preserve">whether or not the pad should be active.</doc>
14203             <type name="gboolean" c:type="gboolean"/>
14204           </parameter>
14205         </parameters>
14206       </method>
14207       <method name="set_blocked" c:identifier="gst_pad_set_blocked">
14208         <doc xml:whitespace="preserve">Blocks or unblocks the dataflow on a pad. This function is
14209 a shortcut for gst_pad_set_blocked_async() with a NULL
14210 callback.
14211 &lt;note&gt;
14212 Pad blocks are only possible for source pads in push mode
14213 and sink pads in pull mode.
14214 &lt;/note&gt;
14215 wrong parameters were passed or the pad was already in the requested state.
14216 MT safe.</doc>
14217         <return-value transfer-ownership="none">
14218           <doc xml:whitespace="preserve">TRUE if the pad could be blocked. This function can fail if the</doc>
14219           <type name="gboolean" c:type="gboolean"/>
14220         </return-value>
14221         <parameters>
14222           <parameter name="blocked" transfer-ownership="none">
14223             <doc xml:whitespace="preserve">boolean indicating we should block or unblock</doc>
14224             <type name="gboolean" c:type="gboolean"/>
14225           </parameter>
14226         </parameters>
14227       </method>
14228       <method name="set_blocked_async"
14229               c:identifier="gst_pad_set_blocked_async"
14230               introspectable="0">
14231         <doc xml:whitespace="preserve">Blocks or unblocks the dataflow on a pad. The provided callback
14232 is called when the operation succeeds; this happens right before the next
14233 attempt at pushing a buffer on the pad.
14234 This can take a while as the pad can only become blocked when real dataflow
14235 is happening.
14236 When the pipeline is stalled, for example in PAUSED, this can
14237 take an indeterminate amount of time.
14238 You can pass NULL as the callback to make this call block. Be careful with
14239 this blocking call as it might not return for reasons stated above.
14240 &lt;note&gt;
14241 Pad block handlers are only called for source pads in push mode
14242 and sink pads in pull mode.
14243 &lt;/note&gt;
14244 wrong parameters were passed or the pad was already in the requested state.
14245 MT safe.</doc>
14246         <return-value transfer-ownership="none">
14247           <doc xml:whitespace="preserve">TRUE if the pad could be blocked. This function can fail if the</doc>
14248           <type name="gboolean" c:type="gboolean"/>
14249         </return-value>
14250         <parameters>
14251           <parameter name="blocked" transfer-ownership="none">
14252             <doc xml:whitespace="preserve">boolean indicating whether the pad should be blocked or unblocked</doc>
14253             <type name="gboolean" c:type="gboolean"/>
14254           </parameter>
14255           <parameter name="callback" transfer-ownership="none" closure="2">
14256             <doc xml:whitespace="preserve">#GstPadBlockCallback that will be called when the operation succeeds</doc>
14257             <type name="PadBlockCallback" c:type="GstPadBlockCallback"/>
14258           </parameter>
14259           <parameter name="user_data" transfer-ownership="none">
14260             <doc xml:whitespace="preserve">user data passed to the callback</doc>
14261             <type name="gpointer" c:type="gpointer"/>
14262           </parameter>
14263         </parameters>
14264       </method>
14265       <method name="set_blocked_async_full"
14266               c:identifier="gst_pad_set_blocked_async_full"
14267               version="0.10.23">
14268         <doc xml:whitespace="preserve">Blocks or unblocks the dataflow on a pad. The provided callback
14269 is called when the operation succeeds; this happens right before the next
14270 attempt at pushing a buffer on the pad.
14271 This can take a while as the pad can only become blocked when real dataflow
14272 is happening.
14273 When the pipeline is stalled, for example in PAUSED, this can
14274 take an indeterminate amount of time.
14275 You can pass NULL as the callback to make this call block. Be careful with
14276 this blocking call as it might not return for reasons stated above.
14277 &lt;note&gt;
14278 Pad block handlers are only called for source pads in push mode
14279 and sink pads in pull mode.
14280 &lt;/note&gt;
14281 wrong parameters were passed or the pad was already in the requested state.
14282 MT safe.</doc>
14283         <return-value transfer-ownership="none">
14284           <doc xml:whitespace="preserve">TRUE if the pad could be blocked. This function can fail if the</doc>
14285           <type name="gboolean" c:type="gboolean"/>
14286         </return-value>
14287         <parameters>
14288           <parameter name="blocked" transfer-ownership="none">
14289             <doc xml:whitespace="preserve">boolean indicating whether the pad should be blocked or unblocked</doc>
14290             <type name="gboolean" c:type="gboolean"/>
14291           </parameter>
14292           <parameter name="callback"
14293                      transfer-ownership="none"
14294                      scope="notified"
14295                      closure="2"
14296                      destroy="3">
14297             <doc xml:whitespace="preserve">#GstPadBlockCallback that will be called when the operation succeeds</doc>
14298             <type name="PadBlockCallback" c:type="GstPadBlockCallback"/>
14299           </parameter>
14300           <parameter name="user_data" transfer-ownership="none">
14301             <doc xml:whitespace="preserve">user data passed to the callback</doc>
14302             <type name="gpointer" c:type="gpointer"/>
14303           </parameter>
14304           <parameter name="destroy_data"
14305                      transfer-ownership="none"
14306                      scope="async">
14307             <doc xml:whitespace="preserve">#GDestroyNotify for user_data</doc>
14308             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
14309           </parameter>
14310         </parameters>
14311       </method>
14312       <method name="set_bufferalloc_function"
14313               c:identifier="gst_pad_set_bufferalloc_function"
14314               introspectable="0">
14315         <doc xml:whitespace="preserve">Sets the given bufferalloc function for the pad. Note that the
14316 bufferalloc function can only be set on sinkpads.</doc>
14317         <return-value transfer-ownership="none">
14318           <type name="none" c:type="void"/>
14319         </return-value>
14320         <parameters>
14321           <parameter name="bufalloc" transfer-ownership="none">
14322             <doc xml:whitespace="preserve">the #GstPadBufferAllocFunction to set.</doc>
14323             <type name="PadBufferAllocFunction"
14324                   c:type="GstPadBufferAllocFunction"/>
14325           </parameter>
14326         </parameters>
14327       </method>
14328       <method name="set_caps" c:identifier="gst_pad_set_caps">
14329         <doc xml:whitespace="preserve">Sets the capabilities of this pad. The caps must be fixed. Any previous
14330 caps on the pad will be unreffed. This function refs the caps so you should
14331 unref if as soon as you don't need it anymore.
14332 It is possible to set NULL caps, which will make the pad unnegotiated
14333 again.
14334 or bad parameters were provided to this function.
14335 MT safe.</doc>
14336         <return-value transfer-ownership="none">
14337           <doc xml:whitespace="preserve">TRUE if the caps could be set. FALSE if the caps were not fixed</doc>
14338           <type name="gboolean" c:type="gboolean"/>
14339         </return-value>
14340         <parameters>
14341           <parameter name="caps" transfer-ownership="none">
14342             <doc xml:whitespace="preserve">a #GstCaps to set.</doc>
14343             <type name="Caps" c:type="GstCaps*"/>
14344           </parameter>
14345         </parameters>
14346       </method>
14347       <method name="set_chain_function"
14348               c:identifier="gst_pad_set_chain_function"
14349               introspectable="0">
14350         <doc xml:whitespace="preserve">Sets the given chain function for the pad. The chain function is called to
14351 process a #GstBuffer input buffer. see #GstPadChainFunction for more details.</doc>
14352         <return-value transfer-ownership="none">
14353           <type name="none" c:type="void"/>
14354         </return-value>
14355         <parameters>
14356           <parameter name="chain" transfer-ownership="none">
14357             <doc xml:whitespace="preserve">the #GstPadChainFunction to set.</doc>
14358             <type name="PadChainFunction" c:type="GstPadChainFunction"/>
14359           </parameter>
14360         </parameters>
14361       </method>
14362       <method name="set_chain_list_function"
14363               c:identifier="gst_pad_set_chain_list_function"
14364               version="0.10.24"
14365               introspectable="0">
14366         <doc xml:whitespace="preserve">Sets the given chain list function for the pad. The chainlist function is
14367 called to process a #GstBufferList input buffer list. See
14368 #GstPadChainListFunction for more details.</doc>
14369         <return-value transfer-ownership="none">
14370           <type name="none" c:type="void"/>
14371         </return-value>
14372         <parameters>
14373           <parameter name="chainlist" transfer-ownership="none">
14374             <doc xml:whitespace="preserve">the #GstPadChainListFunction to set.</doc>
14375             <type name="PadChainListFunction"
14376                   c:type="GstPadChainListFunction"/>
14377           </parameter>
14378         </parameters>
14379       </method>
14380       <method name="set_checkgetrange_function"
14381               c:identifier="gst_pad_set_checkgetrange_function"
14382               introspectable="0">
14383         <doc xml:whitespace="preserve">Sets the given checkgetrange function for the pad. Implement this function
14384 on a pad if you dynamically support getrange based scheduling on the pad.</doc>
14385         <return-value transfer-ownership="none">
14386           <type name="none" c:type="void"/>
14387         </return-value>
14388         <parameters>
14389           <parameter name="check" transfer-ownership="none">
14390             <doc xml:whitespace="preserve">the #GstPadCheckGetRangeFunction to set.</doc>
14391             <type name="PadCheckGetRangeFunction"
14392                   c:type="GstPadCheckGetRangeFunction"/>
14393           </parameter>
14394         </parameters>
14395       </method>
14396       <method name="set_element_private"
14397               c:identifier="gst_pad_set_element_private">
14398         <doc xml:whitespace="preserve">Set the given private data gpointer on the pad.
14399 This function can only be used by the element that owns the pad.
14400 No locking is performed in this function.</doc>
14401         <return-value transfer-ownership="none">
14402           <type name="none" c:type="void"/>
14403         </return-value>
14404         <parameters>
14405           <parameter name="priv" transfer-ownership="none">
14406             <doc xml:whitespace="preserve">The private data to attach to the pad.</doc>
14407             <type name="gpointer" c:type="gpointer"/>
14408           </parameter>
14409         </parameters>
14410       </method>
14411       <method name="set_event_function"
14412               c:identifier="gst_pad_set_event_function"
14413               introspectable="0">
14414         <doc xml:whitespace="preserve">Sets the given event handler for the pad.</doc>
14415         <return-value transfer-ownership="none">
14416           <type name="none" c:type="void"/>
14417         </return-value>
14418         <parameters>
14419           <parameter name="event" transfer-ownership="none">
14420             <doc xml:whitespace="preserve">the #GstPadEventFunction to set.</doc>
14421             <type name="PadEventFunction" c:type="GstPadEventFunction"/>
14422           </parameter>
14423         </parameters>
14424       </method>
14425       <method name="set_fixatecaps_function"
14426               c:identifier="gst_pad_set_fixatecaps_function"
14427               introspectable="0">
14428         <doc xml:whitespace="preserve">Sets the given fixatecaps function for the pad.  The fixatecaps function
14429 will be called whenever the default values for a GstCaps needs to be
14430 filled in.</doc>
14431         <return-value transfer-ownership="none">
14432           <type name="none" c:type="void"/>
14433         </return-value>
14434         <parameters>
14435           <parameter name="fixatecaps" transfer-ownership="none">
14436             <doc xml:whitespace="preserve">the #GstPadFixateCapsFunction to set.</doc>
14437             <type name="PadFixateCapsFunction"
14438                   c:type="GstPadFixateCapsFunction"/>
14439           </parameter>
14440         </parameters>
14441       </method>
14442       <method name="set_getcaps_function"
14443               c:identifier="gst_pad_set_getcaps_function"
14444               introspectable="0">
14445         <doc xml:whitespace="preserve">Sets the given getcaps function for the pad. @getcaps should return the
14446 allowable caps for a pad in the context of the element's state, its link to
14447 other elements, and the devices or files it has opened. These caps must be a
14448 subset of the pad template caps. In the NULL state with no links, @getcaps
14449 should ideally return the same caps as the pad template. In rare
14450 circumstances, an object property can affect the caps returned by @getcaps,
14451 but this is discouraged.
14452 You do not need to call this function if @pad's allowed caps are always the
14453 same as the pad template caps. This can only be true if the padtemplate
14454 has fixed simple caps.
14455 For most filters, the caps returned by @getcaps is directly affected by the
14456 allowed caps on other pads. For demuxers and decoders, the caps returned by
14457 the srcpad's getcaps function is directly related to the stream data. Again,
14458 helps with autoplugging.
14459 Note that the return value from @getcaps is owned by the caller, so the
14460 caller should unref the caps after usage.</doc>
14461         <return-value transfer-ownership="none">
14462           <type name="none" c:type="void"/>
14463         </return-value>
14464         <parameters>
14465           <parameter name="getcaps" transfer-ownership="none">
14466             <doc xml:whitespace="preserve">the #GstPadGetCapsFunction to set.</doc>
14467             <type name="PadGetCapsFunction" c:type="GstPadGetCapsFunction"/>
14468           </parameter>
14469         </parameters>
14470       </method>
14471       <method name="set_getrange_function"
14472               c:identifier="gst_pad_set_getrange_function"
14473               introspectable="0">
14474         <doc xml:whitespace="preserve">Sets the given getrange function for the pad. The getrange function is
14475 called to produce a new #GstBuffer to start the processing pipeline. see
14476 #GstPadGetRangeFunction for a description of the getrange function.</doc>
14477         <return-value transfer-ownership="none">
14478           <type name="none" c:type="void"/>
14479         </return-value>
14480         <parameters>
14481           <parameter name="get" transfer-ownership="none">
14482             <doc xml:whitespace="preserve">the #GstPadGetRangeFunction to set.</doc>
14483             <type name="PadGetRangeFunction" c:type="GstPadGetRangeFunction"/>
14484           </parameter>
14485         </parameters>
14486       </method>
14487       <method name="set_internal_link_function"
14488               c:identifier="gst_pad_set_internal_link_function"
14489               introspectable="0"
14490               deprecated="Use the thread-safe gst_pad_set_iterate_internal_links_function()">
14491         <doc xml:whitespace="preserve">Sets the given internal link function for the pad.</doc>
14492         <return-value transfer-ownership="none">
14493           <type name="none" c:type="void"/>
14494         </return-value>
14495         <parameters>
14496           <parameter name="intlink" transfer-ownership="none">
14497             <doc xml:whitespace="preserve">the #GstPadIntLinkFunction to set.</doc>
14498             <type name="PadIntLinkFunction" c:type="GstPadIntLinkFunction"/>
14499           </parameter>
14500         </parameters>
14501       </method>
14502       <method name="set_iterate_internal_links_function"
14503               c:identifier="gst_pad_set_iterate_internal_links_function"
14504               version="0.10.21"
14505               introspectable="0">
14506         <doc xml:whitespace="preserve">Sets the given internal link iterator function for the pad.</doc>
14507         <return-value transfer-ownership="none">
14508           <type name="none" c:type="void"/>
14509         </return-value>
14510         <parameters>
14511           <parameter name="iterintlink" transfer-ownership="none">
14512             <doc xml:whitespace="preserve">the #GstPadIterIntLinkFunction to set.</doc>
14513             <type name="PadIterIntLinkFunction"
14514                   c:type="GstPadIterIntLinkFunction"/>
14515           </parameter>
14516         </parameters>
14517       </method>
14518       <method name="set_link_function"
14519               c:identifier="gst_pad_set_link_function"
14520               introspectable="0">
14521         <doc xml:whitespace="preserve">Sets the given link function for the pad. It will be called when
14522 the pad is linked with another pad.
14523 The return value #GST_PAD_LINK_OK should be used when the connection can be
14524 made.
14525 The return value #GST_PAD_LINK_REFUSED should be used when the connection
14526 cannot be made for some reason.
14527 If @link is installed on a source pad, it should call the #GstPadLinkFunction
14528 of the peer sink pad, if present.</doc>
14529         <return-value transfer-ownership="none">
14530           <type name="none" c:type="void"/>
14531         </return-value>
14532         <parameters>
14533           <parameter name="link" transfer-ownership="none">
14534             <doc xml:whitespace="preserve">the #GstPadLinkFunction to set.</doc>
14535             <type name="PadLinkFunction" c:type="GstPadLinkFunction"/>
14536           </parameter>
14537         </parameters>
14538       </method>
14539       <method name="set_query_function"
14540               c:identifier="gst_pad_set_query_function"
14541               introspectable="0">
14542         <doc xml:whitespace="preserve">Set the given query function for the pad.</doc>
14543         <return-value transfer-ownership="none">
14544           <type name="none" c:type="void"/>
14545         </return-value>
14546         <parameters>
14547           <parameter name="query" transfer-ownership="none">
14548             <doc xml:whitespace="preserve">the #GstPadQueryFunction to set.</doc>
14549             <type name="PadQueryFunction" c:type="GstPadQueryFunction"/>
14550           </parameter>
14551         </parameters>
14552       </method>
14553       <method name="set_query_type_function"
14554               c:identifier="gst_pad_set_query_type_function"
14555               introspectable="0">
14556         <doc xml:whitespace="preserve">Set the given query type function for the pad.</doc>
14557         <return-value transfer-ownership="none">
14558           <type name="none" c:type="void"/>
14559         </return-value>
14560         <parameters>
14561           <parameter name="type_func" transfer-ownership="none">
14562             <doc xml:whitespace="preserve">the #GstPadQueryTypeFunction to set.</doc>
14563             <type name="PadQueryTypeFunction"
14564                   c:type="GstPadQueryTypeFunction"/>
14565           </parameter>
14566         </parameters>
14567       </method>
14568       <method name="set_setcaps_function"
14569               c:identifier="gst_pad_set_setcaps_function"
14570               introspectable="0">
14571         <doc xml:whitespace="preserve">Sets the given setcaps function for the pad.  The setcaps function
14572 will be called whenever a buffer with a new media type is pushed or
14573 pulled from the pad. The pad/element needs to update its internal
14574 structures to process the new media type. If this new type is not
14575 acceptable, the setcaps function should return FALSE.</doc>
14576         <return-value transfer-ownership="none">
14577           <type name="none" c:type="void"/>
14578         </return-value>
14579         <parameters>
14580           <parameter name="setcaps" transfer-ownership="none">
14581             <doc xml:whitespace="preserve">the #GstPadSetCapsFunction to set.</doc>
14582             <type name="PadSetCapsFunction" c:type="GstPadSetCapsFunction"/>
14583           </parameter>
14584         </parameters>
14585       </method>
14586       <method name="set_unlink_function"
14587               c:identifier="gst_pad_set_unlink_function"
14588               introspectable="0">
14589         <doc xml:whitespace="preserve">Sets the given unlink function for the pad. It will be called
14590 when the pad is unlinked.</doc>
14591         <return-value transfer-ownership="none">
14592           <type name="none" c:type="void"/>
14593         </return-value>
14594         <parameters>
14595           <parameter name="unlink" transfer-ownership="none">
14596             <doc xml:whitespace="preserve">the #GstPadUnlinkFunction to set.</doc>
14597             <type name="PadUnlinkFunction" c:type="GstPadUnlinkFunction"/>
14598           </parameter>
14599         </parameters>
14600       </method>
14601       <method name="start_task"
14602               c:identifier="gst_pad_start_task"
14603               introspectable="0">
14604         <doc xml:whitespace="preserve">Starts a task that repeatedly calls @func with @data. This function
14605 is mostly used in pad activation functions to start the dataflow.
14606 The #GST_PAD_STREAM_LOCK of @pad will automatically be acquired
14607 before @func is called.</doc>
14608         <return-value transfer-ownership="none">
14609           <doc xml:whitespace="preserve">a %TRUE if the task could be started.</doc>
14610           <type name="gboolean" c:type="gboolean"/>
14611         </return-value>
14612         <parameters>
14613           <parameter name="func" transfer-ownership="none" closure="1">
14614             <doc xml:whitespace="preserve">the task function to call</doc>
14615             <type name="TaskFunction" c:type="GstTaskFunction"/>
14616           </parameter>
14617           <parameter name="data" transfer-ownership="none">
14618             <doc xml:whitespace="preserve">data passed to the task function</doc>
14619             <type name="gpointer" c:type="gpointer"/>
14620           </parameter>
14621         </parameters>
14622       </method>
14623       <method name="stop_task" c:identifier="gst_pad_stop_task">
14624         <doc xml:whitespace="preserve">Stop the task of @pad. This function will also make sure that the
14625 function executed by the task will effectively stop if not called
14626 from the GstTaskFunction.
14627 This function will deadlock if called from the GstTaskFunction of
14628 the task. Use gst_task_pause() instead.
14629 Regardless of whether the pad has a task, the stream lock is acquired and
14630 released so as to ensure that streaming through this pad has finished.</doc>
14631         <return-value transfer-ownership="none">
14632           <doc xml:whitespace="preserve">a TRUE if the task could be stopped or FALSE on error.</doc>
14633           <type name="gboolean" c:type="gboolean"/>
14634         </return-value>
14635       </method>
14636       <method name="unlink" c:identifier="gst_pad_unlink">
14637         <doc xml:whitespace="preserve">Unlinks the source pad from the sink pad. Will emit the #GstPad::unlinked
14638 signal on both pads.
14639 the pads were not linked together.
14640 MT safe.</doc>
14641         <return-value transfer-ownership="none">
14642           <doc xml:whitespace="preserve">TRUE if the pads were unlinked. This function returns FALSE if</doc>
14643           <type name="gboolean" c:type="gboolean"/>
14644         </return-value>
14645         <parameters>
14646           <parameter name="sinkpad" transfer-ownership="none">
14647             <doc xml:whitespace="preserve">the sink #GstPad to unlink.</doc>
14648             <type name="Pad" c:type="GstPad*"/>
14649           </parameter>
14650         </parameters>
14651       </method>
14652       <method name="use_fixed_caps" c:identifier="gst_pad_use_fixed_caps">
14653         <doc xml:whitespace="preserve">A helper function you can use that sets the
14654 pad. This way the function will always return the negotiated caps
14655 or in case the pad is not negotiated, the padtemplate caps.
14656 Use this function on a pad that, once gst_pad_set_caps() has been called
14657 on it, cannot be renegotiated to something else.</doc>
14658         <return-value transfer-ownership="none">
14659           <type name="none" c:type="void"/>
14660         </return-value>
14661       </method>
14662       <property name="caps" transfer-ownership="none">
14663         <type name="Caps"/>
14664       </property>
14665       <property name="direction"
14666                 introspectable="0"
14667                 writable="1"
14668                 construct-only="1"
14669                 transfer-ownership="none">
14670         <type/>
14671       </property>
14672       <property name="template" writable="1" transfer-ownership="none">
14673         <type name="PadTemplate"/>
14674       </property>
14675       <field name="object">
14676         <type name="Object" c:type="GstObject"/>
14677       </field>
14678       <field name="element_private">
14679         <type name="gpointer" c:type="gpointer"/>
14680       </field>
14681       <field name="padtemplate">
14682         <type name="PadTemplate" c:type="GstPadTemplate*"/>
14683       </field>
14684       <field name="direction">
14685         <type name="PadDirection" c:type="GstPadDirection"/>
14686       </field>
14687       <field name="stream_rec_lock">
14688         <type name="GLib.StaticRecMutex" c:type="GStaticRecMutex*"/>
14689       </field>
14690       <field name="task">
14691         <type name="Task" c:type="GstTask*"/>
14692       </field>
14693       <field name="preroll_lock">
14694         <type name="GLib.Mutex" c:type="GMutex*"/>
14695       </field>
14696       <field name="preroll_cond">
14697         <type name="GLib.Cond" c:type="GCond*"/>
14698       </field>
14699       <field name="block_cond">
14700         <type name="GLib.Cond" c:type="GCond*"/>
14701       </field>
14702       <field name="block_callback">
14703         <type name="PadBlockCallback" c:type="GstPadBlockCallback"/>
14704       </field>
14705       <field name="block_data">
14706         <type name="gpointer" c:type="gpointer"/>
14707       </field>
14708       <field name="caps">
14709         <type name="Caps" c:type="GstCaps*"/>
14710       </field>
14711       <field name="getcapsfunc">
14712         <type name="PadGetCapsFunction" c:type="GstPadGetCapsFunction"/>
14713       </field>
14714       <field name="setcapsfunc">
14715         <type name="PadSetCapsFunction" c:type="GstPadSetCapsFunction"/>
14716       </field>
14717       <field name="acceptcapsfunc">
14718         <type name="PadAcceptCapsFunction" c:type="GstPadAcceptCapsFunction"/>
14719       </field>
14720       <field name="fixatecapsfunc">
14721         <type name="PadFixateCapsFunction" c:type="GstPadFixateCapsFunction"/>
14722       </field>
14723       <field name="activatefunc">
14724         <type name="PadActivateFunction" c:type="GstPadActivateFunction"/>
14725       </field>
14726       <field name="activatepushfunc">
14727         <type name="PadActivateModeFunction"
14728               c:type="GstPadActivateModeFunction"/>
14729       </field>
14730       <field name="activatepullfunc">
14731         <type name="PadActivateModeFunction"
14732               c:type="GstPadActivateModeFunction"/>
14733       </field>
14734       <field name="linkfunc">
14735         <type name="PadLinkFunction" c:type="GstPadLinkFunction"/>
14736       </field>
14737       <field name="unlinkfunc">
14738         <type name="PadUnlinkFunction" c:type="GstPadUnlinkFunction"/>
14739       </field>
14740       <field name="peer">
14741         <type name="Pad" c:type="GstPad*"/>
14742       </field>
14743       <field name="sched_private">
14744         <type name="gpointer" c:type="gpointer"/>
14745       </field>
14746       <field name="chainfunc">
14747         <type name="PadChainFunction" c:type="GstPadChainFunction"/>
14748       </field>
14749       <field name="checkgetrangefunc">
14750         <type name="PadCheckGetRangeFunction"
14751               c:type="GstPadCheckGetRangeFunction"/>
14752       </field>
14753       <field name="getrangefunc">
14754         <type name="PadGetRangeFunction" c:type="GstPadGetRangeFunction"/>
14755       </field>
14756       <field name="eventfunc">
14757         <type name="PadEventFunction" c:type="GstPadEventFunction"/>
14758       </field>
14759       <field name="mode">
14760         <type name="ActivateMode" c:type="GstActivateMode"/>
14761       </field>
14762       <field name="querytypefunc">
14763         <type name="PadQueryTypeFunction" c:type="GstPadQueryTypeFunction"/>
14764       </field>
14765       <field name="queryfunc">
14766         <type name="PadQueryFunction" c:type="GstPadQueryFunction"/>
14767       </field>
14768       <field name="intlinkfunc">
14769         <type name="PadIntLinkFunction" c:type="GstPadIntLinkFunction"/>
14770       </field>
14771       <field name="bufferallocfunc">
14772         <type name="PadBufferAllocFunction"
14773               c:type="GstPadBufferAllocFunction"/>
14774       </field>
14775       <field name="do_buffer_signals">
14776         <type name="gint" c:type="gint"/>
14777       </field>
14778       <field name="do_event_signals">
14779         <type name="gint" c:type="gint"/>
14780       </field>
14781       <field name="iterintlinkfunc" introspectable="0">
14782         <type name="PadIterIntLinkFunction"
14783               c:type="GstPadIterIntLinkFunction"/>
14784       </field>
14785       <field name="block_destroy_data">
14786         <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
14787       </field>
14788       <union name="abidata" c:type="abidata">
14789         <record name="ABI" c:type="ABI">
14790           <field name="block_callback_called" writable="1">
14791             <type name="gboolean" c:type="gboolean"/>
14792           </field>
14793           <field name="priv" writable="1">
14794             <type name="PadPrivate" c:type="GstPadPrivate*"/>
14795           </field>
14796         </record>
14797         <field name="_gst_reserved" writable="1">
14798           <array zero-terminated="0" c:type="gpointer" fixed-size="2">
14799             <type name="gpointer" c:type="gpointer"/>
14800           </array>
14801         </field>
14802       </union>
14803       <glib:signal name="have-data">
14804         <doc xml:whitespace="preserve">Signals that new data is available on the pad. This signal is used
14805 internally for implementing pad probes.
14806 See gst_pad_add_*_probe functions.</doc>
14807         <return-value transfer-ownership="none">
14808           <doc xml:whitespace="preserve">%TRUE to keep the data, %FALSE to drop it</doc>
14809           <type name="gboolean"/>
14810         </return-value>
14811         <parameters>
14812           <parameter name="mini_obj" transfer-ownership="none">
14813             <doc xml:whitespace="preserve">new data</doc>
14814             <type name="MiniObject"/>
14815           </parameter>
14816         </parameters>
14817       </glib:signal>
14818       <glib:signal name="linked">
14819         <doc xml:whitespace="preserve">Signals that a pad has been linked to the peer pad.</doc>
14820         <return-value transfer-ownership="none">
14821           <type name="none"/>
14822         </return-value>
14823         <parameters>
14824           <parameter name="peer" transfer-ownership="none">
14825             <doc xml:whitespace="preserve">the peer pad that has been connected</doc>
14826             <type name="Pad"/>
14827           </parameter>
14828         </parameters>
14829       </glib:signal>
14830       <glib:signal name="request-link">
14831         <doc xml:whitespace="preserve">Signals that a pad connection has been requested.</doc>
14832         <return-value transfer-ownership="none">
14833           <type name="none"/>
14834         </return-value>
14835       </glib:signal>
14836       <glib:signal name="unlinked">
14837         <doc xml:whitespace="preserve">Signals that a pad has been unlinked from the peer pad.</doc>
14838         <return-value transfer-ownership="none">
14839           <type name="none"/>
14840         </return-value>
14841         <parameters>
14842           <parameter name="peer" transfer-ownership="none">
14843             <doc xml:whitespace="preserve">the peer pad that has been disconnected</doc>
14844             <type name="Pad"/>
14845           </parameter>
14846         </parameters>
14847       </glib:signal>
14848     </class>
14849     <callback name="PadAcceptCapsFunction" c:type="GstPadAcceptCapsFunction">
14850       <doc xml:whitespace="preserve">Check if @pad can accept @caps. By default this function will see if @caps
14851 intersect with the result from gst_pad_get_caps() by can be overridden to
14852 perform extra checks.</doc>
14853       <return-value transfer-ownership="none">
14854         <doc xml:whitespace="preserve">TRUE if the caps can be accepted by the pad.</doc>
14855         <type name="gboolean" c:type="gboolean"/>
14856       </return-value>
14857       <parameters>
14858         <parameter name="pad" transfer-ownership="none">
14859           <doc xml:whitespace="preserve">the #GstPad to check</doc>
14860           <type name="Pad" c:type="GstPad*"/>
14861         </parameter>
14862         <parameter name="caps" transfer-ownership="none">
14863           <doc xml:whitespace="preserve">the #GstCaps to check</doc>
14864           <type name="Caps" c:type="GstCaps*"/>
14865         </parameter>
14866       </parameters>
14867     </callback>
14868     <callback name="PadActivateFunction" c:type="GstPadActivateFunction">
14869       <doc xml:whitespace="preserve">This function is called when the pad is activated during the element
14870 READY to PAUSED state change. By default this function will call the
14871 activate function that puts the pad in push mode but elements can
14872 override this function to activate the pad in pull mode if they wish.</doc>
14873       <return-value transfer-ownership="none">
14874         <doc xml:whitespace="preserve">TRUE if the pad could be activated.</doc>
14875         <type name="gboolean" c:type="gboolean"/>
14876       </return-value>
14877       <parameters>
14878         <parameter name="pad" transfer-ownership="none">
14879           <doc xml:whitespace="preserve">a #GstPad</doc>
14880           <type name="Pad" c:type="GstPad*"/>
14881         </parameter>
14882       </parameters>
14883     </callback>
14884     <callback name="PadActivateModeFunction"
14885               c:type="GstPadActivateModeFunction">
14886       <doc xml:whitespace="preserve">The prototype of the push and pull activate functions.</doc>
14887       <return-value transfer-ownership="none">
14888         <doc xml:whitespace="preserve">TRUE if the pad could be activated or deactivated.</doc>
14889         <type name="gboolean" c:type="gboolean"/>
14890       </return-value>
14891       <parameters>
14892         <parameter name="pad" transfer-ownership="none">
14893           <doc xml:whitespace="preserve">a #GstPad</doc>
14894           <type name="Pad" c:type="GstPad*"/>
14895         </parameter>
14896         <parameter name="active" transfer-ownership="none">
14897           <doc xml:whitespace="preserve">activate or deactivate the pad.</doc>
14898           <type name="gboolean" c:type="gboolean"/>
14899         </parameter>
14900       </parameters>
14901     </callback>
14902     <callback name="PadBlockCallback" c:type="GstPadBlockCallback">
14903       <doc xml:whitespace="preserve">Callback used by gst_pad_set_blocked_async(). Gets called when the blocking
14904 operation succeeds.</doc>
14905       <return-value transfer-ownership="none">
14906         <type name="none" c:type="void"/>
14907       </return-value>
14908       <parameters>
14909         <parameter name="pad" transfer-ownership="none">
14910           <doc xml:whitespace="preserve">the #GstPad that is blockend or unblocked.</doc>
14911           <type name="Pad" c:type="GstPad*"/>
14912         </parameter>
14913         <parameter name="blocked" transfer-ownership="none">
14914           <doc xml:whitespace="preserve">blocking state for the pad</doc>
14915           <type name="gboolean" c:type="gboolean"/>
14916         </parameter>
14917         <parameter name="user_data" transfer-ownership="none" closure="2">
14918           <doc xml:whitespace="preserve">the gpointer to optional user data.</doc>
14919           <type name="gpointer" c:type="gpointer"/>
14920         </parameter>
14921       </parameters>
14922     </callback>
14923     <callback name="PadBufferAllocFunction" c:type="GstPadBufferAllocFunction">
14924       <doc xml:whitespace="preserve">Ask the sinkpad @pad to allocate a buffer with @offset, @size and @caps.
14925 The result will be stored in @buf.
14926 The purpose of this function is to allocate a buffer that is optimal to
14927 be processed by @pad. The function is mostly overridden by elements that can
14928 provide a hardware buffer in order to avoid additional memcpy operations.
14929 The function can return a buffer that has caps different from the requested
14930 new caps.
14931 If a format change was requested, the returned buffer will be one to hold
14932 the data of said new caps, so its size might be different from the requested
14933 When this function returns anything else than #GST_FLOW_OK, the buffer allocation
14934 failed and @buf does not contain valid data. If the function returns #GST_FLOW_OK and
14935 the @buf is NULL, a #GstBuffer will be created with @caps, @offset and @size.
14936 By default this function returns a new buffer of @size and with @caps containing
14937 purely malloced data. The buffer should be freed with gst_buffer_unref()
14938 after usage.
14939 value means @buf does not hold a valid buffer.</doc>
14940       <return-value transfer-ownership="none">
14941         <doc xml:whitespace="preserve">#GST_FLOW_OK if @buf contains a valid buffer, any other return</doc>
14942         <type name="FlowReturn" c:type="GstFlowReturn"/>
14943       </return-value>
14944       <parameters>
14945         <parameter name="pad" transfer-ownership="none">
14946           <doc xml:whitespace="preserve">a sink #GstPad</doc>
14947           <type name="Pad" c:type="GstPad*"/>
14948         </parameter>
14949         <parameter name="offset" transfer-ownership="none">
14950           <doc xml:whitespace="preserve">the desired offset of the buffer</doc>
14951           <type name="guint64" c:type="guint64"/>
14952         </parameter>
14953         <parameter name="size" transfer-ownership="none">
14954           <doc xml:whitespace="preserve">the desired size of the buffer</doc>
14955           <type name="guint" c:type="guint"/>
14956         </parameter>
14957         <parameter name="caps" transfer-ownership="none">
14958           <doc xml:whitespace="preserve">the desired caps of the buffer</doc>
14959           <type name="Caps" c:type="GstCaps*"/>
14960         </parameter>
14961         <parameter name="buf" transfer-ownership="none">
14962           <doc xml:whitespace="preserve">pointer to hold the allocated buffer.</doc>
14963           <type name="Buffer" c:type="GstBuffer**"/>
14964         </parameter>
14965       </parameters>
14966     </callback>
14967     <callback name="PadChainFunction" c:type="GstPadChainFunction">
14968       <doc xml:whitespace="preserve">A function that will be called on sinkpads when chaining buffers.
14969 The function typically processes the data contained in the buffer and
14970 either consumes the data or passes it on to the internally linked pad(s).
14971 The implementer of this function receives a refcount to @buffer and should
14972 gst_buffer_unref() when the buffer is no longer needed.
14973 When a chain function detects an error in the data stream, it must post an
14974 error on the bus and return an appropriate #GstFlowReturn value.</doc>
14975       <return-value transfer-ownership="none">
14976         <doc xml:whitespace="preserve">#GST_FLOW_OK for success</doc>
14977         <type name="FlowReturn" c:type="GstFlowReturn"/>
14978       </return-value>
14979       <parameters>
14980         <parameter name="pad" transfer-ownership="none">
14981           <doc xml:whitespace="preserve">the sink #GstPad that performed the chain.</doc>
14982           <type name="Pad" c:type="GstPad*"/>
14983         </parameter>
14984         <parameter name="buffer" transfer-ownership="none">
14985           <doc xml:whitespace="preserve">the #GstBuffer that is chained, not %NULL.</doc>
14986           <type name="Buffer" c:type="GstBuffer*"/>
14987         </parameter>
14988       </parameters>
14989     </callback>
14990     <callback name="PadChainListFunction" c:type="GstPadChainListFunction">
14991       <doc xml:whitespace="preserve">A function that will be called on sinkpads when chaining buffer lists.
14992 The function typically processes the data contained in the buffer list and
14993 either consumes the data or passes it on to the internally linked pad(s).
14994 The implementer of this function receives a refcount to @list and
14995 should gst_buffer_list_unref() when the list is no longer needed.
14996 When a chainlist function detects an error in the data stream, it must
14997 post an error on the bus and return an appropriate #GstFlowReturn value.</doc>
14998       <return-value transfer-ownership="none">
14999         <doc xml:whitespace="preserve">#GST_FLOW_OK for success</doc>
15000         <type name="FlowReturn" c:type="GstFlowReturn"/>
15001       </return-value>
15002       <parameters>
15003         <parameter name="pad" transfer-ownership="none">
15004           <doc xml:whitespace="preserve">the sink #GstPad that performed the chain.</doc>
15005           <type name="Pad" c:type="GstPad*"/>
15006         </parameter>
15007         <parameter name="list" transfer-ownership="none">
15008           <doc xml:whitespace="preserve">the #GstBufferList that is chained, not %NULL.</doc>
15009           <type name="BufferList" c:type="GstBufferList*"/>
15010         </parameter>
15011       </parameters>
15012     </callback>
15013     <callback name="PadCheckGetRangeFunction"
15014               c:type="GstPadCheckGetRangeFunction">
15015       <doc xml:whitespace="preserve">Check if @pad can be activated in pull mode.
15016 This function will be deprecated after 0.10; use the seeking query to check
15017 if a pad can support random access.</doc>
15018       <return-value transfer-ownership="none">
15019         <doc xml:whitespace="preserve">TRUE if the pad can operate in pull mode.</doc>
15020         <type name="gboolean" c:type="gboolean"/>
15021       </return-value>
15022       <parameters>
15023         <parameter name="pad" transfer-ownership="none">
15024           <doc xml:whitespace="preserve">a #GstPad</doc>
15025           <type name="Pad" c:type="GstPad*"/>
15026         </parameter>
15027       </parameters>
15028     </callback>
15029     <record name="PadClass"
15030             c:type="GstPadClass"
15031             glib:is-gtype-struct-for="Pad">
15032       <field name="parent_class">
15033         <type name="ObjectClass" c:type="GstObjectClass"/>
15034       </field>
15035       <field name="linked">
15036         <callback name="linked">
15037           <return-value transfer-ownership="none">
15038             <type name="none" c:type="void"/>
15039           </return-value>
15040           <parameters>
15041             <parameter name="pad" transfer-ownership="none">
15042               <type name="Pad" c:type="GstPad*"/>
15043             </parameter>
15044             <parameter name="peer" transfer-ownership="none">
15045               <type name="Pad" c:type="GstPad*"/>
15046             </parameter>
15047           </parameters>
15048         </callback>
15049       </field>
15050       <field name="unlinked">
15051         <callback name="unlinked">
15052           <return-value transfer-ownership="none">
15053             <type name="none" c:type="void"/>
15054           </return-value>
15055           <parameters>
15056             <parameter name="pad" transfer-ownership="none">
15057               <type name="Pad" c:type="GstPad*"/>
15058             </parameter>
15059             <parameter name="peer" transfer-ownership="none">
15060               <type name="Pad" c:type="GstPad*"/>
15061             </parameter>
15062           </parameters>
15063         </callback>
15064       </field>
15065       <field name="request_link">
15066         <callback name="request_link">
15067           <return-value transfer-ownership="none">
15068             <type name="none" c:type="void"/>
15069           </return-value>
15070           <parameters>
15071             <parameter name="pad" transfer-ownership="none">
15072               <type name="Pad" c:type="GstPad*"/>
15073             </parameter>
15074           </parameters>
15075         </callback>
15076       </field>
15077       <field name="have_data">
15078         <callback name="have_data">
15079           <return-value transfer-ownership="none">
15080             <type name="gboolean" c:type="gboolean"/>
15081           </return-value>
15082           <parameters>
15083             <parameter name="pad" transfer-ownership="none">
15084               <type name="Pad" c:type="GstPad*"/>
15085             </parameter>
15086             <parameter name="data" transfer-ownership="none">
15087               <type name="MiniObject" c:type="GstMiniObject*"/>
15088             </parameter>
15089           </parameters>
15090         </callback>
15091       </field>
15092       <field name="_gst_reserved" readable="0" private="1">
15093         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
15094           <type name="gpointer" c:type="gpointer"/>
15095         </array>
15096       </field>
15097     </record>
15098     <enumeration name="PadDirection" c:type="GstPadDirection">
15099       <doc xml:whitespace="preserve">The direction of a pad.</doc>
15100       <member name="unknown" value="0" c:identifier="GST_PAD_UNKNOWN"/>
15101       <member name="src" value="1" c:identifier="GST_PAD_SRC"/>
15102       <member name="sink" value="2" c:identifier="GST_PAD_SINK"/>
15103     </enumeration>
15104     <callback name="PadDispatcherFunction" c:type="GstPadDispatcherFunction">
15105       <doc xml:whitespace="preserve">A dispatcher function is called for all internally linked pads, see
15106 gst_pad_dispatcher().</doc>
15107       <return-value transfer-ownership="none">
15108         <doc xml:whitespace="preserve">TRUE if the dispatching procedure has to be stopped.</doc>
15109         <type name="gboolean" c:type="gboolean"/>
15110       </return-value>
15111       <parameters>
15112         <parameter name="pad" transfer-ownership="none">
15113           <doc xml:whitespace="preserve">the #GstPad that is dispatched.</doc>
15114           <type name="Pad" c:type="GstPad*"/>
15115         </parameter>
15116         <parameter name="data" transfer-ownership="none">
15117           <doc xml:whitespace="preserve">the gpointer to optional user data.</doc>
15118           <type name="gpointer" c:type="gpointer"/>
15119         </parameter>
15120       </parameters>
15121     </callback>
15122     <callback name="PadEventFunction" c:type="GstPadEventFunction">
15123       <doc xml:whitespace="preserve">Function signature to handle an event for the pad.</doc>
15124       <return-value transfer-ownership="none">
15125         <doc xml:whitespace="preserve">TRUE if the pad could handle the event.</doc>
15126         <type name="gboolean" c:type="gboolean"/>
15127       </return-value>
15128       <parameters>
15129         <parameter name="pad" transfer-ownership="none">
15130           <doc xml:whitespace="preserve">the #GstPad to handle the event.</doc>
15131           <type name="Pad" c:type="GstPad*"/>
15132         </parameter>
15133         <parameter name="event" transfer-ownership="none">
15134           <doc xml:whitespace="preserve">the #GstEvent to handle.</doc>
15135           <type name="Event" c:type="GstEvent*"/>
15136         </parameter>
15137       </parameters>
15138     </callback>
15139     <callback name="PadFixateCapsFunction" c:type="GstPadFixateCapsFunction">
15140       <doc xml:whitespace="preserve">Given possibly unfixed caps @caps, let @pad use its default prefered
15141 format to make a fixed caps. @caps should be writable. By default this
15142 function will pick the first value of any ranges or lists in the caps but
15143 elements can override this function to perform other behaviour.</doc>
15144       <return-value transfer-ownership="none">
15145         <type name="none" c:type="void"/>
15146       </return-value>
15147       <parameters>
15148         <parameter name="pad" transfer-ownership="none">
15149           <doc xml:whitespace="preserve">a #GstPad</doc>
15150           <type name="Pad" c:type="GstPad*"/>
15151         </parameter>
15152         <parameter name="caps" transfer-ownership="none">
15153           <doc xml:whitespace="preserve">the #GstCaps to fixate</doc>
15154           <type name="Caps" c:type="GstCaps*"/>
15155         </parameter>
15156       </parameters>
15157     </callback>
15158     <bitfield name="PadFlags" c:type="GstPadFlags">
15159       <doc xml:whitespace="preserve">Pad state flags</doc>
15160       <member name="blocked" value="16" c:identifier="GST_PAD_BLOCKED"/>
15161       <member name="flushing" value="32" c:identifier="GST_PAD_FLUSHING"/>
15162       <member name="in_getcaps" value="64" c:identifier="GST_PAD_IN_GETCAPS"/>
15163       <member name="in_setcaps" value="128" c:identifier="GST_PAD_IN_SETCAPS"/>
15164       <member name="blocking" value="256" c:identifier="GST_PAD_BLOCKING"/>
15165       <member name="flag_last" value="4096" c:identifier="GST_PAD_FLAG_LAST"/>
15166     </bitfield>
15167     <callback name="PadGetCapsFunction" c:type="GstPadGetCapsFunction">
15168       <doc xml:whitespace="preserve">Returns a copy of the capabilities of the specified pad. By default this
15169 function will return the pad template capabilities, but can optionally
15170 be overridden by elements.</doc>
15171       <return-value transfer-ownership="full">
15172         <doc xml:whitespace="preserve">a newly allocated copy #GstCaps of the pad.</doc>
15173         <type name="Caps" c:type="GstCaps*"/>
15174       </return-value>
15175       <parameters>
15176         <parameter name="pad" transfer-ownership="none">
15177           <doc xml:whitespace="preserve">the #GstPad to get the capabilities of.</doc>
15178           <type name="Pad" c:type="GstPad*"/>
15179         </parameter>
15180       </parameters>
15181     </callback>
15182     <callback name="PadGetRangeFunction" c:type="GstPadGetRangeFunction">
15183       <doc xml:whitespace="preserve">This function will be called on source pads when a peer element
15184 request a buffer at the specified @offset and @length. If this function
15185 returns #GST_FLOW_OK, the result buffer will be stored in @buffer. The
15186 contents of @buffer is invalid for any other return value.
15187 This function is installed on a source pad with
15188 gst_pad_set_getrange_function() and can only be called on source pads after
15189 they are successfully activated with gst_pad_activate_pull().
15190 between 0 and the length in bytes of the data available on @pad. The
15191 length (duration in bytes) can be retrieved with a #GST_QUERY_DURATION or with a
15192 #GST_QUERY_SEEKING.
15193 Any @offset larger or equal than the length will make the function return
15194 #GST_FLOW_UNEXPECTED, which corresponds to EOS. In this case @buffer does not
15195 contain a valid buffer.
15196 The buffer size of @buffer will only be smaller than @length when @offset is
15197 near the end of the stream. In all other cases, the size of @buffer must be
15198 exactly the requested size.
15199 It is allowed to call this function with a 0 @length and valid @offset, in
15200 which case @buffer will contain a 0-sized buffer and the function returns
15201 #GST_FLOW_OK.
15202 When this function is called with a -1 @offset, the sequentially next buffer
15203 of length @length in the stream is returned.
15204 When this function is called with a -1 @length, a buffer with a default
15205 optimal length is returned in @buffer. The length might depend on the value
15206 of @offset.
15207 return value leaves @buffer undefined.</doc>
15208       <return-value transfer-ownership="none">
15209         <doc xml:whitespace="preserve">#GST_FLOW_OK for success and a valid buffer in @buffer. Any other</doc>
15210         <type name="FlowReturn" c:type="GstFlowReturn"/>
15211       </return-value>
15212       <parameters>
15213         <parameter name="pad" transfer-ownership="none">
15214           <doc xml:whitespace="preserve">the src #GstPad to perform the getrange on.</doc>
15215           <type name="Pad" c:type="GstPad*"/>
15216         </parameter>
15217         <parameter name="offset" transfer-ownership="none">
15218           <doc xml:whitespace="preserve">the offset of the range</doc>
15219           <type name="guint64" c:type="guint64"/>
15220         </parameter>
15221         <parameter name="length" transfer-ownership="none">
15222           <doc xml:whitespace="preserve">the length of the range</doc>
15223           <type name="guint" c:type="guint"/>
15224         </parameter>
15225         <parameter name="buffer" transfer-ownership="none">
15226           <doc xml:whitespace="preserve">a memory location to hold the result buffer, cannot be NULL.</doc>
15227           <type name="Buffer" c:type="GstBuffer**"/>
15228         </parameter>
15229       </parameters>
15230     </callback>
15231     <callback name="PadIntLinkFunction"
15232               c:type="GstPadIntLinkFunction"
15233               deprecated="use the threadsafe #GstPadIterIntLinkFunction instead.">
15234       <doc xml:whitespace="preserve">The signature of the internal pad link function.
15235 the inside of the parent element.
15236 The caller must call g_list_free() on it after use.</doc>
15237       <return-value transfer-ownership="container">
15238         <doc xml:whitespace="preserve">a newly allocated #GList of pads that are linked to the given pad on</doc>
15239         <type name="GLib.List" c:type="GList*">
15240           <type name="Pad"/>
15241         </type>
15242       </return-value>
15243       <parameters>
15244         <parameter name="pad" transfer-ownership="none">
15245           <doc xml:whitespace="preserve">The #GstPad to query.</doc>
15246           <type name="Pad" c:type="GstPad*"/>
15247         </parameter>
15248       </parameters>
15249     </callback>
15250     <callback name="PadIterIntLinkFunction"
15251               c:type="GstPadIterIntLinkFunction"
15252               introspectable="0">
15253       <doc xml:whitespace="preserve">The signature of the internal pad link iterator function.
15254 linked to the given pad on the inside of the parent element.
15255 the caller must call gst_iterator_free() after usage.
15256 Since 0.10.21</doc>
15257       <return-value>
15258         <doc xml:whitespace="preserve">a new #GstIterator that will iterate over all pads that are</doc>
15259         <type name="Iterator" c:type="GstIterator*"/>
15260       </return-value>
15261       <parameters>
15262         <parameter name="pad" transfer-ownership="none">
15263           <doc xml:whitespace="preserve">The #GstPad to query.</doc>
15264           <type name="Pad" c:type="GstPad*"/>
15265         </parameter>
15266       </parameters>
15267     </callback>
15268     <bitfield name="PadLinkCheck" version="0.10.30" c:type="GstPadLinkCheck">
15269       <doc xml:whitespace="preserve">The amount of checking to be done when linking pads. @GST_PAD_LINK_CHECK_CAPS
15270 and @GST_PAD_LINK_CHECK_TEMPLATE_CAPS are mutually exclusive. If both are
15271 specified, expensive but safe @GST_PAD_LINK_CHECK_CAPS are performed.
15272 &lt;warning&gt;&lt;para&gt;
15273 Only disable some of the checks if you are 100% certain you know the link
15274 will not fail because of hierarchy/caps compatibility failures. If uncertain,
15275 use the default checks (%GST_PAD_LINK_CHECK_DEFAULT) or the regular methods
15276 for linking the pads.
15277 &lt;/para&gt;&lt;/warning&gt;</doc>
15278       <member name="nothing"
15279               value="0"
15280               c:identifier="GST_PAD_LINK_CHECK_NOTHING"/>
15281       <member name="hierarchy"
15282               value="1"
15283               c:identifier="GST_PAD_LINK_CHECK_HIERARCHY"/>
15284       <member name="template_caps"
15285               value="2"
15286               c:identifier="GST_PAD_LINK_CHECK_TEMPLATE_CAPS"/>
15287       <member name="caps" value="4" c:identifier="GST_PAD_LINK_CHECK_CAPS"/>
15288     </bitfield>
15289     <callback name="PadLinkFunction" c:type="GstPadLinkFunction">
15290       <doc xml:whitespace="preserve">Function signature to handle a new link on the pad.</doc>
15291       <return-value transfer-ownership="none">
15292         <doc xml:whitespace="preserve">the result of the link with the specified peer.</doc>
15293         <type name="PadLinkReturn" c:type="GstPadLinkReturn"/>
15294       </return-value>
15295       <parameters>
15296         <parameter name="pad" transfer-ownership="none">
15297           <doc xml:whitespace="preserve">the #GstPad that is linked.</doc>
15298           <type name="Pad" c:type="GstPad*"/>
15299         </parameter>
15300         <parameter name="peer" transfer-ownership="none">
15301           <doc xml:whitespace="preserve">the peer #GstPad of the link</doc>
15302           <type name="Pad" c:type="GstPad*"/>
15303         </parameter>
15304       </parameters>
15305     </callback>
15306     <enumeration name="PadLinkReturn" c:type="GstPadLinkReturn">
15307       <doc xml:whitespace="preserve">Result values from gst_pad_link and friends.</doc>
15308       <member name="ok" value="0" c:identifier="GST_PAD_LINK_OK"/>
15309       <member name="wrong_hierarchy"
15310               value="-1"
15311               c:identifier="GST_PAD_LINK_WRONG_HIERARCHY"/>
15312       <member name="was_linked"
15313               value="-2"
15314               c:identifier="GST_PAD_LINK_WAS_LINKED"/>
15315       <member name="wrong_direction"
15316               value="-3"
15317               c:identifier="GST_PAD_LINK_WRONG_DIRECTION"/>
15318       <member name="noformat" value="-4" c:identifier="GST_PAD_LINK_NOFORMAT"/>
15319       <member name="nosched" value="-5" c:identifier="GST_PAD_LINK_NOSCHED"/>
15320       <member name="refused" value="-6" c:identifier="GST_PAD_LINK_REFUSED"/>
15321     </enumeration>
15322     <enumeration name="PadPresence" c:type="GstPadPresence">
15323       <doc xml:whitespace="preserve">Indicates when this pad will become available.</doc>
15324       <member name="always" value="0" c:identifier="GST_PAD_ALWAYS"/>
15325       <member name="sometimes" value="1" c:identifier="GST_PAD_SOMETIMES"/>
15326       <member name="request" value="2" c:identifier="GST_PAD_REQUEST"/>
15327     </enumeration>
15328     <record name="PadPrivate" c:type="GstPadPrivate" disguised="1">
15329     </record>
15330     <callback name="PadQueryFunction" c:type="GstPadQueryFunction">
15331       <doc xml:whitespace="preserve">The signature of the query function.</doc>
15332       <return-value transfer-ownership="none">
15333         <doc xml:whitespace="preserve">TRUE if the query could be performed.</doc>
15334         <type name="gboolean" c:type="gboolean"/>
15335       </return-value>
15336       <parameters>
15337         <parameter name="pad" transfer-ownership="none">
15338           <doc xml:whitespace="preserve">the #GstPad to query.</doc>
15339           <type name="Pad" c:type="GstPad*"/>
15340         </parameter>
15341         <parameter name="query" transfer-ownership="none">
15342           <doc xml:whitespace="preserve">the #GstQuery object to execute</doc>
15343           <type name="Query" c:type="GstQuery*"/>
15344         </parameter>
15345       </parameters>
15346     </callback>
15347     <callback name="PadQueryTypeFunction" c:type="GstPadQueryTypeFunction">
15348       <doc xml:whitespace="preserve">The signature of the query types function.</doc>
15349       <return-value transfer-ownership="none">
15350         <doc xml:whitespace="preserve">a constant array of query types</doc>
15351         <type name="QueryType" c:type="GstQueryType*"/>
15352       </return-value>
15353       <parameters>
15354         <parameter name="pad" transfer-ownership="none">
15355           <doc xml:whitespace="preserve">a #GstPad to query</doc>
15356           <type name="Pad" c:type="GstPad*"/>
15357         </parameter>
15358       </parameters>
15359     </callback>
15360     <callback name="PadSetCapsFunction" c:type="GstPadSetCapsFunction">
15361       <doc xml:whitespace="preserve">Set @caps on @pad. By default this function updates the caps of the
15362 pad but the function can be overriden by elements to perform extra
15363 actions or verifications.</doc>
15364       <return-value transfer-ownership="none">
15365         <doc xml:whitespace="preserve">TRUE if the caps could be set on the pad.</doc>
15366         <type name="gboolean" c:type="gboolean"/>
15367       </return-value>
15368       <parameters>
15369         <parameter name="pad" transfer-ownership="none">
15370           <doc xml:whitespace="preserve">the #GstPad to set the capabilities of.</doc>
15371           <type name="Pad" c:type="GstPad*"/>
15372         </parameter>
15373         <parameter name="caps" transfer-ownership="none">
15374           <doc xml:whitespace="preserve">the #GstCaps to set</doc>
15375           <type name="Caps" c:type="GstCaps*"/>
15376         </parameter>
15377       </parameters>
15378     </callback>
15379     <class name="PadTemplate"
15380            c:symbol-prefix="pad_template"
15381            c:type="GstPadTemplate"
15382            parent="Object"
15383            glib:type-name="GstPadTemplate"
15384            glib:get-type="gst_pad_template_get_type"
15385            glib:type-struct="PadTemplateClass">
15386       <doc xml:whitespace="preserve">Padtemplates describe the possible media types a pad or an elementfactory can
15387 handle. This allows for both inspection of handled types before loading the
15388 element plugin as well as identifying pads on elements that are not yet
15389 created (request or sometimes pads).
15390 Pad and PadTemplates have #GstCaps attached to it to describe the media type
15391 they are capable of dealing with. gst_pad_template_get_caps() or
15392 GST_PAD_TEMPLATE_CAPS() are used to get the caps of a padtemplate. It's not
15393 possible to modify the caps of a padtemplate after creation.
15394 PadTemplates have a #GstPadPresence property which identifies the lifetime
15395 of the pad and that can be retrieved with GST_PAD_TEMPLATE_PRESENCE(). Also
15396 the direction of the pad can be retrieved from the #GstPadTemplate with
15397 GST_PAD_TEMPLATE_DIRECTION().
15398 The GST_PAD_TEMPLATE_NAME_TEMPLATE () is important for GST_PAD_REQUEST pads
15399 because it has to be used as the name in the gst_element_get_request_pad()
15400 call to instantiate a pad from this template.
15401 Padtemplates can be created with gst_pad_template_new() or with
15402 gst_static_pad_template_get (), which creates a #GstPadTemplate from a
15403 #GstStaticPadTemplate that can be filled with the
15404 convenient GST_STATIC_PAD_TEMPLATE() macro.
15405 A padtemplate can be used to create a pad (see gst_pad_new_from_template()
15406 or gst_pad_new_from_static_template ()) or to add to an element class
15407 (see gst_element_class_add_pad_template ()).
15408 The following code example shows the code to create a pad from a padtemplate.
15409 &lt;example&gt;
15410 &lt;title&gt;Create a pad from a padtemplate&lt;/title&gt;
15411 &lt;programlisting&gt;
15412 GstStaticPadTemplate my_template =
15413 GST_STATIC_PAD_TEMPLATE (
15414 "sink",          // the name of the pad
15415 GST_PAD_SINK,    // the direction of the pad
15416 GST_PAD_ALWAYS,  // when this pad will be present
15417 GST_STATIC_CAPS (        // the capabilities of the padtemplate
15418 "audio/x-raw-int, "
15419 "channels = (int) [ 1, 6 ]"
15420 )
15421 );
15422 void
15423 my_method (void)
15424 {
15425 GstPad *pad;
15426 pad = gst_pad_new_from_static_template (&amp;amp;my_template, "sink");
15427 ...
15428 }
15429 &lt;/programlisting&gt;
15430 &lt;/example&gt;
15431 The following example shows you how to add the padtemplate to an
15432 element class, this is usually done in the base_init of the class:
15433 &lt;informalexample&gt;
15434 &lt;programlisting&gt;
15435 static void
15436 my_element_base_init (gpointer g_class)
15437 {
15438 GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class);
15439 gst_element_class_add_pad_template (gstelement_class,
15440 gst_static_pad_template_get (&amp;amp;my_template));
15441 }
15442 &lt;/programlisting&gt;
15443 &lt;/informalexample&gt;
15444 Last reviewed on 2006-02-14 (0.10.3)</doc>
15445       <constructor name="new" c:identifier="gst_pad_template_new">
15446         <doc xml:whitespace="preserve">Creates a new pad template with a name according to the given template
15447 and with the given arguments. This functions takes ownership of the provided
15448 caps, so be sure to not use them afterwards.</doc>
15449         <return-value transfer-ownership="full">
15450           <doc xml:whitespace="preserve">a new #GstPadTemplate.</doc>
15451           <type name="PadTemplate" c:type="GstPadTemplate*"/>
15452         </return-value>
15453         <parameters>
15454           <parameter name="name_template" transfer-ownership="none">
15455             <doc xml:whitespace="preserve">the name template.</doc>
15456             <type name="utf8" c:type="gchar*"/>
15457           </parameter>
15458           <parameter name="direction" transfer-ownership="none">
15459             <doc xml:whitespace="preserve">the #GstPadDirection of the template.</doc>
15460             <type name="PadDirection" c:type="GstPadDirection"/>
15461           </parameter>
15462           <parameter name="presence" transfer-ownership="none">
15463             <doc xml:whitespace="preserve">the #GstPadPresence of the pad.</doc>
15464             <type name="PadPresence" c:type="GstPadPresence"/>
15465           </parameter>
15466           <parameter name="caps" transfer-ownership="full">
15467             <doc xml:whitespace="preserve">a #GstCaps set for the template. The caps are taken ownership of.</doc>
15468             <type name="Caps" c:type="GstCaps*"/>
15469           </parameter>
15470         </parameters>
15471       </constructor>
15472       <virtual-method name="pad_created" invoker="pad_created">
15473         <doc xml:whitespace="preserve">Emit the pad-created signal for this template when created by this pad.</doc>
15474         <return-value transfer-ownership="none">
15475           <type name="none" c:type="void"/>
15476         </return-value>
15477         <parameters>
15478           <parameter name="pad" transfer-ownership="none">
15479             <doc xml:whitespace="preserve">the #GstPad that created it</doc>
15480             <type name="Pad" c:type="GstPad*"/>
15481           </parameter>
15482         </parameters>
15483       </virtual-method>
15484       <method name="get_caps" c:identifier="gst_pad_template_get_caps">
15485         <doc xml:whitespace="preserve">Gets the capabilities of the pad template.
15486 keep a reference to the caps, take a ref (see gst_caps_ref ()).</doc>
15487         <return-value transfer-ownership="none">
15488           <doc xml:whitespace="preserve">the #GstCaps of the pad template. If you need to</doc>
15489           <type name="Caps" c:type="GstCaps*"/>
15490         </return-value>
15491       </method>
15492       <method name="pad_created" c:identifier="gst_pad_template_pad_created">
15493         <doc xml:whitespace="preserve">Emit the pad-created signal for this template when created by this pad.</doc>
15494         <return-value transfer-ownership="none">
15495           <type name="none" c:type="void"/>
15496         </return-value>
15497         <parameters>
15498           <parameter name="pad" transfer-ownership="none">
15499             <doc xml:whitespace="preserve">the #GstPad that created it</doc>
15500             <type name="Pad" c:type="GstPad*"/>
15501           </parameter>
15502         </parameters>
15503       </method>
15504       <property name="caps"
15505                 version="0.10.21"
15506                 writable="1"
15507                 construct-only="1"
15508                 transfer-ownership="none">
15509         <doc xml:whitespace="preserve">The capabilities of the pad described by the pad template.</doc>
15510         <type name="Caps"/>
15511       </property>
15512       <property name="direction"
15513                 version="0.10.21"
15514                 introspectable="0"
15515                 writable="1"
15516                 construct-only="1"
15517                 transfer-ownership="none">
15518         <doc xml:whitespace="preserve">The direction of the pad described by the pad template.</doc>
15519         <type/>
15520       </property>
15521       <property name="name-template"
15522                 version="0.10.21"
15523                 writable="1"
15524                 construct-only="1"
15525                 transfer-ownership="none">
15526         <doc xml:whitespace="preserve">The name template of the pad template.</doc>
15527         <type name="utf8"/>
15528       </property>
15529       <property name="presence"
15530                 version="0.10.21"
15531                 introspectable="0"
15532                 writable="1"
15533                 construct-only="1"
15534                 transfer-ownership="none">
15535         <doc xml:whitespace="preserve">When the pad described by the pad template will become available.</doc>
15536         <type/>
15537       </property>
15538       <field name="object">
15539         <type name="Object" c:type="GstObject"/>
15540       </field>
15541       <field name="name_template">
15542         <type name="utf8" c:type="gchar*"/>
15543       </field>
15544       <field name="direction">
15545         <type name="PadDirection" c:type="GstPadDirection"/>
15546       </field>
15547       <field name="presence">
15548         <type name="PadPresence" c:type="GstPadPresence"/>
15549       </field>
15550       <field name="caps">
15551         <type name="Caps" c:type="GstCaps*"/>
15552       </field>
15553       <field name="_gst_reserved">
15554         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
15555           <type name="gpointer" c:type="gpointer"/>
15556         </array>
15557       </field>
15558       <glib:signal name="pad-created">
15559         <doc xml:whitespace="preserve">This signal is fired when an element creates a pad from this template.</doc>
15560         <return-value transfer-ownership="none">
15561           <type name="none"/>
15562         </return-value>
15563         <parameters>
15564           <parameter name="pad" transfer-ownership="none">
15565             <doc xml:whitespace="preserve">the pad that was created.</doc>
15566             <type name="Pad"/>
15567           </parameter>
15568         </parameters>
15569       </glib:signal>
15570     </class>
15571     <record name="PadTemplateClass"
15572             c:type="GstPadTemplateClass"
15573             glib:is-gtype-struct-for="PadTemplate">
15574       <field name="parent_class">
15575         <type name="ObjectClass" c:type="GstObjectClass"/>
15576       </field>
15577       <field name="pad_created">
15578         <callback name="pad_created">
15579           <return-value transfer-ownership="none">
15580             <type name="none" c:type="void"/>
15581           </return-value>
15582           <parameters>
15583             <parameter name="templ" transfer-ownership="none">
15584               <type name="PadTemplate" c:type="GstPadTemplate*"/>
15585             </parameter>
15586             <parameter name="pad" transfer-ownership="none">
15587               <doc xml:whitespace="preserve">the #GstPad that created it</doc>
15588               <type name="Pad" c:type="GstPad*"/>
15589             </parameter>
15590           </parameters>
15591         </callback>
15592       </field>
15593       <field name="_gst_reserved">
15594         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
15595           <type name="gpointer" c:type="gpointer"/>
15596         </array>
15597       </field>
15598     </record>
15599     <bitfield name="PadTemplateFlags" c:type="GstPadTemplateFlags">
15600       <doc xml:whitespace="preserve">Flags for the padtemplate</doc>
15601       <member name="fixed" value="16" c:identifier="GST_PAD_TEMPLATE_FIXED"/>
15602       <member name="flag_last"
15603               value="256"
15604               c:identifier="GST_PAD_TEMPLATE_FLAG_LAST"/>
15605     </bitfield>
15606     <callback name="PadUnlinkFunction" c:type="GstPadUnlinkFunction">
15607       <doc xml:whitespace="preserve">Function signature to handle a unlinking the pad prom its peer.</doc>
15608       <return-value transfer-ownership="none">
15609         <type name="none" c:type="void"/>
15610       </return-value>
15611       <parameters>
15612         <parameter name="pad" transfer-ownership="none">
15613           <doc xml:whitespace="preserve">the #GstPad that is linked.</doc>
15614           <type name="Pad" c:type="GstPad*"/>
15615         </parameter>
15616       </parameters>
15617     </callback>
15618     <class name="ParamFraction"
15619            c:symbol-prefix="param_spec_fraction"
15620            glib:type-name="GstParamFraction"
15621            glib:get-type="gst_param_spec_fraction_get_type"
15622            glib:fundamental="1">
15623       <function name=""
15624                 c:identifier="gst_param_spec_fraction"
15625                 version="0.10.14"
15626                 introspectable="0">
15627         <doc xml:whitespace="preserve">This function creates a fraction GParamSpec for use by objects/elements
15628 that want to expose properties of fraction type. This function is typically
15629 used in connection with g_object_class_install_property() in a GObjects's
15630 instance_init function.</doc>
15631         <return-value>
15632           <doc xml:whitespace="preserve">a newly created parameter specification</doc>
15633           <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
15634         </return-value>
15635         <parameters>
15636           <parameter name="name" transfer-ownership="none">
15637             <doc xml:whitespace="preserve">canonical name of the property specified</doc>
15638             <type name="utf8" c:type="gchar*"/>
15639           </parameter>
15640           <parameter name="nick" transfer-ownership="none">
15641             <doc xml:whitespace="preserve">nick name for the property specified</doc>
15642             <type name="utf8" c:type="gchar*"/>
15643           </parameter>
15644           <parameter name="blurb" transfer-ownership="none">
15645             <doc xml:whitespace="preserve">description of the property specified</doc>
15646             <type name="utf8" c:type="gchar*"/>
15647           </parameter>
15648           <parameter name="min_num" transfer-ownership="none">
15649             <doc xml:whitespace="preserve">minimum value (fraction numerator)</doc>
15650             <type name="gint" c:type="gint"/>
15651           </parameter>
15652           <parameter name="min_denom" transfer-ownership="none">
15653             <doc xml:whitespace="preserve">minimum value (fraction denominator)</doc>
15654             <type name="gint" c:type="gint"/>
15655           </parameter>
15656           <parameter name="max_num" transfer-ownership="none">
15657             <doc xml:whitespace="preserve">maximum value (fraction numerator)</doc>
15658             <type name="gint" c:type="gint"/>
15659           </parameter>
15660           <parameter name="max_denom" transfer-ownership="none">
15661             <doc xml:whitespace="preserve">maximum value (fraction denominator)</doc>
15662             <type name="gint" c:type="gint"/>
15663           </parameter>
15664           <parameter name="default_num" transfer-ownership="none">
15665             <doc xml:whitespace="preserve">default value (fraction numerator)</doc>
15666             <type name="gint" c:type="gint"/>
15667           </parameter>
15668           <parameter name="default_denom" transfer-ownership="none">
15669             <doc xml:whitespace="preserve">default value (fraction denominator)</doc>
15670             <type name="gint" c:type="gint"/>
15671           </parameter>
15672           <parameter name="flags" transfer-ownership="none">
15673             <doc xml:whitespace="preserve">flags for the property specified</doc>
15674             <type name="GObject.ParamFlags" c:type="GParamFlags"/>
15675           </parameter>
15676         </parameters>
15677       </function>
15678     </class>
15679     <record name="ParamSpecFraction" c:type="GstParamSpecFraction">
15680       <doc xml:whitespace="preserve">A GParamSpec derived structure that contains the meta data for fractional
15681 properties.</doc>
15682       <field name="parent_instance" writable="1">
15683         <type name="GObject.ParamSpec" c:type="GParamSpec"/>
15684       </field>
15685       <field name="min_num" writable="1">
15686         <type name="gint" c:type="gint"/>
15687       </field>
15688       <field name="min_den" writable="1">
15689         <type name="gint" c:type="gint"/>
15690       </field>
15691       <field name="max_num" writable="1">
15692         <type name="gint" c:type="gint"/>
15693       </field>
15694       <field name="max_den" writable="1">
15695         <type name="gint" c:type="gint"/>
15696       </field>
15697       <field name="def_num" writable="1">
15698         <type name="gint" c:type="gint"/>
15699       </field>
15700       <field name="def_den" writable="1">
15701         <type name="gint" c:type="gint"/>
15702       </field>
15703     </record>
15704     <record name="ParamSpecMiniObject" c:type="GstParamSpecMiniObject">
15705       <doc xml:whitespace="preserve">A %GParamSpec derived structure that contains the meta data
15706 for %GstMiniObject properties.</doc>
15707       <field name="parent_instance" writable="1">
15708         <type name="GObject.ParamSpec" c:type="GParamSpec"/>
15709       </field>
15710     </record>
15711     <record name="ParseContext"
15712             c:type="GstParseContext"
15713             version="0.10.20"
15714             glib:type-name="GstParseContext"
15715             glib:get-type="gst_parse_context_get_type"
15716             c:symbol-prefix="parse_context">
15717       <doc xml:whitespace="preserve">Opaque structure.</doc>
15718       <constructor name="new"
15719                    c:identifier="gst_parse_context_new"
15720                    version="0.10.20">
15721         <doc xml:whitespace="preserve">Allocates a parse context for use with gst_parse_launch_full() or
15722 gst_parse_launchv_full().
15723 gst_parse_context_free() when no longer needed.</doc>
15724         <return-value transfer-ownership="full">
15725           <doc xml:whitespace="preserve">a newly-allocated parse context. Free with</doc>
15726           <type name="ParseContext" c:type="GstParseContext*"/>
15727         </return-value>
15728       </constructor>
15729       <method name="free"
15730               c:identifier="gst_parse_context_free"
15731               version="0.10.20">
15732         <doc xml:whitespace="preserve">Frees a parse context previously allocated with gst_parse_context_new().</doc>
15733         <return-value transfer-ownership="none">
15734           <type name="none" c:type="void"/>
15735         </return-value>
15736       </method>
15737       <method name="get_missing_elements"
15738               c:identifier="gst_parse_context_get_missing_elements"
15739               version="0.10.20">
15740         <doc xml:whitespace="preserve">Retrieve missing elements from a previous run of gst_parse_launch_full()
15741 or gst_parse_launchv_full(). Will only return results if an error code
15742 of %GST_PARSE_ERROR_NO_SUCH_ELEMENT was returned.
15743 NULL-terminated array of element factory name strings of missing
15744 elements. Free with g_strfreev() when no longer needed.</doc>
15745         <return-value transfer-ownership="full">
15746           <doc xml:whitespace="preserve">a</doc>
15747           <array c:type="gchar**">
15748             <type name="utf8"/>
15749           </array>
15750         </return-value>
15751       </method>
15752     </record>
15753     <enumeration name="ParseError"
15754                  c:type="GstParseError"
15755                  glib:error-quark="gst_parse_error_quark">
15756       <doc xml:whitespace="preserve">The different parsing errors that can occur.</doc>
15757       <member name="syntax" value="0" c:identifier="GST_PARSE_ERROR_SYNTAX"/>
15758       <member name="no_such_element"
15759               value="1"
15760               c:identifier="GST_PARSE_ERROR_NO_SUCH_ELEMENT"/>
15761       <member name="no_such_property"
15762               value="2"
15763               c:identifier="GST_PARSE_ERROR_NO_SUCH_PROPERTY"/>
15764       <member name="link" value="3" c:identifier="GST_PARSE_ERROR_LINK"/>
15765       <member name="could_not_set_property"
15766               value="4"
15767               c:identifier="GST_PARSE_ERROR_COULD_NOT_SET_PROPERTY"/>
15768       <member name="empty_bin"
15769               value="5"
15770               c:identifier="GST_PARSE_ERROR_EMPTY_BIN"/>
15771       <member name="empty" value="6" c:identifier="GST_PARSE_ERROR_EMPTY"/>
15772     </enumeration>
15773     <bitfield name="ParseFlags" version="0.10.20" c:type="GstParseFlags">
15774       <doc xml:whitespace="preserve">Parsing options.</doc>
15775       <member name="none" value="0" c:identifier="GST_PARSE_FLAG_NONE"/>
15776       <member name="fatal_errors"
15777               value="1"
15778               c:identifier="GST_PARSE_FLAG_FATAL_ERRORS"/>
15779     </bitfield>
15780     <class name="Pipeline"
15781            c:symbol-prefix="pipeline"
15782            c:type="GstPipeline"
15783            parent="Bin"
15784            glib:type-name="GstPipeline"
15785            glib:get-type="gst_pipeline_get_type"
15786            glib:type-struct="PipelineClass">
15787       <doc xml:whitespace="preserve">A #GstPipeline is a special #GstBin used as the toplevel container for
15788 the filter graph. The #GstPipeline will manage the selection and
15789 distribution of a global #GstClock as well as provide a #GstBus to the
15790 application. It will also implement a default behavour for managing
15791 seek events (see gst_element_seek()).
15792 gst_pipeline_new() is used to create a pipeline. when you are done with
15793 the pipeline, use gst_object_unref() to free its resources including all
15794 added #GstElement objects (if not otherwise referenced).
15795 Elements are added and removed from the pipeline using the #GstBin
15796 methods like gst_bin_add() and gst_bin_remove() (see #GstBin).
15797 Before changing the state of the #GstPipeline (see #GstElement) a #GstBus
15798 can be retrieved with gst_pipeline_get_bus(). This bus can then be
15799 used to receive #GstMessage from the elements in the pipeline.
15800 By default, a #GstPipeline will automatically flush the pending #GstBus
15801 messages when going to the NULL state to ensure that no circular
15802 references exist when no messages are read from the #GstBus. This
15803 behaviour can be changed with gst_pipeline_set_auto_flush_bus().
15804 When the #GstPipeline performs the PAUSED to PLAYING state change it will
15805 select a clock for the elements. The clock selection algorithm will by
15806 default select a clock provided by an element that is most upstream
15807 (closest to the source). For live pipelines (ones that return
15808 #GST_STATE_CHANGE_NO_PREROLL from the gst_element_set_state() call) this
15809 will select the clock provided by the live source. For normal pipelines
15810 this will select a clock provided by the sinks (most likely the audio
15811 sink). If no element provides a clock, a default #GstSystemClock is used.
15812 The clock selection can be controlled with the gst_pipeline_use_clock()
15813 method, which will enforce a given clock on the pipeline. With
15814 gst_pipeline_auto_clock() the default clock selection algorithm can be
15815 restored.
15816 A #GstPipeline maintains a running time for the elements. The running
15817 time is defined as the difference between the current clock time and
15818 the base time. When the pipeline goes to READY or a flushing seek is
15819 performed on it, the running time is reset to 0. When the pipeline is
15820 set from PLAYING to PAUSED, the current clock time is sampled and used to
15821 configure the base time for the elements when the pipeline is set
15822 to PLAYING again. The effect is that the running time (as the difference
15823 between the clock time and the base time) will count how much time was spent
15824 in the PLAYING state. This default behaviour can be changed with the
15825 gst_element_set_start_time() method.
15826 When sending a flushing seek event to a GstPipeline (see
15827 gst_element_seek()), it will make sure that the pipeline is properly
15828 PAUSED and resumed as well as set the new running time to 0 when the
15829 seek succeeded.
15830 Last reviewed on 2009-05-29 (0.10.24)</doc>
15831       <implements name="ChildProxy"/>
15832       <constructor name="new" c:identifier="gst_pipeline_new">
15833         <doc xml:whitespace="preserve">Create a new pipeline with the given name.
15834 MT safe.</doc>
15835         <return-value transfer-ownership="full">
15836           <doc xml:whitespace="preserve">newly created GstPipeline</doc>
15837           <type name="Element" c:type="GstElement*"/>
15838         </return-value>
15839         <parameters>
15840           <parameter name="name" transfer-ownership="none">
15841             <doc xml:whitespace="preserve">name of new pipeline</doc>
15842             <type name="utf8" c:type="gchar*"/>
15843           </parameter>
15844         </parameters>
15845       </constructor>
15846       <method name="auto_clock" c:identifier="gst_pipeline_auto_clock">
15847         <doc xml:whitespace="preserve">Let @pipeline select a clock automatically. This is the default
15848 behaviour.
15849 Use this function if you previous forced a fixed clock with
15850 gst_pipeline_use_clock() and want to restore the default
15851 pipeline clock selection algorithm.
15852 MT safe.</doc>
15853         <return-value transfer-ownership="none">
15854           <type name="none" c:type="void"/>
15855         </return-value>
15856       </method>
15857       <method name="get_auto_flush_bus"
15858               c:identifier="gst_pipeline_get_auto_flush_bus"
15859               version="0.10.4">
15860         <doc xml:whitespace="preserve">Check if @pipeline will automatically flush messages when going to
15861 the NULL state.
15862 going from READY to NULL state or not.
15863 MT safe.</doc>
15864         <return-value transfer-ownership="none">
15865           <doc xml:whitespace="preserve">whether the pipeline will automatically flush its bus when</doc>
15866           <type name="gboolean" c:type="gboolean"/>
15867         </return-value>
15868       </method>
15869       <method name="get_bus" c:identifier="gst_pipeline_get_bus">
15870         <doc xml:whitespace="preserve">Gets the #GstBus of @pipeline. The bus allows applications to receive
15871 #GstMessage packets.
15872 MT safe.</doc>
15873         <return-value transfer-ownership="full">
15874           <doc xml:whitespace="preserve">a #GstBus, unref after usage.</doc>
15875           <type name="Bus" c:type="GstBus*"/>
15876         </return-value>
15877       </method>
15878       <method name="get_clock" c:identifier="gst_pipeline_get_clock">
15879         <doc xml:whitespace="preserve">Gets the current clock used by @pipeline.</doc>
15880         <return-value transfer-ownership="full">
15881           <doc xml:whitespace="preserve">a #GstClock, unref after usage.</doc>
15882           <type name="Clock" c:type="GstClock*"/>
15883         </return-value>
15884       </method>
15885       <method name="get_delay"
15886               c:identifier="gst_pipeline_get_delay"
15887               version="0.10.5">
15888         <doc xml:whitespace="preserve">Get the configured delay (see gst_pipeline_set_delay()).
15889 MT safe.</doc>
15890         <return-value transfer-ownership="none">
15891           <doc xml:whitespace="preserve">The configured delay.</doc>
15892           <type name="ClockTime" c:type="GstClockTime"/>
15893         </return-value>
15894       </method>
15895       <method name="get_last_stream_time"
15896               c:identifier="gst_pipeline_get_last_stream_time"
15897               deprecated="This function has the wrong name and is equivalent to">
15898         <doc xml:whitespace="preserve">Gets the last running time of @pipeline. If the pipeline is PLAYING,
15899 the returned time is the running time used to configure the element's
15900 base time in the PAUSED-&gt;PLAYING state. If the pipeline is PAUSED, the
15901 returned time is the running time when the pipeline was paused.
15902 This function returns #GST_CLOCK_TIME_NONE if the pipeline was
15903 configured to not handle the management of the element's base time
15904 (see gst_pipeline_set_new_stream_time()).
15905 MT safe.
15906 gst_element_get_start_time().</doc>
15907         <return-value transfer-ownership="none">
15908           <doc xml:whitespace="preserve">a #GstClockTime.</doc>
15909           <type name="ClockTime" c:type="GstClockTime"/>
15910         </return-value>
15911       </method>
15912       <method name="set_auto_flush_bus"
15913               c:identifier="gst_pipeline_set_auto_flush_bus"
15914               version="0.10.4">
15915         <doc xml:whitespace="preserve">Usually, when a pipeline goes from READY to NULL state, it automatically
15916 flushes all pending messages on the bus, which is done for refcounting
15917 purposes, to break circular references.
15918 This means that applications that update state using (async) bus messages
15919 (e.g. do certain things when a pipeline goes from PAUSED to READY) might
15920 not get to see messages when the pipeline is shut down, because they might
15921 be flushed before they can be dispatched in the main thread. This behaviour
15922 can be disabled using this function.
15923 It is important that all messages on the bus are handled when the
15924 automatic flushing is disabled else memory leaks will be introduced.
15925 MT safe.</doc>
15926         <return-value transfer-ownership="none">
15927           <type name="none" c:type="void"/>
15928         </return-value>
15929         <parameters>
15930           <parameter name="auto_flush" transfer-ownership="none">
15931             <doc xml:whitespace="preserve">whether or not to automatically flush the bus when the pipeline goes from READY to NULL state</doc>
15932             <type name="gboolean" c:type="gboolean"/>
15933           </parameter>
15934         </parameters>
15935       </method>
15936       <method name="set_clock" c:identifier="gst_pipeline_set_clock">
15937         <doc xml:whitespace="preserve">Set the clock for @pipeline. The clock will be distributed
15938 to all the elements managed by the pipeline.
15939 some element did not accept the clock.
15940 MT safe.</doc>
15941         <return-value transfer-ownership="none">
15942           <doc xml:whitespace="preserve">TRUE if the clock could be set on the pipeline. FALSE if</doc>
15943           <type name="gboolean" c:type="gboolean"/>
15944         </return-value>
15945         <parameters>
15946           <parameter name="clock" transfer-ownership="none">
15947             <doc xml:whitespace="preserve">the clock to set</doc>
15948             <type name="Clock" c:type="GstClock*"/>
15949           </parameter>
15950         </parameters>
15951       </method>
15952       <method name="set_delay"
15953               c:identifier="gst_pipeline_set_delay"
15954               version="0.10.5">
15955         <doc xml:whitespace="preserve">Set the expected delay needed for all elements to perform the
15956 PAUSED to PLAYING state change. @delay will be added to the
15957 base time of the elements so that they wait an additional @delay
15958 amount of time before starting to process buffers and cannot be
15959 #GST_CLOCK_TIME_NONE.
15960 This option is used for tuning purposes and should normally not be
15961 used.
15962 MT safe.</doc>
15963         <return-value transfer-ownership="none">
15964           <type name="none" c:type="void"/>
15965         </return-value>
15966         <parameters>
15967           <parameter name="delay" transfer-ownership="none">
15968             <doc xml:whitespace="preserve">the delay</doc>
15969             <type name="ClockTime" c:type="GstClockTime"/>
15970           </parameter>
15971         </parameters>
15972       </method>
15973       <method name="set_new_stream_time"
15974               c:identifier="gst_pipeline_set_new_stream_time"
15975               deprecated="This function has the wrong name and is equivalent to">
15976         <doc xml:whitespace="preserve">Set the new start time of @pipeline to @time. The start time is used to
15977 set the base time on the elements (see gst_element_set_base_time())
15978 in the PAUSED-&gt;PLAYING state transition.
15979 Setting @time to #GST_CLOCK_TIME_NONE will disable the pipeline's management
15980 of element base time. The application will then be responsible for
15981 performing base time distribution. This is sometimes useful if you want to
15982 synchronize capture from multiple pipelines, and you can also ensure that the
15983 pipelines have the same clock.
15984 MT safe.
15985 gst_element_set_start_time().</doc>
15986         <return-value transfer-ownership="none">
15987           <type name="none" c:type="void"/>
15988         </return-value>
15989         <parameters>
15990           <parameter name="time" transfer-ownership="none">
15991             <doc xml:whitespace="preserve">the new running time to set</doc>
15992             <type name="ClockTime" c:type="GstClockTime"/>
15993           </parameter>
15994         </parameters>
15995       </method>
15996       <method name="use_clock" c:identifier="gst_pipeline_use_clock">
15997         <doc xml:whitespace="preserve">Force @pipeline to use the given @clock. The pipeline will
15998 always use the given clock even if new clock providers are added
15999 to this pipeline.
16000 If @clock is NULL all clocking will be disabled which will make
16001 the pipeline run as fast as possible.
16002 MT safe.</doc>
16003         <return-value transfer-ownership="none">
16004           <type name="none" c:type="void"/>
16005         </return-value>
16006         <parameters>
16007           <parameter name="clock" transfer-ownership="none">
16008             <doc xml:whitespace="preserve">the clock to use</doc>
16009             <type name="Clock" c:type="GstClock*"/>
16010           </parameter>
16011         </parameters>
16012       </method>
16013       <property name="auto-flush-bus"
16014                 version="0.10.4"
16015                 writable="1"
16016                 transfer-ownership="none">
16017         <doc xml:whitespace="preserve">Whether or not to automatically flush all messages on the
16018 pipeline's bus when going from READY to NULL state. Please see
16019 gst_pipeline_set_auto_flush_bus() for more information on this option.</doc>
16020         <type name="gboolean"/>
16021       </property>
16022       <property name="delay"
16023                 version="0.10.5"
16024                 writable="1"
16025                 transfer-ownership="none">
16026         <doc xml:whitespace="preserve">The expected delay needed for elements to spin up to the
16027 PLAYING state expressed in nanoseconds.
16028 see gst_pipeline_set_delay() for more information on this option.</doc>
16029         <type name="guint64"/>
16030       </property>
16031       <field name="bin">
16032         <type name="Bin" c:type="GstBin"/>
16033       </field>
16034       <field name="fixed_clock">
16035         <type name="Clock" c:type="GstClock*"/>
16036       </field>
16037       <field name="stream_time">
16038         <type name="ClockTime" c:type="GstClockTime"/>
16039       </field>
16040       <field name="delay">
16041         <type name="ClockTime" c:type="GstClockTime"/>
16042       </field>
16043       <field name="priv" readable="0" private="1">
16044         <type name="PipelinePrivate" c:type="GstPipelinePrivate*"/>
16045       </field>
16046       <field name="_gst_reserved" readable="0" private="1">
16047         <array zero-terminated="0" c:type="gpointer" fixed-size="3">
16048           <type name="gpointer" c:type="gpointer"/>
16049         </array>
16050       </field>
16051     </class>
16052     <record name="PipelineClass"
16053             c:type="GstPipelineClass"
16054             glib:is-gtype-struct-for="Pipeline">
16055       <field name="parent_class">
16056         <type name="BinClass" c:type="GstBinClass"/>
16057       </field>
16058       <field name="_gst_reserved" readable="0" private="1">
16059         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
16060           <type name="gpointer" c:type="gpointer"/>
16061         </array>
16062       </field>
16063     </record>
16064     <bitfield name="PipelineFlags" c:type="GstPipelineFlags">
16065       <doc xml:whitespace="preserve">Pipeline flags</doc>
16066       <member name="fixed_clock"
16067               value="33554432"
16068               c:identifier="GST_PIPELINE_FLAG_FIXED_CLOCK"/>
16069       <member name="last"
16070               value="536870912"
16071               c:identifier="GST_PIPELINE_FLAG_LAST"/>
16072     </bitfield>
16073     <record name="PipelinePrivate" c:type="GstPipelinePrivate" disguised="1">
16074     </record>
16075     <class name="Plugin"
16076            c:symbol-prefix="plugin"
16077            c:type="GstPlugin"
16078            parent="Object"
16079            glib:type-name="GstPlugin"
16080            glib:get-type="gst_plugin_get_type"
16081            glib:type-struct="PluginClass">
16082       <doc xml:whitespace="preserve">GStreamer is extensible, so #GstElement instances can be loaded at runtime.
16083 A plugin system can provide one or more of the basic
16084 &lt;application&gt;GStreamer&lt;/application&gt; #GstPluginFeature subclasses.
16085 A plugin should export a symbol &lt;symbol&gt;gst_plugin_desc&lt;/symbol&gt; that is a
16086 struct of type #GstPluginDesc.
16087 the plugin loader will check the version of the core library the plugin was
16088 linked against and will create a new #GstPlugin. It will then call the
16089 #GstPluginInitFunc function that was provided in the
16090 &lt;symbol&gt;gst_plugin_desc&lt;/symbol&gt;.
16091 Once you have a handle to a #GstPlugin (e.g. from the #GstRegistry), you
16092 can add any object that subclasses #GstPluginFeature.
16093 Usually plugins are always automaticlly loaded so you don't need to call
16094 gst_plugin_load() explicitly to bring it into memory. There are options to
16095 statically link plugins to an app or even use GStreamer without a plugin
16096 repository in which case gst_plugin_load() can be needed to bring the plugin
16097 into memory.</doc>
16098       <function name="error_quark" c:identifier="gst_plugin_error_quark">
16099         <doc xml:whitespace="preserve">Get the error quark.</doc>
16100         <return-value transfer-ownership="none">
16101           <doc xml:whitespace="preserve">The error quark used in GError messages</doc>
16102           <type name="GLib.Quark" c:type="GQuark"/>
16103         </return-value>
16104       </function>
16105       <function name="list_free" c:identifier="gst_plugin_list_free">
16106         <doc xml:whitespace="preserve">Unrefs each member of @list, then frees the list.</doc>
16107         <return-value transfer-ownership="none">
16108           <type name="none" c:type="void"/>
16109         </return-value>
16110         <parameters>
16111           <parameter name="list" transfer-ownership="full">
16112             <doc xml:whitespace="preserve">list of #GstPlugin</doc>
16113             <type name="GLib.List" c:type="GList*">
16114               <type name="Plugin"/>
16115             </type>
16116           </parameter>
16117         </parameters>
16118       </function>
16119       <function name="load_by_name" c:identifier="gst_plugin_load_by_name">
16120         <doc xml:whitespace="preserve">Load the named plugin. Refs the plugin.</doc>
16121         <return-value transfer-ownership="full">
16122           <doc xml:whitespace="preserve">a reference to a loaded plugin, or NULL on error.</doc>
16123           <type name="Plugin" c:type="GstPlugin*"/>
16124         </return-value>
16125         <parameters>
16126           <parameter name="name" transfer-ownership="none">
16127             <doc xml:whitespace="preserve">name of plugin to load</doc>
16128             <type name="utf8" c:type="gchar*"/>
16129           </parameter>
16130         </parameters>
16131       </function>
16132       <function name="load_file"
16133                 c:identifier="gst_plugin_load_file"
16134                 throws="1">
16135         <doc xml:whitespace="preserve">Loads the given plugin and refs it.  Caller needs to unref after use.
16136 reference to the newly-loaded GstPlugin, or NULL if an error occurred.</doc>
16137         <return-value transfer-ownership="full">
16138           <doc xml:whitespace="preserve">a reference to the existing loaded GstPlugin, a</doc>
16139           <type name="Plugin" c:type="GstPlugin*"/>
16140         </return-value>
16141         <parameters>
16142           <parameter name="filename" transfer-ownership="none">
16143             <doc xml:whitespace="preserve">the plugin filename to load</doc>
16144             <type name="utf8" c:type="gchar*"/>
16145           </parameter>
16146         </parameters>
16147       </function>
16148       <function name="register_static"
16149                 c:identifier="gst_plugin_register_static"
16150                 version="0.10.16">
16151         <doc xml:whitespace="preserve">Registers a static plugin, ie. a plugin which is private to an application
16152 or library and contained within the application or library (as opposed to
16153 being shipped as a separate module file).
16154 You must make sure that GStreamer has been initialised (with gst_init() or
16155 via gst_init_get_option_group()) before calling this function.</doc>
16156         <return-value transfer-ownership="none">
16157           <doc xml:whitespace="preserve">TRUE if the plugin was registered correctly, otherwise FALSE.</doc>
16158           <type name="gboolean" c:type="gboolean"/>
16159         </return-value>
16160         <parameters>
16161           <parameter name="major_version" transfer-ownership="none">
16162             <doc xml:whitespace="preserve">the major version number of the GStreamer core that the plugin was compiled for, you can just use GST_VERSION_MAJOR here</doc>
16163             <type name="gint" c:type="gint"/>
16164           </parameter>
16165           <parameter name="minor_version" transfer-ownership="none">
16166             <doc xml:whitespace="preserve">the minor version number of the GStreamer core that the plugin was compiled for, you can just use GST_VERSION_MINOR here</doc>
16167             <type name="gint" c:type="gint"/>
16168           </parameter>
16169           <parameter name="name" transfer-ownership="none">
16170             <doc xml:whitespace="preserve">a unique name of the plugin (ideally prefixed with an application- or library-specific namespace prefix in order to avoid name conflicts in case a similar plugin with the same name ever gets added to GStreamer)</doc>
16171             <type name="utf8" c:type="gchar*"/>
16172           </parameter>
16173           <parameter name="description" transfer-ownership="none">
16174             <doc xml:whitespace="preserve">description of the plugin</doc>
16175             <type name="utf8" c:type="gchar*"/>
16176           </parameter>
16177           <parameter name="init_func" transfer-ownership="none" scope="call">
16178             <doc xml:whitespace="preserve">pointer to the init function of this plugin.</doc>
16179             <type name="PluginInitFunc" c:type="GstPluginInitFunc"/>
16180           </parameter>
16181           <parameter name="version" transfer-ownership="none">
16182             <doc xml:whitespace="preserve">version string of the plugin</doc>
16183             <type name="utf8" c:type="gchar*"/>
16184           </parameter>
16185           <parameter name="license" transfer-ownership="none">
16186             <doc xml:whitespace="preserve">effective license of plugin. Must be one of the approved licenses (see #GstPluginDesc above) or the plugin will not be registered.</doc>
16187             <type name="utf8" c:type="gchar*"/>
16188           </parameter>
16189           <parameter name="source" transfer-ownership="none">
16190             <doc xml:whitespace="preserve">source module plugin belongs to</doc>
16191             <type name="utf8" c:type="gchar*"/>
16192           </parameter>
16193           <parameter name="package" transfer-ownership="none">
16194             <doc xml:whitespace="preserve">shipped package plugin belongs to</doc>
16195             <type name="utf8" c:type="gchar*"/>
16196           </parameter>
16197           <parameter name="origin" transfer-ownership="none">
16198             <doc xml:whitespace="preserve">URL to provider of plugin</doc>
16199             <type name="utf8" c:type="gchar*"/>
16200           </parameter>
16201         </parameters>
16202       </function>
16203       <function name="register_static_full"
16204                 c:identifier="gst_plugin_register_static_full"
16205                 version="0.10.24">
16206         <doc xml:whitespace="preserve">Registers a static plugin, ie. a plugin which is private to an application
16207 or library and contained within the application or library (as opposed to
16208 being shipped as a separate module file) with a #GstPluginInitFullFunc
16209 which allows user data to be passed to the callback function (useful
16210 for bindings).
16211 You must make sure that GStreamer has been initialised (with gst_init() or
16212 via gst_init_get_option_group()) before calling this function.</doc>
16213         <return-value transfer-ownership="none">
16214           <doc xml:whitespace="preserve">TRUE if the plugin was registered correctly, otherwise FALSE.</doc>
16215           <type name="gboolean" c:type="gboolean"/>
16216         </return-value>
16217         <parameters>
16218           <parameter name="major_version" transfer-ownership="none">
16219             <doc xml:whitespace="preserve">the major version number of the GStreamer core that the plugin was compiled for, you can just use GST_VERSION_MAJOR here</doc>
16220             <type name="gint" c:type="gint"/>
16221           </parameter>
16222           <parameter name="minor_version" transfer-ownership="none">
16223             <doc xml:whitespace="preserve">the minor version number of the GStreamer core that the plugin was compiled for, you can just use GST_VERSION_MINOR here</doc>
16224             <type name="gint" c:type="gint"/>
16225           </parameter>
16226           <parameter name="name" transfer-ownership="none">
16227             <doc xml:whitespace="preserve">a unique name of the plugin (ideally prefixed with an application- or library-specific namespace prefix in order to avoid name conflicts in case a similar plugin with the same name ever gets added to GStreamer)</doc>
16228             <type name="utf8" c:type="gchar*"/>
16229           </parameter>
16230           <parameter name="description" transfer-ownership="none">
16231             <doc xml:whitespace="preserve">description of the plugin</doc>
16232             <type name="utf8" c:type="gchar*"/>
16233           </parameter>
16234           <parameter name="init_full_func"
16235                      transfer-ownership="none"
16236                      scope="call"
16237                      closure="10">
16238             <doc xml:whitespace="preserve">pointer to the init function with user data of this plugin.</doc>
16239             <type name="PluginInitFullFunc" c:type="GstPluginInitFullFunc"/>
16240           </parameter>
16241           <parameter name="version" transfer-ownership="none">
16242             <doc xml:whitespace="preserve">version string of the plugin</doc>
16243             <type name="utf8" c:type="gchar*"/>
16244           </parameter>
16245           <parameter name="license" transfer-ownership="none">
16246             <doc xml:whitespace="preserve">effective license of plugin. Must be one of the approved licenses (see #GstPluginDesc above) or the plugin will not be registered.</doc>
16247             <type name="utf8" c:type="gchar*"/>
16248           </parameter>
16249           <parameter name="source" transfer-ownership="none">
16250             <doc xml:whitespace="preserve">source module plugin belongs to</doc>
16251             <type name="utf8" c:type="gchar*"/>
16252           </parameter>
16253           <parameter name="package" transfer-ownership="none">
16254             <doc xml:whitespace="preserve">shipped package plugin belongs to</doc>
16255             <type name="utf8" c:type="gchar*"/>
16256           </parameter>
16257           <parameter name="origin" transfer-ownership="none">
16258             <doc xml:whitespace="preserve">URL to provider of plugin</doc>
16259             <type name="utf8" c:type="gchar*"/>
16260           </parameter>
16261           <parameter name="user_data" transfer-ownership="none">
16262             <doc xml:whitespace="preserve">gpointer to user data</doc>
16263             <type name="gpointer" c:type="gpointer"/>
16264           </parameter>
16265         </parameters>
16266       </function>
16267       <method name="add_dependency"
16268               c:identifier="gst_plugin_add_dependency"
16269               version="0.10.22">
16270         <doc xml:whitespace="preserve">Make GStreamer aware of external dependencies which affect the feature
16271 set of this plugin (ie. the elements or typefinders associated with it).
16272 GStreamer will re-inspect plugins with external dependencies whenever any
16273 of the external dependencies change. This is useful for plugins which wrap
16274 other plugin systems, e.g. a plugin which wraps a plugin-based visualisation
16275 library and makes visualisations available as GStreamer elements, or a
16276 codec loader which exposes elements and/or caps dependent on what external
16277 codec libraries are currently installed.</doc>
16278         <return-value transfer-ownership="none">
16279           <type name="none" c:type="void"/>
16280         </return-value>
16281         <parameters>
16282           <parameter name="env_vars" transfer-ownership="none">
16283             <doc xml:whitespace="preserve">NULL-terminated array of environent variables affecting the feature set of the plugin (e.g. an environment variable containing paths where to look for additional modules/plugins of a library), or NULL. Environment variable names may be followed by a path component which will be added to the content of the environment variable, e.g. "HOME/.mystuff/plugins".</doc>
16284             <type name="utf8" c:type="gchar**"/>
16285           </parameter>
16286           <parameter name="paths" transfer-ownership="none">
16287             <doc xml:whitespace="preserve">NULL-terminated array of directories/paths where dependent files may be.</doc>
16288             <type name="utf8" c:type="gchar**"/>
16289           </parameter>
16290           <parameter name="names" transfer-ownership="none">
16291             <doc xml:whitespace="preserve">NULL-terminated array of file names (or file name suffixes, depending on @flags) to be used in combination with the paths from</doc>
16292             <type name="utf8" c:type="gchar**"/>
16293           </parameter>
16294           <parameter name="flags" transfer-ownership="none">
16295             <doc xml:whitespace="preserve">optional flags, or #GST_PLUGIN_DEPENDENCY_FLAG_NONE</doc>
16296             <type name="PluginDependencyFlags"
16297                   c:type="GstPluginDependencyFlags"/>
16298           </parameter>
16299         </parameters>
16300       </method>
16301       <method name="add_dependency_simple"
16302               c:identifier="gst_plugin_add_dependency_simple"
16303               version="0.10.22">
16304         <doc xml:whitespace="preserve">Make GStreamer aware of external dependencies which affect the feature
16305 set of this plugin (ie. the elements or typefinders associated with it).
16306 GStreamer will re-inspect plugins with external dependencies whenever any
16307 of the external dependencies change. This is useful for plugins which wrap
16308 other plugin systems, e.g. a plugin which wraps a plugin-based visualisation
16309 library and makes visualisations available as GStreamer elements, or a
16310 codec loader which exposes elements and/or caps dependent on what external
16311 codec libraries are currently installed.
16312 Convenience wrapper function for gst_plugin_add_dependency() which
16313 takes simple strings as arguments instead of string arrays, with multiple
16314 arguments separated by predefined delimiters (see above).</doc>
16315         <return-value transfer-ownership="none">
16316           <type name="none" c:type="void"/>
16317         </return-value>
16318         <parameters>
16319           <parameter name="env_vars" transfer-ownership="none">
16320             <doc xml:whitespace="preserve">one or more environent variables (separated by ':', ';' or ','), or NULL. Environment variable names may be followed by a path component which will be added to the content of the environment variable, e.g. "HOME/.mystuff/plugins:MYSTUFF_PLUGINS_PATH"</doc>
16321             <type name="utf8" c:type="gchar*"/>
16322           </parameter>
16323           <parameter name="paths" transfer-ownership="none">
16324             <doc xml:whitespace="preserve">one ore more directory paths (separated by ':' or ';' or ','), or NULL. Example: "/usr/lib/mystuff/plugins"</doc>
16325             <type name="utf8" c:type="gchar*"/>
16326           </parameter>
16327           <parameter name="names" transfer-ownership="none">
16328             <doc xml:whitespace="preserve">one or more file names or file name suffixes (separated by commas), or NULL</doc>
16329             <type name="utf8" c:type="gchar*"/>
16330           </parameter>
16331           <parameter name="flags" transfer-ownership="none">
16332             <doc xml:whitespace="preserve">optional flags, or #GST_PLUGIN_DEPENDENCY_FLAG_NONE</doc>
16333             <type name="PluginDependencyFlags"
16334                   c:type="GstPluginDependencyFlags"/>
16335           </parameter>
16336         </parameters>
16337       </method>
16338       <method name="get_cache_data"
16339               c:identifier="gst_plugin_get_cache_data"
16340               version="0.10.24">
16341         <doc xml:whitespace="preserve">Gets the plugin specific data cache. If it is %NULL there is no cached data
16342 stored. This is the case when the registry is getting rebuilt.</doc>
16343         <return-value transfer-ownership="none">
16344           <doc xml:whitespace="preserve">The cached data as a #GstStructure or %NULL.</doc>
16345           <type name="Structure" c:type="GstStructure*"/>
16346         </return-value>
16347       </method>
16348       <method name="get_description" c:identifier="gst_plugin_get_description">
16349         <doc xml:whitespace="preserve">Get the long descriptive name of the plugin</doc>
16350         <return-value transfer-ownership="none">
16351           <doc xml:whitespace="preserve">the long name of the plugin</doc>
16352           <type name="utf8" c:type="gchar*"/>
16353         </return-value>
16354       </method>
16355       <method name="get_filename" c:identifier="gst_plugin_get_filename">
16356         <doc xml:whitespace="preserve">get the filename of the plugin</doc>
16357         <return-value transfer-ownership="none">
16358           <doc xml:whitespace="preserve">the filename of the plugin</doc>
16359           <type name="utf8" c:type="gchar*"/>
16360         </return-value>
16361       </method>
16362       <method name="get_license" c:identifier="gst_plugin_get_license">
16363         <doc xml:whitespace="preserve">get the license of the plugin</doc>
16364         <return-value transfer-ownership="none">
16365           <doc xml:whitespace="preserve">the license of the plugin</doc>
16366           <type name="utf8" c:type="gchar*"/>
16367         </return-value>
16368       </method>
16369       <method name="get_module" c:identifier="gst_plugin_get_module">
16370         <doc xml:whitespace="preserve">Gets the #GModule of the plugin. If the plugin isn't loaded yet, NULL is
16371 returned.
16372 plugin isn't loaded yet.</doc>
16373         <return-value transfer-ownership="none">
16374           <doc xml:whitespace="preserve">module belonging to the plugin or NULL if the</doc>
16375           <type name="GModule.Module" c:type="GModule*"/>
16376         </return-value>
16377       </method>
16378       <method name="get_name" c:identifier="gst_plugin_get_name">
16379         <doc xml:whitespace="preserve">Get the short name of the plugin</doc>
16380         <return-value transfer-ownership="none">
16381           <doc xml:whitespace="preserve">the name of the plugin</doc>
16382           <type name="utf8" c:type="gchar*"/>
16383         </return-value>
16384       </method>
16385       <method name="get_origin" c:identifier="gst_plugin_get_origin">
16386         <doc xml:whitespace="preserve">get the URL where the plugin comes from</doc>
16387         <return-value transfer-ownership="none">
16388           <doc xml:whitespace="preserve">the origin of the plugin</doc>
16389           <type name="utf8" c:type="gchar*"/>
16390         </return-value>
16391       </method>
16392       <method name="get_package" c:identifier="gst_plugin_get_package">
16393         <doc xml:whitespace="preserve">get the package the plugin belongs to.</doc>
16394         <return-value transfer-ownership="none">
16395           <doc xml:whitespace="preserve">the package of the plugin</doc>
16396           <type name="utf8" c:type="gchar*"/>
16397         </return-value>
16398       </method>
16399       <method name="get_source" c:identifier="gst_plugin_get_source">
16400         <doc xml:whitespace="preserve">get the source module the plugin belongs to.</doc>
16401         <return-value transfer-ownership="none">
16402           <doc xml:whitespace="preserve">the source of the plugin</doc>
16403           <type name="utf8" c:type="gchar*"/>
16404         </return-value>
16405       </method>
16406       <method name="get_version" c:identifier="gst_plugin_get_version">
16407         <doc xml:whitespace="preserve">get the version of the plugin</doc>
16408         <return-value transfer-ownership="none">
16409           <doc xml:whitespace="preserve">the version of the plugin</doc>
16410           <type name="utf8" c:type="gchar*"/>
16411         </return-value>
16412       </method>
16413       <method name="is_loaded" c:identifier="gst_plugin_is_loaded">
16414         <doc xml:whitespace="preserve">queries if the plugin is loaded into memory</doc>
16415         <return-value transfer-ownership="none">
16416           <doc xml:whitespace="preserve">TRUE is loaded, FALSE otherwise</doc>
16417           <type name="gboolean" c:type="gboolean"/>
16418         </return-value>
16419       </method>
16420       <method name="load" c:identifier="gst_plugin_load">
16421         <doc xml:whitespace="preserve">Loads @plugin. Note that the *return value* is the loaded plugin; @plugin is
16422 untouched. The normal use pattern of this function goes like this:
16423 &lt;programlisting&gt;
16424 GstPlugin *loaded_plugin;
16425 loaded_plugin = gst_plugin_load (plugin);
16426 // presumably, we're no longer interested in the potentially-unloaded plugin
16427 gst_object_unref (plugin);
16428 plugin = loaded_plugin;
16429 &lt;/programlisting&gt;</doc>
16430         <return-value transfer-ownership="full">
16431           <doc xml:whitespace="preserve">a reference to a loaded plugin, or NULL on error.</doc>
16432           <type name="Plugin" c:type="GstPlugin*"/>
16433         </return-value>
16434       </method>
16435       <method name="name_filter" c:identifier="gst_plugin_name_filter">
16436         <doc xml:whitespace="preserve">A standard filter that returns TRUE when the plugin is of the
16437 given name.</doc>
16438         <return-value transfer-ownership="none">
16439           <doc xml:whitespace="preserve">TRUE if the plugin is of the given name.</doc>
16440           <type name="gboolean" c:type="gboolean"/>
16441         </return-value>
16442         <parameters>
16443           <parameter name="name" transfer-ownership="none">
16444             <doc xml:whitespace="preserve">the name of the plugin</doc>
16445             <type name="utf8" c:type="gchar*"/>
16446           </parameter>
16447         </parameters>
16448       </method>
16449       <method name="set_cache_data"
16450               c:identifier="gst_plugin_set_cache_data"
16451               version="0.10.24">
16452         <doc xml:whitespace="preserve">Adds plugin specific data to cache. Passes the ownership of the structure to
16453 the @plugin.
16454 The cache is flushed every time the registry is rebuilt.</doc>
16455         <return-value transfer-ownership="none">
16456           <type name="none" c:type="void"/>
16457         </return-value>
16458         <parameters>
16459           <parameter name="cache_data" transfer-ownership="full">
16460             <doc xml:whitespace="preserve">a structure containing the data to cache</doc>
16461             <type name="Structure" c:type="GstStructure*"/>
16462           </parameter>
16463         </parameters>
16464       </method>
16465       <field name="object">
16466         <type name="Object" c:type="GstObject"/>
16467       </field>
16468       <field name="desc" readable="0" private="1">
16469         <type name="PluginDesc" c:type="GstPluginDesc"/>
16470       </field>
16471       <field name="orig_desc" readable="0" private="1">
16472         <type name="PluginDesc" c:type="GstPluginDesc*"/>
16473       </field>
16474       <field name="flags" readable="0" private="1">
16475         <type name="guint" c:type="unsigned"/>
16476       </field>
16477       <field name="filename" readable="0" private="1">
16478         <type name="utf8" c:type="gchar*"/>
16479       </field>
16480       <field name="basename" readable="0" private="1">
16481         <type name="utf8" c:type="gchar*"/>
16482       </field>
16483       <field name="module" readable="0" private="1">
16484         <type name="GModule.Module" c:type="GModule*"/>
16485       </field>
16486       <field name="file_size" readable="0" private="1">
16487         <type name="gsize" c:type="off_t"/>
16488       </field>
16489       <field name="file_mtime" readable="0" private="1">
16490         <type name="glong" c:type="time_t"/>
16491       </field>
16492       <field name="registered" readable="0" private="1">
16493         <type name="gboolean" c:type="gboolean"/>
16494       </field>
16495       <field name="priv" readable="0" private="1">
16496         <type name="PluginPrivate" c:type="GstPluginPrivate*"/>
16497       </field>
16498       <field name="_gst_reserved" readable="0" private="1">
16499         <array zero-terminated="0" c:type="gpointer" fixed-size="3">
16500           <type name="gpointer" c:type="gpointer"/>
16501         </array>
16502       </field>
16503     </class>
16504     <record name="PluginClass"
16505             c:type="GstPluginClass"
16506             glib:is-gtype-struct-for="Plugin">
16507       <field name="object_class">
16508         <type name="ObjectClass" c:type="GstObjectClass"/>
16509       </field>
16510       <field name="_gst_reserved" readable="0" private="1">
16511         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
16512           <type name="gpointer" c:type="gpointer"/>
16513         </array>
16514       </field>
16515     </record>
16516     <bitfield name="PluginDependencyFlags"
16517               version="0.10.22"
16518               c:type="GstPluginDependencyFlags">
16519       <doc xml:whitespace="preserve">Flags used in connection with gst_plugin_add_dependency().</doc>
16520       <member name="none"
16521               value="0"
16522               c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_NONE"/>
16523       <member name="recurse"
16524               value="1"
16525               c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_RECURSE"/>
16526       <member name="paths_are_default_only"
16527               value="2"
16528               c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_DEFAULT_ONLY"/>
16529       <member name="file_name_is_suffix"
16530               value="4"
16531               c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_SUFFIX"/>
16532     </bitfield>
16533     <record name="PluginDesc" c:type="GstPluginDesc">
16534       <doc xml:whitespace="preserve">A plugin should export a variable of this type called plugin_desc. The plugin
16535 loader will use the data provided there to initialize the plugin.
16536 BSD, MIT/X11, Proprietary, unknown.</doc>
16537       <field name="major_version" writable="1">
16538         <type name="gint" c:type="gint"/>
16539       </field>
16540       <field name="minor_version" writable="1">
16541         <type name="gint" c:type="gint"/>
16542       </field>
16543       <field name="name" writable="1">
16544         <type name="utf8" c:type="gchar*"/>
16545       </field>
16546       <field name="description" writable="1">
16547         <type name="utf8" c:type="gchar*"/>
16548       </field>
16549       <field name="plugin_init" writable="1">
16550         <type name="PluginInitFunc" c:type="GstPluginInitFunc"/>
16551       </field>
16552       <field name="version" writable="1">
16553         <type name="utf8" c:type="gchar*"/>
16554       </field>
16555       <field name="license" writable="1">
16556         <type name="utf8" c:type="gchar*"/>
16557       </field>
16558       <field name="source" writable="1">
16559         <type name="utf8" c:type="gchar*"/>
16560       </field>
16561       <field name="package" writable="1">
16562         <type name="utf8" c:type="gchar*"/>
16563       </field>
16564       <field name="origin" writable="1">
16565         <type name="utf8" c:type="gchar*"/>
16566       </field>
16567       <field name="release_datetime" writable="1">
16568         <type name="utf8" c:type="gchar*"/>
16569       </field>
16570       <field name="_gst_reserved" readable="0" private="1">
16571         <array zero-terminated="0" c:type="gpointer" fixed-size="3">
16572           <type name="gpointer" c:type="gpointer"/>
16573         </array>
16574       </field>
16575     </record>
16576     <enumeration name="PluginError" c:type="GstPluginError">
16577       <doc xml:whitespace="preserve">The plugin loading errors</doc>
16578       <member name="module" value="0" c:identifier="GST_PLUGIN_ERROR_MODULE"/>
16579       <member name="dependencies"
16580               value="1"
16581               c:identifier="GST_PLUGIN_ERROR_DEPENDENCIES"/>
16582       <member name="name_mismatch"
16583               value="2"
16584               c:identifier="GST_PLUGIN_ERROR_NAME_MISMATCH"/>
16585     </enumeration>
16586     <class name="PluginFeature"
16587            c:symbol-prefix="plugin_feature"
16588            c:type="GstPluginFeature"
16589            parent="Object"
16590            abstract="1"
16591            glib:type-name="GstPluginFeature"
16592            glib:get-type="gst_plugin_feature_get_type"
16593            glib:type-struct="PluginFeatureClass">
16594       <doc xml:whitespace="preserve">This is a base class for anything that can be added to a #GstPlugin.</doc>
16595       <function name="list_copy"
16596                 c:identifier="gst_plugin_feature_list_copy"
16597                 version="0.10.26">
16598         <doc xml:whitespace="preserve">Copies the list of features. Caller should call @gst_plugin_feature_list_free
16599 when done with the list.
16600 with each feature's reference count incremented.</doc>
16601         <return-value transfer-ownership="full">
16602           <doc xml:whitespace="preserve">a copy of @list,</doc>
16603           <type name="GLib.List" c:type="GList*">
16604             <type name="PluginFeature"/>
16605           </type>
16606         </return-value>
16607         <parameters>
16608           <parameter name="list" transfer-ownership="none">
16609             <doc xml:whitespace="preserve">list of #GstPluginFeature</doc>
16610             <type name="GLib.List" c:type="GList*">
16611               <type name="PluginFeature"/>
16612             </type>
16613           </parameter>
16614         </parameters>
16615       </function>
16616       <function name="list_debug"
16617                 c:identifier="gst_plugin_feature_list_debug"
16618                 version="0.10.31">
16619         <doc xml:whitespace="preserve">Debug the plugin feature names in @list.</doc>
16620         <return-value transfer-ownership="none">
16621           <type name="none" c:type="void"/>
16622         </return-value>
16623         <parameters>
16624           <parameter name="list" transfer-ownership="none">
16625             <doc xml:whitespace="preserve">a #GList of plugin features</doc>
16626             <type name="GLib.List" c:type="GList*">
16627               <type name="PluginFeature"/>
16628             </type>
16629           </parameter>
16630         </parameters>
16631       </function>
16632       <function name="list_free" c:identifier="gst_plugin_feature_list_free">
16633         <doc xml:whitespace="preserve">Unrefs each member of @list, then frees the list.</doc>
16634         <return-value transfer-ownership="none">
16635           <type name="none" c:type="void"/>
16636         </return-value>
16637         <parameters>
16638           <parameter name="list" transfer-ownership="full">
16639             <doc xml:whitespace="preserve">list of #GstPluginFeature</doc>
16640             <type name="GLib.List" c:type="GList*">
16641               <type name="PluginFeature"/>
16642             </type>
16643           </parameter>
16644         </parameters>
16645       </function>
16646       <function name="rank_compare_func"
16647                 c:identifier="gst_plugin_feature_rank_compare_func"
16648                 version="0.10.31">
16649         <doc xml:whitespace="preserve">Compares the two given #GstPluginFeature instances. This function can be
16650 used as a #GCompareFunc when sorting by rank and then by name.
16651 equal but the name of p1 comes before the name of p2; zero if the rank
16652 and names are equal; positive value if the rank of p1 &lt; the rank of p2 or the
16653 ranks are equal but the name of p2 comes after the name of p1</doc>
16654         <return-value transfer-ownership="none">
16655           <doc xml:whitespace="preserve">negative value if the rank of p1 &gt; the rank of p2 or the ranks are</doc>
16656           <type name="gint" c:type="gint"/>
16657         </return-value>
16658         <parameters>
16659           <parameter name="p1" transfer-ownership="none">
16660             <doc xml:whitespace="preserve">a #GstPluginFeature</doc>
16661             <type name="gpointer" c:type="gconstpointer"/>
16662           </parameter>
16663           <parameter name="p2" transfer-ownership="none">
16664             <doc xml:whitespace="preserve">a #GstPluginFeature</doc>
16665             <type name="gpointer" c:type="gconstpointer"/>
16666           </parameter>
16667         </parameters>
16668       </function>
16669       <method name="check_version"
16670               c:identifier="gst_plugin_feature_check_version">
16671         <doc xml:whitespace="preserve">Checks whether the given plugin feature is at least
16672 the required version
16673 the required version, otherwise #FALSE.</doc>
16674         <return-value transfer-ownership="none">
16675           <doc xml:whitespace="preserve">#TRUE if the plugin feature has at least</doc>
16676           <type name="gboolean" c:type="gboolean"/>
16677         </return-value>
16678         <parameters>
16679           <parameter name="min_major" transfer-ownership="none">
16680             <doc xml:whitespace="preserve">minimum required major version</doc>
16681             <type name="guint" c:type="guint"/>
16682           </parameter>
16683           <parameter name="min_minor" transfer-ownership="none">
16684             <doc xml:whitespace="preserve">minimum required minor version</doc>
16685             <type name="guint" c:type="guint"/>
16686           </parameter>
16687           <parameter name="min_micro" transfer-ownership="none">
16688             <doc xml:whitespace="preserve">minimum required micro version</doc>
16689             <type name="guint" c:type="guint"/>
16690           </parameter>
16691         </parameters>
16692       </method>
16693       <method name="get_name" c:identifier="gst_plugin_feature_get_name">
16694         <doc xml:whitespace="preserve">Gets the name of a plugin feature.</doc>
16695         <return-value transfer-ownership="none">
16696           <doc xml:whitespace="preserve">the name</doc>
16697           <type name="utf8" c:type="gchar*"/>
16698         </return-value>
16699       </method>
16700       <method name="get_rank" c:identifier="gst_plugin_feature_get_rank">
16701         <doc xml:whitespace="preserve">Gets the rank of a plugin feature.</doc>
16702         <return-value transfer-ownership="none">
16703           <doc xml:whitespace="preserve">The rank of the feature</doc>
16704           <type name="guint" c:type="guint"/>
16705         </return-value>
16706       </method>
16707       <method name="load" c:identifier="gst_plugin_feature_load">
16708         <doc xml:whitespace="preserve">Loads the plugin containing @feature if it's not already loaded. @feature is
16709 unaffected; use the return value instead.
16710 Normally this function is used like this:
16711 |[
16712 GstPluginFeature *loaded_feature;
16713 loaded_feature = gst_plugin_feature_load (feature);
16714 // presumably, we're no longer interested in the potentially-unloaded feature
16715 gst_object_unref (feature);
16716 feature = loaded_feature;
16717 ]|</doc>
16718         <return-value transfer-ownership="full">
16719           <doc xml:whitespace="preserve">a reference to the loaded feature, or NULL on error</doc>
16720           <type name="PluginFeature" c:type="GstPluginFeature*"/>
16721         </return-value>
16722       </method>
16723       <method name="set_name" c:identifier="gst_plugin_feature_set_name">
16724         <doc xml:whitespace="preserve">Sets the name of a plugin feature. The name uniquely identifies a feature
16725 within all features of the same type. Renaming a plugin feature is not
16726 allowed. A copy is made of the name so you should free the supplied @name
16727 after calling this function.</doc>
16728         <return-value transfer-ownership="none">
16729           <type name="none" c:type="void"/>
16730         </return-value>
16731         <parameters>
16732           <parameter name="name" transfer-ownership="none">
16733             <doc xml:whitespace="preserve">the name to set</doc>
16734             <type name="utf8" c:type="gchar*"/>
16735           </parameter>
16736         </parameters>
16737       </method>
16738       <method name="set_rank" c:identifier="gst_plugin_feature_set_rank">
16739         <doc xml:whitespace="preserve">Specifies a rank for a plugin feature, so that autoplugging uses
16740 the most appropriate feature.</doc>
16741         <return-value transfer-ownership="none">
16742           <type name="none" c:type="void"/>
16743         </return-value>
16744         <parameters>
16745           <parameter name="rank" transfer-ownership="none">
16746             <doc xml:whitespace="preserve">rank value - higher number means more priority rank</doc>
16747             <type name="guint" c:type="guint"/>
16748           </parameter>
16749         </parameters>
16750       </method>
16751       <method name="type_name_filter"
16752               c:identifier="gst_plugin_feature_type_name_filter">
16753         <doc xml:whitespace="preserve">Compares type and name of plugin feature. Can be used with gst_filter_run().</doc>
16754         <return-value transfer-ownership="none">
16755           <doc xml:whitespace="preserve">TRUE if equal.</doc>
16756           <type name="gboolean" c:type="gboolean"/>
16757         </return-value>
16758         <parameters>
16759           <parameter name="data" transfer-ownership="none">
16760             <doc xml:whitespace="preserve">the type and name to check against</doc>
16761             <type name="TypeNameData" c:type="GstTypeNameData*"/>
16762           </parameter>
16763         </parameters>
16764       </method>
16765       <field name="object">
16766         <type name="Object" c:type="GstObject"/>
16767       </field>
16768       <field name="loaded" readable="0" private="1">
16769         <type name="gboolean" c:type="gboolean"/>
16770       </field>
16771       <field name="name" readable="0" private="1">
16772         <type name="utf8" c:type="gchar*"/>
16773       </field>
16774       <field name="rank" readable="0" private="1">
16775         <type name="guint" c:type="guint"/>
16776       </field>
16777       <field name="plugin_name" readable="0" private="1">
16778         <type name="utf8" c:type="gchar*"/>
16779       </field>
16780       <field name="plugin" readable="0" private="1">
16781         <type name="Plugin" c:type="GstPlugin*"/>
16782       </field>
16783       <field name="_gst_reserved" readable="0" private="1">
16784         <array zero-terminated="0" c:type="gpointer" fixed-size="3">
16785           <type name="gpointer" c:type="gpointer"/>
16786         </array>
16787       </field>
16788     </class>
16789     <record name="PluginFeatureClass"
16790             c:type="GstPluginFeatureClass"
16791             glib:is-gtype-struct-for="PluginFeature">
16792       <field name="parent_class">
16793         <type name="ObjectClass" c:type="GstObjectClass"/>
16794       </field>
16795       <field name="_gst_reserved" readable="0" private="1">
16796         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
16797           <type name="gpointer" c:type="gpointer"/>
16798         </array>
16799       </field>
16800     </record>
16801     <callback name="PluginFeatureFilter" c:type="GstPluginFeatureFilter">
16802       <doc xml:whitespace="preserve">A function that can be used with e.g. gst_registry_feature_filter()
16803 to get a list of pluginfeature that match certain criteria.</doc>
16804       <return-value transfer-ownership="none">
16805         <doc xml:whitespace="preserve">%TRUE for a positive match, %FALSE otherwise</doc>
16806         <type name="gboolean" c:type="gboolean"/>
16807       </return-value>
16808       <parameters>
16809         <parameter name="feature" transfer-ownership="none">
16810           <doc xml:whitespace="preserve">the pluginfeature to check</doc>
16811           <type name="PluginFeature" c:type="GstPluginFeature*"/>
16812         </parameter>
16813         <parameter name="user_data" transfer-ownership="none" closure="1">
16814           <doc xml:whitespace="preserve">the user_data that has been passed on e.g. gst_registry_feature_filter()</doc>
16815           <type name="gpointer" c:type="gpointer"/>
16816         </parameter>
16817       </parameters>
16818     </callback>
16819     <callback name="PluginFilter" c:type="GstPluginFilter">
16820       <doc xml:whitespace="preserve">A function that can be used with e.g. gst_registry_plugin_filter()
16821 to get a list of plugins that match certain criteria.</doc>
16822       <return-value transfer-ownership="none">
16823         <doc xml:whitespace="preserve">TRUE for a positive match, FALSE otherwise</doc>
16824         <type name="gboolean" c:type="gboolean"/>
16825       </return-value>
16826       <parameters>
16827         <parameter name="plugin" transfer-ownership="none">
16828           <doc xml:whitespace="preserve">the plugin to check</doc>
16829           <type name="Plugin" c:type="GstPlugin*"/>
16830         </parameter>
16831         <parameter name="user_data" transfer-ownership="none" closure="1">
16832           <doc xml:whitespace="preserve">the user_data that has been passed on e.g. gst_registry_plugin_filter()</doc>
16833           <type name="gpointer" c:type="gpointer"/>
16834         </parameter>
16835       </parameters>
16836     </callback>
16837     <bitfield name="PluginFlags" c:type="GstPluginFlags">
16838       <doc xml:whitespace="preserve">The plugin loading state</doc>
16839       <member name="cached" value="1" c:identifier="GST_PLUGIN_FLAG_CACHED"/>
16840       <member name="blacklisted"
16841               value="2"
16842               c:identifier="GST_PLUGIN_FLAG_BLACKLISTED"/>
16843     </bitfield>
16844     <callback name="PluginInitFullFunc"
16845               c:type="GstPluginInitFullFunc"
16846               version="0.10.24">
16847       <doc xml:whitespace="preserve">A plugin should provide a pointer to a function of either #GstPluginInitFunc
16848 or this type in the plugin_desc struct.
16849 The function will be called by the loader at startup. One would then
16850 register each #GstPluginFeature. This version allows
16851 user data to be passed to init function (useful for bindings).</doc>
16852       <return-value transfer-ownership="none">
16853         <doc xml:whitespace="preserve">%TRUE if plugin initialised successfully</doc>
16854         <type name="gboolean" c:type="gboolean"/>
16855       </return-value>
16856       <parameters>
16857         <parameter name="plugin" transfer-ownership="none">
16858           <doc xml:whitespace="preserve">The plugin object</doc>
16859           <type name="Plugin" c:type="GstPlugin*"/>
16860         </parameter>
16861         <parameter name="user_data" transfer-ownership="none" closure="1">
16862           <doc xml:whitespace="preserve">extra data</doc>
16863           <type name="gpointer" c:type="gpointer"/>
16864         </parameter>
16865       </parameters>
16866     </callback>
16867     <callback name="PluginInitFunc" c:type="GstPluginInitFunc">
16868       <doc xml:whitespace="preserve">A plugin should provide a pointer to a function of this type in the
16869 plugin_desc struct.
16870 This function will be called by the loader at startup. One would then
16871 register each #GstPluginFeature.</doc>
16872       <return-value transfer-ownership="none">
16873         <doc xml:whitespace="preserve">%TRUE if plugin initialised successfully</doc>
16874         <type name="gboolean" c:type="gboolean"/>
16875       </return-value>
16876       <parameters>
16877         <parameter name="plugin" transfer-ownership="none">
16878           <doc xml:whitespace="preserve">The plugin object</doc>
16879           <type name="Plugin" c:type="GstPlugin*"/>
16880         </parameter>
16881       </parameters>
16882     </callback>
16883     <record name="PluginPrivate" c:type="GstPluginPrivate" disguised="1">
16884     </record>
16885     <record name="Poll" c:type="GstPoll" disguised="1">
16886       <doc xml:whitespace="preserve">A #GstPoll keeps track of file descriptors much like fd_set (used with
16887 select()) or a struct pollfd array (used with poll()). Once created with
16888 gst_poll_new(), the set can be used to wait for file descriptors to be
16889 readable and/or writeable. It is possible to make this wait be controlled
16890 by specifying %TRUE for the @controllable flag when creating the set (or
16891 later calling gst_poll_set_controllable()).
16892 New file descriptors are added to the set using gst_poll_add_fd(), and
16893 removed using gst_poll_remove_fd(). Controlling which file descriptors
16894 should be waited for to become readable and/or writeable are done using
16895 gst_poll_fd_ctl_read() and gst_poll_fd_ctl_write().
16896 Use gst_poll_wait() to wait for the file descriptors to actually become
16897 readable and/or writeable, or to timeout if no file descriptor is available
16898 in time. The wait can be controlled by calling gst_poll_restart() and
16899 gst_poll_set_flushing().
16900 Once the file descriptor set has been waited for, one can use
16901 gst_poll_fd_has_closed() to see if the file descriptor has been closed,
16902 gst_poll_fd_has_error() to see if it has generated an error,
16903 gst_poll_fd_can_read() to see if it is possible to read from the file
16904 descriptor, and gst_poll_fd_can_write() to see if it is possible to
16905 write to it.</doc>
16906       <method name="add_fd" c:identifier="gst_poll_add_fd" version="0.10.18">
16907         <doc xml:whitespace="preserve">Add a file descriptor to the file descriptor set.</doc>
16908         <return-value transfer-ownership="none">
16909           <doc xml:whitespace="preserve">%TRUE if the file descriptor was successfully added to the set.</doc>
16910           <type name="gboolean" c:type="gboolean"/>
16911         </return-value>
16912         <parameters>
16913           <parameter name="fd" transfer-ownership="none">
16914             <doc xml:whitespace="preserve">a file descriptor.</doc>
16915             <type name="PollFD" c:type="GstPollFD*"/>
16916           </parameter>
16917         </parameters>
16918       </method>
16919       <method name="fd_can_read"
16920               c:identifier="gst_poll_fd_can_read"
16921               version="0.10.18">
16922         <doc xml:whitespace="preserve">Check if @fd in @set has data to be read.</doc>
16923         <return-value transfer-ownership="none">
16924           <doc xml:whitespace="preserve">%TRUE if the descriptor has data to be read.</doc>
16925           <type name="gboolean" c:type="gboolean"/>
16926         </return-value>
16927         <parameters>
16928           <parameter name="fd" transfer-ownership="none">
16929             <doc xml:whitespace="preserve">a file descriptor.</doc>
16930             <type name="PollFD" c:type="GstPollFD*"/>
16931           </parameter>
16932         </parameters>
16933       </method>
16934       <method name="fd_can_write"
16935               c:identifier="gst_poll_fd_can_write"
16936               version="0.10.18">
16937         <doc xml:whitespace="preserve">Check if @fd in @set can be used for writing.</doc>
16938         <return-value transfer-ownership="none">
16939           <doc xml:whitespace="preserve">%TRUE if the descriptor can be used for writing.</doc>
16940           <type name="gboolean" c:type="gboolean"/>
16941         </return-value>
16942         <parameters>
16943           <parameter name="fd" transfer-ownership="none">
16944             <doc xml:whitespace="preserve">a file descriptor.</doc>
16945             <type name="PollFD" c:type="GstPollFD*"/>
16946           </parameter>
16947         </parameters>
16948       </method>
16949       <method name="fd_ctl_read"
16950               c:identifier="gst_poll_fd_ctl_read"
16951               version="0.10.18">
16952         <doc xml:whitespace="preserve">Control whether the descriptor @fd in @set will be monitored for
16953 readability.</doc>
16954         <return-value transfer-ownership="none">
16955           <doc xml:whitespace="preserve">%TRUE if the descriptor was successfully updated.</doc>
16956           <type name="gboolean" c:type="gboolean"/>
16957         </return-value>
16958         <parameters>
16959           <parameter name="fd" transfer-ownership="none">
16960             <doc xml:whitespace="preserve">a file descriptor.</doc>
16961             <type name="PollFD" c:type="GstPollFD*"/>
16962           </parameter>
16963           <parameter name="active" transfer-ownership="none">
16964             <doc xml:whitespace="preserve">a new status.</doc>
16965             <type name="gboolean" c:type="gboolean"/>
16966           </parameter>
16967         </parameters>
16968       </method>
16969       <method name="fd_ctl_write"
16970               c:identifier="gst_poll_fd_ctl_write"
16971               version="0.10.18">
16972         <doc xml:whitespace="preserve">Control whether the descriptor @fd in @set will be monitored for
16973 writability.</doc>
16974         <return-value transfer-ownership="none">
16975           <doc xml:whitespace="preserve">%TRUE if the descriptor was successfully updated.</doc>
16976           <type name="gboolean" c:type="gboolean"/>
16977         </return-value>
16978         <parameters>
16979           <parameter name="fd" transfer-ownership="none">
16980             <doc xml:whitespace="preserve">a file descriptor.</doc>
16981             <type name="PollFD" c:type="GstPollFD*"/>
16982           </parameter>
16983           <parameter name="active" transfer-ownership="none">
16984             <doc xml:whitespace="preserve">a new status.</doc>
16985             <type name="gboolean" c:type="gboolean"/>
16986           </parameter>
16987         </parameters>
16988       </method>
16989       <method name="fd_has_closed"
16990               c:identifier="gst_poll_fd_has_closed"
16991               version="0.10.18">
16992         <doc xml:whitespace="preserve">Check if @fd in @set has closed the connection.</doc>
16993         <return-value transfer-ownership="none">
16994           <doc xml:whitespace="preserve">%TRUE if the connection was closed.</doc>
16995           <type name="gboolean" c:type="gboolean"/>
16996         </return-value>
16997         <parameters>
16998           <parameter name="fd" transfer-ownership="none">
16999             <doc xml:whitespace="preserve">a file descriptor.</doc>
17000             <type name="PollFD" c:type="GstPollFD*"/>
17001           </parameter>
17002         </parameters>
17003       </method>
17004       <method name="fd_has_error"
17005               c:identifier="gst_poll_fd_has_error"
17006               version="0.10.18">
17007         <doc xml:whitespace="preserve">Check if @fd in @set has an error.</doc>
17008         <return-value transfer-ownership="none">
17009           <doc xml:whitespace="preserve">%TRUE if the descriptor has an error.</doc>
17010           <type name="gboolean" c:type="gboolean"/>
17011         </return-value>
17012         <parameters>
17013           <parameter name="fd" transfer-ownership="none">
17014             <doc xml:whitespace="preserve">a file descriptor.</doc>
17015             <type name="PollFD" c:type="GstPollFD*"/>
17016           </parameter>
17017         </parameters>
17018       </method>
17019       <method name="fd_ignored"
17020               c:identifier="gst_poll_fd_ignored"
17021               version="0.10.18">
17022         <doc xml:whitespace="preserve">Mark @fd as ignored so that the next call to gst_poll_wait() will yield
17023 the same result for @fd as last time. This function must be called if no
17024 operation (read/write/recv/send/etc.) will be performed on @fd before
17025 the next call to gst_poll_wait().
17026 The reason why this is needed is because the underlying implementation
17027 might not allow querying the fd more than once between calls to one of
17028 the re-enabling operations.</doc>
17029         <return-value transfer-ownership="none">
17030           <type name="none" c:type="void"/>
17031         </return-value>
17032         <parameters>
17033           <parameter name="fd" transfer-ownership="none">
17034             <doc xml:whitespace="preserve">a file descriptor.</doc>
17035             <type name="PollFD" c:type="GstPollFD*"/>
17036           </parameter>
17037         </parameters>
17038       </method>
17039       <method name="free" c:identifier="gst_poll_free" version="0.10.18">
17040         <doc xml:whitespace="preserve">Free a file descriptor set.</doc>
17041         <return-value transfer-ownership="none">
17042           <type name="none" c:type="void"/>
17043         </return-value>
17044       </method>
17045       <method name="get_read_gpollfd"
17046               c:identifier="gst_poll_get_read_gpollfd"
17047               version="0.10.32">
17048         <doc xml:whitespace="preserve">Get a GPollFD for the reading part of the control socket. This is useful when
17049 integrating with a GSource and GMainLoop.</doc>
17050         <return-value transfer-ownership="none">
17051           <type name="none" c:type="void"/>
17052         </return-value>
17053         <parameters>
17054           <parameter name="fd" transfer-ownership="none">
17055             <doc xml:whitespace="preserve">a #GPollFD</doc>
17056             <type name="GLib.PollFD" c:type="GPollFD*"/>
17057           </parameter>
17058         </parameters>
17059       </method>
17060       <method name="read_control"
17061               c:identifier="gst_poll_read_control"
17062               version="0.10.23">
17063         <doc xml:whitespace="preserve">Read a byte from the control socket of the controllable @set.
17064 This function is mostly useful for timer #GstPoll objects created with
17065 gst_poll_new_timer(). 
17066 was no byte to read.</doc>
17067         <return-value transfer-ownership="none">
17068           <doc xml:whitespace="preserve">%TRUE on success. %FALSE when @set is not controllable or when there</doc>
17069           <type name="gboolean" c:type="gboolean"/>
17070         </return-value>
17071       </method>
17072       <method name="remove_fd"
17073               c:identifier="gst_poll_remove_fd"
17074               version="0.10.18">
17075         <doc xml:whitespace="preserve">Remove a file descriptor from the file descriptor set.</doc>
17076         <return-value transfer-ownership="none">
17077           <doc xml:whitespace="preserve">%TRUE if the file descriptor was successfully removed from the set.</doc>
17078           <type name="gboolean" c:type="gboolean"/>
17079         </return-value>
17080         <parameters>
17081           <parameter name="fd" transfer-ownership="none">
17082             <doc xml:whitespace="preserve">a file descriptor.</doc>
17083             <type name="PollFD" c:type="GstPollFD*"/>
17084           </parameter>
17085         </parameters>
17086       </method>
17087       <method name="restart" c:identifier="gst_poll_restart" version="0.10.18">
17088         <doc xml:whitespace="preserve">Restart any gst_poll_wait() that is in progress. This function is typically
17089 used after adding or removing descriptors to @set.
17090 If @set is not controllable, then this call will have no effect.</doc>
17091         <return-value transfer-ownership="none">
17092           <type name="none" c:type="void"/>
17093         </return-value>
17094       </method>
17095       <method name="set_controllable"
17096               c:identifier="gst_poll_set_controllable"
17097               version="0.10.18">
17098         <doc xml:whitespace="preserve">When @controllable is %TRUE, this function ensures that future calls to
17099 gst_poll_wait() will be affected by gst_poll_restart() and
17100 gst_poll_set_flushing().</doc>
17101         <return-value transfer-ownership="none">
17102           <doc xml:whitespace="preserve">%TRUE if the controllability of @set could be updated.</doc>
17103           <type name="gboolean" c:type="gboolean"/>
17104         </return-value>
17105         <parameters>
17106           <parameter name="controllable" transfer-ownership="none">
17107             <doc xml:whitespace="preserve">new controllable state.</doc>
17108             <type name="gboolean" c:type="gboolean"/>
17109           </parameter>
17110         </parameters>
17111       </method>
17112       <method name="set_flushing"
17113               c:identifier="gst_poll_set_flushing"
17114               version="0.10.18">
17115         <doc xml:whitespace="preserve">When @flushing is %TRUE, this function ensures that current and future calls
17116 to gst_poll_wait() will return -1, with errno set to EBUSY.
17117 Unsetting the flushing state will restore normal operation of @set.</doc>
17118         <return-value transfer-ownership="none">
17119           <type name="none" c:type="void"/>
17120         </return-value>
17121         <parameters>
17122           <parameter name="flushing" transfer-ownership="none">
17123             <doc xml:whitespace="preserve">new flushing state.</doc>
17124             <type name="gboolean" c:type="gboolean"/>
17125           </parameter>
17126         </parameters>
17127       </method>
17128       <method name="wait" c:identifier="gst_poll_wait" version="0.10.18">
17129         <doc xml:whitespace="preserve">Wait for activity on the file descriptors in @set. This function waits up to
17130 the specified @timeout.  A timeout of #GST_CLOCK_TIME_NONE waits forever.
17131 For #GstPoll objects created with gst_poll_new(), this function can only be
17132 called from a single thread at a time.  If called from multiple threads,
17133 -1 will be returned with errno set to EPERM.
17134 This is not true for timer #GstPoll objects created with
17135 gst_poll_new_timer(), where it is allowed to have multiple threads waiting
17136 simultaneously.
17137 activity was detected after @timeout. If an error occurs, -1 is returned
17138 and errno is set.</doc>
17139         <return-value transfer-ownership="none">
17140           <doc xml:whitespace="preserve">The number of #GstPollFD in @set that have activity or 0 when no</doc>
17141           <type name="gint" c:type="gint"/>
17142         </return-value>
17143         <parameters>
17144           <parameter name="timeout" transfer-ownership="none">
17145             <doc xml:whitespace="preserve">a timeout in nanoseconds.</doc>
17146             <type name="ClockTime" c:type="GstClockTime"/>
17147           </parameter>
17148         </parameters>
17149       </method>
17150       <method name="write_control"
17151               c:identifier="gst_poll_write_control"
17152               version="0.10.23">
17153         <doc xml:whitespace="preserve">Write a byte to the control socket of the controllable @set.
17154 This function is mostly useful for timer #GstPoll objects created with
17155 gst_poll_new_timer(). 
17156 It will make any current and future gst_poll_wait() function return with
17157 1, meaning the control socket is set. After an equal amount of calls to
17158 gst_poll_read_control() have been performed, calls to gst_poll_wait() will
17159 block again until their timeout expired.
17160 byte could not be written.</doc>
17161         <return-value transfer-ownership="none">
17162           <doc xml:whitespace="preserve">%TRUE on success. %FALSE when @set is not controllable or when the</doc>
17163           <type name="gboolean" c:type="gboolean"/>
17164         </return-value>
17165       </method>
17166     </record>
17167     <record name="PollFD" c:type="GstPollFD">
17168       <doc xml:whitespace="preserve">A file descriptor object.</doc>
17169       <field name="fd" writable="1">
17170         <type name="gint" c:type="int"/>
17171       </field>
17172       <field name="idx" readable="0" private="1">
17173         <type name="gint" c:type="gint"/>
17174       </field>
17175       <method name="init" c:identifier="gst_poll_fd_init" version="0.10.18">
17176         <doc xml:whitespace="preserve">Initializes @fd. Alternatively you can initialize it with
17177 #GST_POLL_FD_INIT.</doc>
17178         <return-value transfer-ownership="none">
17179           <type name="none" c:type="void"/>
17180         </return-value>
17181       </method>
17182     </record>
17183     <interface name="Preset"
17184                c:symbol-prefix="preset"
17185                c:type="GstPreset"
17186                glib:type-name="GstPreset"
17187                glib:get-type="gst_preset_get_type"
17188                glib:type-struct="PresetInterface">
17189       <doc xml:whitespace="preserve">This interface offers methods to query and manipulate parameter preset sets.
17190 A preset is a bunch of property settings, together with meta data and a name.
17191 The name of a preset serves as key for subsequent method calls to manipulate
17192 single presets.
17193 All instances of one type will share the list of presets. The list is created
17194 on demand, if presets are not used, the list is not created.
17195 The interface comes with a default implementation that serves most plugins.
17196 Wrapper plugins will override most methods to implement support for the
17197 native preset format of those wrapped plugins.
17198 One method that is useful to be overridden is gst_preset_get_property_names().
17199 With that one can control which properties are saved and in which order.</doc>
17200       <virtual-method name="delete_preset"
17201                       invoker="delete_preset"
17202                       version="0.10.20">
17203         <doc xml:whitespace="preserve">Delete the given preset.</doc>
17204         <return-value transfer-ownership="none">
17205           <doc xml:whitespace="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc>
17206           <type name="gboolean" c:type="gboolean"/>
17207         </return-value>
17208         <parameters>
17209           <parameter name="name" transfer-ownership="none">
17210             <doc xml:whitespace="preserve">preset name to remove</doc>
17211             <type name="utf8" c:type="gchar*"/>
17212           </parameter>
17213         </parameters>
17214       </virtual-method>
17215       <virtual-method name="get_meta" invoker="get_meta" version="0.10.20">
17216         <doc xml:whitespace="preserve">Gets the @value for an existing meta data @tag. Meta data @tag names can be
17217 something like e.g. "comment". Returned values need to be released when done.
17218 or no value for the given @tag</doc>
17219         <return-value transfer-ownership="none">
17220           <doc xml:whitespace="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc>
17221           <type name="gboolean" c:type="gboolean"/>
17222         </return-value>
17223         <parameters>
17224           <parameter name="name" transfer-ownership="none">
17225             <doc xml:whitespace="preserve">preset name</doc>
17226             <type name="utf8" c:type="gchar*"/>
17227           </parameter>
17228           <parameter name="tag" transfer-ownership="none">
17229             <doc xml:whitespace="preserve">meta data item name</doc>
17230             <type name="utf8" c:type="gchar*"/>
17231           </parameter>
17232           <parameter name="value"
17233                      direction="out"
17234                      caller-allocates="0"
17235                      transfer-ownership="full">
17236             <doc xml:whitespace="preserve">value</doc>
17237             <type name="utf8" c:type="gchar**"/>
17238           </parameter>
17239         </parameters>
17240       </virtual-method>
17241       <virtual-method name="get_preset_names"
17242                       invoker="get_preset_names"
17243                       version="0.10.20">
17244         <doc xml:whitespace="preserve">Get a copy of preset names as a NULL terminated string array.
17245 list with names, ue g_strfreev() after usage.</doc>
17246         <return-value transfer-ownership="full">
17247           <array c:type="gchar**">
17248             <type name="utf8"/>
17249           </array>
17250         </return-value>
17251       </virtual-method>
17252       <virtual-method name="get_property_names"
17253                       invoker="get_property_names"
17254                       version="0.10.20">
17255         <doc xml:whitespace="preserve">Get a the names of the GObject properties that can be used for presets.
17256 array of property names which should be freed with g_strfreev() after use.</doc>
17257         <return-value transfer-ownership="full">
17258           <doc xml:whitespace="preserve">an</doc>
17259           <array c:type="gchar**">
17260             <type name="utf8"/>
17261           </array>
17262         </return-value>
17263       </virtual-method>
17264       <virtual-method name="load_preset"
17265                       invoker="load_preset"
17266                       version="0.10.20">
17267         <doc xml:whitespace="preserve">Load the given preset.</doc>
17268         <return-value transfer-ownership="none">
17269           <doc xml:whitespace="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc>
17270           <type name="gboolean" c:type="gboolean"/>
17271         </return-value>
17272         <parameters>
17273           <parameter name="name" transfer-ownership="none">
17274             <doc xml:whitespace="preserve">preset name to load</doc>
17275             <type name="utf8" c:type="gchar*"/>
17276           </parameter>
17277         </parameters>
17278       </virtual-method>
17279       <virtual-method name="rename_preset"
17280                       invoker="rename_preset"
17281                       version="0.10.20">
17282         <doc xml:whitespace="preserve">Renames a preset. If there is already a preset by the @new_name it will be
17283 overwritten.</doc>
17284         <return-value transfer-ownership="none">
17285           <doc xml:whitespace="preserve">%TRUE for success, %FALSE if e.g. there is no preset with @old_name</doc>
17286           <type name="gboolean" c:type="gboolean"/>
17287         </return-value>
17288         <parameters>
17289           <parameter name="old_name" transfer-ownership="none">
17290             <doc xml:whitespace="preserve">current preset name</doc>
17291             <type name="utf8" c:type="gchar*"/>
17292           </parameter>
17293           <parameter name="new_name" transfer-ownership="none">
17294             <doc xml:whitespace="preserve">new preset name</doc>
17295             <type name="utf8" c:type="gchar*"/>
17296           </parameter>
17297         </parameters>
17298       </virtual-method>
17299       <virtual-method name="save_preset"
17300                       invoker="save_preset"
17301                       version="0.10.20">
17302         <doc xml:whitespace="preserve">Save the current object settings as a preset under the given name. If there
17303 is already a preset by this @name it will be overwritten.</doc>
17304         <return-value transfer-ownership="none">
17305           <doc xml:whitespace="preserve">%TRUE for success, %FALSE</doc>
17306           <type name="gboolean" c:type="gboolean"/>
17307         </return-value>
17308         <parameters>
17309           <parameter name="name" transfer-ownership="none">
17310             <doc xml:whitespace="preserve">preset name to save</doc>
17311             <type name="utf8" c:type="gchar*"/>
17312           </parameter>
17313         </parameters>
17314       </virtual-method>
17315       <virtual-method name="set_meta" invoker="set_meta" version="0.10.20">
17316         <doc xml:whitespace="preserve">Sets a new @value for an existing meta data item or adds a new item. Meta
17317 data @tag names can be something like e.g. "comment". Supplying %NULL for the</doc>
17318         <return-value transfer-ownership="none">
17319           <doc xml:whitespace="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc>
17320           <type name="gboolean" c:type="gboolean"/>
17321         </return-value>
17322         <parameters>
17323           <parameter name="name" transfer-ownership="none">
17324             <doc xml:whitespace="preserve">preset name</doc>
17325             <type name="utf8" c:type="gchar*"/>
17326           </parameter>
17327           <parameter name="tag" transfer-ownership="none">
17328             <doc xml:whitespace="preserve">meta data item name</doc>
17329             <type name="utf8" c:type="gchar*"/>
17330           </parameter>
17331           <parameter name="value" transfer-ownership="none">
17332             <doc xml:whitespace="preserve">new value</doc>
17333             <type name="utf8" c:type="gchar*"/>
17334           </parameter>
17335         </parameters>
17336       </virtual-method>
17337       <method name="delete_preset"
17338               c:identifier="gst_preset_delete_preset"
17339               version="0.10.20">
17340         <doc xml:whitespace="preserve">Delete the given preset.</doc>
17341         <return-value transfer-ownership="none">
17342           <doc xml:whitespace="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc>
17343           <type name="gboolean" c:type="gboolean"/>
17344         </return-value>
17345         <parameters>
17346           <parameter name="name" transfer-ownership="none">
17347             <doc xml:whitespace="preserve">preset name to remove</doc>
17348             <type name="utf8" c:type="gchar*"/>
17349           </parameter>
17350         </parameters>
17351       </method>
17352       <method name="get_meta"
17353               c:identifier="gst_preset_get_meta"
17354               version="0.10.20">
17355         <doc xml:whitespace="preserve">Gets the @value for an existing meta data @tag. Meta data @tag names can be
17356 something like e.g. "comment". Returned values need to be released when done.
17357 or no value for the given @tag</doc>
17358         <return-value transfer-ownership="none">
17359           <doc xml:whitespace="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc>
17360           <type name="gboolean" c:type="gboolean"/>
17361         </return-value>
17362         <parameters>
17363           <parameter name="name" transfer-ownership="none">
17364             <doc xml:whitespace="preserve">preset name</doc>
17365             <type name="utf8" c:type="gchar*"/>
17366           </parameter>
17367           <parameter name="tag" transfer-ownership="none">
17368             <doc xml:whitespace="preserve">meta data item name</doc>
17369             <type name="utf8" c:type="gchar*"/>
17370           </parameter>
17371           <parameter name="value"
17372                      direction="out"
17373                      caller-allocates="0"
17374                      transfer-ownership="full">
17375             <doc xml:whitespace="preserve">value</doc>
17376             <type name="utf8" c:type="gchar**"/>
17377           </parameter>
17378         </parameters>
17379       </method>
17380       <method name="get_preset_names"
17381               c:identifier="gst_preset_get_preset_names"
17382               version="0.10.20">
17383         <doc xml:whitespace="preserve">Get a copy of preset names as a NULL terminated string array.
17384 list with names, ue g_strfreev() after usage.</doc>
17385         <return-value transfer-ownership="full">
17386           <array c:type="gchar**">
17387             <type name="utf8"/>
17388           </array>
17389         </return-value>
17390       </method>
17391       <method name="get_property_names"
17392               c:identifier="gst_preset_get_property_names"
17393               version="0.10.20">
17394         <doc xml:whitespace="preserve">Get a the names of the GObject properties that can be used for presets.
17395 array of property names which should be freed with g_strfreev() after use.</doc>
17396         <return-value transfer-ownership="full">
17397           <doc xml:whitespace="preserve">an</doc>
17398           <array c:type="gchar**">
17399             <type name="utf8"/>
17400           </array>
17401         </return-value>
17402       </method>
17403       <method name="load_preset"
17404               c:identifier="gst_preset_load_preset"
17405               version="0.10.20">
17406         <doc xml:whitespace="preserve">Load the given preset.</doc>
17407         <return-value transfer-ownership="none">
17408           <doc xml:whitespace="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc>
17409           <type name="gboolean" c:type="gboolean"/>
17410         </return-value>
17411         <parameters>
17412           <parameter name="name" transfer-ownership="none">
17413             <doc xml:whitespace="preserve">preset name to load</doc>
17414             <type name="utf8" c:type="gchar*"/>
17415           </parameter>
17416         </parameters>
17417       </method>
17418       <method name="rename_preset"
17419               c:identifier="gst_preset_rename_preset"
17420               version="0.10.20">
17421         <doc xml:whitespace="preserve">Renames a preset. If there is already a preset by the @new_name it will be
17422 overwritten.</doc>
17423         <return-value transfer-ownership="none">
17424           <doc xml:whitespace="preserve">%TRUE for success, %FALSE if e.g. there is no preset with @old_name</doc>
17425           <type name="gboolean" c:type="gboolean"/>
17426         </return-value>
17427         <parameters>
17428           <parameter name="old_name" transfer-ownership="none">
17429             <doc xml:whitespace="preserve">current preset name</doc>
17430             <type name="utf8" c:type="gchar*"/>
17431           </parameter>
17432           <parameter name="new_name" transfer-ownership="none">
17433             <doc xml:whitespace="preserve">new preset name</doc>
17434             <type name="utf8" c:type="gchar*"/>
17435           </parameter>
17436         </parameters>
17437       </method>
17438       <method name="save_preset"
17439               c:identifier="gst_preset_save_preset"
17440               version="0.10.20">
17441         <doc xml:whitespace="preserve">Save the current object settings as a preset under the given name. If there
17442 is already a preset by this @name it will be overwritten.</doc>
17443         <return-value transfer-ownership="none">
17444           <doc xml:whitespace="preserve">%TRUE for success, %FALSE</doc>
17445           <type name="gboolean" c:type="gboolean"/>
17446         </return-value>
17447         <parameters>
17448           <parameter name="name" transfer-ownership="none">
17449             <doc xml:whitespace="preserve">preset name to save</doc>
17450             <type name="utf8" c:type="gchar*"/>
17451           </parameter>
17452         </parameters>
17453       </method>
17454       <method name="set_meta"
17455               c:identifier="gst_preset_set_meta"
17456               version="0.10.20">
17457         <doc xml:whitespace="preserve">Sets a new @value for an existing meta data item or adds a new item. Meta
17458 data @tag names can be something like e.g. "comment". Supplying %NULL for the</doc>
17459         <return-value transfer-ownership="none">
17460           <doc xml:whitespace="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc>
17461           <type name="gboolean" c:type="gboolean"/>
17462         </return-value>
17463         <parameters>
17464           <parameter name="name" transfer-ownership="none">
17465             <doc xml:whitespace="preserve">preset name</doc>
17466             <type name="utf8" c:type="gchar*"/>
17467           </parameter>
17468           <parameter name="tag" transfer-ownership="none">
17469             <doc xml:whitespace="preserve">meta data item name</doc>
17470             <type name="utf8" c:type="gchar*"/>
17471           </parameter>
17472           <parameter name="value" transfer-ownership="none">
17473             <doc xml:whitespace="preserve">new value</doc>
17474             <type name="utf8" c:type="gchar*"/>
17475           </parameter>
17476         </parameters>
17477       </method>
17478     </interface>
17479     <record name="PresetInterface"
17480             c:type="GstPresetInterface"
17481             glib:is-gtype-struct-for="Preset">
17482       <doc xml:whitespace="preserve">#GstPreset interface.</doc>
17483       <field name="parent">
17484         <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
17485       </field>
17486       <field name="get_preset_names">
17487         <callback name="get_preset_names">
17488           <return-value transfer-ownership="full">
17489             <array c:type="gchar**">
17490               <type name="utf8"/>
17491             </array>
17492           </return-value>
17493           <parameters>
17494             <parameter name="preset" transfer-ownership="none">
17495               <type name="Preset" c:type="GstPreset*"/>
17496             </parameter>
17497           </parameters>
17498         </callback>
17499       </field>
17500       <field name="get_property_names">
17501         <callback name="get_property_names">
17502           <return-value transfer-ownership="full">
17503             <doc xml:whitespace="preserve">an</doc>
17504             <array c:type="gchar**">
17505               <type name="utf8"/>
17506             </array>
17507           </return-value>
17508           <parameters>
17509             <parameter name="preset" transfer-ownership="none">
17510               <type name="Preset" c:type="GstPreset*"/>
17511             </parameter>
17512           </parameters>
17513         </callback>
17514       </field>
17515       <field name="load_preset">
17516         <callback name="load_preset">
17517           <return-value transfer-ownership="none">
17518             <doc xml:whitespace="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc>
17519             <type name="gboolean" c:type="gboolean"/>
17520           </return-value>
17521           <parameters>
17522             <parameter name="preset" transfer-ownership="none">
17523               <type name="Preset" c:type="GstPreset*"/>
17524             </parameter>
17525             <parameter name="name" transfer-ownership="none">
17526               <doc xml:whitespace="preserve">preset name to load</doc>
17527               <type name="utf8" c:type="gchar*"/>
17528             </parameter>
17529           </parameters>
17530         </callback>
17531       </field>
17532       <field name="save_preset">
17533         <callback name="save_preset">
17534           <return-value transfer-ownership="none">
17535             <doc xml:whitespace="preserve">%TRUE for success, %FALSE</doc>
17536             <type name="gboolean" c:type="gboolean"/>
17537           </return-value>
17538           <parameters>
17539             <parameter name="preset" transfer-ownership="none">
17540               <type name="Preset" c:type="GstPreset*"/>
17541             </parameter>
17542             <parameter name="name" transfer-ownership="none">
17543               <doc xml:whitespace="preserve">preset name to save</doc>
17544               <type name="utf8" c:type="gchar*"/>
17545             </parameter>
17546           </parameters>
17547         </callback>
17548       </field>
17549       <field name="rename_preset">
17550         <callback name="rename_preset">
17551           <return-value transfer-ownership="none">
17552             <doc xml:whitespace="preserve">%TRUE for success, %FALSE if e.g. there is no preset with @old_name</doc>
17553             <type name="gboolean" c:type="gboolean"/>
17554           </return-value>
17555           <parameters>
17556             <parameter name="preset" transfer-ownership="none">
17557               <type name="Preset" c:type="GstPreset*"/>
17558             </parameter>
17559             <parameter name="old_name" transfer-ownership="none">
17560               <doc xml:whitespace="preserve">current preset name</doc>
17561               <type name="utf8" c:type="gchar*"/>
17562             </parameter>
17563             <parameter name="new_name" transfer-ownership="none">
17564               <doc xml:whitespace="preserve">new preset name</doc>
17565               <type name="utf8" c:type="gchar*"/>
17566             </parameter>
17567           </parameters>
17568         </callback>
17569       </field>
17570       <field name="delete_preset">
17571         <callback name="delete_preset">
17572           <return-value transfer-ownership="none">
17573             <doc xml:whitespace="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc>
17574             <type name="gboolean" c:type="gboolean"/>
17575           </return-value>
17576           <parameters>
17577             <parameter name="preset" transfer-ownership="none">
17578               <type name="Preset" c:type="GstPreset*"/>
17579             </parameter>
17580             <parameter name="name" transfer-ownership="none">
17581               <doc xml:whitespace="preserve">preset name to remove</doc>
17582               <type name="utf8" c:type="gchar*"/>
17583             </parameter>
17584           </parameters>
17585         </callback>
17586       </field>
17587       <field name="set_meta">
17588         <callback name="set_meta">
17589           <return-value transfer-ownership="none">
17590             <doc xml:whitespace="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc>
17591             <type name="gboolean" c:type="gboolean"/>
17592           </return-value>
17593           <parameters>
17594             <parameter name="preset" transfer-ownership="none">
17595               <type name="Preset" c:type="GstPreset*"/>
17596             </parameter>
17597             <parameter name="name" transfer-ownership="none">
17598               <doc xml:whitespace="preserve">preset name</doc>
17599               <type name="utf8" c:type="gchar*"/>
17600             </parameter>
17601             <parameter name="tag" transfer-ownership="none">
17602               <doc xml:whitespace="preserve">meta data item name</doc>
17603               <type name="utf8" c:type="gchar*"/>
17604             </parameter>
17605             <parameter name="value" transfer-ownership="none">
17606               <doc xml:whitespace="preserve">new value</doc>
17607               <type name="utf8" c:type="gchar*"/>
17608             </parameter>
17609           </parameters>
17610         </callback>
17611       </field>
17612       <field name="get_meta">
17613         <callback name="get_meta">
17614           <return-value transfer-ownership="none">
17615             <doc xml:whitespace="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc>
17616             <type name="gboolean" c:type="gboolean"/>
17617           </return-value>
17618           <parameters>
17619             <parameter name="preset" transfer-ownership="none">
17620               <type name="Preset" c:type="GstPreset*"/>
17621             </parameter>
17622             <parameter name="name" transfer-ownership="none">
17623               <doc xml:whitespace="preserve">preset name</doc>
17624               <type name="utf8" c:type="gchar*"/>
17625             </parameter>
17626             <parameter name="tag" transfer-ownership="none">
17627               <doc xml:whitespace="preserve">meta data item name</doc>
17628               <type name="utf8" c:type="gchar*"/>
17629             </parameter>
17630             <parameter name="value"
17631                        direction="out"
17632                        caller-allocates="0"
17633                        transfer-ownership="full">
17634               <doc xml:whitespace="preserve">value</doc>
17635               <type name="utf8" c:type="gchar**"/>
17636             </parameter>
17637           </parameters>
17638         </callback>
17639       </field>
17640       <field name="_gst_reserved" readable="0" private="1">
17641         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
17642           <type name="gpointer" c:type="gpointer"/>
17643         </array>
17644       </field>
17645     </record>
17646     <enumeration name="ProgressType"
17647                  version="0.10.33"
17648                  c:type="GstProgressType">
17649       <doc xml:whitespace="preserve">The type of a %GST_MESSAGE_PROGRESS. The progress messages inform the
17650 application of the status of assynchronous tasks.</doc>
17651       <member name="start" value="0" c:identifier="GST_PROGRESS_TYPE_START"/>
17652       <member name="continue"
17653               value="1"
17654               c:identifier="GST_PROGRESS_TYPE_CONTINUE"/>
17655       <member name="complete"
17656               value="2"
17657               c:identifier="GST_PROGRESS_TYPE_COMPLETE"/>
17658       <member name="canceled"
17659               value="3"
17660               c:identifier="GST_PROGRESS_TYPE_CANCELED"/>
17661       <member name="error" value="4" c:identifier="GST_PROGRESS_TYPE_ERROR"/>
17662     </enumeration>
17663     <class name="ProxyPad"
17664            c:symbol-prefix="proxy_pad"
17665            c:type="GstProxyPad"
17666            parent="Pad"
17667            glib:type-name="GstProxyPad"
17668            glib:get-type="gst_proxy_pad_get_type"
17669            glib:type-struct="ProxyPadClass">
17670       <field name="pad">
17671         <type name="Pad" c:type="GstPad"/>
17672       </field>
17673       <field name="priv" readable="0" private="1">
17674         <type name="ProxyPadPrivate" c:type="GstProxyPadPrivate*"/>
17675       </field>
17676     </class>
17677     <record name="ProxyPadClass"
17678             c:type="GstProxyPadClass"
17679             glib:is-gtype-struct-for="ProxyPad">
17680       <field name="parent_class">
17681         <type name="PadClass" c:type="GstPadClass"/>
17682       </field>
17683       <field name="_gst_reserved" readable="0" private="1">
17684         <array zero-terminated="0" c:type="gpointer" fixed-size="1">
17685           <type name="gpointer" c:type="gpointer"/>
17686         </array>
17687       </field>
17688     </record>
17689     <record name="ProxyPadPrivate" c:type="GstProxyPadPrivate" disguised="1">
17690     </record>
17691     <enumeration name="QOSType" version="0.10.33" c:type="GstQOSType">
17692       <doc xml:whitespace="preserve">The different types of QoS events that can be given to the 
17693 gst_event_new_qos_full() method.</doc>
17694       <member name="overflow" value="0" c:identifier="GST_QOS_TYPE_OVERFLOW"/>
17695       <member name="underflow"
17696               value="1"
17697               c:identifier="GST_QOS_TYPE_UNDERFLOW"/>
17698       <member name="throttle" value="2" c:identifier="GST_QOS_TYPE_THROTTLE"/>
17699     </enumeration>
17700     <class name="Query"
17701            c:symbol-prefix="query"
17702            c:type="GstQuery"
17703            parent="MiniObject"
17704            glib:type-name="GstQuery"
17705            glib:get-type="gst_query_get_type"
17706            glib:type-struct="QueryClass"
17707            glib:fundamental="1">
17708       <doc xml:whitespace="preserve">GstQuery functions are used to register new query types to the gstreamer
17709 core and use them.
17710 Queries can be performed on pads (gst_pad_query()) and elements
17711 (gst_element_query()). Please note that some queries might need a running
17712 pipeline to work.
17713 Queries can be created using the gst_query_new_*() functions.
17714 Query values can be set using gst_query_set_*(), and parsed using
17715 gst_query_parse_*() helpers.
17716 The following example shows how to query the duration of a pipeline:
17717 &lt;example&gt;
17718 &lt;title&gt;Query duration on a pipeline&lt;/title&gt;
17719 &lt;programlisting&gt;
17720 GstQuery *query;
17721 gboolean res;
17722 query = gst_query_new_duration (GST_FORMAT_TIME);
17723 res = gst_element_query (pipeline, query);
17724 if (res) {
17725 gint64 duration;
17726 gst_query_parse_duration (query, NULL, &amp;amp;duration);
17727 g_print ("duration = %"GST_TIME_FORMAT, GST_TIME_ARGS (duration));
17728 }
17729 else {
17730 g_print ("duration query failed...");
17731 }
17732 gst_query_unref (query);
17733 &lt;/programlisting&gt;
17734 &lt;/example&gt;
17735 Last reviewed on 2006-02-14 (0.10.4)</doc>
17736       <constructor name="new_application"
17737                    c:identifier="gst_query_new_application">
17738         <doc xml:whitespace="preserve">Constructs a new custom application query object. Use gst_query_unref()
17739 when done with it.</doc>
17740         <return-value transfer-ownership="full">
17741           <doc xml:whitespace="preserve">a new #GstQuery</doc>
17742           <type name="Query" c:type="GstQuery*"/>
17743         </return-value>
17744         <parameters>
17745           <parameter name="type" transfer-ownership="none">
17746             <doc xml:whitespace="preserve">the query type</doc>
17747             <type name="QueryType" c:type="GstQueryType"/>
17748           </parameter>
17749           <parameter name="structure" transfer-ownership="none">
17750             <doc xml:whitespace="preserve">a structure for the query</doc>
17751             <type name="Structure" c:type="GstStructure*"/>
17752           </parameter>
17753         </parameters>
17754       </constructor>
17755       <constructor name="new_buffering"
17756                    c:identifier="gst_query_new_buffering"
17757                    version="0.10.20">
17758         <doc xml:whitespace="preserve">Constructs a new query object for querying the buffering status of
17759 a stream.</doc>
17760         <return-value transfer-ownership="full">
17761           <doc xml:whitespace="preserve">a new #GstQuery</doc>
17762           <type name="Query" c:type="GstQuery*"/>
17763         </return-value>
17764         <parameters>
17765           <parameter name="format" transfer-ownership="none">
17766             <doc xml:whitespace="preserve">the default #GstFormat for the new query</doc>
17767             <type name="Format" c:type="GstFormat"/>
17768           </parameter>
17769         </parameters>
17770       </constructor>
17771       <constructor name="new_convert" c:identifier="gst_query_new_convert">
17772         <doc xml:whitespace="preserve">Constructs a new convert query object. Use gst_query_unref()
17773 when done with it. A convert query is used to ask for a conversion between
17774 one format and another.</doc>
17775         <return-value transfer-ownership="full">
17776           <doc xml:whitespace="preserve">a #GstQuery</doc>
17777           <type name="Query" c:type="GstQuery*"/>
17778         </return-value>
17779         <parameters>
17780           <parameter name="src_format" transfer-ownership="none">
17781             <doc xml:whitespace="preserve">the source #GstFormat for the new query</doc>
17782             <type name="Format" c:type="GstFormat"/>
17783           </parameter>
17784           <parameter name="value" transfer-ownership="none">
17785             <doc xml:whitespace="preserve">the value to convert</doc>
17786             <type name="gint64" c:type="gint64"/>
17787           </parameter>
17788           <parameter name="dest_format" transfer-ownership="none">
17789             <doc xml:whitespace="preserve">the target #GstFormat</doc>
17790             <type name="Format" c:type="GstFormat"/>
17791           </parameter>
17792         </parameters>
17793       </constructor>
17794       <constructor name="new_duration" c:identifier="gst_query_new_duration">
17795         <doc xml:whitespace="preserve">Constructs a new stream duration query object to query in the given format.
17796 Use gst_query_unref() when done with it. A duration query will give the
17797 total length of the stream.</doc>
17798         <return-value transfer-ownership="full">
17799           <doc xml:whitespace="preserve">a new #GstQuery</doc>
17800           <type name="Query" c:type="GstQuery*"/>
17801         </return-value>
17802         <parameters>
17803           <parameter name="format" transfer-ownership="none">
17804             <doc xml:whitespace="preserve">the #GstFormat for this duration query</doc>
17805             <type name="Format" c:type="GstFormat"/>
17806           </parameter>
17807         </parameters>
17808       </constructor>
17809       <constructor name="new_formats"
17810                    c:identifier="gst_query_new_formats"
17811                    version="0.10.4">
17812         <doc xml:whitespace="preserve">Constructs a new query object for querying formats of
17813 the stream.</doc>
17814         <return-value transfer-ownership="full">
17815           <doc xml:whitespace="preserve">a new #GstQuery</doc>
17816           <type name="Query" c:type="GstQuery*"/>
17817         </return-value>
17818       </constructor>
17819       <constructor name="new_latency"
17820                    c:identifier="gst_query_new_latency"
17821                    version="0.10.12">
17822         <doc xml:whitespace="preserve">Constructs a new latency query object.
17823 Use gst_query_unref() when done with it. A latency query is usually performed
17824 by sinks to compensate for additional latency introduced by elements in the
17825 pipeline.</doc>
17826         <return-value transfer-ownership="full">
17827           <doc xml:whitespace="preserve">a #GstQuery</doc>
17828           <type name="Query" c:type="GstQuery*"/>
17829         </return-value>
17830       </constructor>
17831       <constructor name="new_position" c:identifier="gst_query_new_position">
17832         <doc xml:whitespace="preserve">Constructs a new query stream position query object. Use gst_query_unref()
17833 when done with it. A position query is used to query the current position
17834 of playback in the streams, in some format.</doc>
17835         <return-value transfer-ownership="full">
17836           <doc xml:whitespace="preserve">a new #GstQuery</doc>
17837           <type name="Query" c:type="GstQuery*"/>
17838         </return-value>
17839         <parameters>
17840           <parameter name="format" transfer-ownership="none">
17841             <doc xml:whitespace="preserve">the default #GstFormat for the new query</doc>
17842             <type name="Format" c:type="GstFormat"/>
17843           </parameter>
17844         </parameters>
17845       </constructor>
17846       <constructor name="new_seeking" c:identifier="gst_query_new_seeking">
17847         <doc xml:whitespace="preserve">Constructs a new query object for querying seeking properties of
17848 the stream.</doc>
17849         <return-value transfer-ownership="full">
17850           <doc xml:whitespace="preserve">a new #GstQuery</doc>
17851           <type name="Query" c:type="GstQuery*"/>
17852         </return-value>
17853         <parameters>
17854           <parameter name="format" transfer-ownership="none">
17855             <doc xml:whitespace="preserve">the default #GstFormat for the new query</doc>
17856             <type name="Format" c:type="GstFormat"/>
17857           </parameter>
17858         </parameters>
17859       </constructor>
17860       <constructor name="new_segment" c:identifier="gst_query_new_segment">
17861         <doc xml:whitespace="preserve">Constructs a new segment query object. Use gst_query_unref()
17862 when done with it. A segment query is used to discover information about the
17863 currently configured segment for playback.</doc>
17864         <return-value transfer-ownership="full">
17865           <doc xml:whitespace="preserve">a new #GstQuery</doc>
17866           <type name="Query" c:type="GstQuery*"/>
17867         </return-value>
17868         <parameters>
17869           <parameter name="format" transfer-ownership="none">
17870             <doc xml:whitespace="preserve">the #GstFormat for the new query</doc>
17871             <type name="Format" c:type="GstFormat"/>
17872           </parameter>
17873         </parameters>
17874       </constructor>
17875       <constructor name="new_uri"
17876                    c:identifier="gst_query_new_uri"
17877                    version="0.10.22">
17878         <doc xml:whitespace="preserve">Constructs a new query URI query object. Use gst_query_unref()
17879 when done with it. An URI query is used to query the current URI
17880 that is used by the source or sink.</doc>
17881         <return-value transfer-ownership="full">
17882           <doc xml:whitespace="preserve">a new #GstQuery</doc>
17883           <type name="Query" c:type="GstQuery*"/>
17884         </return-value>
17885       </constructor>
17886       <function name="type_get_by_nick"
17887                 c:identifier="gst_query_type_get_by_nick">
17888         <doc xml:whitespace="preserve">Get the query type registered with @nick.
17889 if the query was not registered.</doc>
17890         <return-value transfer-ownership="none">
17891           <doc xml:whitespace="preserve">The query registered with @nick or #GST_QUERY_NONE</doc>
17892           <type name="QueryType" c:type="GstQueryType"/>
17893         </return-value>
17894         <parameters>
17895           <parameter name="nick" transfer-ownership="none">
17896             <doc xml:whitespace="preserve">The nick of the query</doc>
17897             <type name="utf8" c:type="gchar*"/>
17898           </parameter>
17899         </parameters>
17900       </function>
17901       <function name="type_get_details"
17902                 c:identifier="gst_query_type_get_details">
17903         <doc xml:whitespace="preserve">Get details about the given #GstQueryType.</doc>
17904         <return-value transfer-ownership="none">
17905           <doc xml:whitespace="preserve">The #GstQueryTypeDefinition for @type or NULL on failure.</doc>
17906           <type name="QueryTypeDefinition" c:type="GstQueryTypeDefinition*"/>
17907         </return-value>
17908         <parameters>
17909           <parameter name="type" transfer-ownership="none">
17910             <doc xml:whitespace="preserve">a #GstQueryType</doc>
17911             <type name="QueryType" c:type="GstQueryType"/>
17912           </parameter>
17913         </parameters>
17914       </function>
17915       <function name="type_get_name" c:identifier="gst_query_type_get_name">
17916         <doc xml:whitespace="preserve">Get a printable name for the given query type. Do not modify or free.</doc>
17917         <return-value transfer-ownership="none">
17918           <doc xml:whitespace="preserve">a reference to the static name of the query.</doc>
17919           <type name="utf8" c:type="gchar*"/>
17920         </return-value>
17921         <parameters>
17922           <parameter name="query" transfer-ownership="none">
17923             <doc xml:whitespace="preserve">the query type</doc>
17924             <type name="QueryType" c:type="GstQueryType"/>
17925           </parameter>
17926         </parameters>
17927       </function>
17928       <function name="type_iterate_definitions"
17929                 c:identifier="gst_query_type_iterate_definitions"
17930                 introspectable="0">
17931         <doc xml:whitespace="preserve">Get a #GstIterator of all the registered query types. The definitions
17932 iterated over are read only.</doc>
17933         <return-value transfer-ownership="full">
17934           <doc xml:whitespace="preserve">a #GstIterator of #GstQueryTypeDefinition.</doc>
17935           <type name="Iterator" c:type="GstIterator*"/>
17936         </return-value>
17937       </function>
17938       <function name="type_register" c:identifier="gst_query_type_register">
17939         <doc xml:whitespace="preserve">Create a new GstQueryType based on the nick or return an
17940 already registered query with that nick
17941 with the same nick.</doc>
17942         <return-value transfer-ownership="none">
17943           <doc xml:whitespace="preserve">A new GstQueryType or an already registered query</doc>
17944           <type name="QueryType" c:type="GstQueryType"/>
17945         </return-value>
17946         <parameters>
17947           <parameter name="nick" transfer-ownership="none">
17948             <doc xml:whitespace="preserve">The nick of the new query</doc>
17949             <type name="utf8" c:type="gchar*"/>
17950           </parameter>
17951           <parameter name="description" transfer-ownership="none">
17952             <doc xml:whitespace="preserve">The description of the new query</doc>
17953             <type name="utf8" c:type="gchar*"/>
17954           </parameter>
17955         </parameters>
17956       </function>
17957       <function name="type_to_quark" c:identifier="gst_query_type_to_quark">
17958         <doc xml:whitespace="preserve">Get the unique quark for the given query type.</doc>
17959         <return-value transfer-ownership="none">
17960           <doc xml:whitespace="preserve">the quark associated with the query type</doc>
17961           <type name="GLib.Quark" c:type="GQuark"/>
17962         </return-value>
17963         <parameters>
17964           <parameter name="query" transfer-ownership="none">
17965             <doc xml:whitespace="preserve">the query type</doc>
17966             <type name="QueryType" c:type="GstQueryType"/>
17967           </parameter>
17968         </parameters>
17969       </function>
17970       <function name="types_contains" c:identifier="gst_query_types_contains">
17971         <doc xml:whitespace="preserve">See if the given #GstQueryType is inside the @types query types array.</doc>
17972         <return-value transfer-ownership="none">
17973           <doc xml:whitespace="preserve">TRUE if the type is found inside the array</doc>
17974           <type name="gboolean" c:type="gboolean"/>
17975         </return-value>
17976         <parameters>
17977           <parameter name="types" transfer-ownership="none">
17978             <doc xml:whitespace="preserve">The query array to search</doc>
17979             <type name="QueryType" c:type="GstQueryType*"/>
17980           </parameter>
17981           <parameter name="type" transfer-ownership="none">
17982             <doc xml:whitespace="preserve">the #GstQueryType to find</doc>
17983             <type name="QueryType" c:type="GstQueryType"/>
17984           </parameter>
17985         </parameters>
17986       </function>
17987       <method name="add_buffering_range"
17988               c:identifier="gst_query_add_buffering_range"
17989               version="0.10.31">
17990         <doc xml:whitespace="preserve">Set the buffering-ranges array field in @query. The current last
17991 start position of the array should be inferior to @start.</doc>
17992         <return-value transfer-ownership="none">
17993           <doc xml:whitespace="preserve">a #gboolean indicating if the range was added or not.</doc>
17994           <type name="gboolean" c:type="gboolean"/>
17995         </return-value>
17996         <parameters>
17997           <parameter name="start" transfer-ownership="none">
17998             <doc xml:whitespace="preserve">start position of the range</doc>
17999             <type name="gint64" c:type="gint64"/>
18000           </parameter>
18001           <parameter name="stop" transfer-ownership="none">
18002             <doc xml:whitespace="preserve">stop position of the range</doc>
18003             <type name="gint64" c:type="gint64"/>
18004           </parameter>
18005         </parameters>
18006       </method>
18007       <method name="get_n_buffering_ranges"
18008               c:identifier="gst_query_get_n_buffering_ranges"
18009               version="0.10.31">
18010         <doc xml:whitespace="preserve">Retrieve the number of values currently stored in the
18011 buffered-ranges array of the query's structure.</doc>
18012         <return-value transfer-ownership="none">
18013           <doc xml:whitespace="preserve">the range array size as a #guint.</doc>
18014           <type name="guint" c:type="guint"/>
18015         </return-value>
18016       </method>
18017       <method name="get_structure" c:identifier="gst_query_get_structure">
18018         <doc xml:whitespace="preserve">Get the structure of a query.
18019 still owned by the query and will therefore be freed when the query
18020 is unreffed.</doc>
18021         <return-value transfer-ownership="none">
18022           <doc xml:whitespace="preserve">the #GstStructure of the query. The structure is</doc>
18023           <type name="Structure" c:type="GstStructure*"/>
18024         </return-value>
18025       </method>
18026       <method name="parse_buffering_percent"
18027               c:identifier="gst_query_parse_buffering_percent"
18028               version="0.10.20">
18029         <doc xml:whitespace="preserve">Get the percentage of buffered data. This is a value between 0 and 100.
18030 The @busy indicator is %TRUE when the buffering is in progress.</doc>
18031         <return-value transfer-ownership="none">
18032           <type name="none" c:type="void"/>
18033         </return-value>
18034         <parameters>
18035           <parameter name="busy"
18036                      direction="out"
18037                      caller-allocates="0"
18038                      transfer-ownership="full"
18039                      allow-none="1">
18040             <doc xml:whitespace="preserve">if buffering is busy, or NULL</doc>
18041             <type name="gboolean" c:type="gboolean*"/>
18042           </parameter>
18043           <parameter name="percent"
18044                      direction="out"
18045                      caller-allocates="0"
18046                      transfer-ownership="full"
18047                      allow-none="1">
18048             <doc xml:whitespace="preserve">a buffering percent, or NULL</doc>
18049             <type name="gint" c:type="gint*"/>
18050           </parameter>
18051         </parameters>
18052       </method>
18053       <method name="parse_buffering_range"
18054               c:identifier="gst_query_parse_buffering_range"
18055               version="0.10.20">
18056         <doc xml:whitespace="preserve">Parse an available query, writing the format into @format, and
18057 other results into the passed parameters, if the respective parameters
18058 are non-NULL</doc>
18059         <return-value transfer-ownership="none">
18060           <type name="none" c:type="void"/>
18061         </return-value>
18062         <parameters>
18063           <parameter name="format"
18064                      direction="out"
18065                      caller-allocates="0"
18066                      transfer-ownership="full"
18067                      allow-none="1">
18068             <doc xml:whitespace="preserve">the format to set for the @segment_start and @segment_end values, or NULL</doc>
18069             <type name="Format" c:type="GstFormat*"/>
18070           </parameter>
18071           <parameter name="start"
18072                      direction="out"
18073                      caller-allocates="0"
18074                      transfer-ownership="full"
18075                      allow-none="1">
18076             <doc xml:whitespace="preserve">the start to set, or NULL</doc>
18077             <type name="gint64" c:type="gint64*"/>
18078           </parameter>
18079           <parameter name="stop"
18080                      direction="out"
18081                      caller-allocates="0"
18082                      transfer-ownership="full"
18083                      allow-none="1">
18084             <doc xml:whitespace="preserve">the stop to set, or NULL</doc>
18085             <type name="gint64" c:type="gint64*"/>
18086           </parameter>
18087           <parameter name="estimated_total"
18088                      direction="out"
18089                      caller-allocates="0"
18090                      transfer-ownership="full"
18091                      allow-none="1">
18092             <doc xml:whitespace="preserve">estimated total amount of download time, or NULL</doc>
18093             <type name="gint64" c:type="gint64*"/>
18094           </parameter>
18095         </parameters>
18096       </method>
18097       <method name="parse_buffering_stats"
18098               c:identifier="gst_query_parse_buffering_stats"
18099               version="0.10.20">
18100         <doc xml:whitespace="preserve">Extracts the buffering stats values from @query.</doc>
18101         <return-value transfer-ownership="none">
18102           <type name="none" c:type="void"/>
18103         </return-value>
18104         <parameters>
18105           <parameter name="mode"
18106                      direction="out"
18107                      caller-allocates="0"
18108                      transfer-ownership="full"
18109                      allow-none="1">
18110             <doc xml:whitespace="preserve">a buffering mode, or NULL</doc>
18111             <type name="BufferingMode" c:type="GstBufferingMode*"/>
18112           </parameter>
18113           <parameter name="avg_in"
18114                      direction="out"
18115                      caller-allocates="0"
18116                      transfer-ownership="full"
18117                      allow-none="1">
18118             <doc xml:whitespace="preserve">the average input rate, or NULL</doc>
18119             <type name="gint" c:type="gint*"/>
18120           </parameter>
18121           <parameter name="avg_out"
18122                      direction="out"
18123                      caller-allocates="0"
18124                      transfer-ownership="full"
18125                      allow-none="1">
18126             <doc xml:whitespace="preserve">the average output rat, or NULLe</doc>
18127             <type name="gint" c:type="gint*"/>
18128           </parameter>
18129           <parameter name="buffering_left"
18130                      direction="out"
18131                      caller-allocates="0"
18132                      transfer-ownership="full"
18133                      allow-none="1">
18134             <doc xml:whitespace="preserve">amount of buffering time left, or NULL</doc>
18135             <type name="gint64" c:type="gint64*"/>
18136           </parameter>
18137         </parameters>
18138       </method>
18139       <method name="parse_convert" c:identifier="gst_query_parse_convert">
18140         <doc xml:whitespace="preserve">Parse a convert query answer. Any of @src_format, @src_value, @dest_format,
18141 and @dest_value may be NULL, in which case that value is omitted.</doc>
18142         <return-value transfer-ownership="none">
18143           <type name="none" c:type="void"/>
18144         </return-value>
18145         <parameters>
18146           <parameter name="src_format"
18147                      direction="out"
18148                      caller-allocates="0"
18149                      transfer-ownership="full"
18150                      allow-none="1">
18151             <doc xml:whitespace="preserve">the storage for the #GstFormat of the source value, or NULL</doc>
18152             <type name="Format" c:type="GstFormat*"/>
18153           </parameter>
18154           <parameter name="src_value"
18155                      direction="out"
18156                      caller-allocates="0"
18157                      transfer-ownership="full"
18158                      allow-none="1">
18159             <doc xml:whitespace="preserve">the storage for the source value, or NULL</doc>
18160             <type name="gint64" c:type="gint64*"/>
18161           </parameter>
18162           <parameter name="dest_format"
18163                      direction="out"
18164                      caller-allocates="0"
18165                      transfer-ownership="full"
18166                      allow-none="1">
18167             <doc xml:whitespace="preserve">the storage for the #GstFormat of the destination value, or NULL</doc>
18168             <type name="Format" c:type="GstFormat*"/>
18169           </parameter>
18170           <parameter name="dest_value"
18171                      direction="out"
18172                      caller-allocates="0"
18173                      transfer-ownership="full"
18174                      allow-none="1">
18175             <doc xml:whitespace="preserve">the storage for the destination value, or NULL</doc>
18176             <type name="gint64" c:type="gint64*"/>
18177           </parameter>
18178         </parameters>
18179       </method>
18180       <method name="parse_duration" c:identifier="gst_query_parse_duration">
18181         <doc xml:whitespace="preserve">Parse a duration query answer. Write the format of the duration into @format,
18182 and the value into @duration, if the respective variables are non-NULL.</doc>
18183         <return-value transfer-ownership="none">
18184           <type name="none" c:type="void"/>
18185         </return-value>
18186         <parameters>
18187           <parameter name="format"
18188                      direction="out"
18189                      caller-allocates="0"
18190                      transfer-ownership="full"
18191                      allow-none="1">
18192             <doc xml:whitespace="preserve">the storage for the #GstFormat of the duration value, or NULL.</doc>
18193             <type name="Format" c:type="GstFormat*"/>
18194           </parameter>
18195           <parameter name="duration"
18196                      direction="out"
18197                      caller-allocates="0"
18198                      transfer-ownership="full"
18199                      allow-none="1">
18200             <doc xml:whitespace="preserve">the storage for the total duration, or NULL.</doc>
18201             <type name="gint64" c:type="gint64*"/>
18202           </parameter>
18203         </parameters>
18204       </method>
18205       <method name="parse_formats_length"
18206               c:identifier="gst_query_parse_formats_length"
18207               version="0.10.4">
18208         <doc xml:whitespace="preserve">Parse the number of formats in the formats @query.</doc>
18209         <return-value transfer-ownership="none">
18210           <type name="none" c:type="void"/>
18211         </return-value>
18212         <parameters>
18213           <parameter name="n_formats"
18214                      direction="out"
18215                      caller-allocates="0"
18216                      transfer-ownership="full">
18217             <doc xml:whitespace="preserve">the number of formats in this query.</doc>
18218             <type name="guint" c:type="guint*"/>
18219           </parameter>
18220         </parameters>
18221       </method>
18222       <method name="parse_formats_nth"
18223               c:identifier="gst_query_parse_formats_nth"
18224               version="0.10.4">
18225         <doc xml:whitespace="preserve">Parse the format query and retrieve the @nth format from it into
18226 set to GST_FORMAT_UNDEFINED.</doc>
18227         <return-value transfer-ownership="none">
18228           <type name="none" c:type="void"/>
18229         </return-value>
18230         <parameters>
18231           <parameter name="nth"
18232                      direction="out"
18233                      caller-allocates="0"
18234                      transfer-ownership="full">
18235             <doc xml:whitespace="preserve">the nth format to retrieve.</doc>
18236             <type name="guint" c:type="guint"/>
18237           </parameter>
18238           <parameter name="format"
18239                      direction="out"
18240                      caller-allocates="0"
18241                      transfer-ownership="full">
18242             <doc xml:whitespace="preserve">a pointer to store the nth format</doc>
18243             <type name="Format" c:type="GstFormat*"/>
18244           </parameter>
18245         </parameters>
18246       </method>
18247       <method name="parse_latency"
18248               c:identifier="gst_query_parse_latency"
18249               version="0.10.12">
18250         <doc xml:whitespace="preserve">Parse a latency query answer.</doc>
18251         <return-value transfer-ownership="none">
18252           <type name="none" c:type="void"/>
18253         </return-value>
18254         <parameters>
18255           <parameter name="live"
18256                      direction="out"
18257                      caller-allocates="0"
18258                      transfer-ownership="full"
18259                      allow-none="1">
18260             <doc xml:whitespace="preserve">storage for live or NULL</doc>
18261             <type name="gboolean" c:type="gboolean*"/>
18262           </parameter>
18263           <parameter name="min_latency"
18264                      direction="out"
18265                      caller-allocates="0"
18266                      transfer-ownership="full"
18267                      allow-none="1">
18268             <doc xml:whitespace="preserve">the storage for the min latency or NULL</doc>
18269             <type name="ClockTime" c:type="GstClockTime*"/>
18270           </parameter>
18271           <parameter name="max_latency"
18272                      direction="out"
18273                      caller-allocates="0"
18274                      transfer-ownership="full"
18275                      allow-none="1">
18276             <doc xml:whitespace="preserve">the storage for the max latency or NULL</doc>
18277             <type name="ClockTime" c:type="GstClockTime*"/>
18278           </parameter>
18279         </parameters>
18280       </method>
18281       <method name="parse_nth_buffering_range"
18282               c:identifier="gst_query_parse_nth_buffering_range"
18283               version="0.10.31">
18284         <doc xml:whitespace="preserve">Parse an available query and get the start and stop values stored
18285 at the @index of the buffered ranges array.</doc>
18286         <return-value transfer-ownership="none">
18287           <doc xml:whitespace="preserve">a #gboolean indicating if the parsing succeeded.</doc>
18288           <type name="gboolean" c:type="gboolean"/>
18289         </return-value>
18290         <parameters>
18291           <parameter name="index" transfer-ownership="none">
18292             <doc xml:whitespace="preserve">position in the buffered-ranges array to read</doc>
18293             <type name="guint" c:type="guint"/>
18294           </parameter>
18295           <parameter name="start"
18296                      direction="out"
18297                      caller-allocates="0"
18298                      transfer-ownership="full"
18299                      allow-none="1">
18300             <doc xml:whitespace="preserve">the start position to set, or NULL</doc>
18301             <type name="gint64" c:type="gint64*"/>
18302           </parameter>
18303           <parameter name="stop"
18304                      direction="out"
18305                      caller-allocates="0"
18306                      transfer-ownership="full"
18307                      allow-none="1">
18308             <doc xml:whitespace="preserve">the stop position to set, or NULL</doc>
18309             <type name="gint64" c:type="gint64*"/>
18310           </parameter>
18311         </parameters>
18312       </method>
18313       <method name="parse_position" c:identifier="gst_query_parse_position">
18314         <doc xml:whitespace="preserve">Parse a position query, writing the format into @format, and the position
18315 into @cur, if the respective parameters are non-NULL.</doc>
18316         <return-value transfer-ownership="none">
18317           <type name="none" c:type="void"/>
18318         </return-value>
18319         <parameters>
18320           <parameter name="format"
18321                      direction="out"
18322                      caller-allocates="0"
18323                      transfer-ownership="full"
18324                      allow-none="1">
18325             <doc xml:whitespace="preserve">the storage for the #GstFormat of the position values (may be NULL)</doc>
18326             <type name="Format" c:type="GstFormat*"/>
18327           </parameter>
18328           <parameter name="cur"
18329                      direction="out"
18330                      caller-allocates="0"
18331                      transfer-ownership="full"
18332                      allow-none="1">
18333             <doc xml:whitespace="preserve">the storage for the current position (may be NULL)</doc>
18334             <type name="gint64" c:type="gint64*"/>
18335           </parameter>
18336         </parameters>
18337       </method>
18338       <method name="parse_seeking" c:identifier="gst_query_parse_seeking">
18339         <doc xml:whitespace="preserve">Parse a seeking query, writing the format into @format, and
18340 other results into the passed parameters, if the respective parameters
18341 are non-NULL</doc>
18342         <return-value transfer-ownership="none">
18343           <type name="none" c:type="void"/>
18344         </return-value>
18345         <parameters>
18346           <parameter name="format"
18347                      direction="out"
18348                      caller-allocates="0"
18349                      transfer-ownership="full"
18350                      allow-none="1">
18351             <doc xml:whitespace="preserve">the format to set for the @segment_start and @segment_end values, or NULL</doc>
18352             <type name="Format" c:type="GstFormat*"/>
18353           </parameter>
18354           <parameter name="seekable"
18355                      direction="out"
18356                      caller-allocates="0"
18357                      transfer-ownership="full"
18358                      allow-none="1">
18359             <doc xml:whitespace="preserve">the seekable flag to set, or NULL</doc>
18360             <type name="gboolean" c:type="gboolean*"/>
18361           </parameter>
18362           <parameter name="segment_start"
18363                      direction="out"
18364                      caller-allocates="0"
18365                      transfer-ownership="full"
18366                      allow-none="1">
18367             <doc xml:whitespace="preserve">the segment_start to set, or NULL</doc>
18368             <type name="gint64" c:type="gint64*"/>
18369           </parameter>
18370           <parameter name="segment_end"
18371                      direction="out"
18372                      caller-allocates="0"
18373                      transfer-ownership="full"
18374                      allow-none="1">
18375             <doc xml:whitespace="preserve">the segment_end to set, or NULL</doc>
18376             <type name="gint64" c:type="gint64*"/>
18377           </parameter>
18378         </parameters>
18379       </method>
18380       <method name="parse_segment" c:identifier="gst_query_parse_segment">
18381         <doc xml:whitespace="preserve">Parse a segment query answer. Any of @rate, @format, @start_value, and
18382 See gst_query_set_segment() for an explanation of the function arguments.</doc>
18383         <return-value transfer-ownership="none">
18384           <type name="none" c:type="void"/>
18385         </return-value>
18386         <parameters>
18387           <parameter name="rate"
18388                      direction="out"
18389                      caller-allocates="0"
18390                      transfer-ownership="full"
18391                      allow-none="1">
18392             <doc xml:whitespace="preserve">the storage for the rate of the segment, or NULL</doc>
18393             <type name="gdouble" c:type="gdouble*"/>
18394           </parameter>
18395           <parameter name="format"
18396                      direction="out"
18397                      caller-allocates="0"
18398                      transfer-ownership="full"
18399                      allow-none="1">
18400             <doc xml:whitespace="preserve">the storage for the #GstFormat of the values, or NULL</doc>
18401             <type name="Format" c:type="GstFormat*"/>
18402           </parameter>
18403           <parameter name="start_value"
18404                      direction="out"
18405                      caller-allocates="0"
18406                      transfer-ownership="full"
18407                      allow-none="1">
18408             <doc xml:whitespace="preserve">the storage for the start value, or NULL</doc>
18409             <type name="gint64" c:type="gint64*"/>
18410           </parameter>
18411           <parameter name="stop_value"
18412                      direction="out"
18413                      caller-allocates="0"
18414                      transfer-ownership="full"
18415                      allow-none="1">
18416             <doc xml:whitespace="preserve">the storage for the stop value, or NULL</doc>
18417             <type name="gint64" c:type="gint64*"/>
18418           </parameter>
18419         </parameters>
18420       </method>
18421       <method name="parse_uri"
18422               c:identifier="gst_query_parse_uri"
18423               version="0.10.22">
18424         <doc xml:whitespace="preserve">Parse an URI query, writing the URI into @uri as a newly
18425 allocated string, if the respective parameters are non-NULL.
18426 Free the string with g_free() after usage.</doc>
18427         <return-value transfer-ownership="none">
18428           <type name="none" c:type="void"/>
18429         </return-value>
18430         <parameters>
18431           <parameter name="uri"
18432                      direction="out"
18433                      caller-allocates="0"
18434                      transfer-ownership="full"
18435                      allow-none="1">
18436             <doc xml:whitespace="preserve">the storage for the current URI (may be NULL)</doc>
18437             <type name="utf8" c:type="gchar**"/>
18438           </parameter>
18439         </parameters>
18440       </method>
18441       <method name="set_buffering_percent"
18442               c:identifier="gst_query_set_buffering_percent"
18443               version="0.10.20">
18444         <doc xml:whitespace="preserve">Set the percentage of buffered data. This is a value between 0 and 100.
18445 The @busy indicator is %TRUE when the buffering is in progress.</doc>
18446         <return-value transfer-ownership="none">
18447           <type name="none" c:type="void"/>
18448         </return-value>
18449         <parameters>
18450           <parameter name="busy" transfer-ownership="none">
18451             <doc xml:whitespace="preserve">if buffering is busy</doc>
18452             <type name="gboolean" c:type="gboolean"/>
18453           </parameter>
18454           <parameter name="percent" transfer-ownership="none">
18455             <doc xml:whitespace="preserve">a buffering percent</doc>
18456             <type name="gint" c:type="gint"/>
18457           </parameter>
18458         </parameters>
18459       </method>
18460       <method name="set_buffering_range"
18461               c:identifier="gst_query_set_buffering_range"
18462               version="0.10.20">
18463         <doc xml:whitespace="preserve">Set the available query result fields in @query.</doc>
18464         <return-value transfer-ownership="none">
18465           <type name="none" c:type="void"/>
18466         </return-value>
18467         <parameters>
18468           <parameter name="format" transfer-ownership="none">
18469             <doc xml:whitespace="preserve">the format to set for the @start and @stop values</doc>
18470             <type name="Format" c:type="GstFormat"/>
18471           </parameter>
18472           <parameter name="start" transfer-ownership="none">
18473             <doc xml:whitespace="preserve">the start to set</doc>
18474             <type name="gint64" c:type="gint64"/>
18475           </parameter>
18476           <parameter name="stop" transfer-ownership="none">
18477             <doc xml:whitespace="preserve">the stop to set</doc>
18478             <type name="gint64" c:type="gint64"/>
18479           </parameter>
18480           <parameter name="estimated_total" transfer-ownership="none">
18481             <doc xml:whitespace="preserve">estimated total amount of download time</doc>
18482             <type name="gint64" c:type="gint64"/>
18483           </parameter>
18484         </parameters>
18485       </method>
18486       <method name="set_buffering_stats"
18487               c:identifier="gst_query_set_buffering_stats"
18488               version="0.10.20">
18489         <doc xml:whitespace="preserve">Configures the buffering stats values in @query.</doc>
18490         <return-value transfer-ownership="none">
18491           <type name="none" c:type="void"/>
18492         </return-value>
18493         <parameters>
18494           <parameter name="mode" transfer-ownership="none">
18495             <doc xml:whitespace="preserve">a buffering mode</doc>
18496             <type name="BufferingMode" c:type="GstBufferingMode"/>
18497           </parameter>
18498           <parameter name="avg_in" transfer-ownership="none">
18499             <doc xml:whitespace="preserve">the average input rate</doc>
18500             <type name="gint" c:type="gint"/>
18501           </parameter>
18502           <parameter name="avg_out" transfer-ownership="none">
18503             <doc xml:whitespace="preserve">the average output rate</doc>
18504             <type name="gint" c:type="gint"/>
18505           </parameter>
18506           <parameter name="buffering_left" transfer-ownership="none">
18507             <doc xml:whitespace="preserve">amount of buffering time left</doc>
18508             <type name="gint64" c:type="gint64"/>
18509           </parameter>
18510         </parameters>
18511       </method>
18512       <method name="set_convert" c:identifier="gst_query_set_convert">
18513         <doc xml:whitespace="preserve">Answer a convert query by setting the requested values.</doc>
18514         <return-value transfer-ownership="none">
18515           <type name="none" c:type="void"/>
18516         </return-value>
18517         <parameters>
18518           <parameter name="src_format" transfer-ownership="none">
18519             <doc xml:whitespace="preserve">the source #GstFormat</doc>
18520             <type name="Format" c:type="GstFormat"/>
18521           </parameter>
18522           <parameter name="src_value" transfer-ownership="none">
18523             <doc xml:whitespace="preserve">the source value</doc>
18524             <type name="gint64" c:type="gint64"/>
18525           </parameter>
18526           <parameter name="dest_format" transfer-ownership="none">
18527             <doc xml:whitespace="preserve">the destination #GstFormat</doc>
18528             <type name="Format" c:type="GstFormat"/>
18529           </parameter>
18530           <parameter name="dest_value" transfer-ownership="none">
18531             <doc xml:whitespace="preserve">the destination value</doc>
18532             <type name="gint64" c:type="gint64"/>
18533           </parameter>
18534         </parameters>
18535       </method>
18536       <method name="set_duration" c:identifier="gst_query_set_duration">
18537         <doc xml:whitespace="preserve">Answer a duration query by setting the requested value in the given format.</doc>
18538         <return-value transfer-ownership="none">
18539           <type name="none" c:type="void"/>
18540         </return-value>
18541         <parameters>
18542           <parameter name="format" transfer-ownership="none">
18543             <doc xml:whitespace="preserve">the #GstFormat for the duration</doc>
18544             <type name="Format" c:type="GstFormat"/>
18545           </parameter>
18546           <parameter name="duration" transfer-ownership="none">
18547             <doc xml:whitespace="preserve">the duration of the stream</doc>
18548             <type name="gint64" c:type="gint64"/>
18549           </parameter>
18550         </parameters>
18551       </method>
18552       <method name="set_formats"
18553               c:identifier="gst_query_set_formats"
18554               introspectable="0">
18555         <doc xml:whitespace="preserve">Set the formats query result fields in @query. The number of formats passed
18556 must be equal to @n_formats.</doc>
18557         <return-value transfer-ownership="none">
18558           <type name="none" c:type="void"/>
18559         </return-value>
18560         <parameters>
18561           <parameter name="n_formats" transfer-ownership="none">
18562             <doc xml:whitespace="preserve">the number of formats to set.</doc>
18563             <type name="gint" c:type="gint"/>
18564           </parameter>
18565           <parameter transfer-ownership="none">
18566             <varargs>
18567             </varargs>
18568           </parameter>
18569         </parameters>
18570       </method>
18571       <method name="set_formatsv"
18572               c:identifier="gst_query_set_formatsv"
18573               version="0.10.4">
18574         <doc xml:whitespace="preserve">Set the formats query result fields in @query. The number of formats passed
18575 in the @formats array must be equal to @n_formats.</doc>
18576         <return-value transfer-ownership="none">
18577           <type name="none" c:type="void"/>
18578         </return-value>
18579         <parameters>
18580           <parameter name="n_formats" transfer-ownership="none">
18581             <doc xml:whitespace="preserve">the number of formats to set.</doc>
18582             <type name="gint" c:type="gint"/>
18583           </parameter>
18584           <parameter name="formats" transfer-ownership="none">
18585             <doc xml:whitespace="preserve">an array containing @n_formats</doc>
18586             <array length="0" c:type="GstFormat*">
18587               <type name="Format" c:type="GstFormat"/>
18588             </array>
18589           </parameter>
18590         </parameters>
18591       </method>
18592       <method name="set_latency"
18593               c:identifier="gst_query_set_latency"
18594               version="0.10.12">
18595         <doc xml:whitespace="preserve">Answer a latency query by setting the requested values in the given format.</doc>
18596         <return-value transfer-ownership="none">
18597           <type name="none" c:type="void"/>
18598         </return-value>
18599         <parameters>
18600           <parameter name="live" transfer-ownership="none">
18601             <doc xml:whitespace="preserve">if there is a live element upstream</doc>
18602             <type name="gboolean" c:type="gboolean"/>
18603           </parameter>
18604           <parameter name="min_latency" transfer-ownership="none">
18605             <doc xml:whitespace="preserve">the minimal latency of the live element</doc>
18606             <type name="ClockTime" c:type="GstClockTime"/>
18607           </parameter>
18608           <parameter name="max_latency" transfer-ownership="none">
18609             <doc xml:whitespace="preserve">the maximal latency of the live element</doc>
18610             <type name="ClockTime" c:type="GstClockTime"/>
18611           </parameter>
18612         </parameters>
18613       </method>
18614       <method name="set_position" c:identifier="gst_query_set_position">
18615         <doc xml:whitespace="preserve">Answer a position query by setting the requested value in the given format.</doc>
18616         <return-value transfer-ownership="none">
18617           <type name="none" c:type="void"/>
18618         </return-value>
18619         <parameters>
18620           <parameter name="format" transfer-ownership="none">
18621             <doc xml:whitespace="preserve">the requested #GstFormat</doc>
18622             <type name="Format" c:type="GstFormat"/>
18623           </parameter>
18624           <parameter name="cur" transfer-ownership="none">
18625             <doc xml:whitespace="preserve">the position to set</doc>
18626             <type name="gint64" c:type="gint64"/>
18627           </parameter>
18628         </parameters>
18629       </method>
18630       <method name="set_seeking" c:identifier="gst_query_set_seeking">
18631         <doc xml:whitespace="preserve">Set the seeking query result fields in @query.</doc>
18632         <return-value transfer-ownership="none">
18633           <type name="none" c:type="void"/>
18634         </return-value>
18635         <parameters>
18636           <parameter name="format" transfer-ownership="none">
18637             <doc xml:whitespace="preserve">the format to set for the @segment_start and @segment_end values</doc>
18638             <type name="Format" c:type="GstFormat"/>
18639           </parameter>
18640           <parameter name="seekable" transfer-ownership="none">
18641             <doc xml:whitespace="preserve">the seekable flag to set</doc>
18642             <type name="gboolean" c:type="gboolean"/>
18643           </parameter>
18644           <parameter name="segment_start" transfer-ownership="none">
18645             <doc xml:whitespace="preserve">the segment_start to set</doc>
18646             <type name="gint64" c:type="gint64"/>
18647           </parameter>
18648           <parameter name="segment_end" transfer-ownership="none">
18649             <doc xml:whitespace="preserve">the segment_end to set</doc>
18650             <type name="gint64" c:type="gint64"/>
18651           </parameter>
18652         </parameters>
18653       </method>
18654       <method name="set_segment" c:identifier="gst_query_set_segment">
18655         <doc xml:whitespace="preserve">Answer a segment query by setting the requested values. The normal
18656 playback segment of a pipeline is 0 to duration at the default rate of
18657 1.0. If a seek was performed on the pipeline to play a different
18658 segment, this query will return the range specified in the last seek.
18659 playback range start and stop values expressed in @format.
18660 The values are always between 0 and the duration of the media and
18661 negative rates, playback will actually happen from @stop_value to</doc>
18662         <return-value transfer-ownership="none">
18663           <type name="none" c:type="void"/>
18664         </return-value>
18665         <parameters>
18666           <parameter name="rate" transfer-ownership="none">
18667             <doc xml:whitespace="preserve">the rate of the segment</doc>
18668             <type name="gdouble" c:type="gdouble"/>
18669           </parameter>
18670           <parameter name="format" transfer-ownership="none">
18671             <doc xml:whitespace="preserve">the #GstFormat of the segment values (@start_value and @stop_value)</doc>
18672             <type name="Format" c:type="GstFormat"/>
18673           </parameter>
18674           <parameter name="start_value" transfer-ownership="none">
18675             <doc xml:whitespace="preserve">the start value</doc>
18676             <type name="gint64" c:type="gint64"/>
18677           </parameter>
18678           <parameter name="stop_value" transfer-ownership="none">
18679             <doc xml:whitespace="preserve">the stop value</doc>
18680             <type name="gint64" c:type="gint64"/>
18681           </parameter>
18682         </parameters>
18683       </method>
18684       <method name="set_uri"
18685               c:identifier="gst_query_set_uri"
18686               version="0.10.22">
18687         <doc xml:whitespace="preserve">Answer a URI query by setting the requested URI.</doc>
18688         <return-value transfer-ownership="none">
18689           <type name="none" c:type="void"/>
18690         </return-value>
18691         <parameters>
18692           <parameter name="uri" transfer-ownership="none">
18693             <doc xml:whitespace="preserve">the URI to set</doc>
18694             <type name="utf8" c:type="gchar*"/>
18695           </parameter>
18696         </parameters>
18697       </method>
18698       <field name="mini_object">
18699         <type name="MiniObject" c:type="GstMiniObject"/>
18700       </field>
18701       <field name="type">
18702         <type name="QueryType" c:type="GstQueryType"/>
18703       </field>
18704       <field name="structure">
18705         <type name="Structure" c:type="GstStructure*"/>
18706       </field>
18707       <field name="_gst_reserved" readable="0" private="1">
18708         <type name="gpointer" c:type="gpointer"/>
18709       </field>
18710     </class>
18711     <record name="QueryClass"
18712             c:type="GstQueryClass"
18713             glib:is-gtype-struct-for="Query">
18714       <field name="mini_object_class">
18715         <type name="MiniObjectClass" c:type="GstMiniObjectClass"/>
18716       </field>
18717       <field name="_gst_reserved" readable="0" private="1">
18718         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
18719           <type name="gpointer" c:type="gpointer"/>
18720         </array>
18721       </field>
18722     </record>
18723     <enumeration name="QueryType" c:type="GstQueryType">
18724       <doc xml:whitespace="preserve">Standard predefined Query types</doc>
18725       <member name="none" value="0" c:identifier="GST_QUERY_NONE"/>
18726       <member name="position" value="1" c:identifier="GST_QUERY_POSITION"/>
18727       <member name="duration" value="2" c:identifier="GST_QUERY_DURATION"/>
18728       <member name="latency" value="3" c:identifier="GST_QUERY_LATENCY"/>
18729       <member name="jitter" value="4" c:identifier="GST_QUERY_JITTER"/>
18730       <member name="rate" value="5" c:identifier="GST_QUERY_RATE"/>
18731       <member name="seeking" value="6" c:identifier="GST_QUERY_SEEKING"/>
18732       <member name="segment" value="7" c:identifier="GST_QUERY_SEGMENT"/>
18733       <member name="convert" value="8" c:identifier="GST_QUERY_CONVERT"/>
18734       <member name="formats" value="9" c:identifier="GST_QUERY_FORMATS"/>
18735       <member name="buffering" value="10" c:identifier="GST_QUERY_BUFFERING"/>
18736       <member name="custom" value="11" c:identifier="GST_QUERY_CUSTOM"/>
18737       <member name="uri" value="12" c:identifier="GST_QUERY_URI"/>
18738     </enumeration>
18739     <record name="QueryTypeDefinition" c:type="GstQueryTypeDefinition">
18740       <doc xml:whitespace="preserve">A Query Type definition</doc>
18741       <field name="value" writable="1">
18742         <type name="QueryType" c:type="GstQueryType"/>
18743       </field>
18744       <field name="nick" writable="1">
18745         <type name="utf8" c:type="gchar*"/>
18746       </field>
18747       <field name="description" writable="1">
18748         <type name="utf8" c:type="gchar*"/>
18749       </field>
18750       <field name="quark" writable="1">
18751         <type name="GLib.Quark" c:type="GQuark"/>
18752       </field>
18753     </record>
18754     <enumeration name="Rank" c:type="GstRank">
18755       <doc xml:whitespace="preserve">Element priority ranks. Defines the order in which the autoplugger (or
18756 similar rank-picking mechanisms, such as e.g. gst_element_make_from_uri())
18757 will choose this element over an alternative one with the same function.
18758 These constants serve as a rough guidance for defining the rank of a
18759 #GstPluginFeature. Any value is valid, including values bigger than</doc>
18760       <member name="none" value="0" c:identifier="GST_RANK_NONE"/>
18761       <member name="marginal" value="64" c:identifier="GST_RANK_MARGINAL"/>
18762       <member name="secondary" value="128" c:identifier="GST_RANK_SECONDARY"/>
18763       <member name="primary" value="256" c:identifier="GST_RANK_PRIMARY"/>
18764     </enumeration>
18765     <class name="Registry"
18766            c:symbol-prefix="registry"
18767            c:type="GstRegistry"
18768            parent="Object"
18769            glib:type-name="GstRegistry"
18770            glib:get-type="gst_registry_get_type"
18771            glib:type-struct="RegistryClass">
18772       <doc xml:whitespace="preserve">One registry holds the metadata of a set of plugins.
18773 &lt;emphasis role="bold"&gt;Design:&lt;/emphasis&gt;
18774 The #GstRegistry object is a list of plugins and some functions for dealing
18775 with them. Each #GstPlugin is matched 1-1 with a file on disk, and may or may
18776 not be loaded at a given time. There may be multiple #GstRegistry objects,
18777 but the "default registry" is the only object that has any meaning to the
18778 core.
18779 The registry file is actually a cache of plugin information. This is
18780 unlike versions prior to 0.10, where the registry file was the primary source
18781 of plugin information, and was created by the gst-register command.
18782 The primary source, at all times, of plugin information is each plugin file
18783 itself. Thus, if an application wants information about a particular plugin,
18784 or wants to search for a feature that satisfies given criteria, the primary
18785 means of doing so is to load every plugin and look at the resulting
18786 information that is gathered in the default registry. Clearly, this is a time
18787 consuming process, so we cache information in the registry file. The format
18788 and location of the cache file is internal to gstreamer. 
18789 On startup, plugins are searched for in the plugin search path. The following
18790 locations are checked in this order:
18791 &lt;itemizedlist&gt;
18792 &lt;listitem&gt;
18793 &lt;para&gt;location from --gst-plugin-path commandline option.&lt;/para&gt;
18794 &lt;/listitem&gt;
18795 &lt;listitem&gt;
18796 &lt;para&gt;the GST_PLUGIN_PATH environment variable.&lt;/para&gt;
18797 &lt;/listitem&gt;
18798 &lt;listitem&gt;
18799 &lt;para&gt;the GST_PLUGIN_SYSTEM_PATH environment variable.&lt;/para&gt;
18800 &lt;/listitem&gt;
18801 &lt;listitem&gt;
18802 &lt;para&gt;default locations (if GST_PLUGIN_SYSTEM_PATH is not set). Those
18803 default locations are:
18804 &lt;filename&gt;~/.gstreamer-$GST_MAJORMINOR/plugins/&lt;/filename&gt;
18805 and &lt;filename&gt;$prefix/libs/gstreamer-$GST_MAJORMINOR/&lt;/filename&gt;.
18806 &lt;/para&gt;
18807 &lt;/listitem&gt;
18808 &lt;/itemizedlist&gt;
18809 The registry cache file is loaded from
18810 &lt;filename&gt;~/.gstreamer-$GST_MAJORMINOR/registry-$ARCH.bin&lt;/filename&gt; or the
18811 file listed in the GST_REGISTRY env var. One reason to change the registry
18812 location is for testing.
18813 For each plugin that is found in the plugin search path, there could be 3
18814 possibilities for cached information:
18815 &lt;itemizedlist&gt;
18816 &lt;listitem&gt;
18817 &lt;para&gt;the cache may not contain information about a given file.&lt;/para&gt;
18818 &lt;/listitem&gt;
18819 &lt;listitem&gt;
18820 &lt;para&gt;the cache may have stale information.&lt;/para&gt;
18821 &lt;/listitem&gt;
18822 &lt;listitem&gt;
18823 &lt;para&gt;the cache may have current information.&lt;/para&gt;
18824 &lt;/listitem&gt;
18825 &lt;/itemizedlist&gt;
18826 In the first two cases, the plugin is loaded and the cache updated. In
18827 addition to these cases, the cache may have entries for plugins that are not
18828 relevant to the current process. These are marked as not available to the
18829 current process. If the cache is updated for whatever reason, it is marked
18830 dirty.
18831 A dirty cache is written out at the end of initialization. Each entry is
18832 checked to make sure the information is minimally valid. If not, the entry is
18833 simply dropped.
18834 &lt;emphasis role="bold"&gt;Implementation notes:&lt;/emphasis&gt;
18835 The "cache" and "default registry" are different concepts and can represent
18836 different sets of plugins. For various reasons, at init time, the cache is
18837 stored in the default registry, and plugins not relevant to the current
18838 process are marked with the %GST_PLUGIN_FLAG_CACHED bit. These plugins are
18839 removed at the end of intitialization.</doc>
18840       <function name="fork_is_enabled"
18841                 c:identifier="gst_registry_fork_is_enabled"
18842                 version="0.10.10">
18843         <doc xml:whitespace="preserve">By default GStreamer will perform scanning and rebuilding of the
18844 registry file using a helper child process.
18845 Applications might want to disable this behaviour with the
18846 gst_registry_fork_set_enabled() function, in which case new plugins
18847 are scanned (and loaded) into the application process.
18848 rebuilding the registry.</doc>
18849         <return-value transfer-ownership="none">
18850           <doc xml:whitespace="preserve">%TRUE if GStreamer will use the child helper process when</doc>
18851           <type name="gboolean" c:type="gboolean"/>
18852         </return-value>
18853       </function>
18854       <function name="fork_set_enabled"
18855                 c:identifier="gst_registry_fork_set_enabled"
18856                 version="0.10.10">
18857         <doc xml:whitespace="preserve">Applications might want to disable/enable spawning of a child helper process
18858 when rebuilding the registry. See gst_registry_fork_is_enabled() for more
18859 information.</doc>
18860         <return-value transfer-ownership="none">
18861           <type name="none" c:type="void"/>
18862         </return-value>
18863         <parameters>
18864           <parameter name="enabled" transfer-ownership="none">
18865             <doc xml:whitespace="preserve">whether rebuilding the registry can use a temporary child helper process.</doc>
18866             <type name="gboolean" c:type="gboolean"/>
18867           </parameter>
18868         </parameters>
18869       </function>
18870       <function name="get_default" c:identifier="gst_registry_get_default">
18871         <doc xml:whitespace="preserve">Retrieves the default registry. The caller does not own a reference on the
18872 registry, as it is alive as long as GStreamer is initialized.</doc>
18873         <return-value transfer-ownership="none">
18874           <doc xml:whitespace="preserve">The default #GstRegistry.</doc>
18875           <type name="Registry" c:type="GstRegistry*"/>
18876         </return-value>
18877       </function>
18878       <virtual-method name="feature_added">
18879         <return-value transfer-ownership="none">
18880           <type name="none" c:type="void"/>
18881         </return-value>
18882         <parameters>
18883           <parameter name="feature" transfer-ownership="none">
18884             <type name="PluginFeature" c:type="GstPluginFeature*"/>
18885           </parameter>
18886         </parameters>
18887       </virtual-method>
18888       <virtual-method name="plugin_added">
18889         <return-value transfer-ownership="none">
18890           <type name="none" c:type="void"/>
18891         </return-value>
18892         <parameters>
18893           <parameter name="plugin" transfer-ownership="none">
18894             <type name="Plugin" c:type="GstPlugin*"/>
18895           </parameter>
18896         </parameters>
18897       </virtual-method>
18898       <method name="add_feature" c:identifier="gst_registry_add_feature">
18899         <doc xml:whitespace="preserve">Add the feature to the registry. The feature-added signal will be emitted.
18900 This function sinks @feature.
18901 MT safe.</doc>
18902         <return-value transfer-ownership="none">
18903           <doc xml:whitespace="preserve">TRUE on success.</doc>
18904           <type name="gboolean" c:type="gboolean"/>
18905         </return-value>
18906         <parameters>
18907           <parameter name="feature" transfer-ownership="full">
18908             <doc xml:whitespace="preserve">the feature to add</doc>
18909             <type name="PluginFeature" c:type="GstPluginFeature*"/>
18910           </parameter>
18911         </parameters>
18912       </method>
18913       <method name="add_path" c:identifier="gst_registry_add_path">
18914         <doc xml:whitespace="preserve">Add the given path to the registry. The syntax of the
18915 path is specific to the registry. If the path has already been
18916 added, do nothing.</doc>
18917         <return-value transfer-ownership="none">
18918           <type name="none" c:type="void"/>
18919         </return-value>
18920         <parameters>
18921           <parameter name="path" transfer-ownership="none">
18922             <doc xml:whitespace="preserve">the path to add to the registry</doc>
18923             <type name="utf8" c:type="gchar*"/>
18924           </parameter>
18925         </parameters>
18926       </method>
18927       <method name="add_plugin" c:identifier="gst_registry_add_plugin">
18928         <doc xml:whitespace="preserve">Add the plugin to the registry. The plugin-added signal will be emitted.
18929 This function will sink @plugin.
18930 MT safe.</doc>
18931         <return-value transfer-ownership="none">
18932           <doc xml:whitespace="preserve">TRUE on success.</doc>
18933           <type name="gboolean" c:type="gboolean"/>
18934         </return-value>
18935         <parameters>
18936           <parameter name="plugin" transfer-ownership="full">
18937             <doc xml:whitespace="preserve">the plugin to add</doc>
18938             <type name="Plugin" c:type="GstPlugin*"/>
18939           </parameter>
18940         </parameters>
18941       </method>
18942       <method name="feature_filter" c:identifier="gst_registry_feature_filter">
18943         <doc xml:whitespace="preserve">Runs a filter against all features of the plugins in the registry
18944 and returns a GList with the results.
18945 If the first flag is set, only the first match is
18946 returned (as a list with a single object).
18947 #GstPluginFeature. Use gst_plugin_feature_list_free() after usage.
18948 MT safe.</doc>
18949         <return-value transfer-ownership="full">
18950           <doc xml:whitespace="preserve">a #GList of</doc>
18951           <type name="GLib.List" c:type="GList*">
18952             <type name="PluginFeature"/>
18953           </type>
18954         </return-value>
18955         <parameters>
18956           <parameter name="filter"
18957                      transfer-ownership="none"
18958                      scope="call"
18959                      closure="2">
18960             <doc xml:whitespace="preserve">the filter to use</doc>
18961             <type name="PluginFeatureFilter" c:type="GstPluginFeatureFilter"/>
18962           </parameter>
18963           <parameter name="first" transfer-ownership="none">
18964             <doc xml:whitespace="preserve">only return first match</doc>
18965             <type name="gboolean" c:type="gboolean"/>
18966           </parameter>
18967           <parameter name="user_data" transfer-ownership="none">
18968             <doc xml:whitespace="preserve">user data passed to the filter function</doc>
18969             <type name="gpointer" c:type="gpointer"/>
18970           </parameter>
18971         </parameters>
18972       </method>
18973       <method name="find_feature" c:identifier="gst_registry_find_feature">
18974         <doc xml:whitespace="preserve">Find the pluginfeature with the given name and type in the registry.
18975 or NULL if the plugin was not found. gst_object_unref() after usage.
18976 MT safe.</doc>
18977         <return-value transfer-ownership="full">
18978           <doc xml:whitespace="preserve">the pluginfeature with the given name and type</doc>
18979           <type name="PluginFeature" c:type="GstPluginFeature*"/>
18980         </return-value>
18981         <parameters>
18982           <parameter name="name" transfer-ownership="none">
18983             <doc xml:whitespace="preserve">the pluginfeature name to find</doc>
18984             <type name="utf8" c:type="gchar*"/>
18985           </parameter>
18986           <parameter name="type" transfer-ownership="none">
18987             <doc xml:whitespace="preserve">the pluginfeature type to find</doc>
18988             <type name="GType" c:type="GType"/>
18989           </parameter>
18990         </parameters>
18991       </method>
18992       <method name="find_plugin" c:identifier="gst_registry_find_plugin">
18993         <doc xml:whitespace="preserve">Find the plugin with the given name in the registry.
18994 The plugin will be reffed; caller is responsible for unreffing.
18995 plugin was not found. gst_object_unref() after usage.
18996 MT safe.</doc>
18997         <return-value transfer-ownership="full">
18998           <doc xml:whitespace="preserve">the plugin with the given name or NULL if the</doc>
18999           <type name="Plugin" c:type="GstPlugin*"/>
19000         </return-value>
19001         <parameters>
19002           <parameter name="name" transfer-ownership="none">
19003             <doc xml:whitespace="preserve">the plugin name to find</doc>
19004             <type name="utf8" c:type="gchar*"/>
19005           </parameter>
19006         </parameters>
19007       </method>
19008       <method name="get_feature_list"
19009               c:identifier="gst_registry_get_feature_list">
19010         <doc xml:whitespace="preserve">Retrieves a #GList of #GstPluginFeature of @type.
19011 #GstPluginFeature of @type. Use gst_plugin_feature_list_free() after use
19012 MT safe.</doc>
19013         <return-value transfer-ownership="full">
19014           <doc xml:whitespace="preserve">a #GList of</doc>
19015           <type name="GLib.List" c:type="GList*">
19016             <type name="PluginFeature"/>
19017           </type>
19018         </return-value>
19019         <parameters>
19020           <parameter name="type" transfer-ownership="none">
19021             <doc xml:whitespace="preserve">a #GType.</doc>
19022             <type name="GType" c:type="GType"/>
19023           </parameter>
19024         </parameters>
19025       </method>
19026       <method name="get_feature_list_by_plugin"
19027               c:identifier="gst_registry_get_feature_list_by_plugin">
19028         <doc xml:whitespace="preserve">Retrieves a #GList of features of the plugin with name @name.
19029 #GstPluginFeature. Use gst_plugin_feature_list_free() after usage.</doc>
19030         <return-value transfer-ownership="full">
19031           <doc xml:whitespace="preserve">a #GList of</doc>
19032           <type name="GLib.List" c:type="GList*">
19033             <type name="PluginFeature"/>
19034           </type>
19035         </return-value>
19036         <parameters>
19037           <parameter name="name" transfer-ownership="none">
19038             <doc xml:whitespace="preserve">a plugin name.</doc>
19039             <type name="utf8" c:type="gchar*"/>
19040           </parameter>
19041         </parameters>
19042       </method>
19043       <method name="get_feature_list_cookie"
19044               c:identifier="gst_registry_get_feature_list_cookie"
19045               version="0.10.26">
19046         <doc xml:whitespace="preserve">Returns the registrys feature list cookie. This changes
19047 every time a feature is added or removed from the registry.</doc>
19048         <return-value transfer-ownership="none">
19049           <doc xml:whitespace="preserve">the feature list cookie.</doc>
19050           <type name="guint32" c:type="guint32"/>
19051         </return-value>
19052       </method>
19053       <method name="get_path_list" c:identifier="gst_registry_get_path_list">
19054         <doc xml:whitespace="preserve">Get the list of paths for the given registry.
19055 strings. g_list_free after use.
19056 MT safe.</doc>
19057         <return-value transfer-ownership="container">
19058           <doc xml:whitespace="preserve">A #GList of paths as</doc>
19059           <type name="GLib.List" c:type="GList*">
19060             <type name="utf8"/>
19061           </type>
19062         </return-value>
19063       </method>
19064       <method name="get_plugin_list"
19065               c:identifier="gst_registry_get_plugin_list">
19066         <doc xml:whitespace="preserve">Get a copy of all plugins registered in the given registry. The refcount
19067 of each element in the list in incremented.
19068 Use gst_plugin_list_free() after usage.
19069 MT safe.</doc>
19070         <return-value transfer-ownership="full">
19071           <doc xml:whitespace="preserve">a #GList of #GstPlugin.</doc>
19072           <type name="GLib.List" c:type="GList*">
19073             <type name="Plugin"/>
19074           </type>
19075         </return-value>
19076       </method>
19077       <method name="lookup" c:identifier="gst_registry_lookup">
19078         <doc xml:whitespace="preserve">Look up a plugin in the given registry with the given filename.
19079 If found, plugin is reffed.
19080 gst_object_unref() after usage.</doc>
19081         <return-value transfer-ownership="full">
19082           <doc xml:whitespace="preserve">the #GstPlugin if found, or NULL if not.</doc>
19083           <type name="Plugin" c:type="GstPlugin*"/>
19084         </return-value>
19085         <parameters>
19086           <parameter name="filename" transfer-ownership="none">
19087             <doc xml:whitespace="preserve">the name of the file to look up</doc>
19088             <type name="utf8" c:type="char*"/>
19089           </parameter>
19090         </parameters>
19091       </method>
19092       <method name="lookup_feature" c:identifier="gst_registry_lookup_feature">
19093         <doc xml:whitespace="preserve">Find a #GstPluginFeature with @name in @registry.
19094 use gst_object_unref() after usage.
19095 MT safe.</doc>
19096         <return-value transfer-ownership="full">
19097           <doc xml:whitespace="preserve">a #GstPluginFeature with its refcount incremented,</doc>
19098           <type name="PluginFeature" c:type="GstPluginFeature*"/>
19099         </return-value>
19100         <parameters>
19101           <parameter name="name" transfer-ownership="none">
19102             <doc xml:whitespace="preserve">a #GstPluginFeature name</doc>
19103             <type name="utf8" c:type="char*"/>
19104           </parameter>
19105         </parameters>
19106       </method>
19107       <method name="plugin_filter" c:identifier="gst_registry_plugin_filter">
19108         <doc xml:whitespace="preserve">Runs a filter against all plugins in the registry and returns a #GList with
19109 the results. If the first flag is set, only the first match is
19110 returned (as a list with a single object).
19111 Every plugin is reffed; use gst_plugin_list_free() after use, which
19112 will unref again.
19113 Use gst_plugin_list_free() after usage.
19114 MT safe.</doc>
19115         <return-value transfer-ownership="full">
19116           <doc xml:whitespace="preserve">a #GList of #GstPlugin.</doc>
19117           <type name="GLib.List" c:type="GList*">
19118             <type name="Plugin"/>
19119           </type>
19120         </return-value>
19121         <parameters>
19122           <parameter name="filter"
19123                      transfer-ownership="none"
19124                      scope="call"
19125                      closure="2">
19126             <doc xml:whitespace="preserve">the filter to use</doc>
19127             <type name="PluginFilter" c:type="GstPluginFilter"/>
19128           </parameter>
19129           <parameter name="first" transfer-ownership="none">
19130             <doc xml:whitespace="preserve">only return first match</doc>
19131             <type name="gboolean" c:type="gboolean"/>
19132           </parameter>
19133           <parameter name="user_data" transfer-ownership="none">
19134             <doc xml:whitespace="preserve">user data passed to the filter function</doc>
19135             <type name="gpointer" c:type="gpointer"/>
19136           </parameter>
19137         </parameters>
19138       </method>
19139       <method name="remove_feature" c:identifier="gst_registry_remove_feature">
19140         <doc xml:whitespace="preserve">Remove the feature from the registry.
19141 MT safe.</doc>
19142         <return-value transfer-ownership="none">
19143           <type name="none" c:type="void"/>
19144         </return-value>
19145         <parameters>
19146           <parameter name="feature" transfer-ownership="none">
19147             <doc xml:whitespace="preserve">the feature to remove</doc>
19148             <type name="PluginFeature" c:type="GstPluginFeature*"/>
19149           </parameter>
19150         </parameters>
19151       </method>
19152       <method name="remove_plugin" c:identifier="gst_registry_remove_plugin">
19153         <doc xml:whitespace="preserve">Remove the plugin from the registry.
19154 MT safe.</doc>
19155         <return-value transfer-ownership="none">
19156           <type name="none" c:type="void"/>
19157         </return-value>
19158         <parameters>
19159           <parameter name="plugin" transfer-ownership="none">
19160             <doc xml:whitespace="preserve">the plugin to remove</doc>
19161             <type name="Plugin" c:type="GstPlugin*"/>
19162           </parameter>
19163         </parameters>
19164       </method>
19165       <method name="scan_path" c:identifier="gst_registry_scan_path">
19166         <doc xml:whitespace="preserve">Scan the given path for plugins to add to the registry. The syntax of the
19167 path is specific to the registry.</doc>
19168         <return-value transfer-ownership="none">
19169           <doc xml:whitespace="preserve">%TRUE if registry changed</doc>
19170           <type name="gboolean" c:type="gboolean"/>
19171         </return-value>
19172         <parameters>
19173           <parameter name="path" transfer-ownership="none">
19174             <doc xml:whitespace="preserve">the path to scan</doc>
19175             <type name="utf8" c:type="gchar*"/>
19176           </parameter>
19177         </parameters>
19178       </method>
19179       <method name="xml_read_cache" c:identifier="gst_registry_xml_read_cache">
19180         <return-value transfer-ownership="none">
19181           <type name="gboolean" c:type="gboolean"/>
19182         </return-value>
19183         <parameters>
19184           <parameter name="location" transfer-ownership="none">
19185             <type name="utf8" c:type="char*"/>
19186           </parameter>
19187         </parameters>
19188       </method>
19189       <method name="xml_write_cache"
19190               c:identifier="gst_registry_xml_write_cache">
19191         <return-value transfer-ownership="none">
19192           <type name="gboolean" c:type="gboolean"/>
19193         </return-value>
19194         <parameters>
19195           <parameter name="location" transfer-ownership="none">
19196             <type name="utf8" c:type="char*"/>
19197           </parameter>
19198         </parameters>
19199       </method>
19200       <field name="object">
19201         <type name="Object" c:type="GstObject"/>
19202       </field>
19203       <field name="plugins" readable="0" private="1">
19204         <type name="GLib.List" c:type="GList*">
19205           <type name="gpointer" c:type="gpointer"/>
19206         </type>
19207       </field>
19208       <field name="features" readable="0" private="1">
19209         <type name="GLib.List" c:type="GList*">
19210           <type name="gpointer" c:type="gpointer"/>
19211         </type>
19212       </field>
19213       <field name="paths" readable="0" private="1">
19214         <type name="GLib.List" c:type="GList*">
19215           <type name="gpointer" c:type="gpointer"/>
19216         </type>
19217       </field>
19218       <field name="cache_file" readable="0" private="1">
19219         <type name="gint" c:type="int"/>
19220       </field>
19221       <field name="feature_hash" readable="0" private="1">
19222         <type name="GLib.HashTable" c:type="GHashTable*">
19223           <type name="gpointer" c:type="gpointer"/>
19224           <type name="gpointer" c:type="gpointer"/>
19225         </type>
19226       </field>
19227       <field name="basename_hash" readable="0" private="1">
19228         <type name="GLib.HashTable" c:type="GHashTable*">
19229           <type name="gpointer" c:type="gpointer"/>
19230           <type name="gpointer" c:type="gpointer"/>
19231         </type>
19232       </field>
19233       <field name="priv" readable="0" private="1">
19234         <type name="RegistryPrivate" c:type="GstRegistryPrivate*"/>
19235       </field>
19236       <field name="_gst_reserved" readable="0" private="1">
19237         <array zero-terminated="0" c:type="gpointer" fixed-size="1">
19238           <type name="gpointer" c:type="gpointer"/>
19239         </array>
19240       </field>
19241       <glib:signal name="feature-added">
19242         <doc xml:whitespace="preserve">Signals that a feature has been added to the registry (possibly
19243 replacing a previously-added one by the same name)</doc>
19244         <return-value transfer-ownership="none">
19245           <type name="none"/>
19246         </return-value>
19247         <parameters>
19248           <parameter name="feature" transfer-ownership="none">
19249             <doc xml:whitespace="preserve">the feature that has been added</doc>
19250             <type name="gpointer"/>
19251           </parameter>
19252         </parameters>
19253       </glib:signal>
19254       <glib:signal name="plugin-added">
19255         <doc xml:whitespace="preserve">Signals that a plugin has been added to the registry (possibly
19256 replacing a previously-added one by the same name)</doc>
19257         <return-value transfer-ownership="none">
19258           <type name="none"/>
19259         </return-value>
19260         <parameters>
19261           <parameter name="plugin" transfer-ownership="none">
19262             <doc xml:whitespace="preserve">the plugin that has been added</doc>
19263             <type name="gpointer"/>
19264           </parameter>
19265         </parameters>
19266       </glib:signal>
19267     </class>
19268     <record name="RegistryClass"
19269             c:type="GstRegistryClass"
19270             glib:is-gtype-struct-for="Registry">
19271       <field name="parent_class">
19272         <type name="ObjectClass" c:type="GstObjectClass"/>
19273       </field>
19274       <field name="plugin_added">
19275         <callback name="plugin_added">
19276           <return-value transfer-ownership="none">
19277             <type name="none" c:type="void"/>
19278           </return-value>
19279           <parameters>
19280             <parameter name="registry" transfer-ownership="none">
19281               <type name="Registry" c:type="GstRegistry*"/>
19282             </parameter>
19283             <parameter name="plugin" transfer-ownership="none">
19284               <type name="Plugin" c:type="GstPlugin*"/>
19285             </parameter>
19286           </parameters>
19287         </callback>
19288       </field>
19289       <field name="feature_added">
19290         <callback name="feature_added">
19291           <return-value transfer-ownership="none">
19292             <type name="none" c:type="void"/>
19293           </return-value>
19294           <parameters>
19295             <parameter name="registry" transfer-ownership="none">
19296               <type name="Registry" c:type="GstRegistry*"/>
19297             </parameter>
19298             <parameter name="feature" transfer-ownership="none">
19299               <type name="PluginFeature" c:type="GstPluginFeature*"/>
19300             </parameter>
19301           </parameters>
19302         </callback>
19303       </field>
19304       <field name="_gst_reserved" readable="0" private="1">
19305         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
19306           <type name="gpointer" c:type="gpointer"/>
19307         </array>
19308       </field>
19309     </record>
19310     <record name="RegistryPrivate" c:type="GstRegistryPrivate" disguised="1">
19311     </record>
19312     <enumeration name="ResourceError"
19313                  c:type="GstResourceError"
19314                  glib:error-quark="gst_resource_error_quark">
19315       <doc xml:whitespace="preserve">Resource errors are for any resource used by an element:
19316 memory, files, network connections, process space, ...
19317 They're typically used by source and sink elements.</doc>
19318       <member name="failed"
19319               value="1"
19320               c:identifier="GST_RESOURCE_ERROR_FAILED"/>
19321       <member name="too_lazy"
19322               value="2"
19323               c:identifier="GST_RESOURCE_ERROR_TOO_LAZY"/>
19324       <member name="not_found"
19325               value="3"
19326               c:identifier="GST_RESOURCE_ERROR_NOT_FOUND"/>
19327       <member name="busy" value="4" c:identifier="GST_RESOURCE_ERROR_BUSY"/>
19328       <member name="open_read"
19329               value="5"
19330               c:identifier="GST_RESOURCE_ERROR_OPEN_READ"/>
19331       <member name="open_write"
19332               value="6"
19333               c:identifier="GST_RESOURCE_ERROR_OPEN_WRITE"/>
19334       <member name="open_read_write"
19335               value="7"
19336               c:identifier="GST_RESOURCE_ERROR_OPEN_READ_WRITE"/>
19337       <member name="close" value="8" c:identifier="GST_RESOURCE_ERROR_CLOSE"/>
19338       <member name="read" value="9" c:identifier="GST_RESOURCE_ERROR_READ"/>
19339       <member name="write" value="10" c:identifier="GST_RESOURCE_ERROR_WRITE"/>
19340       <member name="seek" value="11" c:identifier="GST_RESOURCE_ERROR_SEEK"/>
19341       <member name="sync" value="12" c:identifier="GST_RESOURCE_ERROR_SYNC"/>
19342       <member name="settings"
19343               value="13"
19344               c:identifier="GST_RESOURCE_ERROR_SETTINGS"/>
19345       <member name="no_space_left"
19346               value="14"
19347               c:identifier="GST_RESOURCE_ERROR_NO_SPACE_LEFT"/>
19348       <member name="num_errors"
19349               value="15"
19350               c:identifier="GST_RESOURCE_ERROR_NUM_ERRORS"/>
19351     </enumeration>
19352     <constant name="SECOND" value="0">
19353       <type name="gint" c:type="gint"/>
19354     </constant>
19355     <enumeration name="SearchMode" version="0.10.23" c:type="GstSearchMode">
19356       <doc xml:whitespace="preserve">The different search modes.</doc>
19357       <member name="exact" value="0" c:identifier="GST_SEARCH_MODE_EXACT"/>
19358       <member name="before" value="1" c:identifier="GST_SEARCH_MODE_BEFORE"/>
19359       <member name="after" value="2" c:identifier="GST_SEARCH_MODE_AFTER"/>
19360     </enumeration>
19361     <bitfield name="SeekFlags" c:type="GstSeekFlags">
19362       <doc xml:whitespace="preserve">Flags to be used with gst_element_seek() or gst_event_new_seek(). All flags
19363 can be used together.
19364 A non flushing seek might take some time to perform as the currently
19365 playing data in the pipeline will not be cleared.
19366 An accurate seek might be slower for formats that don't have any indexes
19367 or timestamp markers in the stream. Specifying this flag might require a
19368 complete scan of the file in those cases.
19369 no EOS will be emmited by the element that performed the seek, but a
19370 #GST_MESSAGE_SEGMENT_DONE message will be posted on the bus by the element.
19371 When this message is posted, it is possible to send a new seek event to
19372 continue playback. With this seek method it is possible to perform seemless
19373 looping or simple linear editing.
19374 When doing fast forward (rate &gt; 1.0) or fast reverse (rate &lt; -1.0) trickmode
19375 playback, the @GST_SEEK_FLAG_SKIP flag can be used to instruct decoders
19376 and demuxers to adjust the playback rate by skipping frames. This can improve
19377 performance and decrease CPU usage because not all frames need to be decoded.
19378 Also see part-seeking.txt in the GStreamer design documentation for more
19379 details on the meaning of these flags and the behaviour expected of
19380 elements that handle them.</doc>
19381       <member name="none" value="0" c:identifier="GST_SEEK_FLAG_NONE"/>
19382       <member name="flush" value="1" c:identifier="GST_SEEK_FLAG_FLUSH"/>
19383       <member name="accurate" value="2" c:identifier="GST_SEEK_FLAG_ACCURATE"/>
19384       <member name="key_unit" value="4" c:identifier="GST_SEEK_FLAG_KEY_UNIT"/>
19385       <member name="segment" value="8" c:identifier="GST_SEEK_FLAG_SEGMENT"/>
19386       <member name="skip" value="16" c:identifier="GST_SEEK_FLAG_SKIP"/>
19387     </bitfield>
19388     <enumeration name="SeekType" c:type="GstSeekType">
19389       <doc xml:whitespace="preserve">The different types of seek events. When constructing a seek event with
19390 gst_event_new_seek(), a format, a seek method and optional flags are to
19391 be provided. The seek event is then inserted into the graph with
19392 gst_pad_send_event() or gst_element_send_event().</doc>
19393       <member name="none" value="0" c:identifier="GST_SEEK_TYPE_NONE"/>
19394       <member name="cur" value="1" c:identifier="GST_SEEK_TYPE_CUR"/>
19395       <member name="set" value="2" c:identifier="GST_SEEK_TYPE_SET"/>
19396       <member name="end" value="3" c:identifier="GST_SEEK_TYPE_END"/>
19397     </enumeration>
19398     <record name="Segment"
19399             c:type="GstSegment"
19400             glib:type-name="GstSegment"
19401             glib:get-type="gst_segment_get_type"
19402             c:symbol-prefix="segment">
19403       <doc xml:whitespace="preserve">This helper structure holds the relevant values for tracking the region of
19404 interest in a media file, called a segment. 
19405 The structure can be used for two purposes:
19406 &lt;itemizedlist&gt;
19407 &lt;listitem&gt;&lt;para&gt;performing seeks (handling seek events)&lt;/para&gt;&lt;/listitem&gt;
19408 &lt;listitem&gt;&lt;para&gt;tracking playback regions (handling newsegment events)&lt;/para&gt;&lt;/listitem&gt;
19409 &lt;/itemizedlist&gt;
19410 The segment is usually configured by the application with a seek event which 
19411 is propagated upstream and eventually handled by an element that performs the seek.
19412 The configured segment is then propagated back downstream with a newsegment event.
19413 This information is then used to clip media to the segment boundaries.
19414 A segment structure is initialized with gst_segment_init(), which takes a #GstFormat
19415 that will be used as the format of the segment values. The segment will be configured
19416 with a start value of 0 and a stop/duration of -1, which is undefined. The default
19417 rate and applied_rate is 1.0.
19418 If the segment is used for managing seeks, the segment duration should be set with
19419 gst_segment_set_duration(). The public duration field contains the duration of the
19420 segment. When using the segment for seeking, the start and time members should 
19421 normally be left to their default 0 value. The stop position is left to -1 unless
19422 explicitly configured to a different value after a seek event.
19423 The current position in the segment should be set with the gst_segment_set_last_stop().
19424 The public last_stop field contains the last set stop position in the segment.
19425 For elements that perform seeks, the current segment should be updated with the
19426 gst_segment_set_seek() and the values from the seek event. This method will update
19427 all the segment fields. The last_stop field will contain the new playback position.
19428 If the cur_type was different from GST_SEEK_TYPE_NONE, playback continues from
19429 the last_stop position, possibly with updated flags or rate.
19430 For elements that want to use #GstSegment to track the playback region, use
19431 gst_segment_set_newsegment() to update the segment fields with the information from
19432 the newsegment event. The gst_segment_clip() method can be used to check and clip
19433 the media data to the segment boundaries.
19434 For elements that want to synchronize to the pipeline clock, gst_segment_to_running_time()
19435 can be used to convert a timestamp to a value that can be used to synchronize
19436 to the clock. This function takes into account all accumulated segments as well as
19437 any rate or applied_rate conversions.
19438 For elements that need to perform operations on media data in stream_time, 
19439 gst_segment_to_stream_time() can be used to convert a timestamp and the segment
19440 info to stream time (which is always between 0 and the duration of the stream).
19441 Last reviewed on 2007-05-17 (0.10.13)</doc>
19442       <field name="rate" writable="1">
19443         <type name="gdouble" c:type="gdouble"/>
19444       </field>
19445       <field name="abs_rate" writable="1">
19446         <type name="gdouble" c:type="gdouble"/>
19447       </field>
19448       <field name="format" writable="1">
19449         <type name="Format" c:type="GstFormat"/>
19450       </field>
19451       <field name="flags" writable="1">
19452         <type name="SeekFlags" c:type="GstSeekFlags"/>
19453       </field>
19454       <field name="start" writable="1">
19455         <type name="gint64" c:type="gint64"/>
19456       </field>
19457       <field name="stop" writable="1">
19458         <type name="gint64" c:type="gint64"/>
19459       </field>
19460       <field name="time" writable="1">
19461         <type name="gint64" c:type="gint64"/>
19462       </field>
19463       <field name="accum" writable="1">
19464         <type name="gint64" c:type="gint64"/>
19465       </field>
19466       <field name="last_stop" writable="1">
19467         <type name="gint64" c:type="gint64"/>
19468       </field>
19469       <field name="duration" writable="1">
19470         <type name="gint64" c:type="gint64"/>
19471       </field>
19472       <field name="applied_rate" writable="1">
19473         <type name="gdouble" c:type="gdouble"/>
19474       </field>
19475       <field name="_gst_reserved" readable="0" private="1">
19476         <array zero-terminated="0" c:type="guint8" fixed-size="0">
19477           <type name="guint8" c:type="guint8"/>
19478         </array>
19479       </field>
19480       <constructor name="new" c:identifier="gst_segment_new">
19481         <doc xml:whitespace="preserve">Allocate a new #GstSegment structure and initialize it using 
19482 gst_segment_init().</doc>
19483         <return-value transfer-ownership="full">
19484           <doc xml:whitespace="preserve">a new #GstSegment, free with gst_segment_free().</doc>
19485           <type name="Segment" c:type="GstSegment*"/>
19486         </return-value>
19487       </constructor>
19488       <method name="clip" c:identifier="gst_segment_clip">
19489         <doc xml:whitespace="preserve">Clip the given @start and @stop values to the segment boundaries given
19490 in @segment. @start and @stop are compared and clipped to @segment 
19491 start and stop values.
19492 If the function returns FALSE, @start and @stop are known to fall
19493 outside of @segment and @clip_start and @clip_stop are not updated.
19494 When the function returns TRUE, @clip_start and @clip_stop will be
19495 updated. If @clip_start or @clip_stop are different from @start or @stop
19496 respectively, the region fell partially in the segment.
19497 Note that when @stop is -1, @clip_stop will be set to the end of the
19498 segment. Depending on the use case, this may or may not be what you want.
19499 completely in @segment, FALSE if the values are completely outside 
19500 of the segment.</doc>
19501         <return-value transfer-ownership="none">
19502           <doc xml:whitespace="preserve">TRUE if the given @start and @stop times fall partially or</doc>
19503           <type name="gboolean" c:type="gboolean"/>
19504         </return-value>
19505         <parameters>
19506           <parameter name="format" transfer-ownership="none">
19507             <doc xml:whitespace="preserve">the format of the segment.</doc>
19508             <type name="Format" c:type="GstFormat"/>
19509           </parameter>
19510           <parameter name="start" transfer-ownership="none">
19511             <doc xml:whitespace="preserve">the start position in the segment</doc>
19512             <type name="gint64" c:type="gint64"/>
19513           </parameter>
19514           <parameter name="stop" transfer-ownership="none">
19515             <doc xml:whitespace="preserve">the stop position in the segment</doc>
19516             <type name="gint64" c:type="gint64"/>
19517           </parameter>
19518           <parameter name="clip_start"
19519                      direction="out"
19520                      caller-allocates="0"
19521                      transfer-ownership="full"
19522                      allow-none="1">
19523             <doc xml:whitespace="preserve">the clipped start position in the segment</doc>
19524             <type name="gint64" c:type="gint64*"/>
19525           </parameter>
19526           <parameter name="clip_stop"
19527                      direction="out"
19528                      caller-allocates="0"
19529                      transfer-ownership="full"
19530                      allow-none="1">
19531             <doc xml:whitespace="preserve">the clipped stop position in the segment</doc>
19532             <type name="gint64" c:type="gint64*"/>
19533           </parameter>
19534         </parameters>
19535       </method>
19536       <method name="copy" c:identifier="gst_segment_copy" version="0.10.20">
19537         <doc xml:whitespace="preserve">Create a copy of given @segment.</doc>
19538         <return-value transfer-ownership="full">
19539           <doc xml:whitespace="preserve">a new #GstSegment, free with gst_segment_free().</doc>
19540           <type name="Segment" c:type="GstSegment*"/>
19541         </return-value>
19542       </method>
19543       <method name="free" c:identifier="gst_segment_free">
19544         <doc xml:whitespace="preserve">Free the allocated segment @segment.</doc>
19545         <return-value transfer-ownership="none">
19546           <type name="none" c:type="void"/>
19547         </return-value>
19548       </method>
19549       <method name="init" c:identifier="gst_segment_init">
19550         <doc xml:whitespace="preserve">The start/last_stop positions are set to 0 and the stop/duration
19551 fields are set to -1 (unknown). The default rate of 1.0 and no
19552 flags are set.
19553 Initialize @segment to its default values.</doc>
19554         <return-value transfer-ownership="none">
19555           <type name="none" c:type="void"/>
19556         </return-value>
19557         <parameters>
19558           <parameter name="format" transfer-ownership="none">
19559             <doc xml:whitespace="preserve">the format of the segment.</doc>
19560             <type name="Format" c:type="GstFormat"/>
19561           </parameter>
19562         </parameters>
19563       </method>
19564       <method name="set_duration" c:identifier="gst_segment_set_duration">
19565         <doc xml:whitespace="preserve">Set the duration of the segment to @duration. This function is mainly
19566 used by elements that perform seeking and know the total duration of the
19567 segment. 
19568 This field should be set to allow seeking requests relative to the
19569 duration.</doc>
19570         <return-value transfer-ownership="none">
19571           <type name="none" c:type="void"/>
19572         </return-value>
19573         <parameters>
19574           <parameter name="format" transfer-ownership="none">
19575             <doc xml:whitespace="preserve">the format of the segment.</doc>
19576             <type name="Format" c:type="GstFormat"/>
19577           </parameter>
19578           <parameter name="duration" transfer-ownership="none">
19579             <doc xml:whitespace="preserve">the duration of the segment info or -1 if unknown.</doc>
19580             <type name="gint64" c:type="gint64"/>
19581           </parameter>
19582         </parameters>
19583       </method>
19584       <method name="set_last_stop" c:identifier="gst_segment_set_last_stop">
19585         <doc xml:whitespace="preserve">Set the last observed stop position in the segment to @position.
19586 This field should be set to allow seeking requests relative to the
19587 current playing position.</doc>
19588         <return-value transfer-ownership="none">
19589           <type name="none" c:type="void"/>
19590         </return-value>
19591         <parameters>
19592           <parameter name="format" transfer-ownership="none">
19593             <doc xml:whitespace="preserve">the format of the segment.</doc>
19594             <type name="Format" c:type="GstFormat"/>
19595           </parameter>
19596           <parameter name="position" transfer-ownership="none">
19597             <doc xml:whitespace="preserve">the position</doc>
19598             <type name="gint64" c:type="gint64"/>
19599           </parameter>
19600         </parameters>
19601       </method>
19602       <method name="set_newsegment"
19603               c:identifier="gst_segment_set_newsegment"
19604               version="0.10.6">
19605         <doc xml:whitespace="preserve">Update the segment structure with the field values of a new segment event and
19606 with a default applied_rate of 1.0.</doc>
19607         <return-value transfer-ownership="none">
19608           <type name="none" c:type="void"/>
19609         </return-value>
19610         <parameters>
19611           <parameter name="update" transfer-ownership="none">
19612             <doc xml:whitespace="preserve">flag indicating a new segment is started or updated</doc>
19613             <type name="gboolean" c:type="gboolean"/>
19614           </parameter>
19615           <parameter name="rate" transfer-ownership="none">
19616             <doc xml:whitespace="preserve">the rate of the segment.</doc>
19617             <type name="gdouble" c:type="gdouble"/>
19618           </parameter>
19619           <parameter name="format" transfer-ownership="none">
19620             <doc xml:whitespace="preserve">the format of the segment.</doc>
19621             <type name="Format" c:type="GstFormat"/>
19622           </parameter>
19623           <parameter name="start" transfer-ownership="none">
19624             <doc xml:whitespace="preserve">the new start value</doc>
19625             <type name="gint64" c:type="gint64"/>
19626           </parameter>
19627           <parameter name="stop" transfer-ownership="none">
19628             <doc xml:whitespace="preserve">the new stop value</doc>
19629             <type name="gint64" c:type="gint64"/>
19630           </parameter>
19631           <parameter name="time" transfer-ownership="none">
19632             <doc xml:whitespace="preserve">the new stream time</doc>
19633             <type name="gint64" c:type="gint64"/>
19634           </parameter>
19635         </parameters>
19636       </method>
19637       <method name="set_newsegment_full"
19638               c:identifier="gst_segment_set_newsegment_full">
19639         <doc xml:whitespace="preserve">Update the segment structure with the field values of a new segment event.</doc>
19640         <return-value transfer-ownership="none">
19641           <type name="none" c:type="void"/>
19642         </return-value>
19643         <parameters>
19644           <parameter name="update" transfer-ownership="none">
19645             <doc xml:whitespace="preserve">flag indicating a new segment is started or updated</doc>
19646             <type name="gboolean" c:type="gboolean"/>
19647           </parameter>
19648           <parameter name="rate" transfer-ownership="none">
19649             <doc xml:whitespace="preserve">the rate of the segment.</doc>
19650             <type name="gdouble" c:type="gdouble"/>
19651           </parameter>
19652           <parameter name="applied_rate" transfer-ownership="none">
19653             <doc xml:whitespace="preserve">the applied rate of the segment.</doc>
19654             <type name="gdouble" c:type="gdouble"/>
19655           </parameter>
19656           <parameter name="format" transfer-ownership="none">
19657             <doc xml:whitespace="preserve">the format of the segment.</doc>
19658             <type name="Format" c:type="GstFormat"/>
19659           </parameter>
19660           <parameter name="start" transfer-ownership="none">
19661             <doc xml:whitespace="preserve">the new start value</doc>
19662             <type name="gint64" c:type="gint64"/>
19663           </parameter>
19664           <parameter name="stop" transfer-ownership="none">
19665             <doc xml:whitespace="preserve">the new stop value</doc>
19666             <type name="gint64" c:type="gint64"/>
19667           </parameter>
19668           <parameter name="time" transfer-ownership="none">
19669             <doc xml:whitespace="preserve">the new stream time</doc>
19670             <type name="gint64" c:type="gint64"/>
19671           </parameter>
19672         </parameters>
19673       </method>
19674       <method name="set_running_time"
19675               c:identifier="gst_segment_set_running_time"
19676               version="0.10.24">
19677         <doc xml:whitespace="preserve">Adjust the start/stop and accum values of @segment such that the next valid
19678 buffer will be one with @running_time.
19679 returned, @running_time is -1 or not in @segment.</doc>
19680         <return-value transfer-ownership="none">
19681           <doc xml:whitespace="preserve">%TRUE if the segment could be updated successfully. If %FALSE is</doc>
19682           <type name="gboolean" c:type="gboolean"/>
19683         </return-value>
19684         <parameters>
19685           <parameter name="format" transfer-ownership="none">
19686             <doc xml:whitespace="preserve">the format of the segment.</doc>
19687             <type name="Format" c:type="GstFormat"/>
19688           </parameter>
19689           <parameter name="running_time" transfer-ownership="none">
19690             <doc xml:whitespace="preserve">the running_time in the segment</doc>
19691             <type name="gint64" c:type="gint64"/>
19692           </parameter>
19693         </parameters>
19694       </method>
19695       <method name="set_seek" c:identifier="gst_segment_set_seek">
19696         <doc xml:whitespace="preserve">Update the segment structure with the field values of a seek event (see
19697 gst_event_new_seek()).
19698 After calling this method, the segment field last_stop and time will
19699 contain the requested new position in the segment. The new requested
19700 position in the segment depends on @rate and @start_type and @stop_type. 
19701 For positive @rate, the new position in the segment is the new @segment
19702 start field when it was updated with a @start_type different from
19703 #GST_SEEK_TYPE_NONE. If no update was performed on @segment start position
19704 (#GST_SEEK_TYPE_NONE), @start is ignored and @segment last_stop is
19705 unmodified.
19706 For negative @rate, the new position in the segment is the new @segment
19707 stop field when it was updated with a @stop_type different from
19708 #GST_SEEK_TYPE_NONE. If no stop was previously configured in the segment, the
19709 duration of the segment will be used to update the stop position.
19710 If no update was performed on @segment stop position (#GST_SEEK_TYPE_NONE),
19711 The applied rate of the segment will be set to 1.0 by default.
19712 If the caller can apply a rate change, it should update @segment
19713 rate and applied_rate after calling this function.
19714 last_stop field. This field can be FALSE if, for example, only the @rate
19715 has been changed but not the playback position.</doc>
19716         <return-value transfer-ownership="none">
19717           <type name="none" c:type="void"/>
19718         </return-value>
19719         <parameters>
19720           <parameter name="rate" transfer-ownership="none">
19721             <doc xml:whitespace="preserve">the rate of the segment.</doc>
19722             <type name="gdouble" c:type="gdouble"/>
19723           </parameter>
19724           <parameter name="format" transfer-ownership="none">
19725             <doc xml:whitespace="preserve">the format of the segment.</doc>
19726             <type name="Format" c:type="GstFormat"/>
19727           </parameter>
19728           <parameter name="flags" transfer-ownership="none">
19729             <doc xml:whitespace="preserve">the seek flags for the segment</doc>
19730             <type name="SeekFlags" c:type="GstSeekFlags"/>
19731           </parameter>
19732           <parameter name="start_type" transfer-ownership="none">
19733             <doc xml:whitespace="preserve">the seek method</doc>
19734             <type name="SeekType" c:type="GstSeekType"/>
19735           </parameter>
19736           <parameter name="start" transfer-ownership="none">
19737             <doc xml:whitespace="preserve">the seek start value</doc>
19738             <type name="gint64" c:type="gint64"/>
19739           </parameter>
19740           <parameter name="stop_type" transfer-ownership="none">
19741             <doc xml:whitespace="preserve">the seek method</doc>
19742             <type name="SeekType" c:type="GstSeekType"/>
19743           </parameter>
19744           <parameter name="stop" transfer-ownership="none">
19745             <doc xml:whitespace="preserve">the seek stop value</doc>
19746             <type name="gint64" c:type="gint64"/>
19747           </parameter>
19748           <parameter name="update" transfer-ownership="none">
19749             <doc xml:whitespace="preserve">boolean holding whether last_stop was updated.</doc>
19750             <type name="gboolean" c:type="gboolean*"/>
19751           </parameter>
19752         </parameters>
19753       </method>
19754       <method name="to_position"
19755               c:identifier="gst_segment_to_position"
19756               version="0.10.24">
19757         <doc xml:whitespace="preserve">Convert @running_time into a position in the segment so that
19758 gst_segment_to_running_time() with that position returns @running_time.
19759 -1 when @running_time is -1 or when it is not inside @segment.</doc>
19760         <return-value transfer-ownership="none">
19761           <doc xml:whitespace="preserve">the position in the segment for @running_time. This function returns</doc>
19762           <type name="gint64" c:type="gint64"/>
19763         </return-value>
19764         <parameters>
19765           <parameter name="format" transfer-ownership="none">
19766             <doc xml:whitespace="preserve">the format of the segment.</doc>
19767             <type name="Format" c:type="GstFormat"/>
19768           </parameter>
19769           <parameter name="running_time" transfer-ownership="none">
19770             <doc xml:whitespace="preserve">the running_time in the segment</doc>
19771             <type name="gint64" c:type="gint64"/>
19772           </parameter>
19773         </parameters>
19774       </method>
19775       <method name="to_running_time"
19776               c:identifier="gst_segment_to_running_time">
19777         <doc xml:whitespace="preserve">Translate @position to the total running time using the currently configured 
19778 and previously accumulated segments. Position is a value between @segment
19779 start and stop time.
19780 This function is typically used by elements that need to synchronize to the
19781 global clock in a pipeline. The runnning time is a constantly increasing value
19782 starting from 0. When gst_segment_init() is called, this value will reset to
19783 0.
19784 This function returns -1 if the position is outside of @segment start and stop.
19785 was given.</doc>
19786         <return-value transfer-ownership="none">
19787           <doc xml:whitespace="preserve">the position as the total running time or -1 when an invalid position</doc>
19788           <type name="gint64" c:type="gint64"/>
19789         </return-value>
19790         <parameters>
19791           <parameter name="format" transfer-ownership="none">
19792             <doc xml:whitespace="preserve">the format of the segment.</doc>
19793             <type name="Format" c:type="GstFormat"/>
19794           </parameter>
19795           <parameter name="position" transfer-ownership="none">
19796             <doc xml:whitespace="preserve">the position in the segment</doc>
19797             <type name="gint64" c:type="gint64"/>
19798           </parameter>
19799         </parameters>
19800       </method>
19801       <method name="to_stream_time" c:identifier="gst_segment_to_stream_time">
19802         <doc xml:whitespace="preserve">Translate @position to stream time using the currently configured 
19803 segment. The @position value must be between @segment start and
19804 stop value. 
19805 This function is typically used by elements that need to operate on
19806 the stream time of the buffers it receives, such as effect plugins.
19807 In those use cases, @position is typically the buffer timestamp or 
19808 clock time that one wants to convert to the stream time.
19809 The stream time is always between 0 and the total duration of the 
19810 media stream. 
19811 was given.</doc>
19812         <return-value transfer-ownership="none">
19813           <doc xml:whitespace="preserve">the position in stream_time or -1 when an invalid position</doc>
19814           <type name="gint64" c:type="gint64"/>
19815         </return-value>
19816         <parameters>
19817           <parameter name="format" transfer-ownership="none">
19818             <doc xml:whitespace="preserve">the format of the segment.</doc>
19819             <type name="Format" c:type="GstFormat"/>
19820           </parameter>
19821           <parameter name="position" transfer-ownership="none">
19822             <doc xml:whitespace="preserve">the position in the segment</doc>
19823             <type name="gint64" c:type="gint64"/>
19824           </parameter>
19825         </parameters>
19826       </method>
19827     </record>
19828     <enumeration name="State" c:type="GstState">
19829       <doc xml:whitespace="preserve">The possible states an element can be in. States can be changed using
19830 gst_element_set_state() and checked using gst_element_get_state().</doc>
19831       <member name="void_pending"
19832               value="0"
19833               c:identifier="GST_STATE_VOID_PENDING"/>
19834       <member name="null" value="1" c:identifier="GST_STATE_NULL"/>
19835       <member name="ready" value="2" c:identifier="GST_STATE_READY"/>
19836       <member name="paused" value="3" c:identifier="GST_STATE_PAUSED"/>
19837       <member name="playing" value="4" c:identifier="GST_STATE_PLAYING"/>
19838     </enumeration>
19839     <bitfield name="StateChange" c:type="GstStateChange">
19840       <doc xml:whitespace="preserve">These are the different state changes an element goes through.
19841 %GST_STATE_NULL &amp;rArr; %GST_STATE_PLAYING is called an upwards state change
19842 and %GST_STATE_PLAYING &amp;rArr; %GST_STATE_NULL a downwards state change.</doc>
19843       <member name="null_to_ready"
19844               value="10"
19845               c:identifier="GST_STATE_CHANGE_NULL_TO_READY"/>
19846       <member name="ready_to_paused"
19847               value="19"
19848               c:identifier="GST_STATE_CHANGE_READY_TO_PAUSED"/>
19849       <member name="paused_to_playing"
19850               value="28"
19851               c:identifier="GST_STATE_CHANGE_PAUSED_TO_PLAYING"/>
19852       <member name="playing_to_paused"
19853               value="35"
19854               c:identifier="GST_STATE_CHANGE_PLAYING_TO_PAUSED"/>
19855       <member name="paused_to_ready"
19856               value="26"
19857               c:identifier="GST_STATE_CHANGE_PAUSED_TO_READY"/>
19858       <member name="ready_to_null"
19859               value="17"
19860               c:identifier="GST_STATE_CHANGE_READY_TO_NULL"/>
19861     </bitfield>
19862     <enumeration name="StateChangeReturn" c:type="GstStateChangeReturn">
19863       <doc xml:whitespace="preserve">The possible return values from a state change function. Only</doc>
19864       <member name="failure"
19865               value="0"
19866               c:identifier="GST_STATE_CHANGE_FAILURE"/>
19867       <member name="success"
19868               value="1"
19869               c:identifier="GST_STATE_CHANGE_SUCCESS"/>
19870       <member name="async" value="2" c:identifier="GST_STATE_CHANGE_ASYNC"/>
19871       <member name="no_preroll"
19872               value="3"
19873               c:identifier="GST_STATE_CHANGE_NO_PREROLL"/>
19874     </enumeration>
19875     <record name="StaticCaps" c:type="GstStaticCaps">
19876       <doc xml:whitespace="preserve">Datastructure to initialize #GstCaps from a string description usually
19877 used in conjunction with GST_STATIC_CAPS() and gst_static_caps_get() to
19878 instantiate a #GstCaps.</doc>
19879       <field name="caps" writable="1">
19880         <type name="Caps" c:type="GstCaps"/>
19881       </field>
19882       <field name="string" writable="1">
19883         <type name="utf8" c:type="char*"/>
19884       </field>
19885       <field name="_gst_reserved" readable="0" private="1">
19886         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
19887           <type name="gpointer" c:type="gpointer"/>
19888         </array>
19889       </field>
19890       <method name="get" c:identifier="gst_static_caps_get">
19891         <doc xml:whitespace="preserve">Converts a #GstStaticCaps to a #GstCaps.
19892 Since the core holds an additional ref to the returned caps,
19893 use gst_caps_make_writable() on the returned caps to modify it.</doc>
19894         <return-value transfer-ownership="full">
19895           <doc xml:whitespace="preserve">a pointer to the #GstCaps. Unref after usage.</doc>
19896           <type name="Caps" c:type="GstCaps*"/>
19897         </return-value>
19898       </method>
19899     </record>
19900     <record name="StaticPadTemplate" c:type="GstStaticPadTemplate">
19901       <doc xml:whitespace="preserve">Structure describing the #GstStaticPadTemplate.</doc>
19902       <field name="name_template" writable="1">
19903         <type name="utf8" c:type="gchar*"/>
19904       </field>
19905       <field name="direction" writable="1">
19906         <type name="PadDirection" c:type="GstPadDirection"/>
19907       </field>
19908       <field name="presence" writable="1">
19909         <type name="PadPresence" c:type="GstPadPresence"/>
19910       </field>
19911       <field name="static_caps" writable="1">
19912         <type name="StaticCaps" c:type="GstStaticCaps"/>
19913       </field>
19914       <method name="get" c:identifier="gst_static_pad_template_get">
19915         <doc xml:whitespace="preserve">Converts a #GstStaticPadTemplate into a #GstPadTemplate.</doc>
19916         <return-value transfer-ownership="full">
19917           <doc xml:whitespace="preserve">a new #GstPadTemplate.</doc>
19918           <type name="PadTemplate" c:type="GstPadTemplate*"/>
19919         </return-value>
19920       </method>
19921       <method name="get_caps" c:identifier="gst_static_pad_template_get_caps">
19922         <doc xml:whitespace="preserve">Gets the capabilities of the static pad template.
19923 Unref after usage. Since the core holds an additional
19924 ref to the returned caps, use gst_caps_make_writable()
19925 on the returned caps to modify it.</doc>
19926         <return-value transfer-ownership="full">
19927           <doc xml:whitespace="preserve">the #GstCaps of the static pad template.</doc>
19928           <type name="Caps" c:type="GstCaps*"/>
19929         </return-value>
19930       </method>
19931     </record>
19932     <enumeration name="StreamError"
19933                  c:type="GstStreamError"
19934                  glib:error-quark="gst_stream_error_quark">
19935       <doc xml:whitespace="preserve">Stream errors are for anything related to the stream being processed:
19936 format errors, media type errors, ...
19937 They're typically used by decoders, demuxers, converters, ...</doc>
19938       <member name="failed" value="1" c:identifier="GST_STREAM_ERROR_FAILED"/>
19939       <member name="too_lazy"
19940               value="2"
19941               c:identifier="GST_STREAM_ERROR_TOO_LAZY"/>
19942       <member name="not_implemented"
19943               value="3"
19944               c:identifier="GST_STREAM_ERROR_NOT_IMPLEMENTED"/>
19945       <member name="type_not_found"
19946               value="4"
19947               c:identifier="GST_STREAM_ERROR_TYPE_NOT_FOUND"/>
19948       <member name="wrong_type"
19949               value="5"
19950               c:identifier="GST_STREAM_ERROR_WRONG_TYPE"/>
19951       <member name="codec_not_found"
19952               value="6"
19953               c:identifier="GST_STREAM_ERROR_CODEC_NOT_FOUND"/>
19954       <member name="decode" value="7" c:identifier="GST_STREAM_ERROR_DECODE"/>
19955       <member name="encode" value="8" c:identifier="GST_STREAM_ERROR_ENCODE"/>
19956       <member name="demux" value="9" c:identifier="GST_STREAM_ERROR_DEMUX"/>
19957       <member name="mux" value="10" c:identifier="GST_STREAM_ERROR_MUX"/>
19958       <member name="format" value="11" c:identifier="GST_STREAM_ERROR_FORMAT"/>
19959       <member name="decrypt"
19960               value="12"
19961               c:identifier="GST_STREAM_ERROR_DECRYPT"/>
19962       <member name="decrypt_nokey"
19963               value="13"
19964               c:identifier="GST_STREAM_ERROR_DECRYPT_NOKEY"/>
19965       <member name="num_errors"
19966               value="14"
19967               c:identifier="GST_STREAM_ERROR_NUM_ERRORS"/>
19968     </enumeration>
19969     <enumeration name="StreamStatusType"
19970                  version="0.10.24"
19971                  c:type="GstStreamStatusType">
19972       <doc xml:whitespace="preserve">The type of a %GST_MESSAGE_STREAM_STATUS. The stream status messages inform the
19973 application of new streaming threads and their status.</doc>
19974       <member name="create"
19975               value="0"
19976               c:identifier="GST_STREAM_STATUS_TYPE_CREATE"/>
19977       <member name="enter"
19978               value="1"
19979               c:identifier="GST_STREAM_STATUS_TYPE_ENTER"/>
19980       <member name="leave"
19981               value="2"
19982               c:identifier="GST_STREAM_STATUS_TYPE_LEAVE"/>
19983       <member name="destroy"
19984               value="3"
19985               c:identifier="GST_STREAM_STATUS_TYPE_DESTROY"/>
19986       <member name="start"
19987               value="8"
19988               c:identifier="GST_STREAM_STATUS_TYPE_START"/>
19989       <member name="pause"
19990               value="9"
19991               c:identifier="GST_STREAM_STATUS_TYPE_PAUSE"/>
19992       <member name="stop"
19993               value="10"
19994               c:identifier="GST_STREAM_STATUS_TYPE_STOP"/>
19995     </enumeration>
19996     <record name="Structure"
19997             c:type="GstStructure"
19998             glib:type-name="GstStructure"
19999             glib:get-type="gst_structure_get_type"
20000             c:symbol-prefix="structure">
20001       <doc xml:whitespace="preserve">A #GstStructure is a collection of key/value pairs. The keys are expressed
20002 as GQuarks and the values can be of any GType.
20003 In addition to the key/value pairs, a #GstStructure also has a name. The name
20004 starts with a letter and can be folled by letters, numbers and any of "/-_.:".
20005 #GstStructure is used by various GStreamer subsystems to store information
20006 in a flexible and extensible way. A #GstStructure does not have a refcount
20007 because it usually is part of a higher level object such as #GstCaps. It
20008 provides a means to enforce mutability using the refcount of the parent
20009 with the gst_structure_set_parent_refcount() method.
20010 A #GstStructure can be created with gst_structure_empty_new() or
20011 gst_structure_new(), which both take a name and an optional set of
20012 key/value pairs along with the types of the values.
20013 Field values can be changed with gst_structure_set_value() or
20014 gst_structure_set().
20015 Field values can be retrieved with gst_structure_get_value() or the more
20016 convenient gst_structure_get_*() functions.
20017 Fields can be removed with gst_structure_remove_field() or
20018 gst_structure_remove_fields().
20019 Strings in structures must be ASCII or UTF-8 encoded. Other encodings are
20020 not allowed. Strings must not be empty either, but may be NULL.
20021 Last reviewed on 2009-06-08 (0.10.23)</doc>
20022       <field name="type" writable="1">
20023         <type name="GType" c:type="GType"/>
20024       </field>
20025       <field name="name" readable="0" private="1">
20026         <type name="GLib.Quark" c:type="GQuark"/>
20027       </field>
20028       <field name="parent_refcount" readable="0" private="1">
20029         <type name="gint" c:type="gint*"/>
20030       </field>
20031       <field name="fields" readable="0" private="1">
20032         <array name="GLib.Array" c:type="GArray*">
20033           <type name="gpointer" c:type="gpointer"/>
20034         </array>
20035       </field>
20036       <field name="_gst_reserved" readable="0" private="1">
20037         <type name="gpointer" c:type="gpointer"/>
20038       </field>
20039       <constructor name="empty_new" c:identifier="gst_structure_empty_new">
20040         <doc xml:whitespace="preserve">Creates a new, empty #GstStructure with the given @name.
20041 See gst_structure_set_name() for constraints on the @name parameter.</doc>
20042         <return-value transfer-ownership="full">
20043           <doc xml:whitespace="preserve">a new, empty #GstStructure</doc>
20044           <type name="Structure" c:type="GstStructure*"/>
20045         </return-value>
20046         <parameters>
20047           <parameter name="name" transfer-ownership="none">
20048             <doc xml:whitespace="preserve">name of new structure</doc>
20049             <type name="utf8" c:type="gchar*"/>
20050           </parameter>
20051         </parameters>
20052       </constructor>
20053       <constructor name="id_empty_new"
20054                    c:identifier="gst_structure_id_empty_new">
20055         <doc xml:whitespace="preserve">Creates a new, empty #GstStructure with the given name as a GQuark.</doc>
20056         <return-value transfer-ownership="full">
20057           <doc xml:whitespace="preserve">a new, empty #GstStructure</doc>
20058           <type name="Structure" c:type="GstStructure*"/>
20059         </return-value>
20060         <parameters>
20061           <parameter name="quark" transfer-ownership="none">
20062             <doc xml:whitespace="preserve">name of new structure</doc>
20063             <type name="GLib.Quark" c:type="GQuark"/>
20064           </parameter>
20065         </parameters>
20066       </constructor>
20067       <constructor name="id_new"
20068                    c:identifier="gst_structure_id_new"
20069                    version="0.10.24"
20070                    introspectable="0">
20071         <doc xml:whitespace="preserve">Creates a new #GstStructure with the given name as a GQuark, followed by
20072 fieldname quark, GType, argument(s) "triplets" in the same format as
20073 gst_structure_id_set(). Basically a convenience wrapper around
20074 gst_structure_id_empty_new() and gst_structure_id_set().
20075 The last variable argument must be NULL (or 0).</doc>
20076         <return-value transfer-ownership="full">
20077           <doc xml:whitespace="preserve">a new #GstStructure</doc>
20078           <type name="Structure" c:type="GstStructure*"/>
20079         </return-value>
20080         <parameters>
20081           <parameter name="name_quark" transfer-ownership="none">
20082             <doc xml:whitespace="preserve">name of new structure</doc>
20083             <type name="GLib.Quark" c:type="GQuark"/>
20084           </parameter>
20085           <parameter name="field_quark" transfer-ownership="none">
20086             <doc xml:whitespace="preserve">the GQuark for the name of the field to set</doc>
20087             <type name="GLib.Quark" c:type="GQuark"/>
20088           </parameter>
20089           <parameter transfer-ownership="none">
20090             <varargs>
20091             </varargs>
20092           </parameter>
20093         </parameters>
20094       </constructor>
20095       <constructor name="new"
20096                    c:identifier="gst_structure_new"
20097                    introspectable="0">
20098         <doc xml:whitespace="preserve">Creates a new #GstStructure with the given name.  Parses the
20099 list of variable arguments and sets fields to the values listed.
20100 Variable arguments should be passed as field name, field type,
20101 and value.  Last variable argument should be NULL.</doc>
20102         <return-value transfer-ownership="full">
20103           <doc xml:whitespace="preserve">a new #GstStructure</doc>
20104           <type name="Structure" c:type="GstStructure*"/>
20105         </return-value>
20106         <parameters>
20107           <parameter name="name" transfer-ownership="none">
20108             <doc xml:whitespace="preserve">name of new structure</doc>
20109             <type name="utf8" c:type="gchar*"/>
20110           </parameter>
20111           <parameter name="firstfield" transfer-ownership="none">
20112             <doc xml:whitespace="preserve">name of first field to set</doc>
20113             <type name="utf8" c:type="gchar*"/>
20114           </parameter>
20115           <parameter transfer-ownership="none">
20116             <varargs>
20117             </varargs>
20118           </parameter>
20119         </parameters>
20120       </constructor>
20121       <constructor name="new_valist"
20122                    c:identifier="gst_structure_new_valist"
20123                    introspectable="0">
20124         <doc xml:whitespace="preserve">Creates a new #GstStructure with the given @name.  Structure fields
20125 are set according to the varargs in a manner similar to
20126 gst_structure_new().
20127 See gst_structure_set_name() for constraints on the @name parameter.</doc>
20128         <return-value transfer-ownership="full">
20129           <doc xml:whitespace="preserve">a new #GstStructure</doc>
20130           <type name="Structure" c:type="GstStructure*"/>
20131         </return-value>
20132         <parameters>
20133           <parameter name="name" transfer-ownership="none">
20134             <doc xml:whitespace="preserve">name of new structure</doc>
20135             <type name="utf8" c:type="gchar*"/>
20136           </parameter>
20137           <parameter name="firstfield" transfer-ownership="none">
20138             <doc xml:whitespace="preserve">name of first field to set</doc>
20139             <type name="utf8" c:type="gchar*"/>
20140           </parameter>
20141           <parameter name="varargs" transfer-ownership="none">
20142             <doc xml:whitespace="preserve">variable argument list</doc>
20143             <type name="va_list" c:type="va_list"/>
20144           </parameter>
20145         </parameters>
20146       </constructor>
20147       <method name="copy" c:identifier="gst_structure_copy">
20148         <doc xml:whitespace="preserve">Duplicates a #GstStructure and all its fields and values.</doc>
20149         <return-value transfer-ownership="none">
20150           <doc xml:whitespace="preserve">a new #GstStructure.</doc>
20151           <type name="Structure" c:type="GstStructure*"/>
20152         </return-value>
20153       </method>
20154       <method name="fixate_field_boolean"
20155               c:identifier="gst_structure_fixate_field_boolean">
20156         <doc xml:whitespace="preserve">Fixates a #GstStructure by changing the given @field_name field to the given</doc>
20157         <return-value transfer-ownership="none">
20158           <doc xml:whitespace="preserve">TRUE if the structure could be fixated</doc>
20159           <type name="gboolean" c:type="gboolean"/>
20160         </return-value>
20161         <parameters>
20162           <parameter name="field_name" transfer-ownership="none">
20163             <doc xml:whitespace="preserve">a field in @structure</doc>
20164             <type name="utf8" c:type="char*"/>
20165           </parameter>
20166           <parameter name="target" transfer-ownership="none">
20167             <doc xml:whitespace="preserve">the target value of the fixation</doc>
20168             <type name="gboolean" c:type="gboolean"/>
20169           </parameter>
20170         </parameters>
20171       </method>
20172       <method name="fixate_field_nearest_double"
20173               c:identifier="gst_structure_fixate_field_nearest_double">
20174         <doc xml:whitespace="preserve">Fixates a #GstStructure by changing the given field to the nearest
20175 double to @target that is a subset of the existing field.</doc>
20176         <return-value transfer-ownership="none">
20177           <doc xml:whitespace="preserve">TRUE if the structure could be fixated</doc>
20178           <type name="gboolean" c:type="gboolean"/>
20179         </return-value>
20180         <parameters>
20181           <parameter name="field_name" transfer-ownership="none">
20182             <doc xml:whitespace="preserve">a field in @structure</doc>
20183             <type name="utf8" c:type="char*"/>
20184           </parameter>
20185           <parameter name="target" transfer-ownership="none">
20186             <doc xml:whitespace="preserve">the target value of the fixation</doc>
20187             <type name="gdouble" c:type="double"/>
20188           </parameter>
20189         </parameters>
20190       </method>
20191       <method name="fixate_field_nearest_fraction"
20192               c:identifier="gst_structure_fixate_field_nearest_fraction">
20193         <doc xml:whitespace="preserve">Fixates a #GstStructure by changing the given field to the nearest
20194 fraction to @target_numerator/@target_denominator that is a subset
20195 of the existing field.</doc>
20196         <return-value transfer-ownership="none">
20197           <doc xml:whitespace="preserve">TRUE if the structure could be fixated</doc>
20198           <type name="gboolean" c:type="gboolean"/>
20199         </return-value>
20200         <parameters>
20201           <parameter name="field_name" transfer-ownership="none">
20202             <doc xml:whitespace="preserve">a field in @structure</doc>
20203             <type name="utf8" c:type="char*"/>
20204           </parameter>
20205           <parameter name="target_numerator" transfer-ownership="none">
20206             <doc xml:whitespace="preserve">The numerator of the target value of the fixation</doc>
20207             <type name="gint" c:type="gint"/>
20208           </parameter>
20209           <parameter name="target_denominator" transfer-ownership="none">
20210             <doc xml:whitespace="preserve">The denominator of the target value of the fixation</doc>
20211             <type name="gint" c:type="gint"/>
20212           </parameter>
20213         </parameters>
20214       </method>
20215       <method name="fixate_field_nearest_int"
20216               c:identifier="gst_structure_fixate_field_nearest_int">
20217         <doc xml:whitespace="preserve">Fixates a #GstStructure by changing the given field to the nearest
20218 integer to @target that is a subset of the existing field.</doc>
20219         <return-value transfer-ownership="none">
20220           <doc xml:whitespace="preserve">TRUE if the structure could be fixated</doc>
20221           <type name="gboolean" c:type="gboolean"/>
20222         </return-value>
20223         <parameters>
20224           <parameter name="field_name" transfer-ownership="none">
20225             <doc xml:whitespace="preserve">a field in @structure</doc>
20226             <type name="utf8" c:type="char*"/>
20227           </parameter>
20228           <parameter name="target" transfer-ownership="none">
20229             <doc xml:whitespace="preserve">the target value of the fixation</doc>
20230             <type name="gint" c:type="int"/>
20231           </parameter>
20232         </parameters>
20233       </method>
20234       <method name="fixate_field_string"
20235               c:identifier="gst_structure_fixate_field_string"
20236               version="0.10.30">
20237         <doc xml:whitespace="preserve">Fixates a #GstStructure by changing the given @field_name field to the given</doc>
20238         <return-value transfer-ownership="none">
20239           <doc xml:whitespace="preserve">TRUE if the structure could be fixated</doc>
20240           <type name="gboolean" c:type="gboolean"/>
20241         </return-value>
20242         <parameters>
20243           <parameter name="field_name" transfer-ownership="none">
20244             <doc xml:whitespace="preserve">a field in @structure</doc>
20245             <type name="utf8" c:type="char*"/>
20246           </parameter>
20247           <parameter name="target" transfer-ownership="none">
20248             <doc xml:whitespace="preserve">the target value of the fixation</doc>
20249             <type name="utf8" c:type="gchar*"/>
20250           </parameter>
20251         </parameters>
20252       </method>
20253       <method name="foreach" c:identifier="gst_structure_foreach">
20254         <doc xml:whitespace="preserve">Calls the provided function once for each field in the #GstStructure. The
20255 function must not modify the fields. Also see gst_structure_map_in_place().
20256 FALSE otherwise.</doc>
20257         <return-value transfer-ownership="none">
20258           <doc xml:whitespace="preserve">TRUE if the supplied function returns TRUE For each of the fields,</doc>
20259           <type name="gboolean" c:type="gboolean"/>
20260         </return-value>
20261         <parameters>
20262           <parameter name="func"
20263                      transfer-ownership="none"
20264                      scope="call"
20265                      closure="1">
20266             <doc xml:whitespace="preserve">a function to call for each field</doc>
20267             <type name="StructureForeachFunc"
20268                   c:type="GstStructureForeachFunc"/>
20269           </parameter>
20270           <parameter name="user_data" transfer-ownership="none">
20271             <doc xml:whitespace="preserve">private data</doc>
20272             <type name="gpointer" c:type="gpointer"/>
20273           </parameter>
20274         </parameters>
20275       </method>
20276       <method name="free" c:identifier="gst_structure_free">
20277         <doc xml:whitespace="preserve">Frees a #GstStructure and all its fields and values. The structure must not
20278 have a parent when this function is called.</doc>
20279         <return-value transfer-ownership="none">
20280           <type name="none" c:type="void"/>
20281         </return-value>
20282       </method>
20283       <method name="get"
20284               c:identifier="gst_structure_get"
20285               version="0.10.24"
20286               introspectable="0">
20287         <doc xml:whitespace="preserve">Parses the variable arguments and reads fields from @structure accordingly.
20288 Variable arguments should be in the form field name, field type
20289 (as a GType), pointer(s) to a variable(s) to hold the return value(s).
20290 The last variable argument should be NULL.
20291 For refcounted (mini)objects you will acquire your own reference which
20292 you must release with a suitable _unref() when no longer needed. For
20293 strings and boxed types you will acquire a copy which you will need to
20294 release with either g_free() or the suiteable function for the boxed type.
20295 because the field requested did not exist, or was of a type other
20296 than the type specified), otherwise TRUE.</doc>
20297         <return-value transfer-ownership="none">
20298           <doc xml:whitespace="preserve">FALSE if there was a problem reading any of the fields (e.g.</doc>
20299           <type name="gboolean" c:type="gboolean"/>
20300         </return-value>
20301         <parameters>
20302           <parameter name="first_fieldname" transfer-ownership="none">
20303             <doc xml:whitespace="preserve">the name of the first field to read</doc>
20304             <type name="utf8" c:type="char*"/>
20305           </parameter>
20306           <parameter transfer-ownership="none">
20307             <varargs>
20308             </varargs>
20309           </parameter>
20310         </parameters>
20311       </method>
20312       <method name="get_boolean" c:identifier="gst_structure_get_boolean">
20313         <doc xml:whitespace="preserve">Sets the boolean pointed to by @value corresponding to the value of the
20314 given field.  Caller is responsible for making sure the field exists
20315 and has the correct type.
20316 with @fieldname or the existing field did not contain a boolean, this
20317 function returns FALSE.</doc>
20318         <return-value transfer-ownership="none">
20319           <doc xml:whitespace="preserve">TRUE if the value could be set correctly. If there was no field</doc>
20320           <type name="gboolean" c:type="gboolean"/>
20321         </return-value>
20322         <parameters>
20323           <parameter name="fieldname" transfer-ownership="none">
20324             <doc xml:whitespace="preserve">the name of a field</doc>
20325             <type name="utf8" c:type="gchar*"/>
20326           </parameter>
20327           <parameter name="value"
20328                      direction="out"
20329                      caller-allocates="0"
20330                      transfer-ownership="full">
20331             <doc xml:whitespace="preserve">a pointer to a #gboolean to set</doc>
20332             <type name="gboolean" c:type="gboolean*"/>
20333           </parameter>
20334         </parameters>
20335       </method>
20336       <method name="get_clock_time"
20337               c:identifier="gst_structure_get_clock_time">
20338         <doc xml:whitespace="preserve">Sets the clock time pointed to by @value corresponding to the clock time
20339 of the given field.  Caller is responsible for making sure the field exists
20340 and has the correct type.
20341 with @fieldname or the existing field did not contain a #GstClockTime, this
20342 function returns FALSE.</doc>
20343         <return-value transfer-ownership="none">
20344           <doc xml:whitespace="preserve">TRUE if the value could be set correctly. If there was no field</doc>
20345           <type name="gboolean" c:type="gboolean"/>
20346         </return-value>
20347         <parameters>
20348           <parameter name="fieldname" transfer-ownership="none">
20349             <doc xml:whitespace="preserve">the name of a field</doc>
20350             <type name="utf8" c:type="gchar*"/>
20351           </parameter>
20352           <parameter name="value"
20353                      direction="out"
20354                      caller-allocates="0"
20355                      transfer-ownership="full">
20356             <doc xml:whitespace="preserve">a pointer to a #GstClockTime to set</doc>
20357             <type name="ClockTime" c:type="GstClockTime*"/>
20358           </parameter>
20359         </parameters>
20360       </method>
20361       <method name="get_date" c:identifier="gst_structure_get_date">
20362         <doc xml:whitespace="preserve">Sets the date pointed to by @value corresponding to the date of the
20363 given field.  Caller is responsible for making sure the field exists
20364 and has the correct type.
20365 On success @value will point to a newly-allocated copy of the date which
20366 inconsistent with e.g. gst_structure_get_string() which doesn't return a
20367 copy of the string).
20368 with @fieldname or the existing field did not contain a data, this function
20369 returns FALSE.</doc>
20370         <return-value transfer-ownership="none">
20371           <doc xml:whitespace="preserve">TRUE if the value could be set correctly. If there was no field</doc>
20372           <type name="gboolean" c:type="gboolean"/>
20373         </return-value>
20374         <parameters>
20375           <parameter name="fieldname" transfer-ownership="none">
20376             <doc xml:whitespace="preserve">the name of a field</doc>
20377             <type name="utf8" c:type="gchar*"/>
20378           </parameter>
20379           <parameter name="value"
20380                      direction="out"
20381                      caller-allocates="0"
20382                      transfer-ownership="full">
20383             <doc xml:whitespace="preserve">a pointer to a #GDate to set</doc>
20384             <type name="GLib.Date" c:type="GDate**"/>
20385           </parameter>
20386         </parameters>
20387       </method>
20388       <method name="get_date_time"
20389               c:identifier="gst_structure_get_date_time"
20390               version="0.10.31">
20391         <doc xml:whitespace="preserve">Sets the datetime pointed to by @value corresponding to the datetime of the
20392 given field. Caller is responsible for making sure the field exists
20393 and has the correct type.
20394 On success @value will point to a reference of the datetime which
20395 should be unreffed with gst_date_time_unref() when no longer needed
20396 (note: this is inconsistent with e.g. gst_structure_get_string()
20397 which doesn't return a copy of the string).
20398 with @fieldname or the existing field did not contain a data, this function
20399 returns FALSE.</doc>
20400         <return-value transfer-ownership="none">
20401           <doc xml:whitespace="preserve">TRUE if the value could be set correctly. If there was no field</doc>
20402           <type name="gboolean" c:type="gboolean"/>
20403         </return-value>
20404         <parameters>
20405           <parameter name="fieldname" transfer-ownership="none">
20406             <doc xml:whitespace="preserve">the name of a field</doc>
20407             <type name="utf8" c:type="gchar*"/>
20408           </parameter>
20409           <parameter name="value"
20410                      direction="out"
20411                      caller-allocates="0"
20412                      transfer-ownership="full">
20413             <doc xml:whitespace="preserve">a pointer to a #GstDateTime to set</doc>
20414             <type name="DateTime" c:type="GstDateTime**"/>
20415           </parameter>
20416         </parameters>
20417       </method>
20418       <method name="get_double" c:identifier="gst_structure_get_double">
20419         <doc xml:whitespace="preserve">Sets the double pointed to by @value corresponding to the value of the
20420 given field.  Caller is responsible for making sure the field exists
20421 and has the correct type.
20422 with @fieldname or the existing field did not contain a double, this
20423 function returns FALSE.</doc>
20424         <return-value transfer-ownership="none">
20425           <doc xml:whitespace="preserve">TRUE if the value could be set correctly. If there was no field</doc>
20426           <type name="gboolean" c:type="gboolean"/>
20427         </return-value>
20428         <parameters>
20429           <parameter name="fieldname" transfer-ownership="none">
20430             <doc xml:whitespace="preserve">the name of a field</doc>
20431             <type name="utf8" c:type="gchar*"/>
20432           </parameter>
20433           <parameter name="value"
20434                      direction="out"
20435                      caller-allocates="0"
20436                      transfer-ownership="full">
20437             <doc xml:whitespace="preserve">a pointer to a gdouble to set</doc>
20438             <type name="gdouble" c:type="gdouble*"/>
20439           </parameter>
20440         </parameters>
20441       </method>
20442       <method name="get_enum" c:identifier="gst_structure_get_enum">
20443         <doc xml:whitespace="preserve">Sets the int pointed to by @value corresponding to the value of the
20444 given field.  Caller is responsible for making sure the field exists,
20445 has the correct type and that the enumtype is correct.
20446 with @fieldname or the existing field did not contain an enum of the given
20447 type, this function returns FALSE.</doc>
20448         <return-value transfer-ownership="none">
20449           <doc xml:whitespace="preserve">TRUE if the value could be set correctly. If there was no field</doc>
20450           <type name="gboolean" c:type="gboolean"/>
20451         </return-value>
20452         <parameters>
20453           <parameter name="fieldname" transfer-ownership="none">
20454             <doc xml:whitespace="preserve">the name of a field</doc>
20455             <type name="utf8" c:type="gchar*"/>
20456           </parameter>
20457           <parameter name="enumtype" transfer-ownership="none">
20458             <doc xml:whitespace="preserve">the enum type of a field</doc>
20459             <type name="GType" c:type="GType"/>
20460           </parameter>
20461           <parameter name="value"
20462                      direction="out"
20463                      caller-allocates="0"
20464                      transfer-ownership="full">
20465             <doc xml:whitespace="preserve">a pointer to an int to set</doc>
20466             <type name="gint" c:type="gint*"/>
20467           </parameter>
20468         </parameters>
20469       </method>
20470       <method name="get_field_type"
20471               c:identifier="gst_structure_get_field_type">
20472         <doc xml:whitespace="preserve">Finds the field with the given name, and returns the type of the
20473 value it contains.  If the field is not found, G_TYPE_INVALID is
20474 returned.</doc>
20475         <return-value transfer-ownership="none">
20476           <doc xml:whitespace="preserve">the #GValue of the field</doc>
20477           <type name="GType" c:type="GType"/>
20478         </return-value>
20479         <parameters>
20480           <parameter name="fieldname" transfer-ownership="none">
20481             <doc xml:whitespace="preserve">the name of the field</doc>
20482             <type name="utf8" c:type="gchar*"/>
20483           </parameter>
20484         </parameters>
20485       </method>
20486       <method name="get_fourcc" c:identifier="gst_structure_get_fourcc">
20487         <doc xml:whitespace="preserve">Sets the Fourcc pointed to by @value corresponding to the value of the
20488 given field.  Caller is responsible for making sure the field exists
20489 and has the correct type.
20490 with @fieldname or the existing field did not contain a fourcc, this function
20491 returns FALSE.</doc>
20492         <return-value transfer-ownership="none">
20493           <doc xml:whitespace="preserve">TRUE if the value could be set correctly. If there was no field</doc>
20494           <type name="gboolean" c:type="gboolean"/>
20495         </return-value>
20496         <parameters>
20497           <parameter name="fieldname" transfer-ownership="none">
20498             <doc xml:whitespace="preserve">the name of a field</doc>
20499             <type name="utf8" c:type="gchar*"/>
20500           </parameter>
20501           <parameter name="value"
20502                      direction="out"
20503                      caller-allocates="0"
20504                      transfer-ownership="full">
20505             <doc xml:whitespace="preserve">a pointer to a 32bit unsigned int to set</doc>
20506             <type name="guint32" c:type="guint32*"/>
20507           </parameter>
20508         </parameters>
20509       </method>
20510       <method name="get_fraction" c:identifier="gst_structure_get_fraction">
20511         <doc xml:whitespace="preserve">Sets the integers pointed to by @value_numerator and @value_denominator
20512 corresponding to the value of the given field.  Caller is responsible
20513 for making sure the field exists and has the correct type.
20514 with @fieldname or the existing field did not contain a GstFraction, this
20515 function returns FALSE.</doc>
20516         <return-value transfer-ownership="none">
20517           <doc xml:whitespace="preserve">TRUE if the values could be set correctly. If there was no field</doc>
20518           <type name="gboolean" c:type="gboolean"/>
20519         </return-value>
20520         <parameters>
20521           <parameter name="fieldname" transfer-ownership="none">
20522             <doc xml:whitespace="preserve">the name of a field</doc>
20523             <type name="utf8" c:type="gchar*"/>
20524           </parameter>
20525           <parameter name="value_numerator"
20526                      direction="out"
20527                      caller-allocates="0"
20528                      transfer-ownership="full">
20529             <doc xml:whitespace="preserve">a pointer to an int to set</doc>
20530             <type name="gint" c:type="gint*"/>
20531           </parameter>
20532           <parameter name="value_denominator"
20533                      direction="out"
20534                      caller-allocates="0"
20535                      transfer-ownership="full">
20536             <doc xml:whitespace="preserve">a pointer to an int to set</doc>
20537             <type name="gint" c:type="gint*"/>
20538           </parameter>
20539         </parameters>
20540       </method>
20541       <method name="get_int" c:identifier="gst_structure_get_int">
20542         <doc xml:whitespace="preserve">Sets the int pointed to by @value corresponding to the value of the
20543 given field.  Caller is responsible for making sure the field exists
20544 and has the correct type.
20545 with @fieldname or the existing field did not contain an int, this function
20546 returns %FALSE.</doc>
20547         <return-value transfer-ownership="none">
20548           <doc xml:whitespace="preserve">%TRUE if the value could be set correctly. If there was no field</doc>
20549           <type name="gboolean" c:type="gboolean"/>
20550         </return-value>
20551         <parameters>
20552           <parameter name="fieldname" transfer-ownership="none">
20553             <doc xml:whitespace="preserve">the name of a field</doc>
20554             <type name="utf8" c:type="gchar*"/>
20555           </parameter>
20556           <parameter name="value"
20557                      direction="out"
20558                      caller-allocates="0"
20559                      transfer-ownership="full">
20560             <doc xml:whitespace="preserve">a pointer to an int to set</doc>
20561             <type name="gint" c:type="gint*"/>
20562           </parameter>
20563         </parameters>
20564       </method>
20565       <method name="get_name" c:identifier="gst_structure_get_name">
20566         <doc xml:whitespace="preserve">Get the name of @structure as a string.</doc>
20567         <return-value transfer-ownership="none">
20568           <doc xml:whitespace="preserve">the name of the structure.</doc>
20569           <type name="utf8" c:type="gchar*"/>
20570         </return-value>
20571       </method>
20572       <method name="get_name_id" c:identifier="gst_structure_get_name_id">
20573         <doc xml:whitespace="preserve">Get the name of @structure as a GQuark.</doc>
20574         <return-value transfer-ownership="none">
20575           <doc xml:whitespace="preserve">the quark representing the name of the structure.</doc>
20576           <type name="GLib.Quark" c:type="GQuark"/>
20577         </return-value>
20578       </method>
20579       <method name="get_string" c:identifier="gst_structure_get_string">
20580         <doc xml:whitespace="preserve">Finds the field corresponding to @fieldname, and returns the string
20581 contained in the field's value.  Caller is responsible for making
20582 sure the field exists and has the correct type.
20583 The string should not be modified, and remains valid until the next
20584 call to a gst_structure_*() function with the given structure.
20585 or did not contain a string.</doc>
20586         <return-value transfer-ownership="none">
20587           <doc xml:whitespace="preserve">a pointer to the string or NULL when the field did not exist</doc>
20588           <type name="utf8" c:type="gchar*"/>
20589         </return-value>
20590         <parameters>
20591           <parameter name="fieldname" transfer-ownership="none">
20592             <doc xml:whitespace="preserve">the name of a field</doc>
20593             <type name="utf8" c:type="gchar*"/>
20594           </parameter>
20595         </parameters>
20596       </method>
20597       <method name="get_uint"
20598               c:identifier="gst_structure_get_uint"
20599               version="0.10.15">
20600         <doc xml:whitespace="preserve">Sets the uint pointed to by @value corresponding to the value of the
20601 given field.  Caller is responsible for making sure the field exists
20602 and has the correct type.
20603 with @fieldname or the existing field did not contain a uint, this function
20604 returns %FALSE.</doc>
20605         <return-value transfer-ownership="none">
20606           <doc xml:whitespace="preserve">%TRUE if the value could be set correctly. If there was no field</doc>
20607           <type name="gboolean" c:type="gboolean"/>
20608         </return-value>
20609         <parameters>
20610           <parameter name="fieldname" transfer-ownership="none">
20611             <doc xml:whitespace="preserve">the name of a field</doc>
20612             <type name="utf8" c:type="gchar*"/>
20613           </parameter>
20614           <parameter name="value"
20615                      direction="out"
20616                      caller-allocates="0"
20617                      transfer-ownership="full">
20618             <doc xml:whitespace="preserve">a pointer to a uint to set</doc>
20619             <type name="guint" c:type="guint*"/>
20620           </parameter>
20621         </parameters>
20622       </method>
20623       <method name="get_valist"
20624               c:identifier="gst_structure_get_valist"
20625               version="0.10.24"
20626               introspectable="0">
20627         <doc xml:whitespace="preserve">Parses the variable arguments and reads fields from @structure accordingly.
20628 valist-variant of gst_structure_get(). Look at the documentation of
20629 gst_structure_get() for more details.</doc>
20630         <return-value transfer-ownership="none">
20631           <doc xml:whitespace="preserve">TRUE, or FALSE if there was a problem reading any of the fields</doc>
20632           <type name="gboolean" c:type="gboolean"/>
20633         </return-value>
20634         <parameters>
20635           <parameter name="first_fieldname" transfer-ownership="none">
20636             <doc xml:whitespace="preserve">the name of the first field to read</doc>
20637             <type name="utf8" c:type="char*"/>
20638           </parameter>
20639           <parameter name="args" transfer-ownership="none">
20640             <doc xml:whitespace="preserve">variable arguments</doc>
20641             <type name="va_list" c:type="va_list"/>
20642           </parameter>
20643         </parameters>
20644       </method>
20645       <method name="get_value" c:identifier="gst_structure_get_value">
20646         <doc xml:whitespace="preserve">Get the value of the field with name @fieldname.</doc>
20647         <return-value transfer-ownership="none">
20648           <doc xml:whitespace="preserve">the #GValue corresponding to the field with the given name.</doc>
20649           <type name="GObject.Value" c:type="GValue*"/>
20650         </return-value>
20651         <parameters>
20652           <parameter name="fieldname" transfer-ownership="none">
20653             <doc xml:whitespace="preserve">the name of the field to get</doc>
20654             <type name="utf8" c:type="gchar*"/>
20655           </parameter>
20656         </parameters>
20657       </method>
20658       <method name="has_field" c:identifier="gst_structure_has_field">
20659         <doc xml:whitespace="preserve">Check if @structure contains a field named @fieldname.</doc>
20660         <return-value transfer-ownership="none">
20661           <doc xml:whitespace="preserve">TRUE if the structure contains a field with the given name</doc>
20662           <type name="gboolean" c:type="gboolean"/>
20663         </return-value>
20664         <parameters>
20665           <parameter name="fieldname" transfer-ownership="none">
20666             <doc xml:whitespace="preserve">the name of a field</doc>
20667             <type name="utf8" c:type="gchar*"/>
20668           </parameter>
20669         </parameters>
20670       </method>
20671       <method name="has_field_typed"
20672               c:identifier="gst_structure_has_field_typed">
20673         <doc xml:whitespace="preserve">Check if @structure contains a field named @fieldname and with GType @type.</doc>
20674         <return-value transfer-ownership="none">
20675           <doc xml:whitespace="preserve">TRUE if the structure contains a field with the given name and type</doc>
20676           <type name="gboolean" c:type="gboolean"/>
20677         </return-value>
20678         <parameters>
20679           <parameter name="fieldname" transfer-ownership="none">
20680             <doc xml:whitespace="preserve">the name of a field</doc>
20681             <type name="utf8" c:type="gchar*"/>
20682           </parameter>
20683           <parameter name="type" transfer-ownership="none">
20684             <doc xml:whitespace="preserve">the type of a value</doc>
20685             <type name="GType" c:type="GType"/>
20686           </parameter>
20687         </parameters>
20688       </method>
20689       <method name="has_name" c:identifier="gst_structure_has_name">
20690         <doc xml:whitespace="preserve">Checks if the structure has the given name</doc>
20691         <return-value transfer-ownership="none">
20692           <doc xml:whitespace="preserve">TRUE if @name matches the name of the structure.</doc>
20693           <type name="gboolean" c:type="gboolean"/>
20694         </return-value>
20695         <parameters>
20696           <parameter name="name" transfer-ownership="none">
20697             <doc xml:whitespace="preserve">structure name to check for</doc>
20698             <type name="utf8" c:type="gchar*"/>
20699           </parameter>
20700         </parameters>
20701       </method>
20702       <method name="id_get"
20703               c:identifier="gst_structure_id_get"
20704               version="0.10.24"
20705               introspectable="0">
20706         <doc xml:whitespace="preserve">Parses the variable arguments and reads fields from @structure accordingly.
20707 Variable arguments should be in the form field id quark, field type
20708 (as a GType), pointer(s) to a variable(s) to hold the return value(s).
20709 The last variable argument should be NULL (technically it should be a
20710 0 quark, but we require NULL so compilers that support it can check for
20711 the NULL terminator and warn if it's not there).
20712 This function is just like gst_structure_get() only that it is slightly
20713 more efficient since it saves the string-to-quark lookup in the global
20714 quark hashtable.
20715 For refcounted (mini)objects you will acquire your own reference which
20716 you must release with a suitable _unref() when no longer needed. For
20717 strings and boxed types you will acquire a copy which you will need to
20718 release with either g_free() or the suiteable function for the boxed type.
20719 because the field requested did not exist, or was of a type other
20720 than the type specified), otherwise TRUE.</doc>
20721         <return-value transfer-ownership="none">
20722           <doc xml:whitespace="preserve">FALSE if there was a problem reading any of the fields (e.g.</doc>
20723           <type name="gboolean" c:type="gboolean"/>
20724         </return-value>
20725         <parameters>
20726           <parameter name="first_field_id" transfer-ownership="none">
20727             <doc xml:whitespace="preserve">the quark of the first field to read</doc>
20728             <type name="GLib.Quark" c:type="GQuark"/>
20729           </parameter>
20730           <parameter transfer-ownership="none">
20731             <varargs>
20732             </varargs>
20733           </parameter>
20734         </parameters>
20735       </method>
20736       <method name="id_get_valist"
20737               c:identifier="gst_structure_id_get_valist"
20738               version="0.10.24"
20739               introspectable="0">
20740         <doc xml:whitespace="preserve">Parses the variable arguments and reads fields from @structure accordingly.
20741 valist-variant of gst_structure_id_get(). Look at the documentation of
20742 gst_structure_id_get() for more details.</doc>
20743         <return-value transfer-ownership="none">
20744           <doc xml:whitespace="preserve">TRUE, or FALSE if there was a problem reading any of the fields</doc>
20745           <type name="gboolean" c:type="gboolean"/>
20746         </return-value>
20747         <parameters>
20748           <parameter name="first_field_id" transfer-ownership="none">
20749             <doc xml:whitespace="preserve">the quark of the first field to read</doc>
20750             <type name="GLib.Quark" c:type="GQuark"/>
20751           </parameter>
20752           <parameter name="args" transfer-ownership="none">
20753             <doc xml:whitespace="preserve">variable arguments</doc>
20754             <type name="va_list" c:type="va_list"/>
20755           </parameter>
20756         </parameters>
20757       </method>
20758       <method name="id_get_value" c:identifier="gst_structure_id_get_value">
20759         <doc xml:whitespace="preserve">Get the value of the field with GQuark @field.
20760 identifier.</doc>
20761         <return-value transfer-ownership="none">
20762           <doc xml:whitespace="preserve">the #GValue corresponding to the field with the given name</doc>
20763           <type name="GObject.Value" c:type="GValue*"/>
20764         </return-value>
20765         <parameters>
20766           <parameter name="field" transfer-ownership="none">
20767             <doc xml:whitespace="preserve">the #GQuark of the field to get</doc>
20768             <type name="GLib.Quark" c:type="GQuark"/>
20769           </parameter>
20770         </parameters>
20771       </method>
20772       <method name="id_has_field"
20773               c:identifier="gst_structure_id_has_field"
20774               version="0.10.26">
20775         <doc xml:whitespace="preserve">Check if @structure contains a field named @field.</doc>
20776         <return-value transfer-ownership="none">
20777           <doc xml:whitespace="preserve">TRUE if the structure contains a field with the given name</doc>
20778           <type name="gboolean" c:type="gboolean"/>
20779         </return-value>
20780         <parameters>
20781           <parameter name="field" transfer-ownership="none">
20782             <doc xml:whitespace="preserve">#GQuark of the field name</doc>
20783             <type name="GLib.Quark" c:type="GQuark"/>
20784           </parameter>
20785         </parameters>
20786       </method>
20787       <method name="id_has_field_typed"
20788               c:identifier="gst_structure_id_has_field_typed"
20789               version="0.10.26">
20790         <doc xml:whitespace="preserve">Check if @structure contains a field named @field and with GType @type.</doc>
20791         <return-value transfer-ownership="none">
20792           <doc xml:whitespace="preserve">TRUE if the structure contains a field with the given name and type</doc>
20793           <type name="gboolean" c:type="gboolean"/>
20794         </return-value>
20795         <parameters>
20796           <parameter name="field" transfer-ownership="none">
20797             <doc xml:whitespace="preserve">#GQuark of the field name</doc>
20798             <type name="GLib.Quark" c:type="GQuark"/>
20799           </parameter>
20800           <parameter name="type" transfer-ownership="none">
20801             <doc xml:whitespace="preserve">the type of a value</doc>
20802             <type name="GType" c:type="GType"/>
20803           </parameter>
20804         </parameters>
20805       </method>
20806       <method name="id_set"
20807               c:identifier="gst_structure_id_set"
20808               version="0.10.10"
20809               introspectable="0">
20810         <doc xml:whitespace="preserve">Identical to gst_structure_set, except that field names are
20811 passed using the GQuark for the field name. This allows more efficient
20812 setting of the structure if the caller already knows the associated
20813 quark values.
20814 The last variable argument must be NULL.</doc>
20815         <return-value transfer-ownership="none">
20816           <type name="none" c:type="void"/>
20817         </return-value>
20818         <parameters>
20819           <parameter name="fieldname" transfer-ownership="none">
20820             <doc xml:whitespace="preserve">the GQuark for the name of the field to set</doc>
20821             <type name="GLib.Quark" c:type="GQuark"/>
20822           </parameter>
20823           <parameter transfer-ownership="none">
20824             <varargs>
20825             </varargs>
20826           </parameter>
20827         </parameters>
20828       </method>
20829       <method name="id_set_valist"
20830               c:identifier="gst_structure_id_set_valist"
20831               version="0.10.10"
20832               introspectable="0">
20833         <doc xml:whitespace="preserve">va_list form of gst_structure_id_set().</doc>
20834         <return-value transfer-ownership="none">
20835           <type name="none" c:type="void"/>
20836         </return-value>
20837         <parameters>
20838           <parameter name="fieldname" transfer-ownership="none">
20839             <doc xml:whitespace="preserve">the name of the field to set</doc>
20840             <type name="GLib.Quark" c:type="GQuark"/>
20841           </parameter>
20842           <parameter name="varargs" transfer-ownership="none">
20843             <doc xml:whitespace="preserve">variable arguments</doc>
20844             <type name="va_list" c:type="va_list"/>
20845           </parameter>
20846         </parameters>
20847       </method>
20848       <method name="id_set_value" c:identifier="gst_structure_id_set_value">
20849         <doc xml:whitespace="preserve">Sets the field with the given GQuark @field to @value.  If the field
20850 does not exist, it is created.  If the field exists, the previous
20851 value is replaced and freed.</doc>
20852         <return-value transfer-ownership="none">
20853           <type name="none" c:type="void"/>
20854         </return-value>
20855         <parameters>
20856           <parameter name="field" transfer-ownership="none">
20857             <doc xml:whitespace="preserve">a #GQuark representing a field</doc>
20858             <type name="GLib.Quark" c:type="GQuark"/>
20859           </parameter>
20860           <parameter name="value" transfer-ownership="none">
20861             <doc xml:whitespace="preserve">the new value of the field</doc>
20862             <type name="GObject.Value" c:type="GValue*"/>
20863           </parameter>
20864         </parameters>
20865       </method>
20866       <method name="id_take_value"
20867               c:identifier="gst_structure_id_take_value"
20868               version="0.10.31">
20869         <doc xml:whitespace="preserve">Sets the field with the given GQuark @field to @value.  If the field
20870 does not exist, it is created.  If the field exists, the previous
20871 value is replaced and freed.</doc>
20872         <return-value transfer-ownership="none">
20873           <type name="none" c:type="void"/>
20874         </return-value>
20875         <parameters>
20876           <parameter name="field" transfer-ownership="none">
20877             <doc xml:whitespace="preserve">a #GQuark representing a field</doc>
20878             <type name="GLib.Quark" c:type="GQuark"/>
20879           </parameter>
20880           <parameter name="value" transfer-ownership="full">
20881             <doc xml:whitespace="preserve">the new value of the field</doc>
20882             <type name="GObject.Value" c:type="GValue*"/>
20883           </parameter>
20884         </parameters>
20885       </method>
20886       <method name="map_in_place" c:identifier="gst_structure_map_in_place">
20887         <doc xml:whitespace="preserve">Calls the provided function once for each field in the #GstStructure. In
20888 contrast to gst_structure_foreach(), the function may modify but not delete the
20889 fields. The structure must be mutable.
20890 FALSE otherwise.</doc>
20891         <return-value transfer-ownership="none">
20892           <doc xml:whitespace="preserve">TRUE if the supplied function returns TRUE For each of the fields,</doc>
20893           <type name="gboolean" c:type="gboolean"/>
20894         </return-value>
20895         <parameters>
20896           <parameter name="func"
20897                      transfer-ownership="none"
20898                      scope="call"
20899                      closure="1">
20900             <doc xml:whitespace="preserve">a function to call for each field</doc>
20901             <type name="StructureMapFunc" c:type="GstStructureMapFunc"/>
20902           </parameter>
20903           <parameter name="user_data" transfer-ownership="none">
20904             <doc xml:whitespace="preserve">private data</doc>
20905             <type name="gpointer" c:type="gpointer"/>
20906           </parameter>
20907         </parameters>
20908       </method>
20909       <method name="n_fields" c:identifier="gst_structure_n_fields">
20910         <doc xml:whitespace="preserve">Get the number of fields in the structure.</doc>
20911         <return-value transfer-ownership="none">
20912           <doc xml:whitespace="preserve">the number of fields in the structure</doc>
20913           <type name="gint" c:type="gint"/>
20914         </return-value>
20915       </method>
20916       <method name="nth_field_name"
20917               c:identifier="gst_structure_nth_field_name">
20918         <doc xml:whitespace="preserve">Get the name of the given field number, counting from 0 onwards.</doc>
20919         <return-value transfer-ownership="none">
20920           <doc xml:whitespace="preserve">the name of the given field number</doc>
20921           <type name="utf8" c:type="gchar*"/>
20922         </return-value>
20923         <parameters>
20924           <parameter name="index" transfer-ownership="none">
20925             <doc xml:whitespace="preserve">the index to get the name of</doc>
20926             <type name="guint" c:type="guint"/>
20927           </parameter>
20928         </parameters>
20929       </method>
20930       <method name="remove_all_fields"
20931               c:identifier="gst_structure_remove_all_fields">
20932         <doc xml:whitespace="preserve">Removes all fields in a GstStructure.</doc>
20933         <return-value transfer-ownership="none">
20934           <type name="none" c:type="void"/>
20935         </return-value>
20936       </method>
20937       <method name="remove_field" c:identifier="gst_structure_remove_field">
20938         <doc xml:whitespace="preserve">Removes the field with the given name.  If the field with the given
20939 name does not exist, the structure is unchanged.</doc>
20940         <return-value transfer-ownership="none">
20941           <type name="none" c:type="void"/>
20942         </return-value>
20943         <parameters>
20944           <parameter name="fieldname" transfer-ownership="none">
20945             <doc xml:whitespace="preserve">the name of the field to remove</doc>
20946             <type name="utf8" c:type="gchar*"/>
20947           </parameter>
20948         </parameters>
20949       </method>
20950       <method name="remove_fields"
20951               c:identifier="gst_structure_remove_fields"
20952               introspectable="0">
20953         <doc xml:whitespace="preserve">Removes the fields with the given names. If a field does not exist, the
20954 argument is ignored.</doc>
20955         <return-value transfer-ownership="none">
20956           <type name="none" c:type="void"/>
20957         </return-value>
20958         <parameters>
20959           <parameter name="fieldname" transfer-ownership="none">
20960             <doc xml:whitespace="preserve">the name of the field to remove</doc>
20961             <type name="utf8" c:type="gchar*"/>
20962           </parameter>
20963           <parameter transfer-ownership="none">
20964             <varargs>
20965             </varargs>
20966           </parameter>
20967         </parameters>
20968       </method>
20969       <method name="remove_fields_valist"
20970               c:identifier="gst_structure_remove_fields_valist"
20971               introspectable="0">
20972         <doc xml:whitespace="preserve">va_list form of gst_structure_remove_fields().</doc>
20973         <return-value transfer-ownership="none">
20974           <type name="none" c:type="void"/>
20975         </return-value>
20976         <parameters>
20977           <parameter name="fieldname" transfer-ownership="none">
20978             <doc xml:whitespace="preserve">the name of the field to remove</doc>
20979             <type name="utf8" c:type="gchar*"/>
20980           </parameter>
20981           <parameter name="varargs" transfer-ownership="none">
20982             <doc xml:whitespace="preserve">NULL-terminated list of more fieldnames to remove</doc>
20983             <type name="va_list" c:type="va_list"/>
20984           </parameter>
20985         </parameters>
20986       </method>
20987       <method name="set" c:identifier="gst_structure_set" introspectable="0">
20988         <doc xml:whitespace="preserve">Parses the variable arguments and sets fields accordingly.
20989 Variable arguments should be in the form field name, field type
20990 (as a GType), value(s).  The last variable argument should be NULL.</doc>
20991         <return-value transfer-ownership="none">
20992           <type name="none" c:type="void"/>
20993         </return-value>
20994         <parameters>
20995           <parameter name="fieldname" transfer-ownership="none">
20996             <doc xml:whitespace="preserve">the name of the field to set</doc>
20997             <type name="utf8" c:type="gchar*"/>
20998           </parameter>
20999           <parameter transfer-ownership="none">
21000             <varargs>
21001             </varargs>
21002           </parameter>
21003         </parameters>
21004       </method>
21005       <method name="set_name" c:identifier="gst_structure_set_name">
21006         <doc xml:whitespace="preserve">Sets the name of the structure to the given @name.  The string
21007 provided is copied before being used. It must not be empty, start with a
21008 letter and can be followed by letters, numbers and any of "/-_.:".</doc>
21009         <return-value transfer-ownership="none">
21010           <type name="none" c:type="void"/>
21011         </return-value>
21012         <parameters>
21013           <parameter name="name" transfer-ownership="none">
21014             <doc xml:whitespace="preserve">the new name of the structure</doc>
21015             <type name="utf8" c:type="gchar*"/>
21016           </parameter>
21017         </parameters>
21018       </method>
21019       <method name="set_parent_refcount"
21020               c:identifier="gst_structure_set_parent_refcount">
21021         <doc xml:whitespace="preserve">Sets the parent_refcount field of #GstStructure. This field is used to
21022 determine whether a structure is mutable or not. This function should only be
21023 called by code implementing parent objects of #GstStructure, as described in
21024 the MT Refcounting section of the design documents.</doc>
21025         <return-value transfer-ownership="none">
21026           <type name="none" c:type="void"/>
21027         </return-value>
21028         <parameters>
21029           <parameter name="refcount" transfer-ownership="none">
21030             <doc xml:whitespace="preserve">a pointer to the parent's refcount</doc>
21031             <type name="gint" c:type="gint*"/>
21032           </parameter>
21033         </parameters>
21034       </method>
21035       <method name="set_valist"
21036               c:identifier="gst_structure_set_valist"
21037               introspectable="0">
21038         <doc xml:whitespace="preserve">va_list form of gst_structure_set().</doc>
21039         <return-value transfer-ownership="none">
21040           <type name="none" c:type="void"/>
21041         </return-value>
21042         <parameters>
21043           <parameter name="fieldname" transfer-ownership="none">
21044             <doc xml:whitespace="preserve">the name of the field to set</doc>
21045             <type name="utf8" c:type="gchar*"/>
21046           </parameter>
21047           <parameter name="varargs" transfer-ownership="none">
21048             <doc xml:whitespace="preserve">variable arguments</doc>
21049             <type name="va_list" c:type="va_list"/>
21050           </parameter>
21051         </parameters>
21052       </method>
21053       <method name="set_value" c:identifier="gst_structure_set_value">
21054         <doc xml:whitespace="preserve">Sets the field with the given name @field to @value.  If the field
21055 does not exist, it is created.  If the field exists, the previous
21056 value is replaced and freed.</doc>
21057         <return-value transfer-ownership="none">
21058           <type name="none" c:type="void"/>
21059         </return-value>
21060         <parameters>
21061           <parameter name="fieldname" transfer-ownership="none">
21062             <doc xml:whitespace="preserve">the name of the field to set</doc>
21063             <type name="utf8" c:type="gchar*"/>
21064           </parameter>
21065           <parameter name="value" transfer-ownership="none">
21066             <doc xml:whitespace="preserve">the new value of the field</doc>
21067             <type name="GObject.Value" c:type="GValue*"/>
21068           </parameter>
21069         </parameters>
21070       </method>
21071       <method name="take_value"
21072               c:identifier="gst_structure_take_value"
21073               version="0.10.31">
21074         <doc xml:whitespace="preserve">Sets the field with the given name @field to @value.  If the field
21075 does not exist, it is created.  If the field exists, the previous
21076 value is replaced and freed. The function will take ownership of @value.</doc>
21077         <return-value transfer-ownership="none">
21078           <type name="none" c:type="void"/>
21079         </return-value>
21080         <parameters>
21081           <parameter name="fieldname" transfer-ownership="none">
21082             <doc xml:whitespace="preserve">the name of the field to set</doc>
21083             <type name="utf8" c:type="gchar*"/>
21084           </parameter>
21085           <parameter name="value" transfer-ownership="full">
21086             <doc xml:whitespace="preserve">the new value of the field</doc>
21087             <type name="GObject.Value" c:type="GValue*"/>
21088           </parameter>
21089         </parameters>
21090       </method>
21091       <method name="to_string" c:identifier="gst_structure_to_string">
21092         <doc xml:whitespace="preserve">Converts @structure to a human-readable string representation.
21093 For debugging purposes its easier to do something like this:
21094 |[
21095 GST_LOG ("structure is %" GST_PTR_FORMAT, structure);
21096 ]|
21097 This prints the structure in human readble form.
21098 g_free() after usage.</doc>
21099         <return-value transfer-ownership="full">
21100           <doc xml:whitespace="preserve">(transfer full)L a pointer to string allocated by g_malloc().</doc>
21101           <type name="utf8" c:type="gchar*"/>
21102         </return-value>
21103       </method>
21104     </record>
21105     <enumeration name="StructureChangeType"
21106                  version="0.10.22"
21107                  c:type="GstStructureChangeType">
21108       <doc xml:whitespace="preserve">The type of a %GST_MESSAGE_STRUCTURE_CHANGE.</doc>
21109       <member name="link"
21110               value="0"
21111               c:identifier="GST_STRUCTURE_CHANGE_TYPE_PAD_LINK"/>
21112       <member name="unlink"
21113               value="1"
21114               c:identifier="GST_STRUCTURE_CHANGE_TYPE_PAD_UNLINK"/>
21115     </enumeration>
21116     <callback name="StructureForeachFunc" c:type="GstStructureForeachFunc">
21117       <doc xml:whitespace="preserve">A function that will be called in gst_structure_foreach(). The function may
21118 not modify @value.
21119 the foreach operation should stop with FALSE.</doc>
21120       <return-value transfer-ownership="none">
21121         <doc xml:whitespace="preserve">TRUE if the foreach operation should continue, FALSE if</doc>
21122         <type name="gboolean" c:type="gboolean"/>
21123       </return-value>
21124       <parameters>
21125         <parameter name="field_id" transfer-ownership="none">
21126           <doc xml:whitespace="preserve">the #GQuark of the field name</doc>
21127           <type name="GLib.Quark" c:type="GQuark"/>
21128         </parameter>
21129         <parameter name="value" transfer-ownership="none">
21130           <doc xml:whitespace="preserve">the #GValue of the field</doc>
21131           <type name="GObject.Value" c:type="GValue*"/>
21132         </parameter>
21133         <parameter name="user_data" transfer-ownership="none" closure="2">
21134           <doc xml:whitespace="preserve">user data</doc>
21135           <type name="gpointer" c:type="gpointer"/>
21136         </parameter>
21137       </parameters>
21138     </callback>
21139     <callback name="StructureMapFunc" c:type="GstStructureMapFunc">
21140       <doc xml:whitespace="preserve">A function that will be called in gst_structure_map_in_place(). The function
21141 may modify @value.
21142 the map operation should stop with FALSE.</doc>
21143       <return-value transfer-ownership="none">
21144         <doc xml:whitespace="preserve">TRUE if the map operation should continue, FALSE if</doc>
21145         <type name="gboolean" c:type="gboolean"/>
21146       </return-value>
21147       <parameters>
21148         <parameter name="field_id" transfer-ownership="none">
21149           <doc xml:whitespace="preserve">the #GQuark of the field name</doc>
21150           <type name="GLib.Quark" c:type="GQuark"/>
21151         </parameter>
21152         <parameter name="value" transfer-ownership="none">
21153           <doc xml:whitespace="preserve">the #GValue of the field</doc>
21154           <type name="GObject.Value" c:type="GValue*"/>
21155         </parameter>
21156         <parameter name="user_data" transfer-ownership="none" closure="2">
21157           <doc xml:whitespace="preserve">user data</doc>
21158           <type name="gpointer" c:type="gpointer"/>
21159         </parameter>
21160       </parameters>
21161     </callback>
21162     <class name="SystemClock"
21163            c:symbol-prefix="system_clock"
21164            c:type="GstSystemClock"
21165            parent="Clock"
21166            glib:type-name="GstSystemClock"
21167            glib:get-type="gst_system_clock_get_type"
21168            glib:type-struct="SystemClockClass">
21169       <doc xml:whitespace="preserve">The GStreamer core provides a GstSystemClock based on the system time.
21170 Asynchronous callbacks are scheduled from an internal thread.
21171 Clock implementors are encouraged to subclass this systemclock as it
21172 implements the async notification.
21173 Subclasses can however override all of the important methods for sync and
21174 async notifications to implement their own callback methods or blocking
21175 wait operations.
21176 Last reviewed on 2006-03-08 (0.10.4)</doc>
21177       <function name="obtain" c:identifier="gst_system_clock_obtain">
21178         <doc xml:whitespace="preserve">Get a handle to the default system clock. The refcount of the
21179 clock will be increased so you need to unref the clock after
21180 usage.
21181 MT safe.</doc>
21182         <return-value transfer-ownership="full">
21183           <doc xml:whitespace="preserve">the default clock.</doc>
21184           <type name="Clock" c:type="GstClock*"/>
21185         </return-value>
21186       </function>
21187       <property name="clock-type"
21188                 introspectable="0"
21189                 writable="1"
21190                 transfer-ownership="none">
21191         <type/>
21192       </property>
21193       <field name="clock">
21194         <type name="Clock" c:type="GstClock"/>
21195       </field>
21196       <field name="thread" readable="0" private="1">
21197         <type name="GLib.Thread" c:type="GThread*"/>
21198       </field>
21199       <field name="stopping" readable="0" private="1">
21200         <type name="gboolean" c:type="gboolean"/>
21201       </field>
21202       <field name="priv" readable="0" private="1">
21203         <type name="SystemClockPrivate" c:type="GstSystemClockPrivate*"/>
21204       </field>
21205       <field name="_gst_reserved" readable="0" private="1">
21206         <array zero-terminated="0" c:type="gpointer" fixed-size="3">
21207           <type name="gpointer" c:type="gpointer"/>
21208         </array>
21209       </field>
21210     </class>
21211     <record name="SystemClockClass"
21212             c:type="GstSystemClockClass"
21213             glib:is-gtype-struct-for="SystemClock">
21214       <field name="parent_class">
21215         <type name="ClockClass" c:type="GstClockClass"/>
21216       </field>
21217       <field name="_gst_reserved" readable="0" private="1">
21218         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
21219           <type name="gpointer" c:type="gpointer"/>
21220         </array>
21221       </field>
21222     </record>
21223     <record name="SystemClockPrivate"
21224             c:type="GstSystemClockPrivate"
21225             disguised="1">
21226     </record>
21227     <constant name="TAG_ALBUM" value="album">
21228       <type name="utf8" c:type="gchar*"/>
21229     </constant>
21230     <constant name="TAG_ALBUM_ARTIST" value="album-artist">
21231       <type name="utf8" c:type="gchar*"/>
21232     </constant>
21233     <constant name="TAG_ALBUM_ARTIST_SORTNAME" value="album-artist-sortname">
21234       <type name="utf8" c:type="gchar*"/>
21235     </constant>
21236     <constant name="TAG_ALBUM_GAIN" value="replaygain-album-gain">
21237       <type name="utf8" c:type="gchar*"/>
21238     </constant>
21239     <constant name="TAG_ALBUM_PEAK" value="replaygain-album-peak">
21240       <type name="utf8" c:type="gchar*"/>
21241     </constant>
21242     <constant name="TAG_ALBUM_SORTNAME" value="album-sortname">
21243       <type name="utf8" c:type="gchar*"/>
21244     </constant>
21245     <constant name="TAG_ALBUM_VOLUME_COUNT" value="album-disc-count">
21246       <type name="utf8" c:type="gchar*"/>
21247     </constant>
21248     <constant name="TAG_ALBUM_VOLUME_NUMBER" value="album-disc-number">
21249       <type name="utf8" c:type="gchar*"/>
21250     </constant>
21251     <constant name="TAG_APPLICATION_DATA" value="application-data">
21252       <type name="utf8" c:type="gchar*"/>
21253     </constant>
21254     <constant name="TAG_APPLICATION_NAME" value="application-name">
21255       <type name="utf8" c:type="gchar*"/>
21256     </constant>
21257     <constant name="TAG_ARTIST" value="artist">
21258       <type name="utf8" c:type="gchar*"/>
21259     </constant>
21260     <constant name="TAG_ARTIST_SORTNAME" value="musicbrainz-sortname">
21261       <type name="utf8" c:type="gchar*"/>
21262     </constant>
21263     <constant name="TAG_ATTACHMENT" value="attachment">
21264       <type name="utf8" c:type="gchar*"/>
21265     </constant>
21266     <constant name="TAG_AUDIO_CODEC" value="audio-codec">
21267       <type name="utf8" c:type="gchar*"/>
21268     </constant>
21269     <constant name="TAG_BEATS_PER_MINUTE" value="beats-per-minute">
21270       <type name="utf8" c:type="gchar*"/>
21271     </constant>
21272     <constant name="TAG_BITRATE" value="bitrate">
21273       <type name="utf8" c:type="gchar*"/>
21274     </constant>
21275     <constant name="TAG_CODEC" value="codec">
21276       <type name="utf8" c:type="gchar*"/>
21277     </constant>
21278     <constant name="TAG_COMMENT" value="comment">
21279       <type name="utf8" c:type="gchar*"/>
21280     </constant>
21281     <constant name="TAG_COMPOSER" value="composer">
21282       <type name="utf8" c:type="gchar*"/>
21283     </constant>
21284     <constant name="TAG_COMPOSER_SORTNAME" value="composer-sortname">
21285       <type name="utf8" c:type="gchar*"/>
21286     </constant>
21287     <constant name="TAG_CONTACT" value="contact">
21288       <type name="utf8" c:type="gchar*"/>
21289     </constant>
21290     <constant name="TAG_CONTAINER_FORMAT" value="container-format">
21291       <type name="utf8" c:type="gchar*"/>
21292     </constant>
21293     <constant name="TAG_COPYRIGHT" value="copyright">
21294       <type name="utf8" c:type="gchar*"/>
21295     </constant>
21296     <constant name="TAG_COPYRIGHT_URI" value="copyright-uri">
21297       <type name="utf8" c:type="gchar*"/>
21298     </constant>
21299     <constant name="TAG_DATE" value="date">
21300       <type name="utf8" c:type="gchar*"/>
21301     </constant>
21302     <constant name="TAG_DATE_TIME" value="datetime">
21303       <type name="utf8" c:type="gchar*"/>
21304     </constant>
21305     <constant name="TAG_DESCRIPTION" value="description">
21306       <type name="utf8" c:type="gchar*"/>
21307     </constant>
21308     <constant name="TAG_DEVICE_MANUFACTURER" value="device-manufacturer">
21309       <type name="utf8" c:type="gchar*"/>
21310     </constant>
21311     <constant name="TAG_DEVICE_MODEL" value="device-model">
21312       <type name="utf8" c:type="gchar*"/>
21313     </constant>
21314     <constant name="TAG_DURATION" value="duration">
21315       <type name="utf8" c:type="gchar*"/>
21316     </constant>
21317     <constant name="TAG_ENCODED_BY" value="encoded-by">
21318       <type name="utf8" c:type="gchar*"/>
21319     </constant>
21320     <constant name="TAG_ENCODER" value="encoder">
21321       <type name="utf8" c:type="gchar*"/>
21322     </constant>
21323     <constant name="TAG_ENCODER_VERSION" value="encoder-version">
21324       <type name="utf8" c:type="gchar*"/>
21325     </constant>
21326     <constant name="TAG_EXTENDED_COMMENT" value="extended-comment">
21327       <type name="utf8" c:type="gchar*"/>
21328     </constant>
21329     <constant name="TAG_GENRE" value="genre">
21330       <type name="utf8" c:type="gchar*"/>
21331     </constant>
21332     <constant name="TAG_GEO_LOCATION_CAPTURE_DIRECTION"
21333               value="geo-location-capture-direction">
21334       <type name="utf8" c:type="gchar*"/>
21335     </constant>
21336     <constant name="TAG_GEO_LOCATION_CITY" value="geo-location-city">
21337       <type name="utf8" c:type="gchar*"/>
21338     </constant>
21339     <constant name="TAG_GEO_LOCATION_COUNTRY" value="geo-location-country">
21340       <type name="utf8" c:type="gchar*"/>
21341     </constant>
21342     <constant name="TAG_GEO_LOCATION_ELEVATION" value="geo-location-elevation">
21343       <type name="utf8" c:type="gchar*"/>
21344     </constant>
21345     <constant name="TAG_GEO_LOCATION_HORIZONTAL_ERROR"
21346               value="geo-location-horizontal-error">
21347       <type name="utf8" c:type="gchar*"/>
21348     </constant>
21349     <constant name="TAG_GEO_LOCATION_LATITUDE" value="geo-location-latitude">
21350       <type name="utf8" c:type="gchar*"/>
21351     </constant>
21352     <constant name="TAG_GEO_LOCATION_LONGITUDE" value="geo-location-longitude">
21353       <type name="utf8" c:type="gchar*"/>
21354     </constant>
21355     <constant name="TAG_GEO_LOCATION_MOVEMENT_DIRECTION"
21356               value="geo-location-movement-direction">
21357       <type name="utf8" c:type="gchar*"/>
21358     </constant>
21359     <constant name="TAG_GEO_LOCATION_MOVEMENT_SPEED"
21360               value="geo-location-movement-speed">
21361       <type name="utf8" c:type="gchar*"/>
21362     </constant>
21363     <constant name="TAG_GEO_LOCATION_NAME" value="geo-location-name">
21364       <type name="utf8" c:type="gchar*"/>
21365     </constant>
21366     <constant name="TAG_GEO_LOCATION_SUBLOCATION"
21367               value="geo-location-sublocation">
21368       <type name="utf8" c:type="gchar*"/>
21369     </constant>
21370     <constant name="TAG_GROUPING" value="grouping">
21371       <type name="utf8" c:type="gchar*"/>
21372     </constant>
21373     <constant name="TAG_HOMEPAGE" value="homepage">
21374       <type name="utf8" c:type="gchar*"/>
21375     </constant>
21376     <constant name="TAG_IMAGE" value="image">
21377       <type name="utf8" c:type="gchar*"/>
21378     </constant>
21379     <constant name="TAG_IMAGE_ORIENTATION" value="image-orientation">
21380       <type name="utf8" c:type="gchar*"/>
21381     </constant>
21382     <constant name="TAG_ISRC" value="isrc">
21383       <type name="utf8" c:type="gchar*"/>
21384     </constant>
21385     <constant name="TAG_KEYWORDS" value="keywords">
21386       <type name="utf8" c:type="gchar*"/>
21387     </constant>
21388     <constant name="TAG_LANGUAGE_CODE" value="language-code">
21389       <type name="utf8" c:type="gchar*"/>
21390     </constant>
21391     <constant name="TAG_LICENSE" value="license">
21392       <type name="utf8" c:type="gchar*"/>
21393     </constant>
21394     <constant name="TAG_LICENSE_URI" value="license-uri">
21395       <type name="utf8" c:type="gchar*"/>
21396     </constant>
21397     <constant name="TAG_LOCATION" value="location">
21398       <type name="utf8" c:type="gchar*"/>
21399     </constant>
21400     <constant name="TAG_LYRICS" value="lyrics">
21401       <type name="utf8" c:type="gchar*"/>
21402     </constant>
21403     <constant name="TAG_MAXIMUM_BITRATE" value="maximum-bitrate">
21404       <type name="utf8" c:type="gchar*"/>
21405     </constant>
21406     <constant name="TAG_MINIMUM_BITRATE" value="minimum-bitrate">
21407       <type name="utf8" c:type="gchar*"/>
21408     </constant>
21409     <constant name="TAG_NOMINAL_BITRATE" value="nominal-bitrate">
21410       <type name="utf8" c:type="gchar*"/>
21411     </constant>
21412     <constant name="TAG_ORGANIZATION" value="organization">
21413       <type name="utf8" c:type="gchar*"/>
21414     </constant>
21415     <constant name="TAG_PERFORMER" value="performer">
21416       <type name="utf8" c:type="gchar*"/>
21417     </constant>
21418     <constant name="TAG_PREVIEW_IMAGE" value="preview-image">
21419       <type name="utf8" c:type="gchar*"/>
21420     </constant>
21421     <constant name="TAG_REFERENCE_LEVEL" value="replaygain-reference-level">
21422       <type name="utf8" c:type="gchar*"/>
21423     </constant>
21424     <constant name="TAG_SERIAL" value="serial">
21425       <type name="utf8" c:type="gchar*"/>
21426     </constant>
21427     <constant name="TAG_SHOW_EPISODE_NUMBER" value="show-episode-number">
21428       <type name="utf8" c:type="gchar*"/>
21429     </constant>
21430     <constant name="TAG_SHOW_NAME" value="show-name">
21431       <type name="utf8" c:type="gchar*"/>
21432     </constant>
21433     <constant name="TAG_SHOW_SEASON_NUMBER" value="show-season-number">
21434       <type name="utf8" c:type="gchar*"/>
21435     </constant>
21436     <constant name="TAG_SHOW_SORTNAME" value="show-sortname">
21437       <type name="utf8" c:type="gchar*"/>
21438     </constant>
21439     <constant name="TAG_SUBTITLE_CODEC" value="subtitle-codec">
21440       <type name="utf8" c:type="gchar*"/>
21441     </constant>
21442     <constant name="TAG_TITLE" value="title">
21443       <type name="utf8" c:type="gchar*"/>
21444     </constant>
21445     <constant name="TAG_TITLE_SORTNAME" value="title-sortname">
21446       <type name="utf8" c:type="gchar*"/>
21447     </constant>
21448     <constant name="TAG_TRACK_COUNT" value="track-count">
21449       <type name="utf8" c:type="gchar*"/>
21450     </constant>
21451     <constant name="TAG_TRACK_GAIN" value="replaygain-track-gain">
21452       <type name="utf8" c:type="gchar*"/>
21453     </constant>
21454     <constant name="TAG_TRACK_NUMBER" value="track-number">
21455       <type name="utf8" c:type="gchar*"/>
21456     </constant>
21457     <constant name="TAG_TRACK_PEAK" value="replaygain-track-peak">
21458       <type name="utf8" c:type="gchar*"/>
21459     </constant>
21460     <constant name="TAG_USER_RATING" value="user-rating">
21461       <type name="utf8" c:type="gchar*"/>
21462     </constant>
21463     <constant name="TAG_VERSION" value="version">
21464       <type name="utf8" c:type="gchar*"/>
21465     </constant>
21466     <constant name="TAG_VIDEO_CODEC" value="video-codec">
21467       <type name="utf8" c:type="gchar*"/>
21468     </constant>
21469     <constant name="TIME_FORMAT" value="u:%02u:%02u.%09u">
21470       <type name="utf8" c:type="gchar*"/>
21471     </constant>
21472     <enumeration name="TagFlag" c:type="GstTagFlag">
21473       <doc xml:whitespace="preserve">Extra tag flags used when registering tags.</doc>
21474       <member name="undefined"
21475               value="0"
21476               c:identifier="GST_TAG_FLAG_UNDEFINED"/>
21477       <member name="meta" value="1" c:identifier="GST_TAG_FLAG_META"/>
21478       <member name="encoded" value="2" c:identifier="GST_TAG_FLAG_ENCODED"/>
21479       <member name="decoded" value="3" c:identifier="GST_TAG_FLAG_DECODED"/>
21480       <member name="count" value="4" c:identifier="GST_TAG_FLAG_COUNT"/>
21481     </enumeration>
21482     <callback name="TagForeachFunc" c:type="GstTagForeachFunc">
21483       <doc xml:whitespace="preserve">A function that will be called in gst_tag_list_foreach(). The function may
21484 not modify the tag list.</doc>
21485       <return-value transfer-ownership="none">
21486         <type name="none" c:type="void"/>
21487       </return-value>
21488       <parameters>
21489         <parameter name="list" transfer-ownership="none">
21490           <doc xml:whitespace="preserve">the #GstTagList</doc>
21491           <type name="TagList" c:type="GstTagList*"/>
21492         </parameter>
21493         <parameter name="tag" transfer-ownership="none">
21494           <doc xml:whitespace="preserve">a name of a tag in @list</doc>
21495           <type name="utf8" c:type="gchar*"/>
21496         </parameter>
21497         <parameter name="user_data" transfer-ownership="none" closure="2">
21498           <doc xml:whitespace="preserve">user data</doc>
21499           <type name="gpointer" c:type="gpointer"/>
21500         </parameter>
21501       </parameters>
21502     </callback>
21503     <record name="TagList"
21504             c:type="GstTagList"
21505             glib:type-name="GstTagList"
21506             glib:get-type="gst_tag_list_get_type"
21507             c:symbol-prefix="tag_list">
21508       <doc xml:whitespace="preserve">List of tags and values used to describe media metadata.
21509 Strings must be in ASCII or UTF-8 encoding. No other encodings are allowed.
21510 Last reviewed on 2009-06-09 (0.10.23)</doc>
21511       <constructor name="new" c:identifier="gst_tag_list_new">
21512         <doc xml:whitespace="preserve">Creates a new empty GstTagList.</doc>
21513         <return-value transfer-ownership="full">
21514           <doc xml:whitespace="preserve">An empty tag list</doc>
21515           <type name="TagList" c:type="GstTagList*"/>
21516         </return-value>
21517       </constructor>
21518       <constructor name="new_full"
21519                    c:identifier="gst_tag_list_new_full"
21520                    version="0.10.24"
21521                    introspectable="0">
21522         <doc xml:whitespace="preserve">Creates a new taglist and appends the values for the given tags. It expects
21523 tag-value pairs like gst_tag_list_add(), and a NULL terminator after the
21524 last pair. The type of the values is implicit and is documented in the API
21525 reference, but can also be queried at runtime with gst_tag_get_type(). It
21526 is an error to pass a value of a type not matching the tag type into this
21527 function. The tag list will make copies of any arguments passed
21528 (e.g. strings, buffers).
21529 when no longer needed.</doc>
21530         <return-value transfer-ownership="full">
21531           <doc xml:whitespace="preserve">a new #GstTagList. Free with gst_tag_list_free()</doc>
21532           <type name="TagList" c:type="GstTagList*"/>
21533         </return-value>
21534         <parameters>
21535           <parameter name="tag" transfer-ownership="none">
21536             <doc xml:whitespace="preserve">tag</doc>
21537             <type name="utf8" c:type="gchar*"/>
21538           </parameter>
21539           <parameter transfer-ownership="none">
21540             <varargs>
21541             </varargs>
21542           </parameter>
21543         </parameters>
21544       </constructor>
21545       <constructor name="new_full_valist"
21546                    c:identifier="gst_tag_list_new_full_valist"
21547                    version="0.10.24"
21548                    introspectable="0">
21549         <doc xml:whitespace="preserve">Just like gst_tag_list_new_full(), only that it takes a va_list argument.
21550 Useful mostly for language bindings.
21551 when no longer needed.</doc>
21552         <return-value transfer-ownership="full">
21553           <doc xml:whitespace="preserve">a new #GstTagList. Free with gst_tag_list_free()</doc>
21554           <type name="TagList" c:type="GstTagList*"/>
21555         </return-value>
21556         <parameters>
21557           <parameter name="var_args" transfer-ownership="none">
21558             <doc xml:whitespace="preserve">tag / value pairs to set</doc>
21559             <type name="va_list" c:type="va_list"/>
21560           </parameter>
21561         </parameters>
21562       </constructor>
21563       <method name="add" c:identifier="gst_tag_list_add" introspectable="0">
21564         <doc xml:whitespace="preserve">Sets the values for the given tags using the specified mode.</doc>
21565         <return-value transfer-ownership="none">
21566           <type name="none" c:type="void"/>
21567         </return-value>
21568         <parameters>
21569           <parameter name="mode" transfer-ownership="none">
21570             <doc xml:whitespace="preserve">the mode to use</doc>
21571             <type name="TagMergeMode" c:type="GstTagMergeMode"/>
21572           </parameter>
21573           <parameter name="tag" transfer-ownership="none">
21574             <doc xml:whitespace="preserve">tag</doc>
21575             <type name="utf8" c:type="gchar*"/>
21576           </parameter>
21577           <parameter transfer-ownership="none">
21578             <varargs>
21579             </varargs>
21580           </parameter>
21581         </parameters>
21582       </method>
21583       <method name="add_valist"
21584               c:identifier="gst_tag_list_add_valist"
21585               introspectable="0">
21586         <doc xml:whitespace="preserve">Sets the values for the given tags using the specified mode.</doc>
21587         <return-value transfer-ownership="none">
21588           <type name="none" c:type="void"/>
21589         </return-value>
21590         <parameters>
21591           <parameter name="mode" transfer-ownership="none">
21592             <doc xml:whitespace="preserve">the mode to use</doc>
21593             <type name="TagMergeMode" c:type="GstTagMergeMode"/>
21594           </parameter>
21595           <parameter name="tag" transfer-ownership="none">
21596             <doc xml:whitespace="preserve">tag</doc>
21597             <type name="utf8" c:type="gchar*"/>
21598           </parameter>
21599           <parameter name="var_args" transfer-ownership="none">
21600             <doc xml:whitespace="preserve">tag / value pairs to set</doc>
21601             <type name="va_list" c:type="va_list"/>
21602           </parameter>
21603         </parameters>
21604       </method>
21605       <method name="add_valist_values"
21606               c:identifier="gst_tag_list_add_valist_values"
21607               introspectable="0">
21608         <doc xml:whitespace="preserve">Sets the GValues for the given tags using the specified mode.</doc>
21609         <return-value transfer-ownership="none">
21610           <type name="none" c:type="void"/>
21611         </return-value>
21612         <parameters>
21613           <parameter name="mode" transfer-ownership="none">
21614             <doc xml:whitespace="preserve">the mode to use</doc>
21615             <type name="TagMergeMode" c:type="GstTagMergeMode"/>
21616           </parameter>
21617           <parameter name="tag" transfer-ownership="none">
21618             <doc xml:whitespace="preserve">tag</doc>
21619             <type name="utf8" c:type="gchar*"/>
21620           </parameter>
21621           <parameter name="var_args" transfer-ownership="none">
21622             <doc xml:whitespace="preserve">tag / GValue pairs to set</doc>
21623             <type name="va_list" c:type="va_list"/>
21624           </parameter>
21625         </parameters>
21626       </method>
21627       <method name="add_value"
21628               c:identifier="gst_tag_list_add_value"
21629               version="0.10.24">
21630         <doc xml:whitespace="preserve">Sets the GValue for a given tag using the specified mode.</doc>
21631         <return-value transfer-ownership="none">
21632           <type name="none" c:type="void"/>
21633         </return-value>
21634         <parameters>
21635           <parameter name="mode" transfer-ownership="none">
21636             <doc xml:whitespace="preserve">the mode to use</doc>
21637             <type name="TagMergeMode" c:type="GstTagMergeMode"/>
21638           </parameter>
21639           <parameter name="tag" transfer-ownership="none">
21640             <doc xml:whitespace="preserve">tag</doc>
21641             <type name="utf8" c:type="gchar*"/>
21642           </parameter>
21643           <parameter name="value" transfer-ownership="none">
21644             <doc xml:whitespace="preserve">GValue for this tag</doc>
21645             <type name="GObject.Value" c:type="GValue*"/>
21646           </parameter>
21647         </parameters>
21648       </method>
21649       <method name="add_values"
21650               c:identifier="gst_tag_list_add_values"
21651               introspectable="0">
21652         <doc xml:whitespace="preserve">Sets the GValues for the given tags using the specified mode.</doc>
21653         <return-value transfer-ownership="none">
21654           <type name="none" c:type="void"/>
21655         </return-value>
21656         <parameters>
21657           <parameter name="mode" transfer-ownership="none">
21658             <doc xml:whitespace="preserve">the mode to use</doc>
21659             <type name="TagMergeMode" c:type="GstTagMergeMode"/>
21660           </parameter>
21661           <parameter name="tag" transfer-ownership="none">
21662             <doc xml:whitespace="preserve">tag</doc>
21663             <type name="utf8" c:type="gchar*"/>
21664           </parameter>
21665           <parameter transfer-ownership="none">
21666             <varargs>
21667             </varargs>
21668           </parameter>
21669         </parameters>
21670       </method>
21671       <method name="copy" c:identifier="gst_tag_list_copy">
21672         <doc xml:whitespace="preserve">Copies a given #GstTagList.</doc>
21673         <return-value transfer-ownership="full">
21674           <doc xml:whitespace="preserve">copy of the given list</doc>
21675           <type name="TagList" c:type="GstTagList*"/>
21676         </return-value>
21677       </method>
21678       <method name="foreach" c:identifier="gst_tag_list_foreach">
21679         <doc xml:whitespace="preserve">Calls the given function for each tag inside the tag list. Note that if there
21680 is no tag, the function won't be called at all.</doc>
21681         <return-value transfer-ownership="none">
21682           <type name="none" c:type="void"/>
21683         </return-value>
21684         <parameters>
21685           <parameter name="func"
21686                      transfer-ownership="none"
21687                      scope="call"
21688                      closure="1">
21689             <doc xml:whitespace="preserve">function to be called for each tag</doc>
21690             <type name="TagForeachFunc" c:type="GstTagForeachFunc"/>
21691           </parameter>
21692           <parameter name="user_data" transfer-ownership="none">
21693             <doc xml:whitespace="preserve">user specified data</doc>
21694             <type name="gpointer" c:type="gpointer"/>
21695           </parameter>
21696         </parameters>
21697       </method>
21698       <method name="free" c:identifier="gst_tag_list_free">
21699         <doc xml:whitespace="preserve">Frees the given list and all associated values.</doc>
21700         <return-value transfer-ownership="none">
21701           <type name="none" c:type="void"/>
21702         </return-value>
21703       </method>
21704       <method name="get_boolean" c:identifier="gst_tag_list_get_boolean">
21705         <doc xml:whitespace="preserve">Copies the contents for the given tag into the value, merging multiple values
21706 into one if multiple values are associated with the tag.
21707 given list.</doc>
21708         <return-value transfer-ownership="none">
21709           <doc xml:whitespace="preserve">TRUE, if a value was copied, FALSE if the tag didn't exist in the</doc>
21710           <type name="gboolean" c:type="gboolean"/>
21711         </return-value>
21712         <parameters>
21713           <parameter name="tag" transfer-ownership="none">
21714             <doc xml:whitespace="preserve">tag to read out</doc>
21715             <type name="utf8" c:type="gchar*"/>
21716           </parameter>
21717           <parameter name="value"
21718                      direction="out"
21719                      caller-allocates="0"
21720                      transfer-ownership="full">
21721             <doc xml:whitespace="preserve">location for the result</doc>
21722             <type name="gboolean" c:type="gboolean*"/>
21723           </parameter>
21724         </parameters>
21725       </method>
21726       <method name="get_boolean_index"
21727               c:identifier="gst_tag_list_get_boolean_index">
21728         <doc xml:whitespace="preserve">Gets the value that is at the given index for the given tag in the given
21729 list.
21730 given list.</doc>
21731         <return-value transfer-ownership="none">
21732           <doc xml:whitespace="preserve">TRUE, if a value was copied, FALSE if the tag didn't exist in the</doc>
21733           <type name="gboolean" c:type="gboolean"/>
21734         </return-value>
21735         <parameters>
21736           <parameter name="tag" transfer-ownership="none">
21737             <doc xml:whitespace="preserve">tag to read out</doc>
21738             <type name="utf8" c:type="gchar*"/>
21739           </parameter>
21740           <parameter name="index" transfer-ownership="none">
21741             <doc xml:whitespace="preserve">number of entry to read out</doc>
21742             <type name="guint" c:type="guint"/>
21743           </parameter>
21744           <parameter name="value"
21745                      direction="out"
21746                      caller-allocates="0"
21747                      transfer-ownership="full">
21748             <doc xml:whitespace="preserve">location for the result</doc>
21749             <type name="gboolean" c:type="gboolean*"/>
21750           </parameter>
21751         </parameters>
21752       </method>
21753       <method name="get_buffer"
21754               c:identifier="gst_tag_list_get_buffer"
21755               version="0.10.23">
21756         <doc xml:whitespace="preserve">Copies the first buffer for the given tag in the taglist into the variable
21757 pointed to by @value. Free the buffer with gst_buffer_unref() when it is
21758 no longer needed.
21759 given list or if it was #NULL.</doc>
21760         <return-value transfer-ownership="none">
21761           <doc xml:whitespace="preserve">TRUE, if a buffer was copied, FALSE if the tag didn't exist in the</doc>
21762           <type name="gboolean" c:type="gboolean"/>
21763         </return-value>
21764         <parameters>
21765           <parameter name="tag" transfer-ownership="none">
21766             <doc xml:whitespace="preserve">tag to read out</doc>
21767             <type name="utf8" c:type="gchar*"/>
21768           </parameter>
21769           <parameter name="value"
21770                      direction="out"
21771                      caller-allocates="0"
21772                      transfer-ownership="full">
21773             <doc xml:whitespace="preserve">address of a GstBuffer pointer variable to store the result into</doc>
21774             <type name="Buffer" c:type="GstBuffer**"/>
21775           </parameter>
21776         </parameters>
21777       </method>
21778       <method name="get_buffer_index"
21779               c:identifier="gst_tag_list_get_buffer_index"
21780               version="0.10.23">
21781         <doc xml:whitespace="preserve">Gets the buffer that is at the given index for the given tag in the given
21782 list and copies it into the variable pointed to by @value. Free the buffer
21783 with gst_buffer_unref() when it is no longer needed.
21784 given list or if it was #NULL.</doc>
21785         <return-value transfer-ownership="none">
21786           <doc xml:whitespace="preserve">TRUE, if a buffer was copied, FALSE if the tag didn't exist in the</doc>
21787           <type name="gboolean" c:type="gboolean"/>
21788         </return-value>
21789         <parameters>
21790           <parameter name="tag" transfer-ownership="none">
21791             <doc xml:whitespace="preserve">tag to read out</doc>
21792             <type name="utf8" c:type="gchar*"/>
21793           </parameter>
21794           <parameter name="index" transfer-ownership="none">
21795             <doc xml:whitespace="preserve">number of entry to read out</doc>
21796             <type name="guint" c:type="guint"/>
21797           </parameter>
21798           <parameter name="value"
21799                      direction="out"
21800                      caller-allocates="0"
21801                      transfer-ownership="full">
21802             <doc xml:whitespace="preserve">address of a GstBuffer pointer variable to store the result into</doc>
21803             <type name="Buffer" c:type="GstBuffer**"/>
21804           </parameter>
21805         </parameters>
21806       </method>
21807       <method name="get_char" c:identifier="gst_tag_list_get_char">
21808         <doc xml:whitespace="preserve">Copies the contents for the given tag into the value, merging multiple values
21809 into one if multiple values are associated with the tag.
21810 given list.</doc>
21811         <return-value transfer-ownership="none">
21812           <doc xml:whitespace="preserve">TRUE, if a value was copied, FALSE if the tag didn't exist in the</doc>
21813           <type name="gboolean" c:type="gboolean"/>
21814         </return-value>
21815         <parameters>
21816           <parameter name="tag" transfer-ownership="none">
21817             <doc xml:whitespace="preserve">tag to read out</doc>
21818             <type name="utf8" c:type="gchar*"/>
21819           </parameter>
21820           <parameter name="value"
21821                      direction="out"
21822                      caller-allocates="0"
21823                      transfer-ownership="full">
21824             <doc xml:whitespace="preserve">location for the result</doc>
21825             <type name="utf8" c:type="gchar*"/>
21826           </parameter>
21827         </parameters>
21828       </method>
21829       <method name="get_char_index" c:identifier="gst_tag_list_get_char_index">
21830         <doc xml:whitespace="preserve">Gets the value that is at the given index for the given tag in the given
21831 list.
21832 given list.</doc>
21833         <return-value transfer-ownership="none">
21834           <doc xml:whitespace="preserve">TRUE, if a value was copied, FALSE if the tag didn't exist in the</doc>
21835           <type name="gboolean" c:type="gboolean"/>
21836         </return-value>
21837         <parameters>
21838           <parameter name="tag" transfer-ownership="none">
21839             <doc xml:whitespace="preserve">tag to read out</doc>
21840             <type name="utf8" c:type="gchar*"/>
21841           </parameter>
21842           <parameter name="index" transfer-ownership="none">
21843             <doc xml:whitespace="preserve">number of entry to read out</doc>
21844             <type name="guint" c:type="guint"/>
21845           </parameter>
21846           <parameter name="value"
21847                      direction="out"
21848                      caller-allocates="0"
21849                      transfer-ownership="full">
21850             <doc xml:whitespace="preserve">location for the result</doc>
21851             <type name="utf8" c:type="gchar*"/>
21852           </parameter>
21853         </parameters>
21854       </method>
21855       <method name="get_date" c:identifier="gst_tag_list_get_date">
21856         <doc xml:whitespace="preserve">Copies the first date for the given tag in the taglist into the variable
21857 pointed to by @value. Free the date with g_date_free() when it is no longer
21858 needed.
21859 given list or if it was #NULL.</doc>
21860         <return-value transfer-ownership="none">
21861           <doc xml:whitespace="preserve">TRUE, if a date was copied, FALSE if the tag didn't exist in the</doc>
21862           <type name="gboolean" c:type="gboolean"/>
21863         </return-value>
21864         <parameters>
21865           <parameter name="tag" transfer-ownership="none">
21866             <doc xml:whitespace="preserve">tag to read out</doc>
21867             <type name="utf8" c:type="gchar*"/>
21868           </parameter>
21869           <parameter name="value"
21870                      direction="out"
21871                      caller-allocates="0"
21872                      transfer-ownership="full">
21873             <doc xml:whitespace="preserve">address of a GDate pointer variable to store the result into</doc>
21874             <type name="GLib.Date" c:type="GDate**"/>
21875           </parameter>
21876         </parameters>
21877       </method>
21878       <method name="get_date_index" c:identifier="gst_tag_list_get_date_index">
21879         <doc xml:whitespace="preserve">Gets the date that is at the given index for the given tag in the given
21880 list and copies it into the variable pointed to by @value. Free the date
21881 with g_date_free() when it is no longer needed.
21882 given list or if it was #NULL.</doc>
21883         <return-value transfer-ownership="none">
21884           <doc xml:whitespace="preserve">TRUE, if a value was copied, FALSE if the tag didn't exist in the</doc>
21885           <type name="gboolean" c:type="gboolean"/>
21886         </return-value>
21887         <parameters>
21888           <parameter name="tag" transfer-ownership="none">
21889             <doc xml:whitespace="preserve">tag to read out</doc>
21890             <type name="utf8" c:type="gchar*"/>
21891           </parameter>
21892           <parameter name="index" transfer-ownership="none">
21893             <doc xml:whitespace="preserve">number of entry to read out</doc>
21894             <type name="guint" c:type="guint"/>
21895           </parameter>
21896           <parameter name="value"
21897                      direction="out"
21898                      caller-allocates="0"
21899                      transfer-ownership="full">
21900             <doc xml:whitespace="preserve">location for the result</doc>
21901             <type name="GLib.Date" c:type="GDate**"/>
21902           </parameter>
21903         </parameters>
21904       </method>
21905       <method name="get_date_time"
21906               c:identifier="gst_tag_list_get_date_time"
21907               version="0.10.31">
21908         <doc xml:whitespace="preserve">Copies the first datetime for the given tag in the taglist into the variable
21909 pointed to by @value. Unref the date with gst_date_time_unref() when
21910 it is no longer needed.
21911 thegiven list or if it was #NULL.</doc>
21912         <return-value transfer-ownership="none">
21913           <doc xml:whitespace="preserve">TRUE, if a datetime was copied, FALSE if the tag didn't exist in</doc>
21914           <type name="gboolean" c:type="gboolean"/>
21915         </return-value>
21916         <parameters>
21917           <parameter name="tag" transfer-ownership="none">
21918             <doc xml:whitespace="preserve">tag to read out</doc>
21919             <type name="utf8" c:type="gchar*"/>
21920           </parameter>
21921           <parameter name="value"
21922                      direction="out"
21923                      caller-allocates="0"
21924                      transfer-ownership="full">
21925             <doc xml:whitespace="preserve">address of a #GstDateTime pointer variable to store the result into</doc>
21926             <type name="DateTime" c:type="GstDateTime**"/>
21927           </parameter>
21928         </parameters>
21929       </method>
21930       <method name="get_date_time_index"
21931               c:identifier="gst_tag_list_get_date_time_index"
21932               version="0.10.31">
21933         <doc xml:whitespace="preserve">Gets the datetime that is at the given index for the given tag in the given
21934 list and copies it into the variable pointed to by @value. Unref the datetime
21935 with gst_date_time_unref() when it is no longer needed.
21936 given list or if it was #NULL.</doc>
21937         <return-value transfer-ownership="none">
21938           <doc xml:whitespace="preserve">TRUE, if a value was copied, FALSE if the tag didn't exist in the</doc>
21939           <type name="gboolean" c:type="gboolean"/>
21940         </return-value>
21941         <parameters>
21942           <parameter name="tag" transfer-ownership="none">
21943             <doc xml:whitespace="preserve">tag to read out</doc>
21944             <type name="utf8" c:type="gchar*"/>
21945           </parameter>
21946           <parameter name="index" transfer-ownership="none">
21947             <doc xml:whitespace="preserve">number of entry to read out</doc>
21948             <type name="guint" c:type="guint"/>
21949           </parameter>
21950           <parameter name="value"
21951                      direction="out"
21952                      caller-allocates="0"
21953                      transfer-ownership="full">
21954             <doc xml:whitespace="preserve">location for the result</doc>
21955             <type name="DateTime" c:type="GstDateTime**"/>
21956           </parameter>
21957         </parameters>
21958       </method>
21959       <method name="get_double" c:identifier="gst_tag_list_get_double">
21960         <doc xml:whitespace="preserve">Copies the contents for the given tag into the value, merging multiple values
21961 into one if multiple values are associated with the tag.
21962 given list.</doc>
21963         <return-value transfer-ownership="none">
21964           <doc xml:whitespace="preserve">TRUE, if a value was copied, FALSE if the tag didn't exist in the</doc>
21965           <type name="gboolean" c:type="gboolean"/>
21966         </return-value>
21967         <parameters>
21968           <parameter name="tag" transfer-ownership="none">
21969             <doc xml:whitespace="preserve">tag to read out</doc>
21970             <type name="utf8" c:type="gchar*"/>
21971           </parameter>
21972           <parameter name="value"
21973                      direction="out"
21974                      caller-allocates="0"
21975                      transfer-ownership="full">
21976             <doc xml:whitespace="preserve">location for the result</doc>
21977             <type name="gdouble" c:type="gdouble*"/>
21978           </parameter>
21979         </parameters>
21980       </method>
21981       <method name="get_double_index"
21982               c:identifier="gst_tag_list_get_double_index">
21983         <doc xml:whitespace="preserve">Gets the value that is at the given index for the given tag in the given
21984 list.
21985 given list.</doc>
21986         <return-value transfer-ownership="none">
21987           <doc xml:whitespace="preserve">TRUE, if a value was copied, FALSE if the tag didn't exist in the</doc>
21988           <type name="gboolean" c:type="gboolean"/>
21989         </return-value>
21990         <parameters>
21991           <parameter name="tag" transfer-ownership="none">
21992             <doc xml:whitespace="preserve">tag to read out</doc>
21993             <type name="utf8" c:type="gchar*"/>
21994           </parameter>
21995           <parameter name="index" transfer-ownership="none">
21996             <doc xml:whitespace="preserve">number of entry to read out</doc>
21997             <type name="guint" c:type="guint"/>
21998           </parameter>
21999           <parameter name="value"
22000                      direction="out"
22001                      caller-allocates="0"
22002                      transfer-ownership="full">
22003             <doc xml:whitespace="preserve">location for the result</doc>
22004             <type name="gdouble" c:type="gdouble*"/>
22005           </parameter>
22006         </parameters>
22007       </method>
22008       <method name="get_float" c:identifier="gst_tag_list_get_float">
22009         <doc xml:whitespace="preserve">Copies the contents for the given tag into the value, merging multiple values
22010 into one if multiple values are associated with the tag.
22011 given list.</doc>
22012         <return-value transfer-ownership="none">
22013           <doc xml:whitespace="preserve">TRUE, if a value was copied, FALSE if the tag didn't exist in the</doc>
22014           <type name="gboolean" c:type="gboolean"/>
22015         </return-value>
22016         <parameters>
22017           <parameter name="tag" transfer-ownership="none">
22018             <doc xml:whitespace="preserve">tag to read out</doc>
22019             <type name="utf8" c:type="gchar*"/>
22020           </parameter>
22021           <parameter name="value"
22022                      direction="out"
22023                      caller-allocates="0"
22024                      transfer-ownership="full">
22025             <doc xml:whitespace="preserve">location for the result</doc>
22026             <type name="gfloat" c:type="gfloat*"/>
22027           </parameter>
22028         </parameters>
22029       </method>
22030       <method name="get_float_index"
22031               c:identifier="gst_tag_list_get_float_index">
22032         <doc xml:whitespace="preserve">Gets the value that is at the given index for the given tag in the given
22033 list.
22034 given list.</doc>
22035         <return-value transfer-ownership="none">
22036           <doc xml:whitespace="preserve">TRUE, if a value was copied, FALSE if the tag didn't exist in the</doc>
22037           <type name="gboolean" c:type="gboolean"/>
22038         </return-value>
22039         <parameters>
22040           <parameter name="tag" transfer-ownership="none">
22041             <doc xml:whitespace="preserve">tag to read out</doc>
22042             <type name="utf8" c:type="gchar*"/>
22043           </parameter>
22044           <parameter name="index" transfer-ownership="none">
22045             <doc xml:whitespace="preserve">number of entry to read out</doc>
22046             <type name="guint" c:type="guint"/>
22047           </parameter>
22048           <parameter name="value"
22049                      direction="out"
22050                      caller-allocates="0"
22051                      transfer-ownership="full">
22052             <doc xml:whitespace="preserve">location for the result</doc>
22053             <type name="gfloat" c:type="gfloat*"/>
22054           </parameter>
22055         </parameters>
22056       </method>
22057       <method name="get_int" c:identifier="gst_tag_list_get_int">
22058         <doc xml:whitespace="preserve">Copies the contents for the given tag into the value, merging multiple values
22059 into one if multiple values are associated with the tag.
22060 given list.</doc>
22061         <return-value transfer-ownership="none">
22062           <doc xml:whitespace="preserve">TRUE, if a value was copied, FALSE if the tag didn't exist in the</doc>
22063           <type name="gboolean" c:type="gboolean"/>
22064         </return-value>
22065         <parameters>
22066           <parameter name="tag" transfer-ownership="none">
22067             <doc xml:whitespace="preserve">tag to read out</doc>
22068             <type name="utf8" c:type="gchar*"/>
22069           </parameter>
22070           <parameter name="value"
22071                      direction="out"
22072                      caller-allocates="0"
22073                      transfer-ownership="full">
22074             <doc xml:whitespace="preserve">location for the result</doc>
22075             <type name="gint" c:type="gint*"/>
22076           </parameter>
22077         </parameters>
22078       </method>
22079       <method name="get_int64" c:identifier="gst_tag_list_get_int64">
22080         <doc xml:whitespace="preserve">Copies the contents for the given tag into the value, merging multiple values
22081 into one if multiple values are associated with the tag.
22082 given list.</doc>
22083         <return-value transfer-ownership="none">
22084           <doc xml:whitespace="preserve">TRUE, if a value was copied, FALSE if the tag didn't exist in the</doc>
22085           <type name="gboolean" c:type="gboolean"/>
22086         </return-value>
22087         <parameters>
22088           <parameter name="tag" transfer-ownership="none">
22089             <doc xml:whitespace="preserve">tag to read out</doc>
22090             <type name="utf8" c:type="gchar*"/>
22091           </parameter>
22092           <parameter name="value"
22093                      direction="out"
22094                      caller-allocates="0"
22095                      transfer-ownership="full">
22096             <doc xml:whitespace="preserve">location for the result</doc>
22097             <type name="gint64" c:type="gint64*"/>
22098           </parameter>
22099         </parameters>
22100       </method>
22101       <method name="get_int64_index"
22102               c:identifier="gst_tag_list_get_int64_index">
22103         <doc xml:whitespace="preserve">Gets the value that is at the given index for the given tag in the given
22104 list.
22105 given list.</doc>
22106         <return-value transfer-ownership="none">
22107           <doc xml:whitespace="preserve">TRUE, if a value was copied, FALSE if the tag didn't exist in the</doc>
22108           <type name="gboolean" c:type="gboolean"/>
22109         </return-value>
22110         <parameters>
22111           <parameter name="tag" transfer-ownership="none">
22112             <doc xml:whitespace="preserve">tag to read out</doc>
22113             <type name="utf8" c:type="gchar*"/>
22114           </parameter>
22115           <parameter name="index" transfer-ownership="none">
22116             <doc xml:whitespace="preserve">number of entry to read out</doc>
22117             <type name="guint" c:type="guint"/>
22118           </parameter>
22119           <parameter name="value"
22120                      direction="out"
22121                      caller-allocates="0"
22122                      transfer-ownership="full">
22123             <doc xml:whitespace="preserve">location for the result</doc>
22124             <type name="gint64" c:type="gint64*"/>
22125           </parameter>
22126         </parameters>
22127       </method>
22128       <method name="get_int_index" c:identifier="gst_tag_list_get_int_index">
22129         <doc xml:whitespace="preserve">Gets the value that is at the given index for the given tag in the given
22130 list.
22131 given list.</doc>
22132         <return-value transfer-ownership="none">
22133           <doc xml:whitespace="preserve">TRUE, if a value was copied, FALSE if the tag didn't exist in the</doc>
22134           <type name="gboolean" c:type="gboolean"/>
22135         </return-value>
22136         <parameters>
22137           <parameter name="tag" transfer-ownership="none">
22138             <doc xml:whitespace="preserve">tag to read out</doc>
22139             <type name="utf8" c:type="gchar*"/>
22140           </parameter>
22141           <parameter name="index" transfer-ownership="none">
22142             <doc xml:whitespace="preserve">number of entry to read out</doc>
22143             <type name="guint" c:type="guint"/>
22144           </parameter>
22145           <parameter name="value"
22146                      direction="out"
22147                      caller-allocates="0"
22148                      transfer-ownership="full">
22149             <doc xml:whitespace="preserve">location for the result</doc>
22150             <type name="gint" c:type="gint*"/>
22151           </parameter>
22152         </parameters>
22153       </method>
22154       <method name="get_long" c:identifier="gst_tag_list_get_long">
22155         <doc xml:whitespace="preserve">Copies the contents for the given tag into the value, merging multiple values
22156 into one if multiple values are associated with the tag.
22157 given list.</doc>
22158         <return-value transfer-ownership="none">
22159           <doc xml:whitespace="preserve">TRUE, if a value was copied, FALSE if the tag didn't exist in the</doc>
22160           <type name="gboolean" c:type="gboolean"/>
22161         </return-value>
22162         <parameters>
22163           <parameter name="tag" transfer-ownership="none">
22164             <doc xml:whitespace="preserve">tag to read out</doc>
22165             <type name="utf8" c:type="gchar*"/>
22166           </parameter>
22167           <parameter name="value"
22168                      direction="out"
22169                      caller-allocates="0"
22170                      transfer-ownership="full">
22171             <doc xml:whitespace="preserve">location for the result</doc>
22172             <type name="glong" c:type="glong*"/>
22173           </parameter>
22174         </parameters>
22175       </method>
22176       <method name="get_long_index" c:identifier="gst_tag_list_get_long_index">
22177         <doc xml:whitespace="preserve">Gets the value that is at the given index for the given tag in the given
22178 list.
22179 given list.</doc>
22180         <return-value transfer-ownership="none">
22181           <doc xml:whitespace="preserve">TRUE, if a value was copied, FALSE if the tag didn't exist in the</doc>
22182           <type name="gboolean" c:type="gboolean"/>
22183         </return-value>
22184         <parameters>
22185           <parameter name="tag" transfer-ownership="none">
22186             <doc xml:whitespace="preserve">tag to read out</doc>
22187             <type name="utf8" c:type="gchar*"/>
22188           </parameter>
22189           <parameter name="index" transfer-ownership="none">
22190             <doc xml:whitespace="preserve">number of entry to read out</doc>
22191             <type name="guint" c:type="guint"/>
22192           </parameter>
22193           <parameter name="value"
22194                      direction="out"
22195                      caller-allocates="0"
22196                      transfer-ownership="full">
22197             <doc xml:whitespace="preserve">location for the result</doc>
22198             <type name="glong" c:type="glong*"/>
22199           </parameter>
22200         </parameters>
22201       </method>
22202       <method name="get_pointer" c:identifier="gst_tag_list_get_pointer">
22203         <doc xml:whitespace="preserve">Copies the contents for the given tag into the value, merging multiple values
22204 into one if multiple values are associated with the tag.
22205 given list.</doc>
22206         <return-value transfer-ownership="none">
22207           <doc xml:whitespace="preserve">TRUE, if a value was copied, FALSE if the tag didn't exist in the</doc>
22208           <type name="gboolean" c:type="gboolean"/>
22209         </return-value>
22210         <parameters>
22211           <parameter name="tag" transfer-ownership="none">
22212             <doc xml:whitespace="preserve">tag to read out</doc>
22213             <type name="utf8" c:type="gchar*"/>
22214           </parameter>
22215           <parameter name="value"
22216                      direction="out"
22217                      caller-allocates="0"
22218                      transfer-ownership="none">
22219             <doc xml:whitespace="preserve">location for the result</doc>
22220             <type name="gpointer" c:type="gpointer*"/>
22221           </parameter>
22222         </parameters>
22223       </method>
22224       <method name="get_pointer_index"
22225               c:identifier="gst_tag_list_get_pointer_index">
22226         <doc xml:whitespace="preserve">Gets the value that is at the given index for the given tag in the given
22227 list.
22228 given list.</doc>
22229         <return-value transfer-ownership="none">
22230           <doc xml:whitespace="preserve">TRUE, if a value was copied, FALSE if the tag didn't exist in the</doc>
22231           <type name="gboolean" c:type="gboolean"/>
22232         </return-value>
22233         <parameters>
22234           <parameter name="tag" transfer-ownership="none">
22235             <doc xml:whitespace="preserve">tag to read out</doc>
22236             <type name="utf8" c:type="gchar*"/>
22237           </parameter>
22238           <parameter name="index" transfer-ownership="none">
22239             <doc xml:whitespace="preserve">number of entry to read out</doc>
22240             <type name="guint" c:type="guint"/>
22241           </parameter>
22242           <parameter name="value"
22243                      direction="out"
22244                      caller-allocates="0"
22245                      transfer-ownership="none">
22246             <doc xml:whitespace="preserve">location for the result</doc>
22247             <type name="gpointer" c:type="gpointer*"/>
22248           </parameter>
22249         </parameters>
22250       </method>
22251       <method name="get_string" c:identifier="gst_tag_list_get_string">
22252         <doc xml:whitespace="preserve">Copies the contents for the given tag into the value, possibly merging
22253 multiple values into one if multiple values are associated with the tag.
22254 Use gst_tag_list_get_string_index (list, tag, 0, value) if you want
22255 to retrieve the first string associated with this tag unmodified.
22256 The resulting string in @value will be in UTF-8 encoding and should be
22257 freed by the caller using g_free when no longer needed. Since 0.10.24 the
22258 returned string is also guaranteed to be non-NULL and non-empty.
22259 given list.</doc>
22260         <return-value transfer-ownership="none">
22261           <doc xml:whitespace="preserve">TRUE, if a value was copied, FALSE if the tag didn't exist in the</doc>
22262           <type name="gboolean" c:type="gboolean"/>
22263         </return-value>
22264         <parameters>
22265           <parameter name="tag" transfer-ownership="none">
22266             <doc xml:whitespace="preserve">tag to read out</doc>
22267             <type name="utf8" c:type="gchar*"/>
22268           </parameter>
22269           <parameter name="value"
22270                      direction="out"
22271                      caller-allocates="0"
22272                      transfer-ownership="full">
22273             <doc xml:whitespace="preserve">location for the result</doc>
22274             <type name="utf8" c:type="gchar**"/>
22275           </parameter>
22276         </parameters>
22277       </method>
22278       <method name="get_string_index"
22279               c:identifier="gst_tag_list_get_string_index">
22280         <doc xml:whitespace="preserve">Gets the value that is at the given index for the given tag in the given
22281 list.
22282 The resulting string in @value will be in UTF-8 encoding and should be
22283 freed by the caller using g_free when no longer needed. Since 0.10.24 the
22284 returned string is also guaranteed to be non-NULL and non-empty.
22285 given list.</doc>
22286         <return-value transfer-ownership="none">
22287           <doc xml:whitespace="preserve">TRUE, if a value was copied, FALSE if the tag didn't exist in the</doc>
22288           <type name="gboolean" c:type="gboolean"/>
22289         </return-value>
22290         <parameters>
22291           <parameter name="tag" transfer-ownership="none">
22292             <doc xml:whitespace="preserve">tag to read out</doc>
22293             <type name="utf8" c:type="gchar*"/>
22294           </parameter>
22295           <parameter name="index" transfer-ownership="none">
22296             <doc xml:whitespace="preserve">number of entry to read out</doc>
22297             <type name="guint" c:type="guint"/>
22298           </parameter>
22299           <parameter name="value"
22300                      direction="out"
22301                      caller-allocates="0"
22302                      transfer-ownership="full">
22303             <doc xml:whitespace="preserve">location for the result</doc>
22304             <type name="utf8" c:type="gchar**"/>
22305           </parameter>
22306         </parameters>
22307       </method>
22308       <method name="get_tag_size" c:identifier="gst_tag_list_get_tag_size">
22309         <doc xml:whitespace="preserve">Checks how many value are stored in this tag list for the given tag.</doc>
22310         <return-value transfer-ownership="none">
22311           <doc xml:whitespace="preserve">The number of tags stored</doc>
22312           <type name="guint" c:type="guint"/>
22313         </return-value>
22314         <parameters>
22315           <parameter name="tag" transfer-ownership="none">
22316             <doc xml:whitespace="preserve">the tag to query</doc>
22317             <type name="utf8" c:type="gchar*"/>
22318           </parameter>
22319         </parameters>
22320       </method>
22321       <method name="get_uchar" c:identifier="gst_tag_list_get_uchar">
22322         <doc xml:whitespace="preserve">Copies the contents for the given tag into the value, merging multiple values
22323 into one if multiple values are associated with the tag.
22324 given list.</doc>
22325         <return-value transfer-ownership="none">
22326           <doc xml:whitespace="preserve">TRUE, if a value was copied, FALSE if the tag didn't exist in the</doc>
22327           <type name="gboolean" c:type="gboolean"/>
22328         </return-value>
22329         <parameters>
22330           <parameter name="tag" transfer-ownership="none">
22331             <doc xml:whitespace="preserve">tag to read out</doc>
22332             <type name="utf8" c:type="gchar*"/>
22333           </parameter>
22334           <parameter name="value"
22335                      direction="out"
22336                      caller-allocates="0"
22337                      transfer-ownership="full">
22338             <doc xml:whitespace="preserve">location for the result</doc>
22339             <type name="guint8" c:type="guchar*"/>
22340           </parameter>
22341         </parameters>
22342       </method>
22343       <method name="get_uchar_index"
22344               c:identifier="gst_tag_list_get_uchar_index">
22345         <doc xml:whitespace="preserve">Gets the value that is at the given index for the given tag in the given
22346 list.
22347 given list.</doc>
22348         <return-value transfer-ownership="none">
22349           <doc xml:whitespace="preserve">TRUE, if a value was copied, FALSE if the tag didn't exist in the</doc>
22350           <type name="gboolean" c:type="gboolean"/>
22351         </return-value>
22352         <parameters>
22353           <parameter name="tag" transfer-ownership="none">
22354             <doc xml:whitespace="preserve">tag to read out</doc>
22355             <type name="utf8" c:type="gchar*"/>
22356           </parameter>
22357           <parameter name="index" transfer-ownership="none">
22358             <doc xml:whitespace="preserve">number of entry to read out</doc>
22359             <type name="guint" c:type="guint"/>
22360           </parameter>
22361           <parameter name="value"
22362                      direction="out"
22363                      caller-allocates="0"
22364                      transfer-ownership="full">
22365             <doc xml:whitespace="preserve">location for the result</doc>
22366             <type name="guint8" c:type="guchar*"/>
22367           </parameter>
22368         </parameters>
22369       </method>
22370       <method name="get_uint" c:identifier="gst_tag_list_get_uint">
22371         <doc xml:whitespace="preserve">Copies the contents for the given tag into the value, merging multiple values
22372 into one if multiple values are associated with the tag.
22373 given list.</doc>
22374         <return-value transfer-ownership="none">
22375           <doc xml:whitespace="preserve">TRUE, if a value was copied, FALSE if the tag didn't exist in the</doc>
22376           <type name="gboolean" c:type="gboolean"/>
22377         </return-value>
22378         <parameters>
22379           <parameter name="tag" transfer-ownership="none">
22380             <doc xml:whitespace="preserve">tag to read out</doc>
22381             <type name="utf8" c:type="gchar*"/>
22382           </parameter>
22383           <parameter name="value"
22384                      direction="out"
22385                      caller-allocates="0"
22386                      transfer-ownership="full">
22387             <doc xml:whitespace="preserve">location for the result</doc>
22388             <type name="guint" c:type="guint*"/>
22389           </parameter>
22390         </parameters>
22391       </method>
22392       <method name="get_uint64" c:identifier="gst_tag_list_get_uint64">
22393         <doc xml:whitespace="preserve">Copies the contents for the given tag into the value, merging multiple values
22394 into one if multiple values are associated with the tag.
22395 given list.</doc>
22396         <return-value transfer-ownership="none">
22397           <doc xml:whitespace="preserve">TRUE, if a value was copied, FALSE if the tag didn't exist in the</doc>
22398           <type name="gboolean" c:type="gboolean"/>
22399         </return-value>
22400         <parameters>
22401           <parameter name="tag" transfer-ownership="none">
22402             <doc xml:whitespace="preserve">tag to read out</doc>
22403             <type name="utf8" c:type="gchar*"/>
22404           </parameter>
22405           <parameter name="value"
22406                      direction="out"
22407                      caller-allocates="0"
22408                      transfer-ownership="full">
22409             <doc xml:whitespace="preserve">location for the result</doc>
22410             <type name="guint64" c:type="guint64*"/>
22411           </parameter>
22412         </parameters>
22413       </method>
22414       <method name="get_uint64_index"
22415               c:identifier="gst_tag_list_get_uint64_index">
22416         <doc xml:whitespace="preserve">Gets the value that is at the given index for the given tag in the given
22417 list.
22418 given list.</doc>
22419         <return-value transfer-ownership="none">
22420           <doc xml:whitespace="preserve">TRUE, if a value was copied, FALSE if the tag didn't exist in the</doc>
22421           <type name="gboolean" c:type="gboolean"/>
22422         </return-value>
22423         <parameters>
22424           <parameter name="tag" transfer-ownership="none">
22425             <doc xml:whitespace="preserve">tag to read out</doc>
22426             <type name="utf8" c:type="gchar*"/>
22427           </parameter>
22428           <parameter name="index" transfer-ownership="none">
22429             <doc xml:whitespace="preserve">number of entry to read out</doc>
22430             <type name="guint" c:type="guint"/>
22431           </parameter>
22432           <parameter name="value"
22433                      direction="out"
22434                      caller-allocates="0"
22435                      transfer-ownership="full">
22436             <doc xml:whitespace="preserve">location for the result</doc>
22437             <type name="guint64" c:type="guint64*"/>
22438           </parameter>
22439         </parameters>
22440       </method>
22441       <method name="get_uint_index" c:identifier="gst_tag_list_get_uint_index">
22442         <doc xml:whitespace="preserve">Gets the value that is at the given index for the given tag in the given
22443 list.
22444 given list.</doc>
22445         <return-value transfer-ownership="none">
22446           <doc xml:whitespace="preserve">TRUE, if a value was copied, FALSE if the tag didn't exist in the</doc>
22447           <type name="gboolean" c:type="gboolean"/>
22448         </return-value>
22449         <parameters>
22450           <parameter name="tag" transfer-ownership="none">
22451             <doc xml:whitespace="preserve">tag to read out</doc>
22452             <type name="utf8" c:type="gchar*"/>
22453           </parameter>
22454           <parameter name="index" transfer-ownership="none">
22455             <doc xml:whitespace="preserve">number of entry to read out</doc>
22456             <type name="guint" c:type="guint"/>
22457           </parameter>
22458           <parameter name="value"
22459                      direction="out"
22460                      caller-allocates="0"
22461                      transfer-ownership="full">
22462             <doc xml:whitespace="preserve">location for the result</doc>
22463             <type name="guint" c:type="guint*"/>
22464           </parameter>
22465         </parameters>
22466       </method>
22467       <method name="get_ulong" c:identifier="gst_tag_list_get_ulong">
22468         <doc xml:whitespace="preserve">Copies the contents for the given tag into the value, merging multiple values
22469 into one if multiple values are associated with the tag.
22470 given list.</doc>
22471         <return-value transfer-ownership="none">
22472           <doc xml:whitespace="preserve">TRUE, if a value was copied, FALSE if the tag didn't exist in the</doc>
22473           <type name="gboolean" c:type="gboolean"/>
22474         </return-value>
22475         <parameters>
22476           <parameter name="tag" transfer-ownership="none">
22477             <doc xml:whitespace="preserve">tag to read out</doc>
22478             <type name="utf8" c:type="gchar*"/>
22479           </parameter>
22480           <parameter name="value"
22481                      direction="out"
22482                      caller-allocates="0"
22483                      transfer-ownership="full">
22484             <doc xml:whitespace="preserve">location for the result</doc>
22485             <type name="gulong" c:type="gulong*"/>
22486           </parameter>
22487         </parameters>
22488       </method>
22489       <method name="get_ulong_index"
22490               c:identifier="gst_tag_list_get_ulong_index">
22491         <doc xml:whitespace="preserve">Gets the value that is at the given index for the given tag in the given
22492 list.
22493 given list.</doc>
22494         <return-value transfer-ownership="none">
22495           <doc xml:whitespace="preserve">TRUE, if a value was copied, FALSE if the tag didn't exist in the</doc>
22496           <type name="gboolean" c:type="gboolean"/>
22497         </return-value>
22498         <parameters>
22499           <parameter name="tag" transfer-ownership="none">
22500             <doc xml:whitespace="preserve">tag to read out</doc>
22501             <type name="utf8" c:type="gchar*"/>
22502           </parameter>
22503           <parameter name="index" transfer-ownership="none">
22504             <doc xml:whitespace="preserve">number of entry to read out</doc>
22505             <type name="guint" c:type="guint"/>
22506           </parameter>
22507           <parameter name="value"
22508                      direction="out"
22509                      caller-allocates="0"
22510                      transfer-ownership="full">
22511             <doc xml:whitespace="preserve">location for the result</doc>
22512             <type name="gulong" c:type="gulong*"/>
22513           </parameter>
22514         </parameters>
22515       </method>
22516       <method name="get_value_index"
22517               c:identifier="gst_tag_list_get_value_index">
22518         <doc xml:whitespace="preserve">Gets the value that is at the given index for the given tag in the given
22519 list.
22520 tag wasn't available or the tag doesn't have as many entries</doc>
22521         <return-value transfer-ownership="none">
22522           <doc xml:whitespace="preserve">The GValue for the specified entry or NULL if the</doc>
22523           <type name="GObject.Value" c:type="GValue*"/>
22524         </return-value>
22525         <parameters>
22526           <parameter name="tag" transfer-ownership="none">
22527             <doc xml:whitespace="preserve">tag to read out</doc>
22528             <type name="utf8" c:type="gchar*"/>
22529           </parameter>
22530           <parameter name="index" transfer-ownership="none">
22531             <doc xml:whitespace="preserve">number of entry to read out</doc>
22532             <type name="guint" c:type="guint"/>
22533           </parameter>
22534         </parameters>
22535       </method>
22536       <method name="insert" c:identifier="gst_tag_list_insert">
22537         <doc xml:whitespace="preserve">Inserts the tags of the @from list into the first list using the given mode.</doc>
22538         <return-value transfer-ownership="none">
22539           <type name="none" c:type="void"/>
22540         </return-value>
22541         <parameters>
22542           <parameter name="from" transfer-ownership="none">
22543             <doc xml:whitespace="preserve">list to merge from</doc>
22544             <type name="TagList" c:type="GstTagList*"/>
22545           </parameter>
22546           <parameter name="mode" transfer-ownership="none">
22547             <doc xml:whitespace="preserve">the mode to use</doc>
22548             <type name="TagMergeMode" c:type="GstTagMergeMode"/>
22549           </parameter>
22550         </parameters>
22551       </method>
22552       <method name="is_empty"
22553               c:identifier="gst_tag_list_is_empty"
22554               version="0.10.11">
22555         <doc xml:whitespace="preserve">Checks if the given taglist is empty.</doc>
22556         <return-value transfer-ownership="none">
22557           <doc xml:whitespace="preserve">TRUE if the taglist is empty, otherwise FALSE.</doc>
22558           <type name="gboolean" c:type="gboolean"/>
22559         </return-value>
22560       </method>
22561       <method name="merge" c:identifier="gst_tag_list_merge">
22562         <doc xml:whitespace="preserve">Merges the two given lists into a new list. If one of the lists is NULL, a
22563 copy of the other is returned. If both lists are NULL, NULL is returned.</doc>
22564         <return-value transfer-ownership="full">
22565           <doc xml:whitespace="preserve">the new list</doc>
22566           <type name="TagList" c:type="GstTagList*"/>
22567         </return-value>
22568         <parameters>
22569           <parameter name="list2" transfer-ownership="none">
22570             <doc xml:whitespace="preserve">second list to merge</doc>
22571             <type name="TagList" c:type="GstTagList*"/>
22572           </parameter>
22573           <parameter name="mode" transfer-ownership="none">
22574             <doc xml:whitespace="preserve">the mode to use</doc>
22575             <type name="TagMergeMode" c:type="GstTagMergeMode"/>
22576           </parameter>
22577         </parameters>
22578       </method>
22579       <method name="peek_string_index"
22580               c:identifier="gst_tag_list_peek_string_index">
22581         <doc xml:whitespace="preserve">Peeks at the value that is at the given index for the given tag in the given
22582 list.
22583 The resulting string in @value will be in UTF-8 encoding and doesn't need
22584 to be freed by the caller. The returned string is also guaranteed to
22585 be non-NULL and non-empty.
22586 given list.</doc>
22587         <return-value transfer-ownership="none">
22588           <doc xml:whitespace="preserve">TRUE, if a value was set, FALSE if the tag didn't exist in the</doc>
22589           <type name="gboolean" c:type="gboolean"/>
22590         </return-value>
22591         <parameters>
22592           <parameter name="tag" transfer-ownership="none">
22593             <doc xml:whitespace="preserve">tag to read out</doc>
22594             <type name="utf8" c:type="gchar*"/>
22595           </parameter>
22596           <parameter name="index" transfer-ownership="none">
22597             <doc xml:whitespace="preserve">number of entry to read out</doc>
22598             <type name="guint" c:type="guint"/>
22599           </parameter>
22600           <parameter name="value"
22601                      direction="out"
22602                      caller-allocates="0"
22603                      transfer-ownership="none">
22604             <doc xml:whitespace="preserve">location for the result</doc>
22605             <type name="utf8" c:type="gchar**"/>
22606           </parameter>
22607         </parameters>
22608       </method>
22609       <method name="remove_tag" c:identifier="gst_tag_list_remove_tag">
22610         <doc xml:whitespace="preserve">Removes the given tag from the taglist.</doc>
22611         <return-value transfer-ownership="none">
22612           <type name="none" c:type="void"/>
22613         </return-value>
22614         <parameters>
22615           <parameter name="tag" transfer-ownership="none">
22616             <doc xml:whitespace="preserve">tag to remove</doc>
22617             <type name="utf8" c:type="gchar*"/>
22618           </parameter>
22619         </parameters>
22620       </method>
22621     </record>
22622     <callback name="TagMergeFunc" c:type="GstTagMergeFunc">
22623       <doc xml:whitespace="preserve">A function for merging multiple values of a tag used when registering
22624 tags.</doc>
22625       <return-value transfer-ownership="none">
22626         <type name="none" c:type="void"/>
22627       </return-value>
22628       <parameters>
22629         <parameter name="dest" transfer-ownership="none">
22630           <doc xml:whitespace="preserve">the destination #GValue</doc>
22631           <type name="GObject.Value" c:type="GValue*"/>
22632         </parameter>
22633         <parameter name="src" transfer-ownership="none">
22634           <doc xml:whitespace="preserve">the source #GValue</doc>
22635           <type name="GObject.Value" c:type="GValue*"/>
22636         </parameter>
22637       </parameters>
22638     </callback>
22639     <enumeration name="TagMergeMode" c:type="GstTagMergeMode">
22640       <doc xml:whitespace="preserve">The different tag merging modes are basically replace, overwrite and append,
22641 already in the element and (B) the ones that are supplied to the element (
22642 e.g. via gst_tag_setter_merge_tags() / gst_tag_setter_add_tags() or a
22643 %GST_EVENT_TAG), how are these tags merged?
22644 In the table below this is shown for the cases that a tag exists in the list
22645 (A) or does not exists (!A) and combinations thereof.
22646 &lt;table frame="all" colsep="1" rowsep="1"&gt;
22647 &lt;title&gt;merge mode&lt;/title&gt;
22648 &lt;tgroup cols='5' align='left'&gt;
22649 &lt;thead&gt;
22650 &lt;row&gt;
22651 &lt;entry&gt;merge mode&lt;/entry&gt;
22652 &lt;entry&gt;A + B&lt;/entry&gt;
22653 &lt;entry&gt;A + !B&lt;/entry&gt;
22654 &lt;entry&gt;!A + B&lt;/entry&gt;
22655 &lt;entry&gt;!A + !B&lt;/entry&gt;
22656 &lt;/row&gt;
22657 &lt;/thead&gt;
22658 &lt;tbody&gt;
22659 &lt;row&gt;
22660 &lt;entry&gt;REPLACE_ALL&lt;/entry&gt;
22661 &lt;entry&gt;B&lt;/entry&gt;
22662 &lt;entry&gt;-&lt;/entry&gt;
22663 &lt;entry&gt;B&lt;/entry&gt;
22664 &lt;entry&gt;-&lt;/entry&gt;
22665 &lt;/row&gt;
22666 &lt;row&gt;
22667 &lt;entry&gt;REPLACE&lt;/entry&gt;
22668 &lt;entry&gt;B&lt;/entry&gt;
22669 &lt;entry&gt;A&lt;/entry&gt;
22670 &lt;entry&gt;B&lt;/entry&gt;
22671 &lt;entry&gt;-&lt;/entry&gt;
22672 &lt;/row&gt;
22673 &lt;row&gt;
22674 &lt;entry&gt;APPEND&lt;/entry&gt;
22675 &lt;entry&gt;A, B&lt;/entry&gt;
22676 &lt;entry&gt;A&lt;/entry&gt;
22677 &lt;entry&gt;B&lt;/entry&gt;
22678 &lt;entry&gt;-&lt;/entry&gt;
22679 &lt;/row&gt;
22680 &lt;row&gt;
22681 &lt;entry&gt;PREPEND&lt;/entry&gt;
22682 &lt;entry&gt;B, A&lt;/entry&gt;
22683 &lt;entry&gt;A&lt;/entry&gt;
22684 &lt;entry&gt;B&lt;/entry&gt;
22685 &lt;entry&gt;-&lt;/entry&gt;
22686 &lt;/row&gt;
22687 &lt;row&gt;
22688 &lt;entry&gt;KEEP&lt;/entry&gt;
22689 &lt;entry&gt;A&lt;/entry&gt;
22690 &lt;entry&gt;A&lt;/entry&gt;
22691 &lt;entry&gt;B&lt;/entry&gt;
22692 &lt;entry&gt;-&lt;/entry&gt;
22693 &lt;/row&gt;
22694 &lt;row&gt;
22695 &lt;entry&gt;KEEP_ALL&lt;/entry&gt;
22696 &lt;entry&gt;A&lt;/entry&gt;
22697 &lt;entry&gt;A&lt;/entry&gt;
22698 &lt;entry&gt;-&lt;/entry&gt;
22699 &lt;entry&gt;-&lt;/entry&gt;
22700 &lt;/row&gt;
22701 &lt;/tbody&gt;
22702 &lt;/tgroup&gt;
22703 &lt;/table&gt;</doc>
22704       <member name="undefined"
22705               value="0"
22706               c:identifier="GST_TAG_MERGE_UNDEFINED"/>
22707       <member name="replace_all"
22708               value="1"
22709               c:identifier="GST_TAG_MERGE_REPLACE_ALL"/>
22710       <member name="replace" value="2" c:identifier="GST_TAG_MERGE_REPLACE"/>
22711       <member name="append" value="3" c:identifier="GST_TAG_MERGE_APPEND"/>
22712       <member name="prepend" value="4" c:identifier="GST_TAG_MERGE_PREPEND"/>
22713       <member name="keep" value="5" c:identifier="GST_TAG_MERGE_KEEP"/>
22714       <member name="keep_all" value="6" c:identifier="GST_TAG_MERGE_KEEP_ALL"/>
22715       <member name="count" value="7" c:identifier="GST_TAG_MERGE_COUNT"/>
22716     </enumeration>
22717     <interface name="TagSetter"
22718                c:symbol-prefix="tag_setter"
22719                c:type="GstTagSetter"
22720                glib:type-name="GstTagSetter"
22721                glib:get-type="gst_tag_setter_get_type">
22722       <doc xml:whitespace="preserve">Element interface that allows setting of media metadata.
22723 Elements that support changing a stream's metadata will implement this
22724 interface. Examples of such elements are 'vorbisenc', 'theoraenc' and
22725 'id3v2mux'.
22726 If you just want to retrieve metadata in your application then all you
22727 need to do is watch for tag messages on your pipeline's bus. This
22728 interface is only for setting metadata, not for extracting it. To set tags
22729 from the application, find tagsetter elements and set tags using e.g.
22730 gst_tag_setter_merge_tags() or gst_tag_setter_add_tags(). Also consider
22731 setting the #GstTagMergeMode that is used for tag events that arrive at the
22732 tagsetter element (default mode is to keep existing tags).
22733 The application should do that before the element goes to %GST_STATE_PAUSED.
22734 Elements implementing the #GstTagSetter interface often have to merge
22735 any tags received from upstream and the tags set by the application via
22736 the interface. This can be done like this:
22737 |[
22738 GstTagMergeMode merge_mode;
22739 const GstTagList *application_tags;
22740 const GstTagList *event_tags;
22741 GstTagSetter *tagsetter;
22742 GstTagList *result;
22743 tagsetter = GST_TAG_SETTER (element);
22744 merge_mode = gst_tag_setter_get_tag_merge_mode (tagsetter);
22745 application_tags = gst_tag_setter_get_tag_list (tagsetter);
22746 event_tags = (const GstTagList *) element-&gt;event_tags;
22747 GST_LOG_OBJECT (tagsetter, "merging tags, merge mode = %d", merge_mode);
22748 result = gst_tag_list_merge (application_tags, event_tags, merge_mode);
22749 ]|
22750 Last reviewed on 2006-05-18 (0.10.6)</doc>
22751       <prerequisite name="Element"/>
22752       <method name="add_tag_valist"
22753               c:identifier="gst_tag_setter_add_tag_valist"
22754               introspectable="0">
22755         <doc xml:whitespace="preserve">Adds the given tag / value pairs on the setter using the given merge mode.
22756 The list must be terminated with NULL.</doc>
22757         <return-value transfer-ownership="none">
22758           <type name="none" c:type="void"/>
22759         </return-value>
22760         <parameters>
22761           <parameter name="mode" transfer-ownership="none">
22762             <doc xml:whitespace="preserve">the mode to use</doc>
22763             <type name="TagMergeMode" c:type="GstTagMergeMode"/>
22764           </parameter>
22765           <parameter name="tag" transfer-ownership="none">
22766             <doc xml:whitespace="preserve">tag to set</doc>
22767             <type name="utf8" c:type="gchar*"/>
22768           </parameter>
22769           <parameter name="var_args" transfer-ownership="none">
22770             <doc xml:whitespace="preserve">tag / value pairs to set</doc>
22771             <type name="va_list" c:type="va_list"/>
22772           </parameter>
22773         </parameters>
22774       </method>
22775       <method name="add_tag_valist_values"
22776               c:identifier="gst_tag_setter_add_tag_valist_values"
22777               introspectable="0">
22778         <doc xml:whitespace="preserve">Adds the given tag / GValue pairs on the setter using the given merge mode.
22779 The list must be terminated with NULL.</doc>
22780         <return-value transfer-ownership="none">
22781           <type name="none" c:type="void"/>
22782         </return-value>
22783         <parameters>
22784           <parameter name="mode" transfer-ownership="none">
22785             <doc xml:whitespace="preserve">the mode to use</doc>
22786             <type name="TagMergeMode" c:type="GstTagMergeMode"/>
22787           </parameter>
22788           <parameter name="tag" transfer-ownership="none">
22789             <doc xml:whitespace="preserve">tag to set</doc>
22790             <type name="utf8" c:type="gchar*"/>
22791           </parameter>
22792           <parameter name="var_args" transfer-ownership="none">
22793             <doc xml:whitespace="preserve">tag / GValue pairs to set</doc>
22794             <type name="va_list" c:type="va_list"/>
22795           </parameter>
22796         </parameters>
22797       </method>
22798       <method name="add_tag_value"
22799               c:identifier="gst_tag_setter_add_tag_value"
22800               version="0.10.24">
22801         <doc xml:whitespace="preserve">Adds the given tag / GValue pair on the setter using the given merge mode.</doc>
22802         <return-value transfer-ownership="none">
22803           <type name="none" c:type="void"/>
22804         </return-value>
22805         <parameters>
22806           <parameter name="mode" transfer-ownership="none">
22807             <doc xml:whitespace="preserve">the mode to use</doc>
22808             <type name="TagMergeMode" c:type="GstTagMergeMode"/>
22809           </parameter>
22810           <parameter name="tag" transfer-ownership="none">
22811             <doc xml:whitespace="preserve">tag to set</doc>
22812             <type name="utf8" c:type="gchar*"/>
22813           </parameter>
22814           <parameter name="value" transfer-ownership="none">
22815             <doc xml:whitespace="preserve">GValue to set for the tag</doc>
22816             <type name="GObject.Value" c:type="GValue*"/>
22817           </parameter>
22818         </parameters>
22819       </method>
22820       <method name="add_tag_values"
22821               c:identifier="gst_tag_setter_add_tag_values"
22822               introspectable="0">
22823         <doc xml:whitespace="preserve">Adds the given tag / GValue pairs on the setter using the given merge mode.
22824 The list must be terminated with NULL.</doc>
22825         <return-value transfer-ownership="none">
22826           <type name="none" c:type="void"/>
22827         </return-value>
22828         <parameters>
22829           <parameter name="mode" transfer-ownership="none">
22830             <doc xml:whitespace="preserve">the mode to use</doc>
22831             <type name="TagMergeMode" c:type="GstTagMergeMode"/>
22832           </parameter>
22833           <parameter name="tag" transfer-ownership="none">
22834             <doc xml:whitespace="preserve">tag to set</doc>
22835             <type name="utf8" c:type="gchar*"/>
22836           </parameter>
22837           <parameter transfer-ownership="none">
22838             <varargs>
22839             </varargs>
22840           </parameter>
22841         </parameters>
22842       </method>
22843       <method name="add_tags"
22844               c:identifier="gst_tag_setter_add_tags"
22845               introspectable="0">
22846         <doc xml:whitespace="preserve">Adds the given tag / value pairs on the setter using the given merge mode.
22847 The list must be terminated with NULL.</doc>
22848         <return-value transfer-ownership="none">
22849           <type name="none" c:type="void"/>
22850         </return-value>
22851         <parameters>
22852           <parameter name="mode" transfer-ownership="none">
22853             <doc xml:whitespace="preserve">the mode to use</doc>
22854             <type name="TagMergeMode" c:type="GstTagMergeMode"/>
22855           </parameter>
22856           <parameter name="tag" transfer-ownership="none">
22857             <doc xml:whitespace="preserve">tag to set</doc>
22858             <type name="utf8" c:type="gchar*"/>
22859           </parameter>
22860           <parameter transfer-ownership="none">
22861             <varargs>
22862             </varargs>
22863           </parameter>
22864         </parameters>
22865       </method>
22866       <method name="get_tag_list" c:identifier="gst_tag_setter_get_tag_list">
22867         <doc xml:whitespace="preserve">Returns the current list of tags the setter uses.  The list should not be
22868 modified or freed.
22869 This function is not thread-safe.
22870 setter or NULL if none is used.</doc>
22871         <return-value transfer-ownership="none">
22872           <doc xml:whitespace="preserve">a current snapshot of the taglist used in the</doc>
22873           <type name="TagList" c:type="GstTagList*"/>
22874         </return-value>
22875       </method>
22876       <method name="get_tag_merge_mode"
22877               c:identifier="gst_tag_setter_get_tag_merge_mode">
22878         <doc xml:whitespace="preserve">Queries the mode by which tags inside the setter are overwritten by tags
22879 from events</doc>
22880         <return-value transfer-ownership="none">
22881           <doc xml:whitespace="preserve">the merge mode used inside the element.</doc>
22882           <type name="TagMergeMode" c:type="GstTagMergeMode"/>
22883         </return-value>
22884       </method>
22885       <method name="merge_tags" c:identifier="gst_tag_setter_merge_tags">
22886         <doc xml:whitespace="preserve">Merges the given list into the setter's list using the given mode.</doc>
22887         <return-value transfer-ownership="none">
22888           <type name="none" c:type="void"/>
22889         </return-value>
22890         <parameters>
22891           <parameter name="list" transfer-ownership="none">
22892             <doc xml:whitespace="preserve">a tag list to merge from</doc>
22893             <type name="TagList" c:type="GstTagList*"/>
22894           </parameter>
22895           <parameter name="mode" transfer-ownership="none">
22896             <doc xml:whitespace="preserve">the mode to merge with</doc>
22897             <type name="TagMergeMode" c:type="GstTagMergeMode"/>
22898           </parameter>
22899         </parameters>
22900       </method>
22901       <method name="reset_tags"
22902               c:identifier="gst_tag_setter_reset_tags"
22903               version="0.10.22">
22904         <doc xml:whitespace="preserve">Reset the internal taglist. Elements should call this from within the
22905 state-change handler.</doc>
22906         <return-value transfer-ownership="none">
22907           <type name="none" c:type="void"/>
22908         </return-value>
22909       </method>
22910       <method name="set_tag_merge_mode"
22911               c:identifier="gst_tag_setter_set_tag_merge_mode">
22912         <doc xml:whitespace="preserve">Sets the given merge mode that is used for adding tags from events to tags
22913 specified by this interface. The default is #GST_TAG_MERGE_KEEP, which keeps
22914 the tags set with this interface and discards tags from events.</doc>
22915         <return-value transfer-ownership="none">
22916           <type name="none" c:type="void"/>
22917         </return-value>
22918         <parameters>
22919           <parameter name="mode" transfer-ownership="none">
22920             <doc xml:whitespace="preserve">The mode with which tags are added</doc>
22921             <type name="TagMergeMode" c:type="GstTagMergeMode"/>
22922           </parameter>
22923         </parameters>
22924       </method>
22925     </interface>
22926     <record name="TagSetterIFace" c:type="GstTagSetterIFace">
22927       <doc xml:whitespace="preserve">#GstTagSetterIFace interface.</doc>
22928       <field name="g_iface" writable="1">
22929         <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
22930       </field>
22931     </record>
22932     <class name="Task"
22933            c:symbol-prefix="task"
22934            c:type="GstTask"
22935            parent="Object"
22936            glib:type-name="GstTask"
22937            glib:get-type="gst_task_get_type"
22938            glib:type-struct="TaskClass">
22939       <doc xml:whitespace="preserve">#GstTask is used by #GstElement and #GstPad to provide the data passing
22940 threads in a #GstPipeline.
22941 A #GstPad will typically start a #GstTask to push or pull data to/from the
22942 peer pads. Most source elements start a #GstTask to push data. In some cases
22943 a demuxer element can start a #GstTask to pull data from a peer element. This
22944 is typically done when the demuxer can perform random access on the upstream
22945 peer element for improved performance.
22946 Although convenience functions exist on #GstPad to start/pause/stop tasks, it
22947 might sometimes be needed to create a #GstTask manually if it is not related to
22948 a #GstPad.
22949 Before the #GstTask can be run, it needs a #GStaticRecMutex that can be set with
22950 gst_task_set_lock().
22951 The task can be started, paused and stopped with gst_task_start(), gst_task_pause()
22952 and gst_task_stop() respectively or with the gst_task_set_state() function.
22953 A #GstTask will repeatedly call the #GstTaskFunction with the user data
22954 that was provided when creating the task with gst_task_create(). While calling
22955 the function it will acquire the provided lock. The provided lock is released
22956 when the task pauses or stops.
22957 Stopping a task with gst_task_stop() will not immediately make sure the task is
22958 not running anymore. Use gst_task_join() to make sure the task is completely
22959 stopped and the thread is stopped.
22960 After creating a #GstTask, use gst_object_unref() to free its resources. This can
22961 only be done it the task is not running anymore.
22962 Task functions can send a #GstMessage to send out-of-band data to the
22963 application. The application can receive messages from the #GstBus in its
22964 mainloop.
22965 For debugging perposes, the task will configure its object name as the thread
22966 name on Linux. Please note that the object name should be configured before the
22967 task is started; changing the object name after the task has been started, has
22968 no effect on the thread name.
22969 Last reviewed on 2010-03-15 (0.10.29)</doc>
22970       <function name="cleanup_all" c:identifier="gst_task_cleanup_all">
22971         <doc xml:whitespace="preserve">Wait for all tasks to be stopped. This is mainly used internally
22972 to ensure proper cleanup of internal data structures in test suites.
22973 MT safe.</doc>
22974         <return-value transfer-ownership="none">
22975           <type name="none" c:type="void"/>
22976         </return-value>
22977       </function>
22978       <function name="create"
22979                 c:identifier="gst_task_create"
22980                 introspectable="0">
22981         <doc xml:whitespace="preserve">Create a new Task that will repeatedly call the provided @func
22982 with @data as a parameter. Typically the task will run in
22983 a new thread.
22984 The function cannot be changed after the task has been created. You
22985 must create a new #GstTask to change the function.
22986 This function will not yet create and start a thread. Use gst_task_start() or
22987 gst_task_pause() to create and start the GThread.
22988 Before the task can be used, a #GStaticRecMutex must be configured using the
22989 gst_task_set_lock() function. This lock will always be acquired while
22990 MT safe.</doc>
22991         <return-value transfer-ownership="full">
22992           <doc xml:whitespace="preserve">A new #GstTask.</doc>
22993           <type name="Task" c:type="GstTask*"/>
22994         </return-value>
22995         <parameters>
22996           <parameter name="func" transfer-ownership="none" closure="1">
22997             <doc xml:whitespace="preserve">The #GstTaskFunction to use</doc>
22998             <type name="TaskFunction" c:type="GstTaskFunction"/>
22999           </parameter>
23000           <parameter name="data" transfer-ownership="none">
23001             <doc xml:whitespace="preserve">User data to pass to @func</doc>
23002             <type name="gpointer" c:type="gpointer"/>
23003           </parameter>
23004         </parameters>
23005       </function>
23006       <method name="get_pool"
23007               c:identifier="gst_task_get_pool"
23008               version="0.10.24">
23009         <doc xml:whitespace="preserve">Get the #GstTaskPool that this task will use for its streaming
23010 threads.
23011 MT safe.
23012 after usage.</doc>
23013         <return-value transfer-ownership="full">
23014           <doc xml:whitespace="preserve">the #GstTaskPool used by @task. gst_object_unref()</doc>
23015           <type name="TaskPool" c:type="GstTaskPool*"/>
23016         </return-value>
23017       </method>
23018       <method name="get_state" c:identifier="gst_task_get_state">
23019         <doc xml:whitespace="preserve">Get the current state of the task.
23020 MT safe.</doc>
23021         <return-value transfer-ownership="none">
23022           <doc xml:whitespace="preserve">The #GstTaskState of the task</doc>
23023           <type name="TaskState" c:type="GstTaskState"/>
23024         </return-value>
23025       </method>
23026       <method name="join" c:identifier="gst_task_join">
23027         <doc xml:whitespace="preserve">Joins @task. After this call, it is safe to unref the task
23028 and clean up the lock set with gst_task_set_lock().
23029 The task will automatically be stopped with this call.
23030 This function cannot be called from within a task function as this
23031 would cause a deadlock. The function will detect this and print a
23032 g_warning.
23033 MT safe.</doc>
23034         <return-value transfer-ownership="none">
23035           <doc xml:whitespace="preserve">%TRUE if the task could be joined.</doc>
23036           <type name="gboolean" c:type="gboolean"/>
23037         </return-value>
23038       </method>
23039       <method name="pause" c:identifier="gst_task_pause">
23040         <doc xml:whitespace="preserve">Pauses @task. This method can also be called on a task in the
23041 stopped state, in which case a thread will be started and will remain
23042 in the paused state. This function does not wait for the task to complete
23043 the paused state.
23044 MT safe.</doc>
23045         <return-value transfer-ownership="none">
23046           <doc xml:whitespace="preserve">%TRUE if the task could be paused.</doc>
23047           <type name="gboolean" c:type="gboolean"/>
23048         </return-value>
23049       </method>
23050       <method name="set_lock" c:identifier="gst_task_set_lock">
23051         <doc xml:whitespace="preserve">Set the mutex used by the task. The mutex will be acquired before
23052 calling the #GstTaskFunction.
23053 This function has to be called before calling gst_task_pause() or
23054 gst_task_start().
23055 MT safe.</doc>
23056         <return-value transfer-ownership="none">
23057           <type name="none" c:type="void"/>
23058         </return-value>
23059         <parameters>
23060           <parameter name="mutex" transfer-ownership="none">
23061             <doc xml:whitespace="preserve">The #GMutex to use</doc>
23062             <type name="GLib.StaticRecMutex" c:type="GStaticRecMutex*"/>
23063           </parameter>
23064         </parameters>
23065       </method>
23066       <method name="set_pool"
23067               c:identifier="gst_task_set_pool"
23068               version="0.10.24">
23069         <doc xml:whitespace="preserve">Set @pool as the new GstTaskPool for @task. Any new streaming threads that
23070 will be created by @task will now use @pool.
23071 MT safe.</doc>
23072         <return-value transfer-ownership="none">
23073           <type name="none" c:type="void"/>
23074         </return-value>
23075         <parameters>
23076           <parameter name="pool" transfer-ownership="none">
23077             <doc xml:whitespace="preserve">a #GstTaskPool</doc>
23078             <type name="TaskPool" c:type="GstTaskPool*"/>
23079           </parameter>
23080         </parameters>
23081       </method>
23082       <method name="set_priority"
23083               c:identifier="gst_task_set_priority"
23084               version="0.10.24">
23085         <doc xml:whitespace="preserve">Changes the priority of @task to @priority.
23086 MT safe.</doc>
23087         <return-value transfer-ownership="none">
23088           <type name="none" c:type="void"/>
23089         </return-value>
23090         <parameters>
23091           <parameter name="priority" transfer-ownership="none">
23092             <doc xml:whitespace="preserve">a new priority for @task</doc>
23093             <type name="GLib.ThreadPriority" c:type="GThreadPriority"/>
23094           </parameter>
23095         </parameters>
23096       </method>
23097       <method name="set_state"
23098               c:identifier="gst_task_set_state"
23099               version="0.10.24">
23100         <doc xml:whitespace="preserve">Sets the state of @task to @state.
23101 The @task must have a lock associated with it using
23102 gst_task_set_lock() when going to GST_TASK_STARTED or GST_TASK_PAUSED or
23103 this function will return %FALSE.
23104 MT safe.</doc>
23105         <return-value transfer-ownership="none">
23106           <doc xml:whitespace="preserve">%TRUE if the state could be changed.</doc>
23107           <type name="gboolean" c:type="gboolean"/>
23108         </return-value>
23109         <parameters>
23110           <parameter name="state" transfer-ownership="none">
23111             <doc xml:whitespace="preserve">the new task state</doc>
23112             <type name="TaskState" c:type="GstTaskState"/>
23113           </parameter>
23114         </parameters>
23115       </method>
23116       <method name="set_thread_callbacks"
23117               c:identifier="gst_task_set_thread_callbacks"
23118               version="0.10.24">
23119         <doc xml:whitespace="preserve">Set callbacks which will be executed when a new thread is needed, the thread
23120 function is entered and left and when the thread is joined.
23121 By default a thread for @task will be created from a default thread pool.
23122 Objects can use custom GThreads or can perform additional configuration of
23123 the threads (such as changing the thread priority) by installing callbacks.
23124 MT safe.</doc>
23125         <return-value transfer-ownership="none">
23126           <type name="none" c:type="void"/>
23127         </return-value>
23128         <parameters>
23129           <parameter name="callbacks" transfer-ownership="none">
23130             <doc xml:whitespace="preserve">a #GstTaskThreadCallbacks pointer</doc>
23131             <type name="TaskThreadCallbacks" c:type="GstTaskThreadCallbacks*"/>
23132           </parameter>
23133           <parameter name="user_data" transfer-ownership="none">
23134             <doc xml:whitespace="preserve">user data passed to the callbacks</doc>
23135             <type name="gpointer" c:type="gpointer"/>
23136           </parameter>
23137           <parameter name="notify" transfer-ownership="none" scope="async">
23138             <doc xml:whitespace="preserve">called when @user_data is no longer referenced</doc>
23139             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
23140           </parameter>
23141         </parameters>
23142       </method>
23143       <method name="start" c:identifier="gst_task_start">
23144         <doc xml:whitespace="preserve">Starts @task. The @task must have a lock associated with it using
23145 gst_task_set_lock() or this function will return %FALSE.
23146 MT safe.</doc>
23147         <return-value transfer-ownership="none">
23148           <doc xml:whitespace="preserve">%TRUE if the task could be started.</doc>
23149           <type name="gboolean" c:type="gboolean"/>
23150         </return-value>
23151       </method>
23152       <method name="stop" c:identifier="gst_task_stop">
23153         <doc xml:whitespace="preserve">Stops @task. This method merely schedules the task to stop and
23154 will not wait for the task to have completely stopped. Use
23155 gst_task_join() to stop and wait for completion.
23156 MT safe.</doc>
23157         <return-value transfer-ownership="none">
23158           <doc xml:whitespace="preserve">%TRUE if the task could be stopped.</doc>
23159           <type name="gboolean" c:type="gboolean"/>
23160         </return-value>
23161       </method>
23162       <field name="object">
23163         <type name="Object" c:type="GstObject"/>
23164       </field>
23165       <field name="state">
23166         <type name="TaskState" c:type="GstTaskState"/>
23167       </field>
23168       <field name="cond">
23169         <type name="GLib.Cond" c:type="GCond*"/>
23170       </field>
23171       <field name="lock">
23172         <type name="GLib.StaticRecMutex" c:type="GStaticRecMutex*"/>
23173       </field>
23174       <field name="func">
23175         <type name="TaskFunction" c:type="GstTaskFunction"/>
23176       </field>
23177       <field name="data">
23178         <type name="gpointer" c:type="gpointer"/>
23179       </field>
23180       <field name="running">
23181         <type name="gboolean" c:type="gboolean"/>
23182       </field>
23183       <union name="abidata" c:type="abidata">
23184         <record name="ABI" c:type="ABI">
23185           <field name="thread" writable="1">
23186             <type name="GLib.Thread" c:type="GThread*"/>
23187           </field>
23188         </record>
23189         <field name="_gst_reserved" writable="1">
23190           <array zero-terminated="0" c:type="gpointer" fixed-size="3">
23191             <type name="gpointer" c:type="gpointer"/>
23192           </array>
23193         </field>
23194       </union>
23195       <field name="priv">
23196         <type name="TaskPrivate" c:type="GstTaskPrivate*"/>
23197       </field>
23198     </class>
23199     <record name="TaskClass"
23200             c:type="GstTaskClass"
23201             glib:is-gtype-struct-for="Task">
23202       <field name="parent_class">
23203         <type name="ObjectClass" c:type="GstObjectClass"/>
23204       </field>
23205       <field name="pool" readable="0" private="1">
23206         <type name="TaskPool" c:type="GstTaskPool*"/>
23207       </field>
23208       <field name="_gst_reserved" readable="0" private="1">
23209         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
23210           <type name="gpointer" c:type="gpointer"/>
23211         </array>
23212       </field>
23213     </record>
23214     <callback name="TaskFunction" c:type="GstTaskFunction">
23215       <doc xml:whitespace="preserve">A function that will repeatedly be called in the thread created by
23216 a #GstTask.</doc>
23217       <return-value transfer-ownership="none">
23218         <type name="none" c:type="void"/>
23219       </return-value>
23220       <parameters>
23221         <parameter name="data" transfer-ownership="none">
23222           <doc xml:whitespace="preserve">user data passed to the function</doc>
23223           <type name="gpointer" c:type="void*"/>
23224         </parameter>
23225       </parameters>
23226     </callback>
23227     <class name="TaskPool"
23228            c:symbol-prefix="task_pool"
23229            c:type="GstTaskPool"
23230            parent="Object"
23231            glib:type-name="GstTaskPool"
23232            glib:get-type="gst_task_pool_get_type"
23233            glib:type-struct="TaskPoolClass">
23234       <doc xml:whitespace="preserve">This object provides an abstraction for creating threads. The default
23235 implementation uses a regular GThreadPool to start tasks.
23236 Subclasses can be made to create custom threads.
23237 Last reviewed on 2009-04-23 (0.10.24)</doc>
23238       <constructor name="new"
23239                    c:identifier="gst_task_pool_new"
23240                    version="0.10.24">
23241         <doc xml:whitespace="preserve">Create a new default task pool. The default task pool will use a regular
23242 GThreadPool for threads.</doc>
23243         <return-value transfer-ownership="full">
23244           <doc xml:whitespace="preserve">a new #GstTaskPool. gst_object_unref() after usage.</doc>
23245           <type name="TaskPool" c:type="GstTaskPool*"/>
23246         </return-value>
23247       </constructor>
23248       <virtual-method name="cleanup" invoker="cleanup" version="0.10.24">
23249         <doc xml:whitespace="preserve">Wait for all tasks to be stopped. This is mainly used internally
23250 to ensure proper cleanup of internal data structures in test suites.
23251 MT safe.</doc>
23252         <return-value transfer-ownership="none">
23253           <type name="none" c:type="void"/>
23254         </return-value>
23255       </virtual-method>
23256       <virtual-method name="join" invoker="join" version="0.10.24">
23257         <doc xml:whitespace="preserve">Join a task and/or return it to the pool. @id is the id obtained from 
23258 gst_task_pool_push().</doc>
23259         <return-value transfer-ownership="none">
23260           <type name="none" c:type="void"/>
23261         </return-value>
23262         <parameters>
23263           <parameter name="id" transfer-ownership="none">
23264             <doc xml:whitespace="preserve">the id</doc>
23265             <type name="gpointer" c:type="gpointer"/>
23266           </parameter>
23267         </parameters>
23268       </virtual-method>
23269       <virtual-method name="prepare"
23270                       invoker="prepare"
23271                       version="0.10.24"
23272                       throws="1">
23273         <doc xml:whitespace="preserve">Prepare the taskpool for accepting gst_task_pool_push() operations.
23274 MT safe.</doc>
23275         <return-value transfer-ownership="none">
23276           <type name="none" c:type="void"/>
23277         </return-value>
23278       </virtual-method>
23279       <virtual-method name="push"
23280                       invoker="push"
23281                       version="0.10.24"
23282                       introspectable="0"
23283                       throws="1">
23284         <doc xml:whitespace="preserve">Start the execution of a new thread from @pool.
23285 function. This pointer can be NULL, you must check @error to detect
23286 errors.</doc>
23287         <return-value>
23288           <doc xml:whitespace="preserve">a pointer that should be used for the gst_task_pool_join</doc>
23289           <type name="gpointer" c:type="gpointer"/>
23290         </return-value>
23291         <parameters>
23292           <parameter name="func" transfer-ownership="none" closure="1">
23293             <doc xml:whitespace="preserve">the function to call</doc>
23294             <type name="TaskPoolFunction" c:type="GstTaskPoolFunction"/>
23295           </parameter>
23296           <parameter name="user_data" transfer-ownership="none" closure="1">
23297             <doc xml:whitespace="preserve">data to pass to @func</doc>
23298             <type name="gpointer" c:type="gpointer"/>
23299           </parameter>
23300         </parameters>
23301       </virtual-method>
23302       <method name="cleanup"
23303               c:identifier="gst_task_pool_cleanup"
23304               version="0.10.24">
23305         <doc xml:whitespace="preserve">Wait for all tasks to be stopped. This is mainly used internally
23306 to ensure proper cleanup of internal data structures in test suites.
23307 MT safe.</doc>
23308         <return-value transfer-ownership="none">
23309           <type name="none" c:type="void"/>
23310         </return-value>
23311       </method>
23312       <method name="join" c:identifier="gst_task_pool_join" version="0.10.24">
23313         <doc xml:whitespace="preserve">Join a task and/or return it to the pool. @id is the id obtained from 
23314 gst_task_pool_push().</doc>
23315         <return-value transfer-ownership="none">
23316           <type name="none" c:type="void"/>
23317         </return-value>
23318         <parameters>
23319           <parameter name="id" transfer-ownership="none">
23320             <doc xml:whitespace="preserve">the id</doc>
23321             <type name="gpointer" c:type="gpointer"/>
23322           </parameter>
23323         </parameters>
23324       </method>
23325       <method name="prepare"
23326               c:identifier="gst_task_pool_prepare"
23327               version="0.10.24"
23328               throws="1">
23329         <doc xml:whitespace="preserve">Prepare the taskpool for accepting gst_task_pool_push() operations.
23330 MT safe.</doc>
23331         <return-value transfer-ownership="none">
23332           <type name="none" c:type="void"/>
23333         </return-value>
23334       </method>
23335       <method name="push"
23336               c:identifier="gst_task_pool_push"
23337               version="0.10.24"
23338               introspectable="0"
23339               throws="1">
23340         <doc xml:whitespace="preserve">Start the execution of a new thread from @pool.
23341 function. This pointer can be NULL, you must check @error to detect
23342 errors.</doc>
23343         <return-value>
23344           <doc xml:whitespace="preserve">a pointer that should be used for the gst_task_pool_join</doc>
23345           <type name="gpointer" c:type="gpointer"/>
23346         </return-value>
23347         <parameters>
23348           <parameter name="func" transfer-ownership="none" closure="1">
23349             <doc xml:whitespace="preserve">the function to call</doc>
23350             <type name="TaskPoolFunction" c:type="GstTaskPoolFunction"/>
23351           </parameter>
23352           <parameter name="user_data" transfer-ownership="none">
23353             <doc xml:whitespace="preserve">data to pass to @func</doc>
23354             <type name="gpointer" c:type="gpointer"/>
23355           </parameter>
23356         </parameters>
23357       </method>
23358       <field name="object">
23359         <type name="Object" c:type="GstObject"/>
23360       </field>
23361       <field name="pool" readable="0" private="1">
23362         <type name="GLib.ThreadPool" c:type="GThreadPool*"/>
23363       </field>
23364       <field name="_gst_reserved" readable="0" private="1">
23365         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
23366           <type name="gpointer" c:type="gpointer"/>
23367         </array>
23368       </field>
23369     </class>
23370     <record name="TaskPoolClass"
23371             c:type="GstTaskPoolClass"
23372             glib:is-gtype-struct-for="TaskPool">
23373       <doc xml:whitespace="preserve">The #GstTaskPoolClass object.</doc>
23374       <field name="parent_class">
23375         <type name="ObjectClass" c:type="GstObjectClass"/>
23376       </field>
23377       <field name="prepare">
23378         <callback name="prepare" throws="1">
23379           <return-value transfer-ownership="none">
23380             <type name="none" c:type="void"/>
23381           </return-value>
23382           <parameters>
23383             <parameter name="pool" transfer-ownership="none">
23384               <type name="TaskPool" c:type="GstTaskPool*"/>
23385             </parameter>
23386           </parameters>
23387         </callback>
23388       </field>
23389       <field name="cleanup">
23390         <callback name="cleanup">
23391           <return-value transfer-ownership="none">
23392             <type name="none" c:type="void"/>
23393           </return-value>
23394           <parameters>
23395             <parameter name="pool" transfer-ownership="none">
23396               <type name="TaskPool" c:type="GstTaskPool*"/>
23397             </parameter>
23398           </parameters>
23399         </callback>
23400       </field>
23401       <field name="push" introspectable="0">
23402         <callback name="push" introspectable="0" throws="1">
23403           <return-value>
23404             <doc xml:whitespace="preserve">a pointer that should be used for the gst_task_pool_join</doc>
23405             <type name="gpointer" c:type="gpointer"/>
23406           </return-value>
23407           <parameters>
23408             <parameter name="pool" transfer-ownership="none">
23409               <type name="TaskPool" c:type="GstTaskPool*"/>
23410             </parameter>
23411             <parameter name="func" transfer-ownership="none" closure="2">
23412               <doc xml:whitespace="preserve">the function to call</doc>
23413               <type name="TaskPoolFunction" c:type="GstTaskPoolFunction"/>
23414             </parameter>
23415             <parameter name="user_data" transfer-ownership="none" closure="2">
23416               <doc xml:whitespace="preserve">data to pass to @func</doc>
23417               <type name="gpointer" c:type="gpointer"/>
23418             </parameter>
23419           </parameters>
23420         </callback>
23421       </field>
23422       <field name="join">
23423         <callback name="join">
23424           <return-value transfer-ownership="none">
23425             <type name="none" c:type="void"/>
23426           </return-value>
23427           <parameters>
23428             <parameter name="pool" transfer-ownership="none">
23429               <type name="TaskPool" c:type="GstTaskPool*"/>
23430             </parameter>
23431             <parameter name="id" transfer-ownership="none">
23432               <doc xml:whitespace="preserve">the id</doc>
23433               <type name="gpointer" c:type="gpointer"/>
23434             </parameter>
23435           </parameters>
23436         </callback>
23437       </field>
23438       <field name="_gst_reserved" readable="0" private="1">
23439         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
23440           <type name="gpointer" c:type="gpointer"/>
23441         </array>
23442       </field>
23443     </record>
23444     <callback name="TaskPoolFunction"
23445               c:type="GstTaskPoolFunction"
23446               version="0.10.24">
23447       <doc xml:whitespace="preserve">Task function, see gst_task_pool_push().</doc>
23448       <return-value transfer-ownership="none">
23449         <type name="none" c:type="void"/>
23450       </return-value>
23451       <parameters>
23452         <parameter name="data" transfer-ownership="none">
23453           <doc xml:whitespace="preserve">user data for the task function</doc>
23454           <type name="gpointer" c:type="void*"/>
23455         </parameter>
23456       </parameters>
23457     </callback>
23458     <record name="TaskPrivate" c:type="GstTaskPrivate" disguised="1">
23459     </record>
23460     <enumeration name="TaskState" c:type="GstTaskState">
23461       <doc xml:whitespace="preserve">The different states a task can be in</doc>
23462       <member name="started" value="0" c:identifier="GST_TASK_STARTED"/>
23463       <member name="stopped" value="1" c:identifier="GST_TASK_STOPPED"/>
23464       <member name="paused" value="2" c:identifier="GST_TASK_PAUSED"/>
23465     </enumeration>
23466     <record name="TaskThreadCallbacks"
23467             c:type="GstTaskThreadCallbacks"
23468             version="0.10.24">
23469       <doc xml:whitespace="preserve">Custom GstTask thread callback functions that can be installed.</doc>
23470       <field name="enter_thread">
23471         <callback name="enter_thread">
23472           <return-value transfer-ownership="none">
23473             <type name="none" c:type="void"/>
23474           </return-value>
23475           <parameters>
23476             <parameter name="task" transfer-ownership="none">
23477               <type name="Task" c:type="GstTask*"/>
23478             </parameter>
23479             <parameter name="thread" transfer-ownership="none">
23480               <type name="GLib.Thread" c:type="GThread*"/>
23481             </parameter>
23482             <parameter name="user_data" transfer-ownership="none" closure="2">
23483               <type name="gpointer" c:type="gpointer"/>
23484             </parameter>
23485           </parameters>
23486         </callback>
23487       </field>
23488       <field name="leave_thread">
23489         <callback name="leave_thread">
23490           <return-value transfer-ownership="none">
23491             <type name="none" c:type="void"/>
23492           </return-value>
23493           <parameters>
23494             <parameter name="task" transfer-ownership="none">
23495               <type name="Task" c:type="GstTask*"/>
23496             </parameter>
23497             <parameter name="thread" transfer-ownership="none">
23498               <type name="GLib.Thread" c:type="GThread*"/>
23499             </parameter>
23500             <parameter name="user_data" transfer-ownership="none" closure="2">
23501               <type name="gpointer" c:type="gpointer"/>
23502             </parameter>
23503           </parameters>
23504         </callback>
23505       </field>
23506       <field name="_gst_reserved" readable="0" private="1">
23507         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
23508           <type name="gpointer" c:type="gpointer"/>
23509         </array>
23510       </field>
23511     </record>
23512     <record name="Trace" c:type="GstTrace">
23513       <doc xml:whitespace="preserve">Traces allows to track object allocation. They provide a instance counter per
23514 #GType. The counter is incremented for each object allocated and decremented
23515 it when it's freed.
23516 &lt;example&gt;
23517 &lt;title&gt;Tracing object instances&lt;/title&gt;
23518 &lt;programlisting&gt;
23519 // trace un-freed object instances
23520 gst_alloc_trace_set_flags_all (GST_ALLOC_TRACE_LIVE);
23521 if (!gst_alloc_trace_available ()) {
23522 g_warning ("Trace not available (recompile with trace enabled).");
23523 }
23524 gst_alloc_trace_print_live ();
23525 // do something here
23526 gst_alloc_trace_print_live ();
23527 &lt;/programlisting&gt;
23528 &lt;/example&gt;
23529 Last reviewed on 2005-11-21 (0.9.5)</doc>
23530       <field name="filename" readable="0" private="1">
23531         <type name="utf8" c:type="gchar*"/>
23532       </field>
23533       <field name="fd" readable="0" private="1">
23534         <type name="gint" c:type="int"/>
23535       </field>
23536       <field name="buf" readable="0" private="1">
23537         <type name="TraceEntry" c:type="GstTraceEntry*"/>
23538       </field>
23539       <field name="bufsize" readable="0" private="1">
23540         <type name="gint" c:type="gint"/>
23541       </field>
23542       <field name="bufoffset" readable="0" private="1">
23543         <type name="gint" c:type="gint"/>
23544       </field>
23545       <method name="destroy" c:identifier="gst_trace_destroy">
23546         <doc xml:whitespace="preserve">Flush an close the previously allocated @trace.</doc>
23547         <return-value transfer-ownership="none">
23548           <type name="none" c:type="void"/>
23549         </return-value>
23550       </method>
23551       <method name="flush" c:identifier="gst_trace_flush">
23552         <doc xml:whitespace="preserve">Flush any pending trace entries in @trace to the trace file.
23553 flushed.</doc>
23554         <return-value transfer-ownership="none">
23555           <type name="none" c:type="void"/>
23556         </return-value>
23557       </method>
23558       <method name="set_default" c:identifier="gst_trace_set_default">
23559         <doc xml:whitespace="preserve">Set the default #GstTrace to @trace.</doc>
23560         <return-value transfer-ownership="none">
23561           <type name="none" c:type="void"/>
23562         </return-value>
23563       </method>
23564       <method name="text_flush" c:identifier="gst_trace_text_flush">
23565         <doc xml:whitespace="preserve">Flush any pending trace entries in @trace to the trace file,
23566 formatted as a text line with timestamp and sequence numbers.
23567 flushed.</doc>
23568         <return-value transfer-ownership="none">
23569           <type name="none" c:type="void"/>
23570         </return-value>
23571       </method>
23572     </record>
23573     <record name="TraceEntry" c:type="GstTraceEntry">
23574       <field name="timestamp" writable="1">
23575         <type name="gint64" c:type="gint64"/>
23576       </field>
23577       <field name="sequence" writable="1">
23578         <type name="guint32" c:type="guint32"/>
23579       </field>
23580       <field name="data" writable="1">
23581         <type name="guint32" c:type="guint32"/>
23582       </field>
23583       <field name="message" writable="1">
23584         <array zero-terminated="0" c:type="gchar" fixed-size="112">
23585           <type name="gchar" c:type="gchar"/>
23586         </array>
23587       </field>
23588     </record>
23589     <record name="TypeFind" c:type="GstTypeFind">
23590       <doc xml:whitespace="preserve">The following functions allow you to detect the media type of an unknown
23591 stream.
23592 Last reviewed on 2005-11-09 (0.9.4)</doc>
23593       <field name="peek">
23594         <callback name="peek">
23595           <return-value transfer-ownership="none">
23596             <type name="guint8" c:type="guint8*"/>
23597           </return-value>
23598           <parameters>
23599             <parameter name="data" transfer-ownership="none">
23600               <type name="gpointer" c:type="gpointer"/>
23601             </parameter>
23602             <parameter name="offset" transfer-ownership="none">
23603               <type name="gint64" c:type="gint64"/>
23604             </parameter>
23605             <parameter name="size" transfer-ownership="none">
23606               <type name="guint" c:type="guint"/>
23607             </parameter>
23608           </parameters>
23609         </callback>
23610       </field>
23611       <field name="suggest">
23612         <callback name="suggest">
23613           <return-value transfer-ownership="none">
23614             <type name="none" c:type="void"/>
23615           </return-value>
23616           <parameters>
23617             <parameter name="data" transfer-ownership="none">
23618               <type name="gpointer" c:type="gpointer"/>
23619             </parameter>
23620             <parameter name="probability" transfer-ownership="none">
23621               <type name="guint" c:type="guint"/>
23622             </parameter>
23623             <parameter name="caps" transfer-ownership="none">
23624               <type name="Caps" c:type="GstCaps*"/>
23625             </parameter>
23626           </parameters>
23627         </callback>
23628       </field>
23629       <field name="data" writable="1">
23630         <type name="gpointer" c:type="gpointer"/>
23631       </field>
23632       <field name="get_length">
23633         <callback name="get_length">
23634           <return-value transfer-ownership="none">
23635             <type name="guint64" c:type="guint64"/>
23636           </return-value>
23637           <parameters>
23638             <parameter name="data" transfer-ownership="none">
23639               <type name="gpointer" c:type="gpointer"/>
23640             </parameter>
23641           </parameters>
23642         </callback>
23643       </field>
23644       <field name="_gst_reserved" readable="0" private="1">
23645         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
23646           <type name="gpointer" c:type="gpointer"/>
23647         </array>
23648       </field>
23649       <method name="get_length" c:identifier="gst_type_find_get_length">
23650         <doc xml:whitespace="preserve">Get the length of the data stream.</doc>
23651         <return-value transfer-ownership="none">
23652           <doc xml:whitespace="preserve">The length of the data stream, or 0 if it is not available.</doc>
23653           <type name="guint64" c:type="guint64"/>
23654         </return-value>
23655       </method>
23656       <method name="peek" c:identifier="gst_type_find_peek">
23657         <doc xml:whitespace="preserve">Returns the @size bytes of the stream to identify beginning at offset. If
23658 offset is a positive number, the offset is relative to the beginning of the
23659 stream, if offset is a negative number the offset is relative to the end of
23660 the stream. The returned memory is valid until the typefinding function
23661 returns and must not be freed.
23662 if that data is not available.</doc>
23663         <return-value transfer-ownership="none">
23664           <doc xml:whitespace="preserve">the requested data, or NULL</doc>
23665           <array length="1" c:type="guint8*">
23666             <type name="guint8" c:type="guint8"/>
23667           </array>
23668         </return-value>
23669         <parameters>
23670           <parameter name="offset" transfer-ownership="none">
23671             <doc xml:whitespace="preserve">The offset</doc>
23672             <type name="gint64" c:type="gint64"/>
23673           </parameter>
23674           <parameter name="size"
23675                      direction="out"
23676                      caller-allocates="0"
23677                      transfer-ownership="full">
23678             <doc xml:whitespace="preserve">The number of bytes to return</doc>
23679             <type name="guint" c:type="guint"/>
23680           </parameter>
23681         </parameters>
23682       </method>
23683       <method name="suggest" c:identifier="gst_type_find_suggest">
23684         <doc xml:whitespace="preserve">If a #GstTypeFindFunction calls this function it suggests the caps with the
23685 given probability. A #GstTypeFindFunction may supply different suggestions
23686 in one call.
23687 It is up to the caller of the #GstTypeFindFunction to interpret these values.</doc>
23688         <return-value transfer-ownership="none">
23689           <type name="none" c:type="void"/>
23690         </return-value>
23691         <parameters>
23692           <parameter name="probability" transfer-ownership="none">
23693             <doc xml:whitespace="preserve">The probability in percent that the suggestion is right</doc>
23694             <type name="guint" c:type="guint"/>
23695           </parameter>
23696           <parameter name="caps" transfer-ownership="none">
23697             <doc xml:whitespace="preserve">The fixed #GstCaps to suggest</doc>
23698             <type name="Caps" c:type="GstCaps*"/>
23699           </parameter>
23700         </parameters>
23701       </method>
23702       <method name="suggest_simple"
23703               c:identifier="gst_type_find_suggest_simple"
23704               version="0.10.20"
23705               introspectable="0">
23706         <doc xml:whitespace="preserve">If a #GstTypeFindFunction calls this function it suggests the caps with the
23707 given probability. A #GstTypeFindFunction may supply different suggestions
23708 in one call. It is up to the caller of the #GstTypeFindFunction to interpret
23709 these values.
23710 This function is similar to gst_type_find_suggest(), only that instead of
23711 passing a #GstCaps argument you can create the caps on the fly in the same
23712 way as you can with gst_caps_new_simple().
23713 Make sure you terminate the list of arguments with a NULL argument and that
23714 the values passed have the correct type (in terms of width in bytes when
23715 passed to the vararg function - this applies particularly to gdouble and
23716 guint64 arguments).</doc>
23717         <return-value transfer-ownership="none">
23718           <type name="none" c:type="void"/>
23719         </return-value>
23720         <parameters>
23721           <parameter name="probability" transfer-ownership="none">
23722             <doc xml:whitespace="preserve">The probability in percent that the suggestion is right</doc>
23723             <type name="guint" c:type="guint"/>
23724           </parameter>
23725           <parameter name="media_type" transfer-ownership="none">
23726             <doc xml:whitespace="preserve">the media type of the suggested caps</doc>
23727             <type name="utf8" c:type="char*"/>
23728           </parameter>
23729           <parameter name="fieldname" transfer-ownership="none">
23730             <doc xml:whitespace="preserve">first field of the suggested caps, or NULL</doc>
23731             <type name="utf8" c:type="char*"/>
23732           </parameter>
23733           <parameter transfer-ownership="none">
23734             <varargs>
23735             </varargs>
23736           </parameter>
23737         </parameters>
23738       </method>
23739     </record>
23740     <class name="TypeFindFactory"
23741            c:symbol-prefix="type_find_factory"
23742            c:type="GstTypeFindFactory"
23743            parent="PluginFeature"
23744            glib:type-name="GstTypeFindFactory"
23745            glib:get-type="gst_type_find_factory_get_type"
23746            glib:type-struct="TypeFindFactoryClass">
23747       <doc xml:whitespace="preserve">These functions allow querying informations about registered typefind
23748 functions. How to create and register these functions is described in
23749 the section &lt;link linkend="gstreamer-Writing-typefind-functions"&gt;
23750 "Writing typefind functions"&lt;/link&gt;.
23751 &lt;example&gt;
23752 &lt;title&gt;how to write a simple typefinder&lt;/title&gt;
23753 &lt;programlisting&gt;
23754 typedef struct {
23755 guint8 *data;
23756 guint size;
23757 guint probability;
23758 GstCaps *data;
23759 } MyTypeFind;
23760 static void
23761 my_peek (gpointer data, gint64 offset, guint size)
23762 {
23763 MyTypeFind *find = (MyTypeFind *) data;
23764 if (offset &amp;gt;= 0 &amp;amp;&amp;amp; offset + size &amp;lt;= find-&gt;size) {
23765 return find-&gt;data + offset;
23766 }
23767 return NULL;
23768 }
23769 static void
23770 my_suggest (gpointer data, guint probability, GstCaps *caps)
23771 {
23772 MyTypeFind *find = (MyTypeFind *) data;
23773 if (probability &amp;gt; find-&gt;probability) {
23774 find-&gt;probability = probability;
23775 gst_caps_replace (&amp;amp;find-&gt;caps, caps);
23776 }
23777 }
23778 static GstCaps *
23779 find_type (guint8 *data, guint size)
23780 {
23781 GList *walk, *type_list;
23782 MyTypeFind find = {data, size, 0, NULL};
23783 GstTypeFind gst_find = {my_peek, my_suggest, &amp;amp;find, };
23784 walk = type_list = gst_type_find_factory_get_list ();
23785 while (walk) {
23786 GstTypeFindFactory *factory = GST_TYPE_FIND_FACTORY (walk-&gt;data);
23787 walk = g_list_next (walk)
23788 gst_type_find_factory_call_function (factory, &amp;amp;gst_find);
23789 }
23790 g_list_free (type_list);
23791 return find.caps;
23792 };
23793 &lt;/programlisting&gt;
23794 &lt;/example&gt;
23795 The above example shows how to write a very simple typefinder that
23796 identifies the given data. You can get quite a bit more complicated than
23797 that though.
23798 Last reviewed on 2005-11-09 (0.9.4)</doc>
23799       <function name="get_list" c:identifier="gst_type_find_factory_get_list">
23800         <doc xml:whitespace="preserve">Gets the list of all registered typefind factories. You must free the
23801 list using gst_plugin_feature_list_free().
23802 The returned factories are sorted by highest rank first, and then by
23803 factory name. (behaviour change since 0.10.26)
23804 registered #GstTypeFindFactory.</doc>
23805         <return-value transfer-ownership="full">
23806           <doc xml:whitespace="preserve">the list of all</doc>
23807           <type name="GLib.List" c:type="GList*">
23808             <type name="TypeFindFactory"/>
23809           </type>
23810         </return-value>
23811       </function>
23812       <method name="call_function"
23813               c:identifier="gst_type_find_factory_call_function">
23814         <doc xml:whitespace="preserve">Calls the #GstTypeFindFunction associated with this factory.</doc>
23815         <return-value transfer-ownership="none">
23816           <type name="none" c:type="void"/>
23817         </return-value>
23818         <parameters>
23819           <parameter name="find" transfer-ownership="none">
23820             <doc xml:whitespace="preserve">a properly setup #GstTypeFind entry. The get_data and suggest_type members must be set.</doc>
23821             <type name="TypeFind" c:type="GstTypeFind*"/>
23822           </parameter>
23823         </parameters>
23824       </method>
23825       <method name="get_caps" c:identifier="gst_type_find_factory_get_caps">
23826         <doc xml:whitespace="preserve">Gets the #GstCaps associated with a typefind factory.</doc>
23827         <return-value transfer-ownership="none">
23828           <doc xml:whitespace="preserve">the #GstCaps associated with this factory</doc>
23829           <type name="Caps" c:type="GstCaps*"/>
23830         </return-value>
23831       </method>
23832       <method name="get_extensions"
23833               c:identifier="gst_type_find_factory_get_extensions">
23834         <doc xml:whitespace="preserve">Gets the extensions associated with a #GstTypeFindFactory. The returned
23835 array should not be changed. If you need to change stuff in it, you should
23836 copy it using g_strdupv().  This function may return NULL to indicate
23837 a 0-length list.
23838 NULL-terminated array of extensions associated with this factory</doc>
23839         <return-value transfer-ownership="none">
23840           <doc xml:whitespace="preserve">a</doc>
23841           <array c:type="gchar**">
23842             <type name="utf8"/>
23843           </array>
23844         </return-value>
23845       </method>
23846       <field name="feature">
23847         <type name="PluginFeature" c:type="GstPluginFeature"/>
23848       </field>
23849       <field name="function" readable="0" private="1">
23850         <type name="TypeFindFunction" c:type="GstTypeFindFunction"/>
23851       </field>
23852       <field name="extensions" readable="0" private="1">
23853         <type name="utf8" c:type="gchar**"/>
23854       </field>
23855       <field name="caps" readable="0" private="1">
23856         <type name="Caps" c:type="GstCaps*"/>
23857       </field>
23858       <field name="user_data" readable="0" private="1">
23859         <type name="gpointer" c:type="gpointer"/>
23860       </field>
23861       <field name="user_data_notify" readable="0" private="1">
23862         <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
23863       </field>
23864       <field name="_gst_reserved" readable="0" private="1">
23865         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
23866           <type name="gpointer" c:type="gpointer"/>
23867         </array>
23868       </field>
23869     </class>
23870     <record name="TypeFindFactoryClass"
23871             c:type="GstTypeFindFactoryClass"
23872             glib:is-gtype-struct-for="TypeFindFactory">
23873       <field name="parent">
23874         <type name="PluginFeatureClass" c:type="GstPluginFeatureClass"/>
23875       </field>
23876       <field name="_gst_reserved" readable="0" private="1">
23877         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
23878           <type name="gpointer" c:type="gpointer"/>
23879         </array>
23880       </field>
23881     </record>
23882     <callback name="TypeFindFunction" c:type="GstTypeFindFunction">
23883       <doc xml:whitespace="preserve">A function that will be called by typefinding.</doc>
23884       <return-value transfer-ownership="none">
23885         <type name="none" c:type="void"/>
23886       </return-value>
23887       <parameters>
23888         <parameter name="find" transfer-ownership="none">
23889           <doc xml:whitespace="preserve">A #GstTypeFind structure</doc>
23890           <type name="TypeFind" c:type="GstTypeFind*"/>
23891         </parameter>
23892         <parameter name="data" transfer-ownership="none">
23893           <doc xml:whitespace="preserve">optionnal data to pass to the function</doc>
23894           <type name="gpointer" c:type="gpointer"/>
23895         </parameter>
23896       </parameters>
23897     </callback>
23898     <enumeration name="TypeFindProbability" c:type="GstTypeFindProbability">
23899       <doc xml:whitespace="preserve">The probability of the typefind function. Higher values have more certainty
23900 in doing a reliable typefind.</doc>
23901       <member name="minimum" value="1" c:identifier="GST_TYPE_FIND_MINIMUM"/>
23902       <member name="possible"
23903               value="50"
23904               c:identifier="GST_TYPE_FIND_POSSIBLE"/>
23905       <member name="likely" value="80" c:identifier="GST_TYPE_FIND_LIKELY"/>
23906       <member name="nearly_certain"
23907               value="99"
23908               c:identifier="GST_TYPE_FIND_NEARLY_CERTAIN"/>
23909       <member name="maximum" value="100" c:identifier="GST_TYPE_FIND_MAXIMUM"/>
23910     </enumeration>
23911     <record name="TypeNameData" c:type="GstTypeNameData">
23912       <doc xml:whitespace="preserve">Structure used for filtering based on @name and @type.</doc>
23913       <field name="name" writable="1">
23914         <type name="utf8" c:type="gchar*"/>
23915       </field>
23916       <field name="type" writable="1">
23917         <type name="GType" c:type="GType"/>
23918       </field>
23919     </record>
23920     <interface name="URIHandler"
23921                c:symbol-prefix="uri_handler"
23922                c:type="GstURIHandler"
23923                glib:type-name="GstURIHandler"
23924                glib:get-type="gst_uri_handler_get_type"
23925                glib:type-struct="URIHandlerInterface">
23926       <doc xml:whitespace="preserve">The URIHandler is an interface that is implemented by Source and Sink 
23927 #GstElement to simplify then handling of URI.
23928 An application can use the following functions to quickly get an element
23929 that handles the given URI for reading or writing
23930 (gst_element_make_from_uri()).
23931 Source and Sink plugins should implement this interface when possible.
23932 Last reviewed on 2005-11-09 (0.9.4)</doc>
23933       <virtual-method name="get_uri" invoker="get_uri">
23934         <doc xml:whitespace="preserve">Gets the currently handled URI.
23935 Returns NULL if there are no URI currently handled. The
23936 returned string must not be modified or freed.</doc>
23937         <return-value transfer-ownership="none">
23938           <doc xml:whitespace="preserve">the URI currently handled by the @handler.</doc>
23939           <type name="utf8" c:type="gchar*"/>
23940         </return-value>
23941       </virtual-method>
23942       <virtual-method name="new_uri" invoker="new_uri">
23943         <doc xml:whitespace="preserve">Emits the new-uri signal for a given handler, when that handler has a new URI.
23944 This function should only be called by URI handlers themselves.</doc>
23945         <return-value transfer-ownership="none">
23946           <type name="none" c:type="void"/>
23947         </return-value>
23948         <parameters>
23949           <parameter name="uri" transfer-ownership="none">
23950             <doc xml:whitespace="preserve">new URI or NULL if it was unset</doc>
23951             <type name="utf8" c:type="gchar*"/>
23952           </parameter>
23953         </parameters>
23954       </virtual-method>
23955       <virtual-method name="set_uri" invoker="set_uri">
23956         <doc xml:whitespace="preserve">Tries to set the URI of the given handler.</doc>
23957         <return-value transfer-ownership="none">
23958           <doc xml:whitespace="preserve">TRUE if the URI was set successfully, else FALSE.</doc>
23959           <type name="gboolean" c:type="gboolean"/>
23960         </return-value>
23961         <parameters>
23962           <parameter name="uri" transfer-ownership="none">
23963             <doc xml:whitespace="preserve">URI to set</doc>
23964             <type name="utf8" c:type="gchar*"/>
23965           </parameter>
23966         </parameters>
23967       </virtual-method>
23968       <method name="get_protocols"
23969               c:identifier="gst_uri_handler_get_protocols">
23970         <doc xml:whitespace="preserve">Gets the list of protocols supported by @handler. This list may not be
23971 modified.
23972 supported protocols. Returns NULL if the @handler isn't implemented
23973 properly, or the @handler doesn't support any protocols.</doc>
23974         <return-value transfer-ownership="none">
23975           <doc xml:whitespace="preserve">the</doc>
23976           <array c:type="gchar**">
23977             <type name="utf8"/>
23978           </array>
23979         </return-value>
23980       </method>
23981       <method name="get_uri" c:identifier="gst_uri_handler_get_uri">
23982         <doc xml:whitespace="preserve">Gets the currently handled URI.
23983 Returns NULL if there are no URI currently handled. The
23984 returned string must not be modified or freed.</doc>
23985         <return-value transfer-ownership="none">
23986           <doc xml:whitespace="preserve">the URI currently handled by the @handler.</doc>
23987           <type name="utf8" c:type="gchar*"/>
23988         </return-value>
23989       </method>
23990       <method name="get_uri_type" c:identifier="gst_uri_handler_get_uri_type">
23991         <doc xml:whitespace="preserve">Gets the type of the given URI handler
23992 Returns #GST_URI_UNKNOWN if the @handler isn't implemented correctly.</doc>
23993         <return-value transfer-ownership="none">
23994           <doc xml:whitespace="preserve">the #GstURIType of the URI handler.</doc>
23995           <type name="guint" c:type="guint"/>
23996         </return-value>
23997       </method>
23998       <method name="new_uri" c:identifier="gst_uri_handler_new_uri">
23999         <doc xml:whitespace="preserve">Emits the new-uri signal for a given handler, when that handler has a new URI.
24000 This function should only be called by URI handlers themselves.</doc>
24001         <return-value transfer-ownership="none">
24002           <type name="none" c:type="void"/>
24003         </return-value>
24004         <parameters>
24005           <parameter name="uri" transfer-ownership="none">
24006             <doc xml:whitespace="preserve">new URI or NULL if it was unset</doc>
24007             <type name="utf8" c:type="gchar*"/>
24008           </parameter>
24009         </parameters>
24010       </method>
24011       <method name="set_uri" c:identifier="gst_uri_handler_set_uri">
24012         <doc xml:whitespace="preserve">Tries to set the URI of the given handler.</doc>
24013         <return-value transfer-ownership="none">
24014           <doc xml:whitespace="preserve">TRUE if the URI was set successfully, else FALSE.</doc>
24015           <type name="gboolean" c:type="gboolean"/>
24016         </return-value>
24017         <parameters>
24018           <parameter name="uri" transfer-ownership="none">
24019             <doc xml:whitespace="preserve">URI to set</doc>
24020             <type name="utf8" c:type="gchar*"/>
24021           </parameter>
24022         </parameters>
24023       </method>
24024       <glib:signal name="new-uri">
24025         <doc xml:whitespace="preserve">The URI of the given @handler has changed.</doc>
24026         <return-value transfer-ownership="none">
24027           <type name="none"/>
24028         </return-value>
24029         <parameters>
24030           <parameter name="uri" transfer-ownership="none">
24031             <doc xml:whitespace="preserve">The new URI, or NULL if the URI was removed</doc>
24032             <type name="utf8"/>
24033           </parameter>
24034         </parameters>
24035       </glib:signal>
24036     </interface>
24037     <record name="URIHandlerInterface"
24038             c:type="GstURIHandlerInterface"
24039             glib:is-gtype-struct-for="URIHandler">
24040       <doc xml:whitespace="preserve">Any #GstElement using this interface should implement these methods.</doc>
24041       <field name="parent">
24042         <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
24043       </field>
24044       <field name="new_uri">
24045         <callback name="new_uri">
24046           <return-value transfer-ownership="none">
24047             <type name="none" c:type="void"/>
24048           </return-value>
24049           <parameters>
24050             <parameter name="handler" transfer-ownership="none">
24051               <type name="URIHandler" c:type="GstURIHandler*"/>
24052             </parameter>
24053             <parameter name="uri" transfer-ownership="none">
24054               <doc xml:whitespace="preserve">new URI or NULL if it was unset</doc>
24055               <type name="utf8" c:type="gchar*"/>
24056             </parameter>
24057           </parameters>
24058         </callback>
24059       </field>
24060       <field name="get_type">
24061         <callback name="get_type">
24062           <return-value transfer-ownership="none">
24063             <type name="URIType" c:type="GstURIType"/>
24064           </return-value>
24065         </callback>
24066       </field>
24067       <field name="get_protocols" introspectable="0">
24068         <callback name="get_protocols" introspectable="0">
24069           <return-value>
24070             <array c:type="gchar**">
24071               <type name="utf8"/>
24072             </array>
24073           </return-value>
24074         </callback>
24075       </field>
24076       <field name="get_uri">
24077         <callback name="get_uri">
24078           <return-value transfer-ownership="none">
24079             <doc xml:whitespace="preserve">the URI currently handled by the @handler.</doc>
24080             <type name="utf8" c:type="gchar*"/>
24081           </return-value>
24082           <parameters>
24083             <parameter name="handler" transfer-ownership="none">
24084               <type name="URIHandler" c:type="GstURIHandler*"/>
24085             </parameter>
24086           </parameters>
24087         </callback>
24088       </field>
24089       <field name="set_uri">
24090         <callback name="set_uri">
24091           <return-value transfer-ownership="none">
24092             <doc xml:whitespace="preserve">TRUE if the URI was set successfully, else FALSE.</doc>
24093             <type name="gboolean" c:type="gboolean"/>
24094           </return-value>
24095           <parameters>
24096             <parameter name="handler" transfer-ownership="none">
24097               <type name="URIHandler" c:type="GstURIHandler*"/>
24098             </parameter>
24099             <parameter name="uri" transfer-ownership="none">
24100               <doc xml:whitespace="preserve">URI to set</doc>
24101               <type name="utf8" c:type="gchar*"/>
24102             </parameter>
24103           </parameters>
24104         </callback>
24105       </field>
24106       <field name="get_type_full">
24107         <callback name="get_type_full">
24108           <return-value transfer-ownership="none">
24109             <type name="URIType" c:type="GstURIType"/>
24110           </return-value>
24111           <parameters>
24112             <parameter name="type" transfer-ownership="none">
24113               <type name="GType" c:type="GType"/>
24114             </parameter>
24115           </parameters>
24116         </callback>
24117       </field>
24118       <field name="get_protocols_full" introspectable="0">
24119         <callback name="get_protocols_full" introspectable="0">
24120           <return-value>
24121             <array c:type="gchar**">
24122               <type name="utf8"/>
24123             </array>
24124           </return-value>
24125           <parameters>
24126             <parameter name="type" transfer-ownership="none">
24127               <type name="GType" c:type="GType"/>
24128             </parameter>
24129           </parameters>
24130         </callback>
24131       </field>
24132       <field name="_gst_reserved" readable="0" private="1">
24133         <array zero-terminated="0" c:type="gpointer" fixed-size="2">
24134           <type name="gpointer" c:type="gpointer"/>
24135         </array>
24136       </field>
24137     </record>
24138     <enumeration name="URIType" c:type="GstURIType">
24139       <doc xml:whitespace="preserve">The different types of URI direction.</doc>
24140       <member name="unknown" value="0" c:identifier="GST_URI_UNKNOWN"/>
24141       <member name="sink" value="1" c:identifier="GST_URI_SINK"/>
24142       <member name="src" value="2" c:identifier="GST_URI_SRC"/>
24143     </enumeration>
24144     <constant name="USECOND" value="0">
24145       <type name="gint" c:type="gint"/>
24146     </constant>
24147     <constant name="VALUE_EQUAL" value="0">
24148       <type name="gint" c:type="gint"/>
24149     </constant>
24150     <constant name="VALUE_GREATER_THAN" value="1">
24151       <type name="gint" c:type="gint"/>
24152     </constant>
24153     <constant name="VALUE_LESS_THAN" value="-1">
24154       <type name="gint" c:type="gint"/>
24155     </constant>
24156     <constant name="VALUE_UNORDERED" value="2">
24157       <type name="gint" c:type="gint"/>
24158     </constant>
24159     <callback name="ValueCompareFunc" c:type="GstValueCompareFunc">
24160       <doc xml:whitespace="preserve">Used together with gst_value_compare() to compare #GValue items.
24161 or GST_VALUE_UNORDERED</doc>
24162       <return-value transfer-ownership="none">
24163         <doc xml:whitespace="preserve">one of GST_VALUE_LESS_THAN, GST_VALUE_EQUAL, GST_VALUE_GREATER_THAN</doc>
24164         <type name="gint" c:type="gint"/>
24165       </return-value>
24166       <parameters>
24167         <parameter name="value1" transfer-ownership="none">
24168           <doc xml:whitespace="preserve">first value for comparison</doc>
24169           <type name="GObject.Value" c:type="GValue*"/>
24170         </parameter>
24171         <parameter name="value2" transfer-ownership="none">
24172           <doc xml:whitespace="preserve">second value for comparison</doc>
24173           <type name="GObject.Value" c:type="GValue*"/>
24174         </parameter>
24175       </parameters>
24176     </callback>
24177     <callback name="ValueDeserializeFunc" c:type="GstValueDeserializeFunc">
24178       <doc xml:whitespace="preserve">Used by gst_value_deserialize() to parse a non-binary form into the #GValue.</doc>
24179       <return-value transfer-ownership="none">
24180         <doc xml:whitespace="preserve">%TRUE for success</doc>
24181         <type name="gboolean" c:type="gboolean"/>
24182       </return-value>
24183       <parameters>
24184         <parameter name="dest" transfer-ownership="none">
24185           <doc xml:whitespace="preserve">a #GValue</doc>
24186           <type name="GObject.Value" c:type="GValue*"/>
24187         </parameter>
24188         <parameter name="s" transfer-ownership="none">
24189           <doc xml:whitespace="preserve">a string</doc>
24190           <type name="utf8" c:type="gchar*"/>
24191         </parameter>
24192       </parameters>
24193     </callback>
24194     <callback name="ValueIntersectFunc" c:type="GstValueIntersectFunc">
24195       <doc xml:whitespace="preserve">Used by gst_value_intersect() to perform intersection for a specific #GValue
24196 type. If the intersection is non-empty, the result is
24197 placed in @dest and TRUE is returned.  If the intersection is
24198 empty, @dest is unmodified and FALSE is returned.
24199 Register a new implementation with gst_value_register_intersect_func().</doc>
24200       <return-value transfer-ownership="none">
24201         <doc xml:whitespace="preserve">%TRUE if the values can intersect</doc>
24202         <type name="gboolean" c:type="gboolean"/>
24203       </return-value>
24204       <parameters>
24205         <parameter name="dest"
24206                    direction="out"
24207                    caller-allocates="1"
24208                    transfer-ownership="none">
24209           <doc xml:whitespace="preserve">a #GValue for the result</doc>
24210           <type name="GObject.Value" c:type="GValue*"/>
24211         </parameter>
24212         <parameter name="value1" transfer-ownership="none">
24213           <doc xml:whitespace="preserve">a #GValue operand</doc>
24214           <type name="GObject.Value" c:type="GValue*"/>
24215         </parameter>
24216         <parameter name="value2" transfer-ownership="none">
24217           <doc xml:whitespace="preserve">a #GValue operand</doc>
24218           <type name="GObject.Value" c:type="GValue*"/>
24219         </parameter>
24220       </parameters>
24221     </callback>
24222     <callback name="ValueSerializeFunc" c:type="GstValueSerializeFunc">
24223       <doc xml:whitespace="preserve">Used by gst_value_serialize() to obtain a non-binary form of the #GValue.</doc>
24224       <return-value transfer-ownership="full">
24225         <doc xml:whitespace="preserve">the string representation of the value</doc>
24226         <type name="utf8" c:type="gchar*"/>
24227       </return-value>
24228       <parameters>
24229         <parameter name="value1" transfer-ownership="none">
24230           <doc xml:whitespace="preserve">a #GValue</doc>
24231           <type name="GObject.Value" c:type="GValue*"/>
24232         </parameter>
24233       </parameters>
24234     </callback>
24235     <callback name="ValueSubtractFunc" c:type="GstValueSubtractFunc">
24236       <doc xml:whitespace="preserve">Used by gst_value_subtract() to perform subtraction for a specific #GValue
24237 type. Register a new implementation with gst_value_register_subtract_func().</doc>
24238       <return-value transfer-ownership="none">
24239         <doc xml:whitespace="preserve">%TRUE if the subtraction is not empty</doc>
24240         <type name="gboolean" c:type="gboolean"/>
24241       </return-value>
24242       <parameters>
24243         <parameter name="dest"
24244                    direction="out"
24245                    caller-allocates="1"
24246                    transfer-ownership="none">
24247           <doc xml:whitespace="preserve">a #GValue for the result</doc>
24248           <type name="GObject.Value" c:type="GValue*"/>
24249         </parameter>
24250         <parameter name="minuend" transfer-ownership="none">
24251           <doc xml:whitespace="preserve">a #GValue operand</doc>
24252           <type name="GObject.Value" c:type="GValue*"/>
24253         </parameter>
24254         <parameter name="subtrahend" transfer-ownership="none">
24255           <doc xml:whitespace="preserve">a #GValue operand</doc>
24256           <type name="GObject.Value" c:type="GValue*"/>
24257         </parameter>
24258       </parameters>
24259     </callback>
24260     <record name="ValueTable" c:type="GstValueTable">
24261       <doc xml:whitespace="preserve">VTable for the #GValue @type.</doc>
24262       <field name="type" writable="1">
24263         <type name="GType" c:type="GType"/>
24264       </field>
24265       <field name="compare" writable="1">
24266         <type name="ValueCompareFunc" c:type="GstValueCompareFunc"/>
24267       </field>
24268       <field name="serialize" writable="1">
24269         <type name="ValueSerializeFunc" c:type="GstValueSerializeFunc"/>
24270       </field>
24271       <field name="deserialize" writable="1">
24272         <type name="ValueDeserializeFunc" c:type="GstValueDeserializeFunc"/>
24273       </field>
24274       <field name="_gst_reserved" readable="0" private="1">
24275         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
24276           <type name="gpointer" c:type="void*"/>
24277         </array>
24278       </field>
24279     </record>
24280     <callback name="ValueUnionFunc" c:type="GstValueUnionFunc">
24281       <doc xml:whitespace="preserve">Used by gst_value_union() to perform unification for a specific #GValue
24282 type. Register a new implementation with gst_value_register_union_func().</doc>
24283       <return-value transfer-ownership="none">
24284         <doc xml:whitespace="preserve">%TRUE if a union was successful</doc>
24285         <type name="gboolean" c:type="gboolean"/>
24286       </return-value>
24287       <parameters>
24288         <parameter name="dest" transfer-ownership="none">
24289           <doc xml:whitespace="preserve">a #GValue for the result</doc>
24290           <type name="GObject.Value" c:type="GValue*"/>
24291         </parameter>
24292         <parameter name="value1" transfer-ownership="none">
24293           <doc xml:whitespace="preserve">a #GValue operand</doc>
24294           <type name="GObject.Value" c:type="GValue*"/>
24295         </parameter>
24296         <parameter name="value2" transfer-ownership="none">
24297           <doc xml:whitespace="preserve">a #GValue operand</doc>
24298           <type name="GObject.Value" c:type="GValue*"/>
24299         </parameter>
24300       </parameters>
24301     </callback>
24302     <class name="XML"
24303            c:symbol-prefix="xml"
24304            c:type="GstXML"
24305            parent="Object"
24306            glib:type-name="GstXML"
24307            glib:get-type="gst_xml_get_type"
24308            glib:type-struct="XMLClass">
24309       <doc xml:whitespace="preserve">GStreamer pipelines can be saved to xml files using gst_xml_write_file().
24310 They can be loaded back using gst_xml_parse_doc() / gst_xml_parse_file() / 
24311 gst_xml_parse_memory().
24312 Additionally one can load saved pipelines into the gst-editor to inspect the
24313 graph.
24314 #GstElement implementations need to override the #GstObjectClass.save_thyself()
24315 and #GstObjectClass.restore_thyself() virtual functions of #GstObject.
24316 broken for all but the most simple pipelines. It will most likely be
24317 removed in future. Don't use it.</doc>
24318       <constructor name="new" c:identifier="gst_xml_new">
24319         <doc xml:whitespace="preserve">Create a new GstXML parser object.</doc>
24320         <return-value transfer-ownership="full">
24321           <doc xml:whitespace="preserve">a pointer to a new GstXML object.</doc>
24322           <type name="XML" c:type="GstXML*"/>
24323         </return-value>
24324       </constructor>
24325       <function name="make_element"
24326                 c:identifier="gst_xml_make_element"
24327                 introspectable="0">
24328         <doc xml:whitespace="preserve">Load the element from the XML description</doc>
24329         <return-value>
24330           <doc xml:whitespace="preserve">the new element</doc>
24331           <type name="Element" c:type="GstElement*"/>
24332         </return-value>
24333         <parameters>
24334           <parameter name="cur" transfer-ownership="none">
24335             <doc xml:whitespace="preserve">the xml node</doc>
24336             <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
24337           </parameter>
24338           <parameter name="parent" transfer-ownership="none">
24339             <doc xml:whitespace="preserve">the parent of this object when it's loaded</doc>
24340             <type name="Object" c:type="GstObject*"/>
24341           </parameter>
24342         </parameters>
24343       </function>
24344       <function name="write" c:identifier="gst_xml_write" introspectable="0">
24345         <doc xml:whitespace="preserve">Converts the given element into an XML presentation.</doc>
24346         <return-value>
24347           <doc xml:whitespace="preserve">a pointer to an XML document</doc>
24348           <type name="libxml2.DocPtr" c:type="xmlDocPtr"/>
24349         </return-value>
24350         <parameters>
24351           <parameter name="element" transfer-ownership="none">
24352             <doc xml:whitespace="preserve">The element to write out</doc>
24353             <type name="Element" c:type="GstElement*"/>
24354           </parameter>
24355         </parameters>
24356       </function>
24357       <function name="write_file" c:identifier="gst_xml_write_file">
24358         <doc xml:whitespace="preserve">Converts the given element into XML and writes the formatted XML to an open
24359 file.</doc>
24360         <return-value transfer-ownership="none">
24361           <doc xml:whitespace="preserve">number of bytes written on success, -1 otherwise.</doc>
24362           <type name="gint" c:type="gint"/>
24363         </return-value>
24364         <parameters>
24365           <parameter name="element" transfer-ownership="none">
24366             <doc xml:whitespace="preserve">The element to write out</doc>
24367             <type name="Element" c:type="GstElement*"/>
24368           </parameter>
24369           <parameter name="out" transfer-ownership="none">
24370             <doc xml:whitespace="preserve">an open file, like stdout</doc>
24371             <type name="gpointer" c:type="FILE*"/>
24372           </parameter>
24373         </parameters>
24374       </function>
24375       <virtual-method name="object_loaded">
24376         <return-value transfer-ownership="none">
24377           <type name="none" c:type="void"/>
24378         </return-value>
24379         <parameters>
24380           <parameter name="object" transfer-ownership="none">
24381             <type name="Object" c:type="GstObject*"/>
24382           </parameter>
24383           <parameter name="self" transfer-ownership="none">
24384             <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
24385           </parameter>
24386         </parameters>
24387       </virtual-method>
24388       <virtual-method name="object_saved">
24389         <return-value transfer-ownership="none">
24390           <type name="none" c:type="void"/>
24391         </return-value>
24392         <parameters>
24393           <parameter name="object" transfer-ownership="none">
24394             <type name="Object" c:type="GstObject*"/>
24395           </parameter>
24396           <parameter name="self" transfer-ownership="none">
24397             <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
24398           </parameter>
24399         </parameters>
24400       </virtual-method>
24401       <method name="get_element"
24402               c:identifier="gst_xml_get_element"
24403               introspectable="0">
24404         <doc xml:whitespace="preserve">This function is used to get a pointer to the GstElement corresponding
24405 to name in the pipeline description. You would use this if you have
24406 to do anything to the element after loading.</doc>
24407         <return-value>
24408           <doc xml:whitespace="preserve">a pointer to a new GstElement, caller owns returned reference.</doc>
24409           <type name="Element" c:type="GstElement*"/>
24410         </return-value>
24411         <parameters>
24412           <parameter name="name" transfer-ownership="none">
24413             <doc xml:whitespace="preserve">The name of element to retrieve</doc>
24414             <type name="guint8" c:type="guchar*"/>
24415           </parameter>
24416         </parameters>
24417       </method>
24418       <method name="get_topelements"
24419               c:identifier="gst_xml_get_topelements"
24420               introspectable="0">
24421         <doc xml:whitespace="preserve">Retrieve a list of toplevel elements.
24422 of the list and must not free or modify the list. The caller also does not
24423 own a reference to any of the elements in the list and should obtain its own
24424 reference using gst_object_ref() if necessary.</doc>
24425         <return-value>
24426           <doc xml:whitespace="preserve">a GList of top-level elements. The caller does not own a copy</doc>
24427           <type name="GLib.List" c:type="GList*">
24428             <type name="gpointer" c:type="gpointer"/>
24429           </type>
24430         </return-value>
24431       </method>
24432       <method name="parse_doc" c:identifier="gst_xml_parse_doc">
24433         <doc xml:whitespace="preserve">Fills the GstXML object with the elements from the
24434 xmlDocPtr.</doc>
24435         <return-value transfer-ownership="none">
24436           <doc xml:whitespace="preserve">TRUE on success, FALSE otherwise</doc>
24437           <type name="gboolean" c:type="gboolean"/>
24438         </return-value>
24439         <parameters>
24440           <parameter name="doc" transfer-ownership="none">
24441             <doc xml:whitespace="preserve">a pointer to an xml document to parse</doc>
24442             <type name="libxml2.DocPtr" c:type="xmlDocPtr"/>
24443           </parameter>
24444           <parameter name="root" transfer-ownership="none">
24445             <doc xml:whitespace="preserve">The name of the root object to build</doc>
24446             <type name="guint8" c:type="guchar*"/>
24447           </parameter>
24448         </parameters>
24449       </method>
24450       <method name="parse_file" c:identifier="gst_xml_parse_file">
24451         <doc xml:whitespace="preserve">Fills the GstXML object with the corresponding elements from
24452 the XML file fname. Optionally it will only build the element from
24453 the element node root (if it is not NULL). This feature is useful
24454 if you only want to build a specific element from an XML file
24455 but not the pipeline it is embedded in.
24456 Pass "-" as fname to read from stdin. You can also pass a URI
24457 of any format that libxml supports, including http.</doc>
24458         <return-value transfer-ownership="none">
24459           <doc xml:whitespace="preserve">TRUE on success, FALSE otherwise</doc>
24460           <type name="gboolean" c:type="gboolean"/>
24461         </return-value>
24462         <parameters>
24463           <parameter name="fname" transfer-ownership="none">
24464             <doc xml:whitespace="preserve">The filename with the xml description</doc>
24465             <type name="guint8" c:type="guchar*"/>
24466           </parameter>
24467           <parameter name="root" transfer-ownership="none">
24468             <doc xml:whitespace="preserve">The name of the root object to build</doc>
24469             <type name="guint8" c:type="guchar*"/>
24470           </parameter>
24471         </parameters>
24472       </method>
24473       <method name="parse_memory" c:identifier="gst_xml_parse_memory">
24474         <doc xml:whitespace="preserve">Fills the GstXML object with the corresponding elements from
24475 an in memory XML buffer.</doc>
24476         <return-value transfer-ownership="none">
24477           <doc xml:whitespace="preserve">TRUE on success</doc>
24478           <type name="gboolean" c:type="gboolean"/>
24479         </return-value>
24480         <parameters>
24481           <parameter name="buffer" transfer-ownership="none">
24482             <doc xml:whitespace="preserve">a pointer to the in memory XML buffer</doc>
24483             <type name="guint8" c:type="guchar*"/>
24484           </parameter>
24485           <parameter name="size" transfer-ownership="none">
24486             <doc xml:whitespace="preserve">the size of the buffer</doc>
24487             <type name="guint" c:type="guint"/>
24488           </parameter>
24489           <parameter name="root" transfer-ownership="none">
24490             <doc xml:whitespace="preserve">the name of the root objects to build</doc>
24491             <type name="utf8" c:type="gchar*"/>
24492           </parameter>
24493         </parameters>
24494       </method>
24495       <field name="object">
24496         <type name="Object" c:type="GstObject"/>
24497       </field>
24498       <field name="topelements">
24499         <type name="GLib.List" c:type="GList*">
24500           <type name="gpointer" c:type="gpointer"/>
24501         </type>
24502       </field>
24503       <field name="ns">
24504         <type name="libxml2.NsPtr" c:type="xmlNsPtr"/>
24505       </field>
24506       <field name="_gst_reserved" readable="0" private="1">
24507         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
24508           <type name="gpointer" c:type="gpointer"/>
24509         </array>
24510       </field>
24511       <glib:signal name="object-loaded">
24512         <doc xml:whitespace="preserve">Signals that a new object has been deserialized.</doc>
24513         <return-value transfer-ownership="none">
24514           <type name="none"/>
24515         </return-value>
24516         <parameters>
24517           <parameter name="object" transfer-ownership="none">
24518             <doc xml:whitespace="preserve">the object that has been loaded</doc>
24519             <type name="Object"/>
24520           </parameter>
24521           <parameter name="xml_node" transfer-ownership="none">
24522             <doc xml:whitespace="preserve">the related xml_node pointer to the document tree</doc>
24523             <type name="gpointer"/>
24524           </parameter>
24525         </parameters>
24526       </glib:signal>
24527     </class>
24528     <record name="XMLClass"
24529             c:type="GstXMLClass"
24530             glib:is-gtype-struct-for="XML">
24531       <field name="parent_class">
24532         <type name="ObjectClass" c:type="GstObjectClass"/>
24533       </field>
24534       <field name="object_loaded">
24535         <callback name="object_loaded">
24536           <return-value transfer-ownership="none">
24537             <type name="none" c:type="void"/>
24538           </return-value>
24539           <parameters>
24540             <parameter name="xml" transfer-ownership="none">
24541               <type name="XML" c:type="GstXML*"/>
24542             </parameter>
24543             <parameter name="object" transfer-ownership="none">
24544               <type name="Object" c:type="GstObject*"/>
24545             </parameter>
24546             <parameter name="self" transfer-ownership="none">
24547               <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
24548             </parameter>
24549           </parameters>
24550         </callback>
24551       </field>
24552       <field name="object_saved">
24553         <callback name="object_saved">
24554           <return-value transfer-ownership="none">
24555             <type name="none" c:type="void"/>
24556           </return-value>
24557           <parameters>
24558             <parameter name="xml" transfer-ownership="none">
24559               <type name="XML" c:type="GstXML*"/>
24560             </parameter>
24561             <parameter name="object" transfer-ownership="none">
24562               <type name="Object" c:type="GstObject*"/>
24563             </parameter>
24564             <parameter name="self" transfer-ownership="none">
24565               <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
24566             </parameter>
24567           </parameters>
24568         </callback>
24569       </field>
24570       <field name="_gst_reserved">
24571         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
24572           <type name="gpointer" c:type="gpointer"/>
24573         </array>
24574       </field>
24575     </record>
24576     <function name="alloc_trace_available"
24577               c:identifier="gst_alloc_trace_available">
24578       <doc xml:whitespace="preserve">Check if alloc tracing was compiled into the core
24579 tracing enabled.</doc>
24580       <return-value transfer-ownership="none">
24581         <doc xml:whitespace="preserve">TRUE if the core was compiled with alloc</doc>
24582         <type name="gboolean" c:type="gboolean"/>
24583       </return-value>
24584     </function>
24585     <function name="alloc_trace_get"
24586               c:identifier="gst_alloc_trace_get"
24587               introspectable="0">
24588       <doc xml:whitespace="preserve">Get the named alloc trace object.
24589 no alloc tracer was registered with that name.</doc>
24590       <return-value>
24591         <doc xml:whitespace="preserve">a GstAllocTrace with the given name or NULL when</doc>
24592         <type name="AllocTrace" c:type="GstAllocTrace*"/>
24593       </return-value>
24594       <parameters>
24595         <parameter name="name" transfer-ownership="none">
24596           <doc xml:whitespace="preserve">the name of the alloc trace object</doc>
24597           <type name="utf8" c:type="gchar*"/>
24598         </parameter>
24599       </parameters>
24600     </function>
24601     <function name="alloc_trace_list" c:identifier="gst_alloc_trace_list">
24602       <doc xml:whitespace="preserve">Get a list of all registered alloc trace objects.</doc>
24603       <return-value transfer-ownership="none">
24604         <doc xml:whitespace="preserve">a GList of GstAllocTrace objects.</doc>
24605         <type name="GLib.List" c:type="GList*">
24606           <type name="gpointer" c:type="gpointer"/>
24607         </type>
24608       </return-value>
24609     </function>
24610     <function name="alloc_trace_live_all"
24611               c:identifier="gst_alloc_trace_live_all">
24612       <doc xml:whitespace="preserve">Get the total number of live registered alloc trace objects.</doc>
24613       <return-value transfer-ownership="none">
24614         <doc xml:whitespace="preserve">the total number of live registered alloc trace objects.</doc>
24615         <type name="gint" c:type="int"/>
24616       </return-value>
24617     </function>
24618     <function name="alloc_trace_print_all"
24619               c:identifier="gst_alloc_trace_print_all">
24620       <doc xml:whitespace="preserve">Print the status of all registered alloc trace objects.</doc>
24621       <return-value transfer-ownership="none">
24622         <type name="none" c:type="void"/>
24623       </return-value>
24624     </function>
24625     <function name="alloc_trace_print_live"
24626               c:identifier="gst_alloc_trace_print_live">
24627       <doc xml:whitespace="preserve">Print the status of all registered alloc trace objects, ignoring those
24628 without live objects.</doc>
24629       <return-value transfer-ownership="none">
24630         <type name="none" c:type="void"/>
24631       </return-value>
24632     </function>
24633     <function name="alloc_trace_set_flags_all"
24634               c:identifier="gst_alloc_trace_set_flags_all">
24635       <doc xml:whitespace="preserve">Enable the specified options on all registered alloc trace
24636 objects.</doc>
24637       <return-value transfer-ownership="none">
24638         <type name="none" c:type="void"/>
24639       </return-value>
24640       <parameters>
24641         <parameter name="flags" transfer-ownership="none">
24642           <doc xml:whitespace="preserve">the options to enable</doc>
24643           <type name="AllocTraceFlags" c:type="GstAllocTraceFlags"/>
24644         </parameter>
24645       </parameters>
24646     </function>
24647     <function name="atomic_int_set"
24648               c:identifier="gst_atomic_int_set"
24649               deprecated="Use g_atomic_int_set().">
24650       <doc xml:whitespace="preserve">Unconditionally sets the atomic integer to @value.</doc>
24651       <return-value transfer-ownership="none">
24652         <type name="none" c:type="void"/>
24653       </return-value>
24654       <parameters>
24655         <parameter name="atomic_int"
24656                    direction="inout"
24657                    caller-allocates="0"
24658                    transfer-ownership="full">
24659           <doc xml:whitespace="preserve">pointer to an atomic integer</doc>
24660           <type name="gint" c:type="gint*"/>
24661         </parameter>
24662         <parameter name="value" transfer-ownership="none">
24663           <doc xml:whitespace="preserve">value to set</doc>
24664           <type name="gint" c:type="gint"/>
24665         </parameter>
24666       </parameters>
24667     </function>
24668     <function name="atomic_queue_new"
24669               c:identifier="gst_atomic_queue_new"
24670               version="0.10.33"
24671               introspectable="0">
24672       <doc xml:whitespace="preserve">Create a new atomic queue instance. @initial_size will be rounded up to the
24673 nearest power of 2 and used as the initial size of the queue.</doc>
24674       <return-value>
24675         <doc xml:whitespace="preserve">a new #GstAtomicQueue</doc>
24676         <type name="AtomicQueue" c:type="GstAtomicQueue*"/>
24677       </return-value>
24678       <parameters>
24679         <parameter name="initial_size" transfer-ownership="none">
24680           <doc xml:whitespace="preserve">initial queue size</doc>
24681           <type name="guint" c:type="guint"/>
24682         </parameter>
24683       </parameters>
24684     </function>
24685     <function name="caps_from_string" c:identifier="gst_caps_from_string">
24686       <doc xml:whitespace="preserve">Converts @caps from a string representation.</doc>
24687       <return-value transfer-ownership="full">
24688         <doc xml:whitespace="preserve">a newly allocated #GstCaps</doc>
24689         <type name="Caps" c:type="GstCaps*"/>
24690       </return-value>
24691       <parameters>
24692         <parameter name="string" transfer-ownership="none">
24693           <doc xml:whitespace="preserve">a string to convert to #GstCaps</doc>
24694           <type name="utf8" c:type="gchar*"/>
24695         </parameter>
24696       </parameters>
24697     </function>
24698     <function name="caps_load_thyself" c:identifier="gst_caps_load_thyself">
24699       <doc xml:whitespace="preserve">Creates a #GstCaps from its XML serialization.</doc>
24700       <return-value transfer-ownership="full">
24701         <doc xml:whitespace="preserve">a new #GstCaps structure</doc>
24702         <type name="Caps" c:type="GstCaps*"/>
24703       </return-value>
24704       <parameters>
24705         <parameter name="parent" transfer-ownership="none">
24706           <doc xml:whitespace="preserve">a XML node</doc>
24707           <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
24708         </parameter>
24709       </parameters>
24710     </function>
24711     <function name="caps_replace" c:identifier="gst_caps_replace">
24712       <doc xml:whitespace="preserve">Replaces *caps with @newcaps.  Unrefs the #GstCaps in the location
24713 pointed to by @caps, if applicable, then modifies @caps to point to
24714 This function does not take any locks so you might want to lock
24715 the object owning @caps pointer.</doc>
24716       <return-value transfer-ownership="none">
24717         <type name="none" c:type="void"/>
24718       </return-value>
24719       <parameters>
24720         <parameter name="caps"
24721                    direction="inout"
24722                    caller-allocates="0"
24723                    transfer-ownership="full">
24724           <doc xml:whitespace="preserve">a pointer to #GstCaps</doc>
24725           <type name="Caps" c:type="GstCaps**"/>
24726         </parameter>
24727         <parameter name="newcaps" transfer-ownership="none">
24728           <doc xml:whitespace="preserve">a #GstCaps to replace *caps</doc>
24729           <type name="Caps" c:type="GstCaps*"/>
24730         </parameter>
24731       </parameters>
24732     </function>
24733     <function name="child_proxy_child_added"
24734               c:identifier="gst_child_proxy_child_added">
24735       <doc xml:whitespace="preserve">Emits the "child-added" signal.</doc>
24736       <return-value transfer-ownership="none">
24737         <type name="none" c:type="void"/>
24738       </return-value>
24739       <parameters>
24740         <parameter name="object" transfer-ownership="none">
24741           <doc xml:whitespace="preserve">the parent object</doc>
24742           <type name="Object" c:type="GstObject*"/>
24743         </parameter>
24744         <parameter name="child" transfer-ownership="none">
24745           <doc xml:whitespace="preserve">the newly added child</doc>
24746           <type name="Object" c:type="GstObject*"/>
24747         </parameter>
24748       </parameters>
24749     </function>
24750     <function name="child_proxy_child_removed"
24751               c:identifier="gst_child_proxy_child_removed">
24752       <doc xml:whitespace="preserve">Emits the "child-removed" signal.</doc>
24753       <return-value transfer-ownership="none">
24754         <type name="none" c:type="void"/>
24755       </return-value>
24756       <parameters>
24757         <parameter name="object" transfer-ownership="none">
24758           <doc xml:whitespace="preserve">the parent object</doc>
24759           <type name="Object" c:type="GstObject*"/>
24760         </parameter>
24761         <parameter name="child" transfer-ownership="none">
24762           <doc xml:whitespace="preserve">the removed child</doc>
24763           <type name="Object" c:type="GstObject*"/>
24764         </parameter>
24765       </parameters>
24766     </function>
24767     <function name="child_proxy_get"
24768               c:identifier="gst_child_proxy_get"
24769               introspectable="0">
24770       <doc xml:whitespace="preserve">Gets properties of the parent object and its children.</doc>
24771       <return-value transfer-ownership="none">
24772         <type name="none" c:type="void"/>
24773       </return-value>
24774       <parameters>
24775         <parameter name="object" transfer-ownership="none">
24776           <doc xml:whitespace="preserve">the parent object</doc>
24777           <type name="Object" c:type="GstObject*"/>
24778         </parameter>
24779         <parameter name="first_property_name" transfer-ownership="none">
24780           <doc xml:whitespace="preserve">name of the first property to get</doc>
24781           <type name="utf8" c:type="gchar*"/>
24782         </parameter>
24783         <parameter transfer-ownership="none">
24784           <varargs>
24785           </varargs>
24786         </parameter>
24787       </parameters>
24788     </function>
24789     <function name="child_proxy_get_property"
24790               c:identifier="gst_child_proxy_get_property">
24791       <doc xml:whitespace="preserve">Gets a single property using the GstChildProxy mechanism.
24792 You are responsible for for freeing it by calling g_value_unset()</doc>
24793       <return-value transfer-ownership="none">
24794         <type name="none" c:type="void"/>
24795       </return-value>
24796       <parameters>
24797         <parameter name="object" transfer-ownership="none">
24798           <doc xml:whitespace="preserve">object to query</doc>
24799           <type name="Object" c:type="GstObject*"/>
24800         </parameter>
24801         <parameter name="name" transfer-ownership="none">
24802           <doc xml:whitespace="preserve">name of the property</doc>
24803           <type name="utf8" c:type="gchar*"/>
24804         </parameter>
24805         <parameter name="value"
24806                    direction="out"
24807                    caller-allocates="1"
24808                    transfer-ownership="none">
24809           <doc xml:whitespace="preserve">a #GValue that should take the result.</doc>
24810           <type name="GObject.Value" c:type="GValue*"/>
24811         </parameter>
24812       </parameters>
24813     </function>
24814     <function name="child_proxy_get_valist"
24815               c:identifier="gst_child_proxy_get_valist"
24816               introspectable="0">
24817       <doc xml:whitespace="preserve">Gets properties of the parent object and its children.</doc>
24818       <return-value transfer-ownership="none">
24819         <type name="none" c:type="void"/>
24820       </return-value>
24821       <parameters>
24822         <parameter name="object" transfer-ownership="none">
24823           <doc xml:whitespace="preserve">the object to query</doc>
24824           <type name="Object" c:type="GstObject*"/>
24825         </parameter>
24826         <parameter name="first_property_name" transfer-ownership="none">
24827           <doc xml:whitespace="preserve">name of the first property to get</doc>
24828           <type name="utf8" c:type="gchar*"/>
24829         </parameter>
24830         <parameter name="var_args" transfer-ownership="none">
24831           <doc xml:whitespace="preserve">return location for the first property, followed optionally by more name/return location pairs, followed by NULL</doc>
24832           <type name="va_list" c:type="va_list"/>
24833         </parameter>
24834       </parameters>
24835     </function>
24836     <function name="child_proxy_lookup" c:identifier="gst_child_proxy_lookup">
24837       <doc xml:whitespace="preserve">Looks up which object and #GParamSpec would be effected by the given @name.
24838 case the values for @pspec and @target are not modified. Unref @target after
24839 usage.
24840 MT safe.</doc>
24841       <return-value transfer-ownership="none">
24842         <doc xml:whitespace="preserve">TRUE if @target and @pspec could be found. FALSE otherwise. In that</doc>
24843         <type name="gboolean" c:type="gboolean"/>
24844       </return-value>
24845       <parameters>
24846         <parameter name="object" transfer-ownership="none">
24847           <doc xml:whitespace="preserve">object to lookup the property in</doc>
24848           <type name="Object" c:type="GstObject*"/>
24849         </parameter>
24850         <parameter name="name" transfer-ownership="none">
24851           <doc xml:whitespace="preserve">name of the property to look up</doc>
24852           <type name="utf8" c:type="gchar*"/>
24853         </parameter>
24854         <parameter name="target"
24855                    direction="out"
24856                    caller-allocates="0"
24857                    transfer-ownership="full"
24858                    allow-none="1">
24859           <doc xml:whitespace="preserve">pointer to a #GstObject that takes the real object to set property on</doc>
24860           <type name="Object" c:type="GstObject**"/>
24861         </parameter>
24862         <parameter name="pspec"
24863                    direction="out"
24864                    caller-allocates="0"
24865                    transfer-ownership="full"
24866                    allow-none="1">
24867           <doc xml:whitespace="preserve">pointer to take the #GParamSpec describing the property</doc>
24868           <type name="GObject.ParamSpec" c:type="GParamSpec**"/>
24869         </parameter>
24870       </parameters>
24871     </function>
24872     <function name="child_proxy_set"
24873               c:identifier="gst_child_proxy_set"
24874               introspectable="0">
24875       <doc xml:whitespace="preserve">Sets properties of the parent object and its children.</doc>
24876       <return-value transfer-ownership="none">
24877         <type name="none" c:type="void"/>
24878       </return-value>
24879       <parameters>
24880         <parameter name="object" transfer-ownership="none">
24881           <doc xml:whitespace="preserve">the parent object</doc>
24882           <type name="Object" c:type="GstObject*"/>
24883         </parameter>
24884         <parameter name="first_property_name" transfer-ownership="none">
24885           <doc xml:whitespace="preserve">name of the first property to set</doc>
24886           <type name="utf8" c:type="gchar*"/>
24887         </parameter>
24888         <parameter transfer-ownership="none">
24889           <varargs>
24890           </varargs>
24891         </parameter>
24892       </parameters>
24893     </function>
24894     <function name="child_proxy_set_property"
24895               c:identifier="gst_child_proxy_set_property">
24896       <doc xml:whitespace="preserve">Sets a single property using the GstChildProxy mechanism.</doc>
24897       <return-value transfer-ownership="none">
24898         <type name="none" c:type="void"/>
24899       </return-value>
24900       <parameters>
24901         <parameter name="object" transfer-ownership="none">
24902           <doc xml:whitespace="preserve">the parent object</doc>
24903           <type name="Object" c:type="GstObject*"/>
24904         </parameter>
24905         <parameter name="name" transfer-ownership="none">
24906           <doc xml:whitespace="preserve">name of the property to set</doc>
24907           <type name="utf8" c:type="gchar*"/>
24908         </parameter>
24909         <parameter name="value" transfer-ownership="none">
24910           <doc xml:whitespace="preserve">new #GValue for the property</doc>
24911           <type name="GObject.Value" c:type="GValue*"/>
24912         </parameter>
24913       </parameters>
24914     </function>
24915     <function name="child_proxy_set_valist"
24916               c:identifier="gst_child_proxy_set_valist"
24917               introspectable="0">
24918       <doc xml:whitespace="preserve">Sets properties of the parent object and its children.</doc>
24919       <return-value transfer-ownership="none">
24920         <type name="none" c:type="void"/>
24921       </return-value>
24922       <parameters>
24923         <parameter name="object" transfer-ownership="none">
24924           <doc xml:whitespace="preserve">the parent object</doc>
24925           <type name="Object" c:type="GstObject*"/>
24926         </parameter>
24927         <parameter name="first_property_name" transfer-ownership="none">
24928           <doc xml:whitespace="preserve">name of the first property to set</doc>
24929           <type name="utf8" c:type="gchar*"/>
24930         </parameter>
24931         <parameter name="var_args" transfer-ownership="none">
24932           <doc xml:whitespace="preserve">value for the first property, followed optionally by more name/value pairs, followed by NULL</doc>
24933           <type name="va_list" c:type="va_list"/>
24934         </parameter>
24935       </parameters>
24936     </function>
24937     <function name="class_signal_connect"
24938               c:identifier="gst_class_signal_connect">
24939       <doc xml:whitespace="preserve">Connect to a class signal.</doc>
24940       <return-value transfer-ownership="none">
24941         <doc xml:whitespace="preserve">the signal id.</doc>
24942         <type name="guint" c:type="guint"/>
24943       </return-value>
24944       <parameters>
24945         <parameter name="klass" transfer-ownership="none">
24946           <doc xml:whitespace="preserve">a #GstObjectClass to attach the signal to</doc>
24947           <type name="ObjectClass" c:type="GstObjectClass*"/>
24948         </parameter>
24949         <parameter name="name" transfer-ownership="none">
24950           <doc xml:whitespace="preserve">the name of the signal to attach to</doc>
24951           <type name="utf8" c:type="gchar*"/>
24952         </parameter>
24953         <parameter name="func" transfer-ownership="none">
24954           <doc xml:whitespace="preserve">the signal function</doc>
24955           <type name="gpointer" c:type="gpointer"/>
24956         </parameter>
24957         <parameter name="func_data" transfer-ownership="none">
24958           <doc xml:whitespace="preserve">a pointer to user data</doc>
24959           <type name="gpointer" c:type="gpointer"/>
24960         </parameter>
24961       </parameters>
24962     </function>
24963     <function name="class_signal_emit_by_name"
24964               c:identifier="gst_class_signal_emit_by_name">
24965       <doc xml:whitespace="preserve">emits the named class signal.</doc>
24966       <return-value transfer-ownership="none">
24967         <type name="none" c:type="void"/>
24968       </return-value>
24969       <parameters>
24970         <parameter name="object" transfer-ownership="none">
24971           <doc xml:whitespace="preserve">a #GstObject that emits the signal</doc>
24972           <type name="Object" c:type="GstObject*"/>
24973         </parameter>
24974         <parameter name="name" transfer-ownership="none">
24975           <doc xml:whitespace="preserve">the name of the signal to emit</doc>
24976           <type name="utf8" c:type="gchar*"/>
24977         </parameter>
24978         <parameter name="self" transfer-ownership="none">
24979           <doc xml:whitespace="preserve">data for the signal</doc>
24980           <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
24981         </parameter>
24982       </parameters>
24983     </function>
24984     <function name="core_error_quark" c:identifier="gst_core_error_quark">
24985       <return-value transfer-ownership="none">
24986         <type name="GLib.Quark" c:type="GQuark"/>
24987       </return-value>
24988     </function>
24989     <function name="debug_add_log_function"
24990               c:identifier="gst_debug_add_log_function"
24991               introspectable="0">
24992       <doc xml:whitespace="preserve">Adds the logging function to the list of logging functions.
24993 Be sure to use #G_GNUC_NO_INSTRUMENT on that function, it is needed.</doc>
24994       <return-value transfer-ownership="none">
24995         <type name="none" c:type="void"/>
24996       </return-value>
24997       <parameters>
24998         <parameter name="func" transfer-ownership="none" closure="1">
24999           <doc xml:whitespace="preserve">the function to use</doc>
25000           <type name="LogFunction" c:type="GstLogFunction"/>
25001         </parameter>
25002         <parameter name="data" transfer-ownership="none">
25003           <doc xml:whitespace="preserve">user data</doc>
25004           <type name="gpointer" c:type="gpointer"/>
25005         </parameter>
25006       </parameters>
25007     </function>
25008     <function name="debug_construct_term_color"
25009               c:identifier="gst_debug_construct_term_color">
25010       <doc xml:whitespace="preserve">Constructs a string that can be used for getting the desired color in color
25011 terminals.
25012 You need to free the string after use.
25013 definition</doc>
25014       <return-value transfer-ownership="full">
25015         <doc xml:whitespace="preserve">a string containing the color</doc>
25016         <type name="utf8"/>
25017       </return-value>
25018       <parameters>
25019         <parameter name="colorinfo" transfer-ownership="none">
25020           <doc xml:whitespace="preserve">the color info</doc>
25021           <type name="guint" c:type="guint"/>
25022         </parameter>
25023       </parameters>
25024     </function>
25025     <function name="debug_construct_win_color"
25026               c:identifier="gst_debug_construct_win_color"
25027               version="0.10.23">
25028       <doc xml:whitespace="preserve">Constructs an integer that can be used for getting the desired color in
25029 windows' terminals (cmd.exe). As there is no mean to underline, we simply
25030 ignore this attribute.
25031 This function returns 0 on non-windows machines.</doc>
25032       <return-value transfer-ownership="none">
25033         <doc xml:whitespace="preserve">an integer containing the color definition</doc>
25034         <type name="gint" c:type="gint"/>
25035       </return-value>
25036       <parameters>
25037         <parameter name="colorinfo" transfer-ownership="none">
25038           <doc xml:whitespace="preserve">the color info</doc>
25039           <type name="guint" c:type="guint"/>
25040         </parameter>
25041       </parameters>
25042     </function>
25043     <function name="debug_get_all_categories"
25044               c:identifier="gst_debug_get_all_categories">
25045       <doc xml:whitespace="preserve">Returns a snapshot of a all categories that are currently in use . This list
25046 may change anytime.
25047 The caller has to free the list after use.
25048 debug categories</doc>
25049       <return-value transfer-ownership="container">
25050         <doc xml:whitespace="preserve">the list of</doc>
25051         <type name="GLib.SList" c:type="GSList*">
25052           <type name="DebugCategory"/>
25053         </type>
25054       </return-value>
25055     </function>
25056     <function name="debug_get_default_threshold"
25057               c:identifier="gst_debug_get_default_threshold">
25058       <doc xml:whitespace="preserve">Returns the default threshold that is used for new categories.</doc>
25059       <return-value transfer-ownership="none">
25060         <doc xml:whitespace="preserve">the default threshold level</doc>
25061         <type name="DebugLevel" c:type="GstDebugLevel"/>
25062       </return-value>
25063     </function>
25064     <function name="debug_is_active" c:identifier="gst_debug_is_active">
25065       <doc xml:whitespace="preserve">Checks if debugging output is activated.</doc>
25066       <return-value transfer-ownership="none">
25067         <doc xml:whitespace="preserve">TRUE, if debugging is activated</doc>
25068         <type name="gboolean" c:type="gboolean"/>
25069       </return-value>
25070     </function>
25071     <function name="debug_is_colored" c:identifier="gst_debug_is_colored">
25072       <doc xml:whitespace="preserve">Checks if the debugging output should be colored.</doc>
25073       <return-value transfer-ownership="none">
25074         <doc xml:whitespace="preserve">TRUE, if the debug output should be colored.</doc>
25075         <type name="gboolean" c:type="gboolean"/>
25076       </return-value>
25077     </function>
25078     <function name="debug_level_get_name"
25079               c:identifier="gst_debug_level_get_name">
25080       <doc xml:whitespace="preserve">Get the string representation of a debugging level</doc>
25081       <return-value transfer-ownership="none">
25082         <doc xml:whitespace="preserve">the name</doc>
25083         <type name="utf8" c:type="gchar*"/>
25084       </return-value>
25085       <parameters>
25086         <parameter name="level" transfer-ownership="none">
25087           <doc xml:whitespace="preserve">the level to get the name for</doc>
25088           <type name="DebugLevel" c:type="GstDebugLevel"/>
25089         </parameter>
25090       </parameters>
25091     </function>
25092     <function name="debug_log" c:identifier="gst_debug_log" introspectable="0">
25093       <doc xml:whitespace="preserve">Logs the given message using the currently registered debugging handlers.</doc>
25094       <return-value transfer-ownership="none">
25095         <type name="none" c:type="void"/>
25096       </return-value>
25097       <parameters>
25098         <parameter name="category" transfer-ownership="none">
25099           <doc xml:whitespace="preserve">category to log</doc>
25100           <type name="DebugCategory" c:type="GstDebugCategory*"/>
25101         </parameter>
25102         <parameter name="level" transfer-ownership="none">
25103           <doc xml:whitespace="preserve">level of the message is in</doc>
25104           <type name="DebugLevel" c:type="GstDebugLevel"/>
25105         </parameter>
25106         <parameter name="file" transfer-ownership="none">
25107           <doc xml:whitespace="preserve">the file that emitted the message, usually the __FILE__ identifier</doc>
25108           <type name="utf8" c:type="gchar*"/>
25109         </parameter>
25110         <parameter name="function" transfer-ownership="none">
25111           <doc xml:whitespace="preserve">the function that emitted the message</doc>
25112           <type name="utf8" c:type="gchar*"/>
25113         </parameter>
25114         <parameter name="line" transfer-ownership="none">
25115           <doc xml:whitespace="preserve">the line from that the message was emitted, usually __LINE__</doc>
25116           <type name="gint" c:type="gint"/>
25117         </parameter>
25118         <parameter name="object" transfer-ownership="none" allow-none="1">
25119           <doc xml:whitespace="preserve">the object this message relates to, or NULL if none</doc>
25120           <type name="GObject.Object" c:type="GObject*"/>
25121         </parameter>
25122         <parameter name="format" transfer-ownership="none">
25123           <doc xml:whitespace="preserve">a printf style format string</doc>
25124           <type name="utf8" c:type="gchar*"/>
25125         </parameter>
25126         <parameter transfer-ownership="none">
25127           <varargs>
25128           </varargs>
25129         </parameter>
25130       </parameters>
25131     </function>
25132     <function name="debug_log_default" c:identifier="gst_debug_log_default">
25133       <doc xml:whitespace="preserve">The default logging handler used by GStreamer. Logging functions get called
25134 whenever a macro like GST_DEBUG or similar is used. This function outputs the
25135 message and additional info to stderr (or the log file specified via the
25136 GST_DEBUG_FILE environment variable).
25137 You can add other handlers by using gst_debug_add_log_function().
25138 And you can remove this handler by calling
25139 gst_debug_remove_log_function(gst_debug_log_default);</doc>
25140       <return-value transfer-ownership="none">
25141         <type name="none" c:type="void"/>
25142       </return-value>
25143       <parameters>
25144         <parameter name="category" transfer-ownership="none">
25145           <doc xml:whitespace="preserve">category to log</doc>
25146           <type name="DebugCategory" c:type="GstDebugCategory*"/>
25147         </parameter>
25148         <parameter name="level" transfer-ownership="none">
25149           <doc xml:whitespace="preserve">level of the message</doc>
25150           <type name="DebugLevel" c:type="GstDebugLevel"/>
25151         </parameter>
25152         <parameter name="file" transfer-ownership="none">
25153           <doc xml:whitespace="preserve">the file that emitted the message, usually the __FILE__ identifier</doc>
25154           <type name="utf8" c:type="gchar*"/>
25155         </parameter>
25156         <parameter name="function" transfer-ownership="none">
25157           <doc xml:whitespace="preserve">the function that emitted the message</doc>
25158           <type name="utf8" c:type="gchar*"/>
25159         </parameter>
25160         <parameter name="line" transfer-ownership="none">
25161           <doc xml:whitespace="preserve">the line from that the message was emitted, usually __LINE__</doc>
25162           <type name="gint" c:type="gint"/>
25163         </parameter>
25164         <parameter name="object" transfer-ownership="none" allow-none="1">
25165           <doc xml:whitespace="preserve">the object this message relates to, or NULL if none</doc>
25166           <type name="GObject.Object" c:type="GObject*"/>
25167         </parameter>
25168         <parameter name="message" transfer-ownership="none">
25169           <doc xml:whitespace="preserve">the actual message</doc>
25170           <type name="DebugMessage" c:type="GstDebugMessage*"/>
25171         </parameter>
25172         <parameter name="unused" transfer-ownership="none">
25173           <doc xml:whitespace="preserve">an unused variable, reserved for some user_data.</doc>
25174           <type name="gpointer" c:type="gpointer"/>
25175         </parameter>
25176       </parameters>
25177     </function>
25178     <function name="debug_log_valist"
25179               c:identifier="gst_debug_log_valist"
25180               introspectable="0">
25181       <doc xml:whitespace="preserve">Logs the given message using the currently registered debugging handlers.</doc>
25182       <return-value transfer-ownership="none">
25183         <type name="none" c:type="void"/>
25184       </return-value>
25185       <parameters>
25186         <parameter name="category" transfer-ownership="none">
25187           <doc xml:whitespace="preserve">category to log</doc>
25188           <type name="DebugCategory" c:type="GstDebugCategory*"/>
25189         </parameter>
25190         <parameter name="level" transfer-ownership="none">
25191           <doc xml:whitespace="preserve">level of the message is in</doc>
25192           <type name="DebugLevel" c:type="GstDebugLevel"/>
25193         </parameter>
25194         <parameter name="file" transfer-ownership="none">
25195           <doc xml:whitespace="preserve">the file that emitted the message, usually the __FILE__ identifier</doc>
25196           <type name="utf8" c:type="gchar*"/>
25197         </parameter>
25198         <parameter name="function" transfer-ownership="none">
25199           <doc xml:whitespace="preserve">the function that emitted the message</doc>
25200           <type name="utf8" c:type="gchar*"/>
25201         </parameter>
25202         <parameter name="line" transfer-ownership="none">
25203           <doc xml:whitespace="preserve">the line from that the message was emitted, usually __LINE__</doc>
25204           <type name="gint" c:type="gint"/>
25205         </parameter>
25206         <parameter name="object" transfer-ownership="none" allow-none="1">
25207           <doc xml:whitespace="preserve">the object this message relates to, or NULL if none</doc>
25208           <type name="GObject.Object" c:type="GObject*"/>
25209         </parameter>
25210         <parameter name="format" transfer-ownership="none">
25211           <doc xml:whitespace="preserve">a printf style format string</doc>
25212           <type name="utf8" c:type="gchar*"/>
25213         </parameter>
25214         <parameter name="args" transfer-ownership="none">
25215           <doc xml:whitespace="preserve">optional arguments for the format</doc>
25216           <type name="va_list" c:type="va_list"/>
25217         </parameter>
25218       </parameters>
25219     </function>
25220     <function name="debug_print_stack_trace"
25221               c:identifier="gst_debug_print_stack_trace">
25222       <doc xml:whitespace="preserve">If GST_ENABLE_FUNC_INSTRUMENTATION is defined a stacktrace is available for
25223 gstreamer code, which can be printed with this function.</doc>
25224       <return-value transfer-ownership="none">
25225         <type name="none" c:type="void"/>
25226       </return-value>
25227     </function>
25228     <function name="debug_remove_log_function"
25229               c:identifier="gst_debug_remove_log_function"
25230               introspectable="0">
25231       <doc xml:whitespace="preserve">Removes all registered instances of the given logging functions.</doc>
25232       <return-value transfer-ownership="none">
25233         <doc xml:whitespace="preserve">How many instances of the function were removed</doc>
25234         <type name="guint" c:type="guint"/>
25235       </return-value>
25236       <parameters>
25237         <parameter name="func" transfer-ownership="none">
25238           <doc xml:whitespace="preserve">the log function to remove</doc>
25239           <type name="LogFunction" c:type="GstLogFunction"/>
25240         </parameter>
25241       </parameters>
25242     </function>
25243     <function name="debug_remove_log_function_by_data"
25244               c:identifier="gst_debug_remove_log_function_by_data">
25245       <doc xml:whitespace="preserve">Removes all registered instances of log functions with the given user data.</doc>
25246       <return-value transfer-ownership="none">
25247         <doc xml:whitespace="preserve">How many instances of the function were removed</doc>
25248         <type name="guint" c:type="guint"/>
25249       </return-value>
25250       <parameters>
25251         <parameter name="data" transfer-ownership="none">
25252           <doc xml:whitespace="preserve">user data of the log function to remove</doc>
25253           <type name="gpointer" c:type="gpointer"/>
25254         </parameter>
25255       </parameters>
25256     </function>
25257     <function name="debug_set_active" c:identifier="gst_debug_set_active">
25258       <doc xml:whitespace="preserve">If activated, debugging messages are sent to the debugging
25259 handlers.
25260 It makes sense to deactivate it for speed issues.
25261 &lt;note&gt;&lt;para&gt;This function is not threadsafe. It makes sense to only call it
25262 during initialization.&lt;/para&gt;&lt;/note&gt;</doc>
25263       <return-value transfer-ownership="none">
25264         <type name="none" c:type="void"/>
25265       </return-value>
25266       <parameters>
25267         <parameter name="active" transfer-ownership="none">
25268           <doc xml:whitespace="preserve">Whether to use debugging output or not</doc>
25269           <type name="gboolean" c:type="gboolean"/>
25270         </parameter>
25271       </parameters>
25272     </function>
25273     <function name="debug_set_colored" c:identifier="gst_debug_set_colored">
25274       <doc xml:whitespace="preserve">Sets or unsets the use of coloured debugging output.
25275 This function may be called before gst_init().</doc>
25276       <return-value transfer-ownership="none">
25277         <type name="none" c:type="void"/>
25278       </return-value>
25279       <parameters>
25280         <parameter name="colored" transfer-ownership="none">
25281           <doc xml:whitespace="preserve">Whether to use colored output or not</doc>
25282           <type name="gboolean" c:type="gboolean"/>
25283         </parameter>
25284       </parameters>
25285     </function>
25286     <function name="debug_set_default_threshold"
25287               c:identifier="gst_debug_set_default_threshold">
25288       <doc xml:whitespace="preserve">Sets the default threshold to the given level and updates all categories to
25289 use this threshold.
25290 This function may be called before gst_init().</doc>
25291       <return-value transfer-ownership="none">
25292         <type name="none" c:type="void"/>
25293       </return-value>
25294       <parameters>
25295         <parameter name="level" transfer-ownership="none">
25296           <doc xml:whitespace="preserve">level to set</doc>
25297           <type name="DebugLevel" c:type="GstDebugLevel"/>
25298         </parameter>
25299       </parameters>
25300     </function>
25301     <function name="debug_set_threshold_for_name"
25302               c:identifier="gst_debug_set_threshold_for_name">
25303       <doc xml:whitespace="preserve">Sets all categories which match the given glob style pattern to the given
25304 level.</doc>
25305       <return-value transfer-ownership="none">
25306         <type name="none" c:type="void"/>
25307       </return-value>
25308       <parameters>
25309         <parameter name="name" transfer-ownership="none">
25310           <doc xml:whitespace="preserve">name of the categories to set</doc>
25311           <type name="utf8" c:type="gchar*"/>
25312         </parameter>
25313         <parameter name="level" transfer-ownership="none">
25314           <doc xml:whitespace="preserve">level to set them to</doc>
25315           <type name="DebugLevel" c:type="GstDebugLevel"/>
25316         </parameter>
25317       </parameters>
25318     </function>
25319     <function name="debug_unset_threshold_for_name"
25320               c:identifier="gst_debug_unset_threshold_for_name">
25321       <doc xml:whitespace="preserve">Resets all categories with the given name back to the default level.</doc>
25322       <return-value transfer-ownership="none">
25323         <type name="none" c:type="void"/>
25324       </return-value>
25325       <parameters>
25326         <parameter name="name" transfer-ownership="none">
25327           <doc xml:whitespace="preserve">name of the categories to set</doc>
25328           <type name="utf8" c:type="gchar*"/>
25329         </parameter>
25330       </parameters>
25331     </function>
25332     <function name="default_registry_check_feature_version"
25333               c:identifier="gst_default_registry_check_feature_version">
25334       <doc xml:whitespace="preserve">Checks whether a plugin feature by the given name exists in the
25335 default registry and whether its version is at least the
25336 version required.
25337 the same as the required version or newer, and #FALSE otherwise.</doc>
25338       <return-value transfer-ownership="none">
25339         <doc xml:whitespace="preserve">#TRUE if the feature could be found and the version is</doc>
25340         <type name="gboolean" c:type="gboolean"/>
25341       </return-value>
25342       <parameters>
25343         <parameter name="feature_name" transfer-ownership="none">
25344           <doc xml:whitespace="preserve">the name of the feature (e.g. "oggdemux")</doc>
25345           <type name="utf8" c:type="gchar*"/>
25346         </parameter>
25347         <parameter name="min_major" transfer-ownership="none">
25348           <doc xml:whitespace="preserve">the minimum major version number</doc>
25349           <type name="guint" c:type="guint"/>
25350         </parameter>
25351         <parameter name="min_minor" transfer-ownership="none">
25352           <doc xml:whitespace="preserve">the minimum minor version number</doc>
25353           <type name="guint" c:type="guint"/>
25354         </parameter>
25355         <parameter name="min_micro" transfer-ownership="none">
25356           <doc xml:whitespace="preserve">the minimum micro version number</doc>
25357           <type name="guint" c:type="guint"/>
25358         </parameter>
25359       </parameters>
25360     </function>
25361     <function name="deinit" c:identifier="gst_deinit">
25362       <doc xml:whitespace="preserve">Clean up any resources created by GStreamer in gst_init().
25363 It is normally not needed to call this function in a normal application
25364 as the resources will automatically be freed when the program terminates.
25365 This function is therefore mostly used by testsuites and other memory
25366 profiling tools.
25367 After this call GStreamer (including this method) should not be used anymore.</doc>
25368       <return-value transfer-ownership="none">
25369         <type name="none" c:type="void"/>
25370       </return-value>
25371     </function>
25372     <function name="double_range_get_type"
25373               c:identifier="gst_double_range_get_type">
25374       <return-value transfer-ownership="none">
25375         <type name="GType" c:type="GType"/>
25376       </return-value>
25377     </function>
25378     <function name="error_get_message" c:identifier="gst_error_get_message">
25379       <doc xml:whitespace="preserve">Get a string describing the error message in the current locale.
25380 the error message (in UTF-8 encoding)</doc>
25381       <return-value transfer-ownership="full">
25382         <doc xml:whitespace="preserve">a newly allocated string describing</doc>
25383         <type name="utf8" c:type="gchar*"/>
25384       </return-value>
25385       <parameters>
25386         <parameter name="domain" transfer-ownership="none">
25387           <doc xml:whitespace="preserve">the GStreamer error domain this error belongs to.</doc>
25388           <type name="GLib.Quark" c:type="GQuark"/>
25389         </parameter>
25390         <parameter name="code" transfer-ownership="none">
25391           <doc xml:whitespace="preserve">the error code belonging to the domain.</doc>
25392           <type name="gint" c:type="gint"/>
25393         </parameter>
25394       </parameters>
25395     </function>
25396     <function name="filename_to_uri"
25397               c:identifier="gst_filename_to_uri"
25398               version="0.10.33"
25399               throws="1">
25400       <doc xml:whitespace="preserve">Similar to g_filename_to_uri(), but attempts to handle relative file paths
25401 as well. Before converting @filename into an URI, it will be prefixed by
25402 the current working directory if it is a relative path, and then the path
25403 will be canonicalised so that it doesn't contain any './' or '../' segments.
25404 On Windows #filename should be in UTF-8 encoding.</doc>
25405       <return-value transfer-ownership="full">
25406         <type name="utf8" c:type="gchar*"/>
25407       </return-value>
25408       <parameters>
25409         <parameter name="filename" transfer-ownership="none">
25410           <doc xml:whitespace="preserve">absolute or relative file name path</doc>
25411           <type name="utf8" c:type="gchar*"/>
25412         </parameter>
25413       </parameters>
25414     </function>
25415     <function name="filter_run" c:identifier="gst_filter_run">
25416       <doc xml:whitespace="preserve">Iterates over the elements in @list, calling @func with the
25417 list item data for each item.  If @func returns TRUE, @data is
25418 prepended to the list of results returned.  If @first is true,
25419 the search is halted after the first result is found.
25420 Since gst_filter_run() knows nothing about the type of @data, no
25421 reference will be taken (if @data refers to an object) and no copy of
25422 results.
25423 when no longer needed (the data contained in the list is a flat copy
25424 and does need to be unreferenced or freed).</doc>
25425       <return-value transfer-ownership="container">
25426         <doc xml:whitespace="preserve">the list of results. Free with g_list_free()</doc>
25427         <type name="GLib.List" c:type="GList*">
25428           <type name="gpointer" c:type="gpointer"/>
25429         </type>
25430       </return-value>
25431       <parameters>
25432         <parameter name="list" transfer-ownership="none">
25433           <doc xml:whitespace="preserve">a linked list</doc>
25434           <type name="GLib.List" c:type="GList*">
25435             <type name="gpointer" c:type="gpointer"/>
25436           </type>
25437         </parameter>
25438         <parameter name="func"
25439                    transfer-ownership="none"
25440                    scope="call"
25441                    closure="3">
25442           <doc xml:whitespace="preserve">the function to execute for each item</doc>
25443           <type name="FilterFunc" c:type="GstFilterFunc"/>
25444         </parameter>
25445         <parameter name="first" transfer-ownership="none">
25446           <doc xml:whitespace="preserve">flag to stop execution after a successful item</doc>
25447           <type name="gboolean" c:type="gboolean"/>
25448         </parameter>
25449         <parameter name="user_data" transfer-ownership="none">
25450           <doc xml:whitespace="preserve">user data</doc>
25451           <type name="gpointer" c:type="gpointer"/>
25452         </parameter>
25453       </parameters>
25454     </function>
25455     <function name="flow_get_name" c:identifier="gst_flow_get_name">
25456       <doc xml:whitespace="preserve">Gets a string representing the given flow return.</doc>
25457       <return-value transfer-ownership="none">
25458         <doc xml:whitespace="preserve">a static string with the name of the flow return.</doc>
25459         <type name="utf8" c:type="gchar*"/>
25460       </return-value>
25461       <parameters>
25462         <parameter name="ret" transfer-ownership="none">
25463           <doc xml:whitespace="preserve">a #GstFlowReturn to get the name of.</doc>
25464           <type name="FlowReturn" c:type="GstFlowReturn"/>
25465         </parameter>
25466       </parameters>
25467     </function>
25468     <function name="flow_to_quark" c:identifier="gst_flow_to_quark">
25469       <doc xml:whitespace="preserve">Get the unique quark for the given GstFlowReturn.
25470 invalid return was specified.</doc>
25471       <return-value transfer-ownership="none">
25472         <doc xml:whitespace="preserve">the quark associated with the flow return or 0 if an</doc>
25473         <type name="GLib.Quark" c:type="GQuark"/>
25474       </return-value>
25475       <parameters>
25476         <parameter name="ret" transfer-ownership="none">
25477           <doc xml:whitespace="preserve">a #GstFlowReturn to get the quark of.</doc>
25478           <type name="FlowReturn" c:type="GstFlowReturn"/>
25479         </parameter>
25480       </parameters>
25481     </function>
25482     <function name="format_get_by_nick" c:identifier="gst_format_get_by_nick">
25483       <doc xml:whitespace="preserve">Return the format registered with the given nick.
25484 if the format was not registered.</doc>
25485       <return-value transfer-ownership="none">
25486         <doc xml:whitespace="preserve">The format with @nick or GST_FORMAT_UNDEFINED</doc>
25487         <type name="Format" c:type="GstFormat"/>
25488       </return-value>
25489       <parameters>
25490         <parameter name="nick" transfer-ownership="none">
25491           <doc xml:whitespace="preserve">The nick of the format</doc>
25492           <type name="utf8" c:type="gchar*"/>
25493         </parameter>
25494       </parameters>
25495     </function>
25496     <function name="format_get_details" c:identifier="gst_format_get_details">
25497       <doc xml:whitespace="preserve">Get details about the given format.
25498 MT safe.</doc>
25499       <return-value transfer-ownership="none">
25500         <doc xml:whitespace="preserve">The #GstFormatDefinition for @format or NULL on failure.</doc>
25501         <type name="FormatDefinition" c:type="GstFormatDefinition*"/>
25502       </return-value>
25503       <parameters>
25504         <parameter name="format" transfer-ownership="none">
25505           <doc xml:whitespace="preserve">The format to get details of</doc>
25506           <type name="Format" c:type="GstFormat"/>
25507         </parameter>
25508       </parameters>
25509     </function>
25510     <function name="format_get_name" c:identifier="gst_format_get_name">
25511       <doc xml:whitespace="preserve">Get a printable name for the given format. Do not modify or free.
25512 the format is unknown.</doc>
25513       <return-value transfer-ownership="none">
25514         <doc xml:whitespace="preserve">a reference to the static name of the format or NULL if</doc>
25515         <type name="utf8" c:type="gchar*"/>
25516       </return-value>
25517       <parameters>
25518         <parameter name="format" transfer-ownership="none">
25519           <doc xml:whitespace="preserve">a #GstFormat</doc>
25520           <type name="Format" c:type="GstFormat"/>
25521         </parameter>
25522       </parameters>
25523     </function>
25524     <function name="format_iterate_definitions"
25525               c:identifier="gst_format_iterate_definitions"
25526               introspectable="0">
25527       <doc xml:whitespace="preserve">Iterate all the registered formats. The format definition is read
25528 only.</doc>
25529       <return-value transfer-ownership="full">
25530         <doc xml:whitespace="preserve">a GstIterator of #GstFormatDefinition.</doc>
25531         <type name="Iterator" c:type="GstIterator*"/>
25532       </return-value>
25533     </function>
25534     <function name="format_register" c:identifier="gst_format_register">
25535       <doc xml:whitespace="preserve">Create a new GstFormat based on the nick or return an
25536 already registered format with that nick.
25537 with the same nick.
25538 MT safe.</doc>
25539       <return-value transfer-ownership="none">
25540         <doc xml:whitespace="preserve">A new GstFormat or an already registered format</doc>
25541         <type name="Format" c:type="GstFormat"/>
25542       </return-value>
25543       <parameters>
25544         <parameter name="nick" transfer-ownership="none">
25545           <doc xml:whitespace="preserve">The nick of the new format</doc>
25546           <type name="utf8" c:type="gchar*"/>
25547         </parameter>
25548         <parameter name="description" transfer-ownership="none">
25549           <doc xml:whitespace="preserve">The description of the new format</doc>
25550           <type name="utf8" c:type="gchar*"/>
25551         </parameter>
25552       </parameters>
25553     </function>
25554     <function name="format_to_quark" c:identifier="gst_format_to_quark">
25555       <doc xml:whitespace="preserve">Get the unique quark for the given format.
25556 is unknown.</doc>
25557       <return-value transfer-ownership="none">
25558         <doc xml:whitespace="preserve">the quark associated with the format or 0 if the format</doc>
25559         <type name="GLib.Quark" c:type="GQuark"/>
25560       </return-value>
25561       <parameters>
25562         <parameter name="format" transfer-ownership="none">
25563           <doc xml:whitespace="preserve">a #GstFormat</doc>
25564           <type name="Format" c:type="GstFormat"/>
25565         </parameter>
25566       </parameters>
25567     </function>
25568     <function name="formats_contains" c:identifier="gst_formats_contains">
25569       <doc xml:whitespace="preserve">See if the given format is inside the format array.</doc>
25570       <return-value transfer-ownership="none">
25571         <doc xml:whitespace="preserve">TRUE if the format is found inside the array</doc>
25572         <type name="gboolean" c:type="gboolean"/>
25573       </return-value>
25574       <parameters>
25575         <parameter name="formats" transfer-ownership="none">
25576           <doc xml:whitespace="preserve">The format array to search</doc>
25577           <type name="Format" c:type="GstFormat*"/>
25578         </parameter>
25579         <parameter name="format" transfer-ownership="none">
25580           <doc xml:whitespace="preserve">the format to find</doc>
25581           <type name="Format" c:type="GstFormat"/>
25582         </parameter>
25583       </parameters>
25584     </function>
25585     <function name="fourcc_get_type" c:identifier="gst_fourcc_get_type">
25586       <return-value transfer-ownership="none">
25587         <type name="GType" c:type="GType"/>
25588       </return-value>
25589     </function>
25590     <function name="fraction_get_type" c:identifier="gst_fraction_get_type">
25591       <return-value transfer-ownership="none">
25592         <type name="GType" c:type="GType"/>
25593       </return-value>
25594     </function>
25595     <function name="fraction_range_get_type"
25596               c:identifier="gst_fraction_range_get_type">
25597       <return-value transfer-ownership="none">
25598         <type name="GType" c:type="GType"/>
25599       </return-value>
25600     </function>
25601     <function name="implements_interface_cast"
25602               c:identifier="gst_implements_interface_cast">
25603       <doc xml:whitespace="preserve">cast a given object to an interface type, and check whether this
25604 interface is supported for this specific instance.</doc>
25605       <return-value transfer-ownership="none">
25606         <doc xml:whitespace="preserve">a gpointer to the interface type</doc>
25607         <type name="gpointer" c:type="gpointer"/>
25608       </return-value>
25609       <parameters>
25610         <parameter name="from" transfer-ownership="none">
25611           <doc xml:whitespace="preserve">the object (any sort) from which to cast to the interface</doc>
25612           <type name="gpointer" c:type="gpointer"/>
25613         </parameter>
25614         <parameter name="type" transfer-ownership="none">
25615           <doc xml:whitespace="preserve">the interface type to cast to</doc>
25616           <type name="GType" c:type="GType"/>
25617         </parameter>
25618       </parameters>
25619     </function>
25620     <function name="implements_interface_check"
25621               c:identifier="gst_implements_interface_check">
25622       <doc xml:whitespace="preserve">check a given object for an interface implementation, and check
25623 whether this interface is supported for this specific instance.</doc>
25624       <return-value transfer-ownership="none">
25625         <doc xml:whitespace="preserve">whether or not the object implements the given interface</doc>
25626         <type name="gboolean" c:type="gboolean"/>
25627       </return-value>
25628       <parameters>
25629         <parameter name="from" transfer-ownership="none">
25630           <doc xml:whitespace="preserve">the object (any sort) from which to check from for the interface</doc>
25631           <type name="gpointer" c:type="gpointer"/>
25632         </parameter>
25633         <parameter name="type" transfer-ownership="none">
25634           <doc xml:whitespace="preserve">the interface type to check for</doc>
25635           <type name="GType" c:type="GType"/>
25636         </parameter>
25637       </parameters>
25638     </function>
25639     <function name="init" c:identifier="gst_init">
25640       <doc xml:whitespace="preserve">Initializes the GStreamer library, setting up internal path lists,
25641 registering built-in elements, and loading standard plugins.
25642 Unless the plugin registry is disabled at compile time, the registry will be
25643 loaded. By default this will also check if the registry cache needs to be
25644 updated and rescan all plugins if needed. See gst_update_registry() for
25645 details and section
25646 &lt;link linkend="gst-running"&gt;Running GStreamer Applications&lt;/link&gt;
25647 for how to disable automatic registry updates.
25648 This function should be called before calling any other GLib functions. If
25649 this is not an option, your program must initialise the GLib thread system
25650 using g_thread_init() before any other GLib functions are called.
25651 &lt;note&gt;&lt;para&gt;
25652 This function will terminate your program if it was unable to initialize
25653 GStreamer for some reason.  If you want your program to fall back,
25654 use gst_init_check() instead.
25655 &lt;/para&gt;&lt;/note&gt;
25656 functions in other glib-style libraries, such as gtk_init().  In
25657 particular, unknown command line options cause this function to
25658 abort program execution.</doc>
25659       <return-value transfer-ownership="none">
25660         <type name="none" c:type="void"/>
25661       </return-value>
25662       <parameters>
25663         <parameter name="argc"
25664                    direction="inout"
25665                    caller-allocates="0"
25666                    transfer-ownership="full"
25667                    allow-none="1">
25668           <doc xml:whitespace="preserve">pointer to application's argc</doc>
25669           <type name="gint" c:type="int*"/>
25670         </parameter>
25671         <parameter name="argv"
25672                    direction="inout"
25673                    caller-allocates="0"
25674                    transfer-ownership="full"
25675                    allow-none="1">
25676           <doc xml:whitespace="preserve">pointer to application's argv</doc>
25677           <array length="0" c:type="char**">
25678             <type name="utf8" c:type="char*"/>
25679           </array>
25680         </parameter>
25681       </parameters>
25682     </function>
25683     <function name="init_check" c:identifier="gst_init_check" throws="1">
25684       <doc xml:whitespace="preserve">Initializes the GStreamer library, setting up internal path lists,
25685 registering built-in elements, and loading standard plugins.
25686 This function will return %FALSE if GStreamer could not be initialized
25687 for some reason.  If you want your program to fail fatally,
25688 use gst_init() instead.
25689 This function should be called before calling any other GLib functions. If
25690 this is not an option, your program must initialise the GLib thread system
25691 using g_thread_init() before any other GLib functions are called.</doc>
25692       <return-value transfer-ownership="none">
25693         <doc xml:whitespace="preserve">%TRUE if GStreamer could be initialized.</doc>
25694         <type name="gboolean" c:type="gboolean"/>
25695       </return-value>
25696       <parameters>
25697         <parameter name="argc"
25698                    direction="inout"
25699                    caller-allocates="0"
25700                    transfer-ownership="full"
25701                    allow-none="1">
25702           <doc xml:whitespace="preserve">pointer to application's argc</doc>
25703           <type name="gint" c:type="int*"/>
25704         </parameter>
25705         <parameter name="argv"
25706                    direction="inout"
25707                    caller-allocates="0"
25708                    transfer-ownership="full"
25709                    allow-none="1">
25710           <doc xml:whitespace="preserve">pointer to application's argv</doc>
25711           <array length="0" c:type="char**">
25712             <type name="utf8" c:type="char*"/>
25713           </array>
25714         </parameter>
25715       </parameters>
25716     </function>
25717     <function name="init_get_option_group"
25718               c:identifier="gst_init_get_option_group"
25719               introspectable="0">
25720       <doc xml:whitespace="preserve">Returns a #GOptionGroup with GStreamer's argument specifications. The
25721 group is set up to use standard GOption callbacks, so when using this
25722 group in combination with GOption parsing methods, all argument parsing
25723 and initialization is automated.
25724 This function is useful if you want to integrate GStreamer with other
25725 libraries that use GOption (see g_option_context_add_group() ).
25726 If you use this function, you should make sure you initialise the GLib
25727 threading system as one of the very first things in your program
25728 (see the example at the beginning of this section).</doc>
25729       <return-value transfer-ownership="full">
25730         <doc xml:whitespace="preserve">a pointer to GStreamer's option group.</doc>
25731         <type name="GLib.OptionGroup" c:type="GOptionGroup*"/>
25732       </return-value>
25733     </function>
25734     <function name="int64_range_get_type"
25735               c:identifier="gst_int64_range_get_type">
25736       <return-value transfer-ownership="none">
25737         <type name="GType" c:type="GType"/>
25738       </return-value>
25739     </function>
25740     <function name="int_range_get_type" c:identifier="gst_int_range_get_type">
25741       <return-value transfer-ownership="none">
25742         <type name="GType" c:type="GType"/>
25743       </return-value>
25744     </function>
25745     <function name="is_initialized"
25746               c:identifier="gst_is_initialized"
25747               version="0.10.31">
25748       <doc xml:whitespace="preserve">Use this function to check if GStreamer has been initialized with gst_init()
25749 or gst_init_check().</doc>
25750       <return-value transfer-ownership="none">
25751         <doc xml:whitespace="preserve">TRUE if initialization has been done, FALSE otherwise.</doc>
25752         <type name="gboolean" c:type="gboolean"/>
25753       </return-value>
25754     </function>
25755     <function name="is_tag_list" c:identifier="gst_is_tag_list">
25756       <doc xml:whitespace="preserve">Checks if the given pointer is a taglist.</doc>
25757       <return-value transfer-ownership="none">
25758         <doc xml:whitespace="preserve">TRUE, if the given pointer is a taglist</doc>
25759         <type name="gboolean" c:type="gboolean"/>
25760       </return-value>
25761       <parameters>
25762         <parameter name="p" transfer-ownership="none">
25763           <doc xml:whitespace="preserve">Object that might be a taglist</doc>
25764           <type name="gpointer" c:type="gconstpointer"/>
25765         </parameter>
25766       </parameters>
25767     </function>
25768     <function name="iterator_new"
25769               c:identifier="gst_iterator_new"
25770               introspectable="0">
25771       <doc xml:whitespace="preserve">Create a new iterator. This function is mainly used for objects
25772 implementing the next/resync/free function to iterate a data structure.
25773 For each item retrieved, the @item function is called with the lock
25774 held. The @free function is called when the iterator is freed.
25775 MT safe.</doc>
25776       <return-value>
25777         <doc xml:whitespace="preserve">the new #GstIterator.</doc>
25778         <type name="Iterator" c:type="GstIterator*"/>
25779       </return-value>
25780       <parameters>
25781         <parameter name="size" transfer-ownership="none">
25782           <doc xml:whitespace="preserve">the size of the iterator structure</doc>
25783           <type name="guint" c:type="guint"/>
25784         </parameter>
25785         <parameter name="type" transfer-ownership="none">
25786           <doc xml:whitespace="preserve">#GType of children</doc>
25787           <type name="GType" c:type="GType"/>
25788         </parameter>
25789         <parameter name="lock" transfer-ownership="none">
25790           <doc xml:whitespace="preserve">pointer to a #GMutex.</doc>
25791           <type name="GLib.Mutex" c:type="GMutex*"/>
25792         </parameter>
25793         <parameter name="master_cookie" transfer-ownership="none">
25794           <doc xml:whitespace="preserve">pointer to a guint32 that is changed when the items in the iterator changed.</doc>
25795           <type name="guint32" c:type="guint32*"/>
25796         </parameter>
25797         <parameter name="next" transfer-ownership="none">
25798           <doc xml:whitespace="preserve">function to get next item</doc>
25799           <type name="IteratorNextFunction" c:type="GstIteratorNextFunction"/>
25800         </parameter>
25801         <parameter name="item" transfer-ownership="none">
25802           <doc xml:whitespace="preserve">function to call on each item retrieved</doc>
25803           <type name="IteratorItemFunction" c:type="GstIteratorItemFunction"/>
25804         </parameter>
25805         <parameter name="resync" transfer-ownership="none">
25806           <doc xml:whitespace="preserve">function to resync the iterator</doc>
25807           <type name="IteratorResyncFunction"
25808                 c:type="GstIteratorResyncFunction"/>
25809         </parameter>
25810         <parameter name="free" transfer-ownership="none">
25811           <doc xml:whitespace="preserve">function to free the iterator</doc>
25812           <type name="IteratorFreeFunction" c:type="GstIteratorFreeFunction"/>
25813         </parameter>
25814       </parameters>
25815     </function>
25816     <function name="iterator_new_list"
25817               c:identifier="gst_iterator_new_list"
25818               introspectable="0">
25819       <doc xml:whitespace="preserve">Create a new iterator designed for iterating @list.
25820 The list you iterate is usually part of a data structure @owner and is
25821 protected with @lock. 
25822 The iterator will use @lock to retrieve the next item of the list and it
25823 will then call the @item function before releasing @lock again.
25824 The @item function usualy makes sure that the item remains alive while
25825 responsible for freeing/unreffing the item after usage as explained in
25826 gst_iterator_next().
25827 When a concurrent update to the list is performed, usually by @owner while
25828 holding @lock, @master_cookie will be updated. The iterator implementation
25829 will notice the update of the cookie and will return %GST_ITERATOR_RESYNC to
25830 the user of the iterator in the next call to gst_iterator_next().
25831 MT safe.</doc>
25832       <return-value>
25833         <doc xml:whitespace="preserve">the new #GstIterator for @list.</doc>
25834         <type name="Iterator" c:type="GstIterator*"/>
25835       </return-value>
25836       <parameters>
25837         <parameter name="type" transfer-ownership="none">
25838           <doc xml:whitespace="preserve">#GType of elements</doc>
25839           <type name="GType" c:type="GType"/>
25840         </parameter>
25841         <parameter name="lock" transfer-ownership="none">
25842           <doc xml:whitespace="preserve">pointer to a #GMutex protecting the list.</doc>
25843           <type name="GLib.Mutex" c:type="GMutex*"/>
25844         </parameter>
25845         <parameter name="master_cookie" transfer-ownership="none">
25846           <doc xml:whitespace="preserve">pointer to a guint32 that is incremented when the list is changed.</doc>
25847           <type name="guint32" c:type="guint32*"/>
25848         </parameter>
25849         <parameter name="list" transfer-ownership="none">
25850           <doc xml:whitespace="preserve">pointer to the list</doc>
25851           <type name="GLib.List" c:type="GList**">
25852             <type name="gpointer" c:type="gpointer"/>
25853           </type>
25854         </parameter>
25855         <parameter name="owner" transfer-ownership="none">
25856           <doc xml:whitespace="preserve">object owning the list</doc>
25857           <type name="gpointer" c:type="gpointer"/>
25858         </parameter>
25859         <parameter name="item" transfer-ownership="none">
25860           <doc xml:whitespace="preserve">function to call for each item</doc>
25861           <type name="IteratorItemFunction" c:type="GstIteratorItemFunction"/>
25862         </parameter>
25863         <parameter name="free" transfer-ownership="none">
25864           <doc xml:whitespace="preserve">function to call when the iterator is freed</doc>
25865           <type name="IteratorDisposeFunction"
25866                 c:type="GstIteratorDisposeFunction"/>
25867         </parameter>
25868       </parameters>
25869     </function>
25870     <function name="iterator_new_single"
25871               c:identifier="gst_iterator_new_single"
25872               version="0.10.25"
25873               introspectable="0">
25874       <doc xml:whitespace="preserve">This #GstIterator is a convenient iterator for the common
25875 case where a #GstIterator needs to be returned but only
25876 a single object has to be considered. This happens often
25877 for the #GstPadIterIntLinkFunction.</doc>
25878       <return-value>
25879         <doc xml:whitespace="preserve">the new #GstIterator for @object.</doc>
25880         <type name="Iterator" c:type="GstIterator*"/>
25881       </return-value>
25882       <parameters>
25883         <parameter name="type" transfer-ownership="none">
25884           <doc xml:whitespace="preserve">#GType of the passed object</doc>
25885           <type name="GType" c:type="GType"/>
25886         </parameter>
25887         <parameter name="object" transfer-ownership="none">
25888           <doc xml:whitespace="preserve">object that this iterator should return</doc>
25889           <type name="gpointer" c:type="gpointer"/>
25890         </parameter>
25891         <parameter name="copy" transfer-ownership="none">
25892           <doc xml:whitespace="preserve">Function that returns a copy of @object or increases its refcount</doc>
25893           <type name="CopyFunction" c:type="GstCopyFunction"/>
25894         </parameter>
25895         <parameter name="free" transfer-ownership="none">
25896           <doc xml:whitespace="preserve">Function to be called for freeing @object</doc>
25897           <type name="GLib.FreeFunc" c:type="GFreeFunc"/>
25898         </parameter>
25899       </parameters>
25900     </function>
25901     <function name="library_error_quark"
25902               c:identifier="gst_library_error_quark">
25903       <return-value transfer-ownership="none">
25904         <type name="GLib.Quark" c:type="GQuark"/>
25905       </return-value>
25906     </function>
25907     <function name="param_spec_mini_object"
25908               c:identifier="gst_param_spec_mini_object"
25909               introspectable="0">
25910       <doc xml:whitespace="preserve">Creates a new #GParamSpec instance that hold #GstMiniObject references.</doc>
25911       <return-value transfer-ownership="full">
25912         <doc xml:whitespace="preserve">a newly allocated #GParamSpec instance</doc>
25913         <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
25914       </return-value>
25915       <parameters>
25916         <parameter name="name" transfer-ownership="none">
25917           <doc xml:whitespace="preserve">the canonical name of the property</doc>
25918           <type name="utf8" c:type="char*"/>
25919         </parameter>
25920         <parameter name="nick" transfer-ownership="none">
25921           <doc xml:whitespace="preserve">the nickname of the property</doc>
25922           <type name="utf8" c:type="char*"/>
25923         </parameter>
25924         <parameter name="blurb" transfer-ownership="none">
25925           <doc xml:whitespace="preserve">a short description of the property</doc>
25926           <type name="utf8" c:type="char*"/>
25927         </parameter>
25928         <parameter name="object_type" transfer-ownership="none">
25929           <doc xml:whitespace="preserve">the #GstMiniObject #GType for the property</doc>
25930           <type name="GType" c:type="GType"/>
25931         </parameter>
25932         <parameter name="flags" transfer-ownership="none">
25933           <doc xml:whitespace="preserve">a combination of #GParamFlags</doc>
25934           <type name="GObject.ParamFlags" c:type="GParamFlags"/>
25935         </parameter>
25936       </parameters>
25937     </function>
25938     <function name="param_spec_mini_object_get_type"
25939               c:identifier="gst_param_spec_mini_object_get_type">
25940       <return-value transfer-ownership="none">
25941         <type name="GType" c:type="GType"/>
25942       </return-value>
25943     </function>
25944     <function name="parse_bin_from_description"
25945               c:identifier="gst_parse_bin_from_description"
25946               version="0.10.3"
25947               throws="1">
25948       <doc xml:whitespace="preserve">This is a convenience wrapper around gst_parse_launch() to create a
25949 #GstBin from a gst-launch-style pipeline description. See
25950 gst_parse_launch() and the gst-launch man page for details about the
25951 syntax. Ghost pads on the bin for unlinked source or sink pads
25952 within the bin can automatically be created (but only a maximum of
25953 one ghost pad for each direction will be created; if you expect
25954 multiple unlinked source pads or multiple unlinked sink pads
25955 and want them all ghosted, you will have to create the ghost pads
25956 yourself).</doc>
25957       <return-value transfer-ownership="full">
25958         <doc xml:whitespace="preserve">a newly-created bin, or NULL if an error occurred.</doc>
25959         <type name="Element" c:type="GstElement*"/>
25960       </return-value>
25961       <parameters>
25962         <parameter name="bin_description" transfer-ownership="none">
25963           <doc xml:whitespace="preserve">command line describing the bin</doc>
25964           <type name="utf8" c:type="gchar*"/>
25965         </parameter>
25966         <parameter name="ghost_unlinked_pads" transfer-ownership="none">
25967           <doc xml:whitespace="preserve">whether to automatically create ghost pads for unlinked source or sink pads within the bin</doc>
25968           <type name="gboolean" c:type="gboolean"/>
25969         </parameter>
25970       </parameters>
25971     </function>
25972     <function name="parse_bin_from_description_full"
25973               c:identifier="gst_parse_bin_from_description_full"
25974               version="0.10.20"
25975               throws="1">
25976       <doc xml:whitespace="preserve">This is a convenience wrapper around gst_parse_launch() to create a
25977 #GstBin from a gst-launch-style pipeline description. See
25978 gst_parse_launch() and the gst-launch man page for details about the
25979 syntax. Ghost pads on the bin for unlinked source or sink pads
25980 within the bin can automatically be created (but only a maximum of
25981 one ghost pad for each direction will be created; if you expect
25982 multiple unlinked source pads or multiple unlinked sink pads
25983 and want them all ghosted, you will have to create the ghost pads
25984 yourself).</doc>
25985       <return-value transfer-ownership="full">
25986         <doc xml:whitespace="preserve">a newly-created bin, or NULL if an error occurred.</doc>
25987         <type name="Element" c:type="GstElement*"/>
25988       </return-value>
25989       <parameters>
25990         <parameter name="bin_description" transfer-ownership="none">
25991           <doc xml:whitespace="preserve">command line describing the bin</doc>
25992           <type name="utf8" c:type="gchar*"/>
25993         </parameter>
25994         <parameter name="ghost_unlinked_pads" transfer-ownership="none">
25995           <doc xml:whitespace="preserve">whether to automatically create ghost pads for unlinked source or sink pads within the bin</doc>
25996           <type name="gboolean" c:type="gboolean"/>
25997         </parameter>
25998         <parameter name="context" transfer-ownership="none" allow-none="1">
25999           <doc xml:whitespace="preserve">a parse context allocated with gst_parse_context_new(), or %NULL</doc>
26000           <type name="ParseContext" c:type="GstParseContext*"/>
26001         </parameter>
26002         <parameter name="flags" transfer-ownership="none">
26003           <doc xml:whitespace="preserve">parsing options, or #GST_PARSE_FLAG_NONE</doc>
26004           <type name="ParseFlags" c:type="GstParseFlags"/>
26005         </parameter>
26006       </parameters>
26007     </function>
26008     <function name="parse_error_quark" c:identifier="gst_parse_error_quark">
26009       <doc xml:whitespace="preserve">Get the error quark used by the parsing subsystem.</doc>
26010       <return-value transfer-ownership="none">
26011         <doc xml:whitespace="preserve">the quark of the parse errors.</doc>
26012         <type name="GLib.Quark" c:type="GQuark"/>
26013       </return-value>
26014     </function>
26015     <function name="parse_launch" c:identifier="gst_parse_launch" throws="1">
26016       <doc xml:whitespace="preserve">Create a new pipeline based on command line syntax.
26017 Please note that you might get a return value that is not %NULL even though
26018 the @error is set. In this case there was a recoverable parsing error and you
26019 can try to play the pipeline.
26020 more than one toplevel element is specified by the @pipeline_description,
26021 all elements are put into a #GstPipeline, which than is returned.</doc>
26022       <return-value transfer-ownership="full">
26023         <doc xml:whitespace="preserve">a new element on success, %NULL on failure. If</doc>
26024         <type name="Element" c:type="GstElement*"/>
26025       </return-value>
26026       <parameters>
26027         <parameter name="pipeline_description" transfer-ownership="none">
26028           <doc xml:whitespace="preserve">the command line describing the pipeline</doc>
26029           <type name="utf8" c:type="gchar*"/>
26030         </parameter>
26031       </parameters>
26032     </function>
26033     <function name="parse_launch_full"
26034               c:identifier="gst_parse_launch_full"
26035               version="0.10.20"
26036               throws="1">
26037       <doc xml:whitespace="preserve">Create a new pipeline based on command line syntax.
26038 Please note that you might get a return value that is not %NULL even though
26039 the @error is set. In this case there was a recoverable parsing error and you
26040 can try to play the pipeline.
26041 more than one toplevel element is specified by the @pipeline_description,
26042 all elements are put into a #GstPipeline, which then is returned.</doc>
26043       <return-value transfer-ownership="full">
26044         <doc xml:whitespace="preserve">a new element on success, %NULL on failure. If</doc>
26045         <type name="Element" c:type="GstElement*"/>
26046       </return-value>
26047       <parameters>
26048         <parameter name="pipeline_description" transfer-ownership="none">
26049           <doc xml:whitespace="preserve">the command line describing the pipeline</doc>
26050           <type name="utf8" c:type="gchar*"/>
26051         </parameter>
26052         <parameter name="context" transfer-ownership="none" allow-none="1">
26053           <doc xml:whitespace="preserve">a parse context allocated with gst_parse_context_new(), or %NULL</doc>
26054           <type name="ParseContext" c:type="GstParseContext*"/>
26055         </parameter>
26056         <parameter name="flags" transfer-ownership="none">
26057           <doc xml:whitespace="preserve">parsing options, or #GST_PARSE_FLAG_NONE</doc>
26058           <type name="ParseFlags" c:type="GstParseFlags"/>
26059         </parameter>
26060       </parameters>
26061     </function>
26062     <function name="parse_launchv" c:identifier="gst_parse_launchv" throws="1">
26063       <doc xml:whitespace="preserve">Create a new element based on command line syntax.
26064 An error does not mean that the pipeline could not be constructed.</doc>
26065       <return-value transfer-ownership="full">
26066         <doc xml:whitespace="preserve">a new element on success and %NULL on failure.</doc>
26067         <type name="Element" c:type="GstElement*"/>
26068       </return-value>
26069       <parameters>
26070         <parameter name="argv" transfer-ownership="none">
26071           <doc xml:whitespace="preserve">null-terminated array of arguments</doc>
26072           <array c:type="gchar**">
26073             <type name="utf8" c:type="gchar*"/>
26074           </array>
26075         </parameter>
26076       </parameters>
26077     </function>
26078     <function name="parse_launchv_full"
26079               c:identifier="gst_parse_launchv_full"
26080               version="0.10.20"
26081               throws="1">
26082       <doc xml:whitespace="preserve">Create a new element based on command line syntax.
26083 An error does not mean that the pipeline could not be constructed.
26084 or a partially-constructed bin or element will be returned and @error will
26085 be set (unless you passed #GST_PARSE_FLAG_FATAL_ERRORS in @flags, then
26086 %NULL will always be returned on failure)</doc>
26087       <return-value transfer-ownership="full">
26088         <doc xml:whitespace="preserve">a new element on success; on failure, either %NULL</doc>
26089         <type name="Element" c:type="GstElement*"/>
26090       </return-value>
26091       <parameters>
26092         <parameter name="argv" transfer-ownership="none">
26093           <doc xml:whitespace="preserve">null-terminated array of arguments</doc>
26094           <array c:type="gchar**">
26095             <type name="utf8" c:type="gchar*"/>
26096           </array>
26097         </parameter>
26098         <parameter name="context" transfer-ownership="none" allow-none="1">
26099           <doc xml:whitespace="preserve">a parse context allocated with gst_parse_context_new(), or %NULL</doc>
26100           <type name="ParseContext" c:type="GstParseContext*"/>
26101         </parameter>
26102         <parameter name="flags" transfer-ownership="none">
26103           <doc xml:whitespace="preserve">parsing options, or #GST_PARSE_FLAG_NONE</doc>
26104           <type name="ParseFlags" c:type="GstParseFlags"/>
26105         </parameter>
26106       </parameters>
26107     </function>
26108     <function name="poll_new"
26109               c:identifier="gst_poll_new"
26110               version="0.10.18"
26111               introspectable="0">
26112       <doc xml:whitespace="preserve">Create a new file descriptor set. If @controllable, it
26113 is possible to restart or flush a call to gst_poll_wait() with
26114 gst_poll_restart() and gst_poll_set_flushing() respectively.
26115 Free with gst_poll_free().</doc>
26116       <return-value transfer-ownership="full">
26117         <doc xml:whitespace="preserve">a new #GstPoll, or %NULL in case of an error.</doc>
26118         <type name="Poll" c:type="GstPoll*"/>
26119       </return-value>
26120       <parameters>
26121         <parameter name="controllable" transfer-ownership="none">
26122           <doc xml:whitespace="preserve">whether it should be possible to control a wait.</doc>
26123           <type name="gboolean" c:type="gboolean"/>
26124         </parameter>
26125       </parameters>
26126     </function>
26127     <function name="poll_new_timer"
26128               c:identifier="gst_poll_new_timer"
26129               version="0.10.23"
26130               introspectable="0">
26131       <doc xml:whitespace="preserve">Create a new poll object that can be used for scheduling cancellable
26132 timeouts.
26133 A timeout is performed with gst_poll_wait(). Multiple timeouts can be
26134 performed from different threads. 
26135 Free with gst_poll_free().</doc>
26136       <return-value transfer-ownership="full">
26137         <doc xml:whitespace="preserve">a new #GstPoll, or %NULL in case of an error.</doc>
26138         <type name="Poll" c:type="GstPoll*"/>
26139       </return-value>
26140     </function>
26141     <function name="print_element_args" c:identifier="gst_print_element_args">
26142       <doc xml:whitespace="preserve">Print the element argument in a human readable format in the given
26143 GString.</doc>
26144       <return-value transfer-ownership="none">
26145         <type name="none" c:type="void"/>
26146       </return-value>
26147       <parameters>
26148         <parameter name="buf" transfer-ownership="none">
26149           <doc xml:whitespace="preserve">the buffer to print the args in</doc>
26150           <type name="GLib.String" c:type="GString*"/>
26151         </parameter>
26152         <parameter name="indent" transfer-ownership="none">
26153           <doc xml:whitespace="preserve">initial indentation</doc>
26154           <type name="gint" c:type="gint"/>
26155         </parameter>
26156         <parameter name="element" transfer-ownership="none">
26157           <doc xml:whitespace="preserve">the element to print the args of</doc>
26158           <type name="Element" c:type="GstElement*"/>
26159         </parameter>
26160       </parameters>
26161     </function>
26162     <function name="print_pad_caps" c:identifier="gst_print_pad_caps">
26163       <doc xml:whitespace="preserve">Write the pad capabilities in a human readable format into
26164 the given GString.</doc>
26165       <return-value transfer-ownership="none">
26166         <type name="none" c:type="void"/>
26167       </return-value>
26168       <parameters>
26169         <parameter name="buf" transfer-ownership="none">
26170           <doc xml:whitespace="preserve">the buffer to print the caps in</doc>
26171           <type name="GLib.String" c:type="GString*"/>
26172         </parameter>
26173         <parameter name="indent" transfer-ownership="none">
26174           <doc xml:whitespace="preserve">initial indentation</doc>
26175           <type name="gint" c:type="gint"/>
26176         </parameter>
26177         <parameter name="pad" transfer-ownership="none">
26178           <doc xml:whitespace="preserve">the pad to print the caps from</doc>
26179           <type name="Pad" c:type="GstPad*"/>
26180         </parameter>
26181       </parameters>
26182     </function>
26183     <function name="resource_error_quark"
26184               c:identifier="gst_resource_error_quark">
26185       <return-value transfer-ownership="none">
26186         <type name="GLib.Quark" c:type="GQuark"/>
26187       </return-value>
26188     </function>
26189     <function name="segtrap_is_enabled"
26190               c:identifier="gst_segtrap_is_enabled"
26191               version="0.10.10">
26192       <doc xml:whitespace="preserve">Some functions in the GStreamer core might install a custom SIGSEGV handler
26193 to better catch and report errors to the application. Currently this feature
26194 is enabled by default when loading plugins.
26195 Applications might want to disable this behaviour with the
26196 gst_segtrap_set_enabled() function. This is typically done if the application
26197 wants to install its own handler without GStreamer interfering.</doc>
26198       <return-value transfer-ownership="none">
26199         <doc xml:whitespace="preserve">%TRUE if GStreamer is allowed to install a custom SIGSEGV handler.</doc>
26200         <type name="gboolean" c:type="gboolean"/>
26201       </return-value>
26202     </function>
26203     <function name="segtrap_set_enabled"
26204               c:identifier="gst_segtrap_set_enabled"
26205               version="0.10.10">
26206       <doc xml:whitespace="preserve">Applications might want to disable/enable the SIGSEGV handling of
26207 the GStreamer core. See gst_segtrap_is_enabled() for more information.</doc>
26208       <return-value transfer-ownership="none">
26209         <type name="none" c:type="void"/>
26210       </return-value>
26211       <parameters>
26212         <parameter name="enabled" transfer-ownership="none">
26213           <doc xml:whitespace="preserve">whether a custom SIGSEGV handler should be installed.</doc>
26214           <type name="gboolean" c:type="gboolean"/>
26215         </parameter>
26216       </parameters>
26217     </function>
26218     <function name="static_caps_get_type"
26219               c:identifier="gst_static_caps_get_type">
26220       <return-value transfer-ownership="none">
26221         <type name="GType" c:type="GType"/>
26222       </return-value>
26223     </function>
26224     <function name="static_pad_template_get_type"
26225               c:identifier="gst_static_pad_template_get_type">
26226       <return-value transfer-ownership="none">
26227         <type name="GType" c:type="GType"/>
26228       </return-value>
26229     </function>
26230     <function name="stream_error_quark" c:identifier="gst_stream_error_quark">
26231       <return-value transfer-ownership="none">
26232         <type name="GLib.Quark" c:type="GQuark"/>
26233       </return-value>
26234     </function>
26235     <function name="structure_from_string"
26236               c:identifier="gst_structure_from_string">
26237       <doc xml:whitespace="preserve">Creates a #GstStructure from a string representation.
26238 If end is not NULL, a pointer to the place inside the given string
26239 where parsing ended will be returned.
26240 not be parsed. Free with gst_structure_free() after use.</doc>
26241       <return-value transfer-ownership="full">
26242         <doc xml:whitespace="preserve">a new #GstStructure or NULL when the string could</doc>
26243         <type name="Structure" c:type="GstStructure*"/>
26244       </return-value>
26245       <parameters>
26246         <parameter name="string" transfer-ownership="none">
26247           <doc xml:whitespace="preserve">a string representation of a #GstStructure.</doc>
26248           <type name="utf8" c:type="gchar*"/>
26249         </parameter>
26250         <parameter name="end"
26251                    direction="out"
26252                    caller-allocates="0"
26253                    transfer-ownership="full"
26254                    allow-none="1">
26255           <doc xml:whitespace="preserve">pointer to store the end of the string in.</doc>
26256           <type name="utf8" c:type="gchar**"/>
26257         </parameter>
26258       </parameters>
26259     </function>
26260     <function name="tag_exists" c:identifier="gst_tag_exists">
26261       <doc xml:whitespace="preserve">Checks if the given type is already registered.</doc>
26262       <return-value transfer-ownership="none">
26263         <doc xml:whitespace="preserve">TRUE if the type is already registered</doc>
26264         <type name="gboolean" c:type="gboolean"/>
26265       </return-value>
26266       <parameters>
26267         <parameter name="tag" transfer-ownership="none">
26268           <doc xml:whitespace="preserve">name of the tag</doc>
26269           <type name="utf8" c:type="gchar*"/>
26270         </parameter>
26271       </parameters>
26272     </function>
26273     <function name="tag_get_description"
26274               c:identifier="gst_tag_get_description">
26275       <doc xml:whitespace="preserve">Returns the human-readable description of this tag, You must not change or
26276 free this string.</doc>
26277       <return-value transfer-ownership="none">
26278         <doc xml:whitespace="preserve">the human-readable description of this tag</doc>
26279         <type name="utf8" c:type="gchar*"/>
26280       </return-value>
26281       <parameters>
26282         <parameter name="tag" transfer-ownership="none">
26283           <doc xml:whitespace="preserve">the tag</doc>
26284           <type name="utf8" c:type="gchar*"/>
26285         </parameter>
26286       </parameters>
26287     </function>
26288     <function name="tag_get_flag" c:identifier="gst_tag_get_flag">
26289       <doc xml:whitespace="preserve">Gets the flag of @tag.</doc>
26290       <return-value transfer-ownership="none">
26291         <doc xml:whitespace="preserve">the flag of this tag.</doc>
26292         <type name="TagFlag" c:type="GstTagFlag"/>
26293       </return-value>
26294       <parameters>
26295         <parameter name="tag" transfer-ownership="none">
26296           <doc xml:whitespace="preserve">the tag</doc>
26297           <type name="utf8" c:type="gchar*"/>
26298         </parameter>
26299       </parameters>
26300     </function>
26301     <function name="tag_get_nick" c:identifier="gst_tag_get_nick">
26302       <doc xml:whitespace="preserve">Returns the human-readable name of this tag, You must not change or free
26303 this string.</doc>
26304       <return-value transfer-ownership="none">
26305         <doc xml:whitespace="preserve">the human-readable name of this tag</doc>
26306         <type name="utf8" c:type="gchar*"/>
26307       </return-value>
26308       <parameters>
26309         <parameter name="tag" transfer-ownership="none">
26310           <doc xml:whitespace="preserve">the tag</doc>
26311           <type name="utf8" c:type="gchar*"/>
26312         </parameter>
26313       </parameters>
26314     </function>
26315     <function name="tag_get_type" c:identifier="gst_tag_get_type">
26316       <doc xml:whitespace="preserve">Gets the #GType used for this tag.</doc>
26317       <return-value transfer-ownership="none">
26318         <doc xml:whitespace="preserve">the #GType of this tag</doc>
26319         <type name="GType" c:type="GType"/>
26320       </return-value>
26321       <parameters>
26322         <parameter name="tag" transfer-ownership="none">
26323           <doc xml:whitespace="preserve">the tag</doc>
26324           <type name="utf8" c:type="gchar*"/>
26325         </parameter>
26326       </parameters>
26327     </function>
26328     <function name="tag_is_fixed" c:identifier="gst_tag_is_fixed">
26329       <doc xml:whitespace="preserve">Checks if the given tag is fixed. A fixed tag can only contain one value.
26330 Unfixed tags can contain lists of values.</doc>
26331       <return-value transfer-ownership="none">
26332         <doc xml:whitespace="preserve">TRUE, if the given tag is fixed.</doc>
26333         <type name="gboolean" c:type="gboolean"/>
26334       </return-value>
26335       <parameters>
26336         <parameter name="tag" transfer-ownership="none">
26337           <doc xml:whitespace="preserve">tag to check</doc>
26338           <type name="utf8" c:type="gchar*"/>
26339         </parameter>
26340       </parameters>
26341     </function>
26342     <function name="tag_list_copy_value"
26343               c:identifier="gst_tag_list_copy_value">
26344       <doc xml:whitespace="preserve">Copies the contents for the given tag into the value,
26345 merging multiple values into one if multiple values are associated
26346 with the tag.
26347 You must g_value_unset() the value after use.
26348 given list.</doc>
26349       <return-value transfer-ownership="none">
26350         <doc xml:whitespace="preserve">TRUE, if a value was copied, FALSE if the tag didn't exist in the</doc>
26351         <type name="gboolean" c:type="gboolean"/>
26352       </return-value>
26353       <parameters>
26354         <parameter name="dest"
26355                    direction="out"
26356                    caller-allocates="1"
26357                    transfer-ownership="none">
26358           <doc xml:whitespace="preserve">uninitialized #GValue to copy into</doc>
26359           <type name="GObject.Value" c:type="GValue*"/>
26360         </parameter>
26361         <parameter name="list" transfer-ownership="none">
26362           <doc xml:whitespace="preserve">list to get the tag from</doc>
26363           <type name="TagList" c:type="GstTagList*"/>
26364         </parameter>
26365         <parameter name="tag" transfer-ownership="none">
26366           <doc xml:whitespace="preserve">tag to read out</doc>
26367           <type name="utf8" c:type="gchar*"/>
26368         </parameter>
26369       </parameters>
26370     </function>
26371     <function name="tag_merge_strings_with_comma"
26372               c:identifier="gst_tag_merge_strings_with_comma">
26373       <doc xml:whitespace="preserve">This is a convenience function for the func argument of gst_tag_register().
26374 It concatenates all given strings using a comma. The tag must be registered
26375 as a G_TYPE_STRING or this function will fail.</doc>
26376       <return-value transfer-ownership="none">
26377         <type name="none" c:type="void"/>
26378       </return-value>
26379       <parameters>
26380         <parameter name="dest"
26381                    direction="out"
26382                    caller-allocates="1"
26383                    transfer-ownership="none">
26384           <doc xml:whitespace="preserve">uninitialized GValue to store result in</doc>
26385           <type name="GObject.Value" c:type="GValue*"/>
26386         </parameter>
26387         <parameter name="src" transfer-ownership="none">
26388           <doc xml:whitespace="preserve">GValue to copy from</doc>
26389           <type name="GObject.Value" c:type="GValue*"/>
26390         </parameter>
26391       </parameters>
26392     </function>
26393     <function name="tag_merge_use_first"
26394               c:identifier="gst_tag_merge_use_first">
26395       <doc xml:whitespace="preserve">This is a convenience function for the func argument of gst_tag_register().
26396 It creates a copy of the first value from the list.</doc>
26397       <return-value transfer-ownership="none">
26398         <type name="none" c:type="void"/>
26399       </return-value>
26400       <parameters>
26401         <parameter name="dest"
26402                    direction="out"
26403                    caller-allocates="1"
26404                    transfer-ownership="none">
26405           <doc xml:whitespace="preserve">uninitialized GValue to store result in</doc>
26406           <type name="GObject.Value" c:type="GValue*"/>
26407         </parameter>
26408         <parameter name="src" transfer-ownership="none">
26409           <doc xml:whitespace="preserve">GValue to copy from</doc>
26410           <type name="GObject.Value" c:type="GValue*"/>
26411         </parameter>
26412       </parameters>
26413     </function>
26414     <function name="tag_register"
26415               c:identifier="gst_tag_register"
26416               introspectable="0">
26417       <doc xml:whitespace="preserve">Registers a new tag type for the use with GStreamer's type system. If a type
26418 with that name is already registered, that one is used.
26419 The old registration may have used a different type however. So don't rely
26420 on your supplied values.
26421 that there can only be one single value for this tag in a tag list and
26422 any additional values will silenty be discarded when being added (unless
26423 #GST_TAG_MERGE_REPLACE, #GST_TAG_MERGE_REPLACE_ALL, or
26424 #GST_TAG_MERGE_PREPEND is used as merge mode, in which case the new
26425 value will replace the old one in the list).
26426 The merge function will be called from gst_tag_list_copy_value() when
26427 it is required that one or more values for a tag be condensed into
26428 one single value. This may happen from gst_tag_list_get_string(),
26429 gst_tag_list_get_int(), gst_tag_list_get_double() etc. What will happen
26430 exactly in that case depends on how the tag was registered and if a
26431 merge function was supplied and if so which one.
26432 gst_tag_merge_strings_with_comma().</doc>
26433       <return-value transfer-ownership="none">
26434         <type name="none" c:type="void"/>
26435       </return-value>
26436       <parameters>
26437         <parameter name="name" transfer-ownership="none">
26438           <doc xml:whitespace="preserve">the name or identifier string</doc>
26439           <type name="utf8" c:type="gchar*"/>
26440         </parameter>
26441         <parameter name="flag" transfer-ownership="none">
26442           <doc xml:whitespace="preserve">a flag describing the type of tag info</doc>
26443           <type name="TagFlag" c:type="GstTagFlag"/>
26444         </parameter>
26445         <parameter name="type" transfer-ownership="none">
26446           <doc xml:whitespace="preserve">the type this data is in</doc>
26447           <type name="GType" c:type="GType"/>
26448         </parameter>
26449         <parameter name="nick" transfer-ownership="none">
26450           <doc xml:whitespace="preserve">human-readable name</doc>
26451           <type name="utf8" c:type="gchar*"/>
26452         </parameter>
26453         <parameter name="blurb" transfer-ownership="none">
26454           <doc xml:whitespace="preserve">a human-readable description about this tag</doc>
26455           <type name="utf8" c:type="gchar*"/>
26456         </parameter>
26457         <parameter name="func" transfer-ownership="none">
26458           <doc xml:whitespace="preserve">function for merging multiple values of this tag, or NULL</doc>
26459           <type name="TagMergeFunc" c:type="GstTagMergeFunc"/>
26460         </parameter>
26461       </parameters>
26462     </function>
26463     <function name="trace_new" c:identifier="gst_trace_new" introspectable="0">
26464       <doc xml:whitespace="preserve">Create a ringbuffer of @size in the file with @filename to
26465 store trace results in.</doc>
26466       <return-value transfer-ownership="full">
26467         <doc xml:whitespace="preserve">a new #GstTrace.</doc>
26468         <type name="Trace" c:type="GstTrace*"/>
26469       </return-value>
26470       <parameters>
26471         <parameter name="filename" transfer-ownership="none">
26472           <doc xml:whitespace="preserve">a filename</doc>
26473           <type name="utf8" c:type="gchar*"/>
26474         </parameter>
26475         <parameter name="size" transfer-ownership="none">
26476           <doc xml:whitespace="preserve">the max size of the file</doc>
26477           <type name="gint" c:type="gint"/>
26478         </parameter>
26479       </parameters>
26480     </function>
26481     <function name="trace_read_tsc" c:identifier="gst_trace_read_tsc">
26482       <doc xml:whitespace="preserve">Read a platform independent timer value that can be used in
26483 benchmarks.</doc>
26484       <return-value transfer-ownership="none">
26485         <type name="none" c:type="void"/>
26486       </return-value>
26487       <parameters>
26488         <parameter name="dst" transfer-ownership="none">
26489           <doc xml:whitespace="preserve">(out) pointer to hold the result.</doc>
26490           <type name="gint64" c:type="gint64*"/>
26491         </parameter>
26492       </parameters>
26493     </function>
26494     <function name="type_find_get_type" c:identifier="gst_type_find_get_type">
26495       <return-value transfer-ownership="none">
26496         <type name="GType" c:type="GType"/>
26497       </return-value>
26498     </function>
26499     <function name="type_find_register" c:identifier="gst_type_find_register">
26500       <doc xml:whitespace="preserve">Registers a new typefind function to be used for typefinding. After
26501 registering this function will be available for typefinding.
26502 This function is typically called during an element's plugin initialization.</doc>
26503       <return-value transfer-ownership="none">
26504         <doc xml:whitespace="preserve">TRUE on success, FALSE otherwise</doc>
26505         <type name="gboolean" c:type="gboolean"/>
26506       </return-value>
26507       <parameters>
26508         <parameter name="plugin" transfer-ownership="none">
26509           <doc xml:whitespace="preserve">A #GstPlugin, or NULL for a static typefind function (note that passing NULL only works in GStreamer 0.10.16 and later)</doc>
26510           <type name="Plugin" c:type="GstPlugin*"/>
26511         </parameter>
26512         <parameter name="name" transfer-ownership="none">
26513           <doc xml:whitespace="preserve">The name for registering</doc>
26514           <type name="utf8" c:type="gchar*"/>
26515         </parameter>
26516         <parameter name="rank" transfer-ownership="none">
26517           <doc xml:whitespace="preserve">The rank (or importance) of this typefind function</doc>
26518           <type name="guint" c:type="guint"/>
26519         </parameter>
26520         <parameter name="func"
26521                    transfer-ownership="none"
26522                    scope="notified"
26523                    closure="6"
26524                    destroy="7">
26525           <doc xml:whitespace="preserve">The #GstTypeFindFunction to use</doc>
26526           <type name="TypeFindFunction" c:type="GstTypeFindFunction"/>
26527         </parameter>
26528         <parameter name="extensions" transfer-ownership="none">
26529           <doc xml:whitespace="preserve">Optional extensions that could belong to this type</doc>
26530           <array c:type="gchar**">
26531             <type name="utf8"/>
26532           </array>
26533         </parameter>
26534         <parameter name="possible_caps" transfer-ownership="none">
26535           <doc xml:whitespace="preserve">Optionally the caps that could be returned when typefinding succeeds</doc>
26536           <type name="Caps" c:type="GstCaps*"/>
26537         </parameter>
26538         <parameter name="data" transfer-ownership="none">
26539           <doc xml:whitespace="preserve">Optional user data. This user data must be available until the plugin is unloaded.</doc>
26540           <type name="gpointer" c:type="gpointer"/>
26541         </parameter>
26542         <parameter name="data_notify" transfer-ownership="none" scope="async">
26543           <doc xml:whitespace="preserve">a #GDestroyNotify that will be called on @data when the plugin is unloaded.</doc>
26544           <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
26545         </parameter>
26546       </parameters>
26547     </function>
26548     <function name="type_register_static_full"
26549               c:identifier="gst_type_register_static_full"
26550               version="0.10.14"
26551               introspectable="0">
26552       <doc xml:whitespace="preserve">Helper function which constructs a #GTypeInfo structure and registers a
26553 GType, but which generates less linker overhead than a static const
26554 #GTypeInfo structure. For further details of the parameters, please see
26555 #GTypeInfo in the GLib documentation.
26556 Registers type_name as the name of a new static type derived from
26557 parent_type. The value of flags determines the nature (e.g. abstract or
26558 not) of the type. It works by filling a GTypeInfo struct and calling
26559 g_type_register_static().</doc>
26560       <return-value transfer-ownership="none">
26561         <doc xml:whitespace="preserve">A #GType for the newly-registered type.</doc>
26562         <type name="GType" c:type="GType"/>
26563       </return-value>
26564       <parameters>
26565         <parameter name="parent_type" transfer-ownership="none">
26566           <doc xml:whitespace="preserve">The GType of the parent type the newly registered type will derive from</doc>
26567           <type name="GType" c:type="GType"/>
26568         </parameter>
26569         <parameter name="type_name" transfer-ownership="none">
26570           <doc xml:whitespace="preserve">NULL-terminated string used as the name of the new type</doc>
26571           <type name="utf8" c:type="gchar*"/>
26572         </parameter>
26573         <parameter name="class_size" transfer-ownership="none">
26574           <doc xml:whitespace="preserve">Size of the class structure.</doc>
26575           <type name="guint" c:type="guint"/>
26576         </parameter>
26577         <parameter name="base_init" transfer-ownership="none">
26578           <doc xml:whitespace="preserve">Location of the base initialization function (optional).</doc>
26579           <type name="GObject.BaseInitFunc" c:type="GBaseInitFunc"/>
26580         </parameter>
26581         <parameter name="base_finalize" transfer-ownership="none">
26582           <doc xml:whitespace="preserve">Location of the base finalization function (optional).</doc>
26583           <type name="GObject.BaseFinalizeFunc" c:type="GBaseFinalizeFunc"/>
26584         </parameter>
26585         <parameter name="class_init" transfer-ownership="none">
26586           <doc xml:whitespace="preserve">Location of the class initialization function for class types Location of the default vtable inititalization function for interface types. (optional)</doc>
26587           <type name="GObject.ClassInitFunc" c:type="GClassInitFunc"/>
26588         </parameter>
26589         <parameter name="class_finalize" transfer-ownership="none" closure="7">
26590           <doc xml:whitespace="preserve">Location of the class finalization function for class types. Location of the default vtable finalization function for interface types. (optional)</doc>
26591           <type name="GObject.ClassFinalizeFunc" c:type="GClassFinalizeFunc"/>
26592         </parameter>
26593         <parameter name="class_data" transfer-ownership="none">
26594           <doc xml:whitespace="preserve">User-supplied data passed to the class init/finalize functions.</doc>
26595           <type name="gpointer" c:type="gconstpointer"/>
26596         </parameter>
26597         <parameter name="instance_size" transfer-ownership="none">
26598           <doc xml:whitespace="preserve">Size of the instance (object) structure (required for instantiatable types only).</doc>
26599           <type name="guint" c:type="guint"/>
26600         </parameter>
26601         <parameter name="n_preallocs" transfer-ownership="none">
26602           <doc xml:whitespace="preserve">The number of pre-allocated (cached) instances to reserve memory for (0 indicates no caching). Ignored on recent GLib's.</doc>
26603           <type name="guint16" c:type="guint16"/>
26604         </parameter>
26605         <parameter name="instance_init" transfer-ownership="none">
26606           <doc xml:whitespace="preserve">Location of the instance initialization function (optional, for instantiatable types only).</doc>
26607           <type name="GObject.InstanceInitFunc" c:type="GInstanceInitFunc"/>
26608         </parameter>
26609         <parameter name="value_table" transfer-ownership="none">
26610           <doc xml:whitespace="preserve">A GTypeValueTable function table for generic handling of GValues of this type (usually only useful for fundamental types).</doc>
26611           <type name="GObject.TypeValueTable" c:type="GTypeValueTable*"/>
26612         </parameter>
26613         <parameter name="flags" transfer-ownership="none">
26614           <doc xml:whitespace="preserve">#GTypeFlags for this GType. E.g: G_TYPE_FLAG_ABSTRACT</doc>
26615           <type name="GObject.TypeFlags" c:type="GTypeFlags"/>
26616         </parameter>
26617       </parameters>
26618     </function>
26619     <function name="update_registry"
26620               c:identifier="gst_update_registry"
26621               version="0.10.12">
26622       <doc xml:whitespace="preserve">Forces GStreamer to re-scan its plugin paths and update the default
26623 plugin registry.
26624 Applications will almost never need to call this function, it is only
26625 useful if the application knows new plugins have been installed (or old
26626 ones removed) since the start of the application (or, to be precise, the
26627 first call to gst_init()) and the application wants to make use of any
26628 newly-installed plugins without restarting the application.
26629 Applications should assume that the registry update is neither atomic nor
26630 thread-safe and should therefore not have any dynamic pipelines running
26631 (including the playbin and decodebin elements) and should also not create
26632 any elements or access the GStreamer registry while the update is in
26633 progress.
26634 Note that this function may block for a significant amount of time.
26635 imply that there were changes), otherwise %FALSE.</doc>
26636       <return-value transfer-ownership="none">
26637         <doc xml:whitespace="preserve">%TRUE if the registry has been updated successfully (does not</doc>
26638         <type name="gboolean" c:type="gboolean"/>
26639       </return-value>
26640     </function>
26641     <function name="uri_construct" c:identifier="gst_uri_construct">
26642       <doc xml:whitespace="preserve">Constructs a URI for a given valid protocol and location.
26643 URI. Returns NULL if the given URI protocol is not valid, or the given
26644 location is NULL.</doc>
26645       <return-value transfer-ownership="full">
26646         <doc xml:whitespace="preserve">a new string for this</doc>
26647         <array c:type="gchar*">
26648           <type name="utf8" c:type="gchar"/>
26649         </array>
26650       </return-value>
26651       <parameters>
26652         <parameter name="protocol" transfer-ownership="none">
26653           <doc xml:whitespace="preserve">Protocol for URI</doc>
26654           <type name="utf8" c:type="gchar*"/>
26655         </parameter>
26656         <parameter name="location" transfer-ownership="none">
26657           <doc xml:whitespace="preserve">Location for URI</doc>
26658           <array c:type="gchar*">
26659             <type name="utf8" c:type="gchar"/>
26660           </array>
26661         </parameter>
26662       </parameters>
26663     </function>
26664     <function name="uri_get_location" c:identifier="gst_uri_get_location">
26665       <doc xml:whitespace="preserve">Extracts the location out of a given valid URI, ie. the protocol and "://"
26666 are stripped from the URI, which means that the location returned includes
26667 the hostname if one is specified. The returned string must be freed using
26668 g_free().
26669 URI. Returns NULL if the URI isn't valid. If the URI does not contain
26670 a location, an empty string is returned.</doc>
26671       <return-value transfer-ownership="full">
26672         <doc xml:whitespace="preserve">the location for this</doc>
26673         <array c:type="gchar*">
26674           <type name="utf8" c:type="gchar"/>
26675         </array>
26676       </return-value>
26677       <parameters>
26678         <parameter name="uri" transfer-ownership="none">
26679           <doc xml:whitespace="preserve">A URI string</doc>
26680           <type name="utf8" c:type="gchar*"/>
26681         </parameter>
26682       </parameters>
26683     </function>
26684     <function name="uri_get_protocol" c:identifier="gst_uri_get_protocol">
26685       <doc xml:whitespace="preserve">Extracts the protocol out of a given valid URI. The returned string must be
26686 freed using g_free().</doc>
26687       <return-value transfer-ownership="full">
26688         <doc xml:whitespace="preserve">The protocol for this URI.</doc>
26689         <type name="utf8" c:type="gchar*"/>
26690       </return-value>
26691       <parameters>
26692         <parameter name="uri" transfer-ownership="none">
26693           <doc xml:whitespace="preserve">A URI string</doc>
26694           <type name="utf8" c:type="gchar*"/>
26695         </parameter>
26696       </parameters>
26697     </function>
26698     <function name="uri_has_protocol"
26699               c:identifier="gst_uri_has_protocol"
26700               version="0.10.4">
26701       <doc xml:whitespace="preserve">Checks if the protocol of a given valid URI matches @protocol.</doc>
26702       <return-value transfer-ownership="none">
26703         <doc xml:whitespace="preserve">%TRUE if the protocol matches.</doc>
26704         <type name="gboolean" c:type="gboolean"/>
26705       </return-value>
26706       <parameters>
26707         <parameter name="uri" transfer-ownership="none">
26708           <doc xml:whitespace="preserve">a URI string</doc>
26709           <type name="utf8" c:type="gchar*"/>
26710         </parameter>
26711         <parameter name="protocol" transfer-ownership="none">
26712           <doc xml:whitespace="preserve">a protocol string (e.g. "http")</doc>
26713           <type name="utf8" c:type="gchar*"/>
26714         </parameter>
26715       </parameters>
26716     </function>
26717     <function name="uri_is_valid" c:identifier="gst_uri_is_valid">
26718       <doc xml:whitespace="preserve">Tests if the given string is a valid URI identifier. URIs start with a valid
26719 scheme followed by ":" and maybe a string identifying the location.</doc>
26720       <return-value transfer-ownership="none">
26721         <doc xml:whitespace="preserve">TRUE if the string is a valid URI</doc>
26722         <type name="gboolean" c:type="gboolean"/>
26723       </return-value>
26724       <parameters>
26725         <parameter name="uri" transfer-ownership="none">
26726           <doc xml:whitespace="preserve">A URI string</doc>
26727           <type name="utf8" c:type="gchar*"/>
26728         </parameter>
26729       </parameters>
26730     </function>
26731     <function name="uri_protocol_is_supported"
26732               c:identifier="gst_uri_protocol_is_supported"
26733               version="0.10.13">
26734       <doc xml:whitespace="preserve">Checks if an element exists that supports the given URI protocol. Note
26735 that a positive return value does not imply that a subsequent call to
26736 gst_element_make_from_uri() is guaranteed to work.</doc>
26737       <return-value transfer-ownership="none">
26738         <doc xml:whitespace="preserve">TRUE</doc>
26739         <type name="gboolean" c:type="gboolean"/>
26740       </return-value>
26741       <parameters>
26742         <parameter name="type" transfer-ownership="none">
26743           <doc xml:whitespace="preserve">Whether to check for a source or a sink</doc>
26744           <type name="URIType" c:type="GstURIType"/>
26745         </parameter>
26746         <parameter name="protocol" transfer-ownership="none">
26747           <doc xml:whitespace="preserve">Protocol that should be checked for (e.g. "http" or "smb")</doc>
26748           <type name="utf8" c:type="gchar*"/>
26749         </parameter>
26750       </parameters>
26751     </function>
26752     <function name="uri_protocol_is_valid"
26753               c:identifier="gst_uri_protocol_is_valid">
26754       <doc xml:whitespace="preserve">Tests if the given string is a valid protocol identifier. Protocols
26755 must consist of alphanumeric characters, '+', '-' and '.' and must
26756 start with a alphabetic character. See RFC 3986 Section 3.1.</doc>
26757       <return-value transfer-ownership="none">
26758         <doc xml:whitespace="preserve">TRUE if the string is a valid protocol identifier, FALSE otherwise.</doc>
26759         <type name="gboolean" c:type="gboolean"/>
26760       </return-value>
26761       <parameters>
26762         <parameter name="protocol" transfer-ownership="none">
26763           <doc xml:whitespace="preserve">A string</doc>
26764           <type name="utf8" c:type="gchar*"/>
26765         </parameter>
26766       </parameters>
26767     </function>
26768     <function name="util_array_binary_search"
26769               c:identifier="gst_util_array_binary_search"
26770               version="0.10.23">
26771       <doc xml:whitespace="preserve">Searches inside @array for @search_data by using the comparison function
26772 As @search_data is always passed as second argument to @search_func it's
26773 not required that @search_data has the same type as the array elements.
26774 The complexity of this search function is O(log (num_elements)).</doc>
26775       <return-value transfer-ownership="none">
26776         <doc xml:whitespace="preserve">The address of the found element or %NULL if nothing was found</doc>
26777         <type name="gpointer" c:type="gpointer"/>
26778       </return-value>
26779       <parameters>
26780         <parameter name="array" transfer-ownership="none">
26781           <doc xml:whitespace="preserve">the sorted input array</doc>
26782           <type name="gpointer" c:type="gpointer"/>
26783         </parameter>
26784         <parameter name="num_elements" transfer-ownership="none">
26785           <doc xml:whitespace="preserve">number of elements in the array</doc>
26786           <type name="guint" c:type="guint"/>
26787         </parameter>
26788         <parameter name="element_size" transfer-ownership="none">
26789           <doc xml:whitespace="preserve">size of every element in bytes</doc>
26790           <type name="gsize" c:type="gsize"/>
26791         </parameter>
26792         <parameter name="search_func"
26793                    transfer-ownership="none"
26794                    scope="call"
26795                    closure="6">
26796           <doc xml:whitespace="preserve">function to compare two elements, @search_data will always be passed as second argument</doc>
26797           <type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
26798         </parameter>
26799         <parameter name="mode" transfer-ownership="none">
26800           <doc xml:whitespace="preserve">search mode that should be used</doc>
26801           <type name="SearchMode" c:type="GstSearchMode"/>
26802         </parameter>
26803         <parameter name="search_data" transfer-ownership="none">
26804           <doc xml:whitespace="preserve">element that should be found</doc>
26805           <type name="gpointer" c:type="gconstpointer"/>
26806         </parameter>
26807         <parameter name="user_data" transfer-ownership="none">
26808           <doc xml:whitespace="preserve">data to pass to @search_func</doc>
26809           <type name="gpointer" c:type="gpointer"/>
26810         </parameter>
26811       </parameters>
26812     </function>
26813     <function name="util_double_to_fraction"
26814               c:identifier="gst_util_double_to_fraction"
26815               version="0.10.26">
26816       <doc xml:whitespace="preserve">Transforms a #gdouble to a fraction and simplifies
26817 the result.</doc>
26818       <return-value transfer-ownership="none">
26819         <type name="none" c:type="void"/>
26820       </return-value>
26821       <parameters>
26822         <parameter name="src" transfer-ownership="none">
26823           <doc xml:whitespace="preserve">#gdouble to transform</doc>
26824           <type name="gdouble" c:type="gdouble"/>
26825         </parameter>
26826         <parameter name="dest_n"
26827                    direction="out"
26828                    caller-allocates="0"
26829                    transfer-ownership="full">
26830           <doc xml:whitespace="preserve">pointer to a #gint to hold the result numerator</doc>
26831           <type name="gint" c:type="gint*"/>
26832         </parameter>
26833         <parameter name="dest_d"
26834                    direction="out"
26835                    caller-allocates="0"
26836                    transfer-ownership="full">
26837           <doc xml:whitespace="preserve">pointer to a #gint to hold the result denominator</doc>
26838           <type name="gint" c:type="gint*"/>
26839         </parameter>
26840       </parameters>
26841     </function>
26842     <function name="util_dump_mem" c:identifier="gst_util_dump_mem">
26843       <doc xml:whitespace="preserve">Dumps the memory block into a hex representation. Useful for debugging.</doc>
26844       <return-value transfer-ownership="none">
26845         <type name="none" c:type="void"/>
26846       </return-value>
26847       <parameters>
26848         <parameter name="mem" transfer-ownership="none">
26849           <doc xml:whitespace="preserve">a pointer to the memory to dump</doc>
26850           <type name="guint8" c:type="guchar*"/>
26851         </parameter>
26852         <parameter name="size" transfer-ownership="none">
26853           <doc xml:whitespace="preserve">the size of the memory block to dump</doc>
26854           <type name="guint" c:type="guint"/>
26855         </parameter>
26856       </parameters>
26857     </function>
26858     <function name="util_fraction_add"
26859               c:identifier="gst_util_fraction_add"
26860               version="0.10.26">
26861       <doc xml:whitespace="preserve">Adds the fractions @a_n/@a_d and @b_n/@b_d and stores
26862 the result in @res_n and @res_d.</doc>
26863       <return-value transfer-ownership="none">
26864         <doc xml:whitespace="preserve">%FALSE on overflow, %TRUE otherwise.</doc>
26865         <type name="gboolean" c:type="gboolean"/>
26866       </return-value>
26867       <parameters>
26868         <parameter name="a_n" transfer-ownership="none">
26869           <doc xml:whitespace="preserve">Numerator of first value</doc>
26870           <type name="gint" c:type="gint"/>
26871         </parameter>
26872         <parameter name="a_d" transfer-ownership="none">
26873           <doc xml:whitespace="preserve">Denominator of first value</doc>
26874           <type name="gint" c:type="gint"/>
26875         </parameter>
26876         <parameter name="b_n" transfer-ownership="none">
26877           <doc xml:whitespace="preserve">Numerator of second value</doc>
26878           <type name="gint" c:type="gint"/>
26879         </parameter>
26880         <parameter name="b_d" transfer-ownership="none">
26881           <doc xml:whitespace="preserve">Denominator of second value</doc>
26882           <type name="gint" c:type="gint"/>
26883         </parameter>
26884         <parameter name="res_n"
26885                    direction="out"
26886                    caller-allocates="0"
26887                    transfer-ownership="full">
26888           <doc xml:whitespace="preserve">Pointer to #gint to hold the result numerator</doc>
26889           <type name="gint" c:type="gint*"/>
26890         </parameter>
26891         <parameter name="res_d"
26892                    direction="out"
26893                    caller-allocates="0"
26894                    transfer-ownership="full">
26895           <doc xml:whitespace="preserve">Pointer to #gint to hold the result denominator</doc>
26896           <type name="gint" c:type="gint*"/>
26897         </parameter>
26898       </parameters>
26899     </function>
26900     <function name="util_fraction_compare"
26901               c:identifier="gst_util_fraction_compare"
26902               version="0.10.31">
26903       <doc xml:whitespace="preserve">Compares the fractions @a_n/@a_d and @b_n/@b_d and returns
26904 -1 if a &lt; b, 0 if a = b and 1 if a &gt; b.</doc>
26905       <return-value transfer-ownership="none">
26906         <doc xml:whitespace="preserve">-1 if a &lt; b; 0 if a = b; 1 if a &gt; b.</doc>
26907         <type name="gint" c:type="gint"/>
26908       </return-value>
26909       <parameters>
26910         <parameter name="a_n" transfer-ownership="none">
26911           <doc xml:whitespace="preserve">Numerator of first value</doc>
26912           <type name="gint" c:type="gint"/>
26913         </parameter>
26914         <parameter name="a_d" transfer-ownership="none">
26915           <doc xml:whitespace="preserve">Denominator of first value</doc>
26916           <type name="gint" c:type="gint"/>
26917         </parameter>
26918         <parameter name="b_n" transfer-ownership="none">
26919           <doc xml:whitespace="preserve">Numerator of second value</doc>
26920           <type name="gint" c:type="gint"/>
26921         </parameter>
26922         <parameter name="b_d" transfer-ownership="none">
26923           <doc xml:whitespace="preserve">Denominator of second value</doc>
26924           <type name="gint" c:type="gint"/>
26925         </parameter>
26926       </parameters>
26927     </function>
26928     <function name="util_fraction_multiply"
26929               c:identifier="gst_util_fraction_multiply"
26930               version="0.10.26">
26931       <doc xml:whitespace="preserve">Multiplies the fractions @a_n/@a_d and @b_n/@b_d and stores
26932 the result in @res_n and @res_d.</doc>
26933       <return-value transfer-ownership="none">
26934         <doc xml:whitespace="preserve">%FALSE on overflow, %TRUE otherwise.</doc>
26935         <type name="gboolean" c:type="gboolean"/>
26936       </return-value>
26937       <parameters>
26938         <parameter name="a_n" transfer-ownership="none">
26939           <doc xml:whitespace="preserve">Numerator of first value</doc>
26940           <type name="gint" c:type="gint"/>
26941         </parameter>
26942         <parameter name="a_d" transfer-ownership="none">
26943           <doc xml:whitespace="preserve">Denominator of first value</doc>
26944           <type name="gint" c:type="gint"/>
26945         </parameter>
26946         <parameter name="b_n" transfer-ownership="none">
26947           <doc xml:whitespace="preserve">Numerator of second value</doc>
26948           <type name="gint" c:type="gint"/>
26949         </parameter>
26950         <parameter name="b_d" transfer-ownership="none">
26951           <doc xml:whitespace="preserve">Denominator of second value</doc>
26952           <type name="gint" c:type="gint"/>
26953         </parameter>
26954         <parameter name="res_n"
26955                    direction="out"
26956                    caller-allocates="0"
26957                    transfer-ownership="full">
26958           <doc xml:whitespace="preserve">Pointer to #gint to hold the result numerator</doc>
26959           <type name="gint" c:type="gint*"/>
26960         </parameter>
26961         <parameter name="res_d"
26962                    direction="out"
26963                    caller-allocates="0"
26964                    transfer-ownership="full">
26965           <doc xml:whitespace="preserve">Pointer to #gint to hold the result denominator</doc>
26966           <type name="gint" c:type="gint*"/>
26967         </parameter>
26968       </parameters>
26969     </function>
26970     <function name="util_fraction_to_double"
26971               c:identifier="gst_util_fraction_to_double"
26972               version="0.10.26">
26973       <doc xml:whitespace="preserve">Transforms a fraction to a #gdouble.</doc>
26974       <return-value transfer-ownership="none">
26975         <type name="none" c:type="void"/>
26976       </return-value>
26977       <parameters>
26978         <parameter name="src_n" transfer-ownership="none">
26979           <doc xml:whitespace="preserve">Fraction numerator as #gint</doc>
26980           <type name="gint" c:type="gint"/>
26981         </parameter>
26982         <parameter name="src_d" transfer-ownership="none">
26983           <doc xml:whitespace="preserve">Fraction denominator #gint</doc>
26984           <type name="gint" c:type="gint"/>
26985         </parameter>
26986         <parameter name="dest"
26987                    direction="out"
26988                    caller-allocates="0"
26989                    transfer-ownership="full">
26990           <doc xml:whitespace="preserve">pointer to a #gdouble for the result</doc>
26991           <type name="gdouble" c:type="gdouble*"/>
26992         </parameter>
26993       </parameters>
26994     </function>
26995     <function name="util_gdouble_to_guint64"
26996               c:identifier="gst_util_gdouble_to_guint64">
26997       <return-value transfer-ownership="none">
26998         <type name="guint64" c:type="guint64"/>
26999       </return-value>
27000       <parameters>
27001         <parameter name="value" transfer-ownership="none">
27002           <type name="gdouble" c:type="gdouble"/>
27003         </parameter>
27004       </parameters>
27005     </function>
27006     <function name="util_get_timestamp"
27007               c:identifier="gst_util_get_timestamp"
27008               version="0.10.16">
27009       <doc xml:whitespace="preserve">Get a timestamp as GstClockTime to be used for interval meassurements.
27010 The timestamp should not be interpreted in any other way.</doc>
27011       <return-value transfer-ownership="none">
27012         <doc xml:whitespace="preserve">the timestamp</doc>
27013         <type name="ClockTime" c:type="GstClockTime"/>
27014       </return-value>
27015     </function>
27016     <function name="util_greatest_common_divisor"
27017               c:identifier="gst_util_greatest_common_divisor"
27018               version="0.10.26">
27019       <doc xml:whitespace="preserve">Calculates the greatest common divisor of @a
27020 and @b.</doc>
27021       <return-value transfer-ownership="none">
27022         <doc xml:whitespace="preserve">Greatest common divisor of @a and @b</doc>
27023         <type name="gint" c:type="gint"/>
27024       </return-value>
27025       <parameters>
27026         <parameter name="a" transfer-ownership="none">
27027           <doc xml:whitespace="preserve">First value as #gint</doc>
27028           <type name="gint" c:type="gint"/>
27029         </parameter>
27030         <parameter name="b" transfer-ownership="none">
27031           <doc xml:whitespace="preserve">Second value as #gint</doc>
27032           <type name="gint" c:type="gint"/>
27033         </parameter>
27034       </parameters>
27035     </function>
27036     <function name="util_guint64_to_gdouble"
27037               c:identifier="gst_util_guint64_to_gdouble">
27038       <return-value transfer-ownership="none">
27039         <type name="gdouble" c:type="gdouble"/>
27040       </return-value>
27041       <parameters>
27042         <parameter name="value" transfer-ownership="none">
27043           <type name="guint64" c:type="guint64"/>
27044         </parameter>
27045       </parameters>
27046     </function>
27047     <function name="util_seqnum_compare"
27048               c:identifier="gst_util_seqnum_compare"
27049               version="0.10.22">
27050       <doc xml:whitespace="preserve">Compare two sequence numbers, handling wraparound.
27051 The current implementation just returns (gint32)(@s1 - @s2).
27052 positive number if @s1 is after @s2.</doc>
27053       <return-value transfer-ownership="none">
27054         <doc xml:whitespace="preserve">A negative number if @s1 is before @s2, 0 if they are equal, or a</doc>
27055         <type name="gint32" c:type="gint32"/>
27056       </return-value>
27057       <parameters>
27058         <parameter name="s1" transfer-ownership="none">
27059           <doc xml:whitespace="preserve">A sequence number.</doc>
27060           <type name="guint32" c:type="guint32"/>
27061         </parameter>
27062         <parameter name="s2" transfer-ownership="none">
27063           <doc xml:whitespace="preserve">Another sequence number.</doc>
27064           <type name="guint32" c:type="guint32"/>
27065         </parameter>
27066       </parameters>
27067     </function>
27068     <function name="util_seqnum_next"
27069               c:identifier="gst_util_seqnum_next"
27070               version="0.10.22">
27071       <doc xml:whitespace="preserve">Return a constantly incrementing sequence number.
27072 This function is used internally to GStreamer to be able to determine which
27073 events and messages are "the same". For example, elements may set the seqnum
27074 on a segment-done message to be the same as that of the last seek event, to
27075 indicate that event and the message correspond to the same segment.
27076 overflow back to 0 at some point. Use gst_util_seqnum_compare() to make sure
27077 you handle wraparound correctly.</doc>
27078       <return-value transfer-ownership="none">
27079         <doc xml:whitespace="preserve">A constantly incrementing 32-bit unsigned integer, which might</doc>
27080         <type name="guint32" c:type="guint32"/>
27081       </return-value>
27082     </function>
27083     <function name="util_set_object_arg"
27084               c:identifier="gst_util_set_object_arg">
27085       <doc xml:whitespace="preserve">Convertes the string value to the type of the objects argument and
27086 sets the argument with it.
27087 Note that this function silently returns if @object has no property named</doc>
27088       <return-value transfer-ownership="none">
27089         <type name="none" c:type="void"/>
27090       </return-value>
27091       <parameters>
27092         <parameter name="object" transfer-ownership="none">
27093           <doc xml:whitespace="preserve">the object to set the argument of</doc>
27094           <type name="GObject.Object" c:type="GObject*"/>
27095         </parameter>
27096         <parameter name="name" transfer-ownership="none">
27097           <doc xml:whitespace="preserve">the name of the argument to set</doc>
27098           <type name="utf8" c:type="gchar*"/>
27099         </parameter>
27100         <parameter name="value" transfer-ownership="none">
27101           <doc xml:whitespace="preserve">the string value to set</doc>
27102           <type name="utf8" c:type="gchar*"/>
27103         </parameter>
27104       </parameters>
27105     </function>
27106     <function name="util_set_value_from_string"
27107               c:identifier="gst_util_set_value_from_string">
27108       <doc xml:whitespace="preserve">Converts the string to the type of the value and
27109 sets the value with it.
27110 Note that this function is dangerous as it does not return any indication
27111 if the conversion worked or not.</doc>
27112       <return-value transfer-ownership="none">
27113         <type name="none" c:type="void"/>
27114       </return-value>
27115       <parameters>
27116         <parameter name="value"
27117                    direction="out"
27118                    caller-allocates="1"
27119                    transfer-ownership="none">
27120           <doc xml:whitespace="preserve">the value to set</doc>
27121           <type name="GObject.Value" c:type="GValue*"/>
27122         </parameter>
27123         <parameter name="value_str" transfer-ownership="none">
27124           <doc xml:whitespace="preserve">the string to get the value from</doc>
27125           <type name="utf8" c:type="gchar*"/>
27126         </parameter>
27127       </parameters>
27128     </function>
27129     <function name="util_uint64_scale" c:identifier="gst_util_uint64_scale">
27130       <doc xml:whitespace="preserve">Scale @val by the rational number @num / @denom, avoiding overflows and
27131 underflows and without loss of precision.
27132 This function can potentially be very slow if val and num are both
27133 greater than G_MAXUINT32.
27134 function returns G_MAXUINT64.  If the result is not exactly
27135 representable as an integer it is truncated.  See also
27136 gst_util_uint64_scale_round(), gst_util_uint64_scale_ceil(),
27137 gst_util_uint64_scale_int(), gst_util_uint64_scale_int_round(),
27138 gst_util_uint64_scale_int_ceil().</doc>
27139       <return-value transfer-ownership="none">
27140         <doc xml:whitespace="preserve">@val * @num / @denom.  In the case of an overflow, this</doc>
27141         <type name="guint64" c:type="guint64"/>
27142       </return-value>
27143       <parameters>
27144         <parameter name="val" transfer-ownership="none">
27145           <doc xml:whitespace="preserve">the number to scale</doc>
27146           <type name="guint64" c:type="guint64"/>
27147         </parameter>
27148         <parameter name="num" transfer-ownership="none">
27149           <doc xml:whitespace="preserve">the numerator of the scale ratio</doc>
27150           <type name="guint64" c:type="guint64"/>
27151         </parameter>
27152         <parameter name="denom" transfer-ownership="none">
27153           <doc xml:whitespace="preserve">the denominator of the scale ratio</doc>
27154           <type name="guint64" c:type="guint64"/>
27155         </parameter>
27156       </parameters>
27157     </function>
27158     <function name="util_uint64_scale_ceil"
27159               c:identifier="gst_util_uint64_scale_ceil">
27160       <doc xml:whitespace="preserve">Scale @val by the rational number @num / @denom, avoiding overflows and
27161 underflows and without loss of precision.
27162 This function can potentially be very slow if val and num are both
27163 greater than G_MAXUINT32.
27164 function returns G_MAXUINT64.  If the result is not exactly
27165 representable as an integer, it is rounded up.  See also
27166 gst_util_uint64_scale(), gst_util_uint64_scale_round(),
27167 gst_util_uint64_scale_int(), gst_util_uint64_scale_int_round(),
27168 gst_util_uint64_scale_int_ceil().</doc>
27169       <return-value transfer-ownership="none">
27170         <doc xml:whitespace="preserve">@val * @num / @denom.  In the case of an overflow, this</doc>
27171         <type name="guint64" c:type="guint64"/>
27172       </return-value>
27173       <parameters>
27174         <parameter name="val" transfer-ownership="none">
27175           <doc xml:whitespace="preserve">the number to scale</doc>
27176           <type name="guint64" c:type="guint64"/>
27177         </parameter>
27178         <parameter name="num" transfer-ownership="none">
27179           <doc xml:whitespace="preserve">the numerator of the scale ratio</doc>
27180           <type name="guint64" c:type="guint64"/>
27181         </parameter>
27182         <parameter name="denom" transfer-ownership="none">
27183           <doc xml:whitespace="preserve">the denominator of the scale ratio</doc>
27184           <type name="guint64" c:type="guint64"/>
27185         </parameter>
27186       </parameters>
27187     </function>
27188     <function name="util_uint64_scale_int"
27189               c:identifier="gst_util_uint64_scale_int">
27190       <doc xml:whitespace="preserve">Scale @val by the rational number @num / @denom, avoiding overflows and
27191 underflows and without loss of precision.  @num must be non-negative and
27192 function returns G_MAXUINT64.  If the result is not exactly
27193 representable as an integer, it is truncated.  See also
27194 gst_util_uint64_scale_int_round(), gst_util_uint64_scale_int_ceil(),
27195 gst_util_uint64_scale(), gst_util_uint64_scale_round(),
27196 gst_util_uint64_scale_ceil().</doc>
27197       <return-value transfer-ownership="none">
27198         <doc xml:whitespace="preserve">@val * @num / @denom.  In the case of an overflow, this</doc>
27199         <type name="guint64" c:type="guint64"/>
27200       </return-value>
27201       <parameters>
27202         <parameter name="val" transfer-ownership="none">
27203           <doc xml:whitespace="preserve">guint64 (such as a #GstClockTime) to scale.</doc>
27204           <type name="guint64" c:type="guint64"/>
27205         </parameter>
27206         <parameter name="num" transfer-ownership="none">
27207           <doc xml:whitespace="preserve">numerator of the scale factor.</doc>
27208           <type name="gint" c:type="gint"/>
27209         </parameter>
27210         <parameter name="denom" transfer-ownership="none">
27211           <doc xml:whitespace="preserve">denominator of the scale factor.</doc>
27212           <type name="gint" c:type="gint"/>
27213         </parameter>
27214       </parameters>
27215     </function>
27216     <function name="util_uint64_scale_int_ceil"
27217               c:identifier="gst_util_uint64_scale_int_ceil">
27218       <doc xml:whitespace="preserve">Scale @val by the rational number @num / @denom, avoiding overflows and
27219 underflows and without loss of precision.  @num must be non-negative and
27220 function returns G_MAXUINT64.  If the result is not exactly
27221 representable as an integer, it is rounded up.  See also
27222 gst_util_uint64_scale_int(), gst_util_uint64_scale_int_round(),
27223 gst_util_uint64_scale(), gst_util_uint64_scale_round(),
27224 gst_util_uint64_scale_ceil().</doc>
27225       <return-value transfer-ownership="none">
27226         <doc xml:whitespace="preserve">@val * @num / @denom.  In the case of an overflow, this</doc>
27227         <type name="guint64" c:type="guint64"/>
27228       </return-value>
27229       <parameters>
27230         <parameter name="val" transfer-ownership="none">
27231           <doc xml:whitespace="preserve">guint64 (such as a #GstClockTime) to scale.</doc>
27232           <type name="guint64" c:type="guint64"/>
27233         </parameter>
27234         <parameter name="num" transfer-ownership="none">
27235           <doc xml:whitespace="preserve">numerator of the scale factor.</doc>
27236           <type name="gint" c:type="gint"/>
27237         </parameter>
27238         <parameter name="denom" transfer-ownership="none">
27239           <doc xml:whitespace="preserve">denominator of the scale factor.</doc>
27240           <type name="gint" c:type="gint"/>
27241         </parameter>
27242       </parameters>
27243     </function>
27244     <function name="util_uint64_scale_int_round"
27245               c:identifier="gst_util_uint64_scale_int_round">
27246       <doc xml:whitespace="preserve">Scale @val by the rational number @num / @denom, avoiding overflows and
27247 underflows and without loss of precision.  @num must be non-negative and
27248 function returns G_MAXUINT64.  If the result is not exactly
27249 representable as an integer, it is rounded to the nearest integer
27250 (half-way cases are rounded up).  See also gst_util_uint64_scale_int(),
27251 gst_util_uint64_scale_int_ceil(), gst_util_uint64_scale(),
27252 gst_util_uint64_scale_round(), gst_util_uint64_scale_ceil().</doc>
27253       <return-value transfer-ownership="none">
27254         <doc xml:whitespace="preserve">@val * @num / @denom.  In the case of an overflow, this</doc>
27255         <type name="guint64" c:type="guint64"/>
27256       </return-value>
27257       <parameters>
27258         <parameter name="val" transfer-ownership="none">
27259           <doc xml:whitespace="preserve">guint64 (such as a #GstClockTime) to scale.</doc>
27260           <type name="guint64" c:type="guint64"/>
27261         </parameter>
27262         <parameter name="num" transfer-ownership="none">
27263           <doc xml:whitespace="preserve">numerator of the scale factor.</doc>
27264           <type name="gint" c:type="gint"/>
27265         </parameter>
27266         <parameter name="denom" transfer-ownership="none">
27267           <doc xml:whitespace="preserve">denominator of the scale factor.</doc>
27268           <type name="gint" c:type="gint"/>
27269         </parameter>
27270       </parameters>
27271     </function>
27272     <function name="util_uint64_scale_round"
27273               c:identifier="gst_util_uint64_scale_round">
27274       <doc xml:whitespace="preserve">Scale @val by the rational number @num / @denom, avoiding overflows and
27275 underflows and without loss of precision.
27276 This function can potentially be very slow if val and num are both
27277 greater than G_MAXUINT32.
27278 function returns G_MAXUINT64.  If the result is not exactly
27279 representable as an integer, it is rounded to the nearest integer
27280 (half-way cases are rounded up).  See also gst_util_uint64_scale(),
27281 gst_util_uint64_scale_ceil(), gst_util_uint64_scale_int(),
27282 gst_util_uint64_scale_int_round(), gst_util_uint64_scale_int_ceil().</doc>
27283       <return-value transfer-ownership="none">
27284         <doc xml:whitespace="preserve">@val * @num / @denom.  In the case of an overflow, this</doc>
27285         <type name="guint64" c:type="guint64"/>
27286       </return-value>
27287       <parameters>
27288         <parameter name="val" transfer-ownership="none">
27289           <doc xml:whitespace="preserve">the number to scale</doc>
27290           <type name="guint64" c:type="guint64"/>
27291         </parameter>
27292         <parameter name="num" transfer-ownership="none">
27293           <doc xml:whitespace="preserve">the numerator of the scale ratio</doc>
27294           <type name="guint64" c:type="guint64"/>
27295         </parameter>
27296         <parameter name="denom" transfer-ownership="none">
27297           <doc xml:whitespace="preserve">the denominator of the scale ratio</doc>
27298           <type name="guint64" c:type="guint64"/>
27299         </parameter>
27300       </parameters>
27301     </function>
27302     <function name="value_array_append_value"
27303               c:identifier="gst_value_array_append_value">
27304       <doc xml:whitespace="preserve">Appends @append_value to the GstValueArray in @value.</doc>
27305       <return-value transfer-ownership="none">
27306         <type name="none" c:type="void"/>
27307       </return-value>
27308       <parameters>
27309         <parameter name="value" transfer-ownership="none">
27310           <doc xml:whitespace="preserve">a #GValue of type #GST_TYPE_ARRAY</doc>
27311           <type name="GObject.Value" c:type="GValue*"/>
27312         </parameter>
27313         <parameter name="append_value" transfer-ownership="none">
27314           <doc xml:whitespace="preserve">the value to append</doc>
27315           <type name="GObject.Value" c:type="GValue*"/>
27316         </parameter>
27317       </parameters>
27318     </function>
27319     <function name="value_array_get_size"
27320               c:identifier="gst_value_array_get_size">
27321       <doc xml:whitespace="preserve">Gets the number of values contained in @value.</doc>
27322       <return-value transfer-ownership="none">
27323         <doc xml:whitespace="preserve">the number of values</doc>
27324         <type name="guint" c:type="guint"/>
27325       </return-value>
27326       <parameters>
27327         <parameter name="value" transfer-ownership="none">
27328           <doc xml:whitespace="preserve">a #GValue of type #GST_TYPE_ARRAY</doc>
27329           <type name="GObject.Value" c:type="GValue*"/>
27330         </parameter>
27331       </parameters>
27332     </function>
27333     <function name="value_array_get_type"
27334               c:identifier="gst_value_array_get_type">
27335       <return-value transfer-ownership="none">
27336         <type name="GType" c:type="GType"/>
27337       </return-value>
27338     </function>
27339     <function name="value_array_get_value"
27340               c:identifier="gst_value_array_get_value">
27341       <doc xml:whitespace="preserve">Gets the value that is a member of the array contained in @value and
27342 has the index @index.</doc>
27343       <return-value transfer-ownership="none">
27344         <doc xml:whitespace="preserve">the value at the given index</doc>
27345         <type name="GObject.Value" c:type="GValue*"/>
27346       </return-value>
27347       <parameters>
27348         <parameter name="value" transfer-ownership="none">
27349           <doc xml:whitespace="preserve">a #GValue of type #GST_TYPE_ARRAY</doc>
27350           <type name="GObject.Value" c:type="GValue*"/>
27351         </parameter>
27352         <parameter name="index" transfer-ownership="none">
27353           <doc xml:whitespace="preserve">index of value to get from the array</doc>
27354           <type name="guint" c:type="guint"/>
27355         </parameter>
27356       </parameters>
27357     </function>
27358     <function name="value_array_prepend_value"
27359               c:identifier="gst_value_array_prepend_value">
27360       <doc xml:whitespace="preserve">Prepends @prepend_value to the GstValueArray in @value.</doc>
27361       <return-value transfer-ownership="none">
27362         <type name="none" c:type="void"/>
27363       </return-value>
27364       <parameters>
27365         <parameter name="value" transfer-ownership="none">
27366           <doc xml:whitespace="preserve">a #GValue of type #GST_TYPE_ARRAY</doc>
27367           <type name="GObject.Value" c:type="GValue*"/>
27368         </parameter>
27369         <parameter name="prepend_value" transfer-ownership="none">
27370           <doc xml:whitespace="preserve">the value to prepend</doc>
27371           <type name="GObject.Value" c:type="GValue*"/>
27372         </parameter>
27373       </parameters>
27374     </function>
27375     <function name="value_can_compare" c:identifier="gst_value_can_compare">
27376       <doc xml:whitespace="preserve">Determines if @value1 and @value2 can be compared.</doc>
27377       <return-value transfer-ownership="none">
27378         <doc xml:whitespace="preserve">TRUE if the values can be compared</doc>
27379         <type name="gboolean" c:type="gboolean"/>
27380       </return-value>
27381       <parameters>
27382         <parameter name="value1" transfer-ownership="none">
27383           <doc xml:whitespace="preserve">a value to compare</doc>
27384           <type name="GObject.Value" c:type="GValue*"/>
27385         </parameter>
27386         <parameter name="value2" transfer-ownership="none">
27387           <doc xml:whitespace="preserve">another value to compare</doc>
27388           <type name="GObject.Value" c:type="GValue*"/>
27389         </parameter>
27390       </parameters>
27391     </function>
27392     <function name="value_can_intersect"
27393               c:identifier="gst_value_can_intersect">
27394       <doc xml:whitespace="preserve">Determines if intersecting two values will produce a valid result.
27395 Two values will produce a valid intersection if they have the same
27396 type, or if there is a method (registered by
27397 gst_value_register_intersect_func()) to calculate the intersection.</doc>
27398       <return-value transfer-ownership="none">
27399         <doc xml:whitespace="preserve">TRUE if the values can intersect</doc>
27400         <type name="gboolean" c:type="gboolean"/>
27401       </return-value>
27402       <parameters>
27403         <parameter name="value1" transfer-ownership="none">
27404           <doc xml:whitespace="preserve">a value to intersect</doc>
27405           <type name="GObject.Value" c:type="GValue*"/>
27406         </parameter>
27407         <parameter name="value2" transfer-ownership="none">
27408           <doc xml:whitespace="preserve">another value to intersect</doc>
27409           <type name="GObject.Value" c:type="GValue*"/>
27410         </parameter>
27411       </parameters>
27412     </function>
27413     <function name="value_can_subtract" c:identifier="gst_value_can_subtract">
27414       <doc xml:whitespace="preserve">Checks if it's possible to subtract @subtrahend from @minuend.</doc>
27415       <return-value transfer-ownership="none">
27416         <doc xml:whitespace="preserve">TRUE if a subtraction is possible</doc>
27417         <type name="gboolean" c:type="gboolean"/>
27418       </return-value>
27419       <parameters>
27420         <parameter name="minuend" transfer-ownership="none">
27421           <doc xml:whitespace="preserve">the value to subtract from</doc>
27422           <type name="GObject.Value" c:type="GValue*"/>
27423         </parameter>
27424         <parameter name="subtrahend" transfer-ownership="none">
27425           <doc xml:whitespace="preserve">the value to subtract</doc>
27426           <type name="GObject.Value" c:type="GValue*"/>
27427         </parameter>
27428       </parameters>
27429     </function>
27430     <function name="value_can_union" c:identifier="gst_value_can_union">
27431       <doc xml:whitespace="preserve">Determines if @value1 and @value2 can be non-trivially unioned.
27432 Any two values can be trivially unioned by adding both of them
27433 to a GstValueList.  However, certain types have the possibility
27434 to be unioned in a simpler way.  For example, an integer range
27435 and an integer can be unioned if the integer is a subset of the
27436 integer range.  If there is the possibility that two values can
27437 be unioned, this function returns TRUE.
27438 be unioned.</doc>
27439       <return-value transfer-ownership="none">
27440         <doc xml:whitespace="preserve">TRUE if there is a function allowing the two values to</doc>
27441         <type name="gboolean" c:type="gboolean"/>
27442       </return-value>
27443       <parameters>
27444         <parameter name="value1" transfer-ownership="none">
27445           <doc xml:whitespace="preserve">a value to union</doc>
27446           <type name="GObject.Value" c:type="GValue*"/>
27447         </parameter>
27448         <parameter name="value2" transfer-ownership="none">
27449           <doc xml:whitespace="preserve">another value to union</doc>
27450           <type name="GObject.Value" c:type="GValue*"/>
27451         </parameter>
27452       </parameters>
27453     </function>
27454     <function name="value_compare" c:identifier="gst_value_compare">
27455       <doc xml:whitespace="preserve">Compares @value1 and @value2.  If @value1 and @value2 cannot be
27456 compared, the function returns GST_VALUE_UNORDERED.  Otherwise,
27457 if @value1 is greater than @value2, GST_VALUE_GREATER_THAN is returned.
27458 If @value1 is less than @value2, GST_VALUE_LESS_THAN is returned.
27459 If the values are equal, GST_VALUE_EQUAL is returned.</doc>
27460       <return-value transfer-ownership="none">
27461         <doc xml:whitespace="preserve">comparison result</doc>
27462         <type name="gint" c:type="gint"/>
27463       </return-value>
27464       <parameters>
27465         <parameter name="value1" transfer-ownership="none">
27466           <doc xml:whitespace="preserve">a value to compare</doc>
27467           <type name="GObject.Value" c:type="GValue*"/>
27468         </parameter>
27469         <parameter name="value2" transfer-ownership="none">
27470           <doc xml:whitespace="preserve">another value to compare</doc>
27471           <type name="GObject.Value" c:type="GValue*"/>
27472         </parameter>
27473       </parameters>
27474     </function>
27475     <function name="value_deserialize" c:identifier="gst_value_deserialize">
27476       <doc xml:whitespace="preserve">Tries to deserialize a string into the type specified by the given GValue.
27477 If the operation succeeds, TRUE is returned, FALSE otherwise.</doc>
27478       <return-value transfer-ownership="none">
27479         <doc xml:whitespace="preserve">TRUE on success</doc>
27480         <type name="gboolean" c:type="gboolean"/>
27481       </return-value>
27482       <parameters>
27483         <parameter name="dest"
27484                    direction="out"
27485                    caller-allocates="1"
27486                    transfer-ownership="none">
27487           <doc xml:whitespace="preserve">#GValue to fill with contents of deserialization</doc>
27488           <type name="GObject.Value" c:type="GValue*"/>
27489         </parameter>
27490         <parameter name="src" transfer-ownership="none">
27491           <doc xml:whitespace="preserve">string to deserialize</doc>
27492           <type name="utf8" c:type="gchar*"/>
27493         </parameter>
27494       </parameters>
27495     </function>
27496     <function name="value_dup_mini_object"
27497               c:identifier="gst_value_dup_mini_object"
27498               version="0.10.20">
27499       <doc xml:whitespace="preserve">Get the contents of a %GST_TYPE_MINI_OBJECT derived #GValue,
27500 increasing its reference count. If the contents of the #GValue
27501 are %NULL, %NULL will be returned.</doc>
27502       <return-value transfer-ownership="full">
27503         <doc xml:whitespace="preserve">mini object contents of @value</doc>
27504         <type name="MiniObject" c:type="GstMiniObject*"/>
27505       </return-value>
27506       <parameters>
27507         <parameter name="value" transfer-ownership="none">
27508           <doc xml:whitespace="preserve">a valid #GValue of %GST_TYPE_MINI_OBJECT derived type</doc>
27509           <type name="GObject.Value" c:type="GValue*"/>
27510         </parameter>
27511       </parameters>
27512     </function>
27513     <function name="value_fraction_multiply"
27514               c:identifier="gst_value_fraction_multiply">
27515       <doc xml:whitespace="preserve">Multiplies the two #GValue items containing a #GST_TYPE_FRACTION and sets</doc>
27516       <return-value transfer-ownership="none">
27517         <doc xml:whitespace="preserve">FALSE in case of an error (like integer overflow), TRUE otherwise.</doc>
27518         <type name="gboolean" c:type="gboolean"/>
27519       </return-value>
27520       <parameters>
27521         <parameter name="product" transfer-ownership="none">
27522           <doc xml:whitespace="preserve">a GValue initialized to #GST_TYPE_FRACTION</doc>
27523           <type name="GObject.Value" c:type="GValue*"/>
27524         </parameter>
27525         <parameter name="factor1" transfer-ownership="none">
27526           <doc xml:whitespace="preserve">a GValue initialized to #GST_TYPE_FRACTION</doc>
27527           <type name="GObject.Value" c:type="GValue*"/>
27528         </parameter>
27529         <parameter name="factor2" transfer-ownership="none">
27530           <doc xml:whitespace="preserve">a GValue initialized to #GST_TYPE_FRACTION</doc>
27531           <type name="GObject.Value" c:type="GValue*"/>
27532         </parameter>
27533       </parameters>
27534     </function>
27535     <function name="value_fraction_subtract"
27536               c:identifier="gst_value_fraction_subtract">
27537       <doc xml:whitespace="preserve">Subtracts the @subtrahend from the @minuend and sets @dest to the result.</doc>
27538       <return-value transfer-ownership="none">
27539         <doc xml:whitespace="preserve">FALSE in case of an error (like integer overflow), TRUE otherwise.</doc>
27540         <type name="gboolean" c:type="gboolean"/>
27541       </return-value>
27542       <parameters>
27543         <parameter name="dest" transfer-ownership="none">
27544           <doc xml:whitespace="preserve">a GValue initialized to #GST_TYPE_FRACTION</doc>
27545           <type name="GObject.Value" c:type="GValue*"/>
27546         </parameter>
27547         <parameter name="minuend" transfer-ownership="none">
27548           <doc xml:whitespace="preserve">a GValue initialized to #GST_TYPE_FRACTION</doc>
27549           <type name="GObject.Value" c:type="GValue*"/>
27550         </parameter>
27551         <parameter name="subtrahend" transfer-ownership="none">
27552           <doc xml:whitespace="preserve">a GValue initialized to #GST_TYPE_FRACTION</doc>
27553           <type name="GObject.Value" c:type="GValue*"/>
27554         </parameter>
27555       </parameters>
27556     </function>
27557     <function name="value_get_caps" c:identifier="gst_value_get_caps">
27558       <doc xml:whitespace="preserve">Gets the contents of @value. The reference count of the returned
27559 #GstCaps will not be modified, therefore the caller must take one
27560 before getting rid of the @value.</doc>
27561       <return-value transfer-ownership="none">
27562         <doc xml:whitespace="preserve">the contents of @value</doc>
27563         <type name="Caps" c:type="GstCaps*"/>
27564       </return-value>
27565       <parameters>
27566         <parameter name="value" transfer-ownership="none">
27567           <doc xml:whitespace="preserve">a GValue initialized to GST_TYPE_CAPS</doc>
27568           <type name="GObject.Value" c:type="GValue*"/>
27569         </parameter>
27570       </parameters>
27571     </function>
27572     <function name="value_get_date" c:identifier="gst_value_get_date">
27573       <doc xml:whitespace="preserve">Gets the contents of @value.</doc>
27574       <return-value transfer-ownership="none">
27575         <doc xml:whitespace="preserve">the contents of @value</doc>
27576         <type name="GLib.Date" c:type="GDate*"/>
27577       </return-value>
27578       <parameters>
27579         <parameter name="value" transfer-ownership="none">
27580           <doc xml:whitespace="preserve">a GValue initialized to GST_TYPE_DATE</doc>
27581           <type name="GObject.Value" c:type="GValue*"/>
27582         </parameter>
27583       </parameters>
27584     </function>
27585     <function name="value_get_double_range_max"
27586               c:identifier="gst_value_get_double_range_max">
27587       <doc xml:whitespace="preserve">Gets the maximum of the range specified by @value.</doc>
27588       <return-value transfer-ownership="none">
27589         <doc xml:whitespace="preserve">the maxumum of the range</doc>
27590         <type name="gdouble" c:type="gdouble"/>
27591       </return-value>
27592       <parameters>
27593         <parameter name="value" transfer-ownership="none">
27594           <doc xml:whitespace="preserve">a GValue initialized to GST_TYPE_DOUBLE_RANGE</doc>
27595           <type name="GObject.Value" c:type="GValue*"/>
27596         </parameter>
27597       </parameters>
27598     </function>
27599     <function name="value_get_double_range_min"
27600               c:identifier="gst_value_get_double_range_min">
27601       <doc xml:whitespace="preserve">Gets the minimum of the range specified by @value.</doc>
27602       <return-value transfer-ownership="none">
27603         <doc xml:whitespace="preserve">the minimum of the range</doc>
27604         <type name="gdouble" c:type="gdouble"/>
27605       </return-value>
27606       <parameters>
27607         <parameter name="value" transfer-ownership="none">
27608           <doc xml:whitespace="preserve">a GValue initialized to GST_TYPE_DOUBLE_RANGE</doc>
27609           <type name="GObject.Value" c:type="GValue*"/>
27610         </parameter>
27611       </parameters>
27612     </function>
27613     <function name="value_get_fourcc" c:identifier="gst_value_get_fourcc">
27614       <doc xml:whitespace="preserve">Gets the #guint32 fourcc contained in @value.</doc>
27615       <return-value transfer-ownership="none">
27616         <doc xml:whitespace="preserve">the #guint32 fourcc contained in @value.</doc>
27617         <type name="guint32" c:type="guint32"/>
27618       </return-value>
27619       <parameters>
27620         <parameter name="value" transfer-ownership="none">
27621           <doc xml:whitespace="preserve">a GValue initialized to #GST_TYPE_FOURCC</doc>
27622           <type name="GObject.Value" c:type="GValue*"/>
27623         </parameter>
27624       </parameters>
27625     </function>
27626     <function name="value_get_fraction_denominator"
27627               c:identifier="gst_value_get_fraction_denominator">
27628       <doc xml:whitespace="preserve">Gets the denominator of the fraction specified by @value.</doc>
27629       <return-value transfer-ownership="none">
27630         <doc xml:whitespace="preserve">the denominator of the fraction.</doc>
27631         <type name="gint" c:type="gint"/>
27632       </return-value>
27633       <parameters>
27634         <parameter name="value" transfer-ownership="none">
27635           <doc xml:whitespace="preserve">a GValue initialized to #GST_TYPE_FRACTION</doc>
27636           <type name="GObject.Value" c:type="GValue*"/>
27637         </parameter>
27638       </parameters>
27639     </function>
27640     <function name="value_get_fraction_numerator"
27641               c:identifier="gst_value_get_fraction_numerator">
27642       <doc xml:whitespace="preserve">Gets the numerator of the fraction specified by @value.</doc>
27643       <return-value transfer-ownership="none">
27644         <doc xml:whitespace="preserve">the numerator of the fraction.</doc>
27645         <type name="gint" c:type="gint"/>
27646       </return-value>
27647       <parameters>
27648         <parameter name="value" transfer-ownership="none">
27649           <doc xml:whitespace="preserve">a GValue initialized to #GST_TYPE_FRACTION</doc>
27650           <type name="GObject.Value" c:type="GValue*"/>
27651         </parameter>
27652       </parameters>
27653     </function>
27654     <function name="value_get_fraction_range_max"
27655               c:identifier="gst_value_get_fraction_range_max">
27656       <doc xml:whitespace="preserve">Gets the maximum of the range specified by @value.</doc>
27657       <return-value transfer-ownership="none">
27658         <doc xml:whitespace="preserve">the maximum of the range</doc>
27659         <type name="GObject.Value" c:type="GValue*"/>
27660       </return-value>
27661       <parameters>
27662         <parameter name="value" transfer-ownership="none">
27663           <doc xml:whitespace="preserve">a GValue initialized to GST_TYPE_FRACTION_RANGE</doc>
27664           <type name="GObject.Value" c:type="GValue*"/>
27665         </parameter>
27666       </parameters>
27667     </function>
27668     <function name="value_get_fraction_range_min"
27669               c:identifier="gst_value_get_fraction_range_min">
27670       <doc xml:whitespace="preserve">Gets the minimum of the range specified by @value.</doc>
27671       <return-value transfer-ownership="none">
27672         <doc xml:whitespace="preserve">the minimum of the range</doc>
27673         <type name="GObject.Value" c:type="GValue*"/>
27674       </return-value>
27675       <parameters>
27676         <parameter name="value" transfer-ownership="none">
27677           <doc xml:whitespace="preserve">a GValue initialized to GST_TYPE_FRACTION_RANGE</doc>
27678           <type name="GObject.Value" c:type="GValue*"/>
27679         </parameter>
27680       </parameters>
27681     </function>
27682     <function name="value_get_int64_range_max"
27683               c:identifier="gst_value_get_int64_range_max"
27684               version="0.10.31">
27685       <doc xml:whitespace="preserve">Gets the maximum of the range specified by @value.</doc>
27686       <return-value transfer-ownership="none">
27687         <doc xml:whitespace="preserve">the maxumum of the range</doc>
27688         <type name="gint64" c:type="gint64"/>
27689       </return-value>
27690       <parameters>
27691         <parameter name="value" transfer-ownership="none">
27692           <doc xml:whitespace="preserve">a GValue initialized to GST_TYPE_INT64_RANGE</doc>
27693           <type name="GObject.Value" c:type="GValue*"/>
27694         </parameter>
27695       </parameters>
27696     </function>
27697     <function name="value_get_int64_range_min"
27698               c:identifier="gst_value_get_int64_range_min"
27699               version="0.10.31">
27700       <doc xml:whitespace="preserve">Gets the minimum of the range specified by @value.</doc>
27701       <return-value transfer-ownership="none">
27702         <doc xml:whitespace="preserve">the minimum of the range</doc>
27703         <type name="gint64" c:type="gint64"/>
27704       </return-value>
27705       <parameters>
27706         <parameter name="value" transfer-ownership="none">
27707           <doc xml:whitespace="preserve">a GValue initialized to GST_TYPE_INT64_RANGE</doc>
27708           <type name="GObject.Value" c:type="GValue*"/>
27709         </parameter>
27710       </parameters>
27711     </function>
27712     <function name="value_get_int_range_max"
27713               c:identifier="gst_value_get_int_range_max">
27714       <doc xml:whitespace="preserve">Gets the maximum of the range specified by @value.</doc>
27715       <return-value transfer-ownership="none">
27716         <doc xml:whitespace="preserve">the maxumum of the range</doc>
27717         <type name="gint" c:type="gint"/>
27718       </return-value>
27719       <parameters>
27720         <parameter name="value" transfer-ownership="none">
27721           <doc xml:whitespace="preserve">a GValue initialized to GST_TYPE_INT_RANGE</doc>
27722           <type name="GObject.Value" c:type="GValue*"/>
27723         </parameter>
27724       </parameters>
27725     </function>
27726     <function name="value_get_int_range_min"
27727               c:identifier="gst_value_get_int_range_min">
27728       <doc xml:whitespace="preserve">Gets the minimum of the range specified by @value.</doc>
27729       <return-value transfer-ownership="none">
27730         <doc xml:whitespace="preserve">the minimum of the range</doc>
27731         <type name="gint" c:type="gint"/>
27732       </return-value>
27733       <parameters>
27734         <parameter name="value" transfer-ownership="none">
27735           <doc xml:whitespace="preserve">a GValue initialized to GST_TYPE_INT_RANGE</doc>
27736           <type name="GObject.Value" c:type="GValue*"/>
27737         </parameter>
27738       </parameters>
27739     </function>
27740     <function name="value_get_mini_object"
27741               c:identifier="gst_value_get_mini_object">
27742       <doc xml:whitespace="preserve">Get the contents of a %GST_TYPE_MINI_OBJECT derived #GValue.
27743 Does not increase the refcount of the returned object.</doc>
27744       <return-value transfer-ownership="none">
27745         <doc xml:whitespace="preserve">mini object contents of @value</doc>
27746         <type name="MiniObject" c:type="GstMiniObject*"/>
27747       </return-value>
27748       <parameters>
27749         <parameter name="value" transfer-ownership="none">
27750           <doc xml:whitespace="preserve">a valid #GValue of %GST_TYPE_MINI_OBJECT derived type</doc>
27751           <type name="GObject.Value" c:type="GValue*"/>
27752         </parameter>
27753       </parameters>
27754     </function>
27755     <function name="value_get_structure"
27756               c:identifier="gst_value_get_structure"
27757               version="0.10.15">
27758       <doc xml:whitespace="preserve">Gets the contents of @value.</doc>
27759       <return-value transfer-ownership="none">
27760         <doc xml:whitespace="preserve">the contents of @value</doc>
27761         <type name="Structure" c:type="GstStructure*"/>
27762       </return-value>
27763       <parameters>
27764         <parameter name="value" transfer-ownership="none">
27765           <doc xml:whitespace="preserve">a GValue initialized to GST_TYPE_STRUCTURE</doc>
27766           <type name="GObject.Value" c:type="GValue*"/>
27767         </parameter>
27768       </parameters>
27769     </function>
27770     <function name="value_init_and_copy"
27771               c:identifier="gst_value_init_and_copy">
27772       <doc xml:whitespace="preserve">Initialises the target value to be of the same type as source and then copies
27773 the contents from source to target.</doc>
27774       <return-value transfer-ownership="none">
27775         <type name="none" c:type="void"/>
27776       </return-value>
27777       <parameters>
27778         <parameter name="dest"
27779                    direction="out"
27780                    caller-allocates="1"
27781                    transfer-ownership="none">
27782           <doc xml:whitespace="preserve">the target value</doc>
27783           <type name="GObject.Value" c:type="GValue*"/>
27784         </parameter>
27785         <parameter name="src" transfer-ownership="none">
27786           <doc xml:whitespace="preserve">the source value</doc>
27787           <type name="GObject.Value" c:type="GValue*"/>
27788         </parameter>
27789       </parameters>
27790     </function>
27791     <function name="value_intersect" c:identifier="gst_value_intersect">
27792       <doc xml:whitespace="preserve">Calculates the intersection of two values.  If the values have
27793 a non-empty intersection, the value representing the intersection
27794 is placed in @dest.  If the intersection is non-empty, @dest is
27795 not modified.</doc>
27796       <return-value transfer-ownership="none">
27797         <doc xml:whitespace="preserve">TRUE if the intersection is non-empty</doc>
27798         <type name="gboolean" c:type="gboolean"/>
27799       </return-value>
27800       <parameters>
27801         <parameter name="dest"
27802                    direction="out"
27803                    caller-allocates="1"
27804                    transfer-ownership="none">
27805           <doc xml:whitespace="preserve">a uninitialized #GValue that will hold the calculated intersection value</doc>
27806           <type name="GObject.Value" c:type="GValue*"/>
27807         </parameter>
27808         <parameter name="value1" transfer-ownership="none">
27809           <doc xml:whitespace="preserve">a value to intersect</doc>
27810           <type name="GObject.Value" c:type="GValue*"/>
27811         </parameter>
27812         <parameter name="value2" transfer-ownership="none">
27813           <doc xml:whitespace="preserve">another value to intersect</doc>
27814           <type name="GObject.Value" c:type="GValue*"/>
27815         </parameter>
27816       </parameters>
27817     </function>
27818     <function name="value_is_fixed" c:identifier="gst_value_is_fixed">
27819       <doc xml:whitespace="preserve">Tests if the given GValue, if available in a GstStructure (or any other
27820 (which means: multiple possible values, such as data lists or data
27821 ranges) value.</doc>
27822       <return-value transfer-ownership="none">
27823         <doc xml:whitespace="preserve">true if the value is "fixed".</doc>
27824         <type name="gboolean" c:type="gboolean"/>
27825       </return-value>
27826       <parameters>
27827         <parameter name="value" transfer-ownership="none">
27828           <doc xml:whitespace="preserve">the #GValue to check</doc>
27829           <type name="GObject.Value" c:type="GValue*"/>
27830         </parameter>
27831       </parameters>
27832     </function>
27833     <function name="value_list_append_value"
27834               c:identifier="gst_value_list_append_value">
27835       <doc xml:whitespace="preserve">Appends @append_value to the GstValueList in @value.</doc>
27836       <return-value transfer-ownership="none">
27837         <type name="none" c:type="void"/>
27838       </return-value>
27839       <parameters>
27840         <parameter name="value" transfer-ownership="none">
27841           <doc xml:whitespace="preserve">a #GValue of type #GST_TYPE_LIST</doc>
27842           <type name="GObject.Value" c:type="GValue*"/>
27843         </parameter>
27844         <parameter name="append_value" transfer-ownership="none">
27845           <doc xml:whitespace="preserve">the value to append</doc>
27846           <type name="GObject.Value" c:type="GValue*"/>
27847         </parameter>
27848       </parameters>
27849     </function>
27850     <function name="value_list_concat" c:identifier="gst_value_list_concat">
27851       <doc xml:whitespace="preserve">Concatenates copies of @value1 and @value2 into a list.  Values that are not
27852 of type #GST_TYPE_LIST are treated as if they were lists of length 1.</doc>
27853       <return-value transfer-ownership="none">
27854         <type name="none" c:type="void"/>
27855       </return-value>
27856       <parameters>
27857         <parameter name="dest"
27858                    direction="out"
27859                    caller-allocates="1"
27860                    transfer-ownership="none">
27861           <doc xml:whitespace="preserve">an uninitialized #GValue to take the result</doc>
27862           <type name="GObject.Value" c:type="GValue*"/>
27863         </parameter>
27864         <parameter name="value1" transfer-ownership="none">
27865           <doc xml:whitespace="preserve">a #GValue</doc>
27866           <type name="GObject.Value" c:type="GValue*"/>
27867         </parameter>
27868         <parameter name="value2" transfer-ownership="none">
27869           <doc xml:whitespace="preserve">a #GValue</doc>
27870           <type name="GObject.Value" c:type="GValue*"/>
27871         </parameter>
27872       </parameters>
27873     </function>
27874     <function name="value_list_get_size"
27875               c:identifier="gst_value_list_get_size">
27876       <doc xml:whitespace="preserve">Gets the number of values contained in @value.</doc>
27877       <return-value transfer-ownership="none">
27878         <doc xml:whitespace="preserve">the number of values</doc>
27879         <type name="guint" c:type="guint"/>
27880       </return-value>
27881       <parameters>
27882         <parameter name="value" transfer-ownership="none">
27883           <doc xml:whitespace="preserve">a #GValue of type #GST_TYPE_LIST</doc>
27884           <type name="GObject.Value" c:type="GValue*"/>
27885         </parameter>
27886       </parameters>
27887     </function>
27888     <function name="value_list_get_type"
27889               c:identifier="gst_value_list_get_type">
27890       <return-value transfer-ownership="none">
27891         <type name="GType" c:type="GType"/>
27892       </return-value>
27893     </function>
27894     <function name="value_list_get_value"
27895               c:identifier="gst_value_list_get_value">
27896       <doc xml:whitespace="preserve">Gets the value that is a member of the list contained in @value and
27897 has the index @index.</doc>
27898       <return-value transfer-ownership="none">
27899         <doc xml:whitespace="preserve">the value at the given index</doc>
27900         <type name="GObject.Value" c:type="GValue*"/>
27901       </return-value>
27902       <parameters>
27903         <parameter name="value" transfer-ownership="none">
27904           <doc xml:whitespace="preserve">a #GValue of type #GST_TYPE_LIST</doc>
27905           <type name="GObject.Value" c:type="GValue*"/>
27906         </parameter>
27907         <parameter name="index" transfer-ownership="none">
27908           <doc xml:whitespace="preserve">index of value to get from the list</doc>
27909           <type name="guint" c:type="guint"/>
27910         </parameter>
27911       </parameters>
27912     </function>
27913     <function name="value_list_merge"
27914               c:identifier="gst_value_list_merge"
27915               version="0.10.32">
27916       <doc xml:whitespace="preserve">Merges copies of @value1 and @value2.  Values that are not
27917 of type #GST_TYPE_LIST are treated as if they were lists of length 1.
27918 The result will be put into @dest and will either be a list that will not
27919 contain any duplicates, or a non-list type (if @value1 and @value2
27920 were equal).</doc>
27921       <return-value transfer-ownership="none">
27922         <type name="none" c:type="void"/>
27923       </return-value>
27924       <parameters>
27925         <parameter name="dest"
27926                    direction="out"
27927                    caller-allocates="1"
27928                    transfer-ownership="none">
27929           <doc xml:whitespace="preserve">an uninitialized #GValue to take the result</doc>
27930           <type name="GObject.Value" c:type="GValue*"/>
27931         </parameter>
27932         <parameter name="value1" transfer-ownership="none">
27933           <doc xml:whitespace="preserve">a #GValue</doc>
27934           <type name="GObject.Value" c:type="GValue*"/>
27935         </parameter>
27936         <parameter name="value2" transfer-ownership="none">
27937           <doc xml:whitespace="preserve">a #GValue</doc>
27938           <type name="GObject.Value" c:type="GValue*"/>
27939         </parameter>
27940       </parameters>
27941     </function>
27942     <function name="value_list_prepend_value"
27943               c:identifier="gst_value_list_prepend_value">
27944       <doc xml:whitespace="preserve">Prepends @prepend_value to the GstValueList in @value.</doc>
27945       <return-value transfer-ownership="none">
27946         <type name="none" c:type="void"/>
27947       </return-value>
27948       <parameters>
27949         <parameter name="value" transfer-ownership="none">
27950           <doc xml:whitespace="preserve">a #GValue of type #GST_TYPE_LIST</doc>
27951           <type name="GObject.Value" c:type="GValue*"/>
27952         </parameter>
27953         <parameter name="prepend_value" transfer-ownership="none">
27954           <doc xml:whitespace="preserve">the value to prepend</doc>
27955           <type name="GObject.Value" c:type="GValue*"/>
27956         </parameter>
27957       </parameters>
27958     </function>
27959     <function name="value_register" c:identifier="gst_value_register">
27960       <doc xml:whitespace="preserve">Registers functions to perform calculations on #GValue items of a given
27961 type. Each type can only be added once.</doc>
27962       <return-value transfer-ownership="none">
27963         <type name="none" c:type="void"/>
27964       </return-value>
27965       <parameters>
27966         <parameter name="table" transfer-ownership="none">
27967           <doc xml:whitespace="preserve">structure containing functions to register</doc>
27968           <type name="ValueTable" c:type="GstValueTable*"/>
27969         </parameter>
27970       </parameters>
27971     </function>
27972     <function name="value_register_intersect_func"
27973               c:identifier="gst_value_register_intersect_func"
27974               introspectable="0">
27975       <doc xml:whitespace="preserve">Registers a function that is called to calculate the intersection
27976 of the values having the types @type1 and @type2.
27977 Intersect functions should be registered at startup before any pipelines are
27978 started, as gst_value_register_intersect_func() is not thread-safe and
27979 cannot be used at the same time as gst_value_intersect() or
27980 gst_value_can_intersect().</doc>
27981       <return-value transfer-ownership="none">
27982         <type name="none" c:type="void"/>
27983       </return-value>
27984       <parameters>
27985         <parameter name="type1" transfer-ownership="none">
27986           <doc xml:whitespace="preserve">the first type to intersect</doc>
27987           <type name="GType" c:type="GType"/>
27988         </parameter>
27989         <parameter name="type2" transfer-ownership="none">
27990           <doc xml:whitespace="preserve">the second type to intersect</doc>
27991           <type name="GType" c:type="GType"/>
27992         </parameter>
27993         <parameter name="func" transfer-ownership="none">
27994           <doc xml:whitespace="preserve">the intersection function</doc>
27995           <type name="ValueIntersectFunc" c:type="GstValueIntersectFunc"/>
27996         </parameter>
27997       </parameters>
27998     </function>
27999     <function name="value_register_subtract_func"
28000               c:identifier="gst_value_register_subtract_func"
28001               introspectable="0">
28002       <doc xml:whitespace="preserve">Registers @func as a function capable of subtracting the values of
28003 Subtract functions should be registered at startup before any pipelines are
28004 started, as gst_value_register_subtract_func() is not thread-safe and
28005 cannot be used at the same time as gst_value_subtract().</doc>
28006       <return-value transfer-ownership="none">
28007         <type name="none" c:type="void"/>
28008       </return-value>
28009       <parameters>
28010         <parameter name="minuend_type" transfer-ownership="none">
28011           <doc xml:whitespace="preserve">type of the minuend</doc>
28012           <type name="GType" c:type="GType"/>
28013         </parameter>
28014         <parameter name="subtrahend_type" transfer-ownership="none">
28015           <doc xml:whitespace="preserve">type of the subtrahend</doc>
28016           <type name="GType" c:type="GType"/>
28017         </parameter>
28018         <parameter name="func" transfer-ownership="none">
28019           <doc xml:whitespace="preserve">function to use</doc>
28020           <type name="ValueSubtractFunc" c:type="GstValueSubtractFunc"/>
28021         </parameter>
28022       </parameters>
28023     </function>
28024     <function name="value_register_union_func"
28025               c:identifier="gst_value_register_union_func"
28026               introspectable="0">
28027       <doc xml:whitespace="preserve">Registers a union function that can create a union between #GValue items
28028 of the type @type1 and @type2.
28029 Union functions should be registered at startup before any pipelines are
28030 started, as gst_value_register_union_func() is not thread-safe and cannot
28031 be used at the same time as gst_value_union() or gst_value_can_union().</doc>
28032       <return-value transfer-ownership="none">
28033         <type name="none" c:type="void"/>
28034       </return-value>
28035       <parameters>
28036         <parameter name="type1" transfer-ownership="none">
28037           <doc xml:whitespace="preserve">a type to union</doc>
28038           <type name="GType" c:type="GType"/>
28039         </parameter>
28040         <parameter name="type2" transfer-ownership="none">
28041           <doc xml:whitespace="preserve">another type to union</doc>
28042           <type name="GType" c:type="GType"/>
28043         </parameter>
28044         <parameter name="func" transfer-ownership="none">
28045           <doc xml:whitespace="preserve">a function that implments creating a union between the two types</doc>
28046           <type name="ValueUnionFunc" c:type="GstValueUnionFunc"/>
28047         </parameter>
28048       </parameters>
28049     </function>
28050     <function name="value_serialize" c:identifier="gst_value_serialize">
28051       <doc xml:whitespace="preserve">tries to transform the given @value into a string representation that allows
28052 getting back this string later on using gst_value_deserialize().</doc>
28053       <return-value transfer-ownership="full">
28054         <doc xml:whitespace="preserve">the serialization for @value or NULL if none exists</doc>
28055         <type name="utf8" c:type="gchar*"/>
28056       </return-value>
28057       <parameters>
28058         <parameter name="value" transfer-ownership="none">
28059           <doc xml:whitespace="preserve">a #GValue to serialize</doc>
28060           <type name="GObject.Value" c:type="GValue*"/>
28061         </parameter>
28062       </parameters>
28063     </function>
28064     <function name="value_set_caps" c:identifier="gst_value_set_caps">
28065       <doc xml:whitespace="preserve">Sets the contents of @value to @caps. A reference to the
28066 provided @caps will be taken by the @value.</doc>
28067       <return-value transfer-ownership="none">
28068         <type name="none" c:type="void"/>
28069       </return-value>
28070       <parameters>
28071         <parameter name="value" transfer-ownership="none">
28072           <doc xml:whitespace="preserve">a GValue initialized to GST_TYPE_CAPS</doc>
28073           <type name="GObject.Value" c:type="GValue*"/>
28074         </parameter>
28075         <parameter name="caps" transfer-ownership="none">
28076           <doc xml:whitespace="preserve">the caps to set the value to</doc>
28077           <type name="Caps" c:type="GstCaps*"/>
28078         </parameter>
28079       </parameters>
28080     </function>
28081     <function name="value_set_date" c:identifier="gst_value_set_date">
28082       <doc xml:whitespace="preserve">Sets the contents of @value to coorespond to @date.  The actual
28083 #GDate structure is copied before it is used.</doc>
28084       <return-value transfer-ownership="none">
28085         <type name="none" c:type="void"/>
28086       </return-value>
28087       <parameters>
28088         <parameter name="value" transfer-ownership="none">
28089           <doc xml:whitespace="preserve">a GValue initialized to GST_TYPE_DATE</doc>
28090           <type name="GObject.Value" c:type="GValue*"/>
28091         </parameter>
28092         <parameter name="date" transfer-ownership="none">
28093           <doc xml:whitespace="preserve">the date to set the value to</doc>
28094           <type name="GLib.Date" c:type="GDate*"/>
28095         </parameter>
28096       </parameters>
28097     </function>
28098     <function name="value_set_double_range"
28099               c:identifier="gst_value_set_double_range">
28100       <doc xml:whitespace="preserve">Sets @value to the range specified by @start and @end.</doc>
28101       <return-value transfer-ownership="none">
28102         <type name="none" c:type="void"/>
28103       </return-value>
28104       <parameters>
28105         <parameter name="value" transfer-ownership="none">
28106           <doc xml:whitespace="preserve">a GValue initialized to GST_TYPE_DOUBLE_RANGE</doc>
28107           <type name="GObject.Value" c:type="GValue*"/>
28108         </parameter>
28109         <parameter name="start" transfer-ownership="none">
28110           <doc xml:whitespace="preserve">the start of the range</doc>
28111           <type name="gdouble" c:type="gdouble"/>
28112         </parameter>
28113         <parameter name="end" transfer-ownership="none">
28114           <doc xml:whitespace="preserve">the end of the range</doc>
28115           <type name="gdouble" c:type="gdouble"/>
28116         </parameter>
28117       </parameters>
28118     </function>
28119     <function name="value_set_fourcc" c:identifier="gst_value_set_fourcc">
28120       <doc xml:whitespace="preserve">Sets @value to @fourcc.</doc>
28121       <return-value transfer-ownership="none">
28122         <type name="none" c:type="void"/>
28123       </return-value>
28124       <parameters>
28125         <parameter name="value" transfer-ownership="none">
28126           <doc xml:whitespace="preserve">a GValue initialized to #GST_TYPE_FOURCC</doc>
28127           <type name="GObject.Value" c:type="GValue*"/>
28128         </parameter>
28129         <parameter name="fourcc" transfer-ownership="none">
28130           <doc xml:whitespace="preserve">the #guint32 fourcc to set</doc>
28131           <type name="guint32" c:type="guint32"/>
28132         </parameter>
28133       </parameters>
28134     </function>
28135     <function name="value_set_fraction" c:identifier="gst_value_set_fraction">
28136       <doc xml:whitespace="preserve">Sets @value to the fraction specified by @numerator over @denominator.
28137 The fraction gets reduced to the smallest numerator and denominator,
28138 and if necessary the sign is moved to the numerator.</doc>
28139       <return-value transfer-ownership="none">
28140         <type name="none" c:type="void"/>
28141       </return-value>
28142       <parameters>
28143         <parameter name="value" transfer-ownership="none">
28144           <doc xml:whitespace="preserve">a GValue initialized to #GST_TYPE_FRACTION</doc>
28145           <type name="GObject.Value" c:type="GValue*"/>
28146         </parameter>
28147         <parameter name="numerator" transfer-ownership="none">
28148           <doc xml:whitespace="preserve">the numerator of the fraction</doc>
28149           <type name="gint" c:type="gint"/>
28150         </parameter>
28151         <parameter name="denominator" transfer-ownership="none">
28152           <doc xml:whitespace="preserve">the denominator of the fraction</doc>
28153           <type name="gint" c:type="gint"/>
28154         </parameter>
28155       </parameters>
28156     </function>
28157     <function name="value_set_fraction_range"
28158               c:identifier="gst_value_set_fraction_range">
28159       <doc xml:whitespace="preserve">Sets @value to the range specified by @start and @end.</doc>
28160       <return-value transfer-ownership="none">
28161         <type name="none" c:type="void"/>
28162       </return-value>
28163       <parameters>
28164         <parameter name="value" transfer-ownership="none">
28165           <doc xml:whitespace="preserve">a GValue initialized to GST_TYPE_FRACTION_RANGE</doc>
28166           <type name="GObject.Value" c:type="GValue*"/>
28167         </parameter>
28168         <parameter name="start" transfer-ownership="none">
28169           <doc xml:whitespace="preserve">the start of the range (a GST_TYPE_FRACTION GValue)</doc>
28170           <type name="GObject.Value" c:type="GValue*"/>
28171         </parameter>
28172         <parameter name="end" transfer-ownership="none">
28173           <doc xml:whitespace="preserve">the end of the range (a GST_TYPE_FRACTION GValue)</doc>
28174           <type name="GObject.Value" c:type="GValue*"/>
28175         </parameter>
28176       </parameters>
28177     </function>
28178     <function name="value_set_fraction_range_full"
28179               c:identifier="gst_value_set_fraction_range_full">
28180       <doc xml:whitespace="preserve">Sets @value to the range specified by @numerator_start/@denominator_start
28181 and @numerator_end/@denominator_end.</doc>
28182       <return-value transfer-ownership="none">
28183         <type name="none" c:type="void"/>
28184       </return-value>
28185       <parameters>
28186         <parameter name="value" transfer-ownership="none">
28187           <doc xml:whitespace="preserve">a GValue initialized to GST_TYPE_FRACTION_RANGE</doc>
28188           <type name="GObject.Value" c:type="GValue*"/>
28189         </parameter>
28190         <parameter name="numerator_start" transfer-ownership="none">
28191           <doc xml:whitespace="preserve">the numerator start of the range</doc>
28192           <type name="gint" c:type="gint"/>
28193         </parameter>
28194         <parameter name="denominator_start" transfer-ownership="none">
28195           <doc xml:whitespace="preserve">the denominator start of the range</doc>
28196           <type name="gint" c:type="gint"/>
28197         </parameter>
28198         <parameter name="numerator_end" transfer-ownership="none">
28199           <doc xml:whitespace="preserve">the numerator end of the range</doc>
28200           <type name="gint" c:type="gint"/>
28201         </parameter>
28202         <parameter name="denominator_end" transfer-ownership="none">
28203           <doc xml:whitespace="preserve">the denominator end of the range</doc>
28204           <type name="gint" c:type="gint"/>
28205         </parameter>
28206       </parameters>
28207     </function>
28208     <function name="value_set_int64_range"
28209               c:identifier="gst_value_set_int64_range"
28210               version="0.10.31">
28211       <doc xml:whitespace="preserve">Sets @value to the range specified by @start and @end.</doc>
28212       <return-value transfer-ownership="none">
28213         <type name="none" c:type="void"/>
28214       </return-value>
28215       <parameters>
28216         <parameter name="value" transfer-ownership="none">
28217           <doc xml:whitespace="preserve">a GValue initialized to GST_TYPE_INT64_RANGE</doc>
28218           <type name="GObject.Value" c:type="GValue*"/>
28219         </parameter>
28220         <parameter name="start" transfer-ownership="none">
28221           <doc xml:whitespace="preserve">the start of the range</doc>
28222           <type name="gint64" c:type="gint64"/>
28223         </parameter>
28224         <parameter name="end" transfer-ownership="none">
28225           <doc xml:whitespace="preserve">the end of the range</doc>
28226           <type name="gint64" c:type="gint64"/>
28227         </parameter>
28228       </parameters>
28229     </function>
28230     <function name="value_set_int_range"
28231               c:identifier="gst_value_set_int_range">
28232       <doc xml:whitespace="preserve">Sets @value to the range specified by @start and @end.</doc>
28233       <return-value transfer-ownership="none">
28234         <type name="none" c:type="void"/>
28235       </return-value>
28236       <parameters>
28237         <parameter name="value" transfer-ownership="none">
28238           <doc xml:whitespace="preserve">a GValue initialized to GST_TYPE_INT_RANGE</doc>
28239           <type name="GObject.Value" c:type="GValue*"/>
28240         </parameter>
28241         <parameter name="start" transfer-ownership="none">
28242           <doc xml:whitespace="preserve">the start of the range</doc>
28243           <type name="gint" c:type="gint"/>
28244         </parameter>
28245         <parameter name="end" transfer-ownership="none">
28246           <doc xml:whitespace="preserve">the end of the range</doc>
28247           <type name="gint" c:type="gint"/>
28248         </parameter>
28249       </parameters>
28250     </function>
28251     <function name="value_set_mini_object"
28252               c:identifier="gst_value_set_mini_object">
28253       <doc xml:whitespace="preserve">Set the contents of a %GST_TYPE_MINI_OBJECT derived #GValue to
28254 The caller retains ownership of the reference.</doc>
28255       <return-value transfer-ownership="none">
28256         <type name="none" c:type="void"/>
28257       </return-value>
28258       <parameters>
28259         <parameter name="value" transfer-ownership="none">
28260           <doc xml:whitespace="preserve">a valid #GValue of %GST_TYPE_MINI_OBJECT derived type</doc>
28261           <type name="GObject.Value" c:type="GValue*"/>
28262         </parameter>
28263         <parameter name="mini_object" transfer-ownership="none">
28264           <doc xml:whitespace="preserve">mini object value to set</doc>
28265           <type name="MiniObject" c:type="GstMiniObject*"/>
28266         </parameter>
28267       </parameters>
28268     </function>
28269     <function name="value_set_structure"
28270               c:identifier="gst_value_set_structure"
28271               version="0.10.15">
28272       <doc xml:whitespace="preserve">Sets the contents of @value to @structure.  The actual</doc>
28273       <return-value transfer-ownership="none">
28274         <type name="none" c:type="void"/>
28275       </return-value>
28276       <parameters>
28277         <parameter name="value" transfer-ownership="none">
28278           <doc xml:whitespace="preserve">a GValue initialized to GST_TYPE_STRUCTURE</doc>
28279           <type name="GObject.Value" c:type="GValue*"/>
28280         </parameter>
28281         <parameter name="structure" transfer-ownership="none">
28282           <doc xml:whitespace="preserve">the structure to set the value to</doc>
28283           <type name="Structure" c:type="GstStructure*"/>
28284         </parameter>
28285       </parameters>
28286     </function>
28287     <function name="value_subtract" c:identifier="gst_value_subtract">
28288       <doc xml:whitespace="preserve">Subtracts @subtrahend from @minuend and stores the result in @dest.
28289 Note that this means subtraction as in sets, not as in mathematics.</doc>
28290       <return-value transfer-ownership="none">
28291         <doc xml:whitespace="preserve">%TRUE if the subtraction is not empty</doc>
28292         <type name="gboolean" c:type="gboolean"/>
28293       </return-value>
28294       <parameters>
28295         <parameter name="dest"
28296                    direction="out"
28297                    caller-allocates="1"
28298                    transfer-ownership="none">
28299           <doc xml:whitespace="preserve">the destination value for the result if the subtraction is not empty</doc>
28300           <type name="GObject.Value" c:type="GValue*"/>
28301         </parameter>
28302         <parameter name="minuend" transfer-ownership="none">
28303           <doc xml:whitespace="preserve">the value to subtract from</doc>
28304           <type name="GObject.Value" c:type="GValue*"/>
28305         </parameter>
28306         <parameter name="subtrahend" transfer-ownership="none">
28307           <doc xml:whitespace="preserve">the value to subtract</doc>
28308           <type name="GObject.Value" c:type="GValue*"/>
28309         </parameter>
28310       </parameters>
28311     </function>
28312     <function name="value_take_mini_object"
28313               c:identifier="gst_value_take_mini_object">
28314       <doc xml:whitespace="preserve">Set the contents of a %GST_TYPE_MINI_OBJECT derived #GValue to
28315 Takes over the ownership of the caller's reference to @mini_object;
28316 the caller doesn't have to unref it any more.</doc>
28317       <return-value transfer-ownership="none">
28318         <type name="none" c:type="void"/>
28319       </return-value>
28320       <parameters>
28321         <parameter name="value" transfer-ownership="none">
28322           <doc xml:whitespace="preserve">a valid #GValue of %GST_TYPE_MINI_OBJECT derived type</doc>
28323           <type name="GObject.Value" c:type="GValue*"/>
28324         </parameter>
28325         <parameter name="mini_object" transfer-ownership="full">
28326           <doc xml:whitespace="preserve">mini object value to take</doc>
28327           <type name="MiniObject" c:type="GstMiniObject*"/>
28328         </parameter>
28329       </parameters>
28330     </function>
28331     <function name="value_union" c:identifier="gst_value_union">
28332       <doc xml:whitespace="preserve">Creates a GValue corresponding to the union of @value1 and @value2.</doc>
28333       <return-value transfer-ownership="none">
28334         <doc xml:whitespace="preserve">always returns %TRUE</doc>
28335         <type name="gboolean" c:type="gboolean"/>
28336       </return-value>
28337       <parameters>
28338         <parameter name="dest"
28339                    direction="out"
28340                    caller-allocates="1"
28341                    transfer-ownership="none">
28342           <doc xml:whitespace="preserve">the destination value</doc>
28343           <type name="GObject.Value" c:type="GValue*"/>
28344         </parameter>
28345         <parameter name="value1" transfer-ownership="none">
28346           <doc xml:whitespace="preserve">a value to union</doc>
28347           <type name="GObject.Value" c:type="GValue*"/>
28348         </parameter>
28349         <parameter name="value2" transfer-ownership="none">
28350           <doc xml:whitespace="preserve">another value to union</doc>
28351           <type name="GObject.Value" c:type="GValue*"/>
28352         </parameter>
28353       </parameters>
28354     </function>
28355     <function name="version" c:identifier="gst_version">
28356       <doc xml:whitespace="preserve">Gets the version number of the GStreamer library.</doc>
28357       <return-value transfer-ownership="none">
28358         <type name="none" c:type="void"/>
28359       </return-value>
28360       <parameters>
28361         <parameter name="major"
28362                    direction="out"
28363                    caller-allocates="0"
28364                    transfer-ownership="full">
28365           <doc xml:whitespace="preserve">pointer to a guint to store the major version number</doc>
28366           <type name="guint" c:type="guint*"/>
28367         </parameter>
28368         <parameter name="minor"
28369                    direction="out"
28370                    caller-allocates="0"
28371                    transfer-ownership="full">
28372           <doc xml:whitespace="preserve">pointer to a guint to store the minor version number</doc>
28373           <type name="guint" c:type="guint*"/>
28374         </parameter>
28375         <parameter name="micro"
28376                    direction="out"
28377                    caller-allocates="0"
28378                    transfer-ownership="full">
28379           <doc xml:whitespace="preserve">pointer to a guint to store the micro version number</doc>
28380           <type name="guint" c:type="guint*"/>
28381         </parameter>
28382         <parameter name="nano"
28383                    direction="out"
28384                    caller-allocates="0"
28385                    transfer-ownership="full">
28386           <doc xml:whitespace="preserve">pointer to a guint to store the nano version number</doc>
28387           <type name="guint" c:type="guint*"/>
28388         </parameter>
28389       </parameters>
28390     </function>
28391     <function name="version_string" c:identifier="gst_version_string">
28392       <doc xml:whitespace="preserve">This function returns a string that is useful for describing this version
28393 of GStreamer.</doc>
28394       <return-value transfer-ownership="full">
28395         <doc xml:whitespace="preserve">a newly allocated string describing this version</doc>
28396         <type name="utf8" c:type="gchar*"/>
28397       </return-value>
28398     </function>
28399   </namespace>
28400 </repository>