diff --git a/configure b/configure index ffb1e7e667..2888c72ba0 100755 --- a/configure +++ b/configure @@ -1124,6 +1124,7 @@ HAVE_LIST=" poll_h posix_memalign rdtsc + rint round roundf rweflags @@ -2954,6 +2955,7 @@ check_mathfunc log2 check_mathfunc log2f check_mathfunc lrint check_mathfunc lrintf +check_mathfunc rint check_mathfunc round check_mathfunc roundf check_mathfunc trunc diff --git a/libavutil/libm.h b/libavutil/libm.h index b5821e8267..8305b7c61b 100644 --- a/libavutil/libm.h +++ b/libavutil/libm.h @@ -86,6 +86,13 @@ static av_always_inline av_const int isnan(float x) #define log2f(x) ((float)log2(x)) #endif /* HAVE_LOG2F */ +#if !HAVE_RINT +static inline double rint(double x) +{ + return x >= 0 ? floor(x + 0.5) : ceil(x - 0.5); +} +#endif /* HAVE_RINT */ + #if !HAVE_LRINT static av_always_inline av_const long int lrint(double x) {