From: Wim Taymans Date: Mon, 2 Jan 2012 17:28:46 +0000 (+0100) Subject: streamcombiner: fix srcpad query caps X-Git-Tag: 1.19.3~511^2~6995 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e2f91075e44d4c6a4dd128cb8a783412c1dedf17;p=platform%2Fupstream%2Fgstreamer.git streamcombiner: fix srcpad query caps The caps query on the srcpad should return the template caps instead of forwarding the query. --- diff --git a/gst/encoding/gststreamcombiner.c b/gst/encoding/gststreamcombiner.c index 5cf7629..19a6adf 100644 --- a/gst/encoding/gststreamcombiner.c +++ b/gst/encoding/gststreamcombiner.c @@ -166,19 +166,26 @@ gst_stream_combiner_src_query (GstPad * pad, GstObject * parent, { GstStreamCombiner *stream_combiner = (GstStreamCombiner *) parent; GstPad *sinkpad = NULL; + gboolean ret = FALSE; - STREAMS_LOCK (stream_combiner); - if (stream_combiner->current) - sinkpad = stream_combiner->current; - else if (stream_combiner->sinkpads) - sinkpad = (GstPad *) stream_combiner->sinkpads->data; - STREAMS_UNLOCK (stream_combiner); - - if (sinkpad) - /* Forward upstream as is */ - return gst_pad_peer_query (sinkpad, query); - - return FALSE; + switch (GST_QUERY_TYPE (query)) { + case GST_QUERY_CAPS: + ret = gst_pad_query_default (pad, parent, query); + break; + default: + STREAMS_LOCK (stream_combiner); + if (stream_combiner->current) + sinkpad = stream_combiner->current; + else if (stream_combiner->sinkpads) + sinkpad = (GstPad *) stream_combiner->sinkpads->data; + STREAMS_UNLOCK (stream_combiner); + + if (sinkpad) + /* Forward upstream as is */ + ret = gst_pad_peer_query (sinkpad, query); + break; + } + return ret; } static void