From 67666768a282a9a09c85078cf21e6ddb32347719 Mon Sep 17 00:00:00 2001 From: Mark Nauwelaerts Date: Sat, 25 Sep 2010 14:40:54 +0200 Subject: [PATCH] baseparse: use determined seekability in answering SEEKING query --- gst/audioparsers/gstbaseparse.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/gst/audioparsers/gstbaseparse.c b/gst/audioparsers/gstbaseparse.c index d40bfa5..59041b8 100644 --- a/gst/audioparsers/gstbaseparse.c +++ b/gst/audioparsers/gstbaseparse.c @@ -2485,23 +2485,13 @@ gst_base_parse_query (GstPad * pad, GstQuery * query) GST_LOG_OBJECT (parse, "upstream handled %d, seekable %d", res, seekable); if (!(res && seekable)) { - /* TODO maybe also check upstream provides proper duration ? */ - seekable = TRUE; if (!gst_base_parse_get_duration (parse, GST_FORMAT_TIME, &duration) || duration == -1) { seekable = FALSE; } else { - GstQuery *q; - - q = gst_query_new_seeking (GST_FORMAT_BYTES); - if (!gst_pad_peer_query (parse->sinkpad, q)) { - seekable = FALSE; - } else { - gst_query_parse_seeking (q, &fmt, &seekable, NULL, NULL); - } - GST_LOG_OBJECT (parse, "upstream BYTE handled %d, seekable %d", - res, seekable); - gst_query_unref (q); + seekable = parse->priv->upstream_seekable; + GST_LOG_OBJECT (parse, "already determine upstream seekabled: %d", + seekable); } gst_query_set_seeking (query, GST_FORMAT_TIME, seekable, 0, duration); res = TRUE; -- 2.7.4