From 07ae64118df86d7e5b711d5966b6dc35009e8473 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Thu, 25 Jan 2018 00:42:52 +0000 Subject: [PATCH] splitmuxsrc: don't respond to duration query with CLOCK_TIME_NONE total_duration is initialised to CLOCK_TIME_NONE, not 0, so check for that as well in order not to return an invalid duration to a duration query. Doesn't fix anything particular observed in practice, just seemed inconsistent. --- gst/multifile/gstsplitmuxsrc.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/gst/multifile/gstsplitmuxsrc.c b/gst/multifile/gstsplitmuxsrc.c index b27cf00c97..df8eba2bc3 100644 --- a/gst/multifile/gstsplitmuxsrc.c +++ b/gst/multifile/gstsplitmuxsrc.c @@ -1211,18 +1211,21 @@ splitmux_src_pad_query (GstPad * pad, GstObject * parent, GstQuery * query) break; } case GST_QUERY_DURATION:{ + GstClockTime duration; GstFormat fmt; + gst_query_parse_duration (query, &fmt, NULL); if (fmt != GST_FORMAT_TIME) break; GST_OBJECT_LOCK (splitmux); - if (splitmux->total_duration > 0) { - gst_query_set_duration (query, GST_FORMAT_TIME, - splitmux->total_duration); + duration = splitmux->total_duration; + GST_OBJECT_UNLOCK (splitmux); + + if (duration > 0 && duration != GST_CLOCK_TIME_NONE) { + gst_query_set_duration (query, GST_FORMAT_TIME, duration); ret = TRUE; } - GST_OBJECT_UNLOCK (splitmux); break; } case GST_QUERY_SEEKING:{