summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@collabora.co.uk>2009-03-27 17:48:13 +0100
committerWim Taymans <wim.taymans@collabora.co.uk>2009-03-27 17:49:15 +0100
commitfd18185d44da1c774c02aa9ce88e844f6587c0f0 (patch)
treea4c80939d71fcefe31eadac6f1cf2a871a42f887
parent3360f449c0bc70c91a82b5dd48da4546a1ae0192 (diff)
rtspsrc: link to the on_npt_stop signal to EOS
Connect to the on_npt_stop signal of the session manager to schedule the EOS actions.
-rw-r--r--gst/rtsp/gstrtspsrc.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c
index 9c6f26962..64b501cb9 100644
--- a/gst/rtsp/gstrtspsrc.c
+++ b/gst/rtsp/gstrtspsrc.c
@@ -1802,6 +1802,16 @@ on_timeout (GstElement * manager, guint session, guint32 ssrc, GstRTSPSrc * src)
gst_rtspsrc_do_stream_eos (src, session);
}
+static void
+on_npt_stop (GstElement * manager, guint session, guint32 ssrc,
+ GstRTSPSrc * src)
+{
+ GST_DEBUG_OBJECT (src, "SSRC %08x in session %u reached the NPT stop", ssrc,
+ session);
+
+ gst_rtspsrc_do_stream_eos (src, session);
+}
+
/* try to get and configure a manager */
static gboolean
gst_rtspsrc_stream_configure_manager (GstRTSPSrc * src, GstRTSPStream * stream,
@@ -1860,6 +1870,8 @@ gst_rtspsrc_stream_configure_manager (GstRTSPSrc * src, GstRTSPStream * stream,
src);
g_signal_connect (src->session, "on-timeout", (GCallback) on_timeout,
src);
+ g_signal_connect (src->session, "on-npt-stop", (GCallback) on_npt_stop,
+ src);
}
/* we stream directly to the manager, get some pads. Each RTSP stream goes