[FFmpeg-cvslog] cpu: add av_set_cpu_flags_mask().
Anton Khirnov
git at videolan.org
Wed Mar 7 03:37:18 CET 2012
ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Sun Mar 4 16:08:48 2012 +0100| [4d851f8dcf951d380e935ef14ae01db813adfc2d] | committer: Anton Khirnov
cpu: add av_set_cpu_flags_mask().
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4d851f8dcf951d380e935ef14ae01db813adfc2d
---
doc/APIchanges | 3 +++
libavutil/avutil.h | 2 +-
libavutil/cpu.c | 12 +++++++++++-
libavutil/cpu.h | 8 ++++++++
4 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/doc/APIchanges b/doc/APIchanges
index c375529..8ddd4d3 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -12,6 +12,9 @@ libavutil: 2011-04-18
API changes, most recent first:
+2012-03-xx - xxxxxxx - lavu 51.25.0 - cpu.h
+ Add av_set_cpu_flags_mask().
+
2012-xx-xx - lavc 54.8.0
xxxxxxx Add av_get_exact_bits_per_sample()
xxxxxxx Add av_get_audio_frame_duration()
diff --git a/libavutil/avutil.h b/libavutil/avutil.h
index e4219eb..21fc737 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 25895d6..e72f723 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 df7bf44..361fe98 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);
More information about the ffmpeg-cvslog
mailing list