Right now we only use ALSA or OSS as the backend for our pulseaudio server. Since a lot of distributions are moving towards using pulseaudio for everything, we should make our server talk to the system one. This avoids a lot of compatibility issues and generally gives a better experience.
*** Bug 3701 has been marked as a duplicate of this bug. ***
PulseAudio already has a tunnel module that we should be able to use. But I don't think the fire-and-forget approach of our current "auto" logic will cut it anymore. So this bug will probably have to cover that as well. PulseAudio already has a bunch of "auto" modules: a) module-detect Oldest module. Supports Alsa, OSS, Solaris and Windows. Does not handle tunnels. Tries to bind to physical devices, meaning we get more than we need, cannot handle virtual devices, and might not pick the correct default. b) module-udev-detect Currently the popular one. Only works with ALSA though, and requires udev. Also uses physical devices. c) module-hal-detect Deprecated. d) module-bluetooth-discover Only for bluetooth. So it seems none of the existing stuff works. We could try to do the auto logic in tlclient, but that means we would be unable to handle problems with loading/init in one module and fall back to the next. It's probably better to write our own, simple module. Other issues: 1) module-tunnel doesn't support reading environment variables or X11 properties. 2) Not clear if module-tunnel supports unix sockets. We might also want to investigate if we can make module-alsa-* detect a pulse backend and refuse to use those (as it will just crash anyway).
(In reply to comment #2) > > Other issues: > > 1) module-tunnel doesn't support reading environment variables or X11 > properties. > > 2) Not clear if module-tunnel supports unix sockets. > Fixed in r25868. Also sent upstream: https://bugs.freedesktop.org/show_bug.cgi?id=55280
New module created in r25880.
tlclient adjusted in r25883.
Documentation updated in r25901.
Something's off with the linking of the tunnel modules.
Misfeature in libtool. Should be fixed now.
Does not work. Apparently the tunnel does not split a PULSE_SERVER with multiple entries: I: [pulseaudio] module.c: Loaded "module-esound-protocol-tcp" (index: #0; argument: "listen=127.0.0.1 port=59806 cookie='/tmp/esd9KSJ4Y'"). I: [pulseaudio] module.c: Loaded "module-native-protocol-tcp" (index: #1; argument: "listen=127.0.0.1 port=34402 cookie='/tmp/pulseaudioVWibSF'"). connect(17, {sa_family=AF_FILE, path=@"/tmp/.X11-unix/X0"}, 20) = 0 connect(18, {sa_family=AF_FILE, path="/home/astrand/.pulse/5f035e9fff826ceeb3472f5b0000002c-runtime/native tcp:scilla.lkpg.cendio.se:4713 tcp6:sc"}, 110) = -1 ENOENT (No such file or directory) D: [pulseaudio] socket-client.c: connect(): Filen eller katalogen finns inte (2) E: [pulseaudio] module-tunnel.c: Failed to connect to server '{5f035e9fff826ceeb3472f5b0000002c}unix:/home/astrand/.pulse/5f035e9fff826ceeb3472f5b0000002c-runtime/native tcp:scilla.lkpg.cendio.se:4713 tcp6:scilla.lkpg.cendio.se:4713' E: [pulseaudio] module.c: Failed to load module "module-tunnel-sink" (argument: ""): initialization failed.
(In reply to comment #9) > Does not work. Apparently the tunnel does not split a PULSE_SERVER with > multiple entries: > Fixed in r25921.
If you select Pulseaudio in the tlclient settings, it jumps back to Auto.
Fixed in r25966.
If I kill my local pulseaudio server and systemd kindly restarts it again for me, I get no sound from ThinLinc (F17). There seems to be no environment/xprop variables set for the PA server after doing this, but local sound still works.
(In reply to comment #13) > If I kill my local pulseaudio server and systemd kindly restarts it again for > me, I get no sound from ThinLinc (F17). There seems to be no environment/xprop > variables set for the PA server after doing this, but local sound still works. Should be fixed in r26067.
(In reply to comment #14) > Should be fixed in r26067. Yep.
Tested client on F17, F18 alpha, and Ubuntu 12.10. Seems to work fine against both the demo system and an Ubuntu 12.10 server. There are some problems with audio sync, but these can be handled as bug #4411. TODO: - Test from a thin-client or something with an older/non-existent PulseAudio server
(In reply to comment #16) > TODO: > - Test from a thin-client or something with an older/non-existent PulseAudio > server Tested OSS on IGEL, which also works. I'm happy enough with this now, closing.