Commit 7df65455 authored by Diego Biurrun's avatar Diego Biurrun

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
parent 0f884070
...@@ -594,33 +594,4 @@ static int name16(void /*MpegEncContext*/ *s, uint8_t *dst, uint8_t *src, int st ...@@ -594,33 +594,4 @@ static int name16(void /*MpegEncContext*/ *s, uint8_t *dst, uint8_t *src, int st
return score;\ return score;\
} }
#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
#else
return (int)(rint(x));
#endif
}
#else
#ifndef _ISOC9X_SOURCE
#define _ISOC9X_SOURCE
#endif
#include <math.h>
#endif
#endif #endif
...@@ -543,6 +543,35 @@ tend= read_time();\ ...@@ -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 /* HAVE_AV_CONFIG_H */
#endif /* COMMON_H */ #endif /* COMMON_H */
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