1
mirror of https://github.com/mpv-player/mpv synced 2025-01-13 00:06:25 +01:00

options: add allow-mimetype suboption for demux_lavf

This can control whether demux_lavf should use the HTTP mime type to
determine the format, instead of probing the data with the libavformat
API. Do this to allow easier debugging in case the mimetype is
incorrect. (This is done only for AAC streams right now.)
This commit is contained in:
wm4 2013-05-27 22:48:04 +02:00
parent 7ea5d085f9
commit f05ec1c738
4 changed files with 12 additions and 1 deletions

View File

@ -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>[,...]]

View File

@ -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,

View File

@ -223,6 +223,7 @@ typedef struct MPOpts {
int probesize;
int probescore;
int analyzeduration;
int allow_mimetype;
char *format;
char *cryptokey;
char *avopt;

View File

@ -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) {