From 8b38aa9c468bc1cf7a232f4f372bf83efa67d328 Mon Sep 17 00:00:00 2001 From: Thibault Saunier Date: Fri, 2 Jun 2017 15:37:54 -0400 Subject: [PATCH] stream: Use stream duration as stream-stop if segment was not configured with a stop Allowing client to know stream duration when no seeking happened. https://bugzilla.gnome.org/show_bug.cgi?id=783435 --- gst/rtsp-server/rtsp-stream.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/gst/rtsp-server/rtsp-stream.c b/gst/rtsp-server/rtsp-stream.c index 6e8c97ad2b..25ff9c9f72 100644 --- a/gst/rtsp-server/rtsp-stream.c +++ b/gst/rtsp-server/rtsp-stream.c @@ -3852,7 +3852,20 @@ gst_rtsp_stream_query_stop (GstRTSPStream * stream, gint64 * stop) if (format != GST_FORMAT_TIME) *stop = -1; } + gst_query_unref (query); + if (!GST_CLOCK_TIME_IS_VALID (*stop)) { + query = gst_query_new_duration (GST_FORMAT_TIME); + if ((ret = gst_element_query (sink, query))) { + GstFormat format; + + gst_query_parse_duration (query, &format, stop); + if (format != GST_FORMAT_TIME) + *stop = -1; + } + gst_query_unref (query); + } + gst_object_unref (sink); return ret;