Revision 792098c2 libavutil/common.h

View differences:

libavutil/common.h
63 63
#endif
64 64
#endif
65 65

  
66
#include "mem.h"
67

  
66 68
//rounded divison & shift
67 69
#define RSHIFT(a,b) ((a) > 0 ? ((a) + ((1<<(b))>>1))>>(b) : ((a) + ((1<<(b))>>1)-1)>>(b))
68 70
/* assume b>0 */
......
321 323
#define STOP_TIMER(id) {}
322 324
#endif
323 325

  
324
/* memory */
325

  
326
#ifdef __GNUC__
327
  #define DECLARE_ALIGNED(n,t,v)       t v __attribute__ ((aligned (n)))
328
#else
329
  #define DECLARE_ALIGNED(n,t,v)      __declspec(align(n)) t v
330
#endif
331

  
332
/* memory */
333

  
334
/**
335
 * Memory allocation of size byte with alignment suitable for all
336
 * memory accesses (including vectors if available on the
337
 * CPU). av_malloc(0) must return a non NULL pointer.
338
 */
339
void *av_malloc(unsigned int size);
340

  
341
/**
342
 * av_realloc semantics (same as glibc): if ptr is NULL and size > 0,
343
 * identical to malloc(size). If size is zero, it is identical to
344
 * free(ptr) and NULL is returned.
345
 */
346
void *av_realloc(void *ptr, unsigned int size);
347

  
348
/**
349
 * Free memory which has been allocated with av_malloc(z)() or av_realloc().
350
 * NOTE: ptr = NULL is explicetly allowed
351
 * Note2: it is recommended that you use av_freep() instead
352
 */
353
void av_free(void *ptr);
354

  
355
void *av_mallocz(unsigned int size);
356
char *av_strdup(const char *s);
357

  
358
/**
359
 * Frees memory and sets the pointer to NULL.
360
 * @param ptr pointer to the pointer which should be freed
361
 */
362
void av_freep(void *ptr);
363

  
364 326
#endif /* COMMON_H */

Also available in: Unified diff