diff options
-rw-r--r-- | DOCS/man/en/options.rst | 4 | ||||
-rw-r--r-- | demux/demux_mkv.c | 5 | ||||
-rw-r--r-- | mpvcore/options.c | 3 |
3 files changed, 7 insertions, 5 deletions
diff --git a/DOCS/man/en/options.rst b/DOCS/man/en/options.rst index 9549f335c5..a275c5da34 100644 --- a/DOCS/man/en/options.rst +++ b/DOCS/man/en/options.rst @@ -731,10 +731,10 @@ Some DVDs contain scenes that can be viewed from multiple angles. This option tells mpv which angle to use (default: 1). -``--edition=<ID>`` +``--edition=<ID|auto>`` (Matroska files only) Specify the edition (set of chapters) to use, where 0 is the first. If set - to -1 (the default), mpv will choose the first edition declared as a + to ``auto`` (the default), mpv will choose the first edition declared as a default, or if there is no default, the first edition defined. ``--embeddedfonts``, ``--no-embeddedfonts`` diff --git a/demux/demux_mkv.c b/demux/demux_mkv.c index 9fc1c6f0bb..8d157d2ee7 100644 --- a/demux/demux_mkv.c +++ b/demux/demux_mkv.c @@ -778,6 +778,7 @@ static int demux_mkv_read_chapters(struct demuxer *demuxer) { struct MPOpts *opts = demuxer->opts; stream_t *s = demuxer->stream; + int wanted_edition = opts->edition_id; mp_msg(MSGT_DEMUX, MSGL_V, "[mkv] /---- [ parsing chapters ] ---------\n"); struct ebml_chapters file_chapters = {}; @@ -789,8 +790,8 @@ static int demux_mkv_read_chapters(struct demuxer *demuxer) int selected_edition = 0; int num_editions = file_chapters.n_edition_entry; struct ebml_edition_entry *editions = file_chapters.edition_entry; - if (opts->edition_id >= 0 && opts->edition_id < num_editions) { - selected_edition = opts->edition_id; + if (wanted_edition >= 0 && wanted_edition < num_editions) { + selected_edition = wanted_edition; mp_msg(MSGT_DEMUX, MSGL_V, "[mkv] User-specified edition: %d\n", selected_edition); } else diff --git a/mpvcore/options.c b/mpvcore/options.c index 5aff219c14..eeda836914 100644 --- a/mpvcore/options.c +++ b/mpvcore/options.c @@ -370,7 +370,8 @@ const m_option_t mp_opts[] = { {"dvdangle", &dvd_angle, CONF_TYPE_INT, CONF_RANGE, 1, 99, NULL}, #endif /* CONFIG_DVDREAD */ OPT_INTPAIR("chapter", chapterrange, 0), - OPT_INTRANGE("edition", edition_id, 0, -1, 8190), + OPT_CHOICE_OR_INT("edition", edition_id, 0, 0, 8190, + ({"auto", -1})), #ifdef CONFIG_LIBBLURAY {"bluray-device", &bluray_device, CONF_TYPE_STRING, 0, 0, 0, NULL}, {"bluray-angle", &bluray_angle, CONF_TYPE_INT, CONF_RANGE, 0, 999, NULL}, |