Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavutil/cpu.c14
-rw-r--r--tests/fate/libavutil.mak2
2 files changed, 14 insertions, 2 deletions
diff --git a/libavutil/cpu.c b/libavutil/cpu.c
index 62611878b2..1192619b70 100644
--- a/libavutil/cpu.c
+++ b/libavutil/cpu.c
@@ -278,6 +278,7 @@ int av_cpu_count(void)
#ifdef TEST
#include <stdio.h>
+#include "avstring.h"
#if !HAVE_GETOPT
#include "compat/getopt.c"
@@ -343,12 +344,14 @@ int main(int argc, char **argv)
{
int cpu_flags_raw = av_get_cpu_flags();
int cpu_flags_eff;
+ int cpu_count = av_cpu_count();
+ char threads[5] = "auto";
if (cpu_flags_raw < 0)
return 1;
for (;;) {
- int c = getopt(argc, argv, "c:");
+ int c = getopt(argc, argv, "c:t:");
if (c == -1)
break;
switch (c) {
@@ -360,6 +363,14 @@ int main(int argc, char **argv)
av_set_cpu_flags_mask(cpuflags);
break;
}
+ case 't':
+ {
+ int len = av_strlcpy(threads, optarg, sizeof(threads));
+ if (len >= sizeof(threads)) {
+ fprintf(stderr, "Invalid thread count '%s'\n", optarg);
+ return 2;
+ }
+ }
}
}
@@ -370,6 +381,7 @@ int main(int argc, char **argv)
print_cpu_flags(cpu_flags_raw, "raw");
print_cpu_flags(cpu_flags_eff, "effective");
+ fprintf(stderr, "threads = %s (cpu_count = %d)\n", threads, cpu_count);
return 0;
}
diff --git a/tests/fate/libavutil.mak b/tests/fate/libavutil.mak
index 8784cff019..de070ae115 100644
--- a/tests/fate/libavutil.mak
+++ b/tests/fate/libavutil.mak
@@ -31,7 +31,7 @@ fate-bprint: CMD = run libavutil/bprint-test
FATE_LIBAVUTIL += fate-cpu
fate-cpu: libavutil/cpu-test$(EXESUF)
-fate-cpu: CMD = run libavutil/cpu-test $(CPUFLAGS:%=-c%)
+fate-cpu: CMD = run libavutil/cpu-test $(CPUFLAGS:%=-c%) $(THREADS:%=-t%)
fate-cpu: REF = /dev/null
FATE_LIBAVUTIL += fate-crc