From: ramiro Date: Wed, 7 Jan 2009 23:36:34 +0000 (+0000) Subject: Use posix_memalign() if available. X-Git-Url: https://rtime.felk.cvut.cz/gitweb/frescor/ffmpeg.git/commitdiff_plain/0d31be59245554b65931c50da0a051908395bb71 Use posix_memalign() if available. git-svn-id: file:///var/local/repositories/ffmpeg/trunk@16488 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b --- diff --git a/configure b/configure index 2c42b47c7..fe20844a5 100755 --- a/configure +++ b/configure @@ -866,6 +866,7 @@ HAVE_LIST=" memalign mkstemp pld + posix_memalign ppc64 round roundf @@ -1819,6 +1820,7 @@ check_func getrusage check_func inet_aton $network_extralibs check_func memalign check_func mkstemp +check_func posix_memalign check_func_headers windows.h GetProcessTimes check_header conio.h @@ -1833,8 +1835,8 @@ check_header vdpau/vdpau.h check_header vdpau/vdpau_x11.h check_header X11/extensions/XvMClib.h -if ! enabled_any memalign memalign_hack && enabled need_memalign ; then - die "Error, no memalign() but SSE enabled, disable it or use --enable-memalign-hack." +if ! enabled_any memalign memalign_hack posix_memalign && enabled need_memalign ; then + die "Error, no aligned memory allocator but SSE enabled, disable it or use --enable-memalign-hack." fi disabled zlib || check_lib zlib.h zlibVersion -lz || disable zlib diff --git a/libavutil/mem.c b/libavutil/mem.c index 960074c70..328bef787 100644 --- a/libavutil/mem.c +++ b/libavutil/mem.c @@ -31,6 +31,7 @@ #undef free #undef realloc +#include #ifdef HAVE_MALLOC_H #include #endif @@ -41,7 +42,7 @@ void *av_malloc(unsigned int size) { - void *ptr; + void *ptr = NULL; #ifdef CONFIG_MEMALIGN_HACK long diff; #endif @@ -57,6 +58,8 @@ void *av_malloc(unsigned int size) diff= ((-(long)ptr - 1)&15) + 1; ptr = (char*)ptr + diff; ((char*)ptr)[-1]= diff; +#elif defined (HAVE_POSIX_MEMALIGN) + posix_memalign(&ptr,16,size); #elif defined (HAVE_MEMALIGN) ptr = memalign(16,size); /* Why 64?