This reduces the time the test takes significantly when only one formats needs to be tested
Signed-off-by: Michael Niedermayer <michae...@gmx.at> --- tools/probetest.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/tools/probetest.c b/tools/probetest.c index 78327de..cbd9f89 100644 --- a/tools/probetest.c +++ b/tools/probetest.c @@ -22,6 +22,7 @@ #include "libavformat/avformat.h" #include "libavcodec/put_bits.h" +#include "libavutil/avstring.h" #include "libavutil/lfg.h" #include "libavutil/timer.h" @@ -29,6 +30,7 @@ static int score_array[MAX_FORMATS]; static int64_t time_array[MAX_FORMATS]; static int failures = 0; +static const char *single_format; #ifndef AV_READ_TIME #define AV_READ_TIME(x) 0 @@ -42,7 +44,9 @@ static void probe(AVProbeData *pd, int type, int p, int size) while ((fmt = av_iformat_next(fmt))) { if (fmt->flags & AVFMT_NOFILE) continue; - if (fmt->read_probe) { + if (fmt->read_probe && + (!single_format || !strcmp(single_format, fmt->name)) + ) { int score; int64_t start = AV_READ_TIME(); score = fmt->read_probe(pd); @@ -83,11 +87,18 @@ int main(int argc, char **argv) PutBitContext pb; int retry_count= 4097; int max_size = 65537; - - if(argc >= 2) - retry_count = atoi(argv[1]); - if(argc >= 3) - max_size = atoi(argv[2]); + int j; + + for (j = i = 1; i<argc; i++) { + if (av_isdigit(argv[i][0])) { + if (j++ == 1) { + retry_count = atoi(argv[i]); + } else + max_size = atoi(argv[i]); + } else { + single_format = argv[i]; + } + } if (max_size > 1000000000U/8) { fprintf(stderr, "max_size out of bounds\n"); -- 1.7.9.5 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel