diff options
author | Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> | 2009-04-30 10:19:27 +0200 |
---|---|---|
committer | Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> | 2009-05-04 17:01:28 +0200 |
commit | 734548a34fbb6679dc6b7c568b2cceb2a903a2dc (patch) | |
tree | 34bfd674ee30495408c087c686eb51fd2e4f1585 /gst/rtsp | |
parent | 20c7be5741bfd39e2d2cbe647522b99bd339e101 (diff) |
rtspsrc: also set base_time on src after flush
timestamps following flush/seek should be consistent between
UDP and TCP interleaved case. Fixes #580851.(b).
Diffstat (limited to 'gst/rtsp')
-rw-r--r-- | gst/rtsp/gstrtspsrc.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c index 4d786de5..b80ecead 100644 --- a/gst/rtsp/gstrtspsrc.c +++ b/gst/rtsp/gstrtspsrc.c @@ -1317,11 +1317,12 @@ gst_rtspsrc_flush (GstRTSPSrc * src, gboolean flush) gst_rtspsrc_push_event (src, event); gst_rtspsrc_loop_send_cmd (src, cmd, flush); - /* */ + /* make running time start start at 0 again */ for (walk = src->streams; walk; walk = g_list_next (walk)) { GstRTSPStream *stream = (GstRTSPStream *) walk->data; for (i = 0; i < 2; i++) { + /* for udp case */ if (stream->udpsrc[i]) { if (base_time != -1) gst_element_set_base_time (stream->udpsrc[i], base_time); @@ -1329,6 +1330,9 @@ 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); } static GstRTSPResult |