diff options
author | Anton Khirnov <anton@khirnov.net> | 2012-03-04 16:08:48 +0100 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2012-03-06 15:02:28 +0100 |
commit | 4d851f8dcf951d380e935ef14ae01db813adfc2d (patch) | |
tree | bd5610a073c4d4292b6caa6b9ebe840bad168eac /libavutil | |
parent | 338978a7c17d303672bcf5e035e54da362274a18 (diff) | |
download | ffmpeg-4d851f8dcf951d380e935ef14ae01db813adfc2d.tar.gz |
cpu: add av_set_cpu_flags_mask().
Diffstat (limited to 'libavutil')
-rw-r--r-- | libavutil/avutil.h | 2 | ||||
-rw-r--r-- | libavutil/cpu.c | 12 | ||||
-rw-r--r-- | libavutil/cpu.h | 8 |
3 files changed, 20 insertions, 2 deletions
diff --git a/libavutil/avutil.h b/libavutil/avutil.h index e4219eb87f..21fc737114 100644 --- a/libavutil/avutil.h +++ b/libavutil/avutil.h @@ -152,7 +152,7 @@ */ #define LIBAVUTIL_VERSION_MAJOR 51 -#define LIBAVUTIL_VERSION_MINOR 24 +#define LIBAVUTIL_VERSION_MINOR 25 #define LIBAVUTIL_VERSION_MICRO 0 #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ diff --git a/libavutil/cpu.c b/libavutil/cpu.c index 25895d6d5d..e72f7231a8 100644 --- a/libavutil/cpu.c +++ b/libavutil/cpu.c @@ -19,9 +19,11 @@ #include "cpu.h" #include "config.h" +static int cpuflags_mask, checked; + int av_get_cpu_flags(void) { - static int flags, checked; + static int flags; if (checked) return flags; @@ -30,10 +32,18 @@ int av_get_cpu_flags(void) if (ARCH_PPC) flags = ff_get_cpu_flags_ppc(); if (ARCH_X86) flags = ff_get_cpu_flags_x86(); + flags &= cpuflags_mask; checked = 1; + return flags; } +void av_set_cpu_flags_mask(int mask) +{ + cpuflags_mask = mask; + checked = 0; +} + #ifdef TEST #undef printf diff --git a/libavutil/cpu.h b/libavutil/cpu.h index df7bf4421a..361fe9866a 100644 --- a/libavutil/cpu.h +++ b/libavutil/cpu.h @@ -48,6 +48,14 @@ */ int av_get_cpu_flags(void); +/** + * Set a mask on flags returned by av_get_cpu_flags(). + * This function is mainly useful for testing. + * + * @warning this function is not thread safe. + */ +void av_set_cpu_flags_mask(int mask); + /* The following CPU-specific functions shall not be called directly. */ int ff_get_cpu_flags_arm(void); int ff_get_cpu_flags_ppc(void); |