diff --git a/ext/openal/gstopenalsink.c b/ext/openal/gstopenalsink.c index 86f4709cef..1fa1c65742 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 1c246b5c2a..ef48475990 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 {