[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