diff options
author | wm4 <wm4@nowhere> | 2020-02-21 14:16:26 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2020-02-21 14:16:26 +0100 |
commit | a77780e6be2760d2deeaef316516b943ea29f1bc (patch) | |
tree | ce450931d6b2c49b85b6fbe0b14a9301d77d7d10 | |
parent | 1cda73356de49a8152475306d8af63480d0ba90f (diff) | |
download | mpv-a77780e6be2760d2deeaef316516b943ea29f1bc.tar.bz2 mpv-a77780e6be2760d2deeaef316516b943ea29f1bc.tar.xz |
edl: make it possible to set the track "default" flag
Also, the forced flag (and in the future, potentially a number of other
flags not implemented yet). See next commit for purpose.
-rw-r--r-- | DOCS/edl-mpv.rst | 11 | ||||
-rw-r--r-- | demux/demux_edl.c | 11 |
2 files changed, 22 insertions, 0 deletions
diff --git a/DOCS/edl-mpv.rst b/DOCS/edl-mpv.rst index ac85f427d0..999e75694a 100644 --- a/DOCS/edl-mpv.rst +++ b/DOCS/edl-mpv.rst @@ -277,6 +277,17 @@ This has the following parameters: Above also applies for similar fields such as ``w``. These fields are mostly to help with user track pre-selection. +``flags`` + A ``+`` separated list of boolean flags. Currently defined flags: + + ``default`` + Set the default track flag. + + ``forced`` + Set the forced track flag. + + Other values are ignored after triggering a warning. + ``w``, ``h`` For video codecs: expected video size. See ``codec`` for details. diff --git a/demux/demux_edl.c b/demux/demux_edl.c index 20e5c222e7..6deba77b9f 100644 --- a/demux/demux_edl.c +++ b/demux/demux_edl.c @@ -241,6 +241,17 @@ static struct tl_root *parse_edl(bstr str, struct mp_log *log) sh->lang = get_param0(&ctx, sh, "lang"); sh->title = get_param0(&ctx, sh, "title"); sh->hls_bitrate = get_param_int(&ctx, "byterate", 0) * 8; + bstr flags = get_param(&ctx, "flags"); + bstr flag; + while (bstr_split_tok(flags, "+", &flag, &flags) || flag.len) { + if (bstr_equals0(flag, "default")) { + sh->default_track = true; + } else if (bstr_equals0(flag, "forced")) { + sh->forced_track = true; + } else { + mp_warn(log, "Unknown flag: '%.*s'\n", BSTR_P(flag)); + } + } } else if (bstr_equals0(f_type, "delay_open")) { struct sh_stream *sh = get_meta(tl, tl->num_sh_meta); bstr mt = get_param(&ctx, "media_type"); |