1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>gstaudiosink</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
7 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
8 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
9 <link rel="prev" href="gst-plugins-base-libs-gstaudiomixerutils.html" title="gstaudiomixerutils">
10 <link rel="next" href="gst-plugins-base-libs-gstaudiosrc.html" title="gstaudiosrc">
11 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
14 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
17 <td><a accesskey="p" href="gst-plugins-base-libs-gstaudiomixerutils.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
18 <td><a accesskey="u" href="gstreamer-audio.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
19 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
20 <th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
21 <td><a accesskey="n" href="gst-plugins-base-libs-gstaudiosrc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
23 <tr><td colspan="5" class="shortcuts">
24 <a href="#gst-plugins-base-libs-gstaudiosink.synopsis" class="shortcut">Top</a>
26 <a href="#gst-plugins-base-libs-gstaudiosink.description" class="shortcut">Description</a>
28 <a href="#gst-plugins-base-libs-gstaudiosink.object-hierarchy" class="shortcut">Object Hierarchy</a>
31 <div class="refentry">
32 <a name="gst-plugins-base-libs-gstaudiosink"></a><div class="titlepage"></div>
33 <div class="refnamediv"><table width="100%"><tr>
35 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstaudiosink.top_of_page"></a>gstaudiosink</span></h2>
36 <p>gstaudiosink — Simple base class for audio sinks</p>
38 <td valign="top" align="right"></td>
40 <div class="refsynopsisdiv">
41 <a name="gst-plugins-base-libs-gstaudiosink.synopsis"></a><h2>Synopsis</h2>
42 <a name="GstAudioSink"></a><pre class="synopsis">
43 #include <gst/audio/gstaudiosink.h>
45 struct <a class="link" href="gst-plugins-base-libs-gstaudiosink.html#GstAudioSink-struct" title="struct GstAudioSink">GstAudioSink</a>;
46 struct <a class="link" href="gst-plugins-base-libs-gstaudiosink.html#GstAudioSinkClass" title="struct GstAudioSinkClass">GstAudioSinkClass</a>;
49 <div class="refsect1">
50 <a name="gst-plugins-base-libs-gstaudiosink.object-hierarchy"></a><h2>Object Hierarchy</h2>
51 <pre class="synopsis">
52 <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
53 +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
54 +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
55 +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a>
56 +----<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink">GstBaseAudioSink</a>
60 <div class="refsect1">
61 <a name="gst-plugins-base-libs-gstaudiosink.description"></a><h2>Description</h2>
63 This is the most simple base class for audio sinks that only requires
64 subclasses to implement a set of simple functions:
68 <div class="variablelist"><table border="0">
69 <col align="left" valign="top">
72 <td><p><span class="term"><code class="function">open()</code></span></p></td>
73 <td><p>Open the device.</p></td>
76 <td><p><span class="term"><code class="function">prepare()</code></span></p></td>
77 <td><p>Configure the device with the specified format.</p></td>
80 <td><p><span class="term"><code class="function">write()</code></span></p></td>
81 <td><p>Write samples to the device.</p></td>
84 <td><p><span class="term"><code class="function">reset()</code></span></p></td>
85 <td><p>Unblock writes and flush the device.</p></td>
88 <td><p><span class="term"><code class="function">delay()</code></span></p></td>
89 <td><p>Get the number of samples written but not yet played
90 by the device.</p></td>
93 <td><p><span class="term"><code class="function">unprepare()</code></span></p></td>
94 <td><p>Undo operations done by prepare.</p></td>
97 <td><p><span class="term"><code class="function">close()</code></span></p></td>
98 <td><p>Close the device.</p></td>
105 All scheduling of samples and timestamps is done in this base class
106 together with <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink"><span class="type">GstBaseAudioSink</span></a> using a default implementation of a
107 <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> that uses threads.
110 Last reviewed on 2006-09-27 (0.10.12)
113 <div class="refsect1">
114 <a name="gst-plugins-base-libs-gstaudiosink.details"></a><h2>Details</h2>
115 <div class="refsect2">
116 <a name="GstAudioSink-struct"></a><h3>struct GstAudioSink</h3>
117 <pre class="programlisting">struct GstAudioSink;</pre>
119 Opaque <a class="link" href="gst-plugins-base-libs-gstaudiosink.html#GstAudioSink"><span class="type">GstAudioSink</span></a>.
123 <div class="refsect2">
124 <a name="GstAudioSinkClass"></a><h3>struct GstAudioSinkClass</h3>
125 <pre class="programlisting">struct GstAudioSinkClass {
126 GstBaseAudioSinkClass parent_class;
130 /* open the device with given specs */
131 gboolean (*open) (GstAudioSink *sink);
132 /* prepare resources and state to operate with the given specs */
133 gboolean (*prepare) (GstAudioSink *sink, GstRingBufferSpec *spec);
134 /* undo anything that was done in prepare() */
135 gboolean (*unprepare) (GstAudioSink *sink);
136 /* close the device */
137 gboolean (*close) (GstAudioSink *sink);
138 /* write samples to the device */
139 /* FIXME 0.11: change return value to gint, as most implementation use that
141 guint (*write) (GstAudioSink *sink, gpointer data, guint length);
142 /* get number of samples queued in the device */
143 guint (*delay) (GstAudioSink *sink);
144 /* reset the audio device, unblock from a write */
145 void (*reset) (GstAudioSink *sink);
149 <a class="link" href="gst-plugins-base-libs-gstaudiosink.html#GstAudioSink"><span class="type">GstAudioSink</span></a> class. Override the vmethods to implement functionality.
151 <div class="variablelist"><table border="0">
152 <col align="left" valign="top">
155 <td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSinkClass" title="struct GstBaseAudioSinkClass"><span class="type">GstBaseAudioSinkClass</span></a> <em class="structfield"><code><a name="GstAudioSinkClass.parent-class"></a>parent_class</code></em>;</span></p></td>
156 <td>the parent class structure.</td>
159 <td><p><span class="term"><em class="structfield"><code><a name="GstAudioSinkClass.open"></a>open</code></em> ()</span></p></td>
160 <td>Open the device. No configuration needs to be done at this point.
161 This function is also used to check if the device is available.</td>
164 <td><p><span class="term"><em class="structfield"><code><a name="GstAudioSinkClass.prepare"></a>prepare</code></em> ()</span></p></td>
165 <td>Prepare the device to operate with the specified parameters.</td>
168 <td><p><span class="term"><em class="structfield"><code><a name="GstAudioSinkClass.unprepare"></a>unprepare</code></em> ()</span></p></td>
169 <td>Undo operations done in prepare.</td>
172 <td><p><span class="term"><em class="structfield"><code><a name="GstAudioSinkClass.close"></a>close</code></em> ()</span></p></td>
173 <td>Close the device.</td>
176 <td><p><span class="term"><em class="structfield"><code><a name="GstAudioSinkClass.write"></a>write</code></em> ()</span></p></td>
177 <td>Write data to the device.</td>
180 <td><p><span class="term"><em class="structfield"><code><a name="GstAudioSinkClass.delay"></a>delay</code></em> ()</span></p></td>
181 <td>Return how many samples are still in the device. This is used to
182 drive the synchronisation.</td>
185 <td><p><span class="term"><em class="structfield"><code><a name="GstAudioSinkClass.reset"></a>reset</code></em> ()</span></p></td>
186 <td>Returns as quickly as possible from a write and flush any pending
187 samples from the device.</td>
193 <div class="refsect1">
194 <a name="gst-plugins-base-libs-gstaudiosink.see-also"></a><h2>See Also</h2>
195 <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink"><span class="type">GstBaseAudioSink</span></a>, <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a>, <a class="link" href="gst-plugins-base-libs-gstaudiosink.html#GstAudioSink"><span class="type">GstAudioSink</span></a>.
200 Generated by GTK-Doc V1.18</div>