diff mbox series

[FFmpeg-devel] avcodec/vulkan_decode: Make Vulkan decode less spammy in verbose logs

Message ID 20240207021022.1045-1-kasper93@gmail.com
State New
Headers show
Series [FFmpeg-devel] avcodec/vulkan_decode: Make Vulkan decode less spammy in verbose logs | 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

Kacper Michajłow Feb. 7, 2024, 2:10 a.m. UTC
Drop per frame decode messages to AV_LOG_TRACE level.

Signed-off-by: Kacper Michajłow <kasper93@gmail.com>
---
 libavcodec/vulkan_av1.c  | 2 +-
 libavcodec/vulkan_h264.c | 2 +-
 libavcodec/vulkan_hevc.c | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

Comments

Lynne Feb. 7, 2024, 2:47 a.m. UTC | #1
Feb 7, 2024, 03:11 by kasper93@gmail.com:

> Drop per frame decode messages to AV_LOG_TRACE level.
>
> Signed-off-by: Kacper Michajłow <kasper93@gmail.com>
> ---
>  libavcodec/vulkan_av1.c  | 2 +-
>  libavcodec/vulkan_h264.c | 2 +-
>  libavcodec/vulkan_hevc.c | 2 +-
>  3 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/libavcodec/vulkan_av1.c b/libavcodec/vulkan_av1.c
> index 9730e4b08d..c7d5a54012 100644
> --- a/libavcodec/vulkan_av1.c
> +++ b/libavcodec/vulkan_av1.c
> @@ -530,7 +530,7 @@ static int vk_av1_end_frame(AVCodecContext *avctx)
>  rav[i] = ap->ref_src[i]->f;
>  }
>  
> -    av_log(avctx, AV_LOG_VERBOSE, "Decoding frame, %"SIZE_SPECIFIER" bytes, %i tiles\n",
> +    av_log(avctx, AV_LOG_TRACE, "Decoding frame, %"SIZE_SPECIFIER" bytes, %i tiles\n",
>  vp->slices_size, ap->tile_list.nb_tiles);
>  
>  return ff_vk_decode_frame(avctx, pic->f, vp, rav, rvp);
> diff --git a/libavcodec/vulkan_h264.c b/libavcodec/vulkan_h264.c
> index 39c123ddca..c918dbaa13 100644
> --- a/libavcodec/vulkan_h264.c
> +++ b/libavcodec/vulkan_h264.c
> @@ -529,7 +529,7 @@ static int vk_h264_end_frame(AVCodecContext *avctx)
>  rav[i] = hp->ref_src[i]->f;
>  }
>  
> -    av_log(avctx, AV_LOG_VERBOSE, "Decoding frame, %"SIZE_SPECIFIER" bytes, %i slices\n",
> +    av_log(avctx, AV_LOG_TRACE, "Decoding frame, %"SIZE_SPECIFIER" bytes, %i slices\n",
>  vp->slices_size, hp->h264_pic_info.sliceCount);
>  
>  return ff_vk_decode_frame(avctx, pic->f, vp, rav, rvp);
> diff --git a/libavcodec/vulkan_hevc.c b/libavcodec/vulkan_hevc.c
> index 033172cbd6..0f6f2e775b 100644
> --- a/libavcodec/vulkan_hevc.c
> +++ b/libavcodec/vulkan_hevc.c
> @@ -903,7 +903,7 @@ static int vk_hevc_end_frame(AVCodecContext *avctx)
>  rvp[i] = &rfhp->vp;
>  }
>  
> -    av_log(avctx, AV_LOG_VERBOSE, "Decoding frame, %"SIZE_SPECIFIER" bytes, %i slices\n",
> +    av_log(avctx, AV_LOG_TRACE, "Decoding frame, %"SIZE_SPECIFIER" bytes, %i slices\n",
>  vp->slices_size, hp->h265_pic_info.sliceSegmentCount);
>  
>  return ff_vk_decode_frame(avctx, pic->frame, vp, rav, rvp);
>

I don't agree with this, without this print,
you have no idea if hardware decoding is even being used.
MP4 parsing is far too noisy than a single print per frame.
Kacper Michajłow Feb. 7, 2024, 2:34 p.m. UTC | #2
On Wed, 7 Feb 2024 at 03:47, Lynne <dev@lynne.ee> wrote:
>
> Feb 7, 2024, 03:11 by kasper93@gmail.com:
>
> > Drop per frame decode messages to AV_LOG_TRACE level.
> >
> > Signed-off-by: Kacper Michajłow <kasper93@gmail.com>
> > ---
> >  libavcodec/vulkan_av1.c  | 2 +-
> >  libavcodec/vulkan_h264.c | 2 +-
> >  libavcodec/vulkan_hevc.c | 2 +-
> >  3 files changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/libavcodec/vulkan_av1.c b/libavcodec/vulkan_av1.c
> > index 9730e4b08d..c7d5a54012 100644
> > --- a/libavcodec/vulkan_av1.c
> > +++ b/libavcodec/vulkan_av1.c
> > @@ -530,7 +530,7 @@ static int vk_av1_end_frame(AVCodecContext *avctx)
> >  rav[i] = ap->ref_src[i]->f;
> >  }
> >
> > -    av_log(avctx, AV_LOG_VERBOSE, "Decoding frame, %"SIZE_SPECIFIER" bytes, %i tiles\n",
> > +    av_log(avctx, AV_LOG_TRACE, "Decoding frame, %"SIZE_SPECIFIER" bytes, %i tiles\n",
> >  vp->slices_size, ap->tile_list.nb_tiles);
> >
> >  return ff_vk_decode_frame(avctx, pic->f, vp, rav, rvp);
> > diff --git a/libavcodec/vulkan_h264.c b/libavcodec/vulkan_h264.c
> > index 39c123ddca..c918dbaa13 100644
> > --- a/libavcodec/vulkan_h264.c
> > +++ b/libavcodec/vulkan_h264.c
> > @@ -529,7 +529,7 @@ static int vk_h264_end_frame(AVCodecContext *avctx)
> >  rav[i] = hp->ref_src[i]->f;
> >  }
> >
> > -    av_log(avctx, AV_LOG_VERBOSE, "Decoding frame, %"SIZE_SPECIFIER" bytes, %i slices\n",
> > +    av_log(avctx, AV_LOG_TRACE, "Decoding frame, %"SIZE_SPECIFIER" bytes, %i slices\n",
> >  vp->slices_size, hp->h264_pic_info.sliceCount);
> >
> >  return ff_vk_decode_frame(avctx, pic->f, vp, rav, rvp);
> > diff --git a/libavcodec/vulkan_hevc.c b/libavcodec/vulkan_hevc.c
> > index 033172cbd6..0f6f2e775b 100644
> > --- a/libavcodec/vulkan_hevc.c
> > +++ b/libavcodec/vulkan_hevc.c
> > @@ -903,7 +903,7 @@ static int vk_hevc_end_frame(AVCodecContext *avctx)
> >  rvp[i] = &rfhp->vp;
> >  }
> >
> > -    av_log(avctx, AV_LOG_VERBOSE, "Decoding frame, %"SIZE_SPECIFIER" bytes, %i slices\n",
> > +    av_log(avctx, AV_LOG_TRACE, "Decoding frame, %"SIZE_SPECIFIER" bytes, %i slices\n",
> >  vp->slices_size, hp->h265_pic_info.sliceSegmentCount);
> >
> >  return ff_vk_decode_frame(avctx, pic->frame, vp, rav, rvp);
> >
>
> I don't agree with this, without this print,
> you have no idea if hardware decoding is even being used.

With this print you have no idea either. Unless you know only Vulkan
decoder prints those messages, (that alone is a reason to remove
them), there is nothing indicative about Vulkan or even hardware
decoding in those messages, AVClass item_name is just "h264".

[ffmpeg/video] h264: Decoding frame, 15808 bytes, 1 slices
[ffmpeg/video] h264: Decoding frame, 17203 bytes, 1 slices
[ffmpeg/video] h264: Decoding frame, 16862 bytes, 1 slices
[ffmpeg/video] h264: Decoding frame, 15989 bytes, 1 slices

Also debugging if something like hw decoding is working is precisely
AV_LOG_TRACE or AV_LOG_DEBUG, not AV_LOG_VERBOSE, which in my opinion
should be still useful information for the end user, not only for
tracing purposes. "Using Vulkan hwdec on device foo" can be printed
once at the beginning of decode... "Decoding frame" messages are in
general not useful at all.

> MP4 parsing is far too noisy than a single print per frame.

"They are bad, so I can be bad too." is non-argument. Also I don't see
exactly what you are referring to, in my experience MP4 is less noisy
than a "Decoding frame" per each frame. It really shadows valid
information in the log during decoding.

- Kacper
diff mbox series

Patch

diff --git a/libavcodec/vulkan_av1.c b/libavcodec/vulkan_av1.c
index 9730e4b08d..c7d5a54012 100644
--- a/libavcodec/vulkan_av1.c
+++ b/libavcodec/vulkan_av1.c
@@ -530,7 +530,7 @@  static int vk_av1_end_frame(AVCodecContext *avctx)
         rav[i] = ap->ref_src[i]->f;
     }
 
-    av_log(avctx, AV_LOG_VERBOSE, "Decoding frame, %"SIZE_SPECIFIER" bytes, %i tiles\n",
+    av_log(avctx, AV_LOG_TRACE, "Decoding frame, %"SIZE_SPECIFIER" bytes, %i tiles\n",
            vp->slices_size, ap->tile_list.nb_tiles);
 
     return ff_vk_decode_frame(avctx, pic->f, vp, rav, rvp);
diff --git a/libavcodec/vulkan_h264.c b/libavcodec/vulkan_h264.c
index 39c123ddca..c918dbaa13 100644
--- a/libavcodec/vulkan_h264.c
+++ b/libavcodec/vulkan_h264.c
@@ -529,7 +529,7 @@  static int vk_h264_end_frame(AVCodecContext *avctx)
         rav[i] = hp->ref_src[i]->f;
     }
 
-    av_log(avctx, AV_LOG_VERBOSE, "Decoding frame, %"SIZE_SPECIFIER" bytes, %i slices\n",
+    av_log(avctx, AV_LOG_TRACE, "Decoding frame, %"SIZE_SPECIFIER" bytes, %i slices\n",
            vp->slices_size, hp->h264_pic_info.sliceCount);
 
     return ff_vk_decode_frame(avctx, pic->f, vp, rav, rvp);
diff --git a/libavcodec/vulkan_hevc.c b/libavcodec/vulkan_hevc.c
index 033172cbd6..0f6f2e775b 100644
--- a/libavcodec/vulkan_hevc.c
+++ b/libavcodec/vulkan_hevc.c
@@ -903,7 +903,7 @@  static int vk_hevc_end_frame(AVCodecContext *avctx)
         rvp[i] = &rfhp->vp;
     }
 
-    av_log(avctx, AV_LOG_VERBOSE, "Decoding frame, %"SIZE_SPECIFIER" bytes, %i slices\n",
+    av_log(avctx, AV_LOG_TRACE, "Decoding frame, %"SIZE_SPECIFIER" bytes, %i slices\n",
            vp->slices_size, hp->h265_pic_info.sliceSegmentCount);
 
     return ff_vk_decode_frame(avctx, pic->frame, vp, rav, rvp);