aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2023-06-20 16:10:10 +0200
committerAnton Khirnov <anton@khirnov.net>2023-07-07 12:07:24 +0200
commitb54603a26a53bfd89fd19b97308e64f4fbeef4b3 (patch)
tree43e6c5b9ff88895f10502f0aa8b49b9adb8d2991
parent69516ab3e917a6e91d26e38d04183c60fd71cbab (diff)
downloadffmpeg-b54603a26a53bfd89fd19b97308e64f4fbeef4b3.tar.gz
lavc/decode: do not perform decoding when sending draining packets
This way decoding errors will not be returned when the user starts draining the decoder, avoiding confusion over whether draining did or did not start. Fixes failures of fate-h264-attachment-631 for certain numbers of frame threads (e.g. 5).
-rw-r--r--libavcodec/decode.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libavcodec/decode.c b/libavcodec/decode.c
index 89c3c2a48d..269633ce10 100644
--- a/libavcodec/decode.c
+++ b/libavcodec/decode.c
@@ -674,7 +674,7 @@ int attribute_align_arg avcodec_send_packet(AVCodecContext *avctx, const AVPacke
} else
dc->draining_started = 1;
- if (!avci->buffer_frame->buf[0]) {
+ if (!avci->buffer_frame->buf[0] && !dc->draining_started) {
ret = decode_receive_frame_internal(avctx, avci->buffer_frame);
if (ret < 0 && ret != AVERROR(EAGAIN) && ret != AVERROR_EOF)
return ret;