summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DOCS/man/en/options.rst4
-rw-r--r--demux/demux_mkv.c5
-rw-r--r--mpvcore/options.c3
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},