From 9636bd44f005059938e9f8526eba4a3a9af38914 Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Mon, 10 Mar 2025 16:14:26 +0100 Subject: [PATCH 1/3] avcodec/decode: Move is_open check to avcodec_receive_frame() It also applies to scenarios where ff_encode_receive_frame() is used. Also remove the redundant av_codec_is_decoder(). Signed-off-by: Andreas Rheinhardt --- libavcodec/avcodec.c | 3 +++ libavcodec/decode.c | 3 --- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c index e7e2c09222..64c1788c57 100644 --- a/libavcodec/avcodec.c +++ b/libavcodec/avcodec.c @@ -718,6 +718,9 @@ int attribute_align_arg avcodec_receive_frame(AVCodecContext *avctx, AVFrame *fr { av_frame_unref(frame); + if (!avcodec_is_open(avctx)) + return AVERROR(EINVAL); + if (av_codec_is_decoder(avctx->codec)) return ff_decode_receive_frame(avctx, frame); return ff_encode_receive_frame(avctx, frame); diff --git a/libavcodec/decode.c b/libavcodec/decode.c index c5a577f4f1..3a1c35a55f 100644 --- a/libavcodec/decode.c +++ b/libavcodec/decode.c @@ -817,9 +817,6 @@ int ff_decode_receive_frame(AVCodecContext *avctx, AVFrame *frame) AVCodecInternal *avci = avctx->internal; int ret; - if (!avcodec_is_open(avctx) || !av_codec_is_decoder(avctx->codec)) - return AVERROR(EINVAL); - if (avci->buffer_frame->buf[0]) { av_frame_move_ref(frame, avci->buffer_frame); } else { -- 2.45.2