[pulseaudio-discuss] New feature in the works: "volume sharing"

Colin Guthrie gmane at colin.guthr.ie
Sun Feb 13 12:05:33 PST 2011

'Twas brillig, and Tanu Kaskinen at 09/02/11 13:07 did gyre and gimble:
> Update to the terminology: the "flat sink" feature shall be known as the
> "volume sharing" feature from now on. I think that's more descriptive,
> and doesn't get so easily mixed with the "flat volume" term.

Yeah I think that's a better name!

Out of curiosity, there is one thing I didn't quite understand about the
original suggestion (I didn't have time to comment on it before going on
holiday, so apologies for the lateness of the reply)

As I understand it, this is basically the ability for a virtual sink to
not implement it's own volume control, but to pass on 1:1 the sink
volume changes through to an underlying sink (so modules like remap-sink
could basically just pass the volume changes through).

Am I right in saying that this could be thought of from a different
direction? e.g. if the virtual sink itself supports flat volumes, then
it has the responsibility of passing the volumes through? In other words
rather than the volume logic looking at the direct connected streams and
the streams connected to the filter sink, (i.e. a "pull" module from the
h/w sink upwards) it should be possible to implement instead a "push"
from the filter sink down. i.e. if a filter sink has only one stream
connected, it sets it's sink input (connected to the underlying sink)
stream volume to the input stream volume. If there are >1 streams
connected to the filter sink, then it does the same flat volume logic as
the core and pushes that into it's sink input stream volume.

With this push based approach, you do loose some individual granularity,
but the net volume of the underlying h/w should be the same as your

The concern I have with the approach outlined, is that it adds
complexity to the core and I'm not 100% sure how far the chain can go
(e.g. can you have a filter-sink1->filter-sink2->filter-sink3->hw-sink
pipeline? - with a push model this is possible).

Not sure I've described this very well (just got back from hols and had
very little sleep and have already waded through mountains of emails!!).
Feel free to poke me on IRC tomorrow for a chat if you like.

Other peoples opinions on this most welcome :)




Colin Guthrie

Day Job:
  Tribalogic Limited [http://www.tribalogic.net/]
Open Source:
  Mageia Contributor [http://www.mageia.org/]
  PulseAudio Hacker [http://www.pulseaudio.org/]
  Trac Hacker [http://trac.edgewall.org/]

More information about the pulseaudio-discuss mailing list