]> gitweb.factorcode.org Git - factor.git/blob - unmaintained/gstreamer/plugins/audio/GstAudio-0.10.gir
tools.test: Make the flag public. Finish porting tester changes to fuzzer.
[factor.git] / unmaintained / gstreamer / plugins / audio / GstAudio-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="Gst" version="0.10"/>
13   <include name="GstBase" version="0.10"/>
14   <include name="GstInterfaces" version="0.10"/>
15   <include name="libxml2" version="2.0"/>
16   <package name="gstreamer-audio-0.10"/>
17   <c:include name="gst/audio/audio-enumtypes.h"/>
18   <c:include name="gst/audio/audio.h"/>
19   <c:include name="gst/audio/gstaudioclock.h"/>
20   <c:include name="gst/audio/gstaudiofilter.h"/>
21   <c:include name="gst/audio/gstaudiosink.h"/>
22   <c:include name="gst/audio/gstaudiosrc.h"/>
23   <c:include name="gst/audio/gstbaseaudiosink.h"/>
24   <c:include name="gst/audio/gstbaseaudiosrc.h"/>
25   <c:include name="gst/audio/gstringbuffer.h"/>
26   <c:include name="gst/audio/mixerutils.h"/>
27   <c:include name="gst/audio/multichannel.h"/>
28   <namespace name="GstAudio"
29              version="0.10"
30              shared-library="libgstaudio-0.10.so.0"
31              c:identifier-prefixes="Gst"
32              c:symbol-prefixes="gst">
33     <constant name="AUDIO_DEF_RATE" value="44100">
34       <type name="gint" c:type="gint"/>
35     </constant>
36     <constant name="AUDIO_FLOAT_PAD_TEMPLATE_CAPS"
37               value="audio/x-raw-float, rate = (int) [ 1, MAX ], channels = (int) [ 1, MAX ], endianness = (int) { LITTLE_ENDIAN , BIG_ENDIAN }, width = (int) { 32, 64 }">
38       <type name="utf8" c:type="gchar*"/>
39     </constant>
40     <constant name="AUDIO_FLOAT_STANDARD_PAD_TEMPLATE_CAPS"
41               value="audio/x-raw-float, width = (int) 32, rate = (int) [ 1, MAX ], channels = (int) 1, endianness = (int) BYTE_ORDER">
42       <type name="utf8" c:type="gchar*"/>
43     </constant>
44     <constant name="AUDIO_INT_PAD_TEMPLATE_CAPS"
45               value="audio/x-raw-int, rate = (int) [ 1, MAX ], channels = (int) [ 1, MAX ], endianness = (int) { LITTLE_ENDIAN, BIG_ENDIAN }, width = (int) { 8, 16, 24, 32 }, depth = (int) [ 1, 32 ], signed = (boolean) { true, false }">
46       <type name="utf8" c:type="gchar*"/>
47     </constant>
48     <constant name="AUDIO_INT_STANDARD_PAD_TEMPLATE_CAPS"
49               value="audio/x-raw-int, rate = (int) [ 1, MAX ], channels = (int) 2, endianness = (int) BYTE_ORDER, width = (int) 16, depth = (int) 16, signed = (boolean) true">
50       <type name="utf8" c:type="gchar*"/>
51     </constant>
52     <enumeration name="AudioChannelPosition"
53                  glib:type-name="GstAudioChannelPosition"
54                  glib:get-type="gst_audio_channel_position_get_type"
55                  c:type="GstAudioChannelPosition">
56       <member name="invalid"
57               value="-1"
58               c:identifier="GST_AUDIO_CHANNEL_POSITION_INVALID"
59               glib:nick="invalid"/>
60       <member name="front_mono"
61               value="0"
62               c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_MONO"
63               glib:nick="front-mono"/>
64       <member name="front_left"
65               value="1"
66               c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT"
67               glib:nick="front-left"/>
68       <member name="front_right"
69               value="2"
70               c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT"
71               glib:nick="front-right"/>
72       <member name="rear_center"
73               value="3"
74               c:identifier="GST_AUDIO_CHANNEL_POSITION_REAR_CENTER"
75               glib:nick="rear-center"/>
76       <member name="rear_left"
77               value="4"
78               c:identifier="GST_AUDIO_CHANNEL_POSITION_REAR_LEFT"
79               glib:nick="rear-left"/>
80       <member name="rear_right"
81               value="5"
82               c:identifier="GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT"
83               glib:nick="rear-right"/>
84       <member name="lfe"
85               value="6"
86               c:identifier="GST_AUDIO_CHANNEL_POSITION_LFE"
87               glib:nick="lfe"/>
88       <member name="front_center"
89               value="7"
90               c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER"
91               glib:nick="front-center"/>
92       <member name="front_left_of_center"
93               value="8"
94               c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER"
95               glib:nick="front-left-of-center"/>
96       <member name="front_right_of_center"
97               value="9"
98               c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER"
99               glib:nick="front-right-of-center"/>
100       <member name="side_left"
101               value="10"
102               c:identifier="GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT"
103               glib:nick="side-left"/>
104       <member name="side_right"
105               value="11"
106               c:identifier="GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT"
107               glib:nick="side-right"/>
108       <member name="none"
109               value="12"
110               c:identifier="GST_AUDIO_CHANNEL_POSITION_NONE"
111               glib:nick="none"/>
112       <member name="num"
113               value="13"
114               c:identifier="GST_AUDIO_CHANNEL_POSITION_NUM"
115               glib:nick="num"/>
116     </enumeration>
117     <class name="AudioClock"
118            c:symbol-prefix="audio_clock"
119            c:type="GstAudioClock"
120            parent="Gst.SystemClock"
121            glib:type-name="GstAudioClock"
122            glib:get-type="gst_audio_clock_get_type"
123            glib:type-struct="AudioClockClass">
124       <doc xml:whitespace="preserve">Opaque #GstAudioClock.</doc>
125       <constructor name="new"
126                    c:identifier="gst_audio_clock_new"
127                    introspectable="0">
128         <doc xml:whitespace="preserve">Create a new #GstAudioClock instance. Whenever the clock time should be
129 calculated it will call @func with @user_data. When @func returns
130 #GST_CLOCK_TIME_NONE, the clock will return the last reported time.</doc>
131         <return-value transfer-ownership="full">
132           <doc xml:whitespace="preserve">a new #GstAudioClock casted to a #GstClock.</doc>
133           <type name="Gst.Clock" c:type="GstClock*"/>
134         </return-value>
135         <parameters>
136           <parameter name="name" transfer-ownership="none">
137             <doc xml:whitespace="preserve">the name of the clock</doc>
138             <type name="utf8" c:type="gchar*"/>
139           </parameter>
140           <parameter name="func" transfer-ownership="none" closure="2">
141             <doc xml:whitespace="preserve">a function</doc>
142             <type name="AudioClockGetTimeFunc"
143                   c:type="GstAudioClockGetTimeFunc"/>
144           </parameter>
145           <parameter name="user_data" transfer-ownership="none">
146             <doc xml:whitespace="preserve">user data</doc>
147             <type name="gpointer" c:type="gpointer"/>
148           </parameter>
149         </parameters>
150       </constructor>
151       <constructor name="new_full"
152                    c:identifier="gst_audio_clock_new_full"
153                    version="0.10.31">
154         <doc xml:whitespace="preserve">Create a new #GstAudioClock instance. Whenever the clock time should be
155 calculated it will call @func with @user_data. When @func returns
156 #GST_CLOCK_TIME_NONE, the clock will return the last reported time.</doc>
157         <return-value transfer-ownership="full">
158           <doc xml:whitespace="preserve">a new #GstAudioClock casted to a #GstClock.</doc>
159           <type name="Gst.Clock" c:type="GstClock*"/>
160         </return-value>
161         <parameters>
162           <parameter name="name" transfer-ownership="none">
163             <doc xml:whitespace="preserve">the name of the clock</doc>
164             <type name="utf8" c:type="gchar*"/>
165           </parameter>
166           <parameter name="func"
167                      transfer-ownership="none"
168                      scope="notified"
169                      closure="2"
170                      destroy="3">
171             <doc xml:whitespace="preserve">a function</doc>
172             <type name="AudioClockGetTimeFunc"
173                   c:type="GstAudioClockGetTimeFunc"/>
174           </parameter>
175           <parameter name="user_data" transfer-ownership="none">
176             <doc xml:whitespace="preserve">user data</doc>
177             <type name="gpointer" c:type="gpointer"/>
178           </parameter>
179           <parameter name="destroy_notify"
180                      transfer-ownership="none"
181                      scope="async">
182             <doc xml:whitespace="preserve">#GDestroyNotify for @user_data</doc>
183             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
184           </parameter>
185         </parameters>
186       </constructor>
187       <function name="adjust"
188                 c:identifier="gst_audio_clock_adjust"
189                 version="0.10.23">
190         <doc xml:whitespace="preserve">Adjust @time with the internal offset of the audio clock.</doc>
191         <return-value transfer-ownership="none">
192           <doc xml:whitespace="preserve">@time adjusted with the internal offset.</doc>
193           <type name="Gst.ClockTime" c:type="GstClockTime"/>
194         </return-value>
195         <parameters>
196           <parameter name="clock" transfer-ownership="none">
197             <doc xml:whitespace="preserve">a #GstAudioClock</doc>
198             <type name="Gst.Clock" c:type="GstClock*"/>
199           </parameter>
200           <parameter name="time" transfer-ownership="none">
201             <doc xml:whitespace="preserve">a #GstClockTime</doc>
202             <type name="Gst.ClockTime" c:type="GstClockTime"/>
203           </parameter>
204         </parameters>
205       </function>
206       <function name="get_time"
207                 c:identifier="gst_audio_clock_get_time"
208                 version="0.10.23">
209         <doc xml:whitespace="preserve">Report the time as returned by the #GstAudioClockGetTimeFunc without applying
210 any offsets.</doc>
211         <return-value transfer-ownership="none">
212           <doc xml:whitespace="preserve">the time as reported by the time function of the audio clock</doc>
213           <type name="Gst.ClockTime" c:type="GstClockTime"/>
214         </return-value>
215         <parameters>
216           <parameter name="clock" transfer-ownership="none">
217             <doc xml:whitespace="preserve">a #GstAudioClock</doc>
218             <type name="Gst.Clock" c:type="GstClock*"/>
219           </parameter>
220         </parameters>
221       </function>
222       <function name="invalidate"
223                 c:identifier="gst_audio_clock_invalidate"
224                 version="0.10.31">
225         <doc xml:whitespace="preserve">Invalidate the clock function. Call this function when the provided
226 #GstAudioClockGetTimeFunc cannot be called anymore, for example, when the
227 user_data becomes invalid.
228 After calling this function, @clock will return the last returned time for
229 the rest of its lifetime.</doc>
230         <return-value transfer-ownership="none">
231           <type name="none" c:type="void"/>
232         </return-value>
233         <parameters>
234           <parameter name="clock" transfer-ownership="none">
235             <doc xml:whitespace="preserve">a #GstAudioClock</doc>
236             <type name="Gst.Clock" c:type="GstClock*"/>
237           </parameter>
238         </parameters>
239       </function>
240       <method name="reset" c:identifier="gst_audio_clock_reset">
241         <doc xml:whitespace="preserve">Inform @clock that future calls to #GstAudioClockGetTimeFunc will return values
242 starting from @time. The clock will update an internal offset to make sure that
243 future calls to internal_time will return an increasing result as required by
244 the #GstClock object.</doc>
245         <return-value transfer-ownership="none">
246           <type name="none" c:type="void"/>
247         </return-value>
248         <parameters>
249           <parameter name="time" transfer-ownership="none">
250             <doc xml:whitespace="preserve">a #GstClockTime</doc>
251             <type name="Gst.ClockTime" c:type="GstClockTime"/>
252           </parameter>
253         </parameters>
254       </method>
255       <field name="clock">
256         <type name="Gst.SystemClock" c:type="GstSystemClock"/>
257       </field>
258       <field name="func">
259         <type name="AudioClockGetTimeFunc" c:type="GstAudioClockGetTimeFunc"/>
260       </field>
261       <field name="user_data">
262         <type name="gpointer" c:type="gpointer"/>
263       </field>
264       <field name="last_time">
265         <type name="Gst.ClockTime" c:type="GstClockTime"/>
266       </field>
267       <union name="abidata" c:type="abidata">
268         <record name="ABI" c:type="ABI">
269           <field name="time_offset" writable="1">
270             <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff"/>
271           </field>
272           <field name="destroy_notify" writable="1">
273             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
274           </field>
275         </record>
276         <field name="_gst_reserved" writable="1">
277           <array zero-terminated="0" c:type="gpointer" fixed-size="4">
278             <type name="gpointer" c:type="gpointer"/>
279           </array>
280         </field>
281       </union>
282     </class>
283     <record name="AudioClockClass"
284             c:type="GstAudioClockClass"
285             glib:is-gtype-struct-for="AudioClock">
286       <field name="parent_class">
287         <type name="Gst.SystemClockClass" c:type="GstSystemClockClass"/>
288       </field>
289       <field name="_gst_reserved">
290         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
291           <type name="gpointer" c:type="gpointer"/>
292         </array>
293       </field>
294     </record>
295     <callback name="AudioClockGetTimeFunc" c:type="GstAudioClockGetTimeFunc">
296       <doc xml:whitespace="preserve">This function will be called whenever the current clock time needs to be
297 calculated. If this function returns #GST_CLOCK_TIME_NONE, the last reported
298 time will be returned by the clock.
299 be used.</doc>
300       <return-value transfer-ownership="none">
301         <doc xml:whitespace="preserve">the current time or #GST_CLOCK_TIME_NONE if the previous time should</doc>
302         <type name="Gst.ClockTime" c:type="GstClockTime"/>
303       </return-value>
304       <parameters>
305         <parameter name="clock" transfer-ownership="none">
306           <doc xml:whitespace="preserve">the #GstAudioClock</doc>
307           <type name="Gst.Clock" c:type="GstClock*"/>
308         </parameter>
309         <parameter name="user_data" transfer-ownership="none" closure="1">
310           <doc xml:whitespace="preserve">user data</doc>
311           <type name="gpointer" c:type="gpointer"/>
312         </parameter>
313       </parameters>
314     </callback>
315     <bitfield name="AudioFieldFlag"
316               deprecated="use gst_structure_set() directly"
317               c:type="GstAudioFieldFlag">
318       <doc xml:whitespace="preserve">Do not use anymore.</doc>
319       <member name="rate" value="1" c:identifier="GST_AUDIO_FIELD_RATE"/>
320       <member name="channels"
321               value="2"
322               c:identifier="GST_AUDIO_FIELD_CHANNELS"/>
323       <member name="endianness"
324               value="4"
325               c:identifier="GST_AUDIO_FIELD_ENDIANNESS"/>
326       <member name="width" value="8" c:identifier="GST_AUDIO_FIELD_WIDTH"/>
327       <member name="depth" value="16" c:identifier="GST_AUDIO_FIELD_DEPTH"/>
328       <member name="signed" value="32" c:identifier="GST_AUDIO_FIELD_SIGNED"/>
329     </bitfield>
330     <class name="AudioFilter"
331            c:symbol-prefix="audio_filter"
332            c:type="GstAudioFilter"
333            version="0.10.12"
334            parent="GstBase.BaseTransform"
335            abstract="1"
336            glib:type-name="GstAudioFilter"
337            glib:get-type="gst_audio_filter_get_type"
338            glib:type-struct="AudioFilterClass">
339       <doc xml:whitespace="preserve">Base class for audio filters with the same format for input and output.</doc>
340       <virtual-method name="setup">
341         <return-value transfer-ownership="none">
342           <type name="gboolean" c:type="gboolean"/>
343         </return-value>
344         <parameters>
345           <parameter name="format" transfer-ownership="none">
346             <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
347           </parameter>
348         </parameters>
349       </virtual-method>
350       <field name="basetransform">
351         <type name="GstBase.BaseTransform" c:type="GstBaseTransform"/>
352       </field>
353       <field name="format">
354         <type name="RingBufferSpec" c:type="GstRingBufferSpec"/>
355       </field>
356       <field name="_gst_reserved">
357         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
358           <type name="gpointer" c:type="gpointer"/>
359         </array>
360       </field>
361     </class>
362     <record name="AudioFilterClass"
363             c:type="GstAudioFilterClass"
364             glib:is-gtype-struct-for="AudioFilter"
365             version="0.10.12">
366       <doc xml:whitespace="preserve">In addition to the @setup virtual function, you should also override the
367 GstBaseTransform::transform and/or GstBaseTransform::transform_ip virtual
368 function.</doc>
369       <field name="basetransformclass">
370         <type name="GstBase.BaseTransformClass"
371               c:type="GstBaseTransformClass"/>
372       </field>
373       <field name="setup">
374         <callback name="setup">
375           <return-value transfer-ownership="none">
376             <type name="gboolean" c:type="gboolean"/>
377           </return-value>
378           <parameters>
379             <parameter name="filter" transfer-ownership="none">
380               <type name="AudioFilter" c:type="GstAudioFilter*"/>
381             </parameter>
382             <parameter name="format" transfer-ownership="none">
383               <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
384             </parameter>
385           </parameters>
386         </callback>
387       </field>
388       <field name="_gst_reserved">
389         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
390           <type name="gpointer" c:type="gpointer"/>
391         </array>
392       </field>
393       <method name="add_pad_templates"
394               c:identifier="gst_audio_filter_class_add_pad_templates"
395               version="0.10.12">
396         <doc xml:whitespace="preserve">Convenience function to add pad templates to this element class, with
397 This function is usually used from within a GObject base_init function.</doc>
398         <return-value transfer-ownership="none">
399           <type name="none" c:type="void"/>
400         </return-value>
401         <parameters>
402           <parameter name="allowed_caps" transfer-ownership="none">
403             <doc xml:whitespace="preserve">what formats the filter can handle, as #GstCaps</doc>
404             <type name="Gst.Caps" c:type="GstCaps*"/>
405           </parameter>
406         </parameters>
407       </method>
408     </record>
409     <callback name="AudioMixerFilterFunc" c:type="GstAudioMixerFilterFunc">
410       <doc xml:whitespace="preserve">Function that will be called by gst_audio_default_registry_mixer_filter()
411 so the caller can decide which mixer elements should be kept and returned.
412 When the mixer element is passed to the callback function, it is opened
413 and in READY state. If you decide to keep the element, you need to set it
414 back to NULL state yourself (unless you want to keep it opened of course).</doc>
415       <return-value transfer-ownership="none">
416         <doc xml:whitespace="preserve">TRUE if the element should be kept, FALSE otherwise.</doc>
417         <type name="gboolean" c:type="gboolean"/>
418       </return-value>
419       <parameters>
420         <parameter name="mixer" transfer-ownership="none">
421           <doc xml:whitespace="preserve">a #GstElement implementing the #GstMixer interface</doc>
422           <type name="GstInterfaces.Mixer" c:type="GstMixer*"/>
423         </parameter>
424         <parameter name="user_data" transfer-ownership="none" closure="1">
425           <doc xml:whitespace="preserve">user data</doc>
426           <type name="gpointer" c:type="gpointer"/>
427         </parameter>
428       </parameters>
429     </callback>
430     <class name="AudioSink"
431            c:symbol-prefix="audio_sink"
432            c:type="GstAudioSink"
433            parent="BaseAudioSink"
434            glib:type-name="GstAudioSink"
435            glib:get-type="gst_audio_sink_get_type"
436            glib:type-struct="AudioSinkClass">
437       <doc xml:whitespace="preserve">Opaque #GstAudioSink.</doc>
438       <virtual-method name="close">
439         <return-value transfer-ownership="none">
440           <type name="gboolean" c:type="gboolean"/>
441         </return-value>
442       </virtual-method>
443       <virtual-method name="delay">
444         <return-value transfer-ownership="none">
445           <type name="guint" c:type="guint"/>
446         </return-value>
447       </virtual-method>
448       <virtual-method name="open">
449         <return-value transfer-ownership="none">
450           <type name="gboolean" c:type="gboolean"/>
451         </return-value>
452       </virtual-method>
453       <virtual-method name="prepare">
454         <return-value transfer-ownership="none">
455           <type name="gboolean" c:type="gboolean"/>
456         </return-value>
457         <parameters>
458           <parameter name="spec" transfer-ownership="none">
459             <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
460           </parameter>
461         </parameters>
462       </virtual-method>
463       <virtual-method name="reset">
464         <return-value transfer-ownership="none">
465           <type name="none" c:type="void"/>
466         </return-value>
467       </virtual-method>
468       <virtual-method name="unprepare">
469         <return-value transfer-ownership="none">
470           <type name="gboolean" c:type="gboolean"/>
471         </return-value>
472       </virtual-method>
473       <virtual-method name="write">
474         <return-value transfer-ownership="none">
475           <type name="guint" c:type="guint"/>
476         </return-value>
477         <parameters>
478           <parameter name="data" transfer-ownership="none">
479             <type name="gpointer" c:type="gpointer"/>
480           </parameter>
481           <parameter name="length" transfer-ownership="none">
482             <type name="guint" c:type="guint"/>
483           </parameter>
484         </parameters>
485       </virtual-method>
486       <field name="element">
487         <type name="BaseAudioSink" c:type="GstBaseAudioSink"/>
488       </field>
489       <field name="thread">
490         <type name="GLib.Thread" c:type="GThread*"/>
491       </field>
492       <field name="_gst_reserved">
493         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
494           <type name="gpointer" c:type="gpointer"/>
495         </array>
496       </field>
497     </class>
498     <record name="AudioSinkClass"
499             c:type="GstAudioSinkClass"
500             glib:is-gtype-struct-for="AudioSink">
501       <doc xml:whitespace="preserve">#GstAudioSink class. Override the vmethods to implement functionality.</doc>
502       <field name="parent_class">
503         <type name="BaseAudioSinkClass" c:type="GstBaseAudioSinkClass"/>
504       </field>
505       <field name="open">
506         <callback name="open">
507           <return-value transfer-ownership="none">
508             <type name="gboolean" c:type="gboolean"/>
509           </return-value>
510           <parameters>
511             <parameter name="sink" transfer-ownership="none">
512               <type name="AudioSink" c:type="GstAudioSink*"/>
513             </parameter>
514           </parameters>
515         </callback>
516       </field>
517       <field name="prepare">
518         <callback name="prepare">
519           <return-value transfer-ownership="none">
520             <type name="gboolean" c:type="gboolean"/>
521           </return-value>
522           <parameters>
523             <parameter name="sink" transfer-ownership="none">
524               <type name="AudioSink" c:type="GstAudioSink*"/>
525             </parameter>
526             <parameter name="spec" transfer-ownership="none">
527               <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
528             </parameter>
529           </parameters>
530         </callback>
531       </field>
532       <field name="unprepare">
533         <callback name="unprepare">
534           <return-value transfer-ownership="none">
535             <type name="gboolean" c:type="gboolean"/>
536           </return-value>
537           <parameters>
538             <parameter name="sink" transfer-ownership="none">
539               <type name="AudioSink" c:type="GstAudioSink*"/>
540             </parameter>
541           </parameters>
542         </callback>
543       </field>
544       <field name="close">
545         <callback name="close">
546           <return-value transfer-ownership="none">
547             <type name="gboolean" c:type="gboolean"/>
548           </return-value>
549           <parameters>
550             <parameter name="sink" transfer-ownership="none">
551               <type name="AudioSink" c:type="GstAudioSink*"/>
552             </parameter>
553           </parameters>
554         </callback>
555       </field>
556       <field name="write">
557         <callback name="write">
558           <return-value transfer-ownership="none">
559             <type name="guint" c:type="guint"/>
560           </return-value>
561           <parameters>
562             <parameter name="sink" transfer-ownership="none">
563               <type name="AudioSink" c:type="GstAudioSink*"/>
564             </parameter>
565             <parameter name="data" transfer-ownership="none">
566               <type name="gpointer" c:type="gpointer"/>
567             </parameter>
568             <parameter name="length" transfer-ownership="none">
569               <type name="guint" c:type="guint"/>
570             </parameter>
571           </parameters>
572         </callback>
573       </field>
574       <field name="delay">
575         <callback name="delay">
576           <return-value transfer-ownership="none">
577             <type name="guint" c:type="guint"/>
578           </return-value>
579           <parameters>
580             <parameter name="sink" transfer-ownership="none">
581               <type name="AudioSink" c:type="GstAudioSink*"/>
582             </parameter>
583           </parameters>
584         </callback>
585       </field>
586       <field name="reset">
587         <callback name="reset">
588           <return-value transfer-ownership="none">
589             <type name="none" c:type="void"/>
590           </return-value>
591           <parameters>
592             <parameter name="sink" transfer-ownership="none">
593               <type name="AudioSink" c:type="GstAudioSink*"/>
594             </parameter>
595           </parameters>
596         </callback>
597       </field>
598       <field name="_gst_reserved">
599         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
600           <type name="gpointer" c:type="gpointer"/>
601         </array>
602       </field>
603     </record>
604     <class name="AudioSrc"
605            c:symbol-prefix="audio_src"
606            c:type="GstAudioSrc"
607            parent="BaseAudioSrc"
608            glib:type-name="GstAudioSrc"
609            glib:get-type="gst_audio_src_get_type"
610            glib:type-struct="AudioSrcClass">
611       <doc xml:whitespace="preserve">Base class for simple audio sources.</doc>
612       <virtual-method name="close">
613         <return-value transfer-ownership="none">
614           <type name="gboolean" c:type="gboolean"/>
615         </return-value>
616       </virtual-method>
617       <virtual-method name="delay">
618         <return-value transfer-ownership="none">
619           <type name="guint" c:type="guint"/>
620         </return-value>
621       </virtual-method>
622       <virtual-method name="open">
623         <return-value transfer-ownership="none">
624           <type name="gboolean" c:type="gboolean"/>
625         </return-value>
626       </virtual-method>
627       <virtual-method name="prepare">
628         <return-value transfer-ownership="none">
629           <type name="gboolean" c:type="gboolean"/>
630         </return-value>
631         <parameters>
632           <parameter name="spec" transfer-ownership="none">
633             <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
634           </parameter>
635         </parameters>
636       </virtual-method>
637       <virtual-method name="read">
638         <return-value transfer-ownership="none">
639           <type name="guint" c:type="guint"/>
640         </return-value>
641         <parameters>
642           <parameter name="data" transfer-ownership="none">
643             <type name="gpointer" c:type="gpointer"/>
644           </parameter>
645           <parameter name="length" transfer-ownership="none">
646             <type name="guint" c:type="guint"/>
647           </parameter>
648         </parameters>
649       </virtual-method>
650       <virtual-method name="reset">
651         <return-value transfer-ownership="none">
652           <type name="none" c:type="void"/>
653         </return-value>
654       </virtual-method>
655       <virtual-method name="unprepare">
656         <return-value transfer-ownership="none">
657           <type name="gboolean" c:type="gboolean"/>
658         </return-value>
659       </virtual-method>
660       <field name="element">
661         <type name="BaseAudioSrc" c:type="GstBaseAudioSrc"/>
662       </field>
663       <field name="thread">
664         <type name="GLib.Thread" c:type="GThread*"/>
665       </field>
666       <field name="_gst_reserved">
667         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
668           <type name="gpointer" c:type="gpointer"/>
669         </array>
670       </field>
671     </class>
672     <record name="AudioSrcClass"
673             c:type="GstAudioSrcClass"
674             glib:is-gtype-struct-for="AudioSrc">
675       <doc xml:whitespace="preserve">#GstAudioSrc class. Override the vmethod to implement
676 functionality.</doc>
677       <field name="parent_class">
678         <type name="BaseAudioSrcClass" c:type="GstBaseAudioSrcClass"/>
679       </field>
680       <field name="open">
681         <callback name="open">
682           <return-value transfer-ownership="none">
683             <type name="gboolean" c:type="gboolean"/>
684           </return-value>
685           <parameters>
686             <parameter name="src" transfer-ownership="none">
687               <type name="AudioSrc" c:type="GstAudioSrc*"/>
688             </parameter>
689           </parameters>
690         </callback>
691       </field>
692       <field name="prepare">
693         <callback name="prepare">
694           <return-value transfer-ownership="none">
695             <type name="gboolean" c:type="gboolean"/>
696           </return-value>
697           <parameters>
698             <parameter name="src" transfer-ownership="none">
699               <type name="AudioSrc" c:type="GstAudioSrc*"/>
700             </parameter>
701             <parameter name="spec" transfer-ownership="none">
702               <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
703             </parameter>
704           </parameters>
705         </callback>
706       </field>
707       <field name="unprepare">
708         <callback name="unprepare">
709           <return-value transfer-ownership="none">
710             <type name="gboolean" c:type="gboolean"/>
711           </return-value>
712           <parameters>
713             <parameter name="src" transfer-ownership="none">
714               <type name="AudioSrc" c:type="GstAudioSrc*"/>
715             </parameter>
716           </parameters>
717         </callback>
718       </field>
719       <field name="close">
720         <callback name="close">
721           <return-value transfer-ownership="none">
722             <type name="gboolean" c:type="gboolean"/>
723           </return-value>
724           <parameters>
725             <parameter name="src" transfer-ownership="none">
726               <type name="AudioSrc" c:type="GstAudioSrc*"/>
727             </parameter>
728           </parameters>
729         </callback>
730       </field>
731       <field name="read">
732         <callback name="read">
733           <return-value transfer-ownership="none">
734             <type name="guint" c:type="guint"/>
735           </return-value>
736           <parameters>
737             <parameter name="src" transfer-ownership="none">
738               <type name="AudioSrc" c:type="GstAudioSrc*"/>
739             </parameter>
740             <parameter name="data" transfer-ownership="none">
741               <type name="gpointer" c:type="gpointer"/>
742             </parameter>
743             <parameter name="length" transfer-ownership="none">
744               <type name="guint" c:type="guint"/>
745             </parameter>
746           </parameters>
747         </callback>
748       </field>
749       <field name="delay">
750         <callback name="delay">
751           <return-value transfer-ownership="none">
752             <type name="guint" c:type="guint"/>
753           </return-value>
754           <parameters>
755             <parameter name="src" transfer-ownership="none">
756               <type name="AudioSrc" c:type="GstAudioSrc*"/>
757             </parameter>
758           </parameters>
759         </callback>
760       </field>
761       <field name="reset">
762         <callback name="reset">
763           <return-value transfer-ownership="none">
764             <type name="none" c:type="void"/>
765           </return-value>
766           <parameters>
767             <parameter name="src" transfer-ownership="none">
768               <type name="AudioSrc" c:type="GstAudioSrc*"/>
769             </parameter>
770           </parameters>
771         </callback>
772       </field>
773       <field name="_gst_reserved">
774         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
775           <type name="gpointer" c:type="gpointer"/>
776         </array>
777       </field>
778     </record>
779     <class name="BaseAudioSink"
780            c:symbol-prefix="base_audio_sink"
781            c:type="GstBaseAudioSink"
782            parent="GstBase.BaseSink"
783            glib:type-name="GstBaseAudioSink"
784            glib:get-type="gst_base_audio_sink_get_type"
785            glib:type-struct="BaseAudioSinkClass">
786       <doc xml:whitespace="preserve">Opaque #GstBaseAudioSink.</doc>
787       <virtual-method name="create_ringbuffer"
788                       invoker="create_ringbuffer"
789                       introspectable="0">
790         <doc xml:whitespace="preserve">Create and return the #GstRingBuffer for @sink. This function will call the
791 ::create_ringbuffer vmethod and will set @sink as the parent of the returned
792 buffer (see gst_object_set_parent()).</doc>
793         <return-value>
794           <doc xml:whitespace="preserve">The new ringbuffer of @sink.</doc>
795           <type name="RingBuffer" c:type="GstRingBuffer*"/>
796         </return-value>
797       </virtual-method>
798       <method name="create_ringbuffer"
799               c:identifier="gst_base_audio_sink_create_ringbuffer"
800               introspectable="0">
801         <doc xml:whitespace="preserve">Create and return the #GstRingBuffer for @sink. This function will call the
802 ::create_ringbuffer vmethod and will set @sink as the parent of the returned
803 buffer (see gst_object_set_parent()).</doc>
804         <return-value>
805           <doc xml:whitespace="preserve">The new ringbuffer of @sink.</doc>
806           <type name="RingBuffer" c:type="GstRingBuffer*"/>
807         </return-value>
808       </method>
809       <method name="get_drift_tolerance"
810               c:identifier="gst_base_audio_sink_get_drift_tolerance">
811         <return-value transfer-ownership="none">
812           <type name="gint64" c:type="gint64"/>
813         </return-value>
814       </method>
815       <method name="get_provide_clock"
816               c:identifier="gst_base_audio_sink_get_provide_clock"
817               version="0.10.16">
818         <doc xml:whitespace="preserve">Queries whether @sink will provide a clock or not. See also
819 gst_base_audio_sink_set_provide_clock.</doc>
820         <return-value transfer-ownership="none">
821           <doc xml:whitespace="preserve">%TRUE if @sink will provide a clock.</doc>
822           <type name="gboolean" c:type="gboolean"/>
823         </return-value>
824       </method>
825       <method name="get_slave_method"
826               c:identifier="gst_base_audio_sink_get_slave_method"
827               version="0.10.16">
828         <doc xml:whitespace="preserve">Get the current slave method used by @sink.</doc>
829         <return-value transfer-ownership="none">
830           <doc xml:whitespace="preserve">The current slave method used by @sink.</doc>
831           <type name="BaseAudioSinkSlaveMethod"
832                 c:type="GstBaseAudioSinkSlaveMethod"/>
833         </return-value>
834       </method>
835       <method name="set_drift_tolerance"
836               c:identifier="gst_base_audio_sink_set_drift_tolerance"
837               version="0.10.31">
838         <doc xml:whitespace="preserve">Controls the sink's drift tolerance.</doc>
839         <return-value transfer-ownership="none">
840           <type name="none" c:type="void"/>
841         </return-value>
842         <parameters>
843           <parameter name="drift_tolerance" transfer-ownership="none">
844             <doc xml:whitespace="preserve">the new drift tolerance in microseconds</doc>
845             <type name="gint64" c:type="gint64"/>
846           </parameter>
847         </parameters>
848       </method>
849       <method name="set_provide_clock"
850               c:identifier="gst_base_audio_sink_set_provide_clock"
851               version="0.10.16">
852         <doc xml:whitespace="preserve">Controls whether @sink will provide a clock or not. If @provide is %TRUE,
853 gst_element_provide_clock() will return a clock that reflects the datarate
854 of @sink. If @provide is %FALSE, gst_element_provide_clock() will return NULL.</doc>
855         <return-value transfer-ownership="none">
856           <type name="none" c:type="void"/>
857         </return-value>
858         <parameters>
859           <parameter name="provide" transfer-ownership="none">
860             <doc xml:whitespace="preserve">new state</doc>
861             <type name="gboolean" c:type="gboolean"/>
862           </parameter>
863         </parameters>
864       </method>
865       <method name="set_slave_method"
866               c:identifier="gst_base_audio_sink_set_slave_method"
867               version="0.10.16">
868         <doc xml:whitespace="preserve">Controls how clock slaving will be performed in @sink.</doc>
869         <return-value transfer-ownership="none">
870           <type name="none" c:type="void"/>
871         </return-value>
872         <parameters>
873           <parameter name="method" transfer-ownership="none">
874             <doc xml:whitespace="preserve">the new slave method</doc>
875             <type name="BaseAudioSinkSlaveMethod"
876                   c:type="GstBaseAudioSinkSlaveMethod"/>
877           </parameter>
878         </parameters>
879       </method>
880       <property name="buffer-time" writable="1" transfer-ownership="none">
881         <type name="gint64"/>
882       </property>
883       <property name="can-activate-pull"
884                 writable="1"
885                 transfer-ownership="none">
886         <type name="gboolean"/>
887       </property>
888       <property name="drift-tolerance" writable="1" transfer-ownership="none">
889         <type name="gint64"/>
890       </property>
891       <property name="latency-time" writable="1" transfer-ownership="none">
892         <type name="gint64"/>
893       </property>
894       <property name="provide-clock" writable="1" transfer-ownership="none">
895         <type name="gboolean"/>
896       </property>
897       <property name="slave-method" writable="1" transfer-ownership="none">
898         <type name="BaseAudioSinkSlaveMethod"/>
899       </property>
900       <field name="element">
901         <type name="GstBase.BaseSink" c:type="GstBaseSink"/>
902       </field>
903       <field name="ringbuffer">
904         <type name="RingBuffer" c:type="GstRingBuffer*"/>
905       </field>
906       <field name="buffer_time">
907         <type name="guint64" c:type="guint64"/>
908       </field>
909       <field name="latency_time">
910         <type name="guint64" c:type="guint64"/>
911       </field>
912       <field name="next_sample">
913         <type name="guint64" c:type="guint64"/>
914       </field>
915       <field name="provide_clock">
916         <type name="gboolean" c:type="gboolean"/>
917       </field>
918       <field name="provided_clock">
919         <type name="Gst.Clock" c:type="GstClock*"/>
920       </field>
921       <field name="priv">
922         <type name="BaseAudioSinkPrivate" c:type="GstBaseAudioSinkPrivate*"/>
923       </field>
924       <field name="_gst_reserved">
925         <array zero-terminated="0" c:type="gpointer" fixed-size="3">
926           <type name="gpointer" c:type="gpointer"/>
927         </array>
928       </field>
929     </class>
930     <record name="BaseAudioSinkClass"
931             c:type="GstBaseAudioSinkClass"
932             glib:is-gtype-struct-for="BaseAudioSink">
933       <doc xml:whitespace="preserve">#GstBaseAudioSink class. Override the vmethod to implement
934 functionality.</doc>
935       <field name="parent_class">
936         <type name="GstBase.BaseSinkClass" c:type="GstBaseSinkClass"/>
937       </field>
938       <field name="create_ringbuffer" introspectable="0">
939         <callback name="create_ringbuffer" introspectable="0">
940           <return-value>
941             <doc xml:whitespace="preserve">The new ringbuffer of @sink.</doc>
942             <type name="RingBuffer" c:type="GstRingBuffer*"/>
943           </return-value>
944           <parameters>
945             <parameter name="sink" transfer-ownership="none">
946               <type name="BaseAudioSink" c:type="GstBaseAudioSink*"/>
947             </parameter>
948           </parameters>
949         </callback>
950       </field>
951       <field name="_gst_reserved">
952         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
953           <type name="gpointer" c:type="gpointer"/>
954         </array>
955       </field>
956     </record>
957     <record name="BaseAudioSinkPrivate"
958             c:type="GstBaseAudioSinkPrivate"
959             disguised="1">
960     </record>
961     <enumeration name="BaseAudioSinkSlaveMethod"
962                  glib:type-name="GstBaseAudioSinkSlaveMethod"
963                  glib:get-type="gst_base_audio_sink_slave_method_get_type"
964                  c:type="GstBaseAudioSinkSlaveMethod">
965       <doc xml:whitespace="preserve">Different possible clock slaving algorithms used when the internal audio
966 clock is not selected as the pipeline master clock.</doc>
967       <member name="resample"
968               value="0"
969               c:identifier="GST_BASE_AUDIO_SINK_SLAVE_RESAMPLE"
970               glib:nick="resample"/>
971       <member name="skew"
972               value="1"
973               c:identifier="GST_BASE_AUDIO_SINK_SLAVE_SKEW"
974               glib:nick="skew"/>
975       <member name="none"
976               value="2"
977               c:identifier="GST_BASE_AUDIO_SINK_SLAVE_NONE"
978               glib:nick="none"/>
979     </enumeration>
980     <class name="BaseAudioSrc"
981            c:symbol-prefix="base_audio_src"
982            c:type="GstBaseAudioSrc"
983            parent="GstBase.PushSrc"
984            glib:type-name="GstBaseAudioSrc"
985            glib:get-type="gst_base_audio_src_get_type"
986            glib:type-struct="BaseAudioSrcClass">
987       <doc xml:whitespace="preserve">Opaque #GstBaseAudioSrc.</doc>
988       <virtual-method name="create_ringbuffer"
989                       invoker="create_ringbuffer"
990                       introspectable="0">
991         <doc xml:whitespace="preserve">Create and return the #GstRingBuffer for @src. This function will call the
992 ::create_ringbuffer vmethod and will set @src as the parent of the returned
993 buffer (see gst_object_set_parent()).</doc>
994         <return-value>
995           <doc xml:whitespace="preserve">The new ringbuffer of @src.</doc>
996           <type name="RingBuffer" c:type="GstRingBuffer*"/>
997         </return-value>
998       </virtual-method>
999       <method name="create_ringbuffer"
1000               c:identifier="gst_base_audio_src_create_ringbuffer"
1001               introspectable="0">
1002         <doc xml:whitespace="preserve">Create and return the #GstRingBuffer for @src. This function will call the
1003 ::create_ringbuffer vmethod and will set @src as the parent of the returned
1004 buffer (see gst_object_set_parent()).</doc>
1005         <return-value>
1006           <doc xml:whitespace="preserve">The new ringbuffer of @src.</doc>
1007           <type name="RingBuffer" c:type="GstRingBuffer*"/>
1008         </return-value>
1009       </method>
1010       <method name="get_provide_clock"
1011               c:identifier="gst_base_audio_src_get_provide_clock"
1012               version="0.10.16">
1013         <doc xml:whitespace="preserve">Queries whether @src will provide a clock or not. See also
1014 gst_base_audio_src_set_provide_clock.</doc>
1015         <return-value transfer-ownership="none">
1016           <doc xml:whitespace="preserve">%TRUE if @src will provide a clock.</doc>
1017           <type name="gboolean" c:type="gboolean"/>
1018         </return-value>
1019       </method>
1020       <method name="get_slave_method"
1021               c:identifier="gst_base_audio_src_get_slave_method"
1022               version="0.10.20">
1023         <doc xml:whitespace="preserve">Get the current slave method used by @src.</doc>
1024         <return-value transfer-ownership="none">
1025           <doc xml:whitespace="preserve">The current slave method used by @src.</doc>
1026           <type name="BaseAudioSrcSlaveMethod"
1027                 c:type="GstBaseAudioSrcSlaveMethod"/>
1028         </return-value>
1029       </method>
1030       <method name="set_provide_clock"
1031               c:identifier="gst_base_audio_src_set_provide_clock"
1032               version="0.10.16">
1033         <doc xml:whitespace="preserve">Controls whether @src will provide a clock or not. If @provide is %TRUE, 
1034 gst_element_provide_clock() will return a clock that reflects the datarate
1035 of @src. If @provide is %FALSE, gst_element_provide_clock() will return NULL.</doc>
1036         <return-value transfer-ownership="none">
1037           <type name="none" c:type="void"/>
1038         </return-value>
1039         <parameters>
1040           <parameter name="provide" transfer-ownership="none">
1041             <doc xml:whitespace="preserve">new state</doc>
1042             <type name="gboolean" c:type="gboolean"/>
1043           </parameter>
1044         </parameters>
1045       </method>
1046       <method name="set_slave_method"
1047               c:identifier="gst_base_audio_src_set_slave_method"
1048               version="0.10.20">
1049         <doc xml:whitespace="preserve">Controls how clock slaving will be performed in @src.</doc>
1050         <return-value transfer-ownership="none">
1051           <type name="none" c:type="void"/>
1052         </return-value>
1053         <parameters>
1054           <parameter name="method" transfer-ownership="none">
1055             <doc xml:whitespace="preserve">the new slave method</doc>
1056             <type name="BaseAudioSrcSlaveMethod"
1057                   c:type="GstBaseAudioSrcSlaveMethod"/>
1058           </parameter>
1059         </parameters>
1060       </method>
1061       <property name="actual-buffer-time"
1062                 version="0.10.20"
1063                 transfer-ownership="none">
1064         <doc xml:whitespace="preserve">Actual configured size of audio buffer in microseconds.</doc>
1065         <type name="gint64"/>
1066       </property>
1067       <property name="actual-latency-time"
1068                 version="0.10.20"
1069                 transfer-ownership="none">
1070         <doc xml:whitespace="preserve">Actual configured audio latency in microseconds.</doc>
1071         <type name="gint64"/>
1072       </property>
1073       <property name="buffer-time" writable="1" transfer-ownership="none">
1074         <type name="gint64"/>
1075       </property>
1076       <property name="latency-time" writable="1" transfer-ownership="none">
1077         <type name="gint64"/>
1078       </property>
1079       <property name="provide-clock" writable="1" transfer-ownership="none">
1080         <type name="gboolean"/>
1081       </property>
1082       <property name="slave-method" writable="1" transfer-ownership="none">
1083         <type name="BaseAudioSrcSlaveMethod"/>
1084       </property>
1085       <field name="element">
1086         <type name="GstBase.PushSrc" c:type="GstPushSrc"/>
1087       </field>
1088       <field name="ringbuffer">
1089         <type name="RingBuffer" c:type="GstRingBuffer*"/>
1090       </field>
1091       <field name="buffer_time">
1092         <type name="Gst.ClockTime" c:type="GstClockTime"/>
1093       </field>
1094       <field name="latency_time">
1095         <type name="Gst.ClockTime" c:type="GstClockTime"/>
1096       </field>
1097       <field name="next_sample">
1098         <type name="guint64" c:type="guint64"/>
1099       </field>
1100       <field name="clock">
1101         <type name="Gst.Clock" c:type="GstClock*"/>
1102       </field>
1103       <field name="priv">
1104         <type name="BaseAudioSrcPrivate" c:type="GstBaseAudioSrcPrivate*"/>
1105       </field>
1106       <field name="_gst_reserved">
1107         <array zero-terminated="0" c:type="gpointer" fixed-size="3">
1108           <type name="gpointer" c:type="gpointer"/>
1109         </array>
1110       </field>
1111     </class>
1112     <record name="BaseAudioSrcClass"
1113             c:type="GstBaseAudioSrcClass"
1114             glib:is-gtype-struct-for="BaseAudioSrc">
1115       <doc xml:whitespace="preserve">#GstBaseAudioSrc class. Override the vmethod to implement
1116 functionality.</doc>
1117       <field name="parent_class">
1118         <type name="GstBase.PushSrcClass" c:type="GstPushSrcClass"/>
1119       </field>
1120       <field name="create_ringbuffer" introspectable="0">
1121         <callback name="create_ringbuffer" introspectable="0">
1122           <return-value>
1123             <doc xml:whitespace="preserve">The new ringbuffer of @src.</doc>
1124             <type name="RingBuffer" c:type="GstRingBuffer*"/>
1125           </return-value>
1126           <parameters>
1127             <parameter name="src" transfer-ownership="none">
1128               <type name="BaseAudioSrc" c:type="GstBaseAudioSrc*"/>
1129             </parameter>
1130           </parameters>
1131         </callback>
1132       </field>
1133       <field name="_gst_reserved">
1134         <array zero-terminated="0" c:type="gpointer" fixed-size="4">
1135           <type name="gpointer" c:type="gpointer"/>
1136         </array>
1137       </field>
1138     </record>
1139     <record name="BaseAudioSrcPrivate"
1140             c:type="GstBaseAudioSrcPrivate"
1141             disguised="1">
1142     </record>
1143     <enumeration name="BaseAudioSrcSlaveMethod"
1144                  glib:type-name="GstBaseAudioSrcSlaveMethod"
1145                  glib:get-type="gst_base_audio_src_slave_method_get_type"
1146                  c:type="GstBaseAudioSrcSlaveMethod">
1147       <doc xml:whitespace="preserve">Different possible clock slaving algorithms when the internal audio clock was
1148 not selected as the pipeline clock.</doc>
1149       <member name="resample"
1150               value="0"
1151               c:identifier="GST_BASE_AUDIO_SRC_SLAVE_RESAMPLE"
1152               glib:nick="resample"/>
1153       <member name="re_timestamp"
1154               value="1"
1155               c:identifier="GST_BASE_AUDIO_SRC_SLAVE_RETIMESTAMP"
1156               glib:nick="re-timestamp"/>
1157       <member name="skew"
1158               value="2"
1159               c:identifier="GST_BASE_AUDIO_SRC_SLAVE_SKEW"
1160               glib:nick="skew"/>
1161       <member name="none"
1162               value="3"
1163               c:identifier="GST_BASE_AUDIO_SRC_SLAVE_NONE"
1164               glib:nick="none"/>
1165     </enumeration>
1166     <enumeration name="BufferFormat"
1167                  glib:type-name="GstBufferFormat"
1168                  glib:get-type="gst_buffer_format_get_type"
1169                  c:type="GstBufferFormat">
1170       <member name="unknown"
1171               value="0"
1172               c:identifier="GST_UNKNOWN"
1173               glib:nick="unknown"/>
1174       <member name="s8" value="1" c:identifier="GST_S8" glib:nick="s8"/>
1175       <member name="u8" value="2" c:identifier="GST_U8" glib:nick="u8"/>
1176       <member name="s16_le"
1177               value="3"
1178               c:identifier="GST_S16_LE"
1179               glib:nick="s16-le"/>
1180       <member name="s16_be"
1181               value="4"
1182               c:identifier="GST_S16_BE"
1183               glib:nick="s16-be"/>
1184       <member name="u16_le"
1185               value="5"
1186               c:identifier="GST_U16_LE"
1187               glib:nick="u16-le"/>
1188       <member name="u16_be"
1189               value="6"
1190               c:identifier="GST_U16_BE"
1191               glib:nick="u16-be"/>
1192       <member name="s24_le"
1193               value="7"
1194               c:identifier="GST_S24_LE"
1195               glib:nick="s24-le"/>
1196       <member name="s24_be"
1197               value="8"
1198               c:identifier="GST_S24_BE"
1199               glib:nick="s24-be"/>
1200       <member name="u24_le"
1201               value="9"
1202               c:identifier="GST_U24_LE"
1203               glib:nick="u24-le"/>
1204       <member name="u24_be"
1205               value="10"
1206               c:identifier="GST_U24_BE"
1207               glib:nick="u24-be"/>
1208       <member name="s32_le"
1209               value="11"
1210               c:identifier="GST_S32_LE"
1211               glib:nick="s32-le"/>
1212       <member name="s32_be"
1213               value="12"
1214               c:identifier="GST_S32_BE"
1215               glib:nick="s32-be"/>
1216       <member name="u32_le"
1217               value="13"
1218               c:identifier="GST_U32_LE"
1219               glib:nick="u32-le"/>
1220       <member name="u32_be"
1221               value="14"
1222               c:identifier="GST_U32_BE"
1223               glib:nick="u32-be"/>
1224       <member name="s24_3le"
1225               value="15"
1226               c:identifier="GST_S24_3LE"
1227               glib:nick="s24-3le"/>
1228       <member name="s24_3be"
1229               value="16"
1230               c:identifier="GST_S24_3BE"
1231               glib:nick="s24-3be"/>
1232       <member name="u24_3le"
1233               value="17"
1234               c:identifier="GST_U24_3LE"
1235               glib:nick="u24-3le"/>
1236       <member name="u24_3be"
1237               value="18"
1238               c:identifier="GST_U24_3BE"
1239               glib:nick="u24-3be"/>
1240       <member name="s20_3le"
1241               value="19"
1242               c:identifier="GST_S20_3LE"
1243               glib:nick="s20-3le"/>
1244       <member name="s20_3be"
1245               value="20"
1246               c:identifier="GST_S20_3BE"
1247               glib:nick="s20-3be"/>
1248       <member name="u20_3le"
1249               value="21"
1250               c:identifier="GST_U20_3LE"
1251               glib:nick="u20-3le"/>
1252       <member name="u20_3be"
1253               value="22"
1254               c:identifier="GST_U20_3BE"
1255               glib:nick="u20-3be"/>
1256       <member name="s18_3le"
1257               value="23"
1258               c:identifier="GST_S18_3LE"
1259               glib:nick="s18-3le"/>
1260       <member name="s18_3be"
1261               value="24"
1262               c:identifier="GST_S18_3BE"
1263               glib:nick="s18-3be"/>
1264       <member name="u18_3le"
1265               value="25"
1266               c:identifier="GST_U18_3LE"
1267               glib:nick="u18-3le"/>
1268       <member name="u18_3be"
1269               value="26"
1270               c:identifier="GST_U18_3BE"
1271               glib:nick="u18-3be"/>
1272       <member name="float32_le"
1273               value="27"
1274               c:identifier="GST_FLOAT32_LE"
1275               glib:nick="float32-le"/>
1276       <member name="float32_be"
1277               value="28"
1278               c:identifier="GST_FLOAT32_BE"
1279               glib:nick="float32-be"/>
1280       <member name="float64_le"
1281               value="29"
1282               c:identifier="GST_FLOAT64_LE"
1283               glib:nick="float64-le"/>
1284       <member name="float64_be"
1285               value="30"
1286               c:identifier="GST_FLOAT64_BE"
1287               glib:nick="float64-be"/>
1288       <member name="mu_law"
1289               value="31"
1290               c:identifier="GST_MU_LAW"
1291               glib:nick="mu-law"/>
1292       <member name="a_law"
1293               value="32"
1294               c:identifier="GST_A_LAW"
1295               glib:nick="a-law"/>
1296       <member name="ima_adpcm"
1297               value="33"
1298               c:identifier="GST_IMA_ADPCM"
1299               glib:nick="ima-adpcm"/>
1300       <member name="mpeg" value="34" c:identifier="GST_MPEG" glib:nick="mpeg"/>
1301       <member name="gsm" value="35" c:identifier="GST_GSM" glib:nick="gsm"/>
1302       <member name="iec958"
1303               value="36"
1304               c:identifier="GST_IEC958"
1305               glib:nick="iec958"/>
1306       <member name="ac3" value="37" c:identifier="GST_AC3" glib:nick="ac3"/>
1307       <member name="eac3" value="38" c:identifier="GST_EAC3" glib:nick="eac3"/>
1308       <member name="dts" value="39" c:identifier="GST_DTS" glib:nick="dts"/>
1309     </enumeration>
1310     <enumeration name="BufferFormatType"
1311                  glib:type-name="GstBufferFormatType"
1312                  glib:get-type="gst_buffer_format_type_get_type"
1313                  c:type="GstBufferFormatType">
1314       <doc xml:whitespace="preserve">The format of the samples in the ringbuffer.</doc>
1315       <member name="linear"
1316               value="0"
1317               c:identifier="GST_BUFTYPE_LINEAR"
1318               glib:nick="linear"/>
1319       <member name="float"
1320               value="1"
1321               c:identifier="GST_BUFTYPE_FLOAT"
1322               glib:nick="float"/>
1323       <member name="mu_law"
1324               value="2"
1325               c:identifier="GST_BUFTYPE_MU_LAW"
1326               glib:nick="mu-law"/>
1327       <member name="a_law"
1328               value="3"
1329               c:identifier="GST_BUFTYPE_A_LAW"
1330               glib:nick="a-law"/>
1331       <member name="ima_adpcm"
1332               value="4"
1333               c:identifier="GST_BUFTYPE_IMA_ADPCM"
1334               glib:nick="ima-adpcm"/>
1335       <member name="mpeg"
1336               value="5"
1337               c:identifier="GST_BUFTYPE_MPEG"
1338               glib:nick="mpeg"/>
1339       <member name="gsm"
1340               value="6"
1341               c:identifier="GST_BUFTYPE_GSM"
1342               glib:nick="gsm"/>
1343       <member name="iec958"
1344               value="7"
1345               c:identifier="GST_BUFTYPE_IEC958"
1346               glib:nick="iec958"/>
1347       <member name="ac3"
1348               value="8"
1349               c:identifier="GST_BUFTYPE_AC3"
1350               glib:nick="ac3"/>
1351       <member name="eac3"
1352               value="9"
1353               c:identifier="GST_BUFTYPE_EAC3"
1354               glib:nick="eac3"/>
1355       <member name="dts"
1356               value="10"
1357               c:identifier="GST_BUFTYPE_DTS"
1358               glib:nick="dts"/>
1359     </enumeration>
1360     <class name="RingBuffer"
1361            c:symbol-prefix="ring_buffer"
1362            c:type="GstRingBuffer"
1363            parent="Gst.Object"
1364            abstract="1"
1365            glib:type-name="GstRingBuffer"
1366            glib:get-type="gst_ring_buffer_get_type"
1367            glib:type-struct="RingBufferClass">
1368       <doc xml:whitespace="preserve">The ringbuffer base class structure.</doc>
1369       <function name="debug_spec_buff"
1370                 c:identifier="gst_ring_buffer_debug_spec_buff">
1371         <doc xml:whitespace="preserve">Print debug info about the buffer sized in @spec to the debug log.</doc>
1372         <return-value transfer-ownership="none">
1373           <type name="none" c:type="void"/>
1374         </return-value>
1375         <parameters>
1376           <parameter name="spec" transfer-ownership="none">
1377             <doc xml:whitespace="preserve">the spec to debug</doc>
1378             <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
1379           </parameter>
1380         </parameters>
1381       </function>
1382       <function name="debug_spec_caps"
1383                 c:identifier="gst_ring_buffer_debug_spec_caps">
1384         <doc xml:whitespace="preserve">Print debug info about the parsed caps in @spec to the debug log.</doc>
1385         <return-value transfer-ownership="none">
1386           <type name="none" c:type="void"/>
1387         </return-value>
1388         <parameters>
1389           <parameter name="spec" transfer-ownership="none">
1390             <doc xml:whitespace="preserve">the spec to debug</doc>
1391             <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
1392           </parameter>
1393         </parameters>
1394       </function>
1395       <function name="parse_caps" c:identifier="gst_ring_buffer_parse_caps">
1396         <doc xml:whitespace="preserve">Parse @caps into @spec.</doc>
1397         <return-value transfer-ownership="none">
1398           <doc xml:whitespace="preserve">TRUE if the caps could be parsed.</doc>
1399           <type name="gboolean" c:type="gboolean"/>
1400         </return-value>
1401         <parameters>
1402           <parameter name="spec" transfer-ownership="none">
1403             <doc xml:whitespace="preserve">a spec</doc>
1404             <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
1405           </parameter>
1406           <parameter name="caps" transfer-ownership="none">
1407             <doc xml:whitespace="preserve">a #GstCaps</doc>
1408             <type name="Gst.Caps" c:type="GstCaps*"/>
1409           </parameter>
1410         </parameters>
1411       </function>
1412       <virtual-method name="acquire" invoker="acquire">
1413         <doc xml:whitespace="preserve">Allocate the resources for the ringbuffer. This function fills
1414 in the data pointer of the ring buffer with a valid #GstBuffer
1415 to which samples can be written.
1416 MT safe.</doc>
1417         <return-value transfer-ownership="none">
1418           <doc xml:whitespace="preserve">TRUE if the device could be acquired, FALSE on error.</doc>
1419           <type name="gboolean" c:type="gboolean"/>
1420         </return-value>
1421         <parameters>
1422           <parameter name="spec" transfer-ownership="none">
1423             <doc xml:whitespace="preserve">the specs of the buffer</doc>
1424             <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
1425           </parameter>
1426         </parameters>
1427       </virtual-method>
1428       <virtual-method name="activate" invoker="activate" version="0.10.22.">
1429         <doc xml:whitespace="preserve">Activate @buf to start or stop pulling data.
1430 MT safe.
1431 FALSE on error.</doc>
1432         <return-value transfer-ownership="none">
1433           <doc xml:whitespace="preserve">TRUE if the device could be activated in the requested mode,</doc>
1434           <type name="gboolean" c:type="gboolean"/>
1435         </return-value>
1436         <parameters>
1437           <parameter name="active" transfer-ownership="none">
1438             <doc xml:whitespace="preserve">the new mode</doc>
1439             <type name="gboolean" c:type="gboolean"/>
1440           </parameter>
1441         </parameters>
1442       </virtual-method>
1443       <virtual-method name="clear_all" invoker="clear_all">
1444         <doc xml:whitespace="preserve">Fill the ringbuffer with silence.
1445 MT safe.</doc>
1446         <return-value transfer-ownership="none">
1447           <type name="none" c:type="void"/>
1448         </return-value>
1449       </virtual-method>
1450       <virtual-method name="close_device" invoker="close_device">
1451         <doc xml:whitespace="preserve">Close the audio device associated with the ring buffer. The ring buffer
1452 should already have been released via gst_ring_buffer_release().
1453 MT safe.</doc>
1454         <return-value transfer-ownership="none">
1455           <doc xml:whitespace="preserve">TRUE if the device could be closed, FALSE on error.</doc>
1456           <type name="gboolean" c:type="gboolean"/>
1457         </return-value>
1458       </virtual-method>
1459       <virtual-method name="commit">
1460         <return-value transfer-ownership="none">
1461           <type name="guint" c:type="guint"/>
1462         </return-value>
1463         <parameters>
1464           <parameter name="sample" transfer-ownership="none">
1465             <type name="guint64" c:type="guint64*"/>
1466           </parameter>
1467           <parameter name="data" transfer-ownership="none">
1468             <type name="guint8" c:type="guchar*"/>
1469           </parameter>
1470           <parameter name="in_samples" transfer-ownership="none">
1471             <type name="gint" c:type="gint"/>
1472           </parameter>
1473           <parameter name="out_samples" transfer-ownership="none">
1474             <type name="gint" c:type="gint"/>
1475           </parameter>
1476           <parameter name="accum" transfer-ownership="none">
1477             <type name="gint" c:type="gint*"/>
1478           </parameter>
1479         </parameters>
1480       </virtual-method>
1481       <virtual-method name="delay" invoker="delay">
1482         <doc xml:whitespace="preserve">Get the number of samples queued in the audio device. This is
1483 usually less than the segment size but can be bigger when the
1484 implementation uses another internal buffer between the audio
1485 device.
1486 For playback ringbuffers this is the amount of samples transfered from the
1487 ringbuffer to the device but still not played.
1488 For capture ringbuffers this is the amount of samples in the device that are
1489 not yet transfered to the ringbuffer.
1490 MT safe.</doc>
1491         <return-value transfer-ownership="none">
1492           <doc xml:whitespace="preserve">The number of samples queued in the audio device.</doc>
1493           <type name="guint" c:type="guint"/>
1494         </return-value>
1495       </virtual-method>
1496       <virtual-method name="open_device" invoker="open_device">
1497         <doc xml:whitespace="preserve">Open the audio device associated with the ring buffer. Does not perform any
1498 setup on the device. You must open the device before acquiring the ring
1499 buffer.
1500 MT safe.</doc>
1501         <return-value transfer-ownership="none">
1502           <doc xml:whitespace="preserve">TRUE if the device could be opened, FALSE on error.</doc>
1503           <type name="gboolean" c:type="gboolean"/>
1504         </return-value>
1505       </virtual-method>
1506       <virtual-method name="pause" invoker="pause">
1507         <doc xml:whitespace="preserve">Pause processing samples from the ringbuffer.
1508 MT safe.</doc>
1509         <return-value transfer-ownership="none">
1510           <doc xml:whitespace="preserve">TRUE if the device could be paused, FALSE on error.</doc>
1511           <type name="gboolean" c:type="gboolean"/>
1512         </return-value>
1513       </virtual-method>
1514       <virtual-method name="release" invoker="release">
1515         <doc xml:whitespace="preserve">Free the resources of the ringbuffer.
1516 MT safe.</doc>
1517         <return-value transfer-ownership="none">
1518           <doc xml:whitespace="preserve">TRUE if the device could be released, FALSE on error.</doc>
1519           <type name="gboolean" c:type="gboolean"/>
1520         </return-value>
1521       </virtual-method>
1522       <virtual-method name="resume">
1523         <return-value transfer-ownership="none">
1524           <type name="gboolean" c:type="gboolean"/>
1525         </return-value>
1526       </virtual-method>
1527       <virtual-method name="start" invoker="start">
1528         <doc xml:whitespace="preserve">Start processing samples from the ringbuffer.
1529 MT safe.</doc>
1530         <return-value transfer-ownership="none">
1531           <doc xml:whitespace="preserve">TRUE if the device could be started, FALSE on error.</doc>
1532           <type name="gboolean" c:type="gboolean"/>
1533         </return-value>
1534       </virtual-method>
1535       <virtual-method name="stop" invoker="stop">
1536         <doc xml:whitespace="preserve">Stop processing samples from the ringbuffer.
1537 MT safe.</doc>
1538         <return-value transfer-ownership="none">
1539           <doc xml:whitespace="preserve">TRUE if the device could be stopped, FALSE on error.</doc>
1540           <type name="gboolean" c:type="gboolean"/>
1541         </return-value>
1542       </virtual-method>
1543       <method name="acquire" c:identifier="gst_ring_buffer_acquire">
1544         <doc xml:whitespace="preserve">Allocate the resources for the ringbuffer. This function fills
1545 in the data pointer of the ring buffer with a valid #GstBuffer
1546 to which samples can be written.
1547 MT safe.</doc>
1548         <return-value transfer-ownership="none">
1549           <doc xml:whitespace="preserve">TRUE if the device could be acquired, FALSE on error.</doc>
1550           <type name="gboolean" c:type="gboolean"/>
1551         </return-value>
1552         <parameters>
1553           <parameter name="spec" transfer-ownership="none">
1554             <doc xml:whitespace="preserve">the specs of the buffer</doc>
1555             <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
1556           </parameter>
1557         </parameters>
1558       </method>
1559       <method name="activate"
1560               c:identifier="gst_ring_buffer_activate"
1561               version="0.10.22.">
1562         <doc xml:whitespace="preserve">Activate @buf to start or stop pulling data.
1563 MT safe.
1564 FALSE on error.</doc>
1565         <return-value transfer-ownership="none">
1566           <doc xml:whitespace="preserve">TRUE if the device could be activated in the requested mode,</doc>
1567           <type name="gboolean" c:type="gboolean"/>
1568         </return-value>
1569         <parameters>
1570           <parameter name="active" transfer-ownership="none">
1571             <doc xml:whitespace="preserve">the new mode</doc>
1572             <type name="gboolean" c:type="gboolean"/>
1573           </parameter>
1574         </parameters>
1575       </method>
1576       <method name="advance" c:identifier="gst_ring_buffer_advance">
1577         <doc xml:whitespace="preserve">Subclasses should call this function to notify the fact that 
1578 MT safe.</doc>
1579         <return-value transfer-ownership="none">
1580           <type name="none" c:type="void"/>
1581         </return-value>
1582         <parameters>
1583           <parameter name="advance" transfer-ownership="none">
1584             <doc xml:whitespace="preserve">the number of segments written</doc>
1585             <type name="guint" c:type="guint"/>
1586           </parameter>
1587         </parameters>
1588       </method>
1589       <method name="clear" c:identifier="gst_ring_buffer_clear">
1590         <doc xml:whitespace="preserve">Clear the given segment of the buffer with silence samples.
1591 This function is used by subclasses.
1592 MT safe.</doc>
1593         <return-value transfer-ownership="none">
1594           <type name="none" c:type="void"/>
1595         </return-value>
1596         <parameters>
1597           <parameter name="segment" transfer-ownership="none">
1598             <doc xml:whitespace="preserve">the segment to clear</doc>
1599             <type name="gint" c:type="gint"/>
1600           </parameter>
1601         </parameters>
1602       </method>
1603       <method name="clear_all" c:identifier="gst_ring_buffer_clear_all">
1604         <doc xml:whitespace="preserve">Fill the ringbuffer with silence.
1605 MT safe.</doc>
1606         <return-value transfer-ownership="none">
1607           <type name="none" c:type="void"/>
1608         </return-value>
1609       </method>
1610       <method name="close_device" c:identifier="gst_ring_buffer_close_device">
1611         <doc xml:whitespace="preserve">Close the audio device associated with the ring buffer. The ring buffer
1612 should already have been released via gst_ring_buffer_release().
1613 MT safe.</doc>
1614         <return-value transfer-ownership="none">
1615           <doc xml:whitespace="preserve">TRUE if the device could be closed, FALSE on error.</doc>
1616           <type name="gboolean" c:type="gboolean"/>
1617         </return-value>
1618       </method>
1619       <method name="commit" c:identifier="gst_ring_buffer_commit">
1620         <doc xml:whitespace="preserve">Same as gst_ring_buffer_commit_full() but with a in_samples and out_samples
1621 equal to @len, ignoring accum.
1622 error.
1623 MT safe.</doc>
1624         <return-value transfer-ownership="none">
1625           <doc xml:whitespace="preserve">The number of samples written to the ringbuffer or -1 on</doc>
1626           <type name="guint" c:type="guint"/>
1627         </return-value>
1628         <parameters>
1629           <parameter name="sample" transfer-ownership="none">
1630             <doc xml:whitespace="preserve">the sample position of the data</doc>
1631             <type name="guint64" c:type="guint64"/>
1632           </parameter>
1633           <parameter name="data" transfer-ownership="none">
1634             <doc xml:whitespace="preserve">the data to commit</doc>
1635             <type name="guint8" c:type="guchar*"/>
1636           </parameter>
1637           <parameter name="len" transfer-ownership="none">
1638             <doc xml:whitespace="preserve">the number of samples in the data to commit</doc>
1639             <type name="guint" c:type="guint"/>
1640           </parameter>
1641         </parameters>
1642       </method>
1643       <method name="commit_full"
1644               c:identifier="gst_ring_buffer_commit_full"
1645               version="0.10.11.">
1646         <doc xml:whitespace="preserve">Commit @in_samples samples pointed to by @data to the ringbuffer @buf. 
1647 samples in @data. For negative rates, @out_samples must be negative and
1648 When @out_samples is positive, the first sample will be written at position @sample
1649 in the ringbuffer. When @out_samples is negative, the last sample will be written to
1650 although it is recommended for optimal performance. 
1651 set to 0 when this function is first called. In case the commit operation is
1652 interrupted, one can resume the processing by passing the previously returned
1653 MT safe.
1654 number of samples written can be less than @out_samples when @buf was interrupted
1655 with a flush or stop.</doc>
1656         <return-value transfer-ownership="none">
1657           <doc xml:whitespace="preserve">The number of samples written to the ringbuffer or -1 on error. The</doc>
1658           <type name="guint" c:type="guint"/>
1659         </return-value>
1660         <parameters>
1661           <parameter name="sample" transfer-ownership="none">
1662             <doc xml:whitespace="preserve">the sample position of the data</doc>
1663             <type name="guint64" c:type="guint64*"/>
1664           </parameter>
1665           <parameter name="data" transfer-ownership="none">
1666             <doc xml:whitespace="preserve">the data to commit</doc>
1667             <type name="guint8" c:type="guchar*"/>
1668           </parameter>
1669           <parameter name="in_samples" transfer-ownership="none">
1670             <doc xml:whitespace="preserve">the number of samples in the data to commit</doc>
1671             <type name="gint" c:type="gint"/>
1672           </parameter>
1673           <parameter name="out_samples" transfer-ownership="none">
1674             <doc xml:whitespace="preserve">the number of samples to write to the ringbuffer</doc>
1675             <type name="gint" c:type="gint"/>
1676           </parameter>
1677           <parameter name="accum" transfer-ownership="none">
1678             <doc xml:whitespace="preserve">accumulator for rate conversion.</doc>
1679             <type name="gint" c:type="gint*"/>
1680           </parameter>
1681         </parameters>
1682       </method>
1683       <method name="convert"
1684               c:identifier="gst_ring_buffer_convert"
1685               version="0.10.22.">
1686         <doc xml:whitespace="preserve">Convert @src_val in @src_fmt to the equivalent value in @dest_fmt. The result
1687 will be put in @dest_val.</doc>
1688         <return-value transfer-ownership="none">
1689           <doc xml:whitespace="preserve">TRUE if the conversion succeeded.</doc>
1690           <type name="gboolean" c:type="gboolean"/>
1691         </return-value>
1692         <parameters>
1693           <parameter name="src_fmt" transfer-ownership="none">
1694             <doc xml:whitespace="preserve">the source format</doc>
1695             <type name="Gst.Format" c:type="GstFormat"/>
1696           </parameter>
1697           <parameter name="src_val" transfer-ownership="none">
1698             <doc xml:whitespace="preserve">the source value</doc>
1699             <type name="gint64" c:type="gint64"/>
1700           </parameter>
1701           <parameter name="dest_fmt" transfer-ownership="none">
1702             <doc xml:whitespace="preserve">the destination format</doc>
1703             <type name="Gst.Format" c:type="GstFormat"/>
1704           </parameter>
1705           <parameter name="dest_val" transfer-ownership="none">
1706             <doc xml:whitespace="preserve">a location to store the converted value</doc>
1707             <type name="gint64" c:type="gint64*"/>
1708           </parameter>
1709         </parameters>
1710       </method>
1711       <method name="delay" c:identifier="gst_ring_buffer_delay">
1712         <doc xml:whitespace="preserve">Get the number of samples queued in the audio device. This is
1713 usually less than the segment size but can be bigger when the
1714 implementation uses another internal buffer between the audio
1715 device.
1716 For playback ringbuffers this is the amount of samples transfered from the
1717 ringbuffer to the device but still not played.
1718 For capture ringbuffers this is the amount of samples in the device that are
1719 not yet transfered to the ringbuffer.
1720 MT safe.</doc>
1721         <return-value transfer-ownership="none">
1722           <doc xml:whitespace="preserve">The number of samples queued in the audio device.</doc>
1723           <type name="guint" c:type="guint"/>
1724         </return-value>
1725       </method>
1726       <method name="device_is_open"
1727               c:identifier="gst_ring_buffer_device_is_open">
1728         <doc xml:whitespace="preserve">Checks the status of the device associated with the ring buffer.
1729 MT safe.</doc>
1730         <return-value transfer-ownership="none">
1731           <doc xml:whitespace="preserve">TRUE if the device was open, FALSE if it was closed.</doc>
1732           <type name="gboolean" c:type="gboolean"/>
1733         </return-value>
1734       </method>
1735       <method name="is_acquired" c:identifier="gst_ring_buffer_is_acquired">
1736         <doc xml:whitespace="preserve">Check if the ringbuffer is acquired and ready to use.
1737 MT safe.</doc>
1738         <return-value transfer-ownership="none">
1739           <doc xml:whitespace="preserve">TRUE if the ringbuffer is acquired, FALSE on error.</doc>
1740           <type name="gboolean" c:type="gboolean"/>
1741         </return-value>
1742       </method>
1743       <method name="is_active"
1744               c:identifier="gst_ring_buffer_is_active"
1745               version="0.10.22.">
1746         <doc xml:whitespace="preserve">Check if @buf is activated.
1747 MT safe.</doc>
1748         <return-value transfer-ownership="none">
1749           <doc xml:whitespace="preserve">TRUE if the device is active.</doc>
1750           <type name="gboolean" c:type="gboolean"/>
1751         </return-value>
1752       </method>
1753       <method name="may_start"
1754               c:identifier="gst_ring_buffer_may_start"
1755               version="0.10.6">
1756         <doc xml:whitespace="preserve">Tell the ringbuffer that it is allowed to start playback when
1757 the ringbuffer is filled with samples. 
1758 MT safe.</doc>
1759         <return-value transfer-ownership="none">
1760           <type name="none" c:type="void"/>
1761         </return-value>
1762         <parameters>
1763           <parameter name="allowed" transfer-ownership="none">
1764             <doc xml:whitespace="preserve">the new value</doc>
1765             <type name="gboolean" c:type="gboolean"/>
1766           </parameter>
1767         </parameters>
1768       </method>
1769       <method name="open_device" c:identifier="gst_ring_buffer_open_device">
1770         <doc xml:whitespace="preserve">Open the audio device associated with the ring buffer. Does not perform any
1771 setup on the device. You must open the device before acquiring the ring
1772 buffer.
1773 MT safe.</doc>
1774         <return-value transfer-ownership="none">
1775           <doc xml:whitespace="preserve">TRUE if the device could be opened, FALSE on error.</doc>
1776           <type name="gboolean" c:type="gboolean"/>
1777         </return-value>
1778       </method>
1779       <method name="pause" c:identifier="gst_ring_buffer_pause">
1780         <doc xml:whitespace="preserve">Pause processing samples from the ringbuffer.
1781 MT safe.</doc>
1782         <return-value transfer-ownership="none">
1783           <doc xml:whitespace="preserve">TRUE if the device could be paused, FALSE on error.</doc>
1784           <type name="gboolean" c:type="gboolean"/>
1785         </return-value>
1786       </method>
1787       <method name="prepare_read" c:identifier="gst_ring_buffer_prepare_read">
1788         <doc xml:whitespace="preserve">Returns a pointer to memory where the data from segment @segment
1789 can be found. This function is mostly used by subclasses.
1790 MT safe.</doc>
1791         <return-value transfer-ownership="none">
1792           <doc xml:whitespace="preserve">FALSE if the buffer is not started.</doc>
1793           <type name="gboolean" c:type="gboolean"/>
1794         </return-value>
1795         <parameters>
1796           <parameter name="segment" transfer-ownership="none">
1797             <doc xml:whitespace="preserve">the segment to read</doc>
1798             <type name="gint" c:type="gint*"/>
1799           </parameter>
1800           <parameter name="readptr" transfer-ownership="none">
1801             <doc xml:whitespace="preserve">the pointer to the memory where samples can be read</doc>
1802             <type name="guint8" c:type="guint8**"/>
1803           </parameter>
1804           <parameter name="len" transfer-ownership="none">
1805             <doc xml:whitespace="preserve">the number of bytes to read</doc>
1806             <type name="gint" c:type="gint*"/>
1807           </parameter>
1808         </parameters>
1809       </method>
1810       <method name="read" c:identifier="gst_ring_buffer_read">
1811         <doc xml:whitespace="preserve">Read @len samples from the ringbuffer into the memory pointed 
1812 to by @data.
1813 The first sample should be read from position @sample in
1814 the ringbuffer.
1815 although it is recommended.
1816 error.
1817 MT safe.</doc>
1818         <return-value transfer-ownership="none">
1819           <doc xml:whitespace="preserve">The number of samples read from the ringbuffer or -1 on</doc>
1820           <type name="guint" c:type="guint"/>
1821         </return-value>
1822         <parameters>
1823           <parameter name="sample" transfer-ownership="none">
1824             <doc xml:whitespace="preserve">the sample position of the data</doc>
1825             <type name="guint64" c:type="guint64"/>
1826           </parameter>
1827           <parameter name="data" transfer-ownership="none">
1828             <doc xml:whitespace="preserve">where the data should be read</doc>
1829             <type name="guint8" c:type="guchar*"/>
1830           </parameter>
1831           <parameter name="len" transfer-ownership="none">
1832             <doc xml:whitespace="preserve">the number of samples in data to read</doc>
1833             <type name="guint" c:type="guint"/>
1834           </parameter>
1835         </parameters>
1836       </method>
1837       <method name="release" c:identifier="gst_ring_buffer_release">
1838         <doc xml:whitespace="preserve">Free the resources of the ringbuffer.
1839 MT safe.</doc>
1840         <return-value transfer-ownership="none">
1841           <doc xml:whitespace="preserve">TRUE if the device could be released, FALSE on error.</doc>
1842           <type name="gboolean" c:type="gboolean"/>
1843         </return-value>
1844       </method>
1845       <method name="samples_done" c:identifier="gst_ring_buffer_samples_done">
1846         <doc xml:whitespace="preserve">Get the number of samples that were processed by the ringbuffer
1847 since it was last started. This does not include the number of samples not
1848 yet processed (see gst_ring_buffer_delay()).
1849 MT safe.</doc>
1850         <return-value transfer-ownership="none">
1851           <doc xml:whitespace="preserve">The number of samples processed by the ringbuffer.</doc>
1852           <type name="guint64" c:type="guint64"/>
1853         </return-value>
1854       </method>
1855       <method name="set_callback"
1856               c:identifier="gst_ring_buffer_set_callback"
1857               introspectable="0">
1858         <doc xml:whitespace="preserve">Sets the given callback function on the buffer. This function
1859 will be called every time a segment has been written to a device.
1860 MT safe.</doc>
1861         <return-value transfer-ownership="none">
1862           <type name="none" c:type="void"/>
1863         </return-value>
1864         <parameters>
1865           <parameter name="cb" transfer-ownership="none" closure="1">
1866             <doc xml:whitespace="preserve">the callback to set</doc>
1867             <type name="RingBufferCallback" c:type="GstRingBufferCallback"/>
1868           </parameter>
1869           <parameter name="user_data" transfer-ownership="none">
1870             <doc xml:whitespace="preserve">user data passed to the callback</doc>
1871             <type name="gpointer" c:type="gpointer"/>
1872           </parameter>
1873         </parameters>
1874       </method>
1875       <method name="set_flushing" c:identifier="gst_ring_buffer_set_flushing">
1876         <doc xml:whitespace="preserve">Set the ringbuffer to flushing mode or normal mode.
1877 MT safe.</doc>
1878         <return-value transfer-ownership="none">
1879           <type name="none" c:type="void"/>
1880         </return-value>
1881         <parameters>
1882           <parameter name="flushing" transfer-ownership="none">
1883             <doc xml:whitespace="preserve">the new mode</doc>
1884             <type name="gboolean" c:type="gboolean"/>
1885           </parameter>
1886         </parameters>
1887       </method>
1888       <method name="set_sample" c:identifier="gst_ring_buffer_set_sample">
1889         <doc xml:whitespace="preserve">Make sure that the next sample written to the device is
1890 accounted for as being the @sample sample written to the
1891 device. This value will be used in reporting the current
1892 sample position of the ringbuffer.
1893 This function will also clear the buffer with silence.
1894 MT safe.</doc>
1895         <return-value transfer-ownership="none">
1896           <type name="none" c:type="void"/>
1897         </return-value>
1898         <parameters>
1899           <parameter name="sample" transfer-ownership="none">
1900             <doc xml:whitespace="preserve">the sample number to set</doc>
1901             <type name="guint64" c:type="guint64"/>
1902           </parameter>
1903         </parameters>
1904       </method>
1905       <method name="start" c:identifier="gst_ring_buffer_start">
1906         <doc xml:whitespace="preserve">Start processing samples from the ringbuffer.
1907 MT safe.</doc>
1908         <return-value transfer-ownership="none">
1909           <doc xml:whitespace="preserve">TRUE if the device could be started, FALSE on error.</doc>
1910           <type name="gboolean" c:type="gboolean"/>
1911         </return-value>
1912       </method>
1913       <method name="stop" c:identifier="gst_ring_buffer_stop">
1914         <doc xml:whitespace="preserve">Stop processing samples from the ringbuffer.
1915 MT safe.</doc>
1916         <return-value transfer-ownership="none">
1917           <doc xml:whitespace="preserve">TRUE if the device could be stopped, FALSE on error.</doc>
1918           <type name="gboolean" c:type="gboolean"/>
1919         </return-value>
1920       </method>
1921       <field name="object">
1922         <type name="Gst.Object" c:type="GstObject"/>
1923       </field>
1924       <field name="cond">
1925         <type name="GLib.Cond" c:type="GCond*"/>
1926       </field>
1927       <field name="open">
1928         <type name="gboolean" c:type="gboolean"/>
1929       </field>
1930       <field name="acquired">
1931         <type name="gboolean" c:type="gboolean"/>
1932       </field>
1933       <field name="data">
1934         <type name="Gst.Buffer" c:type="GstBuffer*"/>
1935       </field>
1936       <field name="spec">
1937         <type name="RingBufferSpec" c:type="GstRingBufferSpec"/>
1938       </field>
1939       <field name="segstate">
1940         <type name="RingBufferSegState" c:type="GstRingBufferSegState*"/>
1941       </field>
1942       <field name="samples_per_seg">
1943         <type name="gint" c:type="gint"/>
1944       </field>
1945       <field name="empty_seg">
1946         <type name="guint8" c:type="guint8*"/>
1947       </field>
1948       <field name="state">
1949         <type name="gint" c:type="gint"/>
1950       </field>
1951       <field name="segdone">
1952         <type name="gint" c:type="gint"/>
1953       </field>
1954       <field name="segbase">
1955         <type name="gint" c:type="gint"/>
1956       </field>
1957       <field name="waiting">
1958         <type name="gint" c:type="gint"/>
1959       </field>
1960       <field name="callback">
1961         <type name="RingBufferCallback" c:type="GstRingBufferCallback"/>
1962       </field>
1963       <field name="cb_data">
1964         <type name="gpointer" c:type="gpointer"/>
1965       </field>
1966       <union name="abidata" c:type="abidata">
1967         <record name="ABI" c:type="ABI">
1968           <field name="flushing" writable="1">
1969             <type name="gboolean" c:type="gboolean"/>
1970           </field>
1971           <field name="may_start" writable="1">
1972             <type name="gint" c:type="gint"/>
1973           </field>
1974           <field name="active" writable="1">
1975             <type name="gboolean" c:type="gboolean"/>
1976           </field>
1977         </record>
1978         <field name="_gst_reserved" writable="1">
1979           <array zero-terminated="0" c:type="gpointer" fixed-size="4">
1980             <type name="gpointer" c:type="gpointer"/>
1981           </array>
1982         </field>
1983       </union>
1984     </class>
1985     <callback name="RingBufferCallback" c:type="GstRingBufferCallback">
1986       <doc xml:whitespace="preserve">This function is set with gst_ring_buffer_set_callback() and is
1987 called to fill the memory at @data with @len bytes of samples.</doc>
1988       <return-value transfer-ownership="none">
1989         <type name="none" c:type="void"/>
1990       </return-value>
1991       <parameters>
1992         <parameter name="rbuf" transfer-ownership="none">
1993           <doc xml:whitespace="preserve">a #GstRingBuffer</doc>
1994           <type name="RingBuffer" c:type="GstRingBuffer*"/>
1995         </parameter>
1996         <parameter name="data" transfer-ownership="none">
1997           <doc xml:whitespace="preserve">target to fill</doc>
1998           <type name="guint8" c:type="guint8*"/>
1999         </parameter>
2000         <parameter name="len" transfer-ownership="none">
2001           <doc xml:whitespace="preserve">amount to fill</doc>
2002           <type name="guint" c:type="guint"/>
2003         </parameter>
2004         <parameter name="user_data" transfer-ownership="none" closure="3">
2005           <doc xml:whitespace="preserve">user data</doc>
2006           <type name="gpointer" c:type="gpointer"/>
2007         </parameter>
2008       </parameters>
2009     </callback>
2010     <record name="RingBufferClass"
2011             c:type="GstRingBufferClass"
2012             glib:is-gtype-struct-for="RingBuffer">
2013       <doc xml:whitespace="preserve">The vmethods that subclasses can override to implement the ringbuffer.</doc>
2014       <field name="parent_class">
2015         <type name="Gst.ObjectClass" c:type="GstObjectClass"/>
2016       </field>
2017       <field name="open_device">
2018         <callback name="open_device">
2019           <return-value transfer-ownership="none">
2020             <doc xml:whitespace="preserve">TRUE if the device could be opened, FALSE on error.</doc>
2021             <type name="gboolean" c:type="gboolean"/>
2022           </return-value>
2023           <parameters>
2024             <parameter name="buf" transfer-ownership="none">
2025               <type name="RingBuffer" c:type="GstRingBuffer*"/>
2026             </parameter>
2027           </parameters>
2028         </callback>
2029       </field>
2030       <field name="acquire">
2031         <callback name="acquire">
2032           <return-value transfer-ownership="none">
2033             <doc xml:whitespace="preserve">TRUE if the device could be acquired, FALSE on error.</doc>
2034             <type name="gboolean" c:type="gboolean"/>
2035           </return-value>
2036           <parameters>
2037             <parameter name="buf" transfer-ownership="none">
2038               <type name="RingBuffer" c:type="GstRingBuffer*"/>
2039             </parameter>
2040             <parameter name="spec" transfer-ownership="none">
2041               <doc xml:whitespace="preserve">the specs of the buffer</doc>
2042               <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
2043             </parameter>
2044           </parameters>
2045         </callback>
2046       </field>
2047       <field name="release">
2048         <callback name="release">
2049           <return-value transfer-ownership="none">
2050             <doc xml:whitespace="preserve">TRUE if the device could be released, FALSE on error.</doc>
2051             <type name="gboolean" c:type="gboolean"/>
2052           </return-value>
2053           <parameters>
2054             <parameter name="buf" transfer-ownership="none">
2055               <type name="RingBuffer" c:type="GstRingBuffer*"/>
2056             </parameter>
2057           </parameters>
2058         </callback>
2059       </field>
2060       <field name="close_device">
2061         <callback name="close_device">
2062           <return-value transfer-ownership="none">
2063             <doc xml:whitespace="preserve">TRUE if the device could be closed, FALSE on error.</doc>
2064             <type name="gboolean" c:type="gboolean"/>
2065           </return-value>
2066           <parameters>
2067             <parameter name="buf" transfer-ownership="none">
2068               <type name="RingBuffer" c:type="GstRingBuffer*"/>
2069             </parameter>
2070           </parameters>
2071         </callback>
2072       </field>
2073       <field name="start">
2074         <callback name="start">
2075           <return-value transfer-ownership="none">
2076             <doc xml:whitespace="preserve">TRUE if the device could be started, FALSE on error.</doc>
2077             <type name="gboolean" c:type="gboolean"/>
2078           </return-value>
2079           <parameters>
2080             <parameter name="buf" transfer-ownership="none">
2081               <type name="RingBuffer" c:type="GstRingBuffer*"/>
2082             </parameter>
2083           </parameters>
2084         </callback>
2085       </field>
2086       <field name="pause">
2087         <callback name="pause">
2088           <return-value transfer-ownership="none">
2089             <doc xml:whitespace="preserve">TRUE if the device could be paused, FALSE on error.</doc>
2090             <type name="gboolean" c:type="gboolean"/>
2091           </return-value>
2092           <parameters>
2093             <parameter name="buf" transfer-ownership="none">
2094               <type name="RingBuffer" c:type="GstRingBuffer*"/>
2095             </parameter>
2096           </parameters>
2097         </callback>
2098       </field>
2099       <field name="resume">
2100         <callback name="resume">
2101           <return-value transfer-ownership="none">
2102             <type name="gboolean" c:type="gboolean"/>
2103           </return-value>
2104           <parameters>
2105             <parameter name="buf" transfer-ownership="none">
2106               <type name="RingBuffer" c:type="GstRingBuffer*"/>
2107             </parameter>
2108           </parameters>
2109         </callback>
2110       </field>
2111       <field name="stop">
2112         <callback name="stop">
2113           <return-value transfer-ownership="none">
2114             <doc xml:whitespace="preserve">TRUE if the device could be stopped, FALSE on error.</doc>
2115             <type name="gboolean" c:type="gboolean"/>
2116           </return-value>
2117           <parameters>
2118             <parameter name="buf" transfer-ownership="none">
2119               <type name="RingBuffer" c:type="GstRingBuffer*"/>
2120             </parameter>
2121           </parameters>
2122         </callback>
2123       </field>
2124       <field name="delay">
2125         <callback name="delay">
2126           <return-value transfer-ownership="none">
2127             <doc xml:whitespace="preserve">The number of samples queued in the audio device.</doc>
2128             <type name="guint" c:type="guint"/>
2129           </return-value>
2130           <parameters>
2131             <parameter name="buf" transfer-ownership="none">
2132               <type name="RingBuffer" c:type="GstRingBuffer*"/>
2133             </parameter>
2134           </parameters>
2135         </callback>
2136       </field>
2137       <field name="activate">
2138         <callback name="activate">
2139           <return-value transfer-ownership="none">
2140             <doc xml:whitespace="preserve">TRUE if the device could be activated in the requested mode,</doc>
2141             <type name="gboolean" c:type="gboolean"/>
2142           </return-value>
2143           <parameters>
2144             <parameter name="buf" transfer-ownership="none">
2145               <type name="RingBuffer" c:type="GstRingBuffer*"/>
2146             </parameter>
2147             <parameter name="active" transfer-ownership="none">
2148               <doc xml:whitespace="preserve">the new mode</doc>
2149               <type name="gboolean" c:type="gboolean"/>
2150             </parameter>
2151           </parameters>
2152         </callback>
2153       </field>
2154       <field name="commit">
2155         <callback name="commit">
2156           <return-value transfer-ownership="none">
2157             <type name="guint" c:type="guint"/>
2158           </return-value>
2159           <parameters>
2160             <parameter name="buf" transfer-ownership="none">
2161               <type name="RingBuffer" c:type="GstRingBuffer*"/>
2162             </parameter>
2163             <parameter name="sample" transfer-ownership="none">
2164               <type name="guint64" c:type="guint64*"/>
2165             </parameter>
2166             <parameter name="data" transfer-ownership="none">
2167               <type name="guint8" c:type="guchar*"/>
2168             </parameter>
2169             <parameter name="in_samples" transfer-ownership="none">
2170               <type name="gint" c:type="gint"/>
2171             </parameter>
2172             <parameter name="out_samples" transfer-ownership="none">
2173               <type name="gint" c:type="gint"/>
2174             </parameter>
2175             <parameter name="accum" transfer-ownership="none">
2176               <type name="gint" c:type="gint*"/>
2177             </parameter>
2178           </parameters>
2179         </callback>
2180       </field>
2181       <field name="clear_all">
2182         <callback name="clear_all">
2183           <return-value transfer-ownership="none">
2184             <type name="none" c:type="void"/>
2185           </return-value>
2186           <parameters>
2187             <parameter name="buf" transfer-ownership="none">
2188               <type name="RingBuffer" c:type="GstRingBuffer*"/>
2189             </parameter>
2190           </parameters>
2191         </callback>
2192       </field>
2193       <field name="_gst_reserved">
2194         <array zero-terminated="0" c:type="gpointer" fixed-size="1">
2195           <type name="gpointer" c:type="gpointer"/>
2196         </array>
2197       </field>
2198     </record>
2199     <enumeration name="RingBufferSegState"
2200                  glib:type-name="GstRingBufferSegState"
2201                  glib:get-type="gst_ring_buffer_seg_state_get_type"
2202                  c:type="GstRingBufferSegState">
2203       <doc xml:whitespace="preserve">The state of a segment in the ringbuffer.</doc>
2204       <member name="invalid"
2205               value="0"
2206               c:identifier="GST_SEGSTATE_INVALID"
2207               glib:nick="invalid"/>
2208       <member name="empty"
2209               value="1"
2210               c:identifier="GST_SEGSTATE_EMPTY"
2211               glib:nick="empty"/>
2212       <member name="filled"
2213               value="2"
2214               c:identifier="GST_SEGSTATE_FILLED"
2215               glib:nick="filled"/>
2216       <member name="partial"
2217               value="3"
2218               c:identifier="GST_SEGSTATE_PARTIAL"
2219               glib:nick="partial"/>
2220     </enumeration>
2221     <record name="RingBufferSpec" c:type="GstRingBufferSpec">
2222       <doc xml:whitespace="preserve">The structure containing the format specification of the ringbuffer.</doc>
2223       <field name="caps" writable="1">
2224         <type name="Gst.Caps" c:type="GstCaps*"/>
2225       </field>
2226       <field name="type" writable="1">
2227         <type name="BufferFormatType" c:type="GstBufferFormatType"/>
2228       </field>
2229       <field name="format" writable="1">
2230         <type name="BufferFormat" c:type="GstBufferFormat"/>
2231       </field>
2232       <field name="sign" writable="1">
2233         <type name="gboolean" c:type="gboolean"/>
2234       </field>
2235       <field name="bigend" writable="1">
2236         <type name="gboolean" c:type="gboolean"/>
2237       </field>
2238       <field name="width" writable="1">
2239         <type name="gint" c:type="gint"/>
2240       </field>
2241       <field name="depth" writable="1">
2242         <type name="gint" c:type="gint"/>
2243       </field>
2244       <field name="rate" writable="1">
2245         <type name="gint" c:type="gint"/>
2246       </field>
2247       <field name="channels" writable="1">
2248         <type name="gint" c:type="gint"/>
2249       </field>
2250       <field name="latency_time" writable="1">
2251         <type name="guint64" c:type="guint64"/>
2252       </field>
2253       <field name="buffer_time" writable="1">
2254         <type name="guint64" c:type="guint64"/>
2255       </field>
2256       <field name="segsize" writable="1">
2257         <type name="gint" c:type="gint"/>
2258       </field>
2259       <field name="segtotal" writable="1">
2260         <type name="gint" c:type="gint"/>
2261       </field>
2262       <field name="bytes_per_sample" writable="1">
2263         <type name="gint" c:type="gint"/>
2264       </field>
2265       <field name="silence_sample" writable="1">
2266         <array zero-terminated="0" c:type="guint8" fixed-size="32">
2267           <type name="guint8" c:type="guint8"/>
2268         </array>
2269       </field>
2270       <field name="seglatency" writable="1">
2271         <type name="gint" c:type="gint"/>
2272       </field>
2273       <field name="_gst_reserved" writable="1">
2274         <array zero-terminated="0" c:type="guint8" fixed-size="0">
2275           <type name="guint8" c:type="guint8"/>
2276         </array>
2277       </field>
2278     </record>
2279     <enumeration name="RingBufferState"
2280                  glib:type-name="GstRingBufferState"
2281                  glib:get-type="gst_ring_buffer_state_get_type"
2282                  c:type="GstRingBufferState">
2283       <doc xml:whitespace="preserve">The state of the ringbuffer.</doc>
2284       <member name="stopped"
2285               value="0"
2286               c:identifier="GST_RING_BUFFER_STATE_STOPPED"
2287               glib:nick="stopped"/>
2288       <member name="paused"
2289               value="1"
2290               c:identifier="GST_RING_BUFFER_STATE_PAUSED"
2291               glib:nick="paused"/>
2292       <member name="started"
2293               value="2"
2294               c:identifier="GST_RING_BUFFER_STATE_STARTED"
2295               glib:nick="started"/>
2296     </enumeration>
2297     <function name="audio_buffer_clip"
2298               c:identifier="gst_audio_buffer_clip"
2299               version="0.10.14"
2300               introspectable="0">
2301       <doc xml:whitespace="preserve">Clip the the buffer to the given %GstSegment.
2302 After calling this function the caller does not own a reference to 
2303 otherwise the clipped buffer is returned.
2304 If the buffer has no timestamp, it is assumed to be inside the segment and
2305 is not clipped</doc>
2306       <return-value>
2307         <doc xml:whitespace="preserve">%NULL if the buffer is completely outside the configured segment,</doc>
2308         <type name="Gst.Buffer" c:type="GstBuffer*"/>
2309       </return-value>
2310       <parameters>
2311         <parameter name="buffer" transfer-ownership="none">
2312           <doc xml:whitespace="preserve">The buffer to clip.</doc>
2313           <type name="Gst.Buffer" c:type="GstBuffer*"/>
2314         </parameter>
2315         <parameter name="segment" transfer-ownership="none">
2316           <doc xml:whitespace="preserve">Segment in %GST_FORMAT_TIME or %GST_FORMAT_DEFAULT to which the buffer should be clipped.</doc>
2317           <type name="Gst.Segment" c:type="GstSegment*"/>
2318         </parameter>
2319         <parameter name="rate" transfer-ownership="none">
2320           <doc xml:whitespace="preserve">sample rate.</doc>
2321           <type name="gint" c:type="gint"/>
2322         </parameter>
2323         <parameter name="frame_size" transfer-ownership="none">
2324           <doc xml:whitespace="preserve">size of one audio frame in bytes.</doc>
2325           <type name="gint" c:type="gint"/>
2326         </parameter>
2327       </parameters>
2328     </function>
2329     <function name="audio_check_channel_positions"
2330               c:identifier="gst_audio_check_channel_positions"
2331               version="0.10.20">
2332       <doc xml:whitespace="preserve">This functions checks if the given channel positions are valid. Channel
2333 positions are valid if:
2334 &lt;itemizedlist&gt;
2335 &lt;listitem&gt;&lt;para&gt;No channel positions appears twice or all positions are %GST_AUDIO_CHANNEL_POSITION_NONE.
2336 &lt;/para&gt;&lt;/listitem&gt;
2337 &lt;listitem&gt;&lt;para&gt;Either all or none of the channel positions are %GST_AUDIO_CHANNEL_POSITION_NONE.
2338 &lt;/para&gt;&lt;/listitem&gt;
2339 &lt;listitem&gt;&lt;para&gt;%GST_AUDIO_CHANNEL_POSITION_FRONT_MONO and %GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT or %GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT don't appear together in the given positions.
2340 &lt;/para&gt;&lt;/listitem&gt;
2341 &lt;/itemizedlist&gt;
2342 and %FALSE otherwise.</doc>
2343       <return-value transfer-ownership="none">
2344         <doc xml:whitespace="preserve">%TRUE if the given channel positions are valid</doc>
2345         <type name="gboolean" c:type="gboolean"/>
2346       </return-value>
2347       <parameters>
2348         <parameter name="pos" transfer-ownership="none">
2349           <doc xml:whitespace="preserve">An array of #GstAudioChannelPosition.</doc>
2350           <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/>
2351         </parameter>
2352         <parameter name="channels" transfer-ownership="none">
2353           <doc xml:whitespace="preserve">The number of elements in @pos.</doc>
2354           <type name="guint" c:type="guint"/>
2355         </parameter>
2356       </parameters>
2357     </function>
2358     <function name="audio_default_registry_mixer_filter"
2359               c:identifier="gst_audio_default_registry_mixer_filter"
2360               version="0.10.2"
2361               introspectable="0">
2362       <doc xml:whitespace="preserve">Utility function to find audio mixer elements.
2363 Will traverse the default plugin registry in order of plugin rank and
2364 find usable audio mixer elements. The caller may optionally fine-tune
2365 the selection by specifying a filter function.
2366 element in the list by setting it to NULL state and calling
2367 gst_object_unref(). After that the list itself should be freed
2368 using g_list_free().</doc>
2369       <return-value>
2370         <doc xml:whitespace="preserve">a #GList of audio mixer #GstElement&lt;!-- --&gt;s. You must free each</doc>
2371         <type name="GLib.List" c:type="GList*">
2372           <type name="gpointer" c:type="gpointer"/>
2373         </type>
2374       </return-value>
2375       <parameters>
2376         <parameter name="filter_func" transfer-ownership="none" closure="2">
2377           <doc xml:whitespace="preserve">filter function, or #NULL</doc>
2378           <type name="AudioMixerFilterFunc" c:type="GstAudioMixerFilterFunc"/>
2379         </parameter>
2380         <parameter name="first" transfer-ownership="none">
2381           <doc xml:whitespace="preserve">set to #TRUE if you only want the first suitable mixer element</doc>
2382           <type name="gboolean" c:type="gboolean"/>
2383         </parameter>
2384         <parameter name="user_data" transfer-ownership="none">
2385           <doc xml:whitespace="preserve">user data to pass to the filter function</doc>
2386           <type name="gpointer" c:type="gpointer"/>
2387         </parameter>
2388       </parameters>
2389     </function>
2390     <function name="audio_duration_from_pad_buffer"
2391               c:identifier="gst_audio_duration_from_pad_buffer">
2392       <doc xml:whitespace="preserve">Calculate length in nanoseconds of audio buffer @buf based on capabilities of</doc>
2393       <return-value transfer-ownership="none">
2394         <doc xml:whitespace="preserve">the length.</doc>
2395         <type name="Gst.ClockTime" c:type="GstClockTime"/>
2396       </return-value>
2397       <parameters>
2398         <parameter name="pad" transfer-ownership="none">
2399           <doc xml:whitespace="preserve">the #GstPad to get the caps from</doc>
2400           <type name="Gst.Pad" c:type="GstPad*"/>
2401         </parameter>
2402         <parameter name="buf" transfer-ownership="none">
2403           <doc xml:whitespace="preserve">the #GstBuffer</doc>
2404           <type name="Gst.Buffer" c:type="GstBuffer*"/>
2405         </parameter>
2406       </parameters>
2407     </function>
2408     <function name="audio_fixate_channel_positions"
2409               c:identifier="gst_audio_fixate_channel_positions">
2410       <doc xml:whitespace="preserve">Custom fixate function. Elements that implement some sort of
2411 channel conversion algorithm should use this function for
2412 fixating on GstAudioChannelPosition properties. It will take
2413 care of equal channel positioning (left/right). Caller g_free()s
2414 the return value. The input properties may be (and are supposed
2415 to be) unfixed.
2416 Note that this function is mostly a hack because we currently
2417 have no way to add default fixation functions for new GTypes.
2418 set of #GstAudioChannelPosition values.</doc>
2419       <return-value transfer-ownership="none">
2420         <doc xml:whitespace="preserve">fixed values that the caller could use as a fixed</doc>
2421         <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/>
2422       </return-value>
2423       <parameters>
2424         <parameter name="str" transfer-ownership="none">
2425           <doc xml:whitespace="preserve">a #GstStructure containing a (possibly unfixed) "channel-positions" field.</doc>
2426           <type name="Gst.Structure" c:type="GstStructure*"/>
2427         </parameter>
2428       </parameters>
2429     </function>
2430     <function name="audio_frame_byte_size"
2431               c:identifier="gst_audio_frame_byte_size">
2432       <doc xml:whitespace="preserve">Calculate byte size of an audio frame.</doc>
2433       <return-value transfer-ownership="none">
2434         <doc xml:whitespace="preserve">the byte size, or 0 if there was an error</doc>
2435         <type name="gint" c:type="int"/>
2436       </return-value>
2437       <parameters>
2438         <parameter name="pad" transfer-ownership="none">
2439           <doc xml:whitespace="preserve">the #GstPad to get the caps from</doc>
2440           <type name="Gst.Pad" c:type="GstPad*"/>
2441         </parameter>
2442       </parameters>
2443     </function>
2444     <function name="audio_frame_length" c:identifier="gst_audio_frame_length">
2445       <doc xml:whitespace="preserve">Calculate length of buffer in frames.</doc>
2446       <return-value transfer-ownership="none">
2447         <doc xml:whitespace="preserve">0 if there's an error, or the number of frames if everything's ok</doc>
2448         <type name="glong" c:type="long"/>
2449       </return-value>
2450       <parameters>
2451         <parameter name="pad" transfer-ownership="none">
2452           <doc xml:whitespace="preserve">the #GstPad to get the caps from</doc>
2453           <type name="Gst.Pad" c:type="GstPad*"/>
2454         </parameter>
2455         <parameter name="buf" transfer-ownership="none">
2456           <doc xml:whitespace="preserve">the #GstBuffer</doc>
2457           <type name="Gst.Buffer" c:type="GstBuffer*"/>
2458         </parameter>
2459       </parameters>
2460     </function>
2461     <function name="audio_get_channel_positions"
2462               c:identifier="gst_audio_get_channel_positions">
2463       <doc xml:whitespace="preserve">Retrieves a number of (fixed!) audio channel positions from
2464 the provided #GstStructure and returns it as a newly allocated
2465 array. The caller should g_free () this array. The caller
2466 should also check that the members in this #GstStructure are
2467 indeed "fixed" before calling this function.
2468 positions as provided in the given #GstStructure. Returns
2469 NULL on error.</doc>
2470       <return-value transfer-ownership="none">
2471         <doc xml:whitespace="preserve">a newly allocated array containing the channel</doc>
2472         <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/>
2473       </return-value>
2474       <parameters>
2475         <parameter name="str" transfer-ownership="none">
2476           <doc xml:whitespace="preserve">A #GstStructure to retrieve channel positions from.</doc>
2477           <type name="Gst.Structure" c:type="GstStructure*"/>
2478         </parameter>
2479       </parameters>
2480     </function>
2481     <function name="audio_is_buffer_framed"
2482               c:identifier="gst_audio_is_buffer_framed">
2483       <doc xml:whitespace="preserve">Check if the buffer size is a whole multiple of the frame size.</doc>
2484       <return-value transfer-ownership="none">
2485         <doc xml:whitespace="preserve">%TRUE if buffer size is multiple.</doc>
2486         <type name="gboolean" c:type="gboolean"/>
2487       </return-value>
2488       <parameters>
2489         <parameter name="pad" transfer-ownership="none">
2490           <doc xml:whitespace="preserve">the #GstPad to get the caps from</doc>
2491           <type name="Gst.Pad" c:type="GstPad*"/>
2492         </parameter>
2493         <parameter name="buf" transfer-ownership="none">
2494           <doc xml:whitespace="preserve">the #GstBuffer</doc>
2495           <type name="Gst.Buffer" c:type="GstBuffer*"/>
2496         </parameter>
2497       </parameters>
2498     </function>
2499     <function name="audio_set_caps_channel_positions_list"
2500               c:identifier="gst_audio_set_caps_channel_positions_list">
2501       <doc xml:whitespace="preserve">Sets a (possibly non-fixed) list of possible audio channel
2502 positions (given in pos) on the given caps. Each of the
2503 structures of the caps, after this function has been called,
2504 will contain a "channel-positions" field with an array.
2505 Each value in the array will contain each of the values given
2506 in the pos array. Note that the size of the caps might be
2507 increased by this, since each structure with a "channel-
2508 positions" field needs to have a fixed "channels" field.
2509 The input caps is not required to have this.</doc>
2510       <return-value transfer-ownership="none">
2511         <type name="none" c:type="void"/>
2512       </return-value>
2513       <parameters>
2514         <parameter name="caps" transfer-ownership="none">
2515           <doc xml:whitespace="preserve">#GstCaps to set the list of channel positions on.</doc>
2516           <type name="Gst.Caps" c:type="GstCaps*"/>
2517         </parameter>
2518         <parameter name="pos" transfer-ownership="none">
2519           <doc xml:whitespace="preserve">the array containing one or more possible audio channel positions that we should add in each value of the array in the given structure.</doc>
2520           <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/>
2521         </parameter>
2522         <parameter name="num_positions" transfer-ownership="none">
2523           <doc xml:whitespace="preserve">the number of values in pos.</doc>
2524           <type name="gint" c:type="gint"/>
2525         </parameter>
2526       </parameters>
2527     </function>
2528     <function name="audio_set_channel_positions"
2529               c:identifier="gst_audio_set_channel_positions">
2530       <doc xml:whitespace="preserve">Adds a "channel-positions" field to the given #GstStructure,
2531 which will represent the channel positions as given in the
2532 provided #GstAudioChannelPosition array.</doc>
2533       <return-value transfer-ownership="none">
2534         <type name="none" c:type="void"/>
2535       </return-value>
2536       <parameters>
2537         <parameter name="str" transfer-ownership="none">
2538           <doc xml:whitespace="preserve">A #GstStructure to set channel positions on.</doc>
2539           <type name="Gst.Structure" c:type="GstStructure*"/>
2540         </parameter>
2541         <parameter name="pos" transfer-ownership="none">
2542           <doc xml:whitespace="preserve">an array of channel positions. The number of members in this array should be equal to the (fixed!) number of the "channels" field in the given #GstStructure.</doc>
2543           <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/>
2544         </parameter>
2545       </parameters>
2546     </function>
2547     <function name="audio_set_structure_channel_positions_list"
2548               c:identifier="gst_audio_set_structure_channel_positions_list">
2549       <doc xml:whitespace="preserve">Sets a (possibly non-fixed) list of possible audio channel
2550 positions (given in pos) on the given structure. The
2551 structure, after this function has been called, will contain
2552 a "channel-positions" field with an array of the size of
2553 the "channels" field value in the given structure (note
2554 that this means that the channels field in the provided
2555 structure should be fixed!). Each value in the array will
2556 contain each of the values given in the pos array.</doc>
2557       <return-value transfer-ownership="none">
2558         <type name="none" c:type="void"/>
2559       </return-value>
2560       <parameters>
2561         <parameter name="str" transfer-ownership="none">
2562           <doc xml:whitespace="preserve">#GstStructure to set the list of channel positions on.</doc>
2563           <type name="Gst.Structure" c:type="GstStructure*"/>
2564         </parameter>
2565         <parameter name="pos" transfer-ownership="none">
2566           <doc xml:whitespace="preserve">the array containing one or more possible audio channel positions that we should add in each value of the array in the given structure.</doc>
2567           <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/>
2568         </parameter>
2569         <parameter name="num_positions" transfer-ownership="none">
2570           <doc xml:whitespace="preserve">the number of values in pos.</doc>
2571           <type name="gint" c:type="gint"/>
2572         </parameter>
2573       </parameters>
2574     </function>
2575     <function name="audio_structure_set_int"
2576               c:identifier="gst_audio_structure_set_int"
2577               deprecated="use gst_structure_set()">
2578       <doc xml:whitespace="preserve">Do not use anymore.</doc>
2579       <return-value transfer-ownership="none">
2580         <type name="none" c:type="void"/>
2581       </return-value>
2582       <parameters>
2583         <parameter name="structure" transfer-ownership="none">
2584           <doc xml:whitespace="preserve">a #GstStructure</doc>
2585           <type name="Gst.Structure" c:type="GstStructure*"/>
2586         </parameter>
2587         <parameter name="flag" transfer-ownership="none">
2588           <doc xml:whitespace="preserve">a set of #GstAudioFieldFlag</doc>
2589           <type name="AudioFieldFlag" c:type="GstAudioFieldFlag"/>
2590         </parameter>
2591       </parameters>
2592     </function>
2593   </namespace>
2594 </repository>