From 9be02ccb2acf0271347dca3e693b13cf9d02c50f Mon Sep 17 00:00:00 2001 From: Garima Gaur Date: Wed, 14 Dec 2016 13:10:18 +0530 Subject: [PATCH] sys: Fix caps memory leak from pad template creation https://bugzilla.gnome.org/show_bug.cgi?id=776076 --- sys/dshowdecwrapper/gstdshowaudiodec.cpp | 6 ++++++ sys/dshowdecwrapper/gstdshowvideodec.cpp | 6 ++++++ sys/vdpau/gstvdpdecoder.c | 3 +++ 3 files changed, 15 insertions(+) diff --git a/sys/dshowdecwrapper/gstdshowaudiodec.cpp b/sys/dshowdecwrapper/gstdshowaudiodec.cpp index 9fb83e5bee..ad73850391 100644 --- a/sys/dshowdecwrapper/gstdshowaudiodec.cpp +++ b/sys/dshowdecwrapper/gstdshowaudiodec.cpp @@ -364,6 +364,12 @@ gst_dshowaudiodec_base_init (gpointer klass) /* register */ gst_element_class_add_pad_template (element_class, src); gst_element_class_add_pad_template (element_class, sink); + + if (sinkcaps) + gst_caps_unref(sinkcaps); + + if (srccaps) + gst_caps_unref(srccaps); } static void diff --git a/sys/dshowdecwrapper/gstdshowvideodec.cpp b/sys/dshowdecwrapper/gstdshowvideodec.cpp index 9c2f59cfc7..7288f72fd3 100644 --- a/sys/dshowdecwrapper/gstdshowvideodec.cpp +++ b/sys/dshowdecwrapper/gstdshowvideodec.cpp @@ -409,6 +409,12 @@ gst_dshowvideodec_base_init (gpointer klass) gst_element_class_add_pad_template (element_class, src); gst_element_class_add_pad_template (element_class, sink); + + if (sinkcaps) + gst_caps_unref(sinkcaps); + + if (srccaps) + gst_caps_unref(srccaps); } static void diff --git a/sys/vdpau/gstvdpdecoder.c b/sys/vdpau/gstvdpdecoder.c index b41861f0cb..c3892f235c 100644 --- a/sys/vdpau/gstvdpdecoder.c +++ b/sys/vdpau/gstvdpdecoder.c @@ -360,6 +360,9 @@ gst_vdp_decoder_class_init (GstVdpDecoderClass * klass) gst_element_class_add_pad_template (element_class, src_template); + if (src_caps) + gst_caps_unref (src_caps); + g_object_class_install_property (object_class, PROP_DISPLAY, g_param_spec_string ("display", "Display", "X Display name", NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT));