diff options
author | Michael Niedermayer <michael@niedermayer.cc> | 2016-10-21 13:50:03 +0300 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2016-10-22 14:50:09 +0300 |
commit | f5495c970cf2a8745a2f4520d543cb215c06e545 (patch) | |
tree | b38912ca1d258a74224c0fb56694dec8b5b1aff9 /libavutil | |
parent | 2c1d38d1e1c2617f51bbb833bb7fe1298644cd21 (diff) |
avutil/avassert: Add av_assertX_fpu()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavutil')
-rw-r--r-- | libavutil/avassert.h | 9 | ||||
-rw-r--r-- | libavutil/utils.c | 13 | ||||
-rw-r--r-- | libavutil/version.h | 2 |
3 files changed, 23 insertions, 1 deletions
diff --git a/libavutil/avassert.h b/libavutil/avassert.h index f473637649..46f3fea580 100644 --- a/libavutil/avassert.h +++ b/libavutil/avassert.h @@ -59,8 +59,17 @@ */ #if defined(ASSERT_LEVEL) && ASSERT_LEVEL > 1 #define av_assert2(cond) av_assert0(cond) +#define av_assert2_fpu() av_assert0_fpu() #else #define av_assert2(cond) ((void)0) +#define av_assert2_fpu() ((void)0) #endif +/** + * Assert that floating point opperations can be executed. + * + * This will av_assert0() that the cpu is not in MMX state on X86 + */ +void av_assert0_fpu(void); + #endif /* AVUTIL_AVASSERT_H */ diff --git a/libavutil/utils.c b/libavutil/utils.c index f409f32216..36e4dd5fdb 100644 --- a/libavutil/utils.c +++ b/libavutil/utils.c @@ -125,3 +125,16 @@ AVRational av_get_time_base_q(void) { return (AVRational){1, AV_TIME_BASE}; } + +void av_assert0_fpu(void) { +#if HAVE_MMX_INLINE + uint16_t state[14]; + __asm volatile ( + "fstenv %0 \n\t" + : "+m" (state) + : + : "memory" + ); + av_assert0((state[4] & 3) == 3); +#endif +} diff --git a/libavutil/version.h b/libavutil/version.h index 8a41ef6fbc..5ee6e6da41 100644 --- a/libavutil/version.h +++ b/libavutil/version.h @@ -79,7 +79,7 @@ */ #define LIBAVUTIL_VERSION_MAJOR 55 -#define LIBAVUTIL_VERSION_MINOR 32 +#define LIBAVUTIL_VERSION_MINOR 33 #define LIBAVUTIL_VERSION_MICRO 100 #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ |