From 499c3e520e58f13dec33874797fd922e953ae157 Mon Sep 17 00:00:00 2001 From: Eric Zhang Date: Mon, 10 Nov 2008 12:13:21 +0000 Subject: [PATCH] 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 * 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 | 10 ++++++++++ gst/rtsp/gstrtspsrc.c | 5 +++++ 2 files changed, 15 insertions(+) diff --git a/ChangeLog b/ChangeLog index c64fad6a43..cc558a882b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2008-11-10 Wim Taymans + + Based on patch by: Eric Zhang + + * 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 * gst/matroska/matroska-ids.h: diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c index 02f784c0db..ae50606e4e 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);