• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<html>
3<head>
4<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5<title>GstAudioRingBuffer: GStreamer Base Plugins 1.0 Library Reference Manual</title>
6<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
8<link rel="up" href="gstreamer-audio.html" title="Audio Library">
9<link rel="prev" href="gst-plugins-base-libs-GstAudioQuantize.html" title="GstAudioQuantize">
10<link rel="next" href="gst-plugins-base-libs-GstAudio-IEC61937.html" title="GstAudio IEC61937">
11<meta name="generator" content="GTK-Doc V1.28 (XML mode)">
12<link rel="stylesheet" href="style.css" type="text/css">
13</head>
14<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
16<td width="100%" align="left" class="shortcuts">
17<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span18                  <a href="#GstAudioRingBuffer.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span19                  <a href="#GstAudioRingBuffer.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
20</td>
21<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
22<td><a accesskey="u" href="gstreamer-audio.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
23<td><a accesskey="p" href="gst-plugins-base-libs-GstAudioQuantize.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
24<td><a accesskey="n" href="gst-plugins-base-libs-GstAudio-IEC61937.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
25</tr></table>
26<div class="refentry">
27<a name="GstAudioRingBuffer"></a><div class="titlepage"></div>
28<div class="refnamediv"><table width="100%"><tr>
29<td valign="top">
30<h2><span class="refentrytitle"><a name="GstAudioRingBuffer.top_of_page"></a>GstAudioRingBuffer</span></h2>
31<p>GstAudioRingBuffer — Base class for audio ringbuffer implementations</p>
32</td>
33<td class="gallery_image" valign="top" align="right"></td>
34</tr></table></div>
35<div class="refsect1">
36<a name="GstAudioRingBuffer.functions"></a><h2>Functions</h2>
37<div class="informaltable"><table class="informaltable" width="100%" border="0">
38<colgroup>
39<col width="150px" class="functions_return">
40<col class="functions_name">
41</colgroup>
42<tbody>
43<tr>
44<td class="function_type">
45<span class="returnvalue">void</span>
46</td>
47<td class="function_name">
48<span class="c_punctuation">(</span><a class="link" href="GstAudioRingBuffer.html#GstAudioRingBufferCallback" title="GstAudioRingBufferCallback ()">*GstAudioRingBufferCallback</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
49</td>
50</tr>
51<tr>
52<td class="define_keyword">#define</td>
53<td class="function_name">
54<a class="link" href="GstAudioRingBuffer.html#GST-AUDIO-RING-BUFFER-BROADCAST:CAPS" title="GST_AUDIO_RING_BUFFER_BROADCAST()">GST_AUDIO_RING_BUFFER_BROADCAST</a><span class="c_punctuation">()</span>
55</td>
56</tr>
57<tr>
58<td class="define_keyword">#define</td>
59<td class="function_name">
60<a class="link" href="GstAudioRingBuffer.html#GST-AUDIO-RING-BUFFER-GET-COND:CAPS" title="GST_AUDIO_RING_BUFFER_GET_COND()">GST_AUDIO_RING_BUFFER_GET_COND</a><span class="c_punctuation">()</span>
61</td>
62</tr>
63<tr>
64<td class="define_keyword">#define</td>
65<td class="function_name">
66<a class="link" href="GstAudioRingBuffer.html#GST-AUDIO-RING-BUFFER-SIGNAL:CAPS" title="GST_AUDIO_RING_BUFFER_SIGNAL()">GST_AUDIO_RING_BUFFER_SIGNAL</a><span class="c_punctuation">()</span>
67</td>
68</tr>
69<tr>
70<td class="define_keyword">#define</td>
71<td class="function_name">
72<a class="link" href="GstAudioRingBuffer.html#GST-AUDIO-RING-BUFFER-WAIT:CAPS" title="GST_AUDIO_RING_BUFFER_WAIT()">GST_AUDIO_RING_BUFFER_WAIT</a><span class="c_punctuation">()</span>
73</td>
74</tr>
75<tr>
76<td class="function_type">
77<span class="returnvalue">void</span>
78</td>
79<td class="function_name">
80<a class="link" href="GstAudioRingBuffer.html#gst-audio-ring-buffer-set-callback" title="gst_audio_ring_buffer_set_callback ()">gst_audio_ring_buffer_set_callback</a> <span class="c_punctuation">()</span>
81</td>
82</tr>
83<tr>
84<td class="function_type">
85<span class="returnvalue">void</span>
86</td>
87<td class="function_name">
88<a class="link" href="GstAudioRingBuffer.html#gst-audio-ring-buffer-set-callback-full" title="gst_audio_ring_buffer_set_callback_full ()">gst_audio_ring_buffer_set_callback_full</a> <span class="c_punctuation">()</span>
89</td>
90</tr>
91<tr>
92<td class="function_type">
93<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
94</td>
95<td class="function_name">
96<a class="link" href="GstAudioRingBuffer.html#gst-audio-ring-buffer-acquire" title="gst_audio_ring_buffer_acquire ()">gst_audio_ring_buffer_acquire</a> <span class="c_punctuation">()</span>
97</td>
98</tr>
99<tr>
100<td class="function_type">
101<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
102</td>
103<td class="function_name">
104<a class="link" href="GstAudioRingBuffer.html#gst-audio-ring-buffer-release" title="gst_audio_ring_buffer_release ()">gst_audio_ring_buffer_release</a> <span class="c_punctuation">()</span>
105</td>
106</tr>
107<tr>
108<td class="function_type">
109<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
110</td>
111<td class="function_name">
112<a class="link" href="GstAudioRingBuffer.html#gst-audio-ring-buffer-is-acquired" title="gst_audio_ring_buffer_is_acquired ()">gst_audio_ring_buffer_is_acquired</a> <span class="c_punctuation">()</span>
113</td>
114</tr>
115<tr>
116<td class="function_type">
117<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
118</td>
119<td class="function_name">
120<a class="link" href="GstAudioRingBuffer.html#gst-audio-ring-buffer-activate" title="gst_audio_ring_buffer_activate ()">gst_audio_ring_buffer_activate</a> <span class="c_punctuation">()</span>
121</td>
122</tr>
123<tr>
124<td class="function_type">
125<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
126</td>
127<td class="function_name">
128<a class="link" href="GstAudioRingBuffer.html#gst-audio-ring-buffer-is-active" title="gst_audio_ring_buffer_is_active ()">gst_audio_ring_buffer_is_active</a> <span class="c_punctuation">()</span>
129</td>
130</tr>
131<tr>
132<td class="function_type">
133<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
134</td>
135<td class="function_name">
136<a class="link" href="GstAudioRingBuffer.html#gst-audio-ring-buffer-start" title="gst_audio_ring_buffer_start ()">gst_audio_ring_buffer_start</a> <span class="c_punctuation">()</span>
137</td>
138</tr>
139<tr>
140<td class="function_type">
141<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
142</td>
143<td class="function_name">
144<a class="link" href="GstAudioRingBuffer.html#gst-audio-ring-buffer-pause" title="gst_audio_ring_buffer_pause ()">gst_audio_ring_buffer_pause</a> <span class="c_punctuation">()</span>
145</td>
146</tr>
147<tr>
148<td class="function_type">
149<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
150</td>
151<td class="function_name">
152<a class="link" href="GstAudioRingBuffer.html#gst-audio-ring-buffer-stop" title="gst_audio_ring_buffer_stop ()">gst_audio_ring_buffer_stop</a> <span class="c_punctuation">()</span>
153</td>
154</tr>
155<tr>
156<td class="function_type">
157<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
158</td>
159<td class="function_name">
160<a class="link" href="GstAudioRingBuffer.html#gst-audio-ring-buffer-delay" title="gst_audio_ring_buffer_delay ()">gst_audio_ring_buffer_delay</a> <span class="c_punctuation">()</span>
161</td>
162</tr>
163<tr>
164<td class="function_type">
165<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>
166</td>
167<td class="function_name">
168<a class="link" href="GstAudioRingBuffer.html#gst-audio-ring-buffer-samples-done" title="gst_audio_ring_buffer_samples_done ()">gst_audio_ring_buffer_samples_done</a> <span class="c_punctuation">()</span>
169</td>
170</tr>
171<tr>
172<td class="function_type">
173<span class="returnvalue">void</span>
174</td>
175<td class="function_name">
176<a class="link" href="GstAudioRingBuffer.html#gst-audio-ring-buffer-set-sample" title="gst_audio_ring_buffer_set_sample ()">gst_audio_ring_buffer_set_sample</a> <span class="c_punctuation">()</span>
177</td>
178</tr>
179<tr>
180<td class="function_type">
181<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
182</td>
183<td class="function_name">
184<a class="link" href="GstAudioRingBuffer.html#gst-audio-ring-buffer-commit" title="gst_audio_ring_buffer_commit ()">gst_audio_ring_buffer_commit</a> <span class="c_punctuation">()</span>
185</td>
186</tr>
187<tr>
188<td class="function_type">
189<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
190</td>
191<td class="function_name">
192<a class="link" href="GstAudioRingBuffer.html#gst-audio-ring-buffer-convert" title="gst_audio_ring_buffer_convert ()">gst_audio_ring_buffer_convert</a> <span class="c_punctuation">()</span>
193</td>
194</tr>
195<tr>
196<td class="function_type">
197<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
198</td>
199<td class="function_name">
200<a class="link" href="GstAudioRingBuffer.html#gst-audio-ring-buffer-prepare-read" title="gst_audio_ring_buffer_prepare_read ()">gst_audio_ring_buffer_prepare_read</a> <span class="c_punctuation">()</span>
201</td>
202</tr>
203<tr>
204<td class="function_type">
205<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
206</td>
207<td class="function_name">
208<a class="link" href="GstAudioRingBuffer.html#gst-audio-ring-buffer-read" title="gst_audio_ring_buffer_read ()">gst_audio_ring_buffer_read</a> <span class="c_punctuation">()</span>
209</td>
210</tr>
211<tr>
212<td class="function_type">
213<span class="returnvalue">void</span>
214</td>
215<td class="function_name">
216<a class="link" href="GstAudioRingBuffer.html#gst-audio-ring-buffer-clear" title="gst_audio_ring_buffer_clear ()">gst_audio_ring_buffer_clear</a> <span class="c_punctuation">()</span>
217</td>
218</tr>
219<tr>
220<td class="function_type">
221<span class="returnvalue">void</span>
222</td>
223<td class="function_name">
224<a class="link" href="GstAudioRingBuffer.html#gst-audio-ring-buffer-clear-all" title="gst_audio_ring_buffer_clear_all ()">gst_audio_ring_buffer_clear_all</a> <span class="c_punctuation">()</span>
225</td>
226</tr>
227<tr>
228<td class="function_type">
229<span class="returnvalue">void</span>
230</td>
231<td class="function_name">
232<a class="link" href="GstAudioRingBuffer.html#gst-audio-ring-buffer-advance" title="gst_audio_ring_buffer_advance ()">gst_audio_ring_buffer_advance</a> <span class="c_punctuation">()</span>
233</td>
234</tr>
235<tr>
236<td class="function_type">
237<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
238</td>
239<td class="function_name">
240<a class="link" href="GstAudioRingBuffer.html#gst-audio-ring-buffer-close-device" title="gst_audio_ring_buffer_close_device ()">gst_audio_ring_buffer_close_device</a> <span class="c_punctuation">()</span>
241</td>
242</tr>
243<tr>
244<td class="function_type">
245<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
246</td>
247<td class="function_name">
248<a class="link" href="GstAudioRingBuffer.html#gst-audio-ring-buffer-open-device" title="gst_audio_ring_buffer_open_device ()">gst_audio_ring_buffer_open_device</a> <span class="c_punctuation">()</span>
249</td>
250</tr>
251<tr>
252<td class="function_type">
253<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
254</td>
255<td class="function_name">
256<a class="link" href="GstAudioRingBuffer.html#gst-audio-ring-buffer-device-is-open" title="gst_audio_ring_buffer_device_is_open ()">gst_audio_ring_buffer_device_is_open</a> <span class="c_punctuation">()</span>
257</td>
258</tr>
259<tr>
260<td class="function_type">
261<span class="returnvalue">void</span>
262</td>
263<td class="function_name">
264<a class="link" href="GstAudioRingBuffer.html#gst-audio-ring-buffer-may-start" title="gst_audio_ring_buffer_may_start ()">gst_audio_ring_buffer_may_start</a> <span class="c_punctuation">()</span>
265</td>
266</tr>
267<tr>
268<td class="function_type">
269<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
270</td>
271<td class="function_name">
272<a class="link" href="GstAudioRingBuffer.html#gst-audio-ring-buffer-parse-caps" title="gst_audio_ring_buffer_parse_caps ()">gst_audio_ring_buffer_parse_caps</a> <span class="c_punctuation">()</span>
273</td>
274</tr>
275<tr>
276<td class="function_type">
277<span class="returnvalue">void</span>
278</td>
279<td class="function_name">
280<a class="link" href="GstAudioRingBuffer.html#gst-audio-ring-buffer-set-flushing" title="gst_audio_ring_buffer_set_flushing ()">gst_audio_ring_buffer_set_flushing</a> <span class="c_punctuation">()</span>
281</td>
282</tr>
283<tr>
284<td class="function_type">
285<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
286</td>
287<td class="function_name">
288<a class="link" href="GstAudioRingBuffer.html#gst-audio-ring-buffer-is-flushing" title="gst_audio_ring_buffer_is_flushing ()">gst_audio_ring_buffer_is_flushing</a> <span class="c_punctuation">()</span>
289</td>
290</tr>
291<tr>
292<td class="function_type">
293<span class="returnvalue">void</span>
294</td>
295<td class="function_name">
296<a class="link" href="GstAudioRingBuffer.html#gst-audio-ring-buffer-set-channel-positions" title="gst_audio_ring_buffer_set_channel_positions ()">gst_audio_ring_buffer_set_channel_positions</a> <span class="c_punctuation">()</span>
297</td>
298</tr>
299<tr>
300<td class="function_type">
301<span class="returnvalue">void</span>
302</td>
303<td class="function_name">
304<a class="link" href="GstAudioRingBuffer.html#gst-audio-ring-buffer-set-timestamp" title="gst_audio_ring_buffer_set_timestamp ()">gst_audio_ring_buffer_set_timestamp</a> <span class="c_punctuation">()</span>
305</td>
306</tr>
307</tbody>
308</table></div>
309</div>
310<div class="refsect1">
311<a name="GstAudioRingBuffer.other"></a><h2>Types and Values</h2>
312<div class="informaltable"><table class="informaltable" width="100%" border="0">
313<colgroup>
314<col width="150px" class="name">
315<col class="description">
316</colgroup>
317<tbody>
318<tr>
319<td class="datatype_keyword">struct</td>
320<td class="function_name"><a class="link" href="GstAudioRingBuffer.html#GstAudioRingBuffer-struct" title="struct GstAudioRingBuffer">GstAudioRingBuffer</a></td>
321</tr>
322<tr>
323<td class="datatype_keyword">struct</td>
324<td class="function_name"><a class="link" href="GstAudioRingBuffer.html#GstAudioRingBufferClass" title="struct GstAudioRingBufferClass">GstAudioRingBufferClass</a></td>
325</tr>
326<tr>
327<td class="datatype_keyword">struct</td>
328<td class="function_name"><a class="link" href="GstAudioRingBuffer.html#GstAudioRingBufferSpec" title="struct GstAudioRingBufferSpec">GstAudioRingBufferSpec</a></td>
329</tr>
330<tr>
331<td class="datatype_keyword">enum</td>
332<td class="function_name"><a class="link" href="GstAudioRingBuffer.html#GstAudioRingBufferState" title="enum GstAudioRingBufferState">GstAudioRingBufferState</a></td>
333</tr>
334<tr>
335<td class="datatype_keyword">enum</td>
336<td class="function_name"><a class="link" href="GstAudioRingBuffer.html#GstAudioRingBufferFormatType" title="enum GstAudioRingBufferFormatType">GstAudioRingBufferFormatType</a></td>
337</tr>
338</tbody>
339</table></div>
340</div>
341<div class="refsect1">
342<a name="GstAudioRingBuffer.object-hierarchy"></a><h2>Object Hierarchy</h2>
343<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
344    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
345        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstObject.html#GstObject-struct">GstObject</a>
346            <span class="lineart">╰──</span> GstAudioRingBuffer
347</pre>
348</div>
349<div class="refsect1">
350<a name="GstAudioRingBuffer.includes"></a><h2>Includes</h2>
351<pre class="synopsis">#include &lt;gst/audio/audio.h&gt;
352</pre>
353</div>
354<div class="refsect1">
355<a name="GstAudioRingBuffer.description"></a><h2>Description</h2>
356<p>This object is the base class for audio ringbuffers used by the base
357audio source and sink classes.</p>
358<p>The ringbuffer abstracts a circular buffer of data. One reader and
359one writer can operate on the data from different threads in a lockfree
360manner. The base class is sufficiently flexible to be used as an
361abstraction for DMA based ringbuffers as well as a pure software
362implementations.</p>
363</div>
364<div class="refsect1">
365<a name="GstAudioRingBuffer.functions_details"></a><h2>Functions</h2>
366<div class="refsect2">
367<a name="GstAudioRingBufferCallback"></a><h3>GstAudioRingBufferCallback ()</h3>
368<pre class="programlisting"><span class="returnvalue">void</span>
369<span class="c_punctuation">(</span>*GstAudioRingBufferCallback<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *rbuf</code></em>,
370                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
371                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>,
372                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
373<p>This function is set with <a class="link" href="GstAudioRingBuffer.html#gst-audio-ring-buffer-set-callback" title="gst_audio_ring_buffer_set_callback ()"><code class="function">gst_audio_ring_buffer_set_callback()</code></a> and is
374called to fill the memory at <em class="parameter"><code>data</code></em>
375 with <em class="parameter"><code>len</code></em>
376 bytes of samples.</p>
377<div class="refsect3">
378<a name="GstAudioRingBufferCallback.parameters"></a><h4>Parameters</h4>
379<div class="informaltable"><table class="informaltable" width="100%" border="0">
380<colgroup>
381<col width="150px" class="parameters_name">
382<col class="parameters_description">
383<col width="200px" class="parameters_annotations">
384</colgroup>
385<tbody>
386<tr>
387<td class="parameter_name"><p>rbuf</p></td>
388<td class="parameter_description"><p>a <a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a></p></td>
389<td class="parameter_annotations"> </td>
390</tr>
391<tr>
392<td class="parameter_name"><p>data</p></td>
393<td class="parameter_description"><p>target to fill. </p></td>
394<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=len]</span></td>
395</tr>
396<tr>
397<td class="parameter_name"><p>len</p></td>
398<td class="parameter_description"><p>amount to fill</p></td>
399<td class="parameter_annotations"> </td>
400</tr>
401<tr>
402<td class="parameter_name"><p>user_data</p></td>
403<td class="parameter_description"><p>user data</p></td>
404<td class="parameter_annotations"> </td>
405</tr>
406</tbody>
407</table></div>
408</div>
409</div>
410<hr>
411<div class="refsect2">
412<a name="GST-AUDIO-RING-BUFFER-BROADCAST:CAPS"></a><h3>GST_AUDIO_RING_BUFFER_BROADCAST()</h3>
413<pre class="programlisting">#define GST_AUDIO_RING_BUFFER_BROADCAST(buf)(g_cond_broadcast (GST_AUDIO_RING_BUFFER_GET_COND (buf)))
414</pre>
415</div>
416<hr>
417<div class="refsect2">
418<a name="GST-AUDIO-RING-BUFFER-GET-COND:CAPS"></a><h3>GST_AUDIO_RING_BUFFER_GET_COND()</h3>
419<pre class="programlisting">#define GST_AUDIO_RING_BUFFER_GET_COND(buf) (&amp;(((GstAudioRingBuffer *)buf)-&gt;cond))
420</pre>
421</div>
422<hr>
423<div class="refsect2">
424<a name="GST-AUDIO-RING-BUFFER-SIGNAL:CAPS"></a><h3>GST_AUDIO_RING_BUFFER_SIGNAL()</h3>
425<pre class="programlisting">#define GST_AUDIO_RING_BUFFER_SIGNAL(buf)   (g_cond_signal (GST_AUDIO_RING_BUFFER_GET_COND (buf)))
426</pre>
427</div>
428<hr>
429<div class="refsect2">
430<a name="GST-AUDIO-RING-BUFFER-WAIT:CAPS"></a><h3>GST_AUDIO_RING_BUFFER_WAIT()</h3>
431<pre class="programlisting">#define GST_AUDIO_RING_BUFFER_WAIT(buf)     (g_cond_wait (GST_AUDIO_RING_BUFFER_GET_COND (buf), GST_OBJECT_GET_LOCK (buf)))
432</pre>
433</div>
434<hr>
435<div class="refsect2">
436<a name="gst-audio-ring-buffer-set-callback"></a><h3>gst_audio_ring_buffer_set_callback ()</h3>
437<pre class="programlisting"><span class="returnvalue">void</span>
438gst_audio_ring_buffer_set_callback (<em class="parameter"><code><a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>,
439                                    <em class="parameter"><code><a class="link" href="GstAudioRingBuffer.html#GstAudioRingBufferCallback" title="GstAudioRingBufferCallback ()"><span class="type">GstAudioRingBufferCallback</span></a> cb</code></em>,
440                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
441<p>Sets the given callback function on the buffer. This function
442will be called every time a segment has been written to a device.</p>
443<p>MT safe.</p>
444<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
445<div class="refsect3">
446<a name="gst-audio-ring-buffer-set-callback.parameters"></a><h4>Parameters</h4>
447<div class="informaltable"><table class="informaltable" width="100%" border="0">
448<colgroup>
449<col width="150px" class="parameters_name">
450<col class="parameters_description">
451<col width="200px" class="parameters_annotations">
452</colgroup>
453<tbody>
454<tr>
455<td class="parameter_name"><p>buf</p></td>
456<td class="parameter_description"><p>the <a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to set the callback on</p></td>
457<td class="parameter_annotations"> </td>
458</tr>
459<tr>
460<td class="parameter_name"><p>cb</p></td>
461<td class="parameter_description"><p>the callback to set. </p></td>
462<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
463</tr>
464<tr>
465<td class="parameter_name"><p>user_data</p></td>
466<td class="parameter_description"><p>user data passed to the callback</p></td>
467<td class="parameter_annotations"> </td>
468</tr>
469</tbody>
470</table></div>
471</div>
472</div>
473<hr>
474<div class="refsect2">
475<a name="gst-audio-ring-buffer-set-callback-full"></a><h3>gst_audio_ring_buffer_set_callback_full ()</h3>
476<pre class="programlisting"><span class="returnvalue">void</span>
477gst_audio_ring_buffer_set_callback_full
478                               (<em class="parameter"><code><a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>,
479                                <em class="parameter"><code><a class="link" href="GstAudioRingBuffer.html#GstAudioRingBufferCallback" title="GstAudioRingBufferCallback ()"><span class="type">GstAudioRingBufferCallback</span></a> cb</code></em>,
480                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
481                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
482<p>Sets the given callback function on the buffer. This function
483will be called every time a segment has been written to a device.</p>
484<p>MT safe.</p>
485<p><span class="annotation">[<acronym title="Rename the original symbol's name to SYMBOL."><span class="acronym">rename-to</span></acronym> gst_audio_ring_buffer_set_callback]</span></p>
486<div class="refsect3">
487<a name="gst-audio-ring-buffer-set-callback-full.parameters"></a><h4>Parameters</h4>
488<div class="informaltable"><table class="informaltable" width="100%" border="0">
489<colgroup>
490<col width="150px" class="parameters_name">
491<col class="parameters_description">
492<col width="200px" class="parameters_annotations">
493</colgroup>
494<tbody>
495<tr>
496<td class="parameter_name"><p>buf</p></td>
497<td class="parameter_description"><p>the <a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to set the callback on</p></td>
498<td class="parameter_annotations"> </td>
499</tr>
500<tr>
501<td class="parameter_name"><p>cb</p></td>
502<td class="parameter_description"><p>the callback to set. </p></td>
503<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
504</tr>
505<tr>
506<td class="parameter_name"><p>user_data</p></td>
507<td class="parameter_description"><p>user data passed to the callback</p></td>
508<td class="parameter_annotations"> </td>
509</tr>
510<tr>
511<td class="parameter_name"><p>notify</p></td>
512<td class="parameter_description"><p>function to be called when <em class="parameter"><code>user_data</code></em>
513is no longer needed</p></td>
514<td class="parameter_annotations"> </td>
515</tr>
516</tbody>
517</table></div>
518</div>
519<p class="since">Since: <a class="link" href="ix05.html#api-index-1.12">1.12</a></p>
520</div>
521<hr>
522<div class="refsect2">
523<a name="gst-audio-ring-buffer-acquire"></a><h3>gst_audio_ring_buffer_acquire ()</h3>
524<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
525gst_audio_ring_buffer_acquire (<em class="parameter"><code><a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>,
526                               <em class="parameter"><code><a class="link" href="GstAudioRingBuffer.html#GstAudioRingBufferSpec" title="struct GstAudioRingBufferSpec"><span class="type">GstAudioRingBufferSpec</span></a> *spec</code></em>);</pre>
527<p>Allocate the resources for the ringbuffer. This function fills
528in the data pointer of the ring buffer with a valid <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a>
529to which samples can be written.</p>
530<div class="refsect3">
531<a name="gst-audio-ring-buffer-acquire.parameters"></a><h4>Parameters</h4>
532<div class="informaltable"><table class="informaltable" width="100%" border="0">
533<colgroup>
534<col width="150px" class="parameters_name">
535<col class="parameters_description">
536<col width="200px" class="parameters_annotations">
537</colgroup>
538<tbody>
539<tr>
540<td class="parameter_name"><p>buf</p></td>
541<td class="parameter_description"><p>the <a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to acquire</p></td>
542<td class="parameter_annotations"> </td>
543</tr>
544<tr>
545<td class="parameter_name"><p>spec</p></td>
546<td class="parameter_description"><p>the specs of the buffer</p></td>
547<td class="parameter_annotations"> </td>
548</tr>
549</tbody>
550</table></div>
551</div>
552<div class="refsect3">
553<a name="gst-audio-ring-buffer-acquire.returns"></a><h4>Returns</h4>
554<p> TRUE if the device could be acquired, FALSE on error.</p>
555<p>MT safe.</p>
556</div>
557</div>
558<hr>
559<div class="refsect2">
560<a name="gst-audio-ring-buffer-release"></a><h3>gst_audio_ring_buffer_release ()</h3>
561<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
562gst_audio_ring_buffer_release (<em class="parameter"><code><a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
563<p>Free the resources of the ringbuffer.</p>
564<div class="refsect3">
565<a name="gst-audio-ring-buffer-release.parameters"></a><h4>Parameters</h4>
566<div class="informaltable"><table class="informaltable" width="100%" border="0">
567<colgroup>
568<col width="150px" class="parameters_name">
569<col class="parameters_description">
570<col width="200px" class="parameters_annotations">
571</colgroup>
572<tbody><tr>
573<td class="parameter_name"><p>buf</p></td>
574<td class="parameter_description"><p>the <a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to release</p></td>
575<td class="parameter_annotations"> </td>
576</tr></tbody>
577</table></div>
578</div>
579<div class="refsect3">
580<a name="gst-audio-ring-buffer-release.returns"></a><h4>Returns</h4>
581<p> TRUE if the device could be released, FALSE on error.</p>
582<p>MT safe.</p>
583</div>
584</div>
585<hr>
586<div class="refsect2">
587<a name="gst-audio-ring-buffer-is-acquired"></a><h3>gst_audio_ring_buffer_is_acquired ()</h3>
588<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
589gst_audio_ring_buffer_is_acquired (<em class="parameter"><code><a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
590<p>Check if the ringbuffer is acquired and ready to use.</p>
591<div class="refsect3">
592<a name="gst-audio-ring-buffer-is-acquired.parameters"></a><h4>Parameters</h4>
593<div class="informaltable"><table class="informaltable" width="100%" border="0">
594<colgroup>
595<col width="150px" class="parameters_name">
596<col class="parameters_description">
597<col width="200px" class="parameters_annotations">
598</colgroup>
599<tbody><tr>
600<td class="parameter_name"><p>buf</p></td>
601<td class="parameter_description"><p>the <a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to check</p></td>
602<td class="parameter_annotations"> </td>
603</tr></tbody>
604</table></div>
605</div>
606<div class="refsect3">
607<a name="gst-audio-ring-buffer-is-acquired.returns"></a><h4>Returns</h4>
608<p> TRUE if the ringbuffer is acquired, FALSE on error.</p>
609<p>MT safe.</p>
610</div>
611</div>
612<hr>
613<div class="refsect2">
614<a name="gst-audio-ring-buffer-activate"></a><h3>gst_audio_ring_buffer_activate ()</h3>
615<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
616gst_audio_ring_buffer_activate (<em class="parameter"><code><a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>,
617                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> active</code></em>);</pre>
618<p>Activate <em class="parameter"><code>buf</code></em>
619 to start or stop pulling data.</p>
620<p>MT safe.</p>
621<div class="refsect3">
622<a name="gst-audio-ring-buffer-activate.parameters"></a><h4>Parameters</h4>
623<div class="informaltable"><table class="informaltable" width="100%" border="0">
624<colgroup>
625<col width="150px" class="parameters_name">
626<col class="parameters_description">
627<col width="200px" class="parameters_annotations">
628</colgroup>
629<tbody>
630<tr>
631<td class="parameter_name"><p>buf</p></td>
632<td class="parameter_description"><p>the <a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to activate</p></td>
633<td class="parameter_annotations"> </td>
634</tr>
635<tr>
636<td class="parameter_name"><p>active</p></td>
637<td class="parameter_description"><p>the new mode</p></td>
638<td class="parameter_annotations"> </td>
639</tr>
640</tbody>
641</table></div>
642</div>
643<div class="refsect3">
644<a name="gst-audio-ring-buffer-activate.returns"></a><h4>Returns</h4>
645<p> TRUE if the device could be activated in the requested mode,
646FALSE on error.</p>
647</div>
648</div>
649<hr>
650<div class="refsect2">
651<a name="gst-audio-ring-buffer-is-active"></a><h3>gst_audio_ring_buffer_is_active ()</h3>
652<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
653gst_audio_ring_buffer_is_active (<em class="parameter"><code><a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
654<p>Check if <em class="parameter"><code>buf</code></em>
655 is activated.</p>
656<p>MT safe.</p>
657<div class="refsect3">
658<a name="gst-audio-ring-buffer-is-active.parameters"></a><h4>Parameters</h4>
659<div class="informaltable"><table class="informaltable" width="100%" border="0">
660<colgroup>
661<col width="150px" class="parameters_name">
662<col class="parameters_description">
663<col width="200px" class="parameters_annotations">
664</colgroup>
665<tbody><tr>
666<td class="parameter_name"><p>buf</p></td>
667<td class="parameter_description"><p>the <a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a></p></td>
668<td class="parameter_annotations"> </td>
669</tr></tbody>
670</table></div>
671</div>
672<div class="refsect3">
673<a name="gst-audio-ring-buffer-is-active.returns"></a><h4>Returns</h4>
674<p> TRUE if the device is active.</p>
675</div>
676</div>
677<hr>
678<div class="refsect2">
679<a name="gst-audio-ring-buffer-start"></a><h3>gst_audio_ring_buffer_start ()</h3>
680<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
681gst_audio_ring_buffer_start (<em class="parameter"><code><a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
682<p>Start processing samples from the ringbuffer.</p>
683<div class="refsect3">
684<a name="gst-audio-ring-buffer-start.parameters"></a><h4>Parameters</h4>
685<div class="informaltable"><table class="informaltable" width="100%" border="0">
686<colgroup>
687<col width="150px" class="parameters_name">
688<col class="parameters_description">
689<col width="200px" class="parameters_annotations">
690</colgroup>
691<tbody><tr>
692<td class="parameter_name"><p>buf</p></td>
693<td class="parameter_description"><p>the <a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to start</p></td>
694<td class="parameter_annotations"> </td>
695</tr></tbody>
696</table></div>
697</div>
698<div class="refsect3">
699<a name="gst-audio-ring-buffer-start.returns"></a><h4>Returns</h4>
700<p> TRUE if the device could be started, FALSE on error.</p>
701<p>MT safe.</p>
702</div>
703</div>
704<hr>
705<div class="refsect2">
706<a name="gst-audio-ring-buffer-pause"></a><h3>gst_audio_ring_buffer_pause ()</h3>
707<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
708gst_audio_ring_buffer_pause (<em class="parameter"><code><a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
709<p>Pause processing samples from the ringbuffer.</p>
710<div class="refsect3">
711<a name="gst-audio-ring-buffer-pause.parameters"></a><h4>Parameters</h4>
712<div class="informaltable"><table class="informaltable" width="100%" border="0">
713<colgroup>
714<col width="150px" class="parameters_name">
715<col class="parameters_description">
716<col width="200px" class="parameters_annotations">
717</colgroup>
718<tbody><tr>
719<td class="parameter_name"><p>buf</p></td>
720<td class="parameter_description"><p>the <a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to pause</p></td>
721<td class="parameter_annotations"> </td>
722</tr></tbody>
723</table></div>
724</div>
725<div class="refsect3">
726<a name="gst-audio-ring-buffer-pause.returns"></a><h4>Returns</h4>
727<p> TRUE if the device could be paused, FALSE on error.</p>
728<p>MT safe.</p>
729</div>
730</div>
731<hr>
732<div class="refsect2">
733<a name="gst-audio-ring-buffer-stop"></a><h3>gst_audio_ring_buffer_stop ()</h3>
734<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
735gst_audio_ring_buffer_stop (<em class="parameter"><code><a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
736<p>Stop processing samples from the ringbuffer.</p>
737<div class="refsect3">
738<a name="gst-audio-ring-buffer-stop.parameters"></a><h4>Parameters</h4>
739<div class="informaltable"><table class="informaltable" width="100%" border="0">
740<colgroup>
741<col width="150px" class="parameters_name">
742<col class="parameters_description">
743<col width="200px" class="parameters_annotations">
744</colgroup>
745<tbody><tr>
746<td class="parameter_name"><p>buf</p></td>
747<td class="parameter_description"><p>the <a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to stop</p></td>
748<td class="parameter_annotations"> </td>
749</tr></tbody>
750</table></div>
751</div>
752<div class="refsect3">
753<a name="gst-audio-ring-buffer-stop.returns"></a><h4>Returns</h4>
754<p> TRUE if the device could be stopped, FALSE on error.</p>
755<p>MT safe.</p>
756</div>
757</div>
758<hr>
759<div class="refsect2">
760<a name="gst-audio-ring-buffer-delay"></a><h3>gst_audio_ring_buffer_delay ()</h3>
761<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
762gst_audio_ring_buffer_delay (<em class="parameter"><code><a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
763<p>Get the number of samples queued in the audio device. This is
764usually less than the segment size but can be bigger when the
765implementation uses another internal buffer between the audio
766device.</p>
767<p>For playback ringbuffers this is the amount of samples transfered from the
768ringbuffer to the device but still not played.</p>
769<p>For capture ringbuffers this is the amount of samples in the device that are
770not yet transfered to the ringbuffer.</p>
771<div class="refsect3">
772<a name="gst-audio-ring-buffer-delay.parameters"></a><h4>Parameters</h4>
773<div class="informaltable"><table class="informaltable" width="100%" border="0">
774<colgroup>
775<col width="150px" class="parameters_name">
776<col class="parameters_description">
777<col width="200px" class="parameters_annotations">
778</colgroup>
779<tbody><tr>
780<td class="parameter_name"><p>buf</p></td>
781<td class="parameter_description"><p>the <a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to query</p></td>
782<td class="parameter_annotations"> </td>
783</tr></tbody>
784</table></div>
785</div>
786<div class="refsect3">
787<a name="gst-audio-ring-buffer-delay.returns"></a><h4>Returns</h4>
788<p> The number of samples queued in the audio device.</p>
789<p>MT safe.</p>
790</div>
791</div>
792<hr>
793<div class="refsect2">
794<a name="gst-audio-ring-buffer-samples-done"></a><h3>gst_audio_ring_buffer_samples_done ()</h3>
795<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>
796gst_audio_ring_buffer_samples_done (<em class="parameter"><code><a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
797<p>Get the number of samples that were processed by the ringbuffer
798since it was last started. This does not include the number of samples not
799yet processed (see <a class="link" href="GstAudioRingBuffer.html#gst-audio-ring-buffer-delay" title="gst_audio_ring_buffer_delay ()"><code class="function">gst_audio_ring_buffer_delay()</code></a>).</p>
800<div class="refsect3">
801<a name="gst-audio-ring-buffer-samples-done.parameters"></a><h4>Parameters</h4>
802<div class="informaltable"><table class="informaltable" width="100%" border="0">
803<colgroup>
804<col width="150px" class="parameters_name">
805<col class="parameters_description">
806<col width="200px" class="parameters_annotations">
807</colgroup>
808<tbody><tr>
809<td class="parameter_name"><p>buf</p></td>
810<td class="parameter_description"><p>the <a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to query</p></td>
811<td class="parameter_annotations"> </td>
812</tr></tbody>
813</table></div>
814</div>
815<div class="refsect3">
816<a name="gst-audio-ring-buffer-samples-done.returns"></a><h4>Returns</h4>
817<p> The number of samples processed by the ringbuffer.</p>
818<p>MT safe.</p>
819</div>
820</div>
821<hr>
822<div class="refsect2">
823<a name="gst-audio-ring-buffer-set-sample"></a><h3>gst_audio_ring_buffer_set_sample ()</h3>
824<pre class="programlisting"><span class="returnvalue">void</span>
825gst_audio_ring_buffer_set_sample (<em class="parameter"><code><a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>,
826                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> sample</code></em>);</pre>
827<p>Make sure that the next sample written to the device is
828accounted for as being the <em class="parameter"><code>sample</code></em>
829 sample written to the
830device. This value will be used in reporting the current
831sample position of the ringbuffer.</p>
832<p>This function will also clear the buffer with silence.</p>
833<p>MT safe.</p>
834<div class="refsect3">
835<a name="gst-audio-ring-buffer-set-sample.parameters"></a><h4>Parameters</h4>
836<div class="informaltable"><table class="informaltable" width="100%" border="0">
837<colgroup>
838<col width="150px" class="parameters_name">
839<col class="parameters_description">
840<col width="200px" class="parameters_annotations">
841</colgroup>
842<tbody>
843<tr>
844<td class="parameter_name"><p>buf</p></td>
845<td class="parameter_description"><p>the <a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to use</p></td>
846<td class="parameter_annotations"> </td>
847</tr>
848<tr>
849<td class="parameter_name"><p>sample</p></td>
850<td class="parameter_description"><p>the sample number to set</p></td>
851<td class="parameter_annotations"> </td>
852</tr>
853</tbody>
854</table></div>
855</div>
856</div>
857<hr>
858<div class="refsect2">
859<a name="gst-audio-ring-buffer-commit"></a><h3>gst_audio_ring_buffer_commit ()</h3>
860<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
861gst_audio_ring_buffer_commit (<em class="parameter"><code><a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>,
862                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *sample</code></em>,
863                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
864                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> in_samples</code></em>,
865                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> out_samples</code></em>,
866                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *accum</code></em>);</pre>
867<p>Commit <em class="parameter"><code>in_samples</code></em>
868 samples pointed to by <em class="parameter"><code>data</code></em>
869 to the ringbuffer <em class="parameter"><code>buf</code></em>
870.</p>
871<p><em class="parameter"><code>in_samples</code></em>
872 and <em class="parameter"><code>out_samples</code></em>
873 define the rate conversion to perform on the
874samples in <em class="parameter"><code>data</code></em>
875. For negative rates, <em class="parameter"><code>out_samples</code></em>
876 must be negative and
877<em class="parameter"><code>in_samples</code></em>
878 positive.</p>
879<p>When <em class="parameter"><code>out_samples</code></em>
880 is positive, the first sample will be written at position <em class="parameter"><code>sample</code></em>
881
882in the ringbuffer. When <em class="parameter"><code>out_samples</code></em>
883 is negative, the last sample will be written to
884<em class="parameter"><code>sample</code></em>
885 in reverse order.</p>
886<p><em class="parameter"><code>out_samples</code></em>
887 does not need to be a multiple of the segment size of the ringbuffer
888although it is recommended for optimal performance.</p>
889<p><em class="parameter"><code>accum</code></em>
890 will hold a temporary accumulator used in rate conversion and should be
891set to 0 when this function is first called. In case the commit operation is
892interrupted, one can resume the processing by passing the previously returned
893<em class="parameter"><code>accum</code></em>
894 value back to this function.</p>
895<p>MT safe.</p>
896<div class="refsect3">
897<a name="gst-audio-ring-buffer-commit.parameters"></a><h4>Parameters</h4>
898<div class="informaltable"><table class="informaltable" width="100%" border="0">
899<colgroup>
900<col width="150px" class="parameters_name">
901<col class="parameters_description">
902<col width="200px" class="parameters_annotations">
903</colgroup>
904<tbody>
905<tr>
906<td class="parameter_name"><p>buf</p></td>
907<td class="parameter_description"><p>the <a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to commit</p></td>
908<td class="parameter_annotations"> </td>
909</tr>
910<tr>
911<td class="parameter_name"><p>sample</p></td>
912<td class="parameter_description"><p>the sample position of the data</p></td>
913<td class="parameter_annotations"> </td>
914</tr>
915<tr>
916<td class="parameter_name"><p>data</p></td>
917<td class="parameter_description"><p>the data to commit. </p></td>
918<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=in_samples]</span></td>
919</tr>
920<tr>
921<td class="parameter_name"><p>in_samples</p></td>
922<td class="parameter_description"><p>the number of samples in the data to commit</p></td>
923<td class="parameter_annotations"> </td>
924</tr>
925<tr>
926<td class="parameter_name"><p>out_samples</p></td>
927<td class="parameter_description"><p>the number of samples to write to the ringbuffer</p></td>
928<td class="parameter_annotations"> </td>
929</tr>
930<tr>
931<td class="parameter_name"><p>accum</p></td>
932<td class="parameter_description"><p>accumulator for rate conversion. </p></td>
933<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>]</span></td>
934</tr>
935</tbody>
936</table></div>
937</div>
938<div class="refsect3">
939<a name="gst-audio-ring-buffer-commit.returns"></a><h4>Returns</h4>
940<p> The number of samples written to the ringbuffer or -1 on error. The
941number of samples written can be less than <em class="parameter"><code>out_samples</code></em>
942when <em class="parameter"><code>buf</code></em>
943was interrupted
944with a flush or stop.</p>
945</div>
946</div>
947<hr>
948<div class="refsect2">
949<a name="gst-audio-ring-buffer-convert"></a><h3>gst_audio_ring_buffer_convert ()</h3>
950<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
951gst_audio_ring_buffer_convert (<em class="parameter"><code><a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>,
952                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> src_fmt</code></em>,
953                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> src_val</code></em>,
954                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> dest_fmt</code></em>,
955                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *dest_val</code></em>);</pre>
956<p>Convert <em class="parameter"><code>src_val</code></em>
957 in <em class="parameter"><code>src_fmt</code></em>
958 to the equivalent value in <em class="parameter"><code>dest_fmt</code></em>
959. The result
960will be put in <em class="parameter"><code>dest_val</code></em>
961.</p>
962<div class="refsect3">
963<a name="gst-audio-ring-buffer-convert.parameters"></a><h4>Parameters</h4>
964<div class="informaltable"><table class="informaltable" width="100%" border="0">
965<colgroup>
966<col width="150px" class="parameters_name">
967<col class="parameters_description">
968<col width="200px" class="parameters_annotations">
969</colgroup>
970<tbody>
971<tr>
972<td class="parameter_name"><p>buf</p></td>
973<td class="parameter_description"><p>the <a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a></p></td>
974<td class="parameter_annotations"> </td>
975</tr>
976<tr>
977<td class="parameter_name"><p>src_fmt</p></td>
978<td class="parameter_description"><p>the source format</p></td>
979<td class="parameter_annotations"> </td>
980</tr>
981<tr>
982<td class="parameter_name"><p>src_val</p></td>
983<td class="parameter_description"><p>the source value</p></td>
984<td class="parameter_annotations"> </td>
985</tr>
986<tr>
987<td class="parameter_name"><p>dest_fmt</p></td>
988<td class="parameter_description"><p>the destination format</p></td>
989<td class="parameter_annotations"> </td>
990</tr>
991<tr>
992<td class="parameter_name"><p>dest_val</p></td>
993<td class="parameter_description"><p>a location to store the converted value. </p></td>
994<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
995</tr>
996</tbody>
997</table></div>
998</div>
999<div class="refsect3">
1000<a name="gst-audio-ring-buffer-convert.returns"></a><h4>Returns</h4>
1001<p> TRUE if the conversion succeeded.</p>
1002</div>
1003</div>
1004<hr>
1005<div class="refsect2">
1006<a name="gst-audio-ring-buffer-prepare-read"></a><h3>gst_audio_ring_buffer_prepare_read ()</h3>
1007<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
1008gst_audio_ring_buffer_prepare_read (<em class="parameter"><code><a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>,
1009                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *segment</code></em>,
1010                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **readptr</code></em>,
1011                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *len</code></em>);</pre>
1012<p>Returns a pointer to memory where the data from segment <em class="parameter"><code>segment</code></em>
1013
1014can be found. This function is mostly used by subclasses.</p>
1015<div class="refsect3">
1016<a name="gst-audio-ring-buffer-prepare-read.parameters"></a><h4>Parameters</h4>
1017<div class="informaltable"><table class="informaltable" width="100%" border="0">
1018<colgroup>
1019<col width="150px" class="parameters_name">
1020<col class="parameters_description">
1021<col width="200px" class="parameters_annotations">
1022</colgroup>
1023<tbody>
1024<tr>
1025<td class="parameter_name"><p>buf</p></td>
1026<td class="parameter_description"><p>the <a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to read from</p></td>
1027<td class="parameter_annotations"> </td>
1028</tr>
1029<tr>
1030<td class="parameter_name"><p>segment</p></td>
1031<td class="parameter_description"><p>the segment to read. </p></td>
1032<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
1033</tr>
1034<tr>
1035<td class="parameter_name"><p>readptr</p></td>
1036<td class="parameter_description"><p>the pointer to the memory where samples can be read. </p></td>
1037<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=len]</span></td>
1038</tr>
1039<tr>
1040<td class="parameter_name"><p>len</p></td>
1041<td class="parameter_description"><p>the number of bytes to read. </p></td>
1042<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
1043</tr>
1044</tbody>
1045</table></div>
1046</div>
1047<div class="refsect3">
1048<a name="gst-audio-ring-buffer-prepare-read.returns"></a><h4>Returns</h4>
1049<p> FALSE if the buffer is not started.</p>
1050<p>MT safe.</p>
1051</div>
1052</div>
1053<hr>
1054<div class="refsect2">
1055<a name="gst-audio-ring-buffer-read"></a><h3>gst_audio_ring_buffer_read ()</h3>
1056<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
1057gst_audio_ring_buffer_read (<em class="parameter"><code><a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>,
1058                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> sample</code></em>,
1059                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
1060                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>,
1061                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *timestamp</code></em>);</pre>
1062<p>Read <em class="parameter"><code>len</code></em>
1063 samples from the ringbuffer into the memory pointed
1064to by <em class="parameter"><code>data</code></em>
1065.
1066The first sample should be read from position <em class="parameter"><code>sample</code></em>
1067 in
1068the ringbuffer.</p>
1069<p><em class="parameter"><code>len</code></em>
1070 should not be a multiple of the segment size of the ringbuffer
1071although it is recommended.</p>
1072<p><em class="parameter"><code>timestamp</code></em>
1073 will return the timestamp associated with the data returned.</p>
1074<div class="refsect3">
1075<a name="gst-audio-ring-buffer-read.parameters"></a><h4>Parameters</h4>
1076<div class="informaltable"><table class="informaltable" width="100%" border="0">
1077<colgroup>
1078<col width="150px" class="parameters_name">
1079<col class="parameters_description">
1080<col width="200px" class="parameters_annotations">
1081</colgroup>
1082<tbody>
1083<tr>
1084<td class="parameter_name"><p>buf</p></td>
1085<td class="parameter_description"><p>the <a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to read from</p></td>
1086<td class="parameter_annotations"> </td>
1087</tr>
1088<tr>
1089<td class="parameter_name"><p>sample</p></td>
1090<td class="parameter_description"><p>the sample position of the data</p></td>
1091<td class="parameter_annotations"> </td>
1092</tr>
1093<tr>
1094<td class="parameter_name"><p>data</p></td>
1095<td class="parameter_description"><p>where the data should be read. </p></td>
1096<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=len]</span></td>
1097</tr>
1098<tr>
1099<td class="parameter_name"><p>len</p></td>
1100<td class="parameter_description"><p>the number of samples in data to read</p></td>
1101<td class="parameter_annotations"> </td>
1102</tr>
1103<tr>
1104<td class="parameter_name"><p>timestamp</p></td>
1105<td class="parameter_description"><p>where the timestamp is returned. </p></td>
1106<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
1107</tr>
1108</tbody>
1109</table></div>
1110</div>
1111<div class="refsect3">
1112<a name="gst-audio-ring-buffer-read.returns"></a><h4>Returns</h4>
1113<p> The number of samples read from the ringbuffer or -1 on
1114error.</p>
1115<p>MT safe.</p>
1116</div>
1117</div>
1118<hr>
1119<div class="refsect2">
1120<a name="gst-audio-ring-buffer-clear"></a><h3>gst_audio_ring_buffer_clear ()</h3>
1121<pre class="programlisting"><span class="returnvalue">void</span>
1122gst_audio_ring_buffer_clear (<em class="parameter"><code><a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>,
1123                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> segment</code></em>);</pre>
1124<p>Clear the given segment of the buffer with silence samples.
1125This function is used by subclasses.</p>
1126<p>MT safe.</p>
1127<div class="refsect3">
1128<a name="gst-audio-ring-buffer-clear.parameters"></a><h4>Parameters</h4>
1129<div class="informaltable"><table class="informaltable" width="100%" border="0">
1130<colgroup>
1131<col width="150px" class="parameters_name">
1132<col class="parameters_description">
1133<col width="200px" class="parameters_annotations">
1134</colgroup>
1135<tbody>
1136<tr>
1137<td class="parameter_name"><p>buf</p></td>
1138<td class="parameter_description"><p>the <a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to clear</p></td>
1139<td class="parameter_annotations"> </td>
1140</tr>
1141<tr>
1142<td class="parameter_name"><p>segment</p></td>
1143<td class="parameter_description"><p>the segment to clear</p></td>
1144<td class="parameter_annotations"> </td>
1145</tr>
1146</tbody>
1147</table></div>
1148</div>
1149</div>
1150<hr>
1151<div class="refsect2">
1152<a name="gst-audio-ring-buffer-clear-all"></a><h3>gst_audio_ring_buffer_clear_all ()</h3>
1153<pre class="programlisting"><span class="returnvalue">void</span>
1154gst_audio_ring_buffer_clear_all (<em class="parameter"><code><a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
1155<p>Fill the ringbuffer with silence.</p>
1156<p>MT safe.</p>
1157<div class="refsect3">
1158<a name="gst-audio-ring-buffer-clear-all.parameters"></a><h4>Parameters</h4>
1159<div class="informaltable"><table class="informaltable" width="100%" border="0">
1160<colgroup>
1161<col width="150px" class="parameters_name">
1162<col class="parameters_description">
1163<col width="200px" class="parameters_annotations">
1164</colgroup>
1165<tbody><tr>
1166<td class="parameter_name"><p>buf</p></td>
1167<td class="parameter_description"><p>the <a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to clear</p></td>
1168<td class="parameter_annotations"> </td>
1169</tr></tbody>
1170</table></div>
1171</div>
1172</div>
1173<hr>
1174<div class="refsect2">
1175<a name="gst-audio-ring-buffer-advance"></a><h3>gst_audio_ring_buffer_advance ()</h3>
1176<pre class="programlisting"><span class="returnvalue">void</span>
1177gst_audio_ring_buffer_advance (<em class="parameter"><code><a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>,
1178                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> advance</code></em>);</pre>
1179<p>Subclasses should call this function to notify the fact that
1180<em class="parameter"><code>advance</code></em>
1181 segments are now processed by the device.</p>
1182<p>MT safe.</p>
1183<div class="refsect3">
1184<a name="gst-audio-ring-buffer-advance.parameters"></a><h4>Parameters</h4>
1185<div class="informaltable"><table class="informaltable" width="100%" border="0">
1186<colgroup>
1187<col width="150px" class="parameters_name">
1188<col class="parameters_description">
1189<col width="200px" class="parameters_annotations">
1190</colgroup>
1191<tbody>
1192<tr>
1193<td class="parameter_name"><p>buf</p></td>
1194<td class="parameter_description"><p>the <a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to advance</p></td>
1195<td class="parameter_annotations"> </td>
1196</tr>
1197<tr>
1198<td class="parameter_name"><p>advance</p></td>
1199<td class="parameter_description"><p>the number of segments written</p></td>
1200<td class="parameter_annotations"> </td>
1201</tr>
1202</tbody>
1203</table></div>
1204</div>
1205</div>
1206<hr>
1207<div class="refsect2">
1208<a name="gst-audio-ring-buffer-close-device"></a><h3>gst_audio_ring_buffer_close_device ()</h3>
1209<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
1210gst_audio_ring_buffer_close_device (<em class="parameter"><code><a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
1211<p>Close the audio device associated with the ring buffer. The ring buffer
1212should already have been released via <a class="link" href="GstAudioRingBuffer.html#gst-audio-ring-buffer-release" title="gst_audio_ring_buffer_release ()"><code class="function">gst_audio_ring_buffer_release()</code></a>.</p>
1213<div class="refsect3">
1214<a name="gst-audio-ring-buffer-close-device.parameters"></a><h4>Parameters</h4>
1215<div class="informaltable"><table class="informaltable" width="100%" border="0">
1216<colgroup>
1217<col width="150px" class="parameters_name">
1218<col class="parameters_description">
1219<col width="200px" class="parameters_annotations">
1220</colgroup>
1221<tbody><tr>
1222<td class="parameter_name"><p>buf</p></td>
1223<td class="parameter_description"><p>the <a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a></p></td>
1224<td class="parameter_annotations"> </td>
1225</tr></tbody>
1226</table></div>
1227</div>
1228<div class="refsect3">
1229<a name="gst-audio-ring-buffer-close-device.returns"></a><h4>Returns</h4>
1230<p> TRUE if the device could be closed, FALSE on error.</p>
1231<p>MT safe.</p>
1232</div>
1233</div>
1234<hr>
1235<div class="refsect2">
1236<a name="gst-audio-ring-buffer-open-device"></a><h3>gst_audio_ring_buffer_open_device ()</h3>
1237<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
1238gst_audio_ring_buffer_open_device (<em class="parameter"><code><a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
1239<p>Open the audio device associated with the ring buffer. Does not perform any
1240setup on the device. You must open the device before acquiring the ring
1241buffer.</p>
1242<div class="refsect3">
1243<a name="gst-audio-ring-buffer-open-device.parameters"></a><h4>Parameters</h4>
1244<div class="informaltable"><table class="informaltable" width="100%" border="0">
1245<colgroup>
1246<col width="150px" class="parameters_name">
1247<col class="parameters_description">
1248<col width="200px" class="parameters_annotations">
1249</colgroup>
1250<tbody><tr>
1251<td class="parameter_name"><p>buf</p></td>
1252<td class="parameter_description"><p>the <a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a></p></td>
1253<td class="parameter_annotations"> </td>
1254</tr></tbody>
1255</table></div>
1256</div>
1257<div class="refsect3">
1258<a name="gst-audio-ring-buffer-open-device.returns"></a><h4>Returns</h4>
1259<p> TRUE if the device could be opened, FALSE on error.</p>
1260<p>MT safe.</p>
1261</div>
1262</div>
1263<hr>
1264<div class="refsect2">
1265<a name="gst-audio-ring-buffer-device-is-open"></a><h3>gst_audio_ring_buffer_device_is_open ()</h3>
1266<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
1267gst_audio_ring_buffer_device_is_open (<em class="parameter"><code><a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
1268<p>Checks the status of the device associated with the ring buffer.</p>
1269<div class="refsect3">
1270<a name="gst-audio-ring-buffer-device-is-open.parameters"></a><h4>Parameters</h4>
1271<div class="informaltable"><table class="informaltable" width="100%" border="0">
1272<colgroup>
1273<col width="150px" class="parameters_name">
1274<col class="parameters_description">
1275<col width="200px" class="parameters_annotations">
1276</colgroup>
1277<tbody><tr>
1278<td class="parameter_name"><p>buf</p></td>
1279<td class="parameter_description"><p>the <a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a></p></td>
1280<td class="parameter_annotations"> </td>
1281</tr></tbody>
1282</table></div>
1283</div>
1284<div class="refsect3">
1285<a name="gst-audio-ring-buffer-device-is-open.returns"></a><h4>Returns</h4>
1286<p> TRUE if the device was open, FALSE if it was closed.</p>
1287<p>MT safe.</p>
1288</div>
1289</div>
1290<hr>
1291<div class="refsect2">
1292<a name="gst-audio-ring-buffer-may-start"></a><h3>gst_audio_ring_buffer_may_start ()</h3>
1293<pre class="programlisting"><span class="returnvalue">void</span>
1294gst_audio_ring_buffer_may_start (<em class="parameter"><code><a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>,
1295                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> allowed</code></em>);</pre>
1296<p>Tell the ringbuffer that it is allowed to start playback when
1297the ringbuffer is filled with samples.</p>
1298<p>MT safe.</p>
1299<div class="refsect3">
1300<a name="gst-audio-ring-buffer-may-start.parameters"></a><h4>Parameters</h4>
1301<div class="informaltable"><table class="informaltable" width="100%" border="0">
1302<colgroup>
1303<col width="150px" class="parameters_name">
1304<col class="parameters_description">
1305<col width="200px" class="parameters_annotations">
1306</colgroup>
1307<tbody>
1308<tr>
1309<td class="parameter_name"><p>buf</p></td>
1310<td class="parameter_description"><p>the <a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a></p></td>
1311<td class="parameter_annotations"> </td>
1312</tr>
1313<tr>
1314<td class="parameter_name"><p>allowed</p></td>
1315<td class="parameter_description"><p>the new value</p></td>
1316<td class="parameter_annotations"> </td>
1317</tr>
1318</tbody>
1319</table></div>
1320</div>
1321</div>
1322<hr>
1323<div class="refsect2">
1324<a name="gst-audio-ring-buffer-parse-caps"></a><h3>gst_audio_ring_buffer_parse_caps ()</h3>
1325<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
1326gst_audio_ring_buffer_parse_caps (<em class="parameter"><code><a class="link" href="GstAudioRingBuffer.html#GstAudioRingBufferSpec" title="struct GstAudioRingBufferSpec"><span class="type">GstAudioRingBufferSpec</span></a> *spec</code></em>,
1327                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
1328<p>Parse <em class="parameter"><code>caps</code></em>
1329 into <em class="parameter"><code>spec</code></em>
1330.</p>
1331<div class="refsect3">
1332<a name="gst-audio-ring-buffer-parse-caps.parameters"></a><h4>Parameters</h4>
1333<div class="informaltable"><table class="informaltable" width="100%" border="0">
1334<colgroup>
1335<col width="150px" class="parameters_name">
1336<col class="parameters_description">
1337<col width="200px" class="parameters_annotations">
1338</colgroup>
1339<tbody>
1340<tr>
1341<td class="parameter_name"><p>spec</p></td>
1342<td class="parameter_description"><p>a spec</p></td>
1343<td class="parameter_annotations"> </td>
1344</tr>
1345<tr>
1346<td class="parameter_name"><p>caps</p></td>
1347<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a></p></td>
1348<td class="parameter_annotations"> </td>
1349</tr>
1350</tbody>
1351</table></div>
1352</div>
1353<div class="refsect3">
1354<a name="gst-audio-ring-buffer-parse-caps.returns"></a><h4>Returns</h4>
1355<p> TRUE if the caps could be parsed.</p>
1356</div>
1357</div>
1358<hr>
1359<div class="refsect2">
1360<a name="gst-audio-ring-buffer-set-flushing"></a><h3>gst_audio_ring_buffer_set_flushing ()</h3>
1361<pre class="programlisting"><span class="returnvalue">void</span>
1362gst_audio_ring_buffer_set_flushing (<em class="parameter"><code><a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>,
1363                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> flushing</code></em>);</pre>
1364<p>Set the ringbuffer to flushing mode or normal mode.</p>
1365<p>MT safe.</p>
1366<div class="refsect3">
1367<a name="gst-audio-ring-buffer-set-flushing.parameters"></a><h4>Parameters</h4>
1368<div class="informaltable"><table class="informaltable" width="100%" border="0">
1369<colgroup>
1370<col width="150px" class="parameters_name">
1371<col class="parameters_description">
1372<col width="200px" class="parameters_annotations">
1373</colgroup>
1374<tbody>
1375<tr>
1376<td class="parameter_name"><p>buf</p></td>
1377<td class="parameter_description"><p>the <a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to flush</p></td>
1378<td class="parameter_annotations"> </td>
1379</tr>
1380<tr>
1381<td class="parameter_name"><p>flushing</p></td>
1382<td class="parameter_description"><p>the new mode</p></td>
1383<td class="parameter_annotations"> </td>
1384</tr>
1385</tbody>
1386</table></div>
1387</div>
1388</div>
1389<hr>
1390<div class="refsect2">
1391<a name="gst-audio-ring-buffer-is-flushing"></a><h3>gst_audio_ring_buffer_is_flushing ()</h3>
1392<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
1393gst_audio_ring_buffer_is_flushing (<em class="parameter"><code><a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
1394<p>Check if <em class="parameter"><code>buf</code></em>
1395 is flushing.</p>
1396<p>MT safe.</p>
1397<div class="refsect3">
1398<a name="gst-audio-ring-buffer-is-flushing.parameters"></a><h4>Parameters</h4>
1399<div class="informaltable"><table class="informaltable" width="100%" border="0">
1400<colgroup>
1401<col width="150px" class="parameters_name">
1402<col class="parameters_description">
1403<col width="200px" class="parameters_annotations">
1404</colgroup>
1405<tbody><tr>
1406<td class="parameter_name"><p>buf</p></td>
1407<td class="parameter_description"><p>the <a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a></p></td>
1408<td class="parameter_annotations"> </td>
1409</tr></tbody>
1410</table></div>
1411</div>
1412<div class="refsect3">
1413<a name="gst-audio-ring-buffer-is-flushing.returns"></a><h4>Returns</h4>
1414<p> TRUE if the device is flushing.</p>
1415</div>
1416</div>
1417<hr>
1418<div class="refsect2">
1419<a name="gst-audio-ring-buffer-set-channel-positions"></a><h3>gst_audio_ring_buffer_set_channel_positions ()</h3>
1420<pre class="programlisting"><span class="returnvalue">void</span>
1421gst_audio_ring_buffer_set_channel_positions
1422                               (<em class="parameter"><code><a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>,
1423                                <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-Audio-channels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *position</code></em>);</pre>
1424<p>Tell the ringbuffer about the device's channel positions. This must
1425be called in when the ringbuffer is acquired.</p>
1426<div class="refsect3">
1427<a name="gst-audio-ring-buffer-set-channel-positions.parameters"></a><h4>Parameters</h4>
1428<div class="informaltable"><table class="informaltable" width="100%" border="0">
1429<colgroup>
1430<col width="150px" class="parameters_name">
1431<col class="parameters_description">
1432<col width="200px" class="parameters_annotations">
1433</colgroup>
1434<tbody>
1435<tr>
1436<td class="parameter_name"><p>buf</p></td>
1437<td class="parameter_description"><p>the <a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a></p></td>
1438<td class="parameter_annotations"> </td>
1439</tr>
1440<tr>
1441<td class="parameter_name"><p>position</p></td>
1442<td class="parameter_description"><p>the device channel positions. </p></td>
1443<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym>]</span></td>
1444</tr>
1445</tbody>
1446</table></div>
1447</div>
1448</div>
1449<hr>
1450<div class="refsect2">
1451<a name="gst-audio-ring-buffer-set-timestamp"></a><h3>gst_audio_ring_buffer_set_timestamp ()</h3>
1452<pre class="programlisting"><span class="returnvalue">void</span>
1453gst_audio_ring_buffer_set_timestamp (<em class="parameter"><code><a class="link" href="GstAudioRingBuffer.html" title="GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>,
1454                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> readseg</code></em>,
1455                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);</pre>
1456</div>
1457</div>
1458<div class="refsect1">
1459<a name="GstAudioRingBuffer.other_details"></a><h2>Types and Values</h2>
1460<div class="refsect2">
1461<a name="GstAudioRingBuffer-struct"></a><h3>struct GstAudioRingBuffer</h3>
1462<pre class="programlisting">struct GstAudioRingBuffer {
1463  GCond                      cond;
1464  gboolean                    open;
1465  gboolean                    acquired;
1466  guint8                     *memory;
1467  gsize                       size;
1468  GstAudioRingBufferSpec      spec;
1469  gint                        samples_per_seg;
1470  guint8                     *empty_seg;
1471
1472  gint                        state;
1473  gint                        segdone;
1474  gint                        segbase;
1475  gint                        waiting;
1476};
1477</pre>
1478<p>The ringbuffer base class structure.</p>
1479<div class="refsect3">
1480<a name="GstAudioRingBuffer.members"></a><h4>Members</h4>
1481<div class="informaltable"><table class="informaltable" width="100%" border="0">
1482<colgroup>
1483<col width="300px" class="struct_members_name">
1484<col class="struct_members_description">
1485<col width="200px" class="struct_members_annotations">
1486</colgroup>
1487<tbody>
1488<tr>
1489<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Threads.html#GCond"><span class="type">GCond</span></a> <em class="structfield"><code><a name="GstAudioRingBuffer-struct.cond"></a>cond</code></em>;</p></td>
1490<td class="struct_member_description"><p>used to signal start/stop/pause/resume actions</p></td>
1491<td class="struct_member_annotations"> </td>
1492</tr>
1493<tr>
1494<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GstAudioRingBuffer-struct.open"></a>open</code></em>;</p></td>
1495<td class="struct_member_description"><p>boolean indicating that the ringbuffer is open</p></td>
1496<td class="struct_member_annotations"> </td>
1497</tr>
1498<tr>
1499<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GstAudioRingBuffer-struct.acquired"></a>acquired</code></em>;</p></td>
1500<td class="struct_member_description"><p>boolean indicating that the ringbuffer is acquired</p></td>
1501<td class="struct_member_annotations"> </td>
1502</tr>
1503<tr>
1504<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *<em class="structfield"><code><a name="GstAudioRingBuffer-struct.memory"></a>memory</code></em>;</p></td>
1505<td class="struct_member_description"><p>data in the ringbuffer</p></td>
1506<td class="struct_member_annotations"> </td>
1507</tr>
1508<tr>
1509<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> <em class="structfield"><code><a name="GstAudioRingBuffer-struct.size"></a>size</code></em>;</p></td>
1510<td class="struct_member_description"><p>size of data in the ringbuffer</p></td>
1511<td class="struct_member_annotations"> </td>
1512</tr>
1513<tr>
1514<td class="struct_member_name"><p><a class="link" href="GstAudioRingBuffer.html#GstAudioRingBufferSpec" title="struct GstAudioRingBufferSpec"><span class="type">GstAudioRingBufferSpec</span></a> <em class="structfield"><code><a name="GstAudioRingBuffer-struct.spec"></a>spec</code></em>;</p></td>
1515<td class="struct_member_description"><p>format and layout of the ringbuffer data</p></td>
1516<td class="struct_member_annotations"> </td>
1517</tr>
1518<tr>
1519<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioRingBuffer-struct.samples-per-seg"></a>samples_per_seg</code></em>;</p></td>
1520<td class="struct_member_description"><p>number of samples in one segment</p></td>
1521<td class="struct_member_annotations"> </td>
1522</tr>
1523<tr>
1524<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *<em class="structfield"><code><a name="GstAudioRingBuffer-struct.empty-seg"></a>empty_seg</code></em>;</p></td>
1525<td class="struct_member_description"><p>pointer to memory holding one segment of silence samples</p></td>
1526<td class="struct_member_annotations"> </td>
1527</tr>
1528<tr>
1529<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioRingBuffer-struct.state"></a>state</code></em>;</p></td>
1530<td class="struct_member_description"><p>state of the buffer</p></td>
1531<td class="struct_member_annotations"> </td>
1532</tr>
1533<tr>
1534<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioRingBuffer-struct.segdone"></a>segdone</code></em>;</p></td>
1535<td class="struct_member_description"><p>readpointer in the ringbuffer</p></td>
1536<td class="struct_member_annotations"> </td>
1537</tr>
1538<tr>
1539<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioRingBuffer-struct.segbase"></a>segbase</code></em>;</p></td>
1540<td class="struct_member_description"><p>segment corresponding to segment 0 (unused)</p></td>
1541<td class="struct_member_annotations"> </td>
1542</tr>
1543<tr>
1544<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioRingBuffer-struct.waiting"></a>waiting</code></em>;</p></td>
1545<td class="struct_member_description"><p>is a reader or writer waiting for a free segment</p></td>
1546<td class="struct_member_annotations"> </td>
1547</tr>
1548</tbody>
1549</table></div>
1550</div>
1551</div>
1552<hr>
1553<div class="refsect2">
1554<a name="GstAudioRingBufferClass"></a><h3>struct GstAudioRingBufferClass</h3>
1555<pre class="programlisting">struct GstAudioRingBufferClass {
1556  GstObjectClass parent_class;
1557
1558  gboolean     (*open_device)  (GstAudioRingBuffer *buf);
1559  gboolean     (*acquire)      (GstAudioRingBuffer *buf, GstAudioRingBufferSpec *spec);
1560  gboolean     (*release)      (GstAudioRingBuffer *buf);
1561  gboolean     (*close_device) (GstAudioRingBuffer *buf);
1562
1563  gboolean     (*start)        (GstAudioRingBuffer *buf);
1564  gboolean     (*pause)        (GstAudioRingBuffer *buf);
1565  gboolean     (*resume)       (GstAudioRingBuffer *buf);
1566  gboolean     (*stop)         (GstAudioRingBuffer *buf);
1567
1568  guint        (*delay)        (GstAudioRingBuffer *buf);
1569
1570  /* ABI added */
1571  gboolean     (*activate)     (GstAudioRingBuffer *buf, gboolean active);
1572
1573  guint        (*commit)       (GstAudioRingBuffer * buf, guint64 *sample,
1574                                guint8 * data, gint in_samples,
1575                                gint out_samples, gint * accum);
1576
1577  void         (*clear_all)    (GstAudioRingBuffer * buf);
1578};
1579</pre>
1580<p>The vmethods that subclasses can override to implement the ringbuffer.</p>
1581<div class="refsect3">
1582<a name="GstAudioRingBufferClass.members"></a><h4>Members</h4>
1583<div class="informaltable"><table class="informaltable" width="100%" border="0">
1584<colgroup>
1585<col width="300px" class="struct_members_name">
1586<col class="struct_members_description">
1587<col width="200px" class="struct_members_annotations">
1588</colgroup>
1589<tbody>
1590<tr>
1591<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioRingBufferClass.open-device"></a>open_device</code></em> ()</p></td>
1592<td class="struct_member_description"><p>open the device, don't set any params or allocate anything</p></td>
1593<td class="struct_member_annotations"> </td>
1594</tr>
1595<tr>
1596<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioRingBufferClass.acquire"></a>acquire</code></em> ()</p></td>
1597<td class="struct_member_description"><p>allocate the resources for the ringbuffer using the given spec</p></td>
1598<td class="struct_member_annotations"> </td>
1599</tr>
1600<tr>
1601<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioRingBufferClass.release"></a>release</code></em> ()</p></td>
1602<td class="struct_member_description"><p>free resources of the ringbuffer</p></td>
1603<td class="struct_member_annotations"> </td>
1604</tr>
1605<tr>
1606<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioRingBufferClass.close-device"></a>close_device</code></em> ()</p></td>
1607<td class="struct_member_description"><p>close the device</p></td>
1608<td class="struct_member_annotations"> </td>
1609</tr>
1610<tr>
1611<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioRingBufferClass.start"></a>start</code></em> ()</p></td>
1612<td class="struct_member_description"><p>start processing of samples</p></td>
1613<td class="struct_member_annotations"> </td>
1614</tr>
1615<tr>
1616<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioRingBufferClass.pause"></a>pause</code></em> ()</p></td>
1617<td class="struct_member_description"><p>pause processing of samples</p></td>
1618<td class="struct_member_annotations"> </td>
1619</tr>
1620<tr>
1621<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioRingBufferClass.resume"></a>resume</code></em> ()</p></td>
1622<td class="struct_member_description"><p>resume processing of samples after pause</p></td>
1623<td class="struct_member_annotations"> </td>
1624</tr>
1625<tr>
1626<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioRingBufferClass.stop"></a>stop</code></em> ()</p></td>
1627<td class="struct_member_description"><p>stop processing of samples</p></td>
1628<td class="struct_member_annotations"> </td>
1629</tr>
1630<tr>
1631<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioRingBufferClass.delay"></a>delay</code></em> ()</p></td>
1632<td class="struct_member_description"><p>get number of frames queued in device</p></td>
1633<td class="struct_member_annotations"> </td>
1634</tr>
1635<tr>
1636<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioRingBufferClass.activate"></a>activate</code></em> ()</p></td>
1637<td class="struct_member_description"><p>activate the thread that starts pulling and monitoring the
1638consumed segments in the device.</p></td>
1639<td class="struct_member_annotations"> </td>
1640</tr>
1641<tr>
1642<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioRingBufferClass.commit"></a>commit</code></em> ()</p></td>
1643<td class="struct_member_description"><p>write samples into the ringbuffer</p></td>
1644<td class="struct_member_annotations"> </td>
1645</tr>
1646<tr>
1647<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioRingBufferClass.clear-all"></a>clear_all</code></em> ()</p></td>
1648<td class="struct_member_description"><p>clear the entire ringbuffer.</p></td>
1649<td class="struct_member_annotations"> </td>
1650</tr>
1651</tbody>
1652</table></div>
1653</div>
1654</div>
1655<hr>
1656<div class="refsect2">
1657<a name="GstAudioRingBufferSpec"></a><h3>struct GstAudioRingBufferSpec</h3>
1658<pre class="programlisting">struct GstAudioRingBufferSpec {
1659  /* in */
1660  GstCaps  *caps;               /* the caps of the buffer */
1661
1662  /* in/out */
1663  GstAudioRingBufferFormatType  type;
1664  GstAudioInfo                  info;
1665
1666
1667  guint64  latency_time;        /* the required/actual latency time, this is the
1668				 * actual the size of one segment and the
1669				 * minimum possible latency we can achieve. */
1670  guint64  buffer_time;         /* the required/actual time of the buffer, this is
1671				 * the total size of the buffer and maximum
1672				 * latency we can compensate for. */
1673  gint     segsize;             /* size of one buffer segment in bytes, this value
1674				 * should be chosen to match latency_time as
1675				 * well as possible. */
1676  gint     segtotal;            /* total number of segments, this value is the
1677				 * number of segments of @segsize and should be
1678				 * chosen so that it matches buffer_time as
1679				 * close as possible. */
1680  /* ABI added 0.10.20 */
1681  gint     seglatency;          /* number of segments queued in the lower
1682				 * level device, defaults to segtotal. */
1683};
1684</pre>
1685<p>The structure containing the format specification of the ringbuffer.</p>
1686<div class="refsect3">
1687<a name="GstAudioRingBufferSpec.members"></a><h4>Members</h4>
1688<div class="informaltable"><table class="informaltable" width="100%" border="0">
1689<colgroup>
1690<col width="300px" class="struct_members_name">
1691<col class="struct_members_description">
1692<col width="200px" class="struct_members_annotations">
1693</colgroup>
1694<tbody>
1695<tr>
1696<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *<em class="structfield"><code><a name="GstAudioRingBufferSpec.caps"></a>caps</code></em>;</p></td>
1697<td class="struct_member_description"><p>The caps that generated the Spec.</p></td>
1698<td class="struct_member_annotations"> </td>
1699</tr>
1700<tr>
1701<td class="struct_member_name"><p><a class="link" href="GstAudioRingBuffer.html#GstAudioRingBufferFormatType" title="enum GstAudioRingBufferFormatType"><span class="type">GstAudioRingBufferFormatType</span></a> <em class="structfield"><code><a name="GstAudioRingBufferSpec.type"></a>type</code></em>;</p></td>
1702<td class="struct_member_description"><p>the sample type</p></td>
1703<td class="struct_member_annotations"> </td>
1704</tr>
1705<tr>
1706<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-GstAudio.html#GstAudioInfo"><span class="type">GstAudioInfo</span></a> <em class="structfield"><code><a name="GstAudioRingBufferSpec.info"></a>info</code></em>;</p></td>
1707<td class="struct_member_description"><p>the <a class="link" href="gst-plugins-base-libs-GstAudio.html#GstAudioInfo"><span class="type">GstAudioInfo</span></a></p></td>
1708<td class="struct_member_annotations"> </td>
1709</tr>
1710<tr>
1711<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> <em class="structfield"><code><a name="GstAudioRingBufferSpec.latency-time"></a>latency_time</code></em>;</p></td>
1712<td class="struct_member_description"><p>the latency in microseconds</p></td>
1713<td class="struct_member_annotations"> </td>
1714</tr>
1715<tr>
1716<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> <em class="structfield"><code><a name="GstAudioRingBufferSpec.buffer-time"></a>buffer_time</code></em>;</p></td>
1717<td class="struct_member_description"><p>the total buffer size in microseconds</p></td>
1718<td class="struct_member_annotations"> </td>
1719</tr>
1720<tr>
1721<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioRingBufferSpec.segsize"></a>segsize</code></em>;</p></td>
1722<td class="struct_member_description"><p>the size of one segment in bytes</p></td>
1723<td class="struct_member_annotations"> </td>
1724</tr>
1725<tr>
1726<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioRingBufferSpec.segtotal"></a>segtotal</code></em>;</p></td>
1727<td class="struct_member_description"><p>the total number of segments</p></td>
1728<td class="struct_member_annotations"> </td>
1729</tr>
1730<tr>
1731<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioRingBufferSpec.seglatency"></a>seglatency</code></em>;</p></td>
1732<td class="struct_member_description"><p>number of segments queued in the lower level device,
1733defaults to segtotal</p></td>
1734<td class="struct_member_annotations"> </td>
1735</tr>
1736</tbody>
1737</table></div>
1738</div>
1739</div>
1740<hr>
1741<div class="refsect2">
1742<a name="GstAudioRingBufferState"></a><h3>enum GstAudioRingBufferState</h3>
1743<p>The state of the ringbuffer.</p>
1744<div class="refsect3">
1745<a name="GstAudioRingBufferState.members"></a><h4>Members</h4>
1746<div class="informaltable"><table class="informaltable" width="100%" border="0">
1747<colgroup>
1748<col width="300px" class="enum_members_name">
1749<col class="enum_members_description">
1750<col width="200px" class="enum_members_annotations">
1751</colgroup>
1752<tbody>
1753<tr>
1754<td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-STATE-STOPPED:CAPS"></a>GST_AUDIO_RING_BUFFER_STATE_STOPPED</p></td>
1755<td class="enum_member_description">
1756<p>The ringbuffer is stopped</p>
1757</td>
1758<td class="enum_member_annotations"> </td>
1759</tr>
1760<tr>
1761<td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-STATE-PAUSED:CAPS"></a>GST_AUDIO_RING_BUFFER_STATE_PAUSED</p></td>
1762<td class="enum_member_description">
1763<p>The ringbuffer is paused</p>
1764</td>
1765<td class="enum_member_annotations"> </td>
1766</tr>
1767<tr>
1768<td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-STATE-STARTED:CAPS"></a>GST_AUDIO_RING_BUFFER_STATE_STARTED</p></td>
1769<td class="enum_member_description">
1770<p>The ringbuffer is started</p>
1771</td>
1772<td class="enum_member_annotations"> </td>
1773</tr>
1774<tr>
1775<td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-STATE-ERROR:CAPS"></a>GST_AUDIO_RING_BUFFER_STATE_ERROR</p></td>
1776<td class="enum_member_description">
1777<p>The ringbuffer has encountered an
1778    error after it has been started, e.g. because the device was
1779    disconnected (Since: 1.2)</p>
1780</td>
1781<td class="enum_member_annotations"> </td>
1782</tr>
1783</tbody>
1784</table></div>
1785</div>
1786</div>
1787<hr>
1788<div class="refsect2">
1789<a name="GstAudioRingBufferFormatType"></a><h3>enum GstAudioRingBufferFormatType</h3>
1790<p>The format of the samples in the ringbuffer.</p>
1791<div class="refsect3">
1792<a name="GstAudioRingBufferFormatType.members"></a><h4>Members</h4>
1793<div class="informaltable"><table class="informaltable" width="100%" border="0">
1794<colgroup>
1795<col width="300px" class="enum_members_name">
1796<col class="enum_members_description">
1797<col width="200px" class="enum_members_annotations">
1798</colgroup>
1799<tbody>
1800<tr>
1801<td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-FORMAT-TYPE-RAW:CAPS"></a>GST_AUDIO_RING_BUFFER_FORMAT_TYPE_RAW</p></td>
1802<td class="enum_member_description">
1803<p>samples in linear or float</p>
1804</td>
1805<td class="enum_member_annotations"> </td>
1806</tr>
1807<tr>
1808<td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-FORMAT-TYPE-MU-LAW:CAPS"></a>GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MU_LAW</p></td>
1809<td class="enum_member_description">
1810<p>samples in mulaw</p>
1811</td>
1812<td class="enum_member_annotations"> </td>
1813</tr>
1814<tr>
1815<td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-FORMAT-TYPE-A-LAW:CAPS"></a>GST_AUDIO_RING_BUFFER_FORMAT_TYPE_A_LAW</p></td>
1816<td class="enum_member_description">
1817<p>samples in alaw</p>
1818</td>
1819<td class="enum_member_annotations"> </td>
1820</tr>
1821<tr>
1822<td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-FORMAT-TYPE-IMA-ADPCM:CAPS"></a>GST_AUDIO_RING_BUFFER_FORMAT_TYPE_IMA_ADPCM</p></td>
1823<td class="enum_member_description">
1824<p>samples in ima adpcm</p>
1825</td>
1826<td class="enum_member_annotations"> </td>
1827</tr>
1828<tr>
1829<td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-FORMAT-TYPE-MPEG:CAPS"></a>GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG</p></td>
1830<td class="enum_member_description">
1831<p>samples in mpeg audio (but not AAC) format</p>
1832</td>
1833<td class="enum_member_annotations"> </td>
1834</tr>
1835<tr>
1836<td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-FORMAT-TYPE-GSM:CAPS"></a>GST_AUDIO_RING_BUFFER_FORMAT_TYPE_GSM</p></td>
1837<td class="enum_member_description">
1838<p>samples in gsm format</p>
1839</td>
1840<td class="enum_member_annotations"> </td>
1841</tr>
1842<tr>
1843<td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-FORMAT-TYPE-IEC958:CAPS"></a>GST_AUDIO_RING_BUFFER_FORMAT_TYPE_IEC958</p></td>
1844<td class="enum_member_description">
1845<p>samples in IEC958 frames (e.g. AC3)</p>
1846</td>
1847<td class="enum_member_annotations"> </td>
1848</tr>
1849<tr>
1850<td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-FORMAT-TYPE-AC3:CAPS"></a>GST_AUDIO_RING_BUFFER_FORMAT_TYPE_AC3</p></td>
1851<td class="enum_member_description">
1852<p>samples in AC3 format</p>
1853</td>
1854<td class="enum_member_annotations"> </td>
1855</tr>
1856<tr>
1857<td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-FORMAT-TYPE-EAC3:CAPS"></a>GST_AUDIO_RING_BUFFER_FORMAT_TYPE_EAC3</p></td>
1858<td class="enum_member_description">
1859<p>samples in EAC3 format</p>
1860</td>
1861<td class="enum_member_annotations"> </td>
1862</tr>
1863<tr>
1864<td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-FORMAT-TYPE-DTS:CAPS"></a>GST_AUDIO_RING_BUFFER_FORMAT_TYPE_DTS</p></td>
1865<td class="enum_member_description">
1866<p>samples in DTS format</p>
1867</td>
1868<td class="enum_member_annotations"> </td>
1869</tr>
1870<tr>
1871<td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-FORMAT-TYPE-MPEG2-AAC:CAPS"></a>GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC</p></td>
1872<td class="enum_member_description">
1873<p>samples in MPEG-2 AAC ADTS format</p>
1874</td>
1875<td class="enum_member_annotations"> </td>
1876</tr>
1877<tr>
1878<td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-FORMAT-TYPE-MPEG4-AAC:CAPS"></a>GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC</p></td>
1879<td class="enum_member_description">
1880<p>samples in MPEG-4 AAC ADTS format</p>
1881</td>
1882<td class="enum_member_annotations"> </td>
1883</tr>
1884<tr>
1885<td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-FORMAT-TYPE-MPEG2-AAC-RAW:CAPS"></a>GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC_RAW</p></td>
1886<td class="enum_member_description">
1887<p>samples in MPEG-2 AAC raw format (Since: 1.12)</p>
1888</td>
1889<td class="enum_member_annotations"> </td>
1890</tr>
1891<tr>
1892<td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-FORMAT-TYPE-MPEG4-AAC-RAW:CAPS"></a>GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC_RAW</p></td>
1893<td class="enum_member_description">
1894<p>samples in MPEG-4 AAC raw format (Since: 1.12)</p>
1895</td>
1896<td class="enum_member_annotations"> </td>
1897</tr>
1898<tr>
1899<td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-FORMAT-TYPE-FLAC:CAPS"></a>GST_AUDIO_RING_BUFFER_FORMAT_TYPE_FLAC</p></td>
1900<td class="enum_member_description">
1901<p>samples in FLAC format (Since: 1.12)</p>
1902</td>
1903<td class="enum_member_annotations"> </td>
1904</tr>
1905</tbody>
1906</table></div>
1907</div>
1908</div>
1909</div>
1910<div class="refsect1">
1911<a name="GstAudioRingBuffer.see-also"></a><h2>See Also</h2>
1912<p><a class="link" href="GstAudioBaseSink.html" title="GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a>, <a class="link" href="GstAudioSink.html" title="GstAudioSink"><span class="type">GstAudioSink</span></a></p>
1913</div>
1914</div>
1915<div class="footer">
1916<hr>Generated by GTK-Doc V1.28</div>
1917</body>
1918</html>