How to add fault tolerance for multiple pulsesinks

Nathanael D. Noblet nathanael at gnat.ca
Fri Sep 2 08:04:06 PDT 2011


On 09/02/2011 03:02 AM, Tal Liron wrote:
> I'm writing a server that broadcasts to multiple PulseAudio sinks over
> the network.
>
>
> It works great when it works. :) Except that it does not tolerate
> network failure nicely: it's enough for one of the sinks to go down, and
> the stream stops for *all* sinks. In fact, the pipeline won't even start
> playing if one of the sinks cannot connect.
>
>
> The pipeline looks like this:
>
>
> playbin2 ! tee ! valve ! queue ! pulsesink
>
>
> Where the "! valve ! queue ! pulsesink" branch is duplicated for each
> sink, and in each branch is contained in bin. (I need the valve in order
> to allow for safe removal these branches while playing.)
>
>
> The easiest way to test this is to create a pipeline with two such
> branches, where one branch points to a network host that doesn't exist.
> The pipeline won't play.
>
>
> Any ideas on how to proceed? I don't even know which element is the
> stubborn one here. I just want the pipeline to ignore the "bad" sink and
> work around it!

No idea if this is plausible, however perhaps your networked sink has a 
signal it emits in the case of a host that doesn't exist or what not. 
when you catch it disconnect that branch...?


More information about the gstreamer-devel mailing list