From a77780e6be2760d2deeaef316516b943ea29f1bc Mon Sep 17 00:00:00 2001 From: wm4 Date: Fri, 21 Feb 2020 14:16:26 +0100 Subject: 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. --- DOCS/edl-mpv.rst | 11 +++++++++++ demux/demux_edl.c | 11 +++++++++++ 2 files changed, 22 insertions(+) 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"); -- cgit v1.2.3