summaryrefslogtreecommitdiffstats
path: root/libmpdemux
diff options
context:
space:
mode:
authorUoti Urpala <uau@glyph.nonexistent.invalid>2010-04-26 17:42:20 +0300
committerUoti Urpala <uau@glyph.nonexistent.invalid>2010-04-26 17:42:20 +0300
commit4785c2617ee9ac186464a55c1bfb13a5781ef041 (patch)
tree2424f18b68b2037bd4e290471821e9adae28b876 /libmpdemux
parent2732d5efbae3e0ee28bc6b70ceab1eb77e593216 (diff)
parent38abe6ff7a3810f8e01b6296570e92df1b12b09c (diff)
downloadmpv-4785c2617ee9ac186464a55c1bfb13a5781ef041.tar.bz2
mpv-4785c2617ee9ac186464a55c1bfb13a5781ef041.tar.xz
Merge svn changes up to r30967
Diffstat (limited to 'libmpdemux')
-rw-r--r--libmpdemux/demux_lavf.c32
-rw-r--r--libmpdemux/video.c2
2 files changed, 18 insertions, 16 deletions
diff --git a/libmpdemux/demux_lavf.c b/libmpdemux/demux_lavf.c
index 70edf16efb..577c34caba 100644
--- a/libmpdemux/demux_lavf.c
+++ b/libmpdemux/demux_lavf.c
@@ -44,7 +44,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)
const m_option_t lavfdopts_conf[] = {
@@ -171,20 +172,21 @@ static int lavf_check_file(demuxer_t *demuxer){
avpd.buf = av_mallocz(FFMAX(BIO_BUFFER_SIZE, PROBE_BUF_SIZE) +
FF_INPUT_BUFFER_PADDING_SIZE);
do {
- read_size = stream_read(demuxer->stream, avpd.buf + probe_data_size, read_size);
- if(read_size < 0) {
- av_free(avpd.buf);
- return 0;
- }
- probe_data_size += read_size;
- avpd.filename= demuxer->stream->url;
- if (!strncmp(avpd.filename, "ffmpeg://", 9))
- avpd.filename += 9;
- avpd.buf_size= probe_data_size;
-
- 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 &&
+ read_size = stream_read(demuxer->stream, avpd.buf + probe_data_size, read_size);
+ if(read_size < 0) {
+ av_free(avpd.buf);
+ return 0;
+ }
+ probe_data_size += read_size;
+ avpd.filename= demuxer->stream->url;
+ if (!strncmp(avpd.filename, "ffmpeg://", 9))
+ avpd.filename += 9;
+ avpd.buf_size= probe_data_size;
+
+ 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 ||
+ probe_data_size < SMALL_MAX_PROBE_SIZE) &&
!priv->avif && read_size > 0 && probe_data_size < PROBE_BUF_SIZE);
av_free(avpd.buf);
diff --git a/libmpdemux/video.c b/libmpdemux/video.c
index cf0cc9f6a5..b8a26d61d2 100644
--- a/libmpdemux/video.c
+++ b/libmpdemux/video.c
@@ -323,7 +323,7 @@ mpeg_header_parser:
if(!sh_video->fps){
sh_video->frametime=0;
} else {
- sh_video->frametime=1.0/picture.fps;
+ sh_video->frametime=1.0/sh_video->fps;
}
sh_video->disp_w=picture.display_picture_width;
sh_video->disp_h=picture.display_picture_height;