• 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>wasapisink: GStreamer Bad Plugins 1.0 Plugins Reference Manual</title>
6<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7<link rel="home" href="index.html" title="GStreamer Bad Plugins 1.0 Plugins Reference Manual">
8<link rel="up" href="ch01.html" title="gst-plugins-bad Elements">
9<link rel="prev" href="gst-plugins-bad-plugins-vulkanupload.html" title="vulkanupload">
10<link rel="next" href="gst-plugins-bad-plugins-wasapisrc.html" title="wasapisrc">
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="#gst-plugins-bad-plugins-wasapisink.description" class="shortcut">Description</a></span><span id="nav_properties">  <span class="dim">|</span19                  <a href="#gst-plugins-bad-plugins-wasapisink.properties" class="shortcut">Properties</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="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
23<td><a accesskey="p" href="gst-plugins-bad-plugins-vulkanupload.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
24<td><a accesskey="n" href="gst-plugins-bad-plugins-wasapisrc.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="gst-plugins-bad-plugins-wasapisink"></a><div class="titlepage"></div>
28<div class="refnamediv"><table width="100%"><tr>
29<td valign="top">
30<h2><span class="refentrytitle"><a name="gst-plugins-bad-plugins-wasapisink.top_of_page"></a>wasapisink</span></h2>
31<p>wasapisink</p>
32</td>
33<td class="gallery_image" valign="top" align="right"></td>
34</tr></table></div>
35<div class="refsect1">
36<a name="gst-plugins-bad-plugins-wasapisink.properties"></a><h2>Properties</h2>
37<div class="informaltable"><table class="informaltable" border="0">
38<colgroup>
39<col width="150px" class="properties_type">
40<col width="300px" class="properties_name">
41<col width="200px" class="properties_flags">
42</colgroup>
43<tbody>
44<tr>
45<td class="property_type"><span class="type">GstWasapiDeviceRole</span></td>
46<td class="property_name"><a class="link" href="gst-plugins-bad-plugins-wasapisink.html#GstWasapiSink--role" title="The “role” property">role</a></td>
47<td class="property_flags">Read / Write</td>
48</tr>
49<tr>
50<td class="property_type">
51<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
52<td class="property_name"><a class="link" href="gst-plugins-bad-plugins-wasapisink.html#GstWasapiSink--device" title="The “device” property">device</a></td>
53<td class="property_flags">Read / Write</td>
54</tr>
55<tr>
56<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
57<td class="property_name"><a class="link" href="gst-plugins-bad-plugins-wasapisink.html#GstWasapiSink--mute" title="The “mute” property">mute</a></td>
58<td class="property_flags">Read / Write</td>
59</tr>
60<tr>
61<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
62<td class="property_name"><a class="link" href="gst-plugins-bad-plugins-wasapisink.html#GstWasapiSink--exclusive" title="The “exclusive” property">exclusive</a></td>
63<td class="property_flags">Read / Write</td>
64</tr>
65<tr>
66<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
67<td class="property_name"><a class="link" href="gst-plugins-bad-plugins-wasapisink.html#GstWasapiSink--low-latency" title="The “low-latency” property">low-latency</a></td>
68<td class="property_flags">Read / Write</td>
69</tr>
70<tr>
71<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
72<td class="property_name"><a class="link" href="gst-plugins-bad-plugins-wasapisink.html#GstWasapiSink--use-audioclient3" title="The “use-audioclient3” property">use-audioclient3</a></td>
73<td class="property_flags">Read / Write</td>
74</tr>
75</tbody>
76</table></div>
77</div>
78<div class="refsect1">
79<a name="gst-plugins-bad-plugins-wasapisink.other"></a><h2>Types and Values</h2>
80<div class="informaltable"><table class="informaltable" width="100%" border="0">
81<colgroup>
82<col width="150px" class="name">
83<col class="description">
84</colgroup>
85<tbody><tr>
86<td class="datatype_keyword">struct</td>
87<td class="function_name"><a class="link" href="gst-plugins-bad-plugins-wasapisink.html#GstWasapiSink" title="struct GstWasapiSink">GstWasapiSink</a></td>
88</tr></tbody>
89</table></div>
90</div>
91<div class="refsect1">
92<a name="gst-plugins-bad-plugins-wasapisink.description"></a><h2>Description</h2>
93<p>Provides audio playback using the Windows Audio Session API available with
94Vista and newer.</p>
95<div class="refsect3">
96<a name="id-1.2.245.5.3"></a><h4>Example pipelines</h4>
97<div class="informalexample">
98  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
99    <tbody>
100      <tr>
101        <td class="listing_lines" align="right"><pre>1</pre></td>
102        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v audiotestsrc samplesperbuffer<span class="gtkdoc opt">=</span><span class="number">160</span> <span class="gtkdoc opt">!</span> wasapisink</pre></td>
103      </tr>
104    </tbody>
105  </table>
106</div>
107
108<p> Generate 20 ms buffers and render to the default audio device.</p>
109<div class="informalexample">
110  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
111    <tbody>
112      <tr>
113        <td class="listing_lines" align="right"><pre>1</pre></td>
114        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v audiotestsrc samplesperbuffer<span class="gtkdoc opt">=</span><span class="number">160</span> <span class="gtkdoc opt">!</span> wasapisink low<span class="gtkdoc opt">-</span>latency<span class="gtkdoc opt">=</span><span class="keyword">true</span></pre></td>
115      </tr>
116    </tbody>
117  </table>
118</div>
119
120<p> Same as above, but with the minimum possible latency</p>
121</div>
122<div class="refsynopsisdiv">
123<h2>Synopsis</h2>
124<div class="refsect2">
125<a name="id-1.2.245.5.4.1"></a><h3>Element Information</h3>
126<div class="variablelist"><table border="0" class="variablelist">
127<colgroup>
128<col align="left" valign="top">
129<col>
130</colgroup>
131<tbody>
132<tr>
133<td><p><span class="term">plugin</span></p></td>
134<td>
135            <a class="link" href="gst-plugins-bad-plugins-plugin-wasapi.html#plugin-wasapi">wasapi</a>
136          </td>
137</tr>
138<tr>
139<td><p><span class="term">author</span></p></td>
140<td>Nirbheek Chauhan &lt;nirbheek@centricular.com&gt;</td>
141</tr>
142<tr>
143<td><p><span class="term">class</span></p></td>
144<td>Sink/Audio</td>
145</tr>
146</tbody>
147</table></div>
148</div>
149<hr>
150<div class="refsect2">
151<a name="id-1.2.245.5.4.2"></a><h3>Element Pads</h3>
152<div class="variablelist"><table border="0" class="variablelist">
153<colgroup>
154<col align="left" valign="top">
155<col>
156</colgroup>
157<tbody>
158<tr>
159<td><p><span class="term">name</span></p></td>
160<td>sink</td>
161</tr>
162<tr>
163<td><p><span class="term">direction</span></p></td>
164<td>sink</td>
165</tr>
166<tr>
167<td><p><span class="term">presence</span></p></td>
168<td>always</td>
169</tr>
170<tr>
171<td><p><span class="term">details</span></p></td>
172<td>audio/x-raw, format=(string)F32LE, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</td>
173</tr>
174</tbody>
175</table></div>
176</div>
177</div>
178</div>
179<div class="refsect1">
180<a name="gst-plugins-bad-plugins-wasapisink.functions_details"></a><h2>Functions</h2>
181<p></p>
182</div>
183<div class="refsect1">
184<a name="gst-plugins-bad-plugins-wasapisink.other_details"></a><h2>Types and Values</h2>
185<div class="refsect2">
186<a name="GstWasapiSink"></a><h3>struct GstWasapiSink</h3>
187<pre class="programlisting">struct GstWasapiSink {
188  GstAudioSink parent;
189
190  IMMDevice *device;
191  IAudioClient *client;
192  IAudioRenderClient *render_client;
193  HANDLE event_handle;
194  /* Client was reset, so it needs to be started again */
195  gboolean client_needs_restart;
196
197  /* Actual size of the allocated buffer */
198  guint buffer_frame_count;
199  /* The mix format that wasapi prefers in shared mode */
200  WAVEFORMATEX *mix_format;
201  /* The probed caps that we can accept */
202  GstCaps *cached_caps;
203  /* The channel positions in the data to be written to the device we
204   * will pass this to GstAudioRingbuffer so it can to it translate
205   * from the native GStreamer channel layout. */
206  GstAudioChannelPosition *positions;
207
208  /* properties */
209  gint role;
210  gint sharemode;
211  gboolean mute;
212  gboolean low_latency;
213  gboolean try_audioclient3;
214  wchar_t *device_strid;
215};
216</pre>
217</div>
218</div>
219<div class="refsect1">
220<a name="gst-plugins-bad-plugins-wasapisink.property-details"></a><h2>Property Details</h2>
221<div class="refsect2">
222<a name="GstWasapiSink--role"></a><h3>The <code class="literal">“role”</code> property</h3>
223<pre class="programlisting">  “role”                     <span class="type">GstWasapiDeviceRole</span></pre>
224<p>Role of the device: communications, multimedia, etc</p>
225<p>Flags: Read / Write</p>
226<p>Default value: console</p>
227</div>
228<hr>
229<div class="refsect2">
230<a name="GstWasapiSink--device"></a><h3>The <code class="literal">“device”</code> property</h3>
231<pre class="programlisting">  “device”                   <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
232<p>WASAPI playback device as a GUID string</p>
233<p>Flags: Read / Write</p>
234</div>
235<hr>
236<div class="refsect2">
237<a name="GstWasapiSink--mute"></a><h3>The <code class="literal">“mute”</code> property</h3>
238<pre class="programlisting">  “mute”                     <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
239<p>Mute state of this stream</p>
240<p>Flags: Read / Write</p>
241<p>Default value: FALSE</p>
242</div>
243<hr>
244<div class="refsect2">
245<a name="GstWasapiSink--exclusive"></a><h3>The <code class="literal">“exclusive”</code> property</h3>
246<pre class="programlisting">  “exclusive”                <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
247<p>Open the device in exclusive mode</p>
248<p>Flags: Read / Write</p>
249<p>Default value: FALSE</p>
250</div>
251<hr>
252<div class="refsect2">
253<a name="GstWasapiSink--low-latency"></a><h3>The <code class="literal">“low-latency”</code> property</h3>
254<pre class="programlisting">  “low-latency”              <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
255<p>Optimize all settings for lowest latency. Always safe to enable.</p>
256<p>Flags: Read / Write</p>
257<p>Default value: FALSE</p>
258</div>
259<hr>
260<div class="refsect2">
261<a name="GstWasapiSink--use-audioclient3"></a><h3>The <code class="literal">“use-audioclient3”</code> property</h3>
262<pre class="programlisting">  “use-audioclient3”         <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
263<p>Whether to use the Windows 10 AudioClient3 API when available</p>
264<p>Flags: Read / Write</p>
265<p>Default value: TRUE</p>
266</div>
267</div>
268</div>
269<div class="footer">
270<hr>Generated by GTK-Doc V1.28</div>
271</body>
272</html>