diff mbox series

[FFmpeg-devel] lavc/qsvdec: Do not print warning when draining cached frames

Message ID 20240311043757.3085005-1-haihao.xiang@intel.com
State Accepted
Commit 697251bb0c9ea4b66276cf89e1e526535a86d117
Headers show
Series [FFmpeg-devel] lavc/qsvdec: Do not print warning when draining cached frames | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Xiang, Haihao March 11, 2024, 4:37 a.m. UTC
From: Haihao Xiang <haihao.xiang@intel.com>

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 <haihao.xiang@intel.com>
---
 libavcodec/qsvdec.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Xiang, Haihao March 15, 2024, 2:51 a.m. UTC | #1
On Ma, 2024-03-11 at 12:37 +0800, Xiang, Haihao wrote:
> From: Haihao Xiang <haihao.xiang@intel.com>
> 
> 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 <haihao.xiang@intel.com>
> ---
>  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;

Will apply,

- Haihao
diff mbox series

Patch

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;