Module: libav Branch: master Commit: 1bc64c2814d409d3cc129c27c493ee915bebdc4a
Author: Anton Khirnov <[email protected]> Committer: Anton Khirnov <[email protected]> Date: Tue Oct 23 08:22:23 2012 +0200 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. --- libavcodec/utils.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) 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) { _______________________________________________ libav-commits mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-commits
