summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGarima Gaur <garima.g@samsung.com>2017-01-03 09:02:36 +0530
committerTim-Philipp Müller <tim@centricular.com>2017-01-03 10:02:58 +0000
commit81b0a14d692bb679c5688ef597e5aab6f0ce7730 (patch)
tree7d680e89eee7615ff7780d0c9418636b2daf50fa
parente2fba4003863edb39ecd779204818497bbddb652 (diff)
downloadgstreamer-plugins-bad-81b0a14d692bb679c5688ef597e5aab6f0ce7730.tar.gz
Fix some caps leaks in pad template creation code
gst_pad_template_new() does not take ownership of the caps passed to it, so we need to unref the caps. https://bugzilla.gnome.org/show_bug.cgi?id=776790 https://bugzilla.gnome.org/show_bug.cgi?id=776787
-rw-r--r--ext/opencv/gstcvdilateerode.cpp1
-rw-r--r--ext/opencv/gstcvsmooth.cpp1
-rw-r--r--gst/frei0r/gstfrei0rfilter.c1
-rw-r--r--gst/frei0r/gstfrei0rsrc.c1
-rw-r--r--sys/applemedia/vtenc.c1
-rw-r--r--sys/vdpau/gstvdpvideopostprocess.c2
6 files changed, 7 insertions, 0 deletions
diff --git a/ext/opencv/gstcvdilateerode.cpp b/ext/opencv/gstcvdilateerode.cpp
index 2f4babc9c..05823d97e 100644
--- a/ext/opencv/gstcvdilateerode.cpp
+++ b/ext/opencv/gstcvdilateerode.cpp
@@ -144,6 +144,7 @@ gst_cv_dilate_erode_class_init (GstCvDilateErodeClass * klass)
gst_element_class_add_pad_template (element_class, templ);
templ = gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS, caps);
gst_element_class_add_pad_template (element_class, templ);
+ gst_caps_unref (caps);
}
/* initialize the new element
diff --git a/ext/opencv/gstcvsmooth.cpp b/ext/opencv/gstcvsmooth.cpp
index 72c6f4241..181576bfd 100644
--- a/ext/opencv/gstcvsmooth.cpp
+++ b/ext/opencv/gstcvsmooth.cpp
@@ -196,6 +196,7 @@ gst_cv_smooth_class_init (GstCvSmoothClass * klass)
gst_element_class_add_pad_template (element_class, templ);
templ = gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS, caps);
gst_element_class_add_pad_template (element_class, templ);
+ gst_caps_unref (caps);
}
/* initialize the new element
diff --git a/gst/frei0r/gstfrei0rfilter.c b/gst/frei0r/gstfrei0rfilter.c
index 0cb15c6ee..ba0d40532 100644
--- a/gst/frei0r/gstfrei0rfilter.c
+++ b/gst/frei0r/gstfrei0rfilter.c
@@ -232,6 +232,7 @@ gst_frei0r_filter_class_init (GstFrei0rFilterClass * klass,
templ = gst_pad_template_new ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, caps);
gst_element_class_add_pad_template (gstelement_class, templ);
+ gst_caps_unref (caps);
gsttrans_class->set_caps = GST_DEBUG_FUNCPTR (gst_frei0r_filter_set_caps);
gsttrans_class->stop = GST_DEBUG_FUNCPTR (gst_frei0r_filter_stop);
diff --git a/gst/frei0r/gstfrei0rsrc.c b/gst/frei0r/gstfrei0rsrc.c
index e5cf41205..eb3c010fd 100644
--- a/gst/frei0r/gstfrei0rsrc.c
+++ b/gst/frei0r/gstfrei0rsrc.c
@@ -348,6 +348,7 @@ gst_frei0r_src_class_init (GstFrei0rSrcClass * klass,
templ = gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS, caps);
gst_element_class_add_pad_template (gstelement_class, templ);
+ gst_caps_unref (caps);
gstbasesrc_class->set_caps = GST_DEBUG_FUNCPTR (gst_frei0r_src_set_caps);
gstbasesrc_class->is_seekable =
diff --git a/sys/applemedia/vtenc.c b/sys/applemedia/vtenc.c
index d91ab824c..8b325fb82 100644
--- a/sys/applemedia/vtenc.c
+++ b/sys/applemedia/vtenc.c
@@ -194,6 +194,7 @@ gst_vtenc_base_init (GstVTEncClass * klass)
src_template = gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS,
src_caps);
gst_element_class_add_pad_template (element_class, src_template);
+ gst_caps_unref (src_caps);
}
static void
diff --git a/sys/vdpau/gstvdpvideopostprocess.c b/sys/vdpau/gstvdpvideopostprocess.c
index 5afe5cd41..7f4f480a4 100644
--- a/sys/vdpau/gstvdpvideopostprocess.c
+++ b/sys/vdpau/gstvdpvideopostprocess.c
@@ -1233,12 +1233,14 @@ gst_vdp_vpp_class_init (GstVdpVideoPostProcessClass * klass)
src_template = gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS,
src_caps);
gst_element_class_add_pad_template (gstelement_class, src_template);
+ gst_caps_unref (src_caps);
/* SINK PAD */
sink_caps = gst_vdp_video_buffer_get_caps (FALSE, 0);
sink_template = gst_pad_template_new ("sink", GST_PAD_SINK, GST_PAD_ALWAYS,
sink_caps);
gst_element_class_add_pad_template (gstelement_class, sink_template);
+ gst_caps_unref (sink_caps);
}
static void