summaryrefslogtreecommitdiff
path: root/ext/jpeg/gstjpegenc.c
diff options
context:
space:
mode:
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>2012-04-03 18:36:50 +0200
committerMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>2012-04-03 18:42:51 +0200
commitecf09f45f3495861e6583eb9a2101090b02e8d5a (patch)
tree554b6898cf024ea2381444638d4b0eabb89f0895 /ext/jpeg/gstjpegenc.c
parentcdb905efe09b0ef9ccc03472820e33c972f94a76 (diff)
jpegenc: plug template caps leak
Diffstat (limited to 'ext/jpeg/gstjpegenc.c')
-rw-r--r--ext/jpeg/gstjpegenc.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/ext/jpeg/gstjpegenc.c b/ext/jpeg/gstjpegenc.c
index a21f52567..07cc09d44 100644
--- a/ext/jpeg/gstjpegenc.c
+++ b/ext/jpeg/gstjpegenc.c
@@ -304,7 +304,7 @@ gst_jpegenc_getcaps (GstPad * pad, GstCaps * filter)
{
GstJpegEnc *jpegenc = GST_JPEGENC (gst_pad_get_parent (pad));
GstCaps *caps, *othercaps;
- const GstCaps *templ;
+ GstCaps *templ;
gint i, j;
GstStructure *structure = NULL;
@@ -312,14 +312,14 @@ gst_jpegenc_getcaps (GstPad * pad, GstCaps * filter)
other end of the element */
othercaps = gst_pad_peer_query_caps (jpegenc->srcpad, filter);
+ templ = gst_pad_get_pad_template_caps (pad);
if (othercaps == NULL ||
gst_caps_is_empty (othercaps) || gst_caps_is_any (othercaps)) {
- caps = gst_caps_copy (gst_pad_get_pad_template_caps (pad));
+ caps = templ;
goto done;
}
caps = gst_caps_new_empty ();
- templ = gst_pad_get_pad_template_caps (pad);
for (i = 0; i < gst_caps_get_size (templ); i++) {
/* pick fields from peer caps */
@@ -339,6 +339,8 @@ gst_jpegenc_getcaps (GstPad * pad, GstCaps * filter)
}
}
+ gst_caps_unref (templ);
+
done:
gst_caps_replace (&othercaps, NULL);