From 1d550e91e96da89fc8d8d62742714f25fd4dd144 Mon Sep 17 00:00:00 2001 From: Sejun Park Date: Fri, 13 Jan 2017 13:04:08 +0900 Subject: [PATCH] fixed memory leaks caused by no freeing caps Change-Id: I9957cb2f44dc4acec6f6fd567367b5149748afbf --- ext/libav/gstavauddec.c | 3 +++ ext/libav/gstavaudenc.c | 3 +++ ext/libav/gstavmux.c | 3 +++ ext/libav/gstavviddec.c | 3 +++ ext/libav/gstavvidenc.c | 3 +++ 5 files changed, 15 insertions(+) mode change 100644 => 100755 ext/libav/gstavauddec.c mode change 100644 => 100755 ext/libav/gstavaudenc.c mode change 100644 => 100755 ext/libav/gstavmux.c mode change 100644 => 100755 ext/libav/gstavviddec.c mode change 100644 => 100755 ext/libav/gstavvidenc.c diff --git a/ext/libav/gstavauddec.c b/ext/libav/gstavauddec.c old mode 100644 new mode 100755 index 2418e00..119a97c --- a/ext/libav/gstavauddec.c +++ b/ext/libav/gstavauddec.c @@ -109,6 +109,9 @@ gst_ffmpegauddec_base_init (GstFFMpegAudDecClass * klass) gst_element_class_add_pad_template (element_class, srctempl); gst_element_class_add_pad_template (element_class, sinktempl); + gst_caps_unref (sinkcaps); + gst_caps_unref (srccaps); + klass->in_plugin = in_plugin; klass->srctempl = srctempl; klass->sinktempl = sinktempl; diff --git a/ext/libav/gstavaudenc.c b/ext/libav/gstavaudenc.c old mode 100644 new mode 100755 index 0009ce1..f07ee3a --- a/ext/libav/gstavaudenc.c +++ b/ext/libav/gstavaudenc.c @@ -124,6 +124,9 @@ gst_ffmpegaudenc_base_init (GstFFMpegAudEncClass * klass) gst_element_class_add_pad_template (element_class, srctempl); gst_element_class_add_pad_template (element_class, sinktempl); + gst_caps_unref (sinkcaps); + gst_caps_unref (srccaps); + klass->in_plugin = in_plugin; klass->srctempl = srctempl; klass->sinktempl = sinktempl; diff --git a/ext/libav/gstavmux.c b/ext/libav/gstavmux.c old mode 100644 new mode 100755 index 9c628b2..d2c464a --- a/ext/libav/gstavmux.c +++ b/ext/libav/gstavmux.c @@ -556,17 +556,20 @@ gst_ffmpegmux_base_init (gpointer g_class) /* pad templates */ srctempl = gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS, srccaps); gst_element_class_add_pad_template (element_class, srctempl); + gst_caps_unref (srccaps); if (audiosinkcaps) { audiosinktempl = gst_pad_template_new ("audio_%u", GST_PAD_SINK, GST_PAD_REQUEST, audiosinkcaps); gst_element_class_add_pad_template (element_class, audiosinktempl); + gst_caps_unref (audiosinkcaps); } if (videosinkcaps) { videosinktempl = gst_pad_template_new ("video_%u", GST_PAD_SINK, GST_PAD_REQUEST, videosinkcaps); gst_element_class_add_pad_template (element_class, videosinktempl); + gst_caps_unref (videosinkcaps); } beach: diff --git a/ext/libav/gstavviddec.c b/ext/libav/gstavviddec.c old mode 100644 new mode 100755 index 027515e..d1f6485 --- a/ext/libav/gstavviddec.c +++ b/ext/libav/gstavviddec.c @@ -194,6 +194,9 @@ gst_ffmpegviddec_base_init (GstFFMpegVidDecClass * klass) gst_element_class_add_pad_template (element_class, srctempl); gst_element_class_add_pad_template (element_class, sinktempl); + gst_caps_unref (sinkcaps); + gst_caps_unref (srccaps); + klass->in_plugin = in_plugin; } diff --git a/ext/libav/gstavvidenc.c b/ext/libav/gstavvidenc.c old mode 100644 new mode 100755 index e161732..8ce1a7a --- a/ext/libav/gstavvidenc.c +++ b/ext/libav/gstavvidenc.c @@ -161,6 +161,9 @@ gst_ffmpegvidenc_base_init (GstFFMpegVidEncClass * klass) gst_element_class_add_pad_template (element_class, srctempl); gst_element_class_add_pad_template (element_class, sinktempl); + gst_caps_unref (sinkcaps); + gst_caps_unref (srccaps); + klass->in_plugin = in_plugin; klass->srctempl = srctempl; klass->sinktempl = sinktempl; -- 2.7.4