mirror of https://github.com/mpv-player/mpv
command: extend sub_add command
This commit is contained in:
parent
b79f291f4b
commit
131633b4e5
|
@ -260,10 +260,26 @@ List of Input Commands
|
|||
will seek to the previous position on start. The (optional) argument is
|
||||
exactly as in the ``quit`` command.
|
||||
|
||||
``sub_add "<file>"``
|
||||
``sub_add "<file>" [<flags> [<title> [<lang>]]]``
|
||||
Load the given subtitle file. It is selected as current subtitle after
|
||||
loading.
|
||||
|
||||
The ``flags`` args is one of the following values:
|
||||
|
||||
<select>
|
||||
|
||||
Select the subtitle immediately.
|
||||
|
||||
<auto>
|
||||
|
||||
Don't select the subtitle. (Or in some special situations, let the
|
||||
default stream selection mechanism decide.)
|
||||
|
||||
The ``title`` argument sets the track title in the UI.
|
||||
|
||||
The ``lang`` argument sets the track language, and can also influence
|
||||
stream selection with ``flags`` set to ``auto``.
|
||||
|
||||
``sub_remove [<id>]``
|
||||
Remove the given subtitle track. If the ``id`` argument is missing, remove
|
||||
the current track. (Works on external subtitle files only.)
|
||||
|
|
|
@ -89,7 +89,9 @@ const struct mp_cmd_def mp_cmds[] = {
|
|||
{ MP_CMD_SHOW_TEXT, "show_text", { ARG_STRING, OARG_INT(-1), OARG_INT(0) },
|
||||
.allow_auto_repeat = true},
|
||||
{ MP_CMD_SHOW_PROGRESS, "show_progress", .allow_auto_repeat = true},
|
||||
{ MP_CMD_SUB_ADD, "sub_add", { ARG_STRING } },
|
||||
{ MP_CMD_SUB_ADD, "sub_add", { ARG_STRING,
|
||||
OARG_CHOICE(0, ({"select", 0}, {"auto", 1})),
|
||||
ARG_STRING, ARG_STRING } },
|
||||
{ MP_CMD_SUB_REMOVE, "sub_remove", { OARG_INT(-1) } },
|
||||
{ MP_CMD_SUB_RELOAD, "sub_reload", { OARG_INT(-1) } },
|
||||
|
||||
|
|
|
@ -4019,8 +4019,16 @@ int run_command(MPContext *mpctx, mp_cmd_t *cmd)
|
|||
struct track *sub = mp_add_subtitles(mpctx, cmd->args[0].v.s);
|
||||
if (!sub)
|
||||
return -1;
|
||||
mp_switch_track(mpctx, sub->type, sub);
|
||||
mp_mark_user_track_selection(mpctx, 0, sub->type);
|
||||
if (cmd->args[1].v.i == 0) {
|
||||
mp_switch_track(mpctx, sub->type, sub);
|
||||
mp_mark_user_track_selection(mpctx, 0, sub->type);
|
||||
}
|
||||
char *title = cmd->args[2].v.s;
|
||||
if (title && title[0])
|
||||
sub->title = talloc_strdup(sub, title);
|
||||
char *lang = cmd->args[3].v.s;
|
||||
if (lang && lang[0])
|
||||
sub->lang = talloc_strdup(sub, lang);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue