Commit 91d6655a authored by Michael Niedermayer's avatar Michael Niedermayer

lrintf emulation improvments

Originally committed as revision 3412 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent f2fe8752
......@@ -583,11 +583,20 @@ static int name16(void /*MpegEncContext*/ *s, uint8_t *dst, uint8_t *src, int st
/* XXX: add ISOC specific test to avoid specific BSD testing. */
/* better than nothing implementation. */
/* btw, rintf() is existing on fbsd too -- alex */
static inline long int lrintf(float x)
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);
return (int)(x + (x < 0 ? -0.5 : 0.5));
# endif
#else
return (int)(rint(x));
#endif
......
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