diff options
author | Diego Biurrun <diego@biurrun.de> | 2005-09-19 23:26:47 +0000 |
---|---|---|
committer | Diego Biurrun <diego@biurrun.de> | 2005-09-19 23:26:47 +0000 |
commit | 7df6545556367b62f6a122faf3298676c301af71 (patch) | |
tree | 04b869bfb7d9288c0e724bcbf1919d3f836bc464 /libavutil | |
parent | 0f8840707500538c37db3239e8e6443773877ab5 (diff) | |
download | ffmpeg-7df6545556367b62f6a122faf3298676c301af71.tar.gz |
Move lrintf implementation from libavcodec/dsputil.h to libavutil/common.h
where it makes more sense.
Originally committed as revision 4599 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavutil')
-rw-r--r-- | libavutil/common.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/libavutil/common.h b/libavutil/common.h index 8179ece5b2..bbbd4c91c9 100644 --- a/libavutil/common.h +++ b/libavutil/common.h @@ -543,6 +543,35 @@ tend= read_time();\ }\ } +#ifndef HAVE_LRINTF +/* XXX: add ISOC specific test to avoid specific BSD testing. */ +/* better than nothing implementation. */ +/* btw, rintf() is existing on fbsd too -- alex */ +static always_inline long int lrintf(float x) +{ +#ifdef CONFIG_WIN32 +# ifdef ARCH_X86 + int32_t i; + asm volatile( + "fistpl %0\n\t" + : "=m" (i) : "t" (x) : "st" + ); + return i; +# else + /* XXX: incorrect, but make it compile */ + return (int)(x + (x < 0 ? -0.5 : 0.5)); +# endif /* ARCH_X86 */ +#else + return (int)(rint(x)); +#endif /* CONFIG_WIN32 */ +} +#else +#ifndef _ISOC9X_SOURCE +#define _ISOC9X_SOURCE +#endif +#include <math.h> +#endif /* HAVE_LRINTF */ + #endif /* HAVE_AV_CONFIG_H */ #endif /* COMMON_H */ |