diff options
-rw-r--r-- | DOCS/man/en/options.rst | 6 | ||||
-rw-r--r-- | core/defaultopts.c | 3 | ||||
-rw-r--r-- | core/options.h | 1 | ||||
-rw-r--r-- | demux/demux_lavf.c | 3 |
4 files changed, 12 insertions, 1 deletions
diff --git a/DOCS/man/en/options.rst b/DOCS/man/en/options.rst index 8eec8408a7..9841e15b11 100644 --- a/DOCS/man/en/options.rst +++ b/DOCS/man/en/options.rst @@ -1113,6 +1113,12 @@ format detection less reliable. Can be used to force auto-detected libavformat demuxers, even if libavformat considers the detection not reliable enough. (Default: 26.) + allow-mimetype=<yes|no> + Allow deriving the format from the HTTP mimetype (default: yes). Set + this to no in case playing things from http mysteriously fails, even + though the same files work from local disk. + + This is default in order to reduce latency when opening http streams. format=<value> Force a specific libavformat demuxer. o=<key>=<value>[,<key>=<value>[,...]] diff --git a/core/defaultopts.c b/core/defaultopts.c index 1efb8a1c97..b55dea99f8 100644 --- a/core/defaultopts.c +++ b/core/defaultopts.c @@ -100,6 +100,9 @@ void set_default_mplayer_options(struct MPOpts *opts) .ac3drc = 1., .downmix = 1, }, + .lavfdopts = { + .allow_mimetype = 1, + }, .input = { .key_fifo_size = 7, .ar_delay = 200, diff --git a/core/options.h b/core/options.h index 36a930a132..b2e38ec56d 100644 --- a/core/options.h +++ b/core/options.h @@ -223,6 +223,7 @@ typedef struct MPOpts { int probesize; int probescore; int analyzeduration; + int allow_mimetype; char *format; char *cryptokey; char *avopt; diff --git a/demux/demux_lavf.c b/demux/demux_lavf.c index 2141d3ab0a..58fe390507 100644 --- a/demux/demux_lavf.c +++ b/demux/demux_lavf.c @@ -55,6 +55,7 @@ const m_option_t lavfdopts_conf[] = { OPT_INTRANGE("probesize", lavfdopts.probesize, 0, 32, INT_MAX), OPT_STRING("format", lavfdopts.format, 0), OPT_INTRANGE("analyzeduration", lavfdopts.analyzeduration, 0, 0, INT_MAX), + OPT_FLAG("allow-mimetype", lavfdopts.allow_mimetype, 0), OPT_INTRANGE("probescore", lavfdopts.probescore, 0, 0, 100), OPT_STRING("cryptokey", lavfdopts.cryptokey, 0), OPT_STRING("o", lavfdopts.avopt, 0), @@ -218,7 +219,7 @@ static int lavf_check_file(demuxer_t *demuxer) format = demuxer->stream->lavf_type; if (!format) format = avdevice_format; - if (!format && demuxer->stream->mime_type) + if (!format && lavfdopts->allow_mimetype && demuxer->stream->mime_type) format = (char *)find_demuxer_from_mime_type(demuxer->stream->mime_type); if (format) { if (strcmp(format, "help") == 0) { |