From: Mark Nauwelaerts Date: Mon, 4 Apr 2011 09:27:29 +0000 (+0200) Subject: rtspsrc: distribute new base_time to manager children following flush seek X-Git-Tag: RELEASE-0.10.29~483 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=226a7cb32e10cf057035348b616772bf539d2dc4;p=platform%2Fupstream%2Fgst-plugins-good.git rtspsrc: distribute new base_time to manager children following flush seek ... by forcing a state changed to PLAYING, which should otherwise be a no-op as elements should already be in that state. In particular, jitterbuffer needs new base_time as soon as possible to perform proper timing (e.g. eos timeout handling) and can't wait for the new base_time that will be distributed when the whole pipeline returns to PLAYING. See bug #646397. --- diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c index e1c8f9b..f2ef722 100644 --- a/gst/rtsp/gstrtspsrc.c +++ b/gst/rtsp/gstrtspsrc.c @@ -1680,8 +1680,13 @@ gst_rtspsrc_flush (GstRTSPSrc * src, gboolean flush) if (base_time != -1) gst_element_set_base_time (GST_ELEMENT_CAST (src), base_time); /* to manage jitterbuffer buffer mode */ - if (src->manager) + if (src->manager) { gst_element_set_base_time (GST_ELEMENT_CAST (src->manager), base_time); + /* and to have base_time trickle further down, + * e.g. to jitterbuffer for its timeout handling */ + if (base_time != -1) + gst_element_set_state (GST_ELEMENT_CAST (src->manager), state); + } } static GstRTSPResult