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!
-Tal
_______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
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...? _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
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...?Thanks, nice thought, but the stream will likely be disrupted first. And we still have the basic problem that the stream won't even start! _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |