[FFmpeg-cvslog] lavc: initialize output AVFrame before decoding.

Anton Khirnov git at videolan.org
Wed Oct 24 14:43:37 CEST 2012


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Tue Oct 23 08:22:23 2012 +0200| [1bc64c2814d409d3cc129c27c493ee915bebdc4a] | committer: Anton Khirnov

lavc: initialize output AVFrame before decoding.

Avoids memleaks with audio when extended_data is nontrivial and the user
doesn't reset the frame.
Shouldn't have any effect for video for now, but might be useful in the
future.

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

 libavcodec/utils.c |    4 ++++
 1 file changed, 4 insertions(+)

diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index 10230ca..8daacbe 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -1305,6 +1305,8 @@ int attribute_align_arg avcodec_decode_video2(AVCodecContext *avctx, AVFrame *pi
     avctx->pkt = avpkt;
     apply_param_change(avctx, avpkt);
 
+    avcodec_get_frame_defaults(picture);
+
     if ((avctx->codec->capabilities & CODEC_CAP_DELAY) || avpkt->size || (avctx->active_thread_type & FF_THREAD_FRAME)) {
         if (HAVE_THREADS && avctx->active_thread_type & FF_THREAD_FRAME)
             ret = ff_thread_decode_frame(avctx, picture, got_picture_ptr,
@@ -1400,6 +1402,8 @@ int attribute_align_arg avcodec_decode_audio4(AVCodecContext *avctx,
 
     apply_param_change(avctx, avpkt);
 
+    avcodec_get_frame_defaults(frame);
+
     if ((avctx->codec->capabilities & CODEC_CAP_DELAY) || avpkt->size) {
         ret = avctx->codec->decode(avctx, frame, got_frame_ptr, avpkt);
         if (ret >= 0 && *got_frame_ptr) {



More information about the ffmpeg-cvslog mailing list