Fix some caps leaks when creating pad templates

https://bugzilla.gnome.org/show_bug.cgi?id=776700
This commit is contained in:
Garima Gaur 2017-01-02 09:06:09 +05:30 committed by Tim-Philipp Müller
parent beb11a99ba
commit 14dc964f0e
6 changed files with 17 additions and 0 deletions

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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:

View file

@ -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;
}

View file

@ -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;