From 998534a2a1f6d1943bb92fbbce1646e6c2ce3cf0 Mon Sep 17 00:00:00 2001 From: David Corvoysier Date: Thu, 28 Jun 2012 11:47:20 +0200 Subject: [PATCH] isomp4: Allow duration queries to be forwarded upstream When receiving a duration query for TIME format, try to query upstream, and only if upstream fails fall back to qtdemux duration handling. --- gst/isomp4/qtdemux.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c index 4feadafec8..7a80c52c45 100644 --- a/gst/isomp4/qtdemux.c +++ b/gst/isomp4/qtdemux.c @@ -720,12 +720,16 @@ gst_qtdemux_handle_src_query (GstPad * pad, GstObject * parent, gst_query_parse_duration (query, &fmt, NULL); if (fmt == GST_FORMAT_TIME) { - gint64 duration = -1; + /* First try to query upstream */ + res = gst_pad_query_default (pad, parent, query); + if (!res) { + gint64 duration = -1; - gst_qtdemux_get_duration (qtdemux, &duration); - if (duration > 0) { - gst_query_set_duration (query, GST_FORMAT_TIME, duration); - res = TRUE; + gst_qtdemux_get_duration (qtdemux, &duration); + if (duration > 0) { + gst_query_set_duration (query, GST_FORMAT_TIME, duration); + res = TRUE; + } } } break;