From d7f6eba233369904ab1fa1ccd0f943bcf2fbc6e9 Mon Sep 17 00:00:00 2001 From: Tom Wilson Date: Fri, 26 Feb 2021 11:05:24 +0000 Subject: player/command: add albumart argument to video-add MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Enables marking of specific video sources as album art. Co-authored-by: Jan Ekström --- DOCS/interface-changes.rst | 2 ++ DOCS/man/input.rst | 7 +++++-- player/command.c | 8 ++++++-- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/DOCS/interface-changes.rst b/DOCS/interface-changes.rst index 1f5fda5b02..ff7bf75c89 100644 --- a/DOCS/interface-changes.rst +++ b/DOCS/interface-changes.rst @@ -34,6 +34,8 @@ Interface changes which didn't take the menu bar and Dock into account. The new default behaviour includes both. To revert to the old behavior set this to `whole`. + - add an additional optional `albumart` argument to the `video-add` command, + which tells mpv to load the given video as album art. --- mpv 0.33.0 --- - add `--d3d11-exclusive-fs` flag to enable D3D11 exclusive fullscreen mode when the player enters fullscreen. diff --git a/DOCS/man/input.rst b/DOCS/man/input.rst index 82b570c228..9f77123a6c 100644 --- a/DOCS/man/input.rst +++ b/DOCS/man/input.rst @@ -801,8 +801,11 @@ Remember to quote string arguments in input.conf (see `Flat command syntax`_). ``audio-reload []`` Reload the given audio tracks. See ``sub-reload`` command. -``video-add [ [ [<lang>]]]`` - Load the given video file. See ``sub-add`` command. +``video-add <url> [<flags> [<title> [<lang> [<albumart>]]]]`` + Load the given video file. See ``sub-add`` command for common options. + + ``albumart`` (``MPV_FORMAT_FLAG``) + If enabled, mpv will load the given video as album art. ``video-remove [<id>]`` Remove the given video track. See ``sub-remove`` command. diff --git a/player/command.c b/player/command.c index 96e5daef77..e210963447 100644 --- a/player/command.c +++ b/player/command.c @@ -5241,6 +5241,8 @@ static void cmd_track_add(void *p) struct mp_cmd_ctx *cmd = p; struct MPContext *mpctx = cmd->mpctx; int type = *(int *)cmd->priv; + bool is_albumart = type == STREAM_VIDEO && + cmd->args[4].v.i; if (mpctx->stop_play) { cmd->success = false; @@ -5260,7 +5262,7 @@ static void cmd_track_add(void *p) } } int first = mp_add_external_file(mpctx, cmd->args[0].v.s, type, - cmd->abort->cancel, false); + cmd->abort->cancel, is_albumart); if (first < 0) { cmd->success = false; return; @@ -5323,9 +5325,10 @@ static void cmd_track_reload(void *p) if (t && t->is_external && t->external_filename) { char *filename = talloc_strdup(NULL, t->external_filename); + bool is_albumart = t->attached_picture; mp_remove_track(mpctx, t); nt_num = mp_add_external_file(mpctx, filename, type, cmd->abort->cancel, - false); + is_albumart); talloc_free(filename); } @@ -6072,6 +6075,7 @@ const struct mp_cmd_def mp_cmds[] = { .flags = MP_CMD_OPT_ARG}, {"title", OPT_STRING(v.s), .flags = MP_CMD_OPT_ARG}, {"lang", OPT_STRING(v.s), .flags = MP_CMD_OPT_ARG}, + {"albumart", OPT_FLAG(v.i), .flags = MP_CMD_OPT_ARG}, }, .priv = &(const int){STREAM_VIDEO}, .spawn_thread = true, -- cgit v1.2.3