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"
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"/>
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*"/>
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*"/>
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*"/>
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*"/>
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"
58 c:identifier="GST_AUDIO_CHANNEL_POSITION_INVALID"
60 <member name="front_mono"
62 c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_MONO"
63 glib:nick="front-mono"/>
64 <member name="front_left"
66 c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT"
67 glib:nick="front-left"/>
68 <member name="front_right"
70 c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT"
71 glib:nick="front-right"/>
72 <member name="rear_center"
74 c:identifier="GST_AUDIO_CHANNEL_POSITION_REAR_CENTER"
75 glib:nick="rear-center"/>
76 <member name="rear_left"
78 c:identifier="GST_AUDIO_CHANNEL_POSITION_REAR_LEFT"
79 glib:nick="rear-left"/>
80 <member name="rear_right"
82 c:identifier="GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT"
83 glib:nick="rear-right"/>
86 c:identifier="GST_AUDIO_CHANNEL_POSITION_LFE"
88 <member name="front_center"
90 c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER"
91 glib:nick="front-center"/>
92 <member name="front_left_of_center"
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"
98 c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER"
99 glib:nick="front-right-of-center"/>
100 <member name="side_left"
102 c:identifier="GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT"
103 glib:nick="side-left"/>
104 <member name="side_right"
106 c:identifier="GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT"
107 glib:nick="side-right"/>
110 c:identifier="GST_AUDIO_CHANNEL_POSITION_NONE"
114 c:identifier="GST_AUDIO_CHANNEL_POSITION_NUM"
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"
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*"/>
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*"/>
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"/>
145 <parameter name="user_data" transfer-ownership="none">
146 <doc xml:whitespace="preserve">user data</doc>
147 <type name="gpointer" c:type="gpointer"/>
151 <constructor name="new_full"
152 c:identifier="gst_audio_clock_new_full"
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*"/>
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*"/>
166 <parameter name="func"
167 transfer-ownership="none"
171 <doc xml:whitespace="preserve">a function</doc>
172 <type name="AudioClockGetTimeFunc"
173 c:type="GstAudioClockGetTimeFunc"/>
175 <parameter name="user_data" transfer-ownership="none">
176 <doc xml:whitespace="preserve">user data</doc>
177 <type name="gpointer" c:type="gpointer"/>
179 <parameter name="destroy_notify"
180 transfer-ownership="none"
182 <doc xml:whitespace="preserve">#GDestroyNotify for @user_data</doc>
183 <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
187 <function name="adjust"
188 c:identifier="gst_audio_clock_adjust"
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"/>
196 <parameter name="clock" transfer-ownership="none">
197 <doc xml:whitespace="preserve">a #GstAudioClock</doc>
198 <type name="Gst.Clock" c:type="GstClock*"/>
200 <parameter name="time" transfer-ownership="none">
201 <doc xml:whitespace="preserve">a #GstClockTime</doc>
202 <type name="Gst.ClockTime" c:type="GstClockTime"/>
206 <function name="get_time"
207 c:identifier="gst_audio_clock_get_time"
209 <doc xml:whitespace="preserve">Report the time as returned by the #GstAudioClockGetTimeFunc without applying
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"/>
216 <parameter name="clock" transfer-ownership="none">
217 <doc xml:whitespace="preserve">a #GstAudioClock</doc>
218 <type name="Gst.Clock" c:type="GstClock*"/>
222 <function name="invalidate"
223 c:identifier="gst_audio_clock_invalidate"
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"/>
234 <parameter name="clock" transfer-ownership="none">
235 <doc xml:whitespace="preserve">a #GstAudioClock</doc>
236 <type name="Gst.Clock" c:type="GstClock*"/>
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"/>
249 <parameter name="time" transfer-ownership="none">
250 <doc xml:whitespace="preserve">a #GstClockTime</doc>
251 <type name="Gst.ClockTime" c:type="GstClockTime"/>
256 <type name="Gst.SystemClock" c:type="GstSystemClock"/>
259 <type name="AudioClockGetTimeFunc" c:type="GstAudioClockGetTimeFunc"/>
261 <field name="user_data">
262 <type name="gpointer" c:type="gpointer"/>
264 <field name="last_time">
265 <type name="Gst.ClockTime" c:type="GstClockTime"/>
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"/>
272 <field name="destroy_notify" writable="1">
273 <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
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"/>
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"/>
289 <field name="_gst_reserved">
290 <array zero-terminated="0" c:type="gpointer" fixed-size="4">
291 <type name="gpointer" c:type="gpointer"/>
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.
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"/>
305 <parameter name="clock" transfer-ownership="none">
306 <doc xml:whitespace="preserve">the #GstAudioClock</doc>
307 <type name="Gst.Clock" c:type="GstClock*"/>
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"/>
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"
322 c:identifier="GST_AUDIO_FIELD_CHANNELS"/>
323 <member name="endianness"
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"/>
330 <class name="AudioFilter"
331 c:symbol-prefix="audio_filter"
332 c:type="GstAudioFilter"
334 parent="GstBase.BaseTransform"
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"/>
345 <parameter name="format" transfer-ownership="none">
346 <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
350 <field name="basetransform">
351 <type name="GstBase.BaseTransform" c:type="GstBaseTransform"/>
353 <field name="format">
354 <type name="RingBufferSpec" c:type="GstRingBufferSpec"/>
356 <field name="_gst_reserved">
357 <array zero-terminated="0" c:type="gpointer" fixed-size="4">
358 <type name="gpointer" c:type="gpointer"/>
362 <record name="AudioFilterClass"
363 c:type="GstAudioFilterClass"
364 glib:is-gtype-struct-for="AudioFilter"
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
369 <field name="basetransformclass">
370 <type name="GstBase.BaseTransformClass"
371 c:type="GstBaseTransformClass"/>
374 <callback name="setup">
375 <return-value transfer-ownership="none">
376 <type name="gboolean" c:type="gboolean"/>
379 <parameter name="filter" transfer-ownership="none">
380 <type name="AudioFilter" c:type="GstAudioFilter*"/>
382 <parameter name="format" transfer-ownership="none">
383 <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
388 <field name="_gst_reserved">
389 <array zero-terminated="0" c:type="gpointer" fixed-size="4">
390 <type name="gpointer" c:type="gpointer"/>
393 <method name="add_pad_templates"
394 c:identifier="gst_audio_filter_class_add_pad_templates"
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"/>
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*"/>
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"/>
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*"/>
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"/>
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"/>
443 <virtual-method name="delay">
444 <return-value transfer-ownership="none">
445 <type name="guint" c:type="guint"/>
448 <virtual-method name="open">
449 <return-value transfer-ownership="none">
450 <type name="gboolean" c:type="gboolean"/>
453 <virtual-method name="prepare">
454 <return-value transfer-ownership="none">
455 <type name="gboolean" c:type="gboolean"/>
458 <parameter name="spec" transfer-ownership="none">
459 <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
463 <virtual-method name="reset">
464 <return-value transfer-ownership="none">
465 <type name="none" c:type="void"/>
468 <virtual-method name="unprepare">
469 <return-value transfer-ownership="none">
470 <type name="gboolean" c:type="gboolean"/>
473 <virtual-method name="write">
474 <return-value transfer-ownership="none">
475 <type name="guint" c:type="guint"/>
478 <parameter name="data" transfer-ownership="none">
479 <type name="gpointer" c:type="gpointer"/>
481 <parameter name="length" transfer-ownership="none">
482 <type name="guint" c:type="guint"/>
486 <field name="element">
487 <type name="BaseAudioSink" c:type="GstBaseAudioSink"/>
489 <field name="thread">
490 <type name="GLib.Thread" c:type="GThread*"/>
492 <field name="_gst_reserved">
493 <array zero-terminated="0" c:type="gpointer" fixed-size="4">
494 <type name="gpointer" c:type="gpointer"/>
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"/>
506 <callback name="open">
507 <return-value transfer-ownership="none">
508 <type name="gboolean" c:type="gboolean"/>
511 <parameter name="sink" transfer-ownership="none">
512 <type name="AudioSink" c:type="GstAudioSink*"/>
517 <field name="prepare">
518 <callback name="prepare">
519 <return-value transfer-ownership="none">
520 <type name="gboolean" c:type="gboolean"/>
523 <parameter name="sink" transfer-ownership="none">
524 <type name="AudioSink" c:type="GstAudioSink*"/>
526 <parameter name="spec" transfer-ownership="none">
527 <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
532 <field name="unprepare">
533 <callback name="unprepare">
534 <return-value transfer-ownership="none">
535 <type name="gboolean" c:type="gboolean"/>
538 <parameter name="sink" transfer-ownership="none">
539 <type name="AudioSink" c:type="GstAudioSink*"/>
545 <callback name="close">
546 <return-value transfer-ownership="none">
547 <type name="gboolean" c:type="gboolean"/>
550 <parameter name="sink" transfer-ownership="none">
551 <type name="AudioSink" c:type="GstAudioSink*"/>
557 <callback name="write">
558 <return-value transfer-ownership="none">
559 <type name="guint" c:type="guint"/>
562 <parameter name="sink" transfer-ownership="none">
563 <type name="AudioSink" c:type="GstAudioSink*"/>
565 <parameter name="data" transfer-ownership="none">
566 <type name="gpointer" c:type="gpointer"/>
568 <parameter name="length" transfer-ownership="none">
569 <type name="guint" c:type="guint"/>
575 <callback name="delay">
576 <return-value transfer-ownership="none">
577 <type name="guint" c:type="guint"/>
580 <parameter name="sink" transfer-ownership="none">
581 <type name="AudioSink" c:type="GstAudioSink*"/>
587 <callback name="reset">
588 <return-value transfer-ownership="none">
589 <type name="none" c:type="void"/>
592 <parameter name="sink" transfer-ownership="none">
593 <type name="AudioSink" c:type="GstAudioSink*"/>
598 <field name="_gst_reserved">
599 <array zero-terminated="0" c:type="gpointer" fixed-size="4">
600 <type name="gpointer" c:type="gpointer"/>
604 <class name="AudioSrc"
605 c:symbol-prefix="audio_src"
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"/>
617 <virtual-method name="delay">
618 <return-value transfer-ownership="none">
619 <type name="guint" c:type="guint"/>
622 <virtual-method name="open">
623 <return-value transfer-ownership="none">
624 <type name="gboolean" c:type="gboolean"/>
627 <virtual-method name="prepare">
628 <return-value transfer-ownership="none">
629 <type name="gboolean" c:type="gboolean"/>
632 <parameter name="spec" transfer-ownership="none">
633 <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
637 <virtual-method name="read">
638 <return-value transfer-ownership="none">
639 <type name="guint" c:type="guint"/>
642 <parameter name="data" transfer-ownership="none">
643 <type name="gpointer" c:type="gpointer"/>
645 <parameter name="length" transfer-ownership="none">
646 <type name="guint" c:type="guint"/>
650 <virtual-method name="reset">
651 <return-value transfer-ownership="none">
652 <type name="none" c:type="void"/>
655 <virtual-method name="unprepare">
656 <return-value transfer-ownership="none">
657 <type name="gboolean" c:type="gboolean"/>
660 <field name="element">
661 <type name="BaseAudioSrc" c:type="GstBaseAudioSrc"/>
663 <field name="thread">
664 <type name="GLib.Thread" c:type="GThread*"/>
666 <field name="_gst_reserved">
667 <array zero-terminated="0" c:type="gpointer" fixed-size="4">
668 <type name="gpointer" c:type="gpointer"/>
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
677 <field name="parent_class">
678 <type name="BaseAudioSrcClass" c:type="GstBaseAudioSrcClass"/>
681 <callback name="open">
682 <return-value transfer-ownership="none">
683 <type name="gboolean" c:type="gboolean"/>
686 <parameter name="src" transfer-ownership="none">
687 <type name="AudioSrc" c:type="GstAudioSrc*"/>
692 <field name="prepare">
693 <callback name="prepare">
694 <return-value transfer-ownership="none">
695 <type name="gboolean" c:type="gboolean"/>
698 <parameter name="src" transfer-ownership="none">
699 <type name="AudioSrc" c:type="GstAudioSrc*"/>
701 <parameter name="spec" transfer-ownership="none">
702 <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
707 <field name="unprepare">
708 <callback name="unprepare">
709 <return-value transfer-ownership="none">
710 <type name="gboolean" c:type="gboolean"/>
713 <parameter name="src" transfer-ownership="none">
714 <type name="AudioSrc" c:type="GstAudioSrc*"/>
720 <callback name="close">
721 <return-value transfer-ownership="none">
722 <type name="gboolean" c:type="gboolean"/>
725 <parameter name="src" transfer-ownership="none">
726 <type name="AudioSrc" c:type="GstAudioSrc*"/>
732 <callback name="read">
733 <return-value transfer-ownership="none">
734 <type name="guint" c:type="guint"/>
737 <parameter name="src" transfer-ownership="none">
738 <type name="AudioSrc" c:type="GstAudioSrc*"/>
740 <parameter name="data" transfer-ownership="none">
741 <type name="gpointer" c:type="gpointer"/>
743 <parameter name="length" transfer-ownership="none">
744 <type name="guint" c:type="guint"/>
750 <callback name="delay">
751 <return-value transfer-ownership="none">
752 <type name="guint" c:type="guint"/>
755 <parameter name="src" transfer-ownership="none">
756 <type name="AudioSrc" c:type="GstAudioSrc*"/>
762 <callback name="reset">
763 <return-value transfer-ownership="none">
764 <type name="none" c:type="void"/>
767 <parameter name="src" transfer-ownership="none">
768 <type name="AudioSrc" c:type="GstAudioSrc*"/>
773 <field name="_gst_reserved">
774 <array zero-terminated="0" c:type="gpointer" fixed-size="4">
775 <type name="gpointer" c:type="gpointer"/>
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"
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>
794 <doc xml:whitespace="preserve">The new ringbuffer of @sink.</doc>
795 <type name="RingBuffer" c:type="GstRingBuffer*"/>
798 <method name="create_ringbuffer"
799 c:identifier="gst_base_audio_sink_create_ringbuffer"
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>
805 <doc xml:whitespace="preserve">The new ringbuffer of @sink.</doc>
806 <type name="RingBuffer" c:type="GstRingBuffer*"/>
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"/>
815 <method name="get_provide_clock"
816 c:identifier="gst_base_audio_sink_get_provide_clock"
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"/>
825 <method name="get_slave_method"
826 c:identifier="gst_base_audio_sink_get_slave_method"
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"/>
835 <method name="set_drift_tolerance"
836 c:identifier="gst_base_audio_sink_set_drift_tolerance"
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"/>
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"/>
849 <method name="set_provide_clock"
850 c:identifier="gst_base_audio_sink_set_provide_clock"
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"/>
859 <parameter name="provide" transfer-ownership="none">
860 <doc xml:whitespace="preserve">new state</doc>
861 <type name="gboolean" c:type="gboolean"/>
865 <method name="set_slave_method"
866 c:identifier="gst_base_audio_sink_set_slave_method"
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"/>
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"/>
880 <property name="buffer-time" writable="1" transfer-ownership="none">
881 <type name="gint64"/>
883 <property name="can-activate-pull"
885 transfer-ownership="none">
886 <type name="gboolean"/>
888 <property name="drift-tolerance" writable="1" transfer-ownership="none">
889 <type name="gint64"/>
891 <property name="latency-time" writable="1" transfer-ownership="none">
892 <type name="gint64"/>
894 <property name="provide-clock" writable="1" transfer-ownership="none">
895 <type name="gboolean"/>
897 <property name="slave-method" writable="1" transfer-ownership="none">
898 <type name="BaseAudioSinkSlaveMethod"/>
900 <field name="element">
901 <type name="GstBase.BaseSink" c:type="GstBaseSink"/>
903 <field name="ringbuffer">
904 <type name="RingBuffer" c:type="GstRingBuffer*"/>
906 <field name="buffer_time">
907 <type name="guint64" c:type="guint64"/>
909 <field name="latency_time">
910 <type name="guint64" c:type="guint64"/>
912 <field name="next_sample">
913 <type name="guint64" c:type="guint64"/>
915 <field name="provide_clock">
916 <type name="gboolean" c:type="gboolean"/>
918 <field name="provided_clock">
919 <type name="Gst.Clock" c:type="GstClock*"/>
922 <type name="BaseAudioSinkPrivate" c:type="GstBaseAudioSinkPrivate*"/>
924 <field name="_gst_reserved">
925 <array zero-terminated="0" c:type="gpointer" fixed-size="3">
926 <type name="gpointer" c:type="gpointer"/>
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
935 <field name="parent_class">
936 <type name="GstBase.BaseSinkClass" c:type="GstBaseSinkClass"/>
938 <field name="create_ringbuffer" introspectable="0">
939 <callback name="create_ringbuffer" introspectable="0">
941 <doc xml:whitespace="preserve">The new ringbuffer of @sink.</doc>
942 <type name="RingBuffer" c:type="GstRingBuffer*"/>
945 <parameter name="sink" transfer-ownership="none">
946 <type name="BaseAudioSink" c:type="GstBaseAudioSink*"/>
951 <field name="_gst_reserved">
952 <array zero-terminated="0" c:type="gpointer" fixed-size="4">
953 <type name="gpointer" c:type="gpointer"/>
957 <record name="BaseAudioSinkPrivate"
958 c:type="GstBaseAudioSinkPrivate"
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"
969 c:identifier="GST_BASE_AUDIO_SINK_SLAVE_RESAMPLE"
970 glib:nick="resample"/>
973 c:identifier="GST_BASE_AUDIO_SINK_SLAVE_SKEW"
977 c:identifier="GST_BASE_AUDIO_SINK_SLAVE_NONE"
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"
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>
995 <doc xml:whitespace="preserve">The new ringbuffer of @src.</doc>
996 <type name="RingBuffer" c:type="GstRingBuffer*"/>
999 <method name="create_ringbuffer"
1000 c:identifier="gst_base_audio_src_create_ringbuffer"
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>
1006 <doc xml:whitespace="preserve">The new ringbuffer of @src.</doc>
1007 <type name="RingBuffer" c:type="GstRingBuffer*"/>
1010 <method name="get_provide_clock"
1011 c:identifier="gst_base_audio_src_get_provide_clock"
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"/>
1020 <method name="get_slave_method"
1021 c:identifier="gst_base_audio_src_get_slave_method"
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"/>
1030 <method name="set_provide_clock"
1031 c:identifier="gst_base_audio_src_set_provide_clock"
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"/>
1040 <parameter name="provide" transfer-ownership="none">
1041 <doc xml:whitespace="preserve">new state</doc>
1042 <type name="gboolean" c:type="gboolean"/>
1046 <method name="set_slave_method"
1047 c:identifier="gst_base_audio_src_set_slave_method"
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"/>
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"/>
1061 <property name="actual-buffer-time"
1063 transfer-ownership="none">
1064 <doc xml:whitespace="preserve">Actual configured size of audio buffer in microseconds.</doc>
1065 <type name="gint64"/>
1067 <property name="actual-latency-time"
1069 transfer-ownership="none">
1070 <doc xml:whitespace="preserve">Actual configured audio latency in microseconds.</doc>
1071 <type name="gint64"/>
1073 <property name="buffer-time" writable="1" transfer-ownership="none">
1074 <type name="gint64"/>
1076 <property name="latency-time" writable="1" transfer-ownership="none">
1077 <type name="gint64"/>
1079 <property name="provide-clock" writable="1" transfer-ownership="none">
1080 <type name="gboolean"/>
1082 <property name="slave-method" writable="1" transfer-ownership="none">
1083 <type name="BaseAudioSrcSlaveMethod"/>
1085 <field name="element">
1086 <type name="GstBase.PushSrc" c:type="GstPushSrc"/>
1088 <field name="ringbuffer">
1089 <type name="RingBuffer" c:type="GstRingBuffer*"/>
1091 <field name="buffer_time">
1092 <type name="Gst.ClockTime" c:type="GstClockTime"/>
1094 <field name="latency_time">
1095 <type name="Gst.ClockTime" c:type="GstClockTime"/>
1097 <field name="next_sample">
1098 <type name="guint64" c:type="guint64"/>
1100 <field name="clock">
1101 <type name="Gst.Clock" c:type="GstClock*"/>
1104 <type name="BaseAudioSrcPrivate" c:type="GstBaseAudioSrcPrivate*"/>
1106 <field name="_gst_reserved">
1107 <array zero-terminated="0" c:type="gpointer" fixed-size="3">
1108 <type name="gpointer" c:type="gpointer"/>
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"/>
1120 <field name="create_ringbuffer" introspectable="0">
1121 <callback name="create_ringbuffer" introspectable="0">
1123 <doc xml:whitespace="preserve">The new ringbuffer of @src.</doc>
1124 <type name="RingBuffer" c:type="GstRingBuffer*"/>
1127 <parameter name="src" transfer-ownership="none">
1128 <type name="BaseAudioSrc" c:type="GstBaseAudioSrc*"/>
1133 <field name="_gst_reserved">
1134 <array zero-terminated="0" c:type="gpointer" fixed-size="4">
1135 <type name="gpointer" c:type="gpointer"/>
1139 <record name="BaseAudioSrcPrivate"
1140 c:type="GstBaseAudioSrcPrivate"
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"
1151 c:identifier="GST_BASE_AUDIO_SRC_SLAVE_RESAMPLE"
1152 glib:nick="resample"/>
1153 <member name="re_timestamp"
1155 c:identifier="GST_BASE_AUDIO_SRC_SLAVE_RETIMESTAMP"
1156 glib:nick="re-timestamp"/>
1159 c:identifier="GST_BASE_AUDIO_SRC_SLAVE_SKEW"
1163 c:identifier="GST_BASE_AUDIO_SRC_SLAVE_NONE"
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"
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"
1178 c:identifier="GST_S16_LE"
1179 glib:nick="s16-le"/>
1180 <member name="s16_be"
1182 c:identifier="GST_S16_BE"
1183 glib:nick="s16-be"/>
1184 <member name="u16_le"
1186 c:identifier="GST_U16_LE"
1187 glib:nick="u16-le"/>
1188 <member name="u16_be"
1190 c:identifier="GST_U16_BE"
1191 glib:nick="u16-be"/>
1192 <member name="s24_le"
1194 c:identifier="GST_S24_LE"
1195 glib:nick="s24-le"/>
1196 <member name="s24_be"
1198 c:identifier="GST_S24_BE"
1199 glib:nick="s24-be"/>
1200 <member name="u24_le"
1202 c:identifier="GST_U24_LE"
1203 glib:nick="u24-le"/>
1204 <member name="u24_be"
1206 c:identifier="GST_U24_BE"
1207 glib:nick="u24-be"/>
1208 <member name="s32_le"
1210 c:identifier="GST_S32_LE"
1211 glib:nick="s32-le"/>
1212 <member name="s32_be"
1214 c:identifier="GST_S32_BE"
1215 glib:nick="s32-be"/>
1216 <member name="u32_le"
1218 c:identifier="GST_U32_LE"
1219 glib:nick="u32-le"/>
1220 <member name="u32_be"
1222 c:identifier="GST_U32_BE"
1223 glib:nick="u32-be"/>
1224 <member name="s24_3le"
1226 c:identifier="GST_S24_3LE"
1227 glib:nick="s24-3le"/>
1228 <member name="s24_3be"
1230 c:identifier="GST_S24_3BE"
1231 glib:nick="s24-3be"/>
1232 <member name="u24_3le"
1234 c:identifier="GST_U24_3LE"
1235 glib:nick="u24-3le"/>
1236 <member name="u24_3be"
1238 c:identifier="GST_U24_3BE"
1239 glib:nick="u24-3be"/>
1240 <member name="s20_3le"
1242 c:identifier="GST_S20_3LE"
1243 glib:nick="s20-3le"/>
1244 <member name="s20_3be"
1246 c:identifier="GST_S20_3BE"
1247 glib:nick="s20-3be"/>
1248 <member name="u20_3le"
1250 c:identifier="GST_U20_3LE"
1251 glib:nick="u20-3le"/>
1252 <member name="u20_3be"
1254 c:identifier="GST_U20_3BE"
1255 glib:nick="u20-3be"/>
1256 <member name="s18_3le"
1258 c:identifier="GST_S18_3LE"
1259 glib:nick="s18-3le"/>
1260 <member name="s18_3be"
1262 c:identifier="GST_S18_3BE"
1263 glib:nick="s18-3be"/>
1264 <member name="u18_3le"
1266 c:identifier="GST_U18_3LE"
1267 glib:nick="u18-3le"/>
1268 <member name="u18_3be"
1270 c:identifier="GST_U18_3BE"
1271 glib:nick="u18-3be"/>
1272 <member name="float32_le"
1274 c:identifier="GST_FLOAT32_LE"
1275 glib:nick="float32-le"/>
1276 <member name="float32_be"
1278 c:identifier="GST_FLOAT32_BE"
1279 glib:nick="float32-be"/>
1280 <member name="float64_le"
1282 c:identifier="GST_FLOAT64_LE"
1283 glib:nick="float64-le"/>
1284 <member name="float64_be"
1286 c:identifier="GST_FLOAT64_BE"
1287 glib:nick="float64-be"/>
1288 <member name="mu_law"
1290 c:identifier="GST_MU_LAW"
1291 glib:nick="mu-law"/>
1292 <member name="a_law"
1294 c:identifier="GST_A_LAW"
1296 <member name="ima_adpcm"
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"
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"/>
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"
1317 c:identifier="GST_BUFTYPE_LINEAR"
1318 glib:nick="linear"/>
1319 <member name="float"
1321 c:identifier="GST_BUFTYPE_FLOAT"
1323 <member name="mu_law"
1325 c:identifier="GST_BUFTYPE_MU_LAW"
1326 glib:nick="mu-law"/>
1327 <member name="a_law"
1329 c:identifier="GST_BUFTYPE_A_LAW"
1331 <member name="ima_adpcm"
1333 c:identifier="GST_BUFTYPE_IMA_ADPCM"
1334 glib:nick="ima-adpcm"/>
1337 c:identifier="GST_BUFTYPE_MPEG"
1341 c:identifier="GST_BUFTYPE_GSM"
1343 <member name="iec958"
1345 c:identifier="GST_BUFTYPE_IEC958"
1346 glib:nick="iec958"/>
1349 c:identifier="GST_BUFTYPE_AC3"
1353 c:identifier="GST_BUFTYPE_EAC3"
1357 c:identifier="GST_BUFTYPE_DTS"
1360 <class name="RingBuffer"
1361 c:symbol-prefix="ring_buffer"
1362 c:type="GstRingBuffer"
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"/>
1376 <parameter name="spec" transfer-ownership="none">
1377 <doc xml:whitespace="preserve">the spec to debug</doc>
1378 <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
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"/>
1389 <parameter name="spec" transfer-ownership="none">
1390 <doc xml:whitespace="preserve">the spec to debug</doc>
1391 <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
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"/>
1402 <parameter name="spec" transfer-ownership="none">
1403 <doc xml:whitespace="preserve">a spec</doc>
1404 <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
1406 <parameter name="caps" transfer-ownership="none">
1407 <doc xml:whitespace="preserve">a #GstCaps</doc>
1408 <type name="Gst.Caps" c:type="GstCaps*"/>
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.
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"/>
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*"/>
1428 <virtual-method name="activate" invoker="activate" version="0.10.22.">
1429 <doc xml:whitespace="preserve">Activate @buf to start or stop pulling data.
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"/>
1437 <parameter name="active" transfer-ownership="none">
1438 <doc xml:whitespace="preserve">the new mode</doc>
1439 <type name="gboolean" c:type="gboolean"/>
1443 <virtual-method name="clear_all" invoker="clear_all">
1444 <doc xml:whitespace="preserve">Fill the ringbuffer with silence.
1446 <return-value transfer-ownership="none">
1447 <type name="none" c:type="void"/>
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().
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"/>
1459 <virtual-method name="commit">
1460 <return-value transfer-ownership="none">
1461 <type name="guint" c:type="guint"/>
1464 <parameter name="sample" transfer-ownership="none">
1465 <type name="guint64" c:type="guint64*"/>
1467 <parameter name="data" transfer-ownership="none">
1468 <type name="guint8" c:type="guchar*"/>
1470 <parameter name="in_samples" transfer-ownership="none">
1471 <type name="gint" c:type="gint"/>
1473 <parameter name="out_samples" transfer-ownership="none">
1474 <type name="gint" c:type="gint"/>
1476 <parameter name="accum" transfer-ownership="none">
1477 <type name="gint" c:type="gint*"/>
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
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.
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"/>
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
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"/>
1506 <virtual-method name="pause" invoker="pause">
1507 <doc xml:whitespace="preserve">Pause processing samples from the ringbuffer.
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"/>
1514 <virtual-method name="release" invoker="release">
1515 <doc xml:whitespace="preserve">Free the resources of the ringbuffer.
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"/>
1522 <virtual-method name="resume">
1523 <return-value transfer-ownership="none">
1524 <type name="gboolean" c:type="gboolean"/>
1527 <virtual-method name="start" invoker="start">
1528 <doc xml:whitespace="preserve">Start processing samples from the ringbuffer.
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"/>
1535 <virtual-method name="stop" invoker="stop">
1536 <doc xml:whitespace="preserve">Stop processing samples from the ringbuffer.
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"/>
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.
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"/>
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*"/>
1559 <method name="activate"
1560 c:identifier="gst_ring_buffer_activate"
1562 <doc xml:whitespace="preserve">Activate @buf to start or stop pulling data.
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"/>
1570 <parameter name="active" transfer-ownership="none">
1571 <doc xml:whitespace="preserve">the new mode</doc>
1572 <type name="gboolean" c:type="gboolean"/>
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
1579 <return-value transfer-ownership="none">
1580 <type name="none" c:type="void"/>
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"/>
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.
1593 <return-value transfer-ownership="none">
1594 <type name="none" c:type="void"/>
1597 <parameter name="segment" transfer-ownership="none">
1598 <doc xml:whitespace="preserve">the segment to clear</doc>
1599 <type name="gint" c:type="gint"/>
1603 <method name="clear_all" c:identifier="gst_ring_buffer_clear_all">
1604 <doc xml:whitespace="preserve">Fill the ringbuffer with silence.
1606 <return-value transfer-ownership="none">
1607 <type name="none" c:type="void"/>
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().
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"/>
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.
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"/>
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"/>
1633 <parameter name="data" transfer-ownership="none">
1634 <doc xml:whitespace="preserve">the data to commit</doc>
1635 <type name="guint8" c:type="guchar*"/>
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"/>
1643 <method name="commit_full"
1644 c:identifier="gst_ring_buffer_commit_full"
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
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"/>
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*"/>
1665 <parameter name="data" transfer-ownership="none">
1666 <doc xml:whitespace="preserve">the data to commit</doc>
1667 <type name="guint8" c:type="guchar*"/>
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"/>
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"/>
1677 <parameter name="accum" transfer-ownership="none">
1678 <doc xml:whitespace="preserve">accumulator for rate conversion.</doc>
1679 <type name="gint" c:type="gint*"/>
1683 <method name="convert"
1684 c:identifier="gst_ring_buffer_convert"
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"/>
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"/>
1697 <parameter name="src_val" transfer-ownership="none">
1698 <doc xml:whitespace="preserve">the source value</doc>
1699 <type name="gint64" c:type="gint64"/>
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"/>
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*"/>
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
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.
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"/>
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.
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"/>
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.
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"/>
1743 <method name="is_active"
1744 c:identifier="gst_ring_buffer_is_active"
1746 <doc xml:whitespace="preserve">Check if @buf is activated.
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"/>
1753 <method name="may_start"
1754 c:identifier="gst_ring_buffer_may_start"
1756 <doc xml:whitespace="preserve">Tell the ringbuffer that it is allowed to start playback when
1757 the ringbuffer is filled with samples.
1759 <return-value transfer-ownership="none">
1760 <type name="none" c:type="void"/>
1763 <parameter name="allowed" transfer-ownership="none">
1764 <doc xml:whitespace="preserve">the new value</doc>
1765 <type name="gboolean" c:type="gboolean"/>
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
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"/>
1779 <method name="pause" c:identifier="gst_ring_buffer_pause">
1780 <doc xml:whitespace="preserve">Pause processing samples from the ringbuffer.
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"/>
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.
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"/>
1796 <parameter name="segment" transfer-ownership="none">
1797 <doc xml:whitespace="preserve">the segment to read</doc>
1798 <type name="gint" c:type="gint*"/>
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**"/>
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*"/>
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
1813 The first sample should be read from position @sample in
1815 although it is recommended.
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"/>
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"/>
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*"/>
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"/>
1837 <method name="release" c:identifier="gst_ring_buffer_release">
1838 <doc xml:whitespace="preserve">Free the resources of the ringbuffer.
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"/>
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()).
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"/>
1855 <method name="set_callback"
1856 c:identifier="gst_ring_buffer_set_callback"
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.
1861 <return-value transfer-ownership="none">
1862 <type name="none" c:type="void"/>
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"/>
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"/>
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.
1878 <return-value transfer-ownership="none">
1879 <type name="none" c:type="void"/>
1882 <parameter name="flushing" transfer-ownership="none">
1883 <doc xml:whitespace="preserve">the new mode</doc>
1884 <type name="gboolean" c:type="gboolean"/>
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.
1895 <return-value transfer-ownership="none">
1896 <type name="none" c:type="void"/>
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"/>
1905 <method name="start" c:identifier="gst_ring_buffer_start">
1906 <doc xml:whitespace="preserve">Start processing samples from the ringbuffer.
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"/>
1913 <method name="stop" c:identifier="gst_ring_buffer_stop">
1914 <doc xml:whitespace="preserve">Stop processing samples from the ringbuffer.
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"/>
1921 <field name="object">
1922 <type name="Gst.Object" c:type="GstObject"/>
1925 <type name="GLib.Cond" c:type="GCond*"/>
1928 <type name="gboolean" c:type="gboolean"/>
1930 <field name="acquired">
1931 <type name="gboolean" c:type="gboolean"/>
1934 <type name="Gst.Buffer" c:type="GstBuffer*"/>
1937 <type name="RingBufferSpec" c:type="GstRingBufferSpec"/>
1939 <field name="segstate">
1940 <type name="RingBufferSegState" c:type="GstRingBufferSegState*"/>
1942 <field name="samples_per_seg">
1943 <type name="gint" c:type="gint"/>
1945 <field name="empty_seg">
1946 <type name="guint8" c:type="guint8*"/>
1948 <field name="state">
1949 <type name="gint" c:type="gint"/>
1951 <field name="segdone">
1952 <type name="gint" c:type="gint"/>
1954 <field name="segbase">
1955 <type name="gint" c:type="gint"/>
1957 <field name="waiting">
1958 <type name="gint" c:type="gint"/>
1960 <field name="callback">
1961 <type name="RingBufferCallback" c:type="GstRingBufferCallback"/>
1963 <field name="cb_data">
1964 <type name="gpointer" c:type="gpointer"/>
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"/>
1971 <field name="may_start" writable="1">
1972 <type name="gint" c:type="gint"/>
1974 <field name="active" writable="1">
1975 <type name="gboolean" c:type="gboolean"/>
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"/>
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"/>
1992 <parameter name="rbuf" transfer-ownership="none">
1993 <doc xml:whitespace="preserve">a #GstRingBuffer</doc>
1994 <type name="RingBuffer" c:type="GstRingBuffer*"/>
1996 <parameter name="data" transfer-ownership="none">
1997 <doc xml:whitespace="preserve">target to fill</doc>
1998 <type name="guint8" c:type="guint8*"/>
2000 <parameter name="len" transfer-ownership="none">
2001 <doc xml:whitespace="preserve">amount to fill</doc>
2002 <type name="guint" c:type="guint"/>
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"/>
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"/>
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"/>
2024 <parameter name="buf" transfer-ownership="none">
2025 <type name="RingBuffer" c:type="GstRingBuffer*"/>
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"/>
2037 <parameter name="buf" transfer-ownership="none">
2038 <type name="RingBuffer" c:type="GstRingBuffer*"/>
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*"/>
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"/>
2054 <parameter name="buf" transfer-ownership="none">
2055 <type name="RingBuffer" c:type="GstRingBuffer*"/>
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"/>
2067 <parameter name="buf" transfer-ownership="none">
2068 <type name="RingBuffer" c:type="GstRingBuffer*"/>
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"/>
2080 <parameter name="buf" transfer-ownership="none">
2081 <type name="RingBuffer" c:type="GstRingBuffer*"/>
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"/>
2093 <parameter name="buf" transfer-ownership="none">
2094 <type name="RingBuffer" c:type="GstRingBuffer*"/>
2099 <field name="resume">
2100 <callback name="resume">
2101 <return-value transfer-ownership="none">
2102 <type name="gboolean" c:type="gboolean"/>
2105 <parameter name="buf" transfer-ownership="none">
2106 <type name="RingBuffer" c:type="GstRingBuffer*"/>
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"/>
2118 <parameter name="buf" transfer-ownership="none">
2119 <type name="RingBuffer" c:type="GstRingBuffer*"/>
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"/>
2131 <parameter name="buf" transfer-ownership="none">
2132 <type name="RingBuffer" c:type="GstRingBuffer*"/>
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"/>
2144 <parameter name="buf" transfer-ownership="none">
2145 <type name="RingBuffer" c:type="GstRingBuffer*"/>
2147 <parameter name="active" transfer-ownership="none">
2148 <doc xml:whitespace="preserve">the new mode</doc>
2149 <type name="gboolean" c:type="gboolean"/>
2154 <field name="commit">
2155 <callback name="commit">
2156 <return-value transfer-ownership="none">
2157 <type name="guint" c:type="guint"/>
2160 <parameter name="buf" transfer-ownership="none">
2161 <type name="RingBuffer" c:type="GstRingBuffer*"/>
2163 <parameter name="sample" transfer-ownership="none">
2164 <type name="guint64" c:type="guint64*"/>
2166 <parameter name="data" transfer-ownership="none">
2167 <type name="guint8" c:type="guchar*"/>
2169 <parameter name="in_samples" transfer-ownership="none">
2170 <type name="gint" c:type="gint"/>
2172 <parameter name="out_samples" transfer-ownership="none">
2173 <type name="gint" c:type="gint"/>
2175 <parameter name="accum" transfer-ownership="none">
2176 <type name="gint" c:type="gint*"/>
2181 <field name="clear_all">
2182 <callback name="clear_all">
2183 <return-value transfer-ownership="none">
2184 <type name="none" c:type="void"/>
2187 <parameter name="buf" transfer-ownership="none">
2188 <type name="RingBuffer" c:type="GstRingBuffer*"/>
2193 <field name="_gst_reserved">
2194 <array zero-terminated="0" c:type="gpointer" fixed-size="1">
2195 <type name="gpointer" c:type="gpointer"/>
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"
2206 c:identifier="GST_SEGSTATE_INVALID"
2207 glib:nick="invalid"/>
2208 <member name="empty"
2210 c:identifier="GST_SEGSTATE_EMPTY"
2212 <member name="filled"
2214 c:identifier="GST_SEGSTATE_FILLED"
2215 glib:nick="filled"/>
2216 <member name="partial"
2218 c:identifier="GST_SEGSTATE_PARTIAL"
2219 glib:nick="partial"/>
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*"/>
2226 <field name="type" writable="1">
2227 <type name="BufferFormatType" c:type="GstBufferFormatType"/>
2229 <field name="format" writable="1">
2230 <type name="BufferFormat" c:type="GstBufferFormat"/>
2232 <field name="sign" writable="1">
2233 <type name="gboolean" c:type="gboolean"/>
2235 <field name="bigend" writable="1">
2236 <type name="gboolean" c:type="gboolean"/>
2238 <field name="width" writable="1">
2239 <type name="gint" c:type="gint"/>
2241 <field name="depth" writable="1">
2242 <type name="gint" c:type="gint"/>
2244 <field name="rate" writable="1">
2245 <type name="gint" c:type="gint"/>
2247 <field name="channels" writable="1">
2248 <type name="gint" c:type="gint"/>
2250 <field name="latency_time" writable="1">
2251 <type name="guint64" c:type="guint64"/>
2253 <field name="buffer_time" writable="1">
2254 <type name="guint64" c:type="guint64"/>
2256 <field name="segsize" writable="1">
2257 <type name="gint" c:type="gint"/>
2259 <field name="segtotal" writable="1">
2260 <type name="gint" c:type="gint"/>
2262 <field name="bytes_per_sample" writable="1">
2263 <type name="gint" c:type="gint"/>
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"/>
2270 <field name="seglatency" writable="1">
2271 <type name="gint" c:type="gint"/>
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"/>
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"
2286 c:identifier="GST_RING_BUFFER_STATE_STOPPED"
2287 glib:nick="stopped"/>
2288 <member name="paused"
2290 c:identifier="GST_RING_BUFFER_STATE_PAUSED"
2291 glib:nick="paused"/>
2292 <member name="started"
2294 c:identifier="GST_RING_BUFFER_STATE_STARTED"
2295 glib:nick="started"/>
2297 <function name="audio_buffer_clip"
2298 c:identifier="gst_audio_buffer_clip"
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>
2307 <doc xml:whitespace="preserve">%NULL if the buffer is completely outside the configured segment,</doc>
2308 <type name="Gst.Buffer" c:type="GstBuffer*"/>
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*"/>
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*"/>
2319 <parameter name="rate" transfer-ownership="none">
2320 <doc xml:whitespace="preserve">sample rate.</doc>
2321 <type name="gint" c:type="gint"/>
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"/>
2329 <function name="audio_check_channel_positions"
2330 c:identifier="gst_audio_check_channel_positions"
2332 <doc xml:whitespace="preserve">This functions checks if the given channel positions are valid. Channel
2333 positions are valid if:
2334 <itemizedlist>
2335 <listitem><para>No channel positions appears twice or all positions are %GST_AUDIO_CHANNEL_POSITION_NONE.
2336 </para></listitem>
2337 <listitem><para>Either all or none of the channel positions are %GST_AUDIO_CHANNEL_POSITION_NONE.
2338 </para></listitem>
2339 <listitem><para>%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 </para></listitem>
2341 </itemizedlist>
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"/>
2348 <parameter name="pos" transfer-ownership="none">
2349 <doc xml:whitespace="preserve">An array of #GstAudioChannelPosition.</doc>
2350 <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/>
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"/>
2358 <function name="audio_default_registry_mixer_filter"
2359 c:identifier="gst_audio_default_registry_mixer_filter"
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>
2370 <doc xml:whitespace="preserve">a #GList of audio mixer #GstElement<!-- -->s. You must free each</doc>
2371 <type name="GLib.List" c:type="GList*">
2372 <type name="gpointer" c:type="gpointer"/>
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"/>
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"/>
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"/>
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"/>
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*"/>
2402 <parameter name="buf" transfer-ownership="none">
2403 <doc xml:whitespace="preserve">the #GstBuffer</doc>
2404 <type name="Gst.Buffer" c:type="GstBuffer*"/>
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
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*"/>
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*"/>
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"/>
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*"/>
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"/>
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*"/>
2455 <parameter name="buf" transfer-ownership="none">
2456 <doc xml:whitespace="preserve">the #GstBuffer</doc>
2457 <type name="Gst.Buffer" c:type="GstBuffer*"/>
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*"/>
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*"/>
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"/>
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*"/>
2493 <parameter name="buf" transfer-ownership="none">
2494 <doc xml:whitespace="preserve">the #GstBuffer</doc>
2495 <type name="Gst.Buffer" c:type="GstBuffer*"/>
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"/>
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*"/>
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*"/>
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"/>
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"/>
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*"/>
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*"/>
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"/>
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*"/>
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*"/>
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"/>
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"/>
2583 <parameter name="structure" transfer-ownership="none">
2584 <doc xml:whitespace="preserve">a #GstStructure</doc>
2585 <type name="Gst.Structure" c:type="GstStructure*"/>
2587 <parameter name="flag" transfer-ownership="none">
2588 <doc xml:whitespace="preserve">a set of #GstAudioFieldFlag</doc>
2589 <type name="AudioFieldFlag" c:type="GstAudioFieldFlag"/>