mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-10-29 05:40:23 -04:00
remove all docs from tarball since they are now available on pulseaudio.org
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1059 fefdeb5f-60dc-0310-8127-8f9354f1896f
This commit is contained in:
parent
9a778bddfe
commit
e16cdb50bd
10 changed files with 3 additions and 1563 deletions
295
doc/FAQ.html.in
295
doc/FAQ.html.in
|
|
@ -1,295 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?> <!-- -*-html-helper-*- -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>PulseAudio: FAQ</title>
|
||||
<link rel="stylesheet" type="text/css" href="style.css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
|
||||
<h1>Frequently Asked Questions</h1>
|
||||
|
||||
<ol>
|
||||
<li><p><b>How does PulseAudio compare with ESOUND/aRts/NAS?</b></p>
|
||||
|
||||
<p>PulseAudio is sound daemon similar to ESOUND and NAS, but much more
|
||||
powerful. aRts is a realtime-synthesizer-cum-sound-server, i.e. it
|
||||
does much more than PulseAudio. However, I believe that PulseAudio
|
||||
does what it does much better than any other free sound server.</p>
|
||||
</li>
|
||||
|
||||
<li><p><b>What about ESOUND compatibility?</b></p>
|
||||
<p>PulseAudio is a drop in replacement for ESOUND. That means: you can
|
||||
load a esound compatibility module which implements an ESOUND
|
||||
compatible protocol which allows you to use most of the classic ESOUND
|
||||
compatible programs (including the command line programs like
|
||||
<tt>esdcat</tt>).</p>
|
||||
</li>
|
||||
|
||||
<li><p><b>Is PulseAudio a GNOME program?</b></p>
|
||||
<p>No, PulseAudio has no dependency on GNOME/GTK/GLIB. All it requires
|
||||
is a UNIX-like operating system and very few dependency
|
||||
libraries. However, the accompanying GUI tools are written with
|
||||
gtkmm, i.e. require both GLIB and GTK.</p></li>
|
||||
|
||||
<li><p><b>Can I integrate PulseAudio in my GLIB/GTK/GNOME application?</b></p>
|
||||
<p>Yes! PulseAudio comes with a GLIB main loop adapter. You can embed
|
||||
both the client library and the daemon (!) into your GLIB based
|
||||
application.</p></li>
|
||||
|
||||
<li><p><b>Can I integrate PulseAudio in my Qt/KDE application?</b></p>
|
||||
<p>Yes! PulseAudio uses a main loop abstraction layer that allows you
|
||||
to integrate PulseAudio in any program that supports main
|
||||
loops. Unfortunately there is no adapter for Qt publicly available yet.</p></li>
|
||||
|
||||
<li><p><b>I want to write a new driver for PulseAudio, are there any docs?</b></p>
|
||||
<p>Currently, only the client API is documented with doxygen. Read
|
||||
the source and base your work on a simple module like
|
||||
<tt>module-pipe-sink</tt>.</p></li>
|
||||
|
||||
<li><p><b>What about compatibility with NAS?</b></p>
|
||||
<p>Is not available (yet?). It is doable, but noone has implemented it yet.</p></li>
|
||||
|
||||
<li><p><b>What about compatibility with aRts?</b></p>
|
||||
<p>Is not available. Since aRts is as synthesizer application you'd have to
|
||||
reimplement very much code for PulseAudio. It should be easy to
|
||||
implement limited support for <tt>libartsc</tt> based
|
||||
applications. Noone has done this yet. It is probably a better idea to
|
||||
run <tt>arts</tt> on top of PulseAudio (through a PulseAudio driver
|
||||
for aRts, which nobody has written yet). Another solution would be to
|
||||
embed PulseAudio in the aRts process.</p></li>
|
||||
|
||||
<li><p><b>I often hear noises when playing back with PulseAudio, what can I do?</b></p>
|
||||
<p>There are to possible solutions: run PulseAudio with argument
|
||||
<tt>--high-priority=1</tt> and make yourself member of the group
|
||||
<tt>realtime</tt>, or increase the fragment sizes of the audio
|
||||
drivers. The former will allow PulseAudio to activate
|
||||
<tt>SCHED_FIFO</tt> high priority scheduling (root rights are dropped
|
||||
immediately after this). Keep in mind that this is a potential security hole!</p></li>
|
||||
|
||||
<li><p><b>The <tt>pulseaudio</tt> executable is installed SUID root by default. Why this? Isn't this a potential security hole?</b></p>
|
||||
|
||||
<p>PulseAudio activates <tt>SCHED_FIFO</tt> scheduling if the user
|
||||
passes <tt>--high-priority=1</tt>. This will only succeed when
|
||||
executed as root, therefore the binary is marked SUID root by
|
||||
default. Yes, this is a potential security hole. However, PulseAudio
|
||||
tries its best to minimize the security threat: immediately after
|
||||
startup PulseAudio drops all capabilities except
|
||||
<tt>CAP_SYS_NICE</tt> (At least on systems that support it, like Linux; see <tt>man 7
|
||||
capabilities</tt> for more information). If the calling user is not a
|
||||
member of the group <tt>realtime</tt> (which is required to have a GID
|
||||
< 1000), root rights are dropped immediately. This means, you can
|
||||
install <tt>pulseaudio</tt> SUID root, but only a subset of your users (the
|
||||
members of the group <tt>realtime</tt>) may make use of realtime
|
||||
scheduling. Keep in mind that these users might load their own binary
|
||||
modules into the PulseAudio daemon which may freeze the machine. The
|
||||
daemon has a minimal protection against CPU hogging (the daemon is
|
||||
killed after hogging more than 70% CPU for 5 seconds), but this may
|
||||
be circumvented easily by evildoers.</p></li>
|
||||
|
||||
<li><p><b>I want to run PulseAudio only when it is needed, how do I do this?</b></p>
|
||||
|
||||
<p>Set <tt>autospawn = yes</tt> in <tt>client.conf</tt>. That
|
||||
configuration file may be found either in <tt>/etc/pulse/</tt> or
|
||||
in <tt>~/.pulse/</tt>.</p></li>
|
||||
|
||||
<li><p><b>How do I list all PulseAudio modules installed?</b></p>
|
||||
|
||||
<p><tt>pulseaudio --dump-modules</tt></p>
|
||||
|
||||
<p>Add <tt>-v</tt> for terse usage instructions.</p>
|
||||
|
||||
<li><p><b>How do I use PulseAudio over the network?</b></p>
|
||||
|
||||
<p>Just set <tt>$PULSE_SERVER</tt> to the host name of the PulseAudio
|
||||
server. For authentication you need the same auth cookies on all sides. For
|
||||
that copy <tt>~./pulse-cookie</tt> to all clients that shall
|
||||
be allowed to connect.</p>
|
||||
|
||||
<p>Alternatively the authorization cookies can be stored in the X11 server.</p></li>
|
||||
|
||||
<li><p><b>Is PulseAudio capable of providing synchronized audio playback over the network for movie players like <tt>mplayer</tt>?</b></p>
|
||||
|
||||
<p>Yes! Unless your network is congested in some way (i.e. transfer latencies vary strongly) it works perfectly. Drop me an email for experimental patches for MPlayer.</p>
|
||||
|
||||
<li><p><b>What environment variables does PulseAudio care about?</b></p>
|
||||
|
||||
<p>The client honors: <tt>PULSE_SINK</tt> (default sink to connect to), <tt>PULSE_SOURCE</tt> (default source to connect to), <tt>PULSE_SERVER</tt> (default server to connect to, like <tt>ESPEAKER</tt>), <tt>PULSE_BINARY</tt> (the binary to start when autospawning a daemon), <tt>PULSE_CLIENTCONFIG</tt> (path to the client configuration file).</p>
|
||||
|
||||
<p>The daemon honors: <tt>PULSE_SCRIPT</tt> (default CLI script file run after startup), <tt>PULSE_CONFIG</tt> (default daemon configuration file), <tt>PULSE_DLPATH</tt> (colon separated list of paths where to look for modules)</p></li>
|
||||
|
||||
|
||||
<li><p><b>I saw that SIGUSR2 provokes loading of the module <tt>module-cli-protocol-unix</tt>. But how do I make use of that?</b></p>
|
||||
|
||||
<p>A brilliant guy named Lennart Poettering once wrote a nifty tool
|
||||
for that purpose: <a
|
||||
href="http://0pointer.de/lennart/projects/bidilink/">bidilink</a>. To
|
||||
connect to a running PulseAudio daemon try using the following commands:</p>
|
||||
|
||||
<pre>killall -USR2 pulseaudio
|
||||
bidilink unix-client:/tmp/pulse-$USER/cli</pre>
|
||||
|
||||
<p><i>BTW: Someone should package this great tool for Debian!</i></p>
|
||||
|
||||
<p><b>New:</b> There's now a tool <tt>pacmd</tt> that automates sending SIGUSR2 to the daemon and running a bidilink like tool for you.</p>
|
||||
</li>
|
||||
|
||||
<li><p><b>How do the PulseAudio libraries decide where to connect to?</b></p>
|
||||
<p>The following rule applies:</p>
|
||||
<ol>
|
||||
<li>If the the application using the library specifies a server to connect to it is used. If the connection fails, the library fails too.</li>
|
||||
<li>If the environment variable <tt>PULSE_SERVER</tt> is defined the library connects to that server. If the connection fails, the library fails too.</li>
|
||||
<li>If <tt>$DISPLAY</tt> is set, the library tries to connect to that server and looks for the root window property <tt>POYLP_SERVER</tt> for the host to connect to. If <tt>PULSE_COOKIE</tt> is set it is used as authentication cookie.</li>
|
||||
<li>If the client configuration file (<tt>~/.pulse/client.conf</tt> or <tt>/etc/pulse/client.conf</tt>) sets the server address, the library connects to that server. If the connection fails, the library fails too.</li>
|
||||
<li>The library tries to connect to the default local UNIX socket for PulseAudio servers. If the connection fails, it proceeds with the next item.</li>
|
||||
<li>The library tries to connect to the default local TCP socket for PulseAudio servers. If the connection fails, it proceeds with the next item.</li>
|
||||
<li>If <tt>$DISPLAY</tt> is set, the library tries to connect to the default TCP port of that host. If the connection fails, it proceeds with the next item.</li>
|
||||
<li>The connection fails.</li>
|
||||
</ol>
|
||||
</li>
|
||||
|
||||
<li><p><b>Why the heck does libpulse link against libX11?</b></p>
|
||||
<p>The PulseAudio client libraries look for some X11 root window
|
||||
properties for the credentials of the PulseAudio server to access. You
|
||||
may compile PulseAudio without X11 for disabling this feature.</p></li>
|
||||
|
||||
<li><p><b>How can I use PulseAudio as an RTP based N:N multicast
|
||||
conferencing solution for the LAN?</b></p> <p>After loading all the
|
||||
necessary audio drivers for recording and playback, just load the RTP
|
||||
reciever and sender modules with default parameters:</p>
|
||||
|
||||
<pre>
|
||||
load-module module-rtp-send
|
||||
load-module module-rtp-recv
|
||||
</pre>
|
||||
|
||||
<p>As long as the PulseAudio daemon runs, the microphone data will be
|
||||
streamed to the network and the data from other hosts is played back
|
||||
locally. Please note that this may cause quite a lot of traffic. Hence
|
||||
consider passing <tt>rate=8000 format=ulaw channels=1</tt> to the
|
||||
sender module to save bandwith while still maintaining good quality
|
||||
for speech transmission.</p></li>
|
||||
|
||||
<li><p><b>What is this RTP/SDP/SAP thing all about?</b></p>
|
||||
|
||||
<p>RTP is the <i>Realtime Transfer Protocol</i>. It is a well-known
|
||||
protocol for transferring audio and video data over IP. SDP is the <i>Session
|
||||
Description Protocol</i> and can be used to describe RTP sessions. SAP
|
||||
is the <i>Session Announcement Protocol</i> and can be used to
|
||||
announce RTP sessions that are described with SDP. (Modern SIP based VoIP phones use RTP/SDP for their sessions, too)</p>
|
||||
|
||||
<p>All three protocols are defined in IETF RFCs (RFC3550, RFC3551,
|
||||
RFC2327, RFC2327). They can be used in both multicast and unicast
|
||||
fashions. PulseAudio exclusively uses multicast RTP/SDP/SAP containing audio data.</p>
|
||||
|
||||
<p>For more information about using these technologies with PulseAudio have a look on the <a href="modules.html#rtp">respective module's documentation</a>.
|
||||
|
||||
<li><p><b>How can I use PulseAudio to stream music from my main PC to my LAN with multiple PCs with speakers?</b></p>
|
||||
|
||||
<p>On the sender side create an RTP sink:</p>
|
||||
|
||||
<pre>
|
||||
load-module module-null-sink sink_name=rtp
|
||||
load-module module-rtp-send source=rtp_monitor
|
||||
set-default-sink rtp
|
||||
</pre>
|
||||
|
||||
<p>This will make <tt>rtp</tt> the default sink, i.e. all applications will write to this virtual RTP device by default.</p>
|
||||
|
||||
<p>On the client sides just load the reciever module:</p>
|
||||
<pre>
|
||||
load-module module-rtp-recv
|
||||
</pre>
|
||||
|
||||
<p>Now you can play your favourite music on the sender side and all clients will output it simultaneously.</p>
|
||||
|
||||
|
||||
<p>BTW: You can have more than one sender machine set up like this. The audio data will be mixed on the client side.</p></li>
|
||||
|
||||
<li><p><b>How can I use PulseAudio to share a single LINE-IN/MIC jack on the entire LAN?</b></p>
|
||||
|
||||
<p>On the sender side simply load the RTP sender module:</p>
|
||||
|
||||
<pre>
|
||||
load-module module-rtp-send
|
||||
</pre>
|
||||
|
||||
<p>On the reciever sides, create an RTP source:</p>
|
||||
|
||||
<pre>
|
||||
load-module module-null-sink sink_name=rtp
|
||||
load-module module-rtp-recv sink=rtp
|
||||
set-default-source rtp_monitor
|
||||
</pre>
|
||||
|
||||
<p>Now the audio data will be available from the default source <tt>rtp_monitor</tt>.</p></li>
|
||||
|
||||
<li><p><b>When sending multicast RTP traffic it is recieved on the entire LAN but not by the sender machine itself!</b></p>
|
||||
|
||||
<p>Pass <tt>loop=1</tt> to the sender module!</p></li>
|
||||
|
||||
<li><p><b>Can I have more than one multicast RTP group?</b></p>
|
||||
|
||||
<p>Yes! Simply use a new multicast group address. Use
|
||||
the <tt>destination</tt>/<tt>sap_address</tt> arguments of the RTP
|
||||
modules to select them. Choose your group addresses from the range
|
||||
<tt>225.0.0.x</tt> to make sure the audio data never leaves the LAN.</p></li>
|
||||
|
||||
|
||||
<li><p><b>Can I use PulseAudio to playback music on two sound cards simultaneously?</b></p>
|
||||
|
||||
<p>Yes! Use <a href="modules.html#module-combine"><tt>module-combine</tt></a> for that.</p>
|
||||
|
||||
<pre>
|
||||
load-module module-oss-mmap device="/dev/dsp" sink_name=output0
|
||||
load-module module-oss-mmap device="/dev/dsp1" sink_name=output1
|
||||
load-module module-combine sink_name=combined master=output0 slaves=output1
|
||||
set-sink-default combined
|
||||
</pre>
|
||||
|
||||
<p>This will combine the two sinks <tt>output0</tt> and
|
||||
<tt>output1</tt> into a new sink <tt>combined</tt>. Every sample
|
||||
written to the latter will be forwarded to the former two. PulseAudio
|
||||
will make sure to adjust the sample rate of the slave device in case
|
||||
it deviates from the master device. You can have more than one slave
|
||||
sink attached to the combined sink, and hence combine even three and
|
||||
more sound cards.</p> </li>
|
||||
|
||||
<li><p><b>Can I use PulseAudio to combine two stereo soundcards into a virtual surround sound card?</b></p>
|
||||
|
||||
<p>Yes! You can use use <a href="modules.html#module-combine"><tt>module-combine</tt></a> for that.</p>
|
||||
|
||||
<pre>
|
||||
load-module module-oss-mmap device="/dev/dsp" sink_name=output0 channel_map=left,right channels=2
|
||||
load-module module-oss-mmap device="/dev/dsp1" sink_name=output1 channel_map=rear-left,rear-right channels=2
|
||||
load-module module-combine sink_name=combined master=output0 slaves=output1 channel_map=left,right,rear-left,rear-right channels=4
|
||||
</pre>
|
||||
|
||||
<p>This is mostly identical to the previous example. However, this
|
||||
time we manually specify the channel mappings for the sinks to make
|
||||
sure everything is routed correctly.</p>
|
||||
|
||||
<p>Please keep in mind that PulseAudio will constantly adjust the
|
||||
sample rate to compensate for the deviating quartzes of the sound
|
||||
devices. This is not perfect, however. Deviations in a range of
|
||||
1/44100s (or 1/48000s depending on the sampling frequency) can not be
|
||||
compensated. The human ear will decode these deviations as minor
|
||||
movements (less than 1cm) of the positions of the sound sources
|
||||
you hear. </p>
|
||||
|
||||
</li>
|
||||
|
||||
<li><p><b>Why did you rename Polypaudio to PulseAudio?</b></p>
|
||||
|
||||
<p>Please read this <a href="http://0pointer.de/blog/projects/pulse.html">blog story</a> for an explanation.</p>
|
||||
|
||||
</li>
|
||||
|
||||
</ol>
|
||||
|
||||
<hr/>
|
||||
<address class="grey">Lennart Poettering <@PACKAGE_BUGREPORT@>, April 2006</address>
|
||||
<div class="grey"><i>$Id$</i></div>
|
||||
</body> </html>
|
||||
|
|
@ -16,26 +16,5 @@
|
|||
# along with PulseAudio; if not, write to the Free Software Foundation,
|
||||
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||
|
||||
noinst_DATA = README.html cli.html modules.html daemon.html FAQ.html
|
||||
EXTRA_DIST = $(noinst_DATA) style.css README.html.in cli.html.in modules.html.in daemon.html.in todo FAQ.html.in
|
||||
|
||||
MAINTAINERCLEANFILES = README.html cli.html modules.html daemon.html FAQ.html
|
||||
CLEANFILES =
|
||||
|
||||
if USE_LYNX
|
||||
README: README.html
|
||||
lynx --dump $^ | sed 's,file://localhost/.*/doc/README.html,README,' > $@
|
||||
|
||||
noinst_DATA += README
|
||||
CLEANFILES += README
|
||||
endif
|
||||
|
||||
tidy: README.html cli.html modules.html daemon.html
|
||||
tidy -qe < README.html ; true
|
||||
tidy -qe < cli.html ; true
|
||||
tidy -qe < daemon.html ; true
|
||||
tidy -qe < modules.html ; true
|
||||
tidy -qe < FAQ.html ; true
|
||||
|
||||
.PHONY: tidy
|
||||
EXTRA_DIST = todo
|
||||
|
||||
|
|
|
|||
|
|
@ -1,356 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?> <!-- -*-html-helper-*- -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<head>
|
||||
<title>PulseAudio @PACKAGE_VERSION@</title>
|
||||
<link rel="stylesheet" type="text/css" href="style.css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1><a name="top">PulseAudio @PACKAGE_VERSION@</a></h1>
|
||||
|
||||
<p><i>Copyright 2004-2006 Lennart Poettering <@PACKAGE_BUGREPORT@></i> and Pierre Ossman</p>
|
||||
|
||||
<ul class="toc">
|
||||
<li><a href="#license">License</a></li>
|
||||
<li><a href="#news">News</a></li>
|
||||
<li><a href="#overview">Overview</a></li>
|
||||
<li><a href="#status">Current Status</a></li>
|
||||
<li><a href="#documentation">Documentation</a></li>
|
||||
<li><a href="#requirements">Requirements</a></li>
|
||||
<li><a href="#installation">Installation</a></li>
|
||||
<li><a href="#acks">Acknowledgements</a></li>
|
||||
<li><a href="#download">Download</a></li>
|
||||
<li><a href="#community">Community</a></li>
|
||||
</ul>
|
||||
|
||||
<h2><a name="license">License</a></h2>
|
||||
|
||||
<p>This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.</p>
|
||||
|
||||
<p>This program is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.</p>
|
||||
|
||||
<p>You should have received a copy of the GNU Lesser General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.</p>
|
||||
|
||||
<h2><a name="news">News</a></h2>
|
||||
|
||||
<div class="news-date">Fri Jul 7 2006: </div> <p class="news-text"><a
|
||||
href="@PACKAGE_URL@pulseaudio-0.9.2.tar.gz">Version 0.9.2</a>
|
||||
released; changes include: rename project to PulseAudio (see <a
|
||||
href="http://0pointer.de/blog/projects/pulse.html">this blog
|
||||
article</a> for an explanation); increase maximum number of concurrent
|
||||
connections; fix latency interpolation; add support for reverse endian
|
||||
sound cards; add support for recording in <tt>padsp</tt>; reenable CPU
|
||||
load limiter; other bugfixes</p>
|
||||
|
||||
<div class="news-date">Fri Jun 2 2006: </div> <p class="news-text"><a
|
||||
href="@PACKAGE_URL@polypaudio-0.9.1.tar.gz">Version 0.9.1</a>
|
||||
released; changes include: load modules even when libtool <tt>.la</tt>
|
||||
files are missing; generate better ALSA device names from
|
||||
<tt>module-detect</tt>; if an ALSA device doesn't support the
|
||||
requested number of channels or the frequency, accept what ALSA
|
||||
suggests instead; amd64 portability; drop <tt>.sh</tt> suffix of
|
||||
<tt>esdcompat.sh</tt>; build system fixes; No API or ABI changes were made</p>
|
||||
|
||||
<div class="news-date">Fri May 26 2006: </div> <p class="news-text"><a
|
||||
href="@PACKAGE_URL@polypaudio-0.9.0.tar.gz">Version 0.9.0</a>
|
||||
released; changes include: new module <tt>module-volume-restore</tt>;
|
||||
new OSS API emulation tool <tt>padsp</tt>; require valid UTF8 strings
|
||||
everywhere; properly support ALSA channel maps for surround sound;
|
||||
increase maximum number of channels per stream to 32; add new threaded
|
||||
main loop API for synchronous programs; introduce real shared object
|
||||
versioning; a few API additions; many, many bugfixes</p>
|
||||
|
||||
<div class="news-date">Fri Apr 28 2006: </div> <p class="news-text"><a
|
||||
href="@PACKAGE_URL@polypaudio-0.8.1.tar.gz">Version 0.8.1</a>
|
||||
released; changes include: support for specifying the channel map on
|
||||
the command lines of <tt>paplay</tt> and <tt>pacat</tt> and as
|
||||
arguments to the driver modules; ALSA hardware mixer compatibility;
|
||||
fix linking; properly remove <tt>PF_UNIX</tt> sockets when unloading
|
||||
protocol modules; fix sample cache; many other fixes</p>
|
||||
|
||||
<div class="news-date">Thu Apr 13 2006: </div> <p class="news-text"><a
|
||||
href="@PACKAGE_URL@polypaudio-0.8.tar.gz">Version 0.8</a> released;
|
||||
changes include: too many to count - consider reading <a href="http://0pointer.de/blog/projects/polypaudio-0.8.html">this blog entry</a> for more information; many, many minor fixes.</p>
|
||||
|
||||
<div class="news-date">Sun Nov 21 2004: </div> <p class="news-text"><a
|
||||
href="@PACKAGE_URL@polypaudio-0.7.tar.gz">Version 0.7</a> released;
|
||||
changes include: IPv6 support; PID file support; publish credentials
|
||||
in X11 root window (<tt>module-x11-publish</tt>; new tool <tt>pacmd</tt>; ESOUND backend; new command <tt>load-sample-dir-lazy</tt>; many, many minor fixes.</p>
|
||||
|
||||
<div class="news-date">Thu Oct 28 2004: </div> <p class="news-text"><a
|
||||
href="@PACKAGE_URL@polypaudio-0.6.tar.gz">Version 0.6</a> released;
|
||||
changes include: TCP wrappers support; don't load the complete sound
|
||||
file into memory when playing back using <tt>pa_play_file()</tt>;
|
||||
autoload API change; don't load all sound files as FLOAT32; shorten
|
||||
default buffers; client-side latency interpolation; add new user
|
||||
volume metrics; add <tt>module-tunnel</tt>, <tt>module-null-sink</tt>,
|
||||
<tt>module-match</tt> and new tool <tt>paplay</tt>; new API version
|
||||
macros; many client API improvements; correctly lock cookie file
|
||||
generation; correctly lock daemon autospawning; print daemon layout to
|
||||
STDERR on SIGHUP; new options for <tt>pacat</tt>: allow sample type specification.</p>
|
||||
|
||||
<div class="news-date">Mon Sep 24 2004: </div> <p class="news-text"><a
|
||||
href="@PACKAGE_URL@polypaudio-0.5.1.tar.gz">Version 0.5.1</a> released;
|
||||
changes include: improve esound protocol compatibility; fix
|
||||
autospawning via <tt>libesd</tt>; make use of POSIX capabilities;
|
||||
allow <tt>SCHED_FIFO</tt> scheduling only for users in group
|
||||
<tt>realtime</tt>; minor build system fix.</p>
|
||||
|
||||
<div class="news-date">Mon Sep 20 2004: </div> <p class="news-text"><a
|
||||
href="@PACKAGE_URL@polypaudio-0.5.tar.gz">Version 0.5</a> released;
|
||||
changes include: extensive API improvements, new module
|
||||
<tt>module-combine</tt> for combining multiple sound cards into one,
|
||||
gcc 2.95 compatibility, configuration files, add "lazy" samples,
|
||||
support for source and network latency measurements, add
|
||||
<tt>module-pipe-source</tt>, many other fixes and improvements.</p>
|
||||
|
||||
<div class="news-date">Wed Sep 8 2004: </div> <p class="news-text"><a
|
||||
href="@PACKAGE_URL@polypaudio-0.4.tar.gz">Version 0.4</a> released;
|
||||
changes include: daemon auto spawning, support for <tt>SCHED_FIFO</tt> scheduling, three new modules, proper logging, CPU load watchdog, many fixes.</p>
|
||||
|
||||
<div class="news-date">Fri Aug 27 2004: </div> <p class="news-text"><a
|
||||
href="@PACKAGE_URL@polypaudio-0.3.tar.gz">Version 0.3</a> released;
|
||||
changes include: support for both glib 2.0 and glib 1.2, future cancellation, API updates, many fixes, relicense client library to LGPL.</p>
|
||||
|
||||
<div class="news-date">Fri Aug 20 2004: </div> <p class="news-text"><a
|
||||
href="@PACKAGE_URL@polypaudio-0.2.tar.gz">Version 0.2</a> released;
|
||||
changes include: added sample cache, introspection API, client API
|
||||
documentation, module autoloading, glib support, a module for intercepting X11 bell events, and much more.</p>
|
||||
|
||||
<div class="news-date">Sat Jul 17 2004: </div> <p class="news-text"><a
|
||||
href="@PACKAGE_URL@polypaudio-0.1.tar.gz">Version 0.1</a> released</p>
|
||||
|
||||
<h2><a name="overview">Overview</a></h2>
|
||||
|
||||
<p><a href="http://pulseaudio.org/">PulseAudio</a> is a networked sound server for Linux and other
|
||||
Unix like operating systems and Microsoft Windows. It is intended to be an improved drop-in
|
||||
replacement for the <a
|
||||
href="http://www.tux.org/~ricdude/apps.html">Enlightened Sound
|
||||
Daemon</a> (ESOUND). In addition to the features ESOUND provides
|
||||
PulseAudio has:</p>
|
||||
|
||||
<ul>
|
||||
<li>Extensible plugin architecture (by loading dynamic loadable modules with <tt>dlopen()</tt>)</li>
|
||||
<li>Support for more than one sink/source</li>
|
||||
<li>Better low latency behaviour</li>
|
||||
<li>Embedabble into other software (the core is available as C library)</li>
|
||||
<li>Completely asynchronous C API</li>
|
||||
<li>Simple command line interface for reconfiguring the daemon while running</li>
|
||||
<li>Flexible, implicit sample type conversion and resampling</li>
|
||||
<li>"Zero-Copy" architecture</li>
|
||||
<li>Module autoloading</li>
|
||||
<li>Very accurate latency measurement for playback and recording.</li>
|
||||
<li>May be used to combine multiple sound cards to one (with sample rate adjustment)</li>
|
||||
<li>Client side latency interpolation</li>
|
||||
<li>Ability to fully synchronize multiple playback streams</li>
|
||||
</ul>
|
||||
|
||||
<p>Both the core and the client API are completely asynchronous making
|
||||
use of a simple main loop abstraction layer. This allows easy
|
||||
integration with asynchronous applications using the
|
||||
<tt>glib</tt>/<tt>gtk</tt> mainloop. Since the asynchronous API
|
||||
available through <tt>libpulse</tt> is quite difficult to use there is
|
||||
a simplified synchronous API wrapper <tt>libpulse-simple</tt>
|
||||
available. A simple main loop implementation is available as well.</p>
|
||||
|
||||
<p>The following modules are currently available:</p>
|
||||
|
||||
<ul>
|
||||
<li><tt>module-oss</tt>: driver for <a href="http://www.opensound.com">Open Sound System</a> (OSS) audio sinks and sources.</li>
|
||||
<li><tt>module-oss-mmap</tt>: same as above, but uses <tt>mmap()</tt> access to the audio buffer. Not as compatible bot more accurate in latency calculations</li>
|
||||
<li><tt>module-alsa-sink</tt>, <tt>module-alsa-source</tt>: drivers for <a href="http://www.alsa-project.org/">Advanced Linux
|
||||
Sound Architecture</a> (ALSA) sinks and sources</li>
|
||||
<li><tt>module-solaris</tt>: drivers for Solaris audio sinks and sources</li>
|
||||
<li><tt>module-waveout</tt>: drivers for Microsoft Windows audio sinks and sources</li>
|
||||
<li><tt>module-pipe-sink</tt>, <tt>module-pipe-source</tt>: demonstration module providing UNIX FIFOs backed sinks/sources</li>
|
||||
<li><tt>module-combine</tt>: combine multiple sinks into one, adjusting the sample rate if the their clocks deviate.</li>
|
||||
<li><tt>module-sine</tt>: a sine generate sink input.</li>
|
||||
<li><tt>module-x11-bell</tt>: play a sample from the sample cache on every X11 bell event.</li>
|
||||
<li><tt>module-x11-publish</tt>: store PulseAudio credentials in the X11 root window.</li>
|
||||
<li><tt>module-esound-protocol-tcp</tt>, <tt>module-esound-protocol-unix</tt>: <a href="http://www.tux.org/~ricdude/apps.html">ESOUND</a> compatibility modules (for TCP/IP resp. UNIX domain sockets)</li>
|
||||
<li><tt>module-native-protocol-tcp</tt>, <tt>module-native-protocol-unix</tt>: Native PulseAudio protocol (for TCP/IP resp. UNIX domain sockets)</li>
|
||||
<li><tt>module-simple-protocol-tcp</tt>, <tt>module-simple-protocol-unix</tt>: Simplistic protocol for playback/capture for usage with tools like <tt>netcat</tt> (for TCP/IP resp. UNIX domain sockets)</li>
|
||||
<li><tt>module-cli-protocol-tcp</tt>, <tt>module-cli-protocol-unix</tt>, <tt>module-cli</tt>: Expose PulseAudio's internals whith a simple command line interface. (for TCP/IP resp. UNIX domain sockets resp. STDIN/STDOUT)</li>
|
||||
<li><tt>module-http-protocol-tcp</tt>: Spawns a small HTTP server which can be used to introspect the PulseAudio server with a web browser.</li>
|
||||
<li><tt>module-tunnel-sink</tt>, <tt>module-tunnel-source</tt>: make sinks/sources from other hosts available locally.</li>
|
||||
<li><tt>module-match</tt>: adjust volume automatically for newly created playback streams based on a regular expression matching table.</li>
|
||||
<li><tt>module-volume-restore</tt>: much like <tt>module-match</tt>, but create rules fully automatically based on the client name.</li>
|
||||
<li><tt>module-null-sink</tt>: a clocked sink similar to <tt>/dev/null</tt>.</li>
|
||||
<li><tt>module-esound-sink</tt>: a sink for forwarding audio data to an <a href="http://www.tux.org/~ricdude/apps.html">ESOUND</a> server.</li>
|
||||
<li><tt>module-detect</tt>: a module which automatically detects what sound hardware is available locally and which loads the required driver modules.</li>
|
||||
<li><tt>module-lirc</tt>: a module to control the volume of a sink with infrared remote controls supported by LIRC.</li>
|
||||
<li><tt>module-mmkbd-evdev</tt>: a module to control the volume of a sink with the special volume keys of a multimeda keyboard.</li>
|
||||
<li><tt>module-zeroconf-publish</tt>: a module to publish local sources/sinks using mDNS zeroconf.</li>
|
||||
<li><tt>module-rtp-send</tt>, <tt>module-rtp-recv</tt>: modules to implement RTP/SAP/SDP based audio streaming.</li>
|
||||
<li><tt>module-jack-sink</tt>, <tt>module-jack-source</tt>: connect to a <a href="http://jackit.sourceforge.net/">JACK Audio Connection Kit</a> server. (A sound server for professional audio production)</li>
|
||||
</ul>
|
||||
|
||||
<p>A GTK GUI manager application for PulseAudio is the <a
|
||||
href="http://0pointer.de/lennart/projects/paman/">PulseAudio
|
||||
Manager</a>. Other GTK GUI tool for PulseAudio are the <a
|
||||
href="http://0pointer.de/lennart/projects/pavumeter">PulseAudio Volume
|
||||
Meter</a>, <a
|
||||
href="http://0pointer.de/lennart/projects/padevchooser">PulseAudio Device Chooser</a> and the <a
|
||||
href="http://0pointer.de/lennart/projects/pavucontrol">PulseAudio Volume
|
||||
Control</a> .</p>
|
||||
|
||||
<p>There are output plugins for <a
|
||||
href="http://0pointer.de/lennart/projects/xmms-pulse/">XMMS</a>, <a
|
||||
href="http://0pointer.de/lennart/projects/libao-pulse/">libao</a>
|
||||
(merged in <tt>libao</tt> SVN) and <a
|
||||
href="http://0pointer.de/lennart/projects/gst-pulse/">gstreamer</a>
|
||||
(merged in <tt>gstreamer-plugins</tt> CVS).</p>
|
||||
|
||||
<p>PulseAudio was formerly known as Polypaudio.</p>
|
||||
|
||||
<h2><a name="status">Current Status</a></h2>
|
||||
|
||||
<p>Version @PACKAGE_VERSION@ is quite usable. It matches and supersedes ESOUND's feature set in nearly all areas.</p>
|
||||
|
||||
<h2><a name="documentation">Documentation</a></h2>
|
||||
|
||||
<p>There is some preliminary documentation available: <a
|
||||
href="modules.html"><tt>modules.html</tt></a>, <a
|
||||
href="cli.html"><tt>cli.html</tt></a>, <a
|
||||
href="daemon.html"><tt>daemon.html</tt></a> and <a href="FAQ.html"><tt>FAQ.html</tt></a>.</p>
|
||||
|
||||
<p>There is a <a href="http://www.edgewall.com/products/trac/">Trac</a> based <a href="http://0pointer.de/trac/pulseaudio/">Wiki for PulseAudio</a> available.</p>
|
||||
|
||||
<h3>First Steps</h3>
|
||||
|
||||
<p>Simply start the PulseAudio daemon with the argument <tt>-nC</tt></p>
|
||||
|
||||
<pre>pulseaudio -nC</pre>
|
||||
|
||||
<p>This will present you a screen like this:</p>
|
||||
|
||||
<pre>Welcome to PulseAudio! Use "help" for usage information.
|
||||
>>> </pre>
|
||||
|
||||
<p>Now you can issue CLI commands as described in <a
|
||||
href="cli.html"><tt>cli.html</tt></a>. Another way to start
|
||||
PulseAudio is by specifying a configuration script like that one included in the distribution on the
|
||||
command line :</p>
|
||||
|
||||
<pre>pulseaudio -nF pulseaudio.pa</pre>
|
||||
|
||||
<p>This will load some drivers and protocols automatically.</p>
|
||||
|
||||
<p>The best idea is to configure your daemon in <tt>/etc/pulse/daemon.conf</tt> and <tt>/etc/pulse/default.pa</tt> and to run PulseAudio without any arguments.</p>
|
||||
|
||||
<p><b>Beware!</b> Unless you pass the option <tt>--sysconfdir=/etc</tt> to
|
||||
<tt>configure</tt>, the directory <tt>/etc/pulse/</tt> is really
|
||||
<tt>/usr/local/etc/pulse/</tt>.</p>
|
||||
|
||||
<h3>Developing PulseAudio Clients</h3>
|
||||
|
||||
<p>You may browse the <a href="http://www.doxygen.org/">Doxygen</a> generated <a
|
||||
href="http://0pointer.de/lennart/projects/pulseaudio/doxygen/">programing
|
||||
documentation</a> for the client API. (Run <tt>make doxygen</tt> to generate this documentation from the source tree)</p>
|
||||
|
||||
<h3>Developing PulseAudio Modules</h3>
|
||||
|
||||
<p>There are several reasons for writing loadable modules for PulseAudio:</p>
|
||||
|
||||
<ul>
|
||||
<li>Extended device driver support</li>
|
||||
<li>Protocol support beyond ESOUND's protocol and the native protocol. (such as NAS or a subset of aRts)</li>
|
||||
<li>New programming interfaces such as XMLRPC or DBUS for controlling the daemon.</li>
|
||||
<li>Hooking audio event sources directly into PulseAudio (similar to <tt>module-x11-bell</tt>)</li>
|
||||
<li>For low latency applications such as VOIP: load the VOIP core directly into PulseAudio and have a slim GUI frontend to control it.</li>
|
||||
</ul>
|
||||
|
||||
<p>There is currently no documentation how to write loadable modules
|
||||
for PulseAudio. <i>Read the source, Luke!</i> If you are interested in
|
||||
writing new modules feel free to contact the author in case you have any
|
||||
questions.</p>
|
||||
|
||||
<h2><a name="requirements">Requirements</a></h2>
|
||||
|
||||
<p>Currently, PulseAudio> is tested on Linux, FreeBSD, Solaris and Microsoft Windows. It requires an OSS, ALSA, Win32 or Solaris compatible soundcard.</p>
|
||||
|
||||
<p>PulseAudio was developed and tested on Debian GNU/Linux
|
||||
"testing" from November 2004, it should work on most other Linux
|
||||
distributions (and maybe Unix versions) since it uses GNU autoconf and
|
||||
GNU libtool for source code configuration and shared library
|
||||
management.</p>
|
||||
|
||||
<p>Pulseaudio needs <a
|
||||
href="http://www.mega-nerd.com/SRC/">Secret Rabbit Code (aka
|
||||
<tt>libsamplerate</tt>)</a>, <a
|
||||
href="http://www.mega-nerd.com/libsndfile"><tt>libsndfile</tt></a>, <a
|
||||
href="http://liboil.freedesktop.org/wiki/"><tt>liboil</tt></a>.</p>
|
||||
|
||||
<p>Optionally it can make use of <tt>libwrap</tt>, <a
|
||||
href="http://www.alsa-project.org/">alsa-lib</a>, <a
|
||||
href="http://0pointer.de/lennart/projects/libasyncns/">libasyncns</a>,
|
||||
<a href="http://www.lirc.org/">lirc</a>, <a href="http://www.porchdogsoft.com/products/howl/">HOWL</a> (or preferably the compatibility layer included in its superior replacement <a href="http://www.avahi.org/">Avahi</a>) and <a
|
||||
href="http://www.gtk.org/">GLIB</a>. (The latter is required for
|
||||
building the GLIB main loop integration module only.)</p>
|
||||
|
||||
<h2><a name="installation">Installation</a></h2>
|
||||
|
||||
<p>As this package is made with the GNU autotools you should run
|
||||
<tt>./configure</tt> inside the distribution directory for configuring
|
||||
the source tree. After that you should run <tt>make</tt> for
|
||||
compilation and <tt>make install</tt> (as root) for installation of
|
||||
PulseAudio.</p>
|
||||
|
||||
<h2><a name="acks">Acknowledgements</a></h2>
|
||||
|
||||
<p>Eric B. Mitchell for writing ESOUND</p>
|
||||
|
||||
<p>Jeff Waugh for creating Ubuntu packages (and hopefully soon Debian)</p>
|
||||
|
||||
<p>Miguel Freitas for writing a PulseAudio driver for Xine</p>
|
||||
|
||||
<p>Joe Marcus Clarke for porting PulseAudio to FreeBSD</p>
|
||||
|
||||
<p><a href="http://www.cendio.com">Cendio AB</a> for paying for Pierre's work on PulseAudio</p>
|
||||
|
||||
<p>Sebastien ESTIENNE for testing</p>
|
||||
|
||||
<p>Igor Zubkov for some portability patches</p>
|
||||
|
||||
<p>Jan Schmidt for some latency interpolation love</p>
|
||||
|
||||
<h2><a name="download">Download</a></h2>
|
||||
|
||||
<p>The newest release is always available from <a href="@PACKAGE_URL@">@PACKAGE_URL@</a></p>
|
||||
|
||||
<p>The current release is <a href="@PACKAGE_URL@pulseaudio-@PACKAGE_VERSION@.tar.gz">@PACKAGE_VERSION@</a></p>
|
||||
|
||||
<p>Get PulseAudio's development sources from the <a href="http://subversion.tigris.org/">Subversion</a> <a href="svn://0pointer.de/pulseaudio">repository</a> (<a href="http://0pointer.de/cgi-bin/viewcvs.cgi/?root=pulseaudio">ViewCVS</a>, <a href="http://pulseaudio.org/browser/trunk">Trac</a>): </p>
|
||||
|
||||
<pre>svn checkout svn://0pointer.de/pulseaudio/trunk pulseaudio</pre>
|
||||
|
||||
<h2><a name="community">Community</a></h2>
|
||||
|
||||
<p>If you want to be notified whenever I release a new version of this software use the subscription feature of <a href="http://freshmeat.net/projects/pulseaudio/">Freshmeat</a>.</p>
|
||||
|
||||
<p>There is a general discussion <a href="https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss">mailing list for PulseAudio</a> available. In addition, you can subscribe to <a href="https://tango.0pointer.de/mailman/listinfo/pulseaudio-commits">SVN changes</a> and <a href="https://tango.0pointer.de/mailman/listinfo/pulseaudio-tickets">Trac Tickets</a>.</p>
|
||||
|
||||
<p>PulseAudio is being tracked at <a href="http://cia.navi.cx/stats/project/polypaudio">CIA</a>.</p>
|
||||
|
||||
<p>There's a chance to meet the PulseAudio developers on our <a href="irc://irc.freenode.org/pulseaudio">IRC channel #pulseaudio on irc.freenode.org</a>.</p>
|
||||
|
||||
<p>The main project homepage is <a href="http://pulseaudio.org/">http://pulseaudio.org/</a>.</p>
|
||||
|
||||
<p><b>Please report bugs to <a href="http://pulseaudio.org/newticket">our Trac ticket system</a>.</b></p>
|
||||
|
||||
<hr/>
|
||||
<address class="grey">Lennart Poettering <@PACKAGE_BUGREPORT@>, July 2006</address>
|
||||
<div class="grey"><i>$Id$</i></div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
220
doc/cli.html.in
220
doc/cli.html.in
|
|
@ -1,220 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?> <!-- -*-html-helper-*- -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>PulseAudio: Simple Command Line Language</title>
|
||||
<link rel="stylesheet" type="text/css" href="style.css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>Simple Command Line Language</h1>
|
||||
|
||||
<p>PulseAudio provides a simple command line language used by
|
||||
configuration scripts as well as the modules <tt>module-cli</tt>
|
||||
and <tt>module-cli-protocol-{unix,tcp}</tt>. Empty lines and lines
|
||||
beginning with a hashmark (<tt>#</tt>) are silently ignored. Several
|
||||
commands are supported:</p>
|
||||
|
||||
<h2>Miscellaneous Commands</h2>
|
||||
|
||||
<h3><tt>help</tt></h3>
|
||||
|
||||
<p>Show a quick help on the commands available.</p>
|
||||
|
||||
<h3><tt>exit</tt></h3>
|
||||
|
||||
<p>Terminate the daemon. If you want to terminate a CLI connection
|
||||
("log out") you might want to use <tt>C-d</tt>.</p>
|
||||
|
||||
<h2>Status Commands</h2>
|
||||
|
||||
<h3><tt>list-modules</tt></h3>
|
||||
|
||||
<p>Show all currently loaded modules with their arguments.</p>
|
||||
|
||||
<h3><tt>list-sinks/list-sources</tt></h3>
|
||||
|
||||
<p>Show all currently registered sinks (resp. sources).</p>
|
||||
|
||||
<h3><tt>list-clients</tt></h3>
|
||||
|
||||
<p>Show all currently active clients.</p>
|
||||
|
||||
<h3><tt>list-sink-inputs/list-sink-outputs</tt></h3>
|
||||
|
||||
<p>Show all currently active inputs to sinks (resp. outputs of sources).</p>
|
||||
|
||||
<h3><tt>stat</tt></h3>
|
||||
|
||||
<p>Show some simple statistics about the allocated memory blocks and
|
||||
the space used by them.</p>
|
||||
|
||||
<h3><tt>info</tt></h3>
|
||||
|
||||
<p>A combination of all status commands described above. <tt>ls</tt>
|
||||
and <tt>list</tt> are synonyms for <tt>info</tt>.</p>
|
||||
|
||||
<h2>Module Management</h2>
|
||||
|
||||
<h3><tt>load-module</tt></h3>
|
||||
|
||||
<p>Load a module specified by its name and arguments. For most modules
|
||||
it is OK to be loaded more than once.</p>
|
||||
|
||||
<h3><tt>unload-module</tt></h3>
|
||||
|
||||
<p>Unload a module specified by its index in the module list as
|
||||
returned by <tt>modules</tt>.</p>
|
||||
|
||||
<h2>Configuration Commands</h2>
|
||||
|
||||
<h3><tt>set-sink-volume</tt>/<tt>set-source-volume</tt></h3>
|
||||
|
||||
<p>Set the volume of the specified sink or source. You may specify the sink/source either
|
||||
by its index in the sink/source list or by its name. The volume should be an
|
||||
integer value greater or equal than 0 (= muted). Volume 65536
|
||||
(<tt>0x10000</tt>) is normal volume, values greater than this amplify
|
||||
the audio signal (with clipping).</p>
|
||||
|
||||
<h3><tt>set-sink-mute</tt>/<tt>set-source-mute</tt></h3>
|
||||
|
||||
<p>Mute or unmute the specified sink our source. You may specify the
|
||||
sink/source either by its index or by its name. The mute value is
|
||||
either 0 or 1.</p>
|
||||
|
||||
<h3><tt>set-sink-input-volume</tt></h3>
|
||||
|
||||
<p>Set the volume of a sink input specified by its index the the sink
|
||||
input list. The same volume rules apply as with <tt>sink_volume</tt>.</p>
|
||||
|
||||
<h3><tt>set-default-sink</tt>/<tt>set-default-source</tt></h3>
|
||||
|
||||
<p>Make a sink (resp. source) the default. You may specify the sink
|
||||
(resp. ssource) by its index in the sink (resp. source) list or by its
|
||||
name.</p>
|
||||
|
||||
<h2>Sample Cache</h2>
|
||||
|
||||
<h3><tt>list-samples</tt></h3>
|
||||
|
||||
<p>Lists the contents of the sample cache.</p>
|
||||
|
||||
<h3><tt>play-sample</tt></h3>
|
||||
|
||||
<p>Play a sample cache entry to a sink. Expects the sample name and the sink name as arguments.</p>
|
||||
|
||||
<h3><tt>remove-sample</tt></h3>
|
||||
|
||||
<p>Remove an entry from the sample cache. Expects the sample name as argument.</p>
|
||||
|
||||
<h3><tt>load-sample</tt></h3>
|
||||
|
||||
<p>Load an audio file to the sample cache. Expects the file name to load and the desired sample name as arguments.</p>
|
||||
|
||||
<h3><tt>load-sample-lazy</tt></h3>
|
||||
|
||||
<p>Create a new entry in the sample cache, but don't load the sample
|
||||
immediately. The sample is loaded only when it is first used. After a
|
||||
certain idle time it is freed again. Expects the the desired sample
|
||||
name and file name to load as arguments.</p>
|
||||
|
||||
<h3><tt>load-sample-dir-lazy</tt></h3>
|
||||
|
||||
<p>Load all entries in the specified directory into the sample cache
|
||||
as lazy entries. A shell globbing expression (e.g. <tt>*.wav</tt>) may
|
||||
be appended to the path of the directory to add.</p>
|
||||
|
||||
<h2>Module Autoloading</h2>
|
||||
|
||||
<h3><tt>list-autoload</tt></h3>
|
||||
|
||||
<p>Lists all currently defined autoloading entries.</p>
|
||||
|
||||
<h3><tt>add-autoload-sink/add-autoload-source</tt></h3>
|
||||
|
||||
<p>Adds an autoloading entry for a sink (resp. source). Expects the sink name (resp. source name), the module name and the module arguments as arguments.</p>
|
||||
|
||||
<h3><tt>remove-autoload-sink/remove-autoload-source</tt></h3>
|
||||
|
||||
<p>Remove an autoloading entry. Expects the sink name (resp. source name) as argument.</p>
|
||||
|
||||
<h2>Miscellaneous Commands</h2>
|
||||
|
||||
<h3><tt>play-file</tt></h3>
|
||||
|
||||
<p>Play an audio file to a sink. Expects the file name and the sink name as argumens.</p>
|
||||
|
||||
<h3><tt>dump</tt></h3>
|
||||
|
||||
<p>Dump the daemon's current configuration in CLI commands.</p>
|
||||
|
||||
<h2>Killing Clients/Streams</h2>
|
||||
|
||||
<h3><tt>kill-client</tt></h3>
|
||||
|
||||
<p>Remove a client forcibly from the server. There is no protection that
|
||||
the client reconnects immediately.</p>
|
||||
|
||||
<h3><tt>kill-sink-input/kill-source-output</tt></h3>
|
||||
|
||||
<p>Remove a sink input (resp. source output) forcibly from the
|
||||
server. This will not remove the owning client or any other streams
|
||||
opened by the client from the server.</p>
|
||||
|
||||
<h2>Meta Commands</h2>
|
||||
|
||||
<p>In addition the the commands described above there a few meta
|
||||
directives supported by the command line interpreter:</p>
|
||||
|
||||
<h3><tt>.include</tt></h3>
|
||||
|
||||
<p>Executes the commands from the specified script file.</p>
|
||||
|
||||
<h3><tt>.fail/.nofail</tt></h3>
|
||||
|
||||
<p>Enable (resp. disable) that following failing commands will cancel
|
||||
the execution of the current script file. This is a ignored when used
|
||||
on the interactive command line.</p>
|
||||
|
||||
<h3><tt>.verbose/.noverbose</tt></h3>
|
||||
<p>Enable (resp. disable) extra verbosity.</p>
|
||||
|
||||
<h2>Example Configuration Script</h2>
|
||||
|
||||
<p>Mark the following script as executable (<tt>chmod +x</tt>) and run it for a sensible PulseAudio configuration.</p>
|
||||
|
||||
<pre>
|
||||
#!/usr/bin/polaudio -nF
|
||||
|
||||
# Create autoload entries for the device drivers
|
||||
add-autoload-sink output module-alsa-sink device=plughw:0,0 rate=48000 sink_name=output
|
||||
add-autoload-sink output2 module-oss device=/dev/dsp1 record=0 sink_name=output2
|
||||
add-autoload-sink combined module-combine master=output slaves=output2 sink_name=combined
|
||||
|
||||
add-autoload-source input module-alsa-source device=hw:1,0 source_name=input
|
||||
|
||||
# Load several protocols
|
||||
load-module module-esound-protocol-unix
|
||||
load-module module-simple-protocol-tcp
|
||||
load-module module-native-protocol-unix
|
||||
load-module module-cli-protocol-unix
|
||||
|
||||
# Make some devices default
|
||||
set-default-sink combined
|
||||
set-default-source input
|
||||
|
||||
# Don't fail if the audio files referred to below don't exist
|
||||
.nofail
|
||||
|
||||
# Load an audio to the sample cache for usage with module-x11-bell
|
||||
load-sample-lazy /usr/share/sounds/KDE_Notify.wav x11-bell
|
||||
load-module module-x11-bell sample=x11-bell
|
||||
|
||||
# Play a welcome sound
|
||||
play-file /usr/share/sounds/startup3.wav combined
|
||||
</pre>
|
||||
|
||||
<hr/>
|
||||
<address class="grey">Lennart Poettering <@PACKAGE_BUGREPORT@>, June 2006</address>
|
||||
<div class="grey"><i>$Id$</i></div>
|
||||
</body> </html>
|
||||
|
|
@ -1,88 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?> <!-- -*-html-helper-*- -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>PulseAudio: Daemon</title>
|
||||
<link rel="stylesheet" type="text/css" href="style.css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>Daemon</h1>
|
||||
|
||||
<h2>Command Line Arguments</h2>
|
||||
|
||||
The PulseAudio daemon accepts several command line arguments:
|
||||
|
||||
<pre>
|
||||
COMMANDS:
|
||||
-h, --help Show this help
|
||||
--version Show version
|
||||
--dump-conf Dump default configuration
|
||||
--dump-modules Dump list of available modules
|
||||
-k --kill Kill a running daemon
|
||||
--check Check for a running daemon
|
||||
|
||||
OPTIONS:
|
||||
-D, --daemonize[=BOOL] Daemonize after startup
|
||||
--fail[=BOOL] Quit when startup fails
|
||||
--verbose[=BOOL] Be slightly more verbose
|
||||
--high-priority[=BOOL] Try to set high process priority
|
||||
(only available as root)
|
||||
--disallow-module-loading[=BOOL] Disallow module loading after startup
|
||||
--exit-idle-time=SECS Terminate the daemon when idle and this
|
||||
time passed
|
||||
--module-idle-time=SECS Unload autoloaded modules when idle and
|
||||
this time passed
|
||||
--scache-idle-time=SECS Unload autoloaded samples when idle and
|
||||
this time passed
|
||||
--log-target={auto,syslog,stderr} Specify the log target
|
||||
-p, --dl-search-path=PATH Set the search path for dynamic shared
|
||||
objects (plugins)
|
||||
--resample-method=[METHOD] Use the specified resampling method
|
||||
(one of src-sinc-medium-quality,
|
||||
src-sinc-best-quality,src-sinc-fastest
|
||||
src-zero-order-hold,src-linear,trivial)
|
||||
--use-pid-file[=BOOL] Create a PID file
|
||||
|
||||
STARTUP SCRIPT:
|
||||
-L, --load="MODULE ARGUMENTS" Load the specified plugin module with
|
||||
the specified argument
|
||||
-F, --file=FILENAME Run the specified script
|
||||
-C Open a command line on the running TTY
|
||||
after startup
|
||||
|
||||
-n Don't load default script file
|
||||
</pre>
|
||||
|
||||
<h3>Example</h3>
|
||||
|
||||
<p>It is a good idea to run the daemon like this:</p>
|
||||
|
||||
<pre>pulseaudio -D</pre>
|
||||
|
||||
<p>This will run <tt>/etc/pulse/default.pa</tt> after startup. This should be a script written in the CLI language described in <a href="cli.html">cli.html</a>. </p>
|
||||
|
||||
<h2>Signals</h2>
|
||||
|
||||
<p>The following signals are trapped specially:</p>
|
||||
|
||||
<h3>SIGINT</h3>
|
||||
|
||||
<p>The daemon is shut down cleanly.</p>
|
||||
|
||||
<h3>SIGUSR1</h3>
|
||||
|
||||
<p>The daemon tries to load the module <a href="modules.html#module-cli"><tt>module-cli</tt></a>, effectively providing a command line interface on the calling TTY.</p>
|
||||
|
||||
<h3>SIGUSR2</h3>
|
||||
|
||||
<p>The daemon tries to load the module <a href="modules.html#module-cli-protocol-unix"><tt>module-cli-protocol-unix</tt></a>, effectively providing a command line interface on a special UNIX domain socket.</p>
|
||||
|
||||
<h3>SIGHUP</h3>
|
||||
|
||||
<p>The daemon logs the current server layout.</p>
|
||||
|
||||
<hr/>
|
||||
<address class="grey">Lennart Poettering <@PACKAGE_BUGREPORT@>, June 2006</address>
|
||||
<div class="grey"><i>$Id$</i></div>
|
||||
</body> </html>
|
||||
|
|
@ -1,510 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?> <!-- -*-html-helper-*- -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>PulseAudio: Loadable Modules</title>
|
||||
<link rel="stylesheet" type="text/css" href="style.css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h1>Loadable Modules</h1>
|
||||
|
||||
<p>The following loadable modules are provided with the PulseAudio distribution:</p>
|
||||
|
||||
<h2>Device Drivers</h2>
|
||||
|
||||
<p>All device driver modules support the following parameters:</p>
|
||||
<table>
|
||||
<tr><td><tt>format=</tt></td><td>The sample format (one of <tt>u8</tt>, <tt>s16</tt>, <tt>s16le</tt>, <tt>s16le</tt>, <tt>float32</tt>, <tt>float32be</tt>, <tt>float32le</tt>, <tt>alaw</tt>, <tt>ulaw</tt>) (defaults to <tt>s16</tt>)</td></tr>
|
||||
<tr><td><tt>rate=</tt></td><td>The sample rate (defaults to 44100)</td></tr>
|
||||
<tr><td><tt>channels=</tt></td><td>Audio channels (defaults to 2)</td></tr>
|
||||
<tr><td><tt>sink_name=</tt>, <tt>source_name=</tt></td><td>Name for the sink (resp. source)</td></tr>
|
||||
<tr><td><tt>channel_map=</tt></td><td>Channel map. A list of
|
||||
comma-seperated channel names. The currently defined channel names
|
||||
are: <tt>left</tt>, <tt>right</tt>, <tt>mono</tt>, <tt>center</tt>,
|
||||
<tt>front-left</tt>, <tt>front-right</tt>, <tt>front-center</tt>,
|
||||
<tt>rear-center</tt>, <tt>rear-left</tt>, <tt>rear-right</tt>,
|
||||
<tt>lfe</tt>, <tt>subwoofer</tt>, <tt>front-left-of-center</tt>,
|
||||
<tt>front-right-of-center</tt>, <tt>side-left</tt>,
|
||||
<tt>side-right</tt>, <tt>aux0</tt>, <tt>aux1</tt> to <tt>aux15</tt>,
|
||||
<tt>top-center</tt>, <tt>top-front-left</tt>,
|
||||
<tt>top-front-right</tt>, <tt>top-front-center</tt>,
|
||||
<tt>top-rear-left</tt>, <tt>top-rear-right</tt>,
|
||||
<tt>top-rear-center</tt>, (Default depends on the number of channels
|
||||
and the driver)</td></tr> </table>
|
||||
|
||||
<h3>module-pipe-sink</h3>
|
||||
|
||||
<p>Provides a simple test sink that writes the audio data to a FIFO
|
||||
special file in the file system. The sink name defaults to <tt>pipe_output</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.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>
|
||||
|
||||
<p>Provides a playback sink for devices supported by the <a href="http://www.alsa-project.org/">Advanced Linux
|
||||
Sound Architecture</a> (ALSA). The sink name defaults to <tt>alsa_output</tt>.</p>
|
||||
|
||||
<p>In addition to the general device driver options described above this module supports:</p>
|
||||
|
||||
<table>
|
||||
<tr><td><tt>device=</tt></td><td>The ALSA device to use. (defaults to "plughw:0,0")</td></tr>
|
||||
<tr><td><tt>fragments=</tt></td><td>The desired fragments when opening the device. (defaults to 12)</td></tr>
|
||||
<tr><td><tt>fragment_size=</tt></td><td>The desired fragment size in bytes when opening the device (defaults to 1024)</td></tr>
|
||||
</table>
|
||||
|
||||
<h3>module-alsa-source</h3>
|
||||
|
||||
<p>Provides a recording source for devices supported by the Advanced
|
||||
Linux Sound Architecture (ALSA). The source name defaults to <tt>alsa_input</tt>.</p>
|
||||
|
||||
<p>This module supports <tt>device=</tt>, <tt>fragments=</tt> and <tt>fragment_size=</tt> arguments the same way as <a href="#module-alsa-sink"><tt>module-alsa-sink</tt></a>.</p>
|
||||
|
||||
<a name="module-oss"/>
|
||||
|
||||
<h3>module-oss</h3>
|
||||
|
||||
<p>Provides both a sink and a source for playback, resp. recording on
|
||||
<a href="http://www.opensound.com">Open Sound System</a> (OSS) compatible devices.</p>
|
||||
|
||||
<p>This module supports <tt>device=</tt> (which defaults to <tt>/dev/dsp</tt>), <tt>fragments=</tt> and <tt>fragment_size=</tt> arguments the same way as <a href="#module-alsa-sink"><tt>module-alsa-sink</tt></a>.</p>
|
||||
|
||||
<p>In addition this module supports the following options:</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>
|
||||
</table>
|
||||
|
||||
<p>The sink name (resp. source name) defaults to <tt>oss_output</tt> (resp. <tt>oss_input</tt>).</p>
|
||||
|
||||
<h3>module-oss-mmap</h3>
|
||||
|
||||
<p>Similar to <tt>module-oss</tt> but uses memory mapped
|
||||
(<tt>mmap()</tt>) access to the input/output buffers of the audio
|
||||
device. This provides better latency behaviour but is not as
|
||||
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>
|
||||
|
||||
<a name="module-combine"/>
|
||||
<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 sinks' 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 PulseAudio 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 <a href="http://www.tux.org/~ricdude/apps.html">ESOUND</a> 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"/>
|
||||
|
||||
<h3>module-cli</h3>
|
||||
|
||||
<p>Provides the user with a simple command line interface on the
|
||||
controlling TTY of the daemon. This module may not be loaded more than
|
||||
once.</p>
|
||||
|
||||
<p>For an explanation of the simple command line language used by this
|
||||
module see <a href="cli.html"><tt>cli.html</tt></a>.
|
||||
|
||||
<table>
|
||||
<tr><td><tt>exit_on_eof=</tt></td><td>Accepts a binary numerical argument specifying whether the daemon shuld exit after an EOF was recieved from STDIN (default: 0)</td></tr>
|
||||
</table>
|
||||
|
||||
<a name="module-cli-protocol-unix"/>
|
||||
<a name="module-cli-protocol-tcp"/>
|
||||
<a name="module-cli-protocol"/>
|
||||
|
||||
<h3>module-cli-protocol-{unix,tcp}</h3>
|
||||
|
||||
<p>An implemenation of a simple command line based protocol for
|
||||
controlling the PulseAudio daemon. If loaded, the user may
|
||||
connect with tools like <tt>netcat</tt>, <tt>telnet</tt> or
|
||||
<a href="http://0pointer.de/lennart/projects/bidilink/"><tt>bidilink</tt></a> to the listening sockets and execute commands the
|
||||
same way as with <tt>module-cli</tt>.</p>
|
||||
|
||||
<p><b>Beware!</b> Users are not authenticated when connecting to this
|
||||
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. (Both IPv6 and IPv4 - if available)</p>
|
||||
|
||||
<p>This module supports the following options:</p>
|
||||
|
||||
<table>
|
||||
<tr><td><tt>port=</tt></td><td>(only for <tt>-tcp</tt>) The port number to listen on (defaults to 4712)</td></tr>
|
||||
<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/pulse/cli</tt>)</td></tr>
|
||||
</table>
|
||||
|
||||
<h3>module-simple-protocol-{unix,tcp}</h3>
|
||||
|
||||
<p>An implementation of a simple protocol which allows playback by using
|
||||
simple tools like <tt>netcat</tt>. Just connect to the listening
|
||||
socket of this module and write the audio data to it, or read it from
|
||||
it for playback, resp. recording.</p>
|
||||
|
||||
<p><b>Beware!</b> Users are not authenticated when connecting to this
|
||||
service.</p>
|
||||
|
||||
<p>See <tt>module-cli-protocol-{unix,tcp}</tt> for more information
|
||||
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>rate=</tt>, <tt>format=</tt>, <tt>channels=</tt></td><td>Sample format for streams connecting to this service.</td></tr>
|
||||
<tr><td><tt>playback=</tt>, <tt>record=</tt></td><td>Enable/disable playback/recording</td></tr>
|
||||
<tr><td><tt>sink=</tt>, <tt>source=</tt></td><td>Specify the sink/source this service connects to</td></tr>
|
||||
</table>
|
||||
|
||||
<h3>module-esound-protocol-{unix,tcp}</h3>
|
||||
|
||||
<p>An implemenation of a protocol compatible with the <a
|
||||
href="http://www.tux.org/~ricdude/EsounD.html">Enlightened Sound
|
||||
Daemon</a> (ESOUND, <tt>esd</tt>). When you load this module you may
|
||||
access the PulseAudio daemon with tools like <tt>esdcat</tt>,
|
||||
<tt>esdrec</tt> or even <tt>esdctl</tt>. Many applications, such as
|
||||
XMMS, include support for this protocol.</p>
|
||||
|
||||
<p>See <tt>module-cli-protocol-{unix,tcp}</tt> for more information
|
||||
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>sink=</tt>, <tt>source=</tt></td><td>Specify the sink/source this service connects to</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>
|
||||
|
||||
<p>This implementation misses some features the original ESOUND has: e.g. there is no sample cache yet. However: XMMS works fine.</p>
|
||||
|
||||
<h3>module-native-protocol-{unix,tcp}</h3>
|
||||
|
||||
<p>The native protocol of PulseAudio.</p>
|
||||
|
||||
<p>See <tt>module-cli-protocol-{unix,tcp}</tt> for more information
|
||||
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>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 PulseAudio 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>
|
||||
|
||||
<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>sample=</tt></td><td>The sample to play. If ommited defaults to <tt>x11-bell</tt>.</td></tr>
|
||||
<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 PulseAudio server in the
|
||||
X11 root window. The following properties are used:
|
||||
<tt>PULSE_SERVER</tt>, <tt>POYLP_SINK</tt>, <tt>PULSE_SOURCE</tt>,
|
||||
<tt>PULSE_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 PulseAudio 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>pulseaudio</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>PulseAudio 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>PulseAudio 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>PulseAudio 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
|
||||
PulseAudio 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 PulseAudio 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 PulseAudio 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>PulseAudio</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) PulseAudio 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 PulseAudio 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 PulseAudio. 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 PulseAudio. 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 (defaults to <tt>~/.pulse/match.table</tt>)</td></tr>
|
||||
</table>
|
||||
|
||||
<p>The table file should contain a regexp and volume on each line, seperated by spaces. An example:</p>
|
||||
|
||||
<pre>
|
||||
^sample: 32000
|
||||
</pre>
|
||||
|
||||
<p>The volumes of all streams with titles starting with <tt>sample:</tt> are automatically set to 32000. (FYI: All sample cache streams start with <tt>sample:</tt>)</p>
|
||||
|
||||
<h3>module-volume-restore</h3>
|
||||
|
||||
<p>Adjust the volume of a playback stream automatically based on its name.</p>
|
||||
|
||||
<table>
|
||||
<tr><td><tt>table=</tt></td><td>The table file to use (defaults to <tt>~/.pulse/volume.table</tt>)</td></tr>
|
||||
</table>
|
||||
|
||||
<p>In contrast to <tt>module-match</tt> this module needs no explicit
|
||||
configuration. Instead the volumes are saved and restored in a fully
|
||||
automatical fashion depending on the client name to identify
|
||||
streams. The volume for a stream is automatically saved every time it is
|
||||
changed and than restored when a new stream is created.</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 <@PACKAGE_BUGREPORT@>, April 2006</address>
|
||||
<div class="grey"><i>$Id$</i></div>
|
||||
</body> </html>
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
/* $Id$ */
|
||||
|
||||
/***
|
||||
* This file is part of PulseAudio.
|
||||
*
|
||||
* PulseAudio is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* PulseAudio is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with PulseAudio; if not, write to the Free Software Foundation,
|
||||
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||
***/
|
||||
|
||||
body { color: black; background-color: white; }
|
||||
a:link, a:visited { color: #900000; }
|
||||
div.news-date { font-size: 80%; font-style: italic; }
|
||||
pre { background-color: #f0f0f0; padding: 0.4cm; }
|
||||
.grey { color: #8f8f8f; font-size: 80%; }
|
||||
table { margin-left: 1cm; border:1px solid lightgrey; padding: 0.2cm; }
|
||||
td { padding-left:10px; padding-right:10px; }
|
||||
Loading…
Add table
Add a link
Reference in a new issue