rtspsrc: mark DISCONT when resuming PLAY
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Mon, 8 Feb 2010 20:41:29 +0000 (21:41 +0100)
committerMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Fri, 10 Dec 2010 11:11:15 +0000 (12:11 +0100)
In particular, when streaming interleaved, this arranges for setting a new
timestamp on outgoing buffer so downstream can appropriate reset
to a change in (rtp)time.

gst/rtsp/gstrtspsrc.c

index 9f8edb80379c9e903ee45c229626a30eec186080..ced8ae5759c96a72453b3f277ec08d3fb1a523b2 100644 (file)
@@ -5960,6 +5960,13 @@ gst_rtspsrc_play (GstRTSPSrc * src, GstSegment * segment)
   gst_rtspsrc_loop_send_cmd (src, CMD_WAIT, FALSE);
   gst_task_start (src->task);
 
+  /* mark discont */
+  GST_DEBUG_OBJECT (src, "mark DISCONT, we did a seek to another position");
+  for (walk = src->streams; walk; walk = g_list_next (walk)) {
+    GstRTSPStream *stream = (GstRTSPStream *) walk->data;
+    stream->discont = TRUE;
+  }
+
 done:
   GST_RTSP_STATE_UNLOCK (src);