[FFmpeg-devel] [PATCH] lavfi/vf_libplacebo: pick log level dynamically

Lynne dev at lynne.ee
Fri Nov 12 23:02:09 EET 2021


12 Nov 2021, 20:24 by ffmpeg at haasn.xyz:

> From: Niklas Haas <git at haasn.dev>
>
> In particular, allows users to go all the way up to PL_LOG_TRACE if
> desired. (While also avoiding some potentially unnecessary callbacks for
> filtered messages, including e.g. the CPU cost of printing out shader
> sources)
>
> Response to runtime log level changes by updating it once per
> filter_frame(), which should hopefully be often enough.
> ---
>  libavfilter/vf_libplacebo.c | 15 ++++++++++++++-
>  1 file changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/libavfilter/vf_libplacebo.c b/libavfilter/vf_libplacebo.c
> index 0590e99093..ede6888bd3 100644
> --- a/libavfilter/vf_libplacebo.c
> +++ b/libavfilter/vf_libplacebo.c
> @@ -116,6 +116,18 @@ typedef struct LibplaceboContext {
>  int num_hooks;
>  } LibplaceboContext;
>  
> +static inline enum pl_log_level get_log_level(void)
> +{
> +    int av_lev = av_log_get_level();
> +    return av_lev >= AV_LOG_TRACE   ? PL_LOG_TRACE :
> +           av_lev >= AV_LOG_DEBUG   ? PL_LOG_DEBUG :
> +           av_lev >= AV_LOG_VERBOSE ? PL_LOG_INFO :
> +           av_lev >= AV_LOG_WARNING ? PL_LOG_WARN :
> +           av_lev >= AV_LOG_ERROR   ? PL_LOG_ERR :
> +           av_lev >= AV_LOG_FATAL   ? PL_LOG_FATAL :
> +                                      PL_LOG_NONE;
> +}
> +
>  static void pl_av_log(void *log_ctx, enum pl_log_level level, const char *msg)
>  {
>  int av_lev;
> @@ -177,7 +189,7 @@ static int libplacebo_init(AVFilterContext *avctx)
>  
>  /* Create libplacebo log context */
>  s->log = pl_log_create(PL_API_VER, pl_log_params(
> -        .log_level = PL_LOG_DEBUG,
> +        .log_level = get_log_level(),
>  .log_cb = pl_av_log,
>  .log_priv = s,
>  ));
> @@ -447,6 +459,7 @@ static int filter_frame(AVFilterLink *link, AVFrame *in)
>  goto fail;
>  }
>  
> +    pl_log_level_update(s->log, get_log_level());
>  if (!s->initialized)
>  RET(init_vulkan(ctx)); 
>

Patch applied.
Thanks for making it dynamic too.


More information about the ffmpeg-devel mailing list