mirror of
https://github.com/mpv-player/mpv
synced 2025-01-10 00:49:32 +00:00
349eb0b7fc
These were still mapped to MP errors during probing, but they also get triggered when instance creation fails due to lack of support for e.g. wayland. Since waylandvk is probed above x11vk, we should probably suppress these by default. Closes #7626
61 lines
1.6 KiB
C
61 lines
1.6 KiB
C
#include "common/common.h"
|
|
#include "utils.h"
|
|
|
|
static const int pl_log_to_msg_lev[PL_LOG_ALL+1] = {
|
|
[PL_LOG_FATAL] = MSGL_FATAL,
|
|
[PL_LOG_ERR] = MSGL_ERR,
|
|
[PL_LOG_WARN] = MSGL_WARN,
|
|
[PL_LOG_INFO] = MSGL_V,
|
|
[PL_LOG_DEBUG] = MSGL_DEBUG,
|
|
[PL_LOG_TRACE] = MSGL_TRACE,
|
|
};
|
|
|
|
static const enum pl_log_level msg_lev_to_pl_log[MSGL_MAX+1] = {
|
|
[MSGL_FATAL] = PL_LOG_FATAL,
|
|
[MSGL_ERR] = PL_LOG_ERR,
|
|
[MSGL_WARN] = PL_LOG_WARN,
|
|
[MSGL_INFO] = PL_LOG_WARN,
|
|
[MSGL_STATUS] = PL_LOG_WARN,
|
|
[MSGL_V] = PL_LOG_INFO,
|
|
[MSGL_DEBUG] = PL_LOG_DEBUG,
|
|
[MSGL_TRACE] = PL_LOG_TRACE,
|
|
[MSGL_MAX] = PL_LOG_ALL,
|
|
};
|
|
|
|
// translates log levels while probing
|
|
static const enum pl_log_level probing_map(enum pl_log_level level)
|
|
{
|
|
switch (level) {
|
|
case PL_LOG_FATAL:
|
|
case PL_LOG_ERR:
|
|
case PL_LOG_WARN:
|
|
return PL_LOG_INFO;
|
|
|
|
default:
|
|
return level;
|
|
}
|
|
}
|
|
|
|
static void log_cb(void *priv, enum pl_log_level level, const char *msg)
|
|
{
|
|
struct mp_log *log = priv;
|
|
mp_msg(log, pl_log_to_msg_lev[level], "%s\n", msg);
|
|
}
|
|
|
|
static void log_cb_probing(void *priv, enum pl_log_level level, const char *msg)
|
|
{
|
|
struct mp_log *log = priv;
|
|
mp_msg(log, pl_log_to_msg_lev[probing_map(level)], "%s\n", msg);
|
|
}
|
|
|
|
void mppl_ctx_set_log(struct pl_context *ctx, struct mp_log *log, bool probing)
|
|
{
|
|
assert(log);
|
|
|
|
pl_context_update(ctx, &(struct pl_context_params) {
|
|
.log_cb = probing ? log_cb_probing : log_cb,
|
|
.log_level = msg_lev_to_pl_log[mp_msg_level(log)],
|
|
.log_priv = log,
|
|
});
|
|
}
|