gstelement: add gst_element_class_add_pad_template_from_static
authorVincent Penquerc'h <vincent.penquerch@collabora.co.uk>
Mon, 28 Nov 2011 12:30:15 +0000 (12:30 +0000)
committerVincent Penquerc'h <vincent.penquerch@collabora.co.uk>
Mon, 28 Nov 2011 13:09:07 +0000 (13:09 +0000)
This function helps ensure the pad template is unreffed
without having to complicate the calling code.

https://bugzilla.gnome.org/show_bug.cgi?id=662664

gst/gstelement.c
gst/gstelement.h
win32/common/libgstreamer.def

index b101b6b65f5ce751ed003d5b2d56ea24566885b6..afa25b9d3717cbe247c5606cf9bbd57e73886cc7 100644 (file)
@@ -1331,6 +1331,30 @@ gst_element_class_add_pad_template (GstElementClass * klass,
   klass->numpadtemplates++;
 }
 
+/**
+ * gst_element_class_add_static_pad_template:
+ * @klass: the #GstElementClass to add the pad template to.
+ * @templ: (transfer none): a #GstStaticPadTemplate describing the pad
+ * to add to the element class.
+ *
+ * Adds a padtemplate to an element class. This is mainly used in the _base_init
+ * functions of classes.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_element_class_add_static_pad_template (GstElementClass * klass,
+    GstStaticPadTemplate * templ)
+{
+  GstPadTemplate *pt;
+
+  g_return_if_fail (GST_IS_ELEMENT_CLASS (klass));
+
+  pt = gst_static_pad_template_get (templ);
+  gst_element_class_add_pad_template (klass, pt);
+  gst_object_unref (pt);
+}
+
 static void
 gst_element_class_add_meta_data (GstElementClass * klass,
     const gchar * key, const gchar * value)
index e22999c7ec5a044ab551b45d4762ef5641856644..5c3286fb406a720d6fd17528d0c5605cd500ac96 100644 (file)
@@ -680,6 +680,7 @@ struct _GstElementClass
 
 /* element class pad templates */
 void                    gst_element_class_add_pad_template      (GstElementClass *klass, GstPadTemplate *templ);
+void                    gst_element_class_add_static_pad_template      (GstElementClass *klass, GstStaticPadTemplate *templ);
 GstPadTemplate*         gst_element_class_get_pad_template      (GstElementClass *element_class, const gchar *name);
 GList*                  gst_element_class_get_pad_template_list (GstElementClass *element_class);
 
index f7a7974e4ed782d9ab494d5283141338bca57d8d..1fafc21fd1b7bf1d0a7a468cec2ac8a9de004fd8 100644 (file)
@@ -299,6 +299,7 @@ EXPORTS
        gst_element_add_pad
        gst_element_change_state
        gst_element_class_add_pad_template
+       gst_element_class_add_static_pad_template
        gst_element_class_get_pad_template
        gst_element_class_get_pad_template_list
        gst_element_class_install_std_props