summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Zhang <chao.zhang@access-company.com>2008-11-10 12:13:21 +0000
committerWim Taymans <wim.taymans@gmail.com>2008-11-10 12:13:21 +0000
commit499c3e520e58f13dec33874797fd922e953ae157 (patch)
tree2067f7702e736b384c86d8a7a16e7a8cb500e3b2
parentff5c03555467d44f66c4112500f57011872a87c0 (diff)
gst/rtsp/gstrtspsrc.c: Pause the RTSP stream before doing a new play request.
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.
-rw-r--r--ChangeLog10
-rw-r--r--gst/rtsp/gstrtspsrc.c5
2 files changed, 15 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index c64fad6a..cc558a88 100644
--- 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:
diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c
index 02f784c0..ae50606e 100644
--- a/gst/rtsp/gstrtspsrc.c
+++ b/gst/rtsp/gstrtspsrc.c
@@ -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);