|
|
|
@ -29,6 +29,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 +43,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); |
|
|
|
@ -75,6 +78,17 @@ static void print_times(void) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static int read_int(char *arg) { |
|
|
|
|
int ret; |
|
|
|
|
|
|
|
|
|
if (!arg || !*arg) |
|
|
|
|
return -1; |
|
|
|
|
ret = strtol(arg, &arg, 0); |
|
|
|
|
if (*arg) |
|
|
|
|
return -1; |
|
|
|
|
return ret; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int main(int argc, char **argv) |
|
|
|
|
{ |
|
|
|
|
unsigned int p, i, type, size, retry; |
|
|
|
@ -83,11 +97,22 @@ 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 (!strcmp(argv[i], "-f") && i+1<argc && !single_format) { |
|
|
|
|
single_format = argv[++i]; |
|
|
|
|
} else if (read_int(argv[i])>0 && j == 1) { |
|
|
|
|
retry_count = read_int(argv[i]); |
|
|
|
|
j++; |
|
|
|
|
} else if (read_int(argv[i])>0 && j == 2) { |
|
|
|
|
max_size = read_int(argv[i]); |
|
|
|
|
j++; |
|
|
|
|
} else { |
|
|
|
|
fprintf(stderr, "probetest [-f <input format>] [<retry_count> [<max_size>]]\n"); |
|
|
|
|
return 1; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (max_size > 1000000000U/8) { |
|
|
|
|
fprintf(stderr, "max_size out of bounds\n"); |
|
|
|
|