27 #define _XOPEN_SOURCE 600 
   48 #define malloc         AV_JOIN(MALLOC_PREFIX, malloc) 
   49 #define memalign       AV_JOIN(MALLOC_PREFIX, memalign) 
   50 #define posix_memalign AV_JOIN(MALLOC_PREFIX, posix_memalign) 
   51 #define realloc        AV_JOIN(MALLOC_PREFIX, realloc) 
   52 #define free           AV_JOIN(MALLOC_PREFIX, free) 
   54 void *malloc(
size_t size);
 
   55 void *memalign(
size_t align, 
size_t size);
 
   56 int   posix_memalign(
void **ptr, 
size_t align, 
size_t size);
 
   57 void *realloc(
void *ptr, 
size_t size);
 
   64 #define ALIGN (HAVE_AVX ? 32 : 16) 
   85 #if HAVE_POSIX_MEMALIGN 
   87     if (posix_memalign(&ptr, 
ALIGN, size))
 
   89 #elif HAVE_ALIGNED_MALLOC 
   90     ptr = _aligned_malloc(size, 
ALIGN);
 
   93     ptr = memalign(
ALIGN, size);
 
   95     ptr = memalign(size, 
ALIGN);
 
  128 #if CONFIG_MEMORY_POISONING 
  141 #if HAVE_ALIGNED_MALLOC 
  142     return _aligned_realloc(ptr, size + !size, 
ALIGN);
 
  144     return realloc(ptr, size + !size);
 
  172     memcpy(&val, ptr, 
sizeof(val));
 
  180     memcpy(ptr, &val, 
sizeof(val));
 
  186     if (!size || nmemb >= INT_MAX / size)
 
  195     memcpy(&val, ptr, 
sizeof(val));
 
  197     memcpy(ptr, &val, 
sizeof(val));
 
  198     if (!val && nmemb && size)
 
  206 #if HAVE_ALIGNED_MALLOC 
  217     memcpy(&val, arg, 
sizeof(val));
 
  218     memcpy(arg, &(
void *){ 
NULL }, 
sizeof(
val));
 
  226         memset(ptr, 0, size);
 
  241         size_t len = strlen(s) + 1;
 
  256     end = memchr(s, 0, len);
 
  275             memcpy(ptr, p, size);
 
  283     memcpy(&tab, tab_ptr, 
sizeof(tab));
 
  287         memcpy(tab_ptr, &tab, 
sizeof(tab));
 
  297     memcpy(&tab, tab_ptr, 
sizeof(tab));
 
  301         memcpy(tab_ptr, &tab, 
sizeof(tab));
 
  314         tab_elem_data = (
uint8_t *)*tab_ptr + (*nb_ptr) * elem_size;
 
  316             memcpy(tab_elem_data, elem_data, elem_size);
 
  317         else if (CONFIG_MEMORY_POISONING)
 
  323     return tab_elem_data;
 
  348     uint32_t 
a = v << 8  | v >> 16;
 
  349     uint32_t 
b = v << 16 | v >> 8;
 
  350     uint32_t 
c = v << 24 | v;
 
  353     uint32_t a = v       | v << 24;
 
  354     uint32_t b = v >> 8  | v << 16;
 
  355     uint32_t c = v >> 16 | v << 8;
 
  407         memset(dst, *src, cnt);
 
  408     } 
else if (back == 2) {
 
  410     } 
else if (back == 3) {
 
  412     } 
else if (back == 4) {
 
  417             while (cnt > blocklen) {
 
  418                 memcpy(dst, src, blocklen);
 
  423             memcpy(dst, src, cnt);
 
  452     if (min_size < *size)
 
  455     min_size = 
FFMAX(min_size + min_size / 16 + 32, min_size);
 
void * av_realloc_f(void *ptr, size_t nelem, size_t elsize)
Allocate, reallocate, or free a block of memory. 
const char const char void * val
void av_max_alloc(size_t max)
Set the maximum size that may be allocated in one block. 
void * av_realloc(void *ptr, size_t size)
Allocate, reallocate, or free a block of memory. 
Memory handling functions. 
Convenience header that includes libavutil's core. 
void * av_mallocz(size_t size)
Allocate a memory block with alignment suitable for all memory accesses (including vectors if availab...
static void fill16(uint8_t *dst, int len)
void * av_calloc(size_t nmemb, size_t size)
Non-inlined equivalent of av_mallocz_array(). 
static av_cold int end(AVCodecContext *avctx)
static void fill32(uint8_t *dst, int len)
void av_memcpy_backptr(uint8_t *dst, int back, int cnt)
Overlapping memcpy() implementation. 
int av_dynarray_add_nofree(void *tab_ptr, int *nb_ptr, void *elem)
Add an element to a dynamic array. 
void * av_realloc_array(void *ptr, size_t nmemb, size_t size)
void av_freep(void *arg)
Free a memory block which has been allocated with a function of av_malloc() or av_realloc() family...
simple assert() macros that are a bit more flexible than ISO C assert(). 
uint64_t_TMPL AV_WL64 unsigned int_TMPL AV_WL32 unsigned int_TMPL AV_RL24
void * av_memdup(const void *p, size_t size)
Duplicate a buffer with av_malloc(). 
int av_reallocp_array(void *ptr, size_t nmemb, size_t size)
void av_fast_malloc(void *ptr, unsigned int *size, size_t min_size)
Allocate a buffer, reusing the given one if large enough. 
void av_fast_mallocz(void *ptr, unsigned int *size, size_t min_size)
Allocate and clear a buffer, reusing the given one if large enough. 
void * av_fast_realloc(void *ptr, unsigned int *size, size_t min_size)
Reallocate the given buffer if it is not large enough, otherwise do nothing. 
const AVS_VideoInfo int align
int av_reallocp(void *ptr, size_t size)
Allocate, reallocate, or free a block of memory through a pointer to a pointer. 
char * av_strdup(const char *s)
Duplicate a string. 
uint64_t_TMPL AV_WL64 unsigned int_TMPL AV_WL32 unsigned int_TMPL AV_WL24 unsigned int_TMPL AV_WL16 uint64_t_TMPL AV_WB64 unsigned int_TMPL AV_WB32 unsigned int_TMPL AV_RB24
void * av_dynarray2_add(void **tab_ptr, int *nb_ptr, size_t elem_size, const uint8_t *elem_data)
Add an element of size elem_size to a dynamic array. 
static size_t max_alloc_size
void av_free(void *ptr)
Free a memory block which has been allocated with a function of av_malloc() or av_realloc() family...
static void fill24(uint8_t *dst, int len)
void * av_malloc(size_t size)
Allocate a memory block with alignment suitable for all memory accesses (including vectors if availab...
#define FF_DYNARRAY_ADD(av_size_max, av_elt_size, av_array, av_size, av_success, av_failure)
Add an element of to a dynamic array. 
common internal and external API header 
static int av_size_mult(size_t a, size_t b, size_t *r)
Multiply two size_t values checking for overflow. 
void av_dynarray_add(void *tab_ptr, int *nb_ptr, void *elem)
Add the pointer to an element to a dynamic array. 
static const struct twinvq_data tab
static int ff_fast_malloc(void *ptr, unsigned int *size, size_t min_size, int zero_realloc)
char * av_strndup(const char *s, size_t len)
Duplicate a substring of a string.