summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Wilson <twilson90@hotmail.co.uk>2021-02-26 11:05:24 +0000
committerJan Ekström <jeebjp@gmail.com>2021-03-09 23:28:21 +0200
commitd7f6eba233369904ab1fa1ccd0f943bcf2fbc6e9 (patch)
tree7b7006356283bd126263117b8e194d487df391de
parenteef281e89eff6e21a67a106d27fd38979ad20752 (diff)
downloadmpv-d7f6eba233369904ab1fa1ccd0f943bcf2fbc6e9.tar.bz2
mpv-d7f6eba233369904ab1fa1ccd0f943bcf2fbc6e9.tar.xz
player/command: add albumart argument to video-add
Enables marking of specific video sources as album art. Co-authored-by: Jan Ekström <jeebjp@gmail.com>
-rw-r--r--DOCS/interface-changes.rst2
-rw-r--r--DOCS/man/input.rst7
-rw-r--r--player/command.c8
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 [<id>]``
Reload the given audio tracks. See ``sub-reload`` command.
-``video-add <url> [<flags> [<title> [<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,