summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVineeth TM <vineeth.tm@samsung.com>2015-11-02 10:00:55 +0900
committerSebastian Dröge <sebastian@centricular.com>2015-11-03 09:36:28 +0200
commitbd0697895d2f3154e1419c535098cb30fb3e2508 (patch)
tree522b4729c6517e6a3c3a8dc1b8c16bcc814bc625
parent21db053c3b691d2f9d9d7b6e73582ab15c9abea6 (diff)
downloadgst-libav-bd0697895d2f3154e1419c535098cb30fb3e2508.tar.gz
avvidenc: Fix frame memory leak
The frame being passed to handle_frame should be unref'ed in all cases https://bugzilla.gnome.org/show_bug.cgi?id=757453
-rw-r--r--ext/libav/gstavvidenc.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/ext/libav/gstavvidenc.c b/ext/libav/gstavvidenc.c
index fde18a2..e161732 100644
--- a/ext/libav/gstavvidenc.c
+++ b/ext/libav/gstavvidenc.c
@@ -626,6 +626,7 @@ gst_ffmpegvidenc_handle_frame (GstVideoEncoder * encoder,
GST_ERROR_OBJECT (encoder, "Failed to map input buffer");
gst_buffer_unref (buffer_info->buffer);
g_slice_free (BufferInfo, buffer_info);
+ gst_video_codec_frame_unref (frame);
return GST_FLOW_ERROR;
}
@@ -665,7 +666,10 @@ gst_ffmpegvidenc_handle_frame (GstVideoEncoder * encoder,
/* Encoder needs more data */
if (!have_data)
+ {
+ gst_video_codec_frame_unref (frame);
return GST_FLOW_OK;
+ }
/* save stats info if there is some as well as a stats file */
if (ffmpegenc->file && ffmpegenc->context->stats_out)