mirror of
https://github.com/mpv-player/mpv
synced 2025-02-23 16:36:56 +00:00
gl_common: signal to GL backend whether we are probing
This is supposed to reduce the amount of useless error messages shown during initialization of vo_opengl. If multiple backends are compiled, usually only one of them will work. For example, on Linux both X and Wayland backends can be compiled, but usually either Wayland or X is running. Then, if Wayland is not running, but X is, trying to initialize the Wayland backend should not spam the terminal with error messages. Signed-off-by: Andreas Sinz <andreas.sinz@aon.at>
This commit is contained in:
parent
6da11789ae
commit
2f165ee12b
@ -893,18 +893,21 @@ int mpgl_validate_backend_opt(const struct m_option *opt, struct bstr name,
|
||||
return mpgl_find_backend(s) >= -1 ? 1 : M_OPT_INVALID;
|
||||
}
|
||||
|
||||
static MPGLContext *init_backend(struct vo *vo, MPGLSetBackendFn set_backend)
|
||||
static MPGLContext *init_backend(struct vo *vo, MPGLSetBackendFn set_backend,
|
||||
bool probing)
|
||||
{
|
||||
MPGLContext *ctx = talloc_ptrtype(NULL, ctx);
|
||||
*ctx = (MPGLContext) {
|
||||
.gl = talloc_zero(ctx, GL),
|
||||
.vo = vo,
|
||||
};
|
||||
vo->probing = probing;
|
||||
set_backend(ctx);
|
||||
if (!ctx->vo_init(vo)) {
|
||||
talloc_free(ctx);
|
||||
ctx = NULL;
|
||||
}
|
||||
vo->probing = false;
|
||||
return ctx;
|
||||
}
|
||||
|
||||
@ -914,12 +917,12 @@ MPGLContext *mpgl_init(struct vo *vo, const char *backend_name)
|
||||
int index = mpgl_find_backend(backend_name);
|
||||
if (index == -1) {
|
||||
for (const struct backend *entry = backends; entry->name; entry++) {
|
||||
ctx = init_backend(vo, entry->init);
|
||||
ctx = init_backend(vo, entry->init, true);
|
||||
if (ctx)
|
||||
return ctx;
|
||||
break;
|
||||
}
|
||||
} else if (index >= 0) {
|
||||
ctx = init_backend(vo, backends[index].init);
|
||||
ctx = init_backend(vo, backends[index].init, false);
|
||||
}
|
||||
return ctx;
|
||||
}
|
||||
|
@ -239,6 +239,8 @@ struct vo {
|
||||
int config_ok; // Last config call was successful?
|
||||
int config_count; // Total number of successful config calls
|
||||
|
||||
bool probing;
|
||||
|
||||
bool untimed; // non-interactive, don't do sleep calls in playloop
|
||||
|
||||
bool frame_loaded; // Is there a next frame the VO could flip to?
|
||||
|
@ -593,8 +593,10 @@ static bool create_display (struct vo_wayland_state *wl)
|
||||
wl->display.display = wl_display_connect(NULL);
|
||||
|
||||
if (!wl->display.display) {
|
||||
MP_ERR(wl->vo, "failed to connect to a wayland server: "
|
||||
"check if a wayland compositor is running\n");
|
||||
MP_MSG(wl, wl->vo->probing ? MSGL_V : MSGL_ERR,
|
||||
"failed to connect to a wayland server: "
|
||||
"check if a wayland compositor is running\n");
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -462,7 +462,9 @@ int vo_x11_init(struct vo *vo)
|
||||
|
||||
x11->display = XOpenDisplay(dispName);
|
||||
if (!x11->display) {
|
||||
MP_ERR(x11, "couldn't open the X11 display (%s)!\n", dispName);
|
||||
MP_MSG(x11, vo->probing ? MSGL_V : MSGL_ERR,
|
||||
"vo: couldn't open the X11 display (%s)!\n", dispName);
|
||||
|
||||
talloc_free(x11);
|
||||
vo->x11 = NULL;
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user