From 8dd73f68a6319d1784b33da9553671f1a0c197f9 Mon Sep 17 00:00:00 2001 From: Timo Rothenpieler <timo@rothenpieler.org> Date: Sat, 11 Nov 2017 12:59:44 +0100 Subject: [PATCH] avcodec/decode: always free private_ref There is no reason to keep this intact when decoding failed, specially as private_ref is supposed to always be NULL when a frame is returned to the user. --- libavcodec/decode.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavcodec/decode.c b/libavcodec/decode.c index 570799f6d7a..7601d160828 100644 --- a/libavcodec/decode.c +++ b/libavcodec/decode.c @@ -613,7 +613,6 @@ static int decode_receive_frame_internal(AVCodecContext *avctx, AVFrame *frame) if (ret == AVERROR_EOF) avci->draining_done = 1; - /* free the per-frame decode data */ if (!ret) { /* the only case where decode data is not set should be decoders * that do not call ff_get_buffer() */ @@ -631,10 +630,11 @@ static int decode_receive_frame_internal(AVCodecContext *avctx, AVFrame *frame) } } } - - av_buffer_unref(&frame->private_ref); } + /* free the per-frame decode data */ + av_buffer_unref(&frame->private_ref); + return ret; } -- GitLab