gstjitterbuffer and stalled pipeline after seek

grd grd at loganmill.net
Tue Oct 13 15:40:09 PDT 2015


I've been having difficulty getting seeking to work reliably using rtspsrc
(from git master)...sometimes it works fine, sometimes playback just stalls.   
My code gets into a state where, after a seek operation, rtp packets are
still flowing from the server (gst-rtsp-server, in this case), but no
buffers are ever pushed from rtspsrc.  gdb shows most if not all gsteamer
threads stalled on g_cond_wait. In my application, the stall is completely
repeatable for seeks of >30 secs or so, while shorter seeks generally work. 

I tracked this down to the do_deadline_timeout() function in
gstrtspjitterbuffer.c, and have a fix that, so far at least, works reliably
for my application...it involves reverting the code from this 4-line patch,
committed in 2014: 

http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=6c584bc8337da0a19287d51eaf05c608711b9ef5

The patch has this brief explanation:
  "rtpjitterbuffer: avoid stall by corrupted seqnum accounting".

In my testing, the patch has  the opposite effect: it introduces a stall
after seeking.  Wondering if anyone else has had problems with rtsp seeking,
or if this is just a peculiarity with my application? 

thanks,
-glen





--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/gstjitterbuffer-and-stalled-pipeline-after-seek-tp4674067.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.


More information about the gstreamer-devel mailing list