tcpclient failing to detect EOF/EOS?

Tim-Philipp Müller t.i.m at zen.co.uk
Sat Aug 24 08:25:27 PDT 2013


On Sat, 2013-08-24 at 16:19 +0200, Peter Maersk-Moller wrote:

> Is it a bug or a feature, that tcpclientsrc seems to fail to detect
> EOF/EOS and terminate a pipeline if its pipeline is PREROLLED and not
> yet PLAYING?
> 
> 
> You can verified it by executing the following two pipeline in the
> listed order and then terminate the first pipeline.
> 
> Sender Pipeline:
> gst-launch -v videotestsrc is-live=true ! x264enc ! queue ! mux.
> audiotestsrc is-live=true ! faac ! mpegtsmux name=mux ! queue !
> tcpserversink port=5010
> 
> Receiver Pipeline
> gst-launch-1.0 -v tcpclientsrc port=5010 ! tsdemux name=demux !
> 'audio/mpeg' ! fakesink demux. ! 'video/x-h264' ! fakesink
> 
> 
> Start sender, then receiver and see that receiver only prerolls and
> does not enter state playing (the pipeline needs queues). Then
> terminate the sender and see that the receiver stays prerolled.
> 
> 
> The behaviour makes it difficult to construct a pipeline with
> tcpclientsrc without the risk of a race condition for the system.
> 
> 
> Shouldn't tcpclientsrc detect the sender has disconnected and
> subsequently shutdown the pipeline?

The problem in this case might be a general prerolling problem, namely
that you need a queue after each demux. ! ...

Cheers
 -Tim





More information about the gstreamer-devel mailing list