mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
tools/probetest: support testing a single specified input format
This reduces the time the test takes significantly when only one formats needs to be tested Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
1ffcf6ac90
commit
13306dde22
@ -29,6 +29,7 @@
|
|||||||
static int score_array[MAX_FORMATS];
|
static int score_array[MAX_FORMATS];
|
||||||
static int64_t time_array[MAX_FORMATS];
|
static int64_t time_array[MAX_FORMATS];
|
||||||
static int failures = 0;
|
static int failures = 0;
|
||||||
|
static const char *single_format;
|
||||||
|
|
||||||
#ifndef AV_READ_TIME
|
#ifndef AV_READ_TIME
|
||||||
#define AV_READ_TIME(x) 0
|
#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))) {
|
while ((fmt = av_iformat_next(fmt))) {
|
||||||
if (fmt->flags & AVFMT_NOFILE)
|
if (fmt->flags & AVFMT_NOFILE)
|
||||||
continue;
|
continue;
|
||||||
if (fmt->read_probe) {
|
if (fmt->read_probe &&
|
||||||
|
(!single_format || !strcmp(single_format, fmt->name))
|
||||||
|
) {
|
||||||
int score;
|
int score;
|
||||||
int64_t start = AV_READ_TIME();
|
int64_t start = AV_READ_TIME();
|
||||||
score = fmt->read_probe(pd);
|
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)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
unsigned int p, i, type, size, retry;
|
unsigned int p, i, type, size, retry;
|
||||||
@ -83,11 +97,22 @@ int main(int argc, char **argv)
|
|||||||
PutBitContext pb;
|
PutBitContext pb;
|
||||||
int retry_count= 4097;
|
int retry_count= 4097;
|
||||||
int max_size = 65537;
|
int max_size = 65537;
|
||||||
|
int j;
|
||||||
|
|
||||||
if(argc >= 2)
|
for (j = i = 1; i<argc; i++) {
|
||||||
retry_count = atoi(argv[1]);
|
if (!strcmp(argv[i], "-f") && i+1<argc && !single_format) {
|
||||||
if(argc >= 3)
|
single_format = argv[++i];
|
||||||
max_size = atoi(argv[2]);
|
} 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) {
|
if (max_size > 1000000000U/8) {
|
||||||
fprintf(stderr, "max_size out of bounds\n");
|
fprintf(stderr, "max_size out of bounds\n");
|
||||||
|
Loading…
Reference in New Issue
Block a user