element: use request_new_pad_full as the default
authorWim Taymans <wim.taymans@collabora.co.uk>
Tue, 10 May 2011 14:41:36 +0000 (16:41 +0200)
committerWim Taymans <wim.taymans@collabora.co.uk>
Tue, 10 May 2011 14:41:36 +0000 (16:41 +0200)
Add GstCaps to request_new_pad so that request_new_pad_full can be removed.
Fix elements.

gst/gstelement.c
gst/gstelement.h
plugins/elements/gstfunnel.c
plugins/elements/gstinputselector.c
plugins/elements/gstmultiqueue.c
plugins/elements/gstoutputselector.c
plugins/elements/gsttee.c

index 149ed305758b5059f7511ea1ee6d93e87b1db591..6903285b944ee952f97e0eeff4ad91a00f5be8f3 100644 (file)
@@ -1013,10 +1013,8 @@ _gst_element_request_pad (GstElement * element, GstPadTemplate * templ,
   }
 #endif
 
-  if (oclass->request_new_pad_full)
-    newpad = (oclass->request_new_pad_full) (element, templ, name, caps);
-  else if (oclass->request_new_pad)
-    newpad = (oclass->request_new_pad) (element, templ, name);
+  if (oclass->request_new_pad)
+    newpad = (oclass->request_new_pad) (element, templ, name, caps);
 
   if (newpad)
     gst_object_ref (newpad);
index 4ac7d16ee355bd63c9a57ecd6702f6131eddae64..d458bbeb96e7cac09e0ab8f9036fc53d442634d2 100644 (file)
@@ -627,7 +627,8 @@ struct _GstElementClass
   /* virtual methods for subclasses */
 
   /* request/release pads */
-  GstPad*               (*request_new_pad)      (GstElement *element, GstPadTemplate *templ, const gchar* name);
+  GstPad*               (*request_new_pad)      (GstElement *element, GstPadTemplate *templ,
+                                                 const gchar* name, const GstCaps *caps);
   void                  (*release_pad)          (GstElement *element, GstPad *pad);
 
   /* state changes */
@@ -653,14 +654,6 @@ struct _GstElementClass
   const GstQueryType*   (*get_query_types)      (GstElement *element);
   gboolean              (*query)                (GstElement *element, GstQuery *query);
 
-  /*< private >*/
-
-  /*< public >*/
-  /* Virtual method for subclasses (additions) */
-  /* FIXME-0.11 Make this the default behaviour */
-  GstPad*              (*request_new_pad_full) (GstElement *element, GstPadTemplate *templ,
-                                                const gchar* name, const GstCaps *caps);
-
   /*< private >*/
   gpointer _gst_reserved[GST_PADDING];
 };
@@ -754,8 +747,7 @@ void                    gst_element_no_more_pads        (GstElement *element);
 
 GstPad*                 gst_element_get_static_pad      (GstElement *element, const gchar *name);
 GstPad*                 gst_element_get_request_pad     (GstElement *element, const gchar *name);
-GstPad*                 gst_element_request_pad         (GstElement *element,
-                                                        GstPadTemplate *templ,
+GstPad*                 gst_element_request_pad         (GstElement *element, GstPadTemplate *templ,
                                                         const gchar * name, const GstCaps *caps);
 void                    gst_element_release_request_pad (GstElement *element, GstPad *pad);
 
index 1767c865ebdbe831ff9172e90cc95f2d649487ba..532dd8310c4294733606da0c889628a9b8a28808 100644 (file)
@@ -113,7 +113,7 @@ G_DEFINE_TYPE_WITH_CODE (GstFunnel, gst_funnel, GST_TYPE_ELEMENT, _do_init);
 static GstStateChangeReturn gst_funnel_change_state (GstElement * element,
     GstStateChange transition);
 static GstPad *gst_funnel_request_new_pad (GstElement * element,
-    GstPadTemplate * templ, const gchar * name);
+    GstPadTemplate * templ, const gchar * name, const GstCaps * caps);
 static void gst_funnel_release_pad (GstElement * element, GstPad * pad);
 
 static GstFlowReturn gst_funnel_sink_chain (GstPad * pad, GstBuffer * buffer);
@@ -175,7 +175,7 @@ gst_funnel_init (GstFunnel * funnel)
 
 static GstPad *
 gst_funnel_request_new_pad (GstElement * element, GstPadTemplate * templ,
-    const gchar * name)
+    const gchar * name, const GstCaps * caps)
 {
   GstPad *sinkpad;
 
index 43e24200962eb86be2f67d56a8121d16ceda7cf2..89497521be64db852a7ed31163dd84132f84083e 100644 (file)
@@ -688,7 +688,7 @@ static void gst_input_selector_get_property (GObject * object,
     guint prop_id, GValue * value, GParamSpec * pspec);
 
 static GstPad *gst_input_selector_request_new_pad (GstElement * element,
-    GstPadTemplate * templ, const gchar * unused);
+    GstPadTemplate * templ, const gchar * unused, const GstCaps * caps);
 static void gst_input_selector_release_pad (GstElement * element, GstPad * pad);
 
 static GstStateChangeReturn gst_input_selector_change_state (GstElement *
@@ -1261,7 +1261,7 @@ gst_input_selector_activate_sinkpad (GstInputSelector * sel, GstPad * pad)
 
 static GstPad *
 gst_input_selector_request_new_pad (GstElement * element,
-    GstPadTemplate * templ, const gchar * unused)
+    GstPadTemplate * templ, const gchar * unused, const GstCaps * caps)
 {
   GstInputSelector *sel;
   gchar *name = NULL;
index 52b4fd04a9f25d8bd2422014ebc0b705d14cb120..31e936c00c8d6133c2a808fcdcac96de45c61502 100644 (file)
@@ -255,7 +255,7 @@ static void gst_multi_queue_get_property (GObject * object,
     guint prop_id, GValue * value, GParamSpec * pspec);
 
 static GstPad *gst_multi_queue_request_new_pad (GstElement * element,
-    GstPadTemplate * temp, const gchar * name);
+    GstPadTemplate * temp, const gchar * name, const GstCaps * caps);
 static void gst_multi_queue_release_pad (GstElement * element, GstPad * pad);
 static GstStateChangeReturn gst_multi_queue_change_state (GstElement *
     element, GstStateChange transition);
@@ -585,7 +585,7 @@ out:
 
 static GstPad *
 gst_multi_queue_request_new_pad (GstElement * element, GstPadTemplate * temp,
-    const gchar * name)
+    const gchar * name, const GstCaps * caps)
 {
   GstMultiQueue *mqueue = GST_MULTI_QUEUE (element);
   GstSingleQueue *squeue;
index 1c468711fcf9f1e823319aac321020bda44bed2b..e29812caa26702c9c1f8865ef2c2662e2330d91e 100644 (file)
@@ -99,7 +99,7 @@ static void gst_output_selector_set_property (GObject * object,
 static void gst_output_selector_get_property (GObject * object,
     guint prop_id, GValue * value, GParamSpec * pspec);
 static GstPad *gst_output_selector_request_new_pad (GstElement * element,
-    GstPadTemplate * templ, const gchar * unused);
+    GstPadTemplate * templ, const gchar * unused, const GstCaps * caps);
 static void gst_output_selector_release_pad (GstElement * element,
     GstPad * pad);
 static GstFlowReturn gst_output_selector_chain (GstPad * pad, GstBuffer * buf);
@@ -351,7 +351,7 @@ gst_output_selector_switch_pad_negotiation_mode (GstOutputSelector * sel,
 
 static GstPad *
 gst_output_selector_request_new_pad (GstElement * element,
-    GstPadTemplate * templ, const gchar * name)
+    GstPadTemplate * templ, const gchar * name, const GstCaps * caps)
 {
   gchar *padname;
   GstPad *srcpad;
index c768448204a387aabf0fc81f3f05298481c966ba..3edd398228f96b4aff53f58cd608aaa67cfba069 100644 (file)
@@ -125,7 +125,7 @@ typedef struct
 } PushData;
 
 static GstPad *gst_tee_request_new_pad (GstElement * element,
-    GstPadTemplate * temp, const gchar * unused);
+    GstPadTemplate * temp, const gchar * unused, const GstCaps * caps);
 static void gst_tee_release_pad (GstElement * element, GstPad * pad);
 
 static void gst_tee_finalize (GObject * object);
@@ -273,7 +273,7 @@ gst_tee_notify_alloc_pad (GstTee * tee)
 
 static GstPad *
 gst_tee_request_new_pad (GstElement * element, GstPadTemplate * templ,
-    const gchar * unused)
+    const gchar * unused, const GstCaps * caps)
 {
   gchar *name;
   GstPad *srcpad;