[pulseaudio-discuss] Mixing audio from multiple sink-inputs to multiple sinks dynamically

Lode Cools lode.cools1 at gmail.com
Tue Apr 5 13:13:36 UTC 2016


Hi,

This topic has been touched before, but I did not find a conclusion:

How does one create an end-user solution where it is possible to mix
(select & combine) multiple sink-inputs into multiple sinks and then change
this 'mix' selection dynamically (preferably glitch-free)?  The changes
would be performed using the D-Bus API (or any other API if that is
required).

A simple example is: I am playing sink-input SI1 on combine-sink C1 which
uses physical sink S1 as its slave.  Now I also want to play sink-input SI1
on physical sink S2.

For the moment, I know 2 ways to accomplish this dynamically:

1) 'create new combines' - approach
   * I create a new combine-sink C2 which uses both sink S1 and sink S2 as
its slaves.  Then I move the sink input SI1 from old combine-sink C1 to new
combine-sink C2.  Afterwards, I delete the old combine-sink C1.
   * Disadvantages:
      ** not glitch-free (especially for listeners of sink S1 who do not
care about S2)

2) 'mute the unused links' - approach
   * I create from the beginning a 'full mesh': C1 uses both sink S1 and
sink S2 as its slaves.  'playing a sink-input on a sink' then just
translates to 'unmuting the sink-input from the combine-sink on the actual
sink'
   * Disadvantages:
      ** when dealing with a lot of sink-inputs and sinks, the amount of
'links' is huge.  If a muted input is also increasing the resample load
(Can anyone confirm this statement?), this might be a resource-consuming
solution.
      ** all sinks need to be known upfront


Ideally, there would be a solution where you could change the slaves of a
combine-sink dynamically.  But, afaik, this does not exist and is not
planned either.

So the question is:  Are solution 1 and 2 really the only solutions for my
problem?  Which one of the solutions would you favor over the other?

Kind regards,
Lode
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20160405/3d14988b/attachment.html>


More information about the pulseaudio-discuss mailing list