From: Wim Taymans Date: Tue, 14 Feb 2012 12:25:25 +0000 (+0100) Subject: tagdemux: fix src query handler X-Git-Tag: RELEASE-0.11.2~8 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ee2c6990165fe3f63b54d4b273e4542fc5854992;p=platform%2Fupstream%2Fgst-plugins-base.git tagdemux: fix src query handler We don't want to blindly forward all queries. --- diff --git a/gst-libs/gst/tag/gsttagdemux.c b/gst-libs/gst/tag/gsttagdemux.c index dd07889..6e12506 100644 --- a/gst-libs/gst/tag/gsttagdemux.c +++ b/gst-libs/gst/tag/gsttagdemux.c @@ -1340,13 +1340,17 @@ gst_tag_demux_pad_query (GstPad * pad, GstObject * parent, GstQuery * query) GstTagDemux *demux = GST_TAG_DEMUX (parent); GstFormat format; gint64 result; - - if (!gst_pad_peer_query (demux->priv->sinkpad, query)) - return FALSE; + gboolean res = TRUE; switch (GST_QUERY_TYPE (query)) { + case GST_QUERY_SCHEDULING: + res = gst_pad_peer_query (demux->priv->sinkpad, query); + break; case GST_QUERY_POSITION: { + if (!(res = gst_pad_peer_query (demux->priv->sinkpad, query))) + goto done; + gst_query_parse_position (query, &format, &result); if (format == GST_FORMAT_BYTES) { result -= demux->priv->strip_start; @@ -1356,6 +1360,9 @@ gst_tag_demux_pad_query (GstPad * pad, GstObject * parent, GstQuery * query) } case GST_QUERY_DURATION: { + if (!(res = gst_pad_peer_query (demux->priv->sinkpad, query))) + goto done; + gst_query_parse_duration (query, &format, &result); if (format == GST_FORMAT_BYTES) { result -= demux->priv->strip_start + demux->priv->strip_end; @@ -1364,10 +1371,11 @@ gst_tag_demux_pad_query (GstPad * pad, GstObject * parent, GstQuery * query) break; } default: + res = gst_pad_query_default (pad, parent, query); break; } - - return TRUE; +done: + return res; } static void