0730848381eff8e2b28cb32dd83b121ad68bec89
[framework/multimedia/gst-plugins-base0.10.git] / docs / libs / html / gst-plugins-base-libs-gstaudiosink.html
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>gstaudiosink</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
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.17 (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="2">
16 <tr valign="middle">
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>
22 </tr>
23 <tr><td colspan="5" class="shortcuts">
24 <a href="#gst-plugins-base-libs-gstaudiosink.synopsis" class="shortcut">Top</a>
25                    | 
26                   <a href="#gst-plugins-base-libs-gstaudiosink.description" class="shortcut">Description</a>
27                    | 
28                   <a href="#gst-plugins-base-libs-gstaudiosink.object-hierarchy" class="shortcut">Object Hierarchy</a>
29 </td></tr>
30 </table>
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>
34 <td valign="top">
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>
37 </td>
38 <td valign="top" align="right"></td>
39 </tr></table></div>
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 &lt;gst/audio/gstaudiosink.h&gt;
44
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>;
47 </pre>
48 </div>
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>
57                            +----GstAudioSink
58 </pre>
59 </div>
60 <div class="refsect1">
61 <a name="gst-plugins-base-libs-gstaudiosink.description"></a><h2>Description</h2>
62 <p>
63 This is the most simple base class for audio sinks that only requires
64 subclasses to implement a set of simple functions:
65 </p>
66 <p>
67 </p>
68 <div class="variablelist"><table border="0">
69 <col align="left" valign="top">
70 <tbody>
71 <tr>
72 <td><p><span class="term"><code class="function">open()</code></span></p></td>
73 <td><p>Open the device.</p></td>
74 </tr>
75 <tr>
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>
78 </tr>
79 <tr>
80 <td><p><span class="term"><code class="function">write()</code></span></p></td>
81 <td><p>Write samples to the device.</p></td>
82 </tr>
83 <tr>
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>
86 </tr>
87 <tr>
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>
91 </tr>
92 <tr>
93 <td><p><span class="term"><code class="function">unprepare()</code></span></p></td>
94 <td><p>Undo operations done by prepare.</p></td>
95 </tr>
96 <tr>
97 <td><p><span class="term"><code class="function">close()</code></span></p></td>
98 <td><p>Close the device.</p></td>
99 </tr>
100 </tbody>
101 </table></div>
102 <p>
103 </p>
104 <p>
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.
108 </p>
109 <p>
110 Last reviewed on 2006-09-27 (0.10.12)
111 </p>
112 </div>
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>
118 <p>
119 Opaque <a class="link" href="gst-plugins-base-libs-gstaudiosink.html#GstAudioSink"><span class="type">GstAudioSink</span></a>.
120 </p>
121 </div>
122 <hr>
123 <div class="refsect2">
124 <a name="GstAudioSinkClass"></a><h3>struct GstAudioSinkClass</h3>
125 <pre class="programlisting">struct GstAudioSinkClass {
126   GstBaseAudioSinkClass parent_class;
127
128   /* vtable */
129
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
140    * already anyway */
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);
146 };
147 </pre>
148 <p>
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.
150 </p>
151 <div class="variablelist"><table border="0">
152 <col align="left" valign="top">
153 <tbody>
154 <tr>
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>
157 </tr>
158 <tr>
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>
162 </tr>
163 <tr>
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>
166 </tr>
167 <tr>
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>
170 </tr>
171 <tr>
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>
174 </tr>
175 <tr>
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>
178 </tr>
179 <tr>
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>
183 </tr>
184 <tr>
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>
188 </tr>
189 </tbody>
190 </table></div>
191 </div>
192 </div>
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>.
196 </div>
197 </div>
198 <div class="footer">
199 <hr>
200           Generated by GTK-Doc V1.17</div>
201 </body>
202 </html>