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">|</span> 18 <a href="#gst-plugins-bad-plugins-wasapisink.description" class="shortcut">Description</a></span><span id="nav_properties"> <span class="dim">|</span> 19 <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 <nirbheek@centricular.com></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>