summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGarima Gaur <garima.g@samsung.com>2017-01-02 09:06:09 +0530
committerTim-Philipp Müller <tim@centricular.com>2017-01-02 12:41:20 +0000
commit14dc964f0e4526a842a245fdb86b98985bb12e3f (patch)
treeb94f8701c3528d3bbb884fdaee0d794398a149bc
parentbeb11a99ba7eaf431e4385146576ce96fdcb7283 (diff)
downloadgst-libav-14dc964f0e4526a842a245fdb86b98985bb12e3f.tar.gz
Fix some caps leaks when creating pad templates
https://bugzilla.gnome.org/show_bug.cgi?id=776700
-rw-r--r--ext/libav/gstavauddec.c3
-rw-r--r--ext/libav/gstavaudenc.c3
-rw-r--r--ext/libav/gstavdemux.c2
-rw-r--r--ext/libav/gstavmux.c3
-rw-r--r--ext/libav/gstavviddec.c3
-rw-r--r--ext/libav/gstavvidenc.c3
6 files changed, 17 insertions, 0 deletions
diff --git a/ext/libav/gstavauddec.c b/ext/libav/gstavauddec.c
index ef63f53..4d04dfa 100644
--- a/ext/libav/gstavauddec.c
+++ b/ext/libav/gstavauddec.c
@@ -107,6 +107,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
index f190ef9..12cc804 100644
--- 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/gstavdemux.c b/ext/libav/gstavdemux.c
index 2a61be4..c119798 100644
--- a/ext/libav/gstavdemux.c
+++ b/ext/libav/gstavdemux.c
@@ -217,6 +217,8 @@ gst_ffmpegdemux_base_init (GstFFMpegDemuxClass * klass)
gst_element_class_add_pad_template (element_class, audiosrctempl);
gst_element_class_add_pad_template (element_class, sinktempl);
+ gst_caps_unref (sinkcaps);
+
klass->in_plugin = in_plugin;
klass->videosrctempl = videosrctempl;
klass->audiosrctempl = audiosrctempl;
diff --git a/ext/libav/gstavmux.c b/ext/libav/gstavmux.c
index a7599f8..919c06c 100644
--- a/ext/libav/gstavmux.c
+++ b/ext/libav/gstavmux.c
@@ -269,17 +269,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
index 65a3253..17a6430 100644
--- a/ext/libav/gstavviddec.c
+++ b/ext/libav/gstavviddec.c
@@ -192,6 +192,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
index 671f2f1..f7d32e5 100644
--- 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;