summaryrefslogtreecommitdiffstats
path: root/libmpdemux
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2010-03-22 19:38:42 +0000
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2010-03-22 19:38:42 +0000
commitb28b15db30010695c3dc59e57370186dd961e79c (patch)
treee2389d419f4fe91a6e077865ddcdd8c7a36ae119 /libmpdemux
parenta1f7ee1a4bf627554732dc41ef4e4f0a027018f6 (diff)
downloadmpv-b28b15db30010695c3dc59e57370186dd961e79c.tar.bz2
mpv-b28b15db30010695c3dc59e57370186dd961e79c.tar.xz
Start probing with a size matching the stream buffer size so it is possible
to restart without seeking even without cache for easily detectable formats. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30946 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux')
-rw-r--r--libmpdemux/demux_lavf.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/libmpdemux/demux_lavf.c b/libmpdemux/demux_lavf.c
index a718fe6a54..fa86600bd0 100644
--- a/libmpdemux/demux_lavf.c
+++ b/libmpdemux/demux_lavf.c
@@ -43,7 +43,8 @@
#include "mp_taglists.h"
-#define INITIAL_PROBE_SIZE (32*1024)
+#define INITIAL_PROBE_SIZE STREAM_BUFFER_SIZE
+#define SMALL_MAX_PROBE_SIZE (32 * 1024)
#define PROBE_BUF_SIZE (2*1024*1024)
extern char *audio_lang;
@@ -171,7 +172,8 @@ static int lavf_check_file(demuxer_t *demuxer){
priv->avif= av_probe_input_format(&avpd, probe_data_size > 0);
read_size = FFMIN(2*read_size, PROBE_BUF_SIZE - probe_data_size);
- } while (demuxer->desc->type != DEMUXER_TYPE_LAVF_PREFERRED &&
+ } while ((demuxer->desc->type != DEMUXER_TYPE_LAVF_PREFERRED ||
+ probe_data_size < SMALL_MAX_PROBE_SIZE) &&
!priv->avif && read_size > 0 && probe_data_size < PROBE_BUF_SIZE);
av_free(avpd.buf);