diff options
author | Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> | 2012-04-03 18:36:50 +0200 |
---|---|---|
committer | Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> | 2012-04-03 18:42:51 +0200 |
commit | ecf09f45f3495861e6583eb9a2101090b02e8d5a (patch) | |
tree | 554b6898cf024ea2381444638d4b0eabb89f0895 /ext/jpeg/gstjpegenc.c | |
parent | cdb905efe09b0ef9ccc03472820e33c972f94a76 (diff) |
jpegenc: plug template caps leak
Diffstat (limited to 'ext/jpeg/gstjpegenc.c')
-rw-r--r-- | ext/jpeg/gstjpegenc.c | 8 |
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); |