From 697251bb0c9ea4b66276cf89e1e526535a86d117 Mon Sep 17 00:00:00 2001 From: Haihao Xiang Date: Mon, 11 Mar 2024 12:37:57 +0800 Subject: [PATCH] lavc/qsvdec: Do not print warning when draining cached frames When all cached frames are drained, the output mfxSyncPoint pointer is NULL and MFX_ERR_MORE_DATA is returned, hence needn't print warning for this expected behavior, otherwise the user might think the output from qsv decoders are wrong. Signed-off-by: Haihao Xiang --- libavcodec/qsvdec.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavcodec/qsvdec.c b/libavcodec/qsvdec.c index 4f39f6942a..fd9267c6f4 100644 --- a/libavcodec/qsvdec.c +++ b/libavcodec/qsvdec.c @@ -762,7 +762,9 @@ static int qsv_decode(AVCodecContext *avctx, QSVContext *q, if (!*sync && !bs.DataOffset) { bs.DataOffset = avpkt->size; ++q->zero_consume_run; - if (q->zero_consume_run > 1) + if (q->zero_consume_run > 1 && + (avpkt->size || + ret != MFX_ERR_MORE_DATA)) ff_qsv_print_warning(avctx, ret, "A decode call did not consume any data"); } else { q->zero_consume_run = 0;