summaryrefslogtreecommitdiffstats
path: root/gst/rtsp
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 /gst/rtsp
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.
Diffstat (limited to 'gst/rtsp')
-rw-r--r--gst/rtsp/gstrtspsrc.c5
1 files changed, 5 insertions, 0 deletions
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);