inputselector: always proxy caps query
authorThiago Santos <thiagoss@osg.samsung.com>
Thu, 14 Aug 2014 21:53:40 +0000 (18:53 -0300)
committerTim-Philipp Müller <tim@centricular.com>
Sat, 23 Aug 2014 11:40:25 +0000 (12:40 +0100)
Otherwise it would only be proxied for the active pad which can lead
upstream to use an incompatible caps for the downstream element.

Even if a reconfigure event is sent upstream when the pad is activated, this
will save the caps reconfiguration if it is already using an acceptable caps.

plugins/elements/gstinputselector.c

index 45db79b..fb50802 100644 (file)
@@ -588,8 +588,13 @@ static gboolean
 gst_selector_pad_query (GstPad * pad, GstObject * parent, GstQuery * query)
 {
   gboolean res = FALSE;
+  GstInputSelector *self = (GstInputSelector *) parent;
 
   switch (GST_QUERY_TYPE (query)) {
+    case GST_QUERY_CAPS:
+      /* always proxy caps query, regardless of active pad or not */
+      res = gst_pad_peer_query (self->srcpad, query);
+      break;
     case GST_QUERY_ALLOCATION:{
       GstPad *active_sinkpad;
       GstInputSelector *sel = GST_INPUT_SELECTOR (parent);