mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-03-17 20:17:55 +02:00
lavfi/vf_libplacebo: pick log level dynamically
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.
This commit is contained in:
parent
51e03409d7
commit
a943f527a1
@ -116,6 +116,18 @@ typedef struct LibplaceboContext {
|
|||||||
int num_hooks;
|
int num_hooks;
|
||||||
} LibplaceboContext;
|
} 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)
|
static void pl_av_log(void *log_ctx, enum pl_log_level level, const char *msg)
|
||||||
{
|
{
|
||||||
int av_lev;
|
int av_lev;
|
||||||
@ -177,7 +189,7 @@ static int libplacebo_init(AVFilterContext *avctx)
|
|||||||
|
|
||||||
/* Create libplacebo log context */
|
/* Create libplacebo log context */
|
||||||
s->log = pl_log_create(PL_API_VER, pl_log_params(
|
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_cb = pl_av_log,
|
||||||
.log_priv = s,
|
.log_priv = s,
|
||||||
));
|
));
|
||||||
@ -447,6 +459,7 @@ static int filter_frame(AVFilterLink *link, AVFrame *in)
|
|||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pl_log_level_update(s->log, get_log_level());
|
||||||
if (!s->initialized)
|
if (!s->initialized)
|
||||||
RET(init_vulkan(ctx));
|
RET(init_vulkan(ctx));
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user