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/trunktags/v0.5
| @@ -706,6 +706,8 @@ HAVE_LIST=" | |||||
| getrusage | getrusage | ||||
| imlib2 | imlib2 | ||||
| inet_aton | inet_aton | ||||
| llrint | |||||
| lrint | |||||
| lrintf | lrintf | ||||
| machine_ioctl_bt848_h | machine_ioctl_bt848_h | ||||
| machine_ioctl_meteor_h | machine_ioctl_meteor_h | ||||
| @@ -714,6 +716,8 @@ HAVE_LIST=" | |||||
| mkstemp | mkstemp | ||||
| mlib | mlib | ||||
| ppc64 | ppc64 | ||||
| round | |||||
| roundf | |||||
| sdl | sdl | ||||
| sdl_video_size | sdl_video_size | ||||
| soundcard_h | soundcard_h | ||||
| @@ -1593,12 +1597,14 @@ done | |||||
| check_lib math.h sin -lm | check_lib math.h sin -lm | ||||
| # test for lrintf in math.h | |||||
| check_exec <<EOF && enable lrintf || disable lrintf | |||||
| # test for C99 functions in math.h | |||||
| for func in llrint lrint lrintf round roundf; do | |||||
| check_exec <<EOF && enable $func || disable $func | |||||
| #define _ISOC9X_SOURCE 1 | #define _ISOC9X_SOURCE 1 | ||||
| #include <math.h> | #include <math.h> | ||||
| int main(void) { return (lrintf(3.999f) > 0)?0:1; } | |||||
| int main(void) { return ($func(3.999f) > 0)?0:1; } | |||||
| EOF | EOF | ||||
| done | |||||
| enabled_any libamr_nb libamr_wb && enable libamr | enabled_any libamr_nb libamr_wb && enable libamr | ||||
| @@ -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 | #ifndef HAVE_LRINTF | ||||
| static av_always_inline long int lrintf(float x) | 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 */ | #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 */ | #endif /* FFMPEG_INTERNAL_H */ | ||||