playbin: Refactor autoplug-query handling a bit
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Tue, 28 May 2013 09:05:21 +0000 (11:05 +0200)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Tue, 28 May 2013 09:05:21 +0000 (11:05 +0200)
gst/playback/gstplaybin2.c

index 032bd20..d32746a 100644 (file)
@@ -4080,7 +4080,7 @@ autoplug_select_cb (GstElement * decodebin, GstPad * pad,
 }
 
 static gboolean
-autoplug_query_cb (GstElement * uridecodebin, GstPad * pad, GstQuery * query,
+autoplug_query_caps (GstElement * uridecodebin, GstPad * pad, GstQuery * query,
     GstSourceGroup * group)
 {
   GstCaps *filter, *result = NULL;
@@ -4090,9 +4090,6 @@ autoplug_query_cb (GstElement * uridecodebin, GstPad * pad, GstQuery * query,
   gint i, n;
   gboolean have_audio_sink = FALSE, have_video_sink = FALSE;
 
-  if (GST_QUERY_TYPE (query) != GST_QUERY_CAPS)
-    return FALSE;
-
   gst_query_parse_caps (query, &filter);
   GST_SOURCE_GROUP_LOCK (group);
 
@@ -4243,6 +4240,19 @@ done:
   return TRUE;
 }
 
+static gboolean
+autoplug_query_cb (GstElement * uridecodebin, GstPad * pad, GstQuery * query,
+    GstSourceGroup * group)
+{
+
+  switch (GST_QUERY_TYPE (query)) {
+    case GST_QUERY_CAPS:
+      return autoplug_query_caps (uridecodebin, pad, query, group);
+    default:
+      return FALSE;
+  }
+}
+
 static void
 notify_source_cb (GstElement * uridecodebin, GParamSpec * pspec,
     GstSourceGroup * group)