check: Add new API to set up pads from non-static pad templates
authorSebastian Dröge <sebastian@centricular.com>
Tue, 15 Apr 2014 10:58:59 +0000 (12:58 +0200)
committerSebastian Dröge <sebastian@centricular.com>
Tue, 15 Apr 2014 10:58:59 +0000 (12:58 +0200)
libs/gst/check/Makefile.am
libs/gst/check/gstcheck.c
libs/gst/check/gstcheck.h

index 120a3b08afcdce8e63d2534568737ebecc89ee7d..72ddd75ec2ef7f8a636b8bbc979af7b7467adba8 100644 (file)
@@ -82,9 +82,13 @@ LIBGSTCHECK_EXPORTED_FUNCS = \
        gst_check_setup_events \
        gst_check_setup_events_with_stream_id \
        gst_check_setup_sink_pad \
+       gst_check_setup_sink_pad_from_template \
        gst_check_setup_sink_pad_by_name \
+       gst_check_setup_sink_pad_by_name_from_templ \
        gst_check_setup_src_pad \
+       gst_check_setup_src_pad_from_template \
        gst_check_setup_src_pad_by_name \
+       gst_check_setup_src_pad_by_name_from_template \
        gst_check_teardown_element \
        gst_check_teardown_pad_by_name \
        gst_check_teardown_sink_pad \
index bac4782fdf0befc29f61c367175e2ebe49ae74f9..454ebb243e02f081e97500e9752c27419b0d94ab 100644 (file)
@@ -262,11 +262,48 @@ gst_check_setup_src_pad (GstElement * element, GstStaticPadTemplate * tmpl)
 GstPad *
 gst_check_setup_src_pad_by_name (GstElement * element,
     GstStaticPadTemplate * tmpl, const gchar * name)
+{
+  GstPadTemplate *ptmpl = gst_static_pad_template_get (tmpl);
+  GstPad *srcpad;
+
+  srcpad =
+      gst_check_setup_src_pad_by_name_from_template (element, ptmpl, "sink");
+
+  gst_object_unref (ptmpl);
+
+  return srcpad;
+}
+
+/**
+ * gst_check_setup_src_pad_from_template:
+ * @element: element to setup pad on
+ * @tmpl: pad template
+ *
+ * Returns: (transfer full): a new pad
+ */
+GstPad *
+gst_check_setup_src_pad_from_template (GstElement * element,
+    GstPadTemplate * tmpl)
+{
+  return gst_check_setup_src_pad_by_name_from_template (element, tmpl, "sink");
+}
+
+/**
+ * gst_check_setup_src_pad_by_name_from_template:
+ * @element: element to setup pad on
+ * @tmpl: pad template
+ * @name: name
+ *
+ * Returns: (transfer full): a new pad
+ */
+GstPad *
+gst_check_setup_src_pad_by_name_from_template (GstElement * element,
+    GstPadTemplate * tmpl, const gchar * name)
 {
   GstPad *srcpad, *sinkpad;
 
   /* sending pad */
-  srcpad = gst_pad_new_from_static_template (tmpl, "src");
+  srcpad = gst_pad_new_from_template (tmpl, "src");
   GST_DEBUG_OBJECT (element, "setting up sending pad %p", srcpad);
   fail_if (srcpad == NULL, "Could not create a srcpad");
   ASSERT_OBJECT_REFCOUNT (srcpad, "srcpad", 1);
@@ -348,11 +385,48 @@ gst_check_setup_sink_pad (GstElement * element, GstStaticPadTemplate * tmpl)
 GstPad *
 gst_check_setup_sink_pad_by_name (GstElement * element,
     GstStaticPadTemplate * tmpl, const gchar * name)
+{
+  GstPadTemplate *ptmpl = gst_static_pad_template_get (tmpl);
+  GstPad *sinkpad;
+
+  sinkpad =
+      gst_check_setup_sink_pad_by_name_from_template (element, ptmpl, "src");
+
+  gst_object_unref (ptmpl);
+
+  return sinkpad;
+}
+
+/**
+ * gst_check_setup_sink_pad_from_template:
+ * @element: element to setup pad on
+ * @tmpl: pad template
+ *
+ * Returns: (transfer full): a new pad
+ */
+GstPad *
+gst_check_setup_sink_pad_from_template (GstElement * element,
+    GstPadTemplate * tmpl)
+{
+  return gst_check_setup_sink_pad_by_name_from_template (element, tmpl, "src");
+}
+
+/**
+ * gst_check_setup_sink_pad_by_name_from_template:
+ * @element: element to setup pad on
+ * @tmpl: pad template
+ * @name: name
+ *
+ * Returns: (transfer full): a new pad
+ */
+GstPad *
+gst_check_setup_sink_pad_by_name_from_template (GstElement * element,
+    GstPadTemplate * tmpl, const gchar * name)
 {
   GstPad *srcpad, *sinkpad;
 
   /* receiving pad */
-  sinkpad = gst_pad_new_from_static_template (tmpl, "sink");
+  sinkpad = gst_pad_new_from_template (tmpl, "sink");
   GST_DEBUG_OBJECT (element, "setting up receiving pad %p", sinkpad);
   fail_if (sinkpad == NULL, "Could not create a sinkpad");
 
index c1d7d837be37f961c055bce77c2b5eea3958b018..ee925790ddbb11df0b5f5b0e988e9768731e5ab7 100644 (file)
@@ -73,10 +73,20 @@ GstElement *gst_check_setup_element (const gchar * factory);
 void gst_check_teardown_element (GstElement * element);
 GstPad *gst_check_setup_src_pad (GstElement * element,
     GstStaticPadTemplate * tmpl);
+GstPad *gst_check_setup_src_pad_from_template (GstElement * element,
+    GstPadTemplate * tmpl);
 GstPad * gst_check_setup_src_pad_by_name (GstElement * element,
           GstStaticPadTemplate * tmpl, const gchar *name);
+GstPad * gst_check_setup_src_pad_by_name_from_template (GstElement * element,
+          GstPadTemplate * tmpl, const gchar *name);
+GstPad *gst_check_setup_sink_pad (GstElement * element,
+    GstStaticPadTemplate * tmpl);
+GstPad *gst_check_setup_sink_pad_from_template (GstElement * element,
+    GstPadTemplate * tmpl);
 GstPad * gst_check_setup_sink_pad_by_name (GstElement * element, 
           GstStaticPadTemplate * tmpl, const gchar *name);
+GstPad * gst_check_setup_sink_pad_by_name_from_template (GstElement * element, 
+          GstPadTemplate * tmpl, const gchar *name);
 void gst_check_teardown_pad_by_name (GstElement * element, const gchar *name);
 void gst_check_teardown_src_pad (GstElement * element);
 void gst_check_drop_buffers (void);
@@ -88,8 +98,6 @@ void gst_check_element_push_buffer_list (const gchar * element_name,
 void gst_check_element_push_buffer (const gchar * element_name,
     GstBuffer * buffer_in, GstCaps * caps_in, GstBuffer * buffer_out,
     GstCaps *caps_out);
-GstPad *gst_check_setup_sink_pad (GstElement * element,
-    GstStaticPadTemplate * tmpl);
 void gst_check_teardown_sink_pad (GstElement * element);
 void gst_check_abi_list (GstCheckABIStruct list[], gboolean have_abi_sizes);
 gint gst_check_run_suite (Suite * suite, const gchar * name,