Pipeline misses EOS

Gary Thomas gary at mlbassoc.com
Fri Mar 1 08:12:51 PST 2013


I'm using 0.10 to display an RTSP video stream with a pipeline that looks like this:
   rtspsrc name=src \
     src. ! tee name=v-t \
       v-t. ! queue ! rtph264depay ! h264parse ! ffdec_h264 ! videoscale ! video/x-raw-yuv,width=240,height=120 ! ffmpegcolorspace ! ximagesink  \
     src. ! tee name=a-t \
       a-t. ! queue ! rtpmpadepay ! mpegaudioparse ! fakesink

For the most part, this works fine.  When I'm ready to quit/close
the viewer, I send an EOS to the pipeline using a construct like this:
    self.player.send_event(gst.event_new_eos())
where 'player' is my pipeline.

Occasionally the pipeline (and I assume the RTSP server) does not see
the EOS event.  I've found that if I just break things off, the server
still madly sends data - not surprising since this is a UDP based connection.
I'd rather not have that happen since my RTSP server is on a cell based
network [think mobile phone] and every packet costs me something...

I've tried [re]sending the EOS multiple times (e.g. once every 5 seconds)
and it seems that if it's in this state, the pipeline will never see EOS.

Any ideas why this might happen and where I might look to track it down?

Thanks

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------


More information about the gstreamer-devel mailing list