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:
parent
218a6022e7
commit
1f91cdce0b
6
configure
vendored
6
configure
vendored
@ -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
|
||||||
|
@ -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?
|
||||||
|
Loading…
Reference in New Issue
Block a user