summaryrefslogtreecommitdiffstats
path: root/gst/rtsp
diff options
context:
space:
mode:
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>2009-04-30 10:19:27 +0200
committerMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>2009-05-04 17:01:28 +0200
commit734548a34fbb6679dc6b7c568b2cceb2a903a2dc (patch)
tree34bfd674ee30495408c087c686eb51fd2e4f1585 /gst/rtsp
parent20c7be5741bfd39e2d2cbe647522b99bd339e101 (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.c6
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