[gst-devel] Ignoring errors of fdsink
Wim Taymans
wim.taymans at gmail.com
Thu May 14 16:29:50 CEST 2009
On Thu, 2009-05-14 at 16:19 +0200, Arnout Vandecappelle wrote:
> Hoi all,
>
> I have a pipeline with a tee element connected to several fdsink elements.
> Each fdsink writes to a socket, which can be terminated by the remote end at
> any time. If this happens, the chain function of fdsink posts an error on
> the bus and returns GST_FLOW_ERROR.
>
> Since I want the pipeline to continue when one of the clients disconnects, I
> handle the error message on the bus and remove the fdsink. This often works.
> Indeed, the GST_FLOW_ERROR is captured by a queue in the pipeline and doesn't
> arrive at the tee element. Unfortunately, it is possible that the next
> buffer is pushed into the queue before I can handle the error message. In
> that case, the queue returns a GST_FLOW_ERROR as well, it goes all the way up
> to the source element, which sends an EOS down the pipeline.
>
> Is there any way to intercept the error before it passes the queue?
>
> If there is no solution, I think I'll patch the tee element to (optionally)
> ignore downstream errors until all pads are in error.
You could use multifdsink, it handles client disconnects gracefully
without disrupting the dataflow.
Wim
>
> Regards,
> Arnout
More information about the gstreamer-devel
mailing list