diff options
author | Uoti Urpala <uau@glyph.nonexistent.invalid> | 2010-04-26 17:42:20 +0300 |
---|---|---|
committer | Uoti Urpala <uau@glyph.nonexistent.invalid> | 2010-04-26 17:42:20 +0300 |
commit | 4785c2617ee9ac186464a55c1bfb13a5781ef041 (patch) | |
tree | 2424f18b68b2037bd4e290471821e9adae28b876 /libmpdemux | |
parent | 2732d5efbae3e0ee28bc6b70ceab1eb77e593216 (diff) | |
parent | 38abe6ff7a3810f8e01b6296570e92df1b12b09c (diff) | |
download | mpv-4785c2617ee9ac186464a55c1bfb13a5781ef041.tar.bz2 mpv-4785c2617ee9ac186464a55c1bfb13a5781ef041.tar.xz |
Merge svn changes up to r30967
Diffstat (limited to 'libmpdemux')
-rw-r--r-- | libmpdemux/demux_lavf.c | 32 | ||||
-rw-r--r-- | libmpdemux/video.c | 2 |
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; |