From 98a31d5937e8397d8fcd0fefe56630a1cd765cf0 Mon Sep 17 00:00:00 2001 From: wm4 Date: Fri, 13 Jun 2014 02:05:37 +0200 Subject: options: turn --idx, --forceidx into --index Also clarify the semantics. It seems --idx didn't do anything. Possibly it used to change how the now removed legacy demuxers like demux_avi used to behave. Or maybe it was accidental. --forceidx basically becomes --index=force. It's possible that new index modes will be added in the future, so I'm keeping it extensible, instead of e.g. creating --force-index. --- DOCS/man/en/changes.rst | 2 ++ DOCS/man/en/options.rst | 21 +++++++-------------- demux/demux_lavf.c | 2 +- demux/demux_mkv.c | 2 +- options/m_config.c | 2 ++ options/options.c | 6 ++---- options/options.h | 2 +- 7 files changed, 16 insertions(+), 21 deletions(-) diff --git a/DOCS/man/en/changes.rst b/DOCS/man/en/changes.rst index 01a210fae8..f1f336ac7c 100644 --- a/DOCS/man/en/changes.rst +++ b/DOCS/man/en/changes.rst @@ -158,11 +158,13 @@ Command Line Switches ``-endpos`` ``--length`` ``-font`` ``--osd-font`` ``-forcedsubsonly`` ``--sub-forced-only`` + ``-forceidx`` ``--index`` ``-format`` ``--audio-format`` ``-fsmode-dontuse`` (removed) ``-fstype`` ``--x11-netwm`` (changed semantics) ``-hardframedrop`` ``--framedrop=hard`` ``-identify`` (removed; use TOOLS/mpv_identify.sh) + ``-idx`` ``--index`` ``-lavdopts ...`` ``--vd-lavc-...`` ``-lavfdopts`` ``--demuxer-lavf-...`` ``-lircconf`` ``--input-lirc-conf`` diff --git a/DOCS/man/en/options.rst b/DOCS/man/en/options.rst index d121fe2adc..e7044c53d8 100644 --- a/DOCS/man/en/options.rst +++ b/DOCS/man/en/options.rst @@ -826,15 +826,6 @@ OPTIONS Display only forced subtitles for the DVD subtitle stream selected by e.g. ``--slang``. -``--forceidx`` - Force index rebuilding. Useful for files with broken index (A/V desync, - etc). This will enable seeking in files where seeking was not possible. - - .. note:: - - This option only works if the underlying media supports seeking - (i.e. not with stdin, pipe, etc). - ``--fps=`` Override video framerate. Useful if the original value is wrong or missing. @@ -1129,11 +1120,13 @@ OPTIONS Mostly useful in slave mode, where mpv can be controlled through input commands (see also ``--slave-broken``). -``--idx`` - Rebuilds index of files if no index was found, allowing seeking. Useful - with broken/incomplete downloads or badly created files. Now this is done - automatically by the demuxers used for most video formats, meaning that - this switch has no effect in the typical case. See also ``--forceidx``. +``--index=`` + Controls how to seek in files. Note that if the index is missing from a + file, it will be built on the fly by default, so you don't need to change + this. But it might help with some broken files. + + :default: use an index if the file has one, or build it if missing + :recreate: don't read or use the file's index .. note:: diff --git a/demux/demux_lavf.c b/demux/demux_lavf.c index 58b6c75483..19e6357563 100644 --- a/demux/demux_lavf.c +++ b/demux/demux_lavf.c @@ -641,7 +641,7 @@ static int demux_open_lavf(demuxer_t *demuxer, enum demux_check check) parse_cryptokey(avfc, lavfdopts->cryptokey); if (lavfdopts->genptsmode) avfc->flags |= AVFMT_FLAG_GENPTS; - if (opts->index_mode == 0) + if (opts->index_mode != 1) avfc->flags |= AVFMT_FLAG_IGNIDX; #if LIBAVFORMAT_VERSION_MICRO >= 100 diff --git a/demux/demux_mkv.c b/demux/demux_mkv.c index 462a93aaa8..7b712e07ab 100644 --- a/demux/demux_mkv.c +++ b/demux/demux_mkv.c @@ -690,7 +690,7 @@ static int demux_mkv_read_cues(demuxer_t *demuxer) mkv_d->deferred_cues = 0; - if (opts->index_mode == 0 || opts->index_mode == 2) { + if (opts->index_mode != 1) { ebml_read_skip(demuxer->log, -1, s); return 0; } diff --git a/options/m_config.c b/options/m_config.c index 2ebf17bb70..f3b73784a5 100644 --- a/options/m_config.c +++ b/options/m_config.c @@ -981,5 +981,7 @@ static const char *const replaced_opts = "|autosub#--sub-auto" "|native-fs#--fs-missioncontrol" "|status-msg#--term-status-msg" + "|idx#--index" + "|forceidx#--index" "|" ; diff --git a/options/options.c b/options/options.c index 63f4653317..dfa5106658 100644 --- a/options/options.c +++ b/options/options.c @@ -186,9 +186,7 @@ const m_option_t mp_opts[] = { OPT_FLAG("pause", pause, M_OPT_FIXED), OPT_FLAG("keep-open", keep_open, 0), - // AVI and Ogg only: (re)build index at startup - OPT_FLAG_CONSTANTS("idx", index_mode, 0, -1, 1), - OPT_FLAG_STORE("forceidx", index_mode, 0, 2), + OPT_CHOICE("index", index_mode, 0, ({"default", 1}, {"recreate", 0})), // select audio/video/subtitle stream OPT_TRACKCHOICE("aid", audio_id), @@ -628,7 +626,7 @@ const struct MPOpts mp_default_opts = { .hwdec_codecs = "h264,vc1,wmv3", - .index_mode = -1, + .index_mode = 1, .dvd_angle = 1, diff --git a/options/options.h b/options/options.h index 5368c2c1e1..b93a283b61 100644 --- a/options/options.h +++ b/options/options.h @@ -189,7 +189,7 @@ typedef struct MPOpts { char *screenshot_template; double force_fps; - int index_mode; // -1=untouched 0=don't use index 1=use (generate) index + int index_mode; struct mp_chmap audio_output_channels; int audio_output_format; -- cgit v1.2.3