Commit f5495c97 authored by Michael Niedermayer's avatar Michael Niedermayer

avutil/avassert: Add av_assertX_fpu()

Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
parent 2c1d38d1
......@@ -15,6 +15,9 @@ libavutil: 2015-08-28
API changes, most recent first:
2016-10-22 - xxxxxxx - lavu 55.33.100 - avassert.h
Add av_assert0_fpu() / av_assert2_fpu()
2016-xx-xx - xxxxxxx - lavc 57.61.100 / lavc 57.24.0 - avcodec.h
Decoders now export the frame timestamp as AVFrame.pts. It was
previously exported as AVFrame.pkt_pts, which is now deprecated.
......
......@@ -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 */
......@@ -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
}
......@@ -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, \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment