uridecodebin: Add default handler for autoplug-select
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Fri, 18 Feb 2011 11:06:30 +0000 (12:06 +0100)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Fri, 18 Feb 2011 11:06:30 +0000 (12:06 +0100)
uridecodebin proxies this signal and only the first signal handler
will ever be called from decodebin2, which is uridecodebin's proxy
signal handler.

gst/playback/gsturidecodebin.c

index ddd322a..af2d3dd 100644 (file)
@@ -124,7 +124,7 @@ struct _GstURIDecodeBinClass
       GstCaps * caps, GValueArray * factories);
   /* signal fired to select from the proposed list of factories */
     GstAutoplugSelectResult (*autoplug_select) (GstElement * element,
-      GstPad * pad, GstCaps * caps, GValueArray * factories);
+      GstPad * pad, GstCaps * caps, GstElementFactory * factory);
 
   /* emited when all data is decoded */
   void (*drained) (GstElement * element);
@@ -336,6 +336,16 @@ gst_uri_decode_bin_autoplug_sort (GstElement * element, GstPad * pad,
   return NULL;
 }
 
+static GstAutoplugSelectResult
+gst_uri_decode_bin_autoplug_select (GstElement * element, GstPad * pad,
+    GstCaps * caps, GstElementFactory * factory)
+{
+  GST_DEBUG_OBJECT (element, "default autoplug-select returns TRY");
+
+  /* Try factory. */
+  return GST_AUTOPLUG_SELECT_TRY;
+}
+
 static void
 gst_uri_decode_bin_class_init (GstURIDecodeBinClass * klass)
 {
@@ -619,6 +629,8 @@ gst_uri_decode_bin_class_init (GstURIDecodeBinClass * klass)
   klass->autoplug_factories =
       GST_DEBUG_FUNCPTR (gst_uri_decode_bin_autoplug_factories);
   klass->autoplug_sort = GST_DEBUG_FUNCPTR (gst_uri_decode_bin_autoplug_sort);
+  klass->autoplug_select =
+      GST_DEBUG_FUNCPTR (gst_uri_decode_bin_autoplug_select);
 }
 
 static void