[pulseaudio-discuss] Random PA Deployment Idea

Jerry Haltom wasabi at larvalstage.net
Sun Dec 17 20:12:20 PST 2006

So, I finally managed to get PA up and running on my Ubuntu box, using
the distributed packages. Took me awhile get get Alsa working and
everything, but did manage to succeed. Got it set up on some remote
boxes, and been having fun forwarding audio around my apartment.

I've run into one problem though. PA supports moving a stream between
sinks live, but only when those sinks exist within the same PA daemon.
This is great for those... few cases where people have multiple sound
cards. How many people have multiple, and care?

Me, I have a lot of systems. I have one on my stereo, one on my desktop.
Laptop over there. Another desktop. I want to forward live streams
between different PA instances... and this got me thinking.

Right now you have two real options, a per-user PA daemon and a
per-system PA daemon. They both solve slightly different problems. I
personally prefer the system wide PA daemon. It's obviously the only
real way I can share my audio devices. I don't really understand why
per-user is recommended.

Still though, I can't move live streams between servers. So after
thinking awhile, I came up with what might be a good configuration for
this... perhaps the ideal configuration for the standard desktop.

First, you have a "system" PA instance. It runs /etc/pulse/system.pa. It
loads module-hal. Detects local devices. It's goal is to manage access
to LOCAL devices. A single wrapper around them. In this PA instance one
could enable zeroconf-publishing and tcp access and various ACLs.

Second, you have a "user" PA instance. Each user who logs into the
desktop gets one of these. It doesn't talk to hardware. It loads a
module which detects all the local sources and sinks, by talking to the
local PA daemon. It can also browse the network for zeroconf advertised
sinks (ignoring the local ones if they are advertised.)

What you have here then is one system instance and many user instances.
Multiple users can login and access to the hardware can be multiplexed
through the system PA. Clients would not be able to do advanced
operations on the system PA unless they had certain rights. Can't move
streams, etc. The user PA would be 100% under control of the user. He
could move streams between it's sinks. This would mean he can make his
local PA move a stream between the local system PA and a remote system
PA. This is very nice. Policy gets applied at the appropiate places.

As for zero-copy of data, not sure. I suspect the two PAs could
communicate with shm still.

This would be an ideal default desktop install and not require any
configuration to achieve the desired result. What do you all think?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <http://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20061217/e5b82178/attachment.pgp>

More information about the pulseaudio-discuss mailing list