From 234609844e1f6af687a788d780ef1af4630d0aa6 Mon Sep 17 00:00:00 2001 From: Mark Nauwelaerts Date: Mon, 4 Apr 2011 11:33:10 +0200 Subject: [PATCH] rtspsrc: perform post-flush state tricks downstream to upstream ... so downstream is set when upstream resumes data flow. --- gst/rtsp/gstrtspsrc.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c index f2ef722..fbd57e0 100644 --- a/gst/rtsp/gstrtspsrc.c +++ b/gst/rtsp/gstrtspsrc.c @@ -1663,6 +1663,16 @@ gst_rtspsrc_flush (GstRTSPSrc * src, gboolean flush) gst_rtspsrc_push_event (src, event, FALSE); gst_rtspsrc_loop_send_cmd (src, cmd, flush); + /* set up manager before data-flow resumes */ + /* to manage jitterbuffer buffer mode */ + 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); + } + /* make running time start start at 0 again */ for (walk = src->streams; walk; walk = g_list_next (walk)) { GstRTSPStream *stream = (GstRTSPStream *) walk->data; @@ -1679,14 +1689,6 @@ gst_rtspsrc_flush (GstRTSPSrc * src, gboolean flush) /* for tcp interleaved case */ if (base_time != -1) gst_element_set_base_time (GST_ELEMENT_CAST (src), base_time); - /* to manage jitterbuffer buffer mode */ - 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 -- 2.7.4