vaapidecode: fix another pad template ref leak.
authorGwenole Beauchesne <gwenole.beauchesne@intel.com>
Mon, 6 Feb 2012 15:11:38 +0000 (16:11 +0100)
committerGwenole Beauchesne <gwenole.beauchesne@intel.com>
Mon, 6 Feb 2012 15:11:38 +0000 (16:11 +0100)
gst/vaapi/gstvaapidecode.c

index ea6a0ef..eaa79a2 100644 (file)
@@ -712,6 +712,7 @@ static void
 gst_vaapidecode_init(GstVaapiDecode *decode, GstVaapiDecodeClass *klass)
 {
     GstElementClass * const element_class = GST_ELEMENT_CLASS(klass);
+    GstPadTemplate *pad_template;
 
     decode->display             = NULL;
     decode->decoder             = NULL;
@@ -723,10 +724,9 @@ gst_vaapidecode_init(GstVaapiDecode *decode, GstVaapiDecodeClass *klass)
     decode->is_ready            = FALSE;
 
     /* Pad through which data comes in to the element */
-    decode->sinkpad = gst_pad_new_from_template(
-        gst_element_class_get_pad_template(element_class, "sink"),
-        "sink"
-    );
+    pad_template = gst_element_class_get_pad_template(element_class, "sink");
+    decode->sinkpad = gst_pad_new_from_template(pad_template, "sink");
+    gst_object_unref(pad_template);
     decode->sinkpad_caps = NULL;
 
     gst_pad_set_getcaps_function(decode->sinkpad, gst_vaapidecode_get_caps);
@@ -737,10 +737,9 @@ gst_vaapidecode_init(GstVaapiDecode *decode, GstVaapiDecodeClass *klass)
     gst_element_add_pad(GST_ELEMENT(decode), decode->sinkpad);
 
     /* Pad through which data goes out of the element */
-    decode->srcpad = gst_pad_new_from_template(
-        gst_element_class_get_pad_template(element_class, "src"),
-        "src"
-    );
+    pad_template = gst_element_class_get_pad_template(element_class, "src");
+    decode->srcpad = gst_pad_new_from_template(pad_template, "src");
+    gst_object_unref(pad_template);
     decode->srcpad_caps = NULL;
 
     gst_pad_use_fixed_caps(decode->srcpad);