提交 57011a13 编写于 作者: B Baptiste Coudurier

use AVFormatContext->probesize in av_find_stream_info and raise default to 5M

Originally committed as revision 19274 to svn://svn.ffmpeg.org/ffmpeg/trunk
上级 d23612ef
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
#define AVFORMAT_AVFORMAT_H #define AVFORMAT_AVFORMAT_H
#define LIBAVFORMAT_VERSION_MAJOR 52 #define LIBAVFORMAT_VERSION_MAJOR 52
#define LIBAVFORMAT_VERSION_MINOR 35 #define LIBAVFORMAT_VERSION_MINOR 36
#define LIBAVFORMAT_VERSION_MICRO 0 #define LIBAVFORMAT_VERSION_MICRO 0
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
......
...@@ -40,7 +40,7 @@ static const char* format_to_name(void* ptr) ...@@ -40,7 +40,7 @@ static const char* format_to_name(void* ptr)
#define D AV_OPT_FLAG_DECODING_PARAM #define D AV_OPT_FLAG_DECODING_PARAM
static const AVOption options[]={ static const AVOption options[]={
{"probesize", NULL, OFFSET(probesize), FF_OPT_TYPE_INT, 32000, 32, INT_MAX, D}, /* 32000 from mpegts.c: 1.0 second at 24Mbit/s */ {"probesize", "set probing size", OFFSET(probesize), FF_OPT_TYPE_INT, 5000000, 32, INT_MAX, D},
{"muxrate", "set mux rate", OFFSET(mux_rate), FF_OPT_TYPE_INT, DEFAULT, 0, INT_MAX, E}, {"muxrate", "set mux rate", OFFSET(mux_rate), FF_OPT_TYPE_INT, DEFAULT, 0, INT_MAX, E},
{"packetsize", "set packet size", OFFSET(packet_size), FF_OPT_TYPE_INT, DEFAULT, 0, INT_MAX, E}, {"packetsize", "set packet size", OFFSET(packet_size), FF_OPT_TYPE_INT, DEFAULT, 0, INT_MAX, E},
{"fflags", NULL, OFFSET(flags), FF_OPT_TYPE_FLAGS, DEFAULT, INT_MIN, INT_MAX, D|E, "fflags"}, {"fflags", NULL, OFFSET(flags), FF_OPT_TYPE_FLAGS, DEFAULT, INT_MIN, INT_MAX, D|E, "fflags"},
......
...@@ -1980,9 +1980,6 @@ static void compute_chapters_end(AVFormatContext *s) ...@@ -1980,9 +1980,6 @@ static void compute_chapters_end(AVFormatContext *s)
} }
} }
/* absolute maximum size we read until we abort */
#define MAX_READ_SIZE 5000000
#define MAX_STD_TIMEBASES (60*12+5) #define MAX_STD_TIMEBASES (60*12+5)
static int get_std_framerate(int i){ static int get_std_framerate(int i){
if(i<60*12) return i*1001; if(i<60*12) return i*1001;
...@@ -2081,9 +2078,9 @@ int av_find_stream_info(AVFormatContext *ic) ...@@ -2081,9 +2078,9 @@ int av_find_stream_info(AVFormatContext *ic)
} }
} }
/* we did not get all the codec info, but we read too much data */ /* we did not get all the codec info, but we read too much data */
if (read_size >= MAX_READ_SIZE) { if (read_size >= ic->probesize) {
ret = count; ret = count;
av_log(ic, AV_LOG_DEBUG, "MAX_READ_SIZE reached\n"); av_log(ic, AV_LOG_DEBUG, "MAX_READ_SIZE:%d reached\n", ic->probesize);
break; break;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册