From: Michael Kostylev Date: Thu, 27 Dec 2007 01:53:02 +0000 (+0000) Subject: Check for the presence of llrint(), lrint(), round() and roundf() X-Git-Tag: v0.5~6647 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a33cab3a9a48cbbb495d2548143751f1dee67213;p=platform%2Fupstream%2Flibav.git Check for the presence of llrint(), lrint(), round() and roundf() and provide simple replacements if they are unavailable. patch by Michael Kostylev, mik niipt ru Originally committed as revision 11326 to svn://svn.ffmpeg.org/ffmpeg/trunk --- diff --git a/configure b/configure index 146eb6c..c95d900 100755 --- a/configure +++ b/configure @@ -706,6 +706,8 @@ HAVE_LIST=" getrusage imlib2 inet_aton + llrint + lrint lrintf machine_ioctl_bt848_h machine_ioctl_meteor_h @@ -714,6 +716,8 @@ HAVE_LIST=" mkstemp mlib ppc64 + round + roundf sdl sdl_video_size soundcard_h @@ -1593,12 +1597,14 @@ done check_lib math.h sin -lm -# test for lrintf in math.h -check_exec < -int main(void) { return (lrintf(3.999f) > 0)?0:1; } +int main(void) { return ($func(3.999f) > 0)?0:1; } EOF +done enabled_any libamr_nb libamr_wb && enable libamr diff --git a/libavutil/internal.h b/libavutil/internal.h index 93f8a02..cbb8236 100644 --- a/libavutil/internal.h +++ b/libavutil/internal.h @@ -270,6 +270,20 @@ if((y)<(x)){\ }\ } +#ifndef HAVE_LLRINT +static av_always_inline long long llrint(double x) +{ + return rint(x); +} +#endif /* HAVE_LLRINT */ + +#ifndef HAVE_LRINT +static av_always_inline long int lrint(double x) +{ + return rint(x); +} +#endif /* HAVE_LRINT */ + #ifndef HAVE_LRINTF static av_always_inline long int lrintf(float x) { @@ -277,4 +291,18 @@ static av_always_inline long int lrintf(float x) } #endif /* HAVE_LRINTF */ +#ifndef HAVE_ROUND +static av_always_inline double round(double x) +{ + return (x > 0) ? floor(x + 0.5) : ceil(x - 0.5); +} +#endif /* HAVE_ROUND */ + +#ifndef HAVE_ROUNDF +static av_always_inline float roundf(float x) +{ + return (x > 0) ? floor(x + 0.5) : ceil(x - 0.5); +} +#endif /* HAVE_ROUNDF */ + #endif /* FFMPEG_INTERNAL_H */