player/client: reduce log level for hooks not sent to clients

If a hook event can't be sent to a client because it no longer exists,
stop logging it as a warning, as there is no way for a client to remove
hooks, so it is expected that the hook can't be sent. This is documented
in libmpv/client.h.

If the hook event can't be sent for other reasons, like the event queue
being full (currently the only other possible reason), keep logging as
warning.

Also add the client and hook type to the message. They are also logged
just above, but only in verbose mode, so when only the warning is logged
you didn't see the client before.

auto_profiles.lua logs these warning since 5dc4047415, and this commit
fixes that.

Fixes #15244.
This commit is contained in:
Guido Cella 2024-11-03 11:49:23 +01:00 committed by Avi Halachmi
parent 22116734e7
commit a61518db98
1 changed files with 3 additions and 1 deletions

View File

@ -216,7 +216,9 @@ static int invoke_hook_handler(struct MPContext *mpctx, struct hook_handler *h)
char *name = mp_tprintf(22, "@%"PRIi64, h->client_id);
int r = mp_client_send_event(mpctx, name, reply_id, MPV_EVENT_HOOK, m);
if (r < 0) {
MP_WARN(mpctx, "Sending hook command failed. Removing hook.\n");
MP_MSG(mpctx, mp_client_id_exists(mpctx, h->client_id) ? MSGL_WARN : MSGL_V,
"Failed sending hook command %s/%s. Removing hook.\n", h->client,
h->type);
hook_remove(mpctx, h);
mp_wakeup_core(mpctx); // repeat next iteration to finish
}