summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Hervey <edward@collabora.com>2014-05-13 14:15:24 +0200
committerEdward Hervey <edward@collabora.com>2014-05-13 14:15:24 +0200
commitadecec882a323e73f46741e63e204eccea2ff823 (patch)
treeb4c7c3e778c76c8dc7404c1df465f23cc768d0a5
parent1b5e514a05126b48a9a69590e98e4392c0deda23 (diff)
downloadgstreamer-plugins-bad-adecec882a323e73f46741e63e204eccea2ff823.tar.gz
rsvg: Don't leak GstVideoCodecState
And avoid useless call to _get_output_state (set_output_state() already returns it). CID #1212160 CID #1212161
-rw-r--r--ext/rsvg/gstrsvgdec.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/ext/rsvg/gstrsvgdec.c b/ext/rsvg/gstrsvgdec.c
index a7d42e89f..624c9e9f6 100644
--- a/ext/rsvg/gstrsvgdec.c
+++ b/ext/rsvg/gstrsvgdec.c
@@ -180,11 +180,11 @@ gst_rsvg_decode_image (GstRsvgDec * rsvg, GstBuffer * buffer,
|| GST_VIDEO_INFO_HEIGHT (&output_state->info) != dimension.height) {
/* Create the output state */
- gst_video_decoder_set_output_state (decoder, GST_RSVG_VIDEO_FORMAT,
- dimension.width, dimension.height, rsvg->input_state);
if (output_state)
gst_video_codec_state_unref (output_state);
- output_state = gst_video_decoder_get_output_state (decoder);
+ output_state =
+ gst_video_decoder_set_output_state (decoder, GST_RSVG_VIDEO_FORMAT,
+ dimension.width, dimension.height, rsvg->input_state);
}
ret = gst_video_decoder_allocate_output_frame (decoder, frame);
@@ -261,9 +261,10 @@ gst_rsvg_dec_set_format (GstVideoDecoder * decoder, GstVideoCodecState * state)
rsvg->input_state = gst_video_codec_state_ref (state);
/* Create the output state */
- gst_video_decoder_set_output_state (decoder, GST_RSVG_VIDEO_FORMAT,
+ state = gst_video_decoder_set_output_state (decoder, GST_RSVG_VIDEO_FORMAT,
GST_VIDEO_INFO_WIDTH (info), GST_VIDEO_INFO_HEIGHT (info),
rsvg->input_state);
+ gst_video_codec_state_unref (state);
return TRUE;
}