1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

Use posix_memalign() if available.

Originally committed as revision 16488 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Ramiro Polla 2009-01-07 23:36:34 +00:00
parent 218a6022e7
commit 1f91cdce0b
2 changed files with 8 additions and 3 deletions

6
configure vendored
View File

@ -866,6 +866,7 @@ HAVE_LIST="
memalign memalign
mkstemp mkstemp
pld pld
posix_memalign
ppc64 ppc64
round round
roundf roundf
@ -1819,6 +1820,7 @@ check_func getrusage
check_func inet_aton $network_extralibs check_func inet_aton $network_extralibs
check_func memalign check_func memalign
check_func mkstemp check_func mkstemp
check_func posix_memalign
check_func_headers windows.h GetProcessTimes check_func_headers windows.h GetProcessTimes
check_header conio.h check_header conio.h
@ -1833,8 +1835,8 @@ check_header vdpau/vdpau.h
check_header vdpau/vdpau_x11.h check_header vdpau/vdpau_x11.h
check_header X11/extensions/XvMClib.h check_header X11/extensions/XvMClib.h
if ! enabled_any memalign memalign_hack && enabled need_memalign ; then if ! enabled_any memalign memalign_hack posix_memalign && enabled need_memalign ; then
die "Error, no memalign() but SSE enabled, disable it or use --enable-memalign-hack." die "Error, no aligned memory allocator but SSE enabled, disable it or use --enable-memalign-hack."
fi fi
disabled zlib || check_lib zlib.h zlibVersion -lz || disable zlib disabled zlib || check_lib zlib.h zlibVersion -lz || disable zlib

View File

@ -31,6 +31,7 @@
#undef free #undef free
#undef realloc #undef realloc
#include <stdlib.h>
#ifdef HAVE_MALLOC_H #ifdef HAVE_MALLOC_H
#include <malloc.h> #include <malloc.h>
#endif #endif
@ -41,7 +42,7 @@
void *av_malloc(unsigned int size) void *av_malloc(unsigned int size)
{ {
void *ptr; void *ptr = NULL;
#ifdef CONFIG_MEMALIGN_HACK #ifdef CONFIG_MEMALIGN_HACK
long diff; long diff;
#endif #endif
@ -57,6 +58,8 @@ void *av_malloc(unsigned int size)
diff= ((-(long)ptr - 1)&15) + 1; diff= ((-(long)ptr - 1)&15) + 1;
ptr = (char*)ptr + diff; ptr = (char*)ptr + diff;
((char*)ptr)[-1]= diff; ((char*)ptr)[-1]= diff;
#elif defined (HAVE_POSIX_MEMALIGN)
posix_memalign(&ptr,16,size);
#elif defined (HAVE_MEMALIGN) #elif defined (HAVE_MEMALIGN)
ptr = memalign(16,size); ptr = memalign(16,size);
/* Why 64? /* Why 64?