From: Wim Taymans Date: Wed, 6 Feb 2013 12:52:26 +0000 (+0100) Subject: rtspsrc: only EOS when our source sends BYE X-Git-Tag: 1.1.1~350 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=640de61740e86521581671ed6e2993dd0a44dbe7;p=platform%2Fupstream%2Fgst-plugins-good.git rtspsrc: only EOS when our source sends BYE Only EOS when we receive a BYE event from the SSRC of our stream. Fixes https://bugzilla.gnome.org/show_bug.cgi?id=675453 --- diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c index 16b1358..22f10d1 100644 --- a/gst/rtsp/gstrtspsrc.c +++ b/gst/rtsp/gstrtspsrc.c @@ -2403,20 +2403,30 @@ static void on_bye_ssrc (GObject * session, GObject * source, GstRTSPStream * stream) { GstRTSPSrc *src = stream->parent; + guint ssrc; - GST_DEBUG_OBJECT (src, "source in session %u received BYE", stream->id); + g_object_get (source, "ssrc", &ssrc, NULL); - gst_rtspsrc_do_stream_eos (src, stream); + GST_DEBUG_OBJECT (src, "source %08x, stream %08x, session %u received BYE", + ssrc, stream->ssrc, stream->id); + + if (ssrc == stream->ssrc) + gst_rtspsrc_do_stream_eos (src, stream); } static void on_timeout (GObject * session, GObject * source, GstRTSPStream * stream) { GstRTSPSrc *src = stream->parent; + guint ssrc; - GST_DEBUG_OBJECT (src, "source in session %u timed out", stream->id); + g_object_get (source, "ssrc", &ssrc, NULL); - gst_rtspsrc_do_stream_eos (src, stream); + GST_WARNING_OBJECT (src, "source %08x, stream %08x in session %u timed out", + ssrc, stream->ssrc, stream->id); + + if (ssrc == stream->ssrc) + gst_rtspsrc_do_stream_eos (src, stream); } static void