GNOME/Ideas/11.0/PulseAudio
From openSUSE
| Revision as of 15:15, 20 November 2007 Rodrigomoya (Talk | contribs) TODO � Previous diff |
Revision as of 15:20, 20 November 2007 Rodrigomoya (Talk | contribs) Next diff → |
||
| Line 1: | Line 1: | ||
| This page contains information about the integration of [http://www.pulseaudio.org/ PulseAudio] into GNOME for the upcoming openSUSE 11.0 release. | This page contains information about the integration of [http://www.pulseaudio.org/ PulseAudio] into GNOME for the upcoming openSUSE 11.0 release. | ||
| + | |||
| + | Packaging is taking place in the [https://build.opensuse.org/project/show?project=home%3Arodrigomoya%3Apulseaudio home:rodrigomoya:pulseaudio build service project], so if you want to help with testing, make sure you add this repository to your software repositories in Yast. If you want to help packaging, just contact [[User:rodrigomoya|Rodrigo]] and ask for permissions on that subproject. | ||
| = TODO = | = TODO = | ||
Revision as of 15:20, 20 November 2007
This page contains information about the integration of PulseAudio into GNOME for the upcoming openSUSE 11.0 release.
Packaging is taking place in the home:rodrigomoya:pulseaudio build service project, so if you want to help with testing, make sure you add this repository to your software repositories in Yast. If you want to help packaging, just contact Rodrigo and ask for permissions on that subproject.
Contents |
TODO
Upstream To Do list is here.
To Do List Given to jpr by lennart (the pulseaudio author) for integration into openSUSE at GNOME Boston Summit 2007
| Package | Status | Assignee |
|---|---|---|
| pulseaudio | | |
| alsa | The 2 most important bugs are now filed in the ALSA bug tracker (https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3578 and https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3579]. Also, need to be sure https://bugtrack.alsa-project.org/alsa-bug/view.php?id=2601 is also taken care of (it needs some fixing in ALSA's ioplug, where Takashi is the person to contact).
We probably want to make the pulse plugin for ALSA default if it is installed. To accomplish this clealy Fedora installs this config file in /etc/alsa/: http://cvs.fedoraproject.org/viewcvs/devel/alsa-plugins/pulse-default.conf?rev=1.2&view=auto and added this patch to read that file if it is available. That way, the PA plugin is automatically enabled if it is installed. If it is not installed the traditional behaviour is kept.|| | |
| gst-pulse | svn (this is already packaged in Packman | |
| libasound plugins | pulseaudio plugin, patch from fedora, svn | |
| glibc | abba patch. I fear we have to get that patch manually from Fedora's glibc-2.6.90-14. Hence getting it directly from upstream glibc CVS is probably the best way to get it. This is most likely part of glibc 2.7 anyway, so this might already been fixed in Suse if you use 2.7. | rodrigo |
| xmms pulse | xmms is dropped from the distro? | cyberorg |
| libao pulse | ||
| padsp | check all oss/libaoss using apps work with this. This needs to be read carefully. For applications insisting on using OSS consider adding wrappers like this:
#!/bin/sh if test -x /usr/bin/padsp ; then exec /usr/bin/padsp -n "Foomedia Flush" -- therealprogram "$@" else exec therealprogram "$@" fi This makes those applications appear much nicer (s/Foomedia Flush/RealApplicationName) in the PulseAudio volume control. Using -m for padsp might make sense too.|| | |
| pasuspender | patch jack and other professional audio to call this so they own the devices. maybe some games as well (quake2). Kills network transparency. For jack and quake2 (and similar apps using raw ALSA or when the software doesn't work with our ALSA or OSS emulation), consider adding wrappers like this:
#!/bin/sh if test -x /usr/bin/pasuspender ; then exec /usr/bin/pasuspender therealprogram "$@" else exec therealprogram "$@" fi This wil temporarily suspend PA's access to the audio devices, making it accessible for other applications. Note that PA closes the devices after 1s of idle anyway, so most of the time this script won't even be necessary, except in cases where one of these apps is started from a menu or similar where an event sound is generated when clicking on the menu item which will block the audio device for a second, i.e. possibly causing the app started not being able to open the audio device. Hence it is better to have these wrapper scripts. Note that on some applications just using pasuspender is not sufficient. If they use "default" as ALSA audio device they still will be connected to PA. Hardcoded device strings is a big problem anyway, especially with closed source software. It's not fun.|| | |
| pavucontrol | install by default, svn | |
| paprefs | install by default, svn | |
| paman | svn, package but not ship by default | |
| pavumeter | volume monitor, svn | |
| padevchooser | panel applet, will be eventually be replaced, svn | |
| xine | The PA backend for XINE is not perfect, but apparently good enough. There have been some issues that need to be fixes. It's on Lennart's TODO list. | |
| mplayer | Lennart has patch (This goes to packman?) which he says is out-of-date. It was never accepted by the MPlayer people so it bitrotted a bit, and doesn't apply as is anymore on MPlayer. Lennart plans to post it a second time, cleaned up, but since Fedora doesn't ship Mplayer this is no top-priority for him. Also, the ALSA backend of MPlayer seems to work fine with the PA plugin for ALSA. | |
| Check KDE phonon + xine + pulse | ||
| flash | libflashsupport.so (if exists, overrides audio functions), grab from lennart's git (git.0pointer.de).
Flash is big pile of bugs. If libflashsupport.so is not used it will open as many PCM streams as possible (64 on PA), and then it cannot really cope with that and doesn't work anymore. And PA refuses to take any further connections as a safety feature. In effect, if you load Flash without that aforementioned plugin you basically kill audio entirely until your browser terminates and all connections Flash made to PA are closed. (yes, Flash keeps all streams open all the time, it never closes them until the browser terminates. It's an evil piece of software)|| | |
| http://www.pulseaudio.org/wiki/PerfectSetup | list of app setup | |
| start up | turn off session support in pulse, autostart fragment to turn on xsmp | |
| gnome-sound-properties | needs to reflect pulse audio better | rodrigo |
Development
- Should we package the non-GNOME specific things in multimedia:audio repository?
Compilation instructions
PulseAudio is now integrated into jhbuild (the GNOME SVN-based build system), so to build it:
- Edit ~/.jhbuildrc and add 'pulseaudio' to the moduleset array in that file. It's probably a good idea to place it in front, so that any GNOME module depending on PulseAudio can find it. Then just running:
jhbuild build pulseaudio
should pull and compile PulseAudio and all its dependencies. One of those dependencies is xmltoman, which you can find in Darix' home repository.
Launch PulseAudio Server
/usr/bin/pulseaudio --system --disable-shm \ --no-cpu-limit --resample-method=trivial \ --log-target=syslog --high-priority -L module-detect \ -L "module-esound-protocol-tcp auth-anonymous=1" \ -L "module-native-protocol-tcp auth-anonymous=1" \ -L module-volume-restore -L module-rescue-streams \ -L module-native-protocol-unix -n
This is what we use to launch pulse server in LTSP chroot.

