[FFmpeg-cvslog] avs: call release_buffer() at the end.

Anton Khirnov git at videolan.org
Mon Dec 26 04:14:02 CET 2011


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Sun Dec 25 19:35:19 2011 +0100| [80dc7c0160fb27e46fc0caae8af10b3d63730c7c] | committer: Anton Khirnov

avs: call release_buffer() at the end.

Fixes a memleak.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=80dc7c0160fb27e46fc0caae8af10b3d63730c7c
---

 libavcodec/avs.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/libavcodec/avs.c b/libavcodec/avs.c
index 3ccded3..b3cd5b1 100644
--- a/libavcodec/avs.c
+++ b/libavcodec/avs.c
@@ -161,6 +161,15 @@ static av_cold int avs_decode_init(AVCodecContext * avctx)
     return 0;
 }
 
+static av_cold int avs_decode_end(AVCodecContext *avctx)
+{
+    AvsContext *s = avctx->priv_data;
+    if (s->picture.data[0])
+        avctx->release_buffer(avctx, &s->picture);
+    return 0;
+}
+
+
 AVCodec ff_avs_decoder = {
     .name           = "avs",
     .type           = AVMEDIA_TYPE_VIDEO,
@@ -168,6 +177,7 @@ AVCodec ff_avs_decoder = {
     .priv_data_size = sizeof(AvsContext),
     .init           = avs_decode_init,
     .decode         = avs_decode_frame,
+    .close          = avs_decode_end,
     .capabilities   = CODEC_CAP_DR1,
     .long_name = NULL_IF_CONFIG_SMALL("AVS (Audio Video Standard) video"),
 };



More information about the ffmpeg-cvslog mailing list