From a92dbeb9ae520d39069381be528c5e8d4756da5f Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Mon, 10 Jul 2023 01:26:31 +0200 Subject: [PATCH] avcodec/decode: Return EAGAIN instead of discarding unused packet Should fix #10457, a regression caused by 69516ab3e917a6e91d26e38d04183c60fd71cbab. Reviewed-by: Anton Khirnov Signed-off-by: Andreas Rheinhardt --- libavcodec/decode.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavcodec/decode.c b/libavcodec/decode.c index 269633ce10..a47abeca06 100644 --- a/libavcodec/decode.c +++ b/libavcodec/decode.c @@ -666,7 +666,9 @@ int attribute_align_arg avcodec_send_packet(AVCodecContext *avctx, const AVPacke if (avpkt && !avpkt->size && avpkt->data) return AVERROR(EINVAL); - av_packet_unref(avci->buffer_pkt); + if (!AVPACKET_IS_EMPTY(avci->buffer_pkt)) + return AVERROR(EAGAIN); + if (avpkt && (avpkt->data || avpkt->side_data_elems)) { ret = av_packet_ref(avci->buffer_pkt, avpkt); if (ret < 0)