summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DOCS/man/en/mplayer.14
-rw-r--r--libmpdemux/demux_lavf.c6
2 files changed, 10 insertions, 0 deletions
diff --git a/DOCS/man/en/mplayer.1 b/DOCS/man/en/mplayer.1
index 5f419e5d18..2d5f4aadf2 100644
--- a/DOCS/man/en/mplayer.1
+++ b/DOCS/man/en/mplayer.1
@@ -10100,6 +10100,10 @@ The same principle as for vbuf_size applies.
.SS FFmpeg libavformat demuxers (\-lavfdopts)
.
.TP
+.B analyzeduration=<value>
+Maximum length in seconds to analyze the stream properties.
+.
+.TP
.B format=<value>
Force a specific libavformat demuxer.
.
diff --git a/libmpdemux/demux_lavf.c b/libmpdemux/demux_lavf.c
index b232c2e2cc..eff31274ff 100644
--- a/libmpdemux/demux_lavf.c
+++ b/libmpdemux/demux_lavf.c
@@ -47,11 +47,13 @@
extern char *audio_lang;
static unsigned int opt_probesize = 0;
+static unsigned int opt_analyzeduration = 0;
static char *opt_format;
m_option_t lavfdopts_conf[] = {
{"probesize", &(opt_probesize), CONF_TYPE_INT, CONF_RANGE, 32, INT_MAX, NULL},
{"format", &(opt_format), CONF_TYPE_STRING, 0, 0, 0, NULL},
+ {"analyzeduration", &(opt_analyzeduration), CONF_TYPE_INT, CONF_RANGE, 0, INT_MAX, NULL},
{NULL, NULL, 0, 0, 0, 0, NULL}
};
@@ -273,6 +275,10 @@ static demuxer_t* demux_open_lavf(demuxer_t *demuxer){
opt = av_set_int(avfc, "probesize", opt_probesize);
if(!opt) mp_msg(MSGT_HEADER,MSGL_ERR, "demux_lavf, couldn't set option probesize to %u\n", opt_probesize);
}
+ if(opt_analyzeduration) {
+ opt = av_set_int(avfc, "analyzeduration", opt_analyzeduration * AV_TIME_BASE);
+ if(!opt) mp_msg(MSGT_HEADER,MSGL_ERR, "demux_lavf, couldn't set option analyzeduration to %u\n", opt_analyzeduration);
+ }
if(demuxer->stream->url)
strncpy(mp_filename + 3, demuxer->stream->url, sizeof(mp_filename)-3);