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