FFmpeg
Macros | Functions
mem.h File Reference

Memory handling functions. More...

#include <limits.h>
#include <stdint.h>
#include "attributes.h"
#include "error.h"
#include "avutil.h"

Go to the source code of this file.

Macros

#define DECLARE_ALIGNED(n, t, v)   t __attribute__ ((aligned (n))) v
 Declare a variable that is aligned in memory. More...
 
#define DECLARE_ASM_ALIGNED(n, t, v)   t av_used __attribute__ ((aligned (n))) v
 Declare an aligned variable appropriate for use in inline assembly code. More...
 
#define DECLARE_ASM_CONST(n, t, v)   static const t av_used __attribute__ ((aligned (n))) v
 Declare a static constant aligned variable appropriate for use in inline assembly code. More...
 
#define av_malloc_attrib   __attribute__((__malloc__))
 Function attribute denoting a malloc-like function. More...
 
#define av_alloc_size(...)   __attribute__((alloc_size(__VA_ARGS__)))
 Function attribute used on a function that allocates memory, whose size is given by the specified parameter(s). More...
 

Functions

voidav_malloc (size_t size) av_malloc_attrib 1(1)
 Allocate a memory block with alignment suitable for all memory accesses (including vectors if available on the CPU). More...
 
voidav_mallocz (size_t size) av_malloc_attrib 1(1)
 Allocate a memory block with alignment suitable for all memory accesses (including vectors if available on the CPU) and zero all the bytes of the block. More...
 
voidav_malloc_array (size_t nmemb, size_t size)
 
voidav_mallocz_array (size_t nmemb, size_t size)
 
voidav_calloc (size_t nmemb, size_t size) av_malloc_attrib
 Non-inlined equivalent of av_mallocz_array(). More...
 
voidav_realloc (void *ptr, size_t size) 1(2)
 Allocate, reallocate, or free a block of memory. More...
 
av_warn_unused_result int av_reallocp (void *ptr, size_t size)
 Allocate, reallocate, or free a block of memory through a pointer to a pointer. More...
 
voidav_realloc_f (void *ptr, size_t nelem, size_t elsize)
 Allocate, reallocate, or free a block of memory. More...
 
voidav_realloc_array (void *ptr, size_t nmemb, size_t size)
 
int av_reallocp_array (void *ptr, size_t nmemb, size_t size)
 Allocate, reallocate, or free an array through a pointer to a pointer. More...
 
voidav_fast_realloc (void *ptr, unsigned int *size, size_t min_size)
 Reallocate the given buffer if it is not large enough, otherwise do nothing. More...
 
void av_fast_malloc (void *ptr, unsigned int *size, size_t min_size)
 Allocate a buffer, reusing the given one if large enough. More...
 
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. More...
 
void av_free (void *ptr)
 Free a memory block which has been allocated with a function of av_malloc() or av_realloc() family. More...
 
void av_freep (void *ptr)
 Free a memory block which has been allocated with a function of av_malloc() or av_realloc() family, and set the pointer pointing to it to NULL. More...
 
char * av_strdup (const char *s) av_malloc_attrib
 Duplicate a string. More...
 
char * av_strndup (const char *s, size_t len) av_malloc_attrib
 Duplicate a substring of a string. More...
 
voidav_memdup (const void *p, size_t size)
 Duplicate a buffer with av_malloc(). More...
 
void av_memcpy_backptr (uint8_t *dst, int back, int cnt)
 Overlapping memcpy() implementation. More...
 
void av_dynarray_add (void *tab_ptr, int *nb_ptr, void *elem)
 Add the pointer to an element to a dynamic array. More...
 
av_warn_unused_result int av_dynarray_add_nofree (void *tab_ptr, int *nb_ptr, void *elem)
 Add an element to a dynamic array. More...
 
voidav_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. More...
 
static int av_size_mult (size_t a, size_t b, size_t *r)
 Multiply two size_t values checking for overflow. More...
 
void av_max_alloc (size_t max)
 Set the maximum size that may be allocated in one block. More...
 

Detailed Description

Memory handling functions.

Definition in file mem.h.