glfs/multimedia/libdriv/pulseaudio.xml

422 lines
14 KiB
XML
Raw Normal View History

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../../general.ent">
%general-entities;
<!ENTITY pulseaudio-download-http "http://freedesktop.org/software/pulseaudio/releases/pulseaudio-&pulseaudio-version;.tar.xz">
<!ENTITY pulseaudio-download-ftp " ">
<!ENTITY pulseaudio-md5sum "47fd7eca8479c757822bee68a1feef25">
<!ENTITY pulseaudio-size "1.4 MB">
<!ENTITY pulseaudio-buildsize "105 MB">
<!ENTITY pulseaudio-time "1.6 SBU">
]>
<sect1 id="pulseaudio" xreflabel="PulseAudio-&pulseaudio-version;">
<?dbhtml filename="pulseaudio.html"?>
<sect1info>
<othername>$LastChangedBy$</othername>
<date>$Date$</date>
</sect1info>
<title>PulseAudio-&pulseaudio-version;</title>
<indexterm zone="pulseaudio">
<primary sortas="a-PulseAudio">PulseAudio</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to PulseAudio</title>
<para>
<application>PulseAudio</application> is a sound system for POSIX OSes,
meaning that it is a proxy for sound applications. It allows you to do
advanced operations on your sound data as it passes between your application
and your hardware. Things like transferring the audio to a different machine,
changing the sample format or channel count and mixing several sounds into
one are easily achieved using a sound server.
</para>
&lfs73_checked;
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>
Download (HTTP): <ulink url="&pulseaudio-download-http;"/>
</para>
</listitem>
<listitem>
<para>
Download (FTP): <ulink url="&pulseaudio-download-ftp;"/>
</para>
</listitem>
<listitem>
<para>
Download MD5 sum: &pulseaudio-md5sum;
</para>
</listitem>
<listitem>
<para>
Download size: &pulseaudio-size;
</para>
</listitem>
<listitem>
<para>
Estimated disk space required: &pulseaudio-buildsize;
</para>
</listitem>
<listitem>
<para>
Estimated build time: &pulseaudio-time;
</para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">PulseAudio Dependencies</bridgehead>
<bridgehead renderas="sect4">Required</bridgehead>
<para role="required">
<xref linkend="intltool"/>,
<xref linkend="json-c"/>,
<xref linkend="libsndfile"/> and
<xref linkend="pkgconfig"/>
</para>
<bridgehead renderas="sect4">Recommended</bridgehead>
<para role="recommended">
<xref linkend="alsa-lib"/>,
<xref linkend="dbus"/>,
<xref linkend="libcap2"/>,
<xref linkend="openssl"/>,
<xref linkend="speex"/> and
<xref linkend="xorg7-lib"/> <!-- Useful for KDE, too -->
</para>
<bridgehead renderas="sect4">Optional (Required if building GNOME)</bridgehead>
<para role="optional">
<xref linkend="GConf"/>,
<xref linkend="glib2"/> and
<xref linkend="gtk2"/>
</para>
<bridgehead renderas="sect4">Optional</bridgehead>
<para role="optional">
<xref linkend="avahi"/>,
<xref linkend="bluez"/> and <xref linkend="sbc"/>,
<xref linkend="check"/>,
<ulink url="http://www.fftw.org/">FFTW</ulink>,
<ulink url="http://www.jackaudio.org/">JACK</ulink>,
<ulink url="http://0pointer.de/lennart/projects/libasyncns/">libasyncns</ulink>,
<xref linkend="libsamplerate"/>,
<ulink url="http://www.lirc.org/">LIRC</ulink>,
<ulink url="http://code.entropywave.com/projects/orc/">ORC</ulink>,
<ulink url="http://tdb.samba.org/">TDB</ulink>,
<ulink url="http://valgrind.org/">Valgrind</ulink>,
<ulink url="http://freedesktop.org/software/pulseaudio/webrtc-audio-processing/">
WebRTC AudioProcessing</ulink> and
<ulink url="http://www.xen.org/">XEN</ulink>
</para>
<para condition="html" role="usernotes">User Notes:
<ulink url="&blfs-wiki;/pulseaudio"/>
</para>
</sect2>
<sect2 role="installation">
<title>Installation of PulseAudio</title>
<para>
In order for <application>PulseAudio</application> to communicate
properly with D-BUS, create a unique user. As the <systemitem
class="username">root</systemitem> user, run:
</para>
<screen role="root"><userinput>groupadd -g 58 pulse &amp;&amp;
groupadd -g 59 pulse-access &amp;&amp;
useradd -c "Pulseaudio User" -d /var/run/pulse -g pulse \
-s /bin/false -u 58 pulse &amp;&amp;
usermod -a -G audio pulse</userinput></screen>
<para>
Install <application>PulseAudio</application> by running the following
commands:
</para>
<screen><userinput>find . -name "Makefile.in" | xargs sed -i "s|(libdir)/@PACKAGE@|(libdir)/pulse|" &amp;&amp;
sed -i "s@json >= 0.9@json-c >= 0.11@g" configure &amp;&amp;
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--libexecdir=/usr/lib \
--with-module-dir=/usr/lib/pulse/modules &amp;&amp;
make</userinput></screen>
<para>
To test the results, issue: <command>make check</command>.
</para>
<para>
Now, as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>make install</userinput></screen>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<para>
<command>find . -name Makefile.in ...</command>: This sed changes
the build system to install <application>PulseAudio</application>
private libraries into
<filename class="directory">/usr/lib/pulse</filename> instead of
<filename class="directory">/usr/lib/pulseaudio</filename>.
</para>
<para>
<command>sed -i "s@json >= 0.9@json-c >= 0.11@g" configure</command>:
This sed fixes building with <application>JSON-C</application> 0.11.
</para>
<para>
<parameter>--with-module-dir=/usr/lib/pulse/modules</parameter>:
This parameter ensures that <application>PulseAudio</application>
modules are installed in <filename class="directory">/usr/lib/pulse/modules
</filename> instead of <filename class="directory">
/usr/lib/pulse-&pulseaudio-version;/modules</filename>.
</para>
</sect2>
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Programs</segtitle>
<segtitle>Installed Libraries</segtitle>
<segtitle>Installed Directories</segtitle>
<seglistitem>
<seg>
esdcompat, pacat, pacmd, pactl, padsp, pamon, paplay, parec,
parecord, pasuspender, pax11publish, pulseaudio, qpaeq,
start-pulseaudio-kde and start-pulseaudio-x11
</seg>
<seg>
libpulsecore-&pulseaudio-version;.so, libpulse-mainloop-glib.so,
libpulse-simple.so and libpulse.so
</seg>
<seg>
/etc/pulse,
/usr/include/pulse,
/usr/lib/cmake/PulseAudio,
/usr/lib/pulse and
/usr/share/pulseaudio
</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="esdcompat">
<term><command>esdcompat</command></term>
<listitem>
<para>
is the <application>PulseAudio</application> ESD wrapper script.
</para>
<indexterm zone="pulseaudio esdcompat">
<primary sortas="b-esdcompat">esdcompat</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="pacat">
<term><command>pacat</command></term>
<listitem>
<para>
Plays back or records raw or encoded audio streams on a
<application>PulseAudio</application> sound server.
</para>
<indexterm zone="pulseaudio pacat">
<primary sortas="b-pacat">pacat</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="pacmd">
<term><command>pacmd</command></term>
<listitem>
<para>
is a tool used to reconfigure a <application>PulseAudio</application>
sound server during runtime.
</para>
<indexterm zone="pulseaudio pacmd">
<primary sortas="b-pacmd">pacmd</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="pactl">
<term><command>pactl</command></term>
<listitem>
<para>
is used to control a running <application>PulseAudio</application>
sound server.
</para>
<indexterm zone="pulseaudio pactl">
<primary sortas="b-pactl">pactl</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="padsp">
<term><command>padsp</command></term>
<listitem>
<para>
is the <application>PulseAudio</application> OSS Wrapper.
</para>
<indexterm zone="pulseaudio padsp">
<primary sortas="b-padsp">padsp</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="pamon">
<term><command>pamon</command></term>
<listitem>
<para>
is a symbolic link to <command>pacat</command>.
</para>
<indexterm zone="pulseaudio pamon">
<primary sortas="b-pamon">pamon</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="paplay">
<term><command>paplay</command></term>
<listitem>
<para>
is used to play audio files on a
<application>PulseAudio</application> sound server.
</para>
<indexterm zone="pulseaudio paplay">
<primary sortas="b-paplay">paplay</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="parec">
<term><command>parec</command></term>
<listitem>
<para>
is a symbolic link to <command>pacat</command>.
</para>
<indexterm zone="pulseaudio parec">
<primary sortas="b-parec">parec</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="parecord">
<term><command>parecord</command></term>
<listitem>
<para>
is a symbolic link to <command>pacat</command>.
</para>
<indexterm zone="pulseaudio parecord">
<primary sortas="b-parecord">parecord</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="pasuspender">
<term><command>pasuspender</command></term>
<listitem>
<para>
is a tool that can be used to tell a local
<application>PulseAudio</application> sound server to temporarily
suspend access to the audio devices, to allow other applications
to access them directly.
</para>
<indexterm zone="pulseaudio pasuspender">
<primary sortas="b-pasuspender">pasuspender</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="pax11publish">
<term><command>pax11publish</command></term>
<listitem>
<para>
is the <application>PulseAudio</application>
X11 Credential Utility.
</para>
<indexterm zone="pulseaudio pax11publish">
<primary sortas="b-pax11publish">pax11publish</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="pulseaudio-prog">
<term><command>pulseaudio</command></term>
<listitem>
<para>
is a networked low-latency sound server for Linux.
</para>
<indexterm zone="pulseaudio pulseaudio-prog">
<primary sortas="b-pulseaudio">pulseaudio</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="qpaeq">
<term><command>qpaeq</command></term>
<listitem>
<para>
is an equalizer interface for
<application>PulseAudio</application> equalizer sinks.
</para>
<indexterm zone="pulseaudio qpaeq">
<primary sortas="b-qpaeq">qpaeq</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="start-pulseaudio-kde">
<term><command>start-pulseaudio-kde</command></term>
<listitem>
<para>
Starts <application>PulseAudio</application> and loads
module-device-manager to use KDE routing policies.
</para>
<indexterm zone="pulseaudio start-pulseaudio-kde">
<primary sortas="b-start-pulseaudio-kde">start-pulseaudio-kde</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="start-pulseaudio-x11">
<term><command>start-pulseaudio-x11</command></term>
<listitem>
<para>
Starts <application>PulseAudio</application> and registers it to
the X11 session manager.
</para>
<indexterm zone="pulseaudio start-pulseaudio-x11">
<primary sortas="b-start-pulseaudio-x11">start-pulseaudio-x11</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>