44 #define malloc AV_JOIN(MALLOC_PREFIX, malloc)
45 #define memalign AV_JOIN(MALLOC_PREFIX, memalign)
46 #define posix_memalign AV_JOIN(MALLOC_PREFIX, posix_memalign)
47 #define realloc AV_JOIN(MALLOC_PREFIX, realloc)
48 #define free AV_JOIN(MALLOC_PREFIX, free)
50 void *malloc(
size_t size);
51 void *memalign(
size_t align,
size_t size);
52 int posix_memalign(
void **ptr,
size_t align,
size_t size);
53 void *realloc(
void *ptr,
size_t size);
65 #if CONFIG_MEMALIGN_HACK
70 if (size > (INT_MAX - 32) || !size)
73 #if CONFIG_MEMALIGN_HACK
74 ptr = malloc(size + 32);
77 diff = ((-(long)ptr - 1) & 31) + 1;
78 ptr = (
char *)ptr + diff;
79 ((
char *)ptr)[-1] = diff;
80 #elif HAVE_POSIX_MEMALIGN
81 if (posix_memalign(&ptr, 32, size))
83 #elif HAVE_ALIGNED_MALLOC
84 ptr = _aligned_malloc(size, 32);
86 ptr = memalign(32, size);
119 #if CONFIG_MEMALIGN_HACK
124 if (size > (INT_MAX - 16))
127 #if CONFIG_MEMALIGN_HACK
131 diff = ((
char *)ptr)[-1];
132 return (
char *)realloc((
char *)ptr - diff, size + diff) + diff;
133 #elif HAVE_ALIGNED_MALLOC
134 return _aligned_realloc(ptr, size, 32);
136 return realloc(ptr, size);
162 if (!size || nmemb >= INT_MAX / size)
171 if (!size || nmemb >= INT_MAX / size)
188 #if CONFIG_MEMALIGN_HACK
190 free((
char *)ptr - ((
char *)ptr)[-1]);
191 #elif HAVE_ALIGNED_MALLOC
200 void **ptr = (
void **)arg;
209 memset(ptr, 0, size);
217 int len = strlen(s) + 1;
247 uint32_t
a = v << 8 | v >> 16;
248 uint32_t
b = v << 16 | v >> 8;
249 uint32_t c = v << 24 | v;
252 uint32_t a = v | v << 24;
253 uint32_t b = v >> 8 | v << 16;
254 uint32_t c = v >> 16 | v << 8;
301 const uint8_t *src = &dst[-back];
306 memset(dst, *src, cnt);
307 }
else if (back == 2) {
309 }
else if (back == 3) {
311 }
else if (back == 4) {
316 while (cnt > blocklen) {
317 memcpy(dst, src, blocklen);
322 memcpy(dst, src, cnt);
351 if (min_size < *size)
354 min_size =
FFMAX(17 * min_size / 16 + 32, min_size);
371 if (min_size < *size)
373 min_size =
FFMAX(17 * min_size / 16 + 32, min_size);