From 044a53366f4c9d11738b4f3eac0e0664fdd6d8b3 Mon Sep 17 00:00:00 2001 From: Sebastian Rasmussen Date: Sat, 9 Aug 2014 01:27:53 +0200 Subject: [PATCH] openal: Unref pad template caps after usage https://bugzilla.gnome.org/show_bug.cgi?id=734520 --- ext/openal/gstopenalsink.c | 4 +++- ext/openal/gstopenalsrc.c | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ext/openal/gstopenalsink.c b/ext/openal/gstopenalsink.c index 86f4709..1fa1c65 100644 --- a/ext/openal/gstopenalsink.c +++ b/ext/openal/gstopenalsink.c @@ -575,7 +575,9 @@ gst_openal_sink_getcaps (GstBaseSink * basesink, GstCaps * filter) if (sink->default_device == NULL) { GstPad *pad = GST_BASE_SINK_PAD (basesink); - caps = gst_caps_copy (gst_pad_get_pad_template_caps (pad)); + GstCaps *tcaps = gst_pad_get_pad_template_caps (pad); + caps = gst_caps_copy (tcaps); + gst_caps_unref (tcaps); } else if (sink->probed_caps) caps = gst_caps_copy (sink->probed_caps); else { diff --git a/ext/openal/gstopenalsrc.c b/ext/openal/gstopenalsrc.c index 1c246b5..ef48475 100644 --- a/ext/openal/gstopenalsrc.c +++ b/ext/openal/gstopenalsrc.c @@ -335,9 +335,12 @@ gst_openal_src_getcaps (GstBaseSrc * basesrc, GstCaps * filter) if (device == NULL) { GstPad *pad = GST_BASE_SRC_PAD (basesrc); + GstCaps *tcaps = gst_pad_get_pad_template_caps (pad); + GST_ELEMENT_WARNING (openalsrc, RESOURCE, OPEN_WRITE, ("Could not open temporary device."), GST_ALC_ERROR (device)); - caps = gst_caps_copy (gst_pad_get_pad_template_caps (pad)); + caps = gst_caps_copy (tcaps); + gst_caps_unref (tcaps); } else if (openalsrc->probed_caps) caps = gst_caps_copy (openalsrc->probed_caps); else { -- 2.7.4