diff options
author | Wim Taymans <wim.taymans@collabora.co.uk> | 2013-02-06 13:52:26 +0100 |
---|---|---|
committer | Wim Taymans <wim.taymans@collabora.co.uk> | 2013-02-06 13:52:26 +0100 |
commit | 0adf1252f4c61e45182b9669b42b704353560cf1 (patch) | |
tree | 7006a828aaaa843494efc5e8afe33d826d6a093d | |
parent | 2e2426e0fa3bb944a863ec545243e081294af173 (diff) |
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
-rw-r--r-- | gst/rtsp/gstrtspsrc.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c index 788883701..b6e313c8e 100644 --- a/gst/rtsp/gstrtspsrc.c +++ b/gst/rtsp/gstrtspsrc.c @@ -2405,20 +2405,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 |