diff options
author | Ramiro Polla <ramiro.polla@gmail.com> | 2009-01-07 23:36:34 +0000 |
---|---|---|
committer | Ramiro Polla <ramiro.polla@gmail.com> | 2009-01-07 23:36:34 +0000 |
commit | 1f91cdce0b95b9395bd8d085146dcc8b06418614 (patch) | |
tree | 05b1995fe1d141182c6a81a543d148432b429b15 | |
parent | 218a6022e7be21e1f1b78f6f8f06917769e916f4 (diff) | |
download | ffmpeg-1f91cdce0b95b9395bd8d085146dcc8b06418614.tar.gz |
Use posix_memalign() if available.
Originally committed as revision 16488 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rwxr-xr-x | configure | 6 | ||||
-rw-r--r-- | libavutil/mem.c | 5 |
2 files changed, 8 insertions, 3 deletions
@@ -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 960074c70f..328bef787c 100644 --- a/libavutil/mem.c +++ b/libavutil/mem.c @@ -31,6 +31,7 @@ #undef free #undef realloc +#include <stdlib.h> #ifdef HAVE_MALLOC_H #include <malloc.h> #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? |