mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-27 07:00:01 -05:00
update docs
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1040 fefdeb5f-60dc-0310-8127-8f9354f1896f
This commit is contained in:
parent
3cf1621433
commit
6654e987c1
5 changed files with 133 additions and 127 deletions
110
doc/FAQ.html.in
110
doc/FAQ.html.in
|
|
@ -2,7 +2,7 @@
|
|||
<!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>
|
||||
<title>PulseAudio: FAQ</title>
|
||||
<link rel="stylesheet" type="text/css" href="style.css" />
|
||||
</head>
|
||||
|
||||
|
|
@ -12,39 +12,39 @@
|
|||
<h1>Frequently Asked Questions</h1>
|
||||
|
||||
<ol>
|
||||
<li><p><b>How does Polypaudio compare with ESOUND/aRts/NAS?</b></p>
|
||||
<li><p><b>How does PulseAudio compare with ESOUND/aRts/NAS?</b></p>
|
||||
|
||||
<p>Polypaudio is sound daemon similar to ESOUND and NAS, but much more
|
||||
<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 Polypaudio. However, I believe that Polypaudio
|
||||
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>Polypaudio is a drop in replacement for ESOUND. That means: you can
|
||||
<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 Polypaudio a GNOME program?</b></p>
|
||||
<p>No, Polypaudio has no dependency on GNOME/GTK/GLIB. All it requires
|
||||
<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 writen with
|
||||
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 Polypaudio in my GLIB/GTK/GNOME application?</b></p>
|
||||
<p>Yes! Polypaudio comes with a GLIB main loop adapter. You can embed
|
||||
<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 Polypaudio in my Qt/KDE application?</b></p>
|
||||
<p>Yes! Polypaudio uses a main loop abstraction layer that allows you
|
||||
to integrate Polypaudio in any program that supports main
|
||||
<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 Polypaudio, are there any docs?</b></p>
|
||||
<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>
|
||||
|
|
@ -54,67 +54,67 @@
|
|||
|
||||
<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 Polypaudio. It should be easy 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 Polypaudio (through a pulseaudio driver
|
||||
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 Polypaudio in the aRts process.</p></li>
|
||||
embed PulseAudio in the aRts process.</p></li>
|
||||
|
||||
<li><p><b>I often hear noises when playing back with Polypaudio, what can I do?</b></p>
|
||||
<p>There are to possible solutions: run pulseaudio with argument
|
||||
<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 Polypaudio to activate
|
||||
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>Polypaudio activates <tt>SCHED_FIFO</tt> scheduling if the user
|
||||
<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
|
||||
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
|
||||
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 pulseaudio SUID root, but only a subset of your users (the
|
||||
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
|
||||
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>
|
||||
<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/pulseaudio/</tt> or
|
||||
in <tt>~/.pulseaudio/</tt>.</p></li>
|
||||
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>
|
||||
<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>
|
||||
<li><p><b>How do I use PulseAudio over the network?</b></p>
|
||||
|
||||
<p>Just set <tt>$POLYP_SERVER</tt> to the host name of the pulseaudio
|
||||
<p>Just set <tt>$POLYP_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>~./pulseaudio-cookie</tt> to all clients that shall
|
||||
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>
|
||||
<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>
|
||||
<li><p><b>What environment variables does PulseAudio care about?</b></p>
|
||||
|
||||
<p>The client honors: <tt>POLYP_SINK</tt> (default sink to connect to), <tt>POLYP_SOURCE</tt> (default source to connect to), <tt>POLYP_SERVER</tt> (default server to connect to, like <tt>ESPEAKER</tt>), <tt>POLYP_BINARY</tt> (the binary to start when autospawning a daemon), <tt>POLYP_CLIENTCONFIG</tt> (path to the client configuration file).</p>
|
||||
|
||||
|
|
@ -126,36 +126,36 @@ be allowed to connect.</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>
|
||||
connect to a running PulseAudio daemon try using the following commands:</p>
|
||||
|
||||
<pre>killall -USR2 pulseaudio
|
||||
bidilink unix-client:/tmp/pulseaudio/cli</pre>
|
||||
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>
|
||||
<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>POLYP_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>POLYP_COOKIE</tt> is set it is used as authentication cookie.</li>
|
||||
<li>If the client configuration file (<tt>~/.pulseaudio/client.conf</tt> or <tt>/etc/pulseaudio/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 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 Polypaudio client libraries look for some X11 root window
|
||||
properties for the credentials of the Polypaudio server to access. You
|
||||
may compile Polypaudio without X11 for disabling this feature.</p></li>
|
||||
<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 Polypaudio as an RTP based N:N multicast
|
||||
<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>
|
||||
|
|
@ -165,7 +165,7 @@ load-module module-rtp-send
|
|||
load-module module-rtp-recv
|
||||
</pre>
|
||||
|
||||
<p>As long as the Polypaudio daemon runs, the microphone data will be
|
||||
<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
|
||||
|
|
@ -182,11 +182,11 @@ announce RTP sessions that are described with SDP. (Modern SIP based VoIP phones
|
|||
|
||||
<p>All three protocols are defined in IETF RFCs (RFC3550, RFC3551,
|
||||
RFC2327, RFC2327). They can be used in both multicast and unicast
|
||||
fashions. Polypaudio exclusively uses multicast RTP/SDP/SAP containing audio data.</p>
|
||||
fashions. PulseAudio exclusively uses multicast RTP/SDP/SAP containing audio data.</p>
|
||||
|
||||
<p>For more information about using these technologies with Polypaudio have a look on the <a href="modules.html#rtp">respective module's documentation</a>.
|
||||
<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 Polypaudio to stream music from my main PC to my LAN with multiple PCs with speakers?</b></p>
|
||||
<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>
|
||||
|
||||
|
|
@ -208,7 +208,7 @@ load-module module-rtp-recv
|
|||
|
||||
<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 Polypaudio to share a single LINE-IN/MIC jack on the entire LAN?</b></p>
|
||||
<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>
|
||||
|
||||
|
|
@ -238,7 +238,7 @@ 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 Polypaudio to playback music on two sound cards simultaneously?</b></p>
|
||||
<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>
|
||||
|
||||
|
|
@ -251,13 +251,13 @@ set-sink-default combined
|
|||
|
||||
<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. Polypaudio
|
||||
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 Polypaudio to combine two stereo soundcards into a virtual surround sound card?</b></p>
|
||||
<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>
|
||||
|
||||
|
|
@ -271,7 +271,7 @@ load-module module-combine sink_name=combined master=output0 slaves=output1 chan
|
|||
time we manually specify the channel mappings for the sinks to make
|
||||
sure everything is routed correctly.</p>
|
||||
|
||||
<p>Please keep in mind that Polypaudio will constantly adjust the
|
||||
<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
|
||||
|
|
@ -281,7 +281,11 @@ 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>
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue