]> code.delx.au - pulseaudio/blobdiff - doc/modules.html.in
add JACK module documentation
[pulseaudio] / doc / modules.html.in
index fe202989e95becd18e10c2755b882a7d0662b7e4..3785912cf685677066c5d32844434e8f7dac651a 100644 (file)
@@ -30,9 +30,27 @@ special file in the file system. The sink name defaults to <tt>pipe_output</tt>.
 <p>The following option is supported:</p>
 
 <table>
-  <tr><td><tt>file=</tt></td><td>The name of the FIFO special file to use</td></tr>
+  <tr><td><tt>file=</tt></td><td>The name of the FIFO special file to use. (defaults to: <tt>/tmp/music.output</tt>)</td></tr>
 </table>
 
+<h3>module-pipe-source</h3>
+
+<p>Provides a simple test source that reads the audio data from a FIFO
+special file in the file system. The source name defaults to <tt>pipe_input</tt>.</p>
+
+<p>The following option is supported:</p>
+
+<table>
+  <tr><td><tt>file=</tt></td><td>The name of the FIFO special file to use. (defaults to: <tt>/tmp/music.input</tt>)</td></tr>
+</table>
+
+
+<h3>module-null-sink</h3>
+
+<p>Provides a simple null sink. All data written to this sink is silently dropped. This sink is clocked using the system time.</p>
+
+<p>This module doesn't support any special parameters</p>
+
 <a name="module-alsa-sink"/>
 
 <h3>module-alsa-sink</h3>
@@ -82,6 +100,73 @@ compatible as <tt>module-oss</tt>.</p>
 
 <p>This module accepts exactly the same arguments as <a href="#module-oss"><tt>module-oss</tt></a>.</p>
 
+<h3>module-solaris</h3>
+
+<P>Provides a sink and source for the Solaris audio device.</p>
+
+<p>In addition to the general device driver options described above this module supports:</p>
+
+<table>
+  <tr><td><tt>record=</tt></td><td>Accepts a binary numerical value for enabling (resp. disabling) the recording on this device. (defaults: to 1)</td></tr>
+  <tr><td><tt>playback=</tt></td><td>Accepts a binary numerical value for enabling (resp. disabling) the playback on this device. (defaults: to 1)</td></tr>
+  <tr><td><tt>buffer_size=</tt></td><td>Record buffer size</td></tr>
+</table>
+
+<h3>module-waveout</h3>
+
+<P>Provides a sink and source for the Win32 audio device.</p>
+
+<p>This module supports all arguments thet <tt>module-oss</tt> supports except <tt>device=</tt>.</p>
+
+<h3>module-combine</h3>
+
+<p>This combines two or more sinks into one. A new virtual sink is
+allocated. All data written to it is forwarded to all connected
+sinks. In aequidistant intervals the sample rates of the output sinks
+is recalculated: i.e. even when the sink's crystals deviate (which is
+normally the case) output appears synchronously to the human ear. The
+resampling required for this may be very CPU intensive.</p>
+
+<table>
+  <tr><td><tt>sink_name=</tt></td><td>The name for the combined sink. (defaults to  <tt>combined</tt>)</td></tr>
+  <tr><td><tt>master=</tt></td><td>The name of the first sink to link into the combined think. The sample rate/type is taken from this sink.</td></tr>
+  <tr><td><tt>slaves=</tt></td><td>Name of additional sinks to link into the combined think, seperated by commas.</td></tr>
+  <tr><td><tt>adjust_time=</tt></td><td>Time in seconds when to readjust the sample rate of all sinks. (defaults to 20)</td></tr>
+  <tr><td><tt>resample_method=</tt></td><td>Resampling algorithm to
+use. See <tt>libsamplerate</tt>'s documentation for more
+information. Use one of <tt>sinc-best-quality</tt>,
+<tt>sinc-medium-quality</tt>, <tt>sinc-fastest</tt>,
+<tt>zero-order-hold</tt>, <tt>linear</tt>. If the default happens to
+be to slow on your machine try using <tt>zero-order-hold</tt>. This
+will decrease output quality however. (defaults to
+<tt>sinc-fastest</tt>)</td></tr> </table>
+
+<h3>module-tunnel-{sink,source}</h3>
+
+<p>Tunnel a remote sink/source to a local "ghost"
+sink/source. Requires a running polypaudio daemon on the remote server
+with <tt>module-native-protocol-tcp</tt> loaded. It's probably a
+better idea to connect to the remote sink/source directly since some
+buffer control is lost through this tunneling.</p>
+
+<table>
+  <tr><td><tt>server=</tt></td><td>The server to connect to</td></tr>
+  <tr><td><tt>source=</tt></td><td>The source on the remote server. Only available for <tt>module-tunnel-source</tt>.</td></tr>
+  <tr><td><tt>sink=</tt></td><td>The sink on the remote server. Only available for <tt>module-tunnel-sink</tt>.</td></tr>
+  <tr><td><tt>cookie=</tt></td><td>The authentication cookie file to use.</td></tr>
+</table>
+
+<h3>module-esound-sink</h3>
+
+<p>Create a playback sink using an ESOUND server as backend. Whenever you can, try to omit this
+module since it has many disadvantages including bad latency
+and even worse latency measurement. </p>
+
+<table>
+  <tr><td><tt>server=</tt></td><td>The server to connect to</td></tr>
+  <tr><td><tt>cookie=</tt></td><td>The authentication cookie file to use.</td></tr>
+</table>
+
 <h2>Protocols</h2>
 
 <a name="module-cli"/>
@@ -115,7 +200,7 @@ service.</p>
 <p>This module exists in two versions: with the suffix <tt>-unix</tt>
 the service will listen on an UNIX domain socket in the local file
 system. With the suffix <tt>-tcp</tt> it will listen on a network
-transparent TCP/IP socket.</p>
+transparent TCP/IP socket. (Both IPv6 and IPv4 - if available)</p>
 
 <p>This module supports the following options:</p>
 
@@ -124,6 +209,7 @@ transparent TCP/IP socket.</p>
   <tr><td><tt>loopback=</tt></td><td>(only for <tt>-tcp</tt>) Accepts
 a numerical binary value. If 1 the socket is bound to the loopback
 device, i.e. not publicly accessible. (defaults to 1)</td></tr>
+  <tr><td><tt>listen=</tt></td><td>(only for <tt>-tcp</tt>) The IP address to listen on. If specified, supersedes the value specified in <tt>loopback=</tt></td></tr>
   <tr><td><tt>socket=</tt></td><td>(only for <tt>-unix</tt>) The UNIX socket name (defaults to <tt>/tmp/polypaudio/cli</tt>)</td></tr>
 </table>
 
@@ -164,7 +250,7 @@ about the two possible suffixes of this module.</p>
 
 <table>
   <tr><td><tt>sink=</tt>, <tt>source=</tt></td><td>Specify the sink/source this service connects to</td></tr>
-  <tr><td><tt>public=</tt></td><td>If set to 0 not authentication is required to connect to the service</td></tr>
+  <tr><td><tt>auth-anonymous=</tt></td><td>If set to 1 no authentication is required to connect to the service</td></tr>
   <tr><td><tt>cookie=</tt></td><td>Name of the cookie file for authentication purposes</td></tr>
 </table>
 
@@ -180,10 +266,25 @@ about the two possible suffixes of this module.</p>
 <p>In addition to the options supported by <a href="module-cli-protocol"><tt>module-cli-protocol-*</tt></a>, this module supports:</p>
 
 <table>
-  <tr><td><tt>public=</tt></td><td>If set to 0 not authentication is required to connect to the service</td></tr>
+  <tr><td><tt>auth-anonymous=</tt></td><td>If set to 1 no authentication is required to connect to the service</td></tr>
+  <tr><td><tt>auth-group=</tt></td><td>(only for <tt>-unix</tt>): members of the specified unix group may access the server without further auhentication.</td></tr>
   <tr><td><tt>cookie=</tt></td><td>Name of the cookie file for authentication purposes</td></tr>
 </table>
 
+<h3>module-native-protocol-fd</h3>
+
+<p>This is used internally when auto spawning a new daemon. Don't use it directly.</p>
+
+<h3>module-http-protocol-tcp</h3>
+
+<p>A proof-of-concept HTTP module, which can be used to introspect
+the current status of the polypaudio daemon using HTTP. Just load this
+module and point your browser to <a
+href="http://localhost:4714/">http://localhost:4714/</a>. This module takes the same arguments
+as <tt>module-cli-protocol-tcp</tt>.</p>
+
+<h2>X Window System</h2>
+
 <h3>module-x11-bell</h3>
 
 <p>Intercepts X11 bell events and plays a sample from the sample cache on each occurence.</p>
@@ -194,7 +295,187 @@ about the two possible suffixes of this module.</p>
   <tr><td><tt>sink=</tt></td><td>Name of the sink to play the sample on. If ommited defaults to the default sink.</td></tr>
 </table>
 
+<h3>module-x11-publish</h3>
+
+<p>Publishes the access credentials to the Polypaudio server in the
+X11 root window. The following properties are used:
+<tt>POLYP_SERVER</tt>, <tt>POYLP_SINK</tt>, <tt>POLYP_SOURCE</tt>,
+<tt>POLYP_COOKIE</tt>. This is very useful when using SSH or any other
+remote login tool for logging into other machines and getting audio
+playback to your local speakers. The Polypaudio client libraries make
+use of this data automatically. Instead of using this module you may
+use the tool <tt>pax11publish</tt> which may be used to access, modify
+and import credential data from/to the X11 display.</p>
+
+<table>
+  <tr><td><tt>display=</tt></td><td>X11 display to connect to. If ommited defaults to the value of <tt>$DISPLAY</tt></td></tr>
+  <tr><td><tt>sink=</tt></td><td>Name of the default sink. If ommited this property isn't stored in the X11 display.</td></tr>
+  <tr><td><tt>source=</tt></td><td>Name of the default source. If ommited this property isn't stored in the X11 display.</td></tr>
+  <tr><td><tt>cookie=</tt></td><td>Name of the cookie file of the
+cookie to store in the X11 display. If ommited the cookie of an
+already loaded protocol module is used.</td></tr> </table>
+
+<h2>Volume Control</h2>
+
+<h3>module-mmkbd-evdev</h3>
+
+<p>Adjust the volume of a sink when the special multimedia buttons of modern keyboards are pressed.</p>
+
+<table>
+  <tr><td><tt>device=</tt></td><td>Linux input device ("<tt>evdev</tt>", defaults to <tt>/dev/input/event0</tt>)</td></tr>
+  <tr><td><tt>sink=</tt></td><td>The sink to control</td></tr>
+</table>
+
+<h3>module-lirc</h3>
+
+<p>Adjust the volume of a sink when the volume buttons of an infrared remote control are pressed (through LIRC).</p>
+
+<table>
+  <tr><td><tt>config=</tt></td><td>The LIRC configuration file</td></tr>
+  <tr><td><tt>appname=</tt></td><td>The application name to pass to LIRC (defaults to <tt>polypaudio</tt>)</td></tr>
+  <tr><td><tt>sink=</tt></td><td>The sink to control</td></tr>
+</table>
+
+<a name="rtp"/>
+<h2>RTP/SDP/SAP Transport</h2>
+
+<p>Polypaudio can stream audio data to an IP multicast group via the
+standard protocols <a
+href="http://en.wikipedia.org/wiki/Real-time_Transport_Protocol">RTP</a>,
+<a
+href="http://en.wikipedia.org/wiki/Session_Announcement_Protocol">SAP</a>
+and <a
+href="http://en.wikipedia.org/wiki/Session_Description_Protocol">SDP</a>
+(RFC3550, RFC3551, RFC2327, RFC2327). This can be used for multiple
+different purposes: for sharing a single microphone on multiple
+computers on the local LAN, for streaming music from a single
+controlling PC to multiple PCs with speakers or to implement a simple
+"always-on" teleconferencing solution.</p>
+
+<p>The current implementation is designed to be used exlusively in
+local area networks, though Internet multicasting is theoretically
+supported. Only uncompressed audio is supported, hence you won't be
+able to multicast more than a few streams at the same time over a
+standard LAN.</p>
+
+<p>Polypaudio implements both a sender and a reciever for RTP
+traffic. The sender announces itself via SAP/SDP on the same multicast
+group as it sends the RTP data to. The reciever picks up the SAP/SDP
+announcements and creates a playback stream for each
+session. Alternatively you can use any RTP capable client to
+recieve and play back the RTP data (such as <tt>mplayer</tt>).</p>
+
+<h3>module-rtp-send</h3>
+
+<p>This is the sender side of the RTP/SDP/SAP implementation. It reads
+audio data from an existing source and forwards it to the network
+encapsulated in RTP. In addition it sends SAP packets with an SDP
+session description.</p>
+
+<p>In combination with the monitor source of <tt>module-null-sink</tt>
+you can use this module to create an RTP sink.</p>
+
+<table>
+  <tr><td><tt>source=</tt></td><td>The source to read the audio data from. If ommited defaults to the default source.</td></tr>
+  <tr><td><tt>format=, rate=, channels=</tt></td><td>Sample format to use, defaults to the source's.</td></tr>
+  <tr><td><tt>destination=</tt></td><td>Destination multicast group for both RTP and SAP packets, defaults to <tt>224.0.0.56</tt></td></tr>
+  <tr><td><tt>port=</tt></td><td>Destination port number of the RTP
+traffic. If ommited defaults to a randomly chosen even port
+number. Please keep in mind that the RFC suggests to use only even
+port numbers for RTP traffic.</td></tr>
+  <tr><td><tt>mtu=</tt></td><td>Maximum payload size for RTP packets. If ommited defaults to 1280</td></tr>
+  <tr><td><tt>loop=</tt></td><td>Takes a boolean value, specifying whether locally generated RTP traffic should be looped back to the local host. Disabled by default.</td></tr>
+</table>
+
+<h3>module-rtp-recv</h3>
+
+<p>This is the reciever side of the RTP/SDP/SAP implementation. It
+picks up SAP session announcements and creates an RTP playback stream
+for each.</p>
+
+<p>In combination with <tt>module-null-sink</tt> you can use this
+module to create an RTP source.</p>
+
+<table>
+  <tr><td><tt>sink=</tt></td><td>The sink to connect to. If ommited defaults to the default sink.</td></tr>
+  <tr><td><tt>sap_address=</tt></td><td>The multicast group to join for SAP announcements, defaults to <tt>224.0.0.56</tt>.</td></tr>
+</table>
+
+<h2>JACK Connectivity</h2>
+
+<p>Polypaudio can be hooked up to a <a
+href="http://jackit.sourceforge.net/">JACK Audio Connection Kit</a> server which is a specialized sound server used for professional audio production on Unix/Linux. Both a
+Polypaudio sink and a source are available. For each channel a port is
+created in the JACK server.</p>
+
+<h3>module-jack-sink</h3>
+
+<p>This module implements a Polypaudio sink that connects to JACK and registers as many output ports as requested.</p>
+
+<table>
+  <tr><td><tt>sink_name=</tt></td><td>The name for the Polypaudio sink. If ommited defaults to <tt>jack_out</tt>.</td></tr>
+  <tr><td><tt>server_name=</tt></td><td>The JACK server to connect to. If ommited defaults to the default server.</td></tr>
+  <tr><td><tt>client_name=</tt></td><td>The client name to tell the JACK server. If ommited defaults to <tt>polypaudio</tt>.</td></tr>
+  <tr><td><tt>channels=</tt></td><td>Number of channels to register. If ommited defaults to the number of physical playback ports of the JACK server.</td></tr>
+  <tr><td><tt>connect=</tt></td><td>Takes a boolean value. If enabled (the default) Polypaudio will try to connect its ports to the physicial playback ports of the JACK server</td></tr>
+</table>
+
+<h3>module-jack-source</h3>
+
+<p>This module implements a Polypaudio source that connects to JACK
+and registers as many input ports as requested. Takes the same
+arguments as <tt>module-jack-sink</tt>, except for <tt>sink_name</tt>
+which is replaced by <tt>source_name</tt> (with a default of <tt>jack_in</tt>) for obvious reasons.</p>
+
+<h2>Miscellaneous</h2>
+
+<h3>module-sine</h3>
+
+<p>Creates a sink input and generates a sine waveform stream.</p>
+
+<table>
+  <tr><td><tt>sink=</tt></td><td>The sink to connect to. If ommited defaults to the default sink.</td></tr>
+  <tr><td><tt>frequency=</tt></td><td>The frequency to generate in Hertz. Defaults to 440.</td></tr>
+</table>
+
+<h3>module-esound-compat-spawnfd</h3>
+
+<p>This is a compatibility module for <tt>libesd</tt> based autospawning of polypaudio. Don't use it directly.</p>
+
+<h3>module-esound-compat-spawnpid</h3>
+
+<p>This is a compatibility module for <tt>libesd</tt> based autospawning of polypaudio. Don't use it directly.</p>
+
+<h3>module-match</h3>
+
+<p>Adjust the volume of a playback stream automatically based on its name.</p>
+
+<table>
+  <tr><td><tt>table=</tt></td><td>The regular expression matching table file to use</td></tr>
+</table>
+
+<p>The table file should contain a regexp and volume on each line, seperated by spaces. An example:</p>
+
+<pre>
+^sample: 25
+</pre>
+
+<p>The volumes of all streams with titles starting with <tt>sample:</tt> are automatically set to 25. (FYI: All sample cache streams start with <tt>sample:</tt>)</p>
+
+<h3>module-detect</h3>
+
+<p>Automatically detect the available sound hardware and load modules for it. Supports OSS, ALSA, Solaris and Win32 output drivers. 
+
+<table>
+  <tr><td><tt>just-one=</tt></td><td>If set to <tt>1</tt> the module will only try to load a single sink/source and than stop.</td></tr>
+</table>
+
+<h3>module-zeroconf-publish</h3>
+
+<p>Publish all local sinks/sources using mDNS Zeroconf.</p>
+
+
 <hr/>
-<address class="grey">Lennart Poettering &lt;@PACKAGE_BUGREPORT@&gt;, August 2004</address>
+<address class="grey">Lennart Poettering &lt;@PACKAGE_BUGREPORT@&gt;, April 2006</address>
 <div class="grey"><i>$Id$</i></div>
 </body> </html>