gst/rtsp/gstrtspsrc.c: Pause the RTSP stream before doing a new play request.
authorEric Zhang <chao.zhang@access-company.com>
Mon, 10 Nov 2008 12:13:21 +0000 (12:13 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Mon, 10 Nov 2008 12:13:21 +0000 (12:13 +0000)
Original commit message from CVS:
Based on patch by: Eric Zhang <chao.zhang at access-company dot com>
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_perform_seek),
(gst_rtspsrc_stream_configure_udp_sink):
Pause the RTSP stream before doing a new play request.
Make sure that adding the udpsinks does not cause the rtspsrc to become
a sink. Fixes #559547.

ChangeLog
gst/rtsp/gstrtspsrc.c

index c64fad6..cc558a8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2008-11-10  Wim Taymans  <wim.taymans@collabora.co.uk>
+
+       Based on patch by: Eric Zhang <chao.zhang at access-company dot com>
+
+       * gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_perform_seek),
+       (gst_rtspsrc_stream_configure_udp_sink):
+       Pause the RTSP stream before doing a new play request.
+       Make sure that adding the udpsinks does not cause the rtspsrc to become
+       a sink. Fixes #559547.
+
 2008-11-05  Sebastian Dröge  <sebastian.droege@collabora.co.uk>
 
        * gst/matroska/matroska-ids.h:
index 02f784c..ae50606 100644 (file)
@@ -1321,6 +1321,8 @@ gst_rtspsrc_perform_seek (GstRTSPSrc * src, GstEvent * event)
   if ((stop = seeksegment.stop) == -1)
     stop = seeksegment.duration;
 
+  gst_rtspsrc_pause (src);
+
   res = gst_rtspsrc_do_seek (src, &seeksegment);
 
   /* prepare for streaming again */
@@ -2099,6 +2101,9 @@ gst_rtspsrc_stream_configure_udp_sink (GstRTSPSrc * src, GstRTSPStream * stream,
     g_object_set (G_OBJECT (stream->udpsink), "closefd", FALSE, NULL);
   }
 
+  /* we don't want to consider this a sink */
+  GST_OBJECT_FLAG_UNSET (stream->udpsink, GST_ELEMENT_IS_SINK);
+
   /* we keep this playing always */
   gst_element_set_locked_state (stream->udpsink, TRUE);
   gst_element_set_state (stream->udpsink, GST_STATE_PLAYING);