From: Wim Taymans Date: Tue, 17 Mar 2009 18:53:44 +0000 (+0100) Subject: oggdemux: report -1 for duration in push mode X-Git-Tag: 1.19.3~511^2~9861 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4e11b596cbf479e683bc8fd394769c7a5497fb5b;p=platform%2Fupstream%2Fgstreamer.git oggdemux: report -1 for duration in push mode In push mode we must return TRUE from the duration query with a value of -1 meaning that we know that we don't know the duration. --- diff --git a/ext/ogg/gstoggdemux.c b/ext/ogg/gstoggdemux.c index 6d640b3..77b6fa1 100644 --- a/ext/ogg/gstoggdemux.c +++ b/ext/ogg/gstoggdemux.c @@ -275,15 +275,22 @@ gst_ogg_pad_src_query (GstPad * pad, GstQuery * query) case GST_QUERY_DURATION: { GstFormat format; + gint64 total_time; gst_query_parse_duration (query, &format, NULL); /* can only get position in time */ if (format != GST_FORMAT_TIME) goto wrong_format; - /* can only return the total time position */ - /* FIXME, return time for this specific stream */ - gst_query_set_duration (query, GST_FORMAT_TIME, ogg->total_time); + if (ogg->seekable) { + /* we must return the total seekable length */ + total_time = ogg->total_time; + } else { + /* in non-seek mode we can answer the query and we must return -1 */ + total_time = -1; + } + + gst_query_set_duration (query, GST_FORMAT_TIME, total_time); break; } case GST_QUERY_SEEKING: