Revision 792098c2

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 */
libavutil/mem.h
1
/*
2
 * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
3
 *
4
 * This file is part of FFmpeg.
5
 *
6
 * FFmpeg is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU Lesser General Public
8
 * License as published by the Free Software Foundation; either
9
 * version 2.1 of the License, or (at your option) any later version.
10
 *
11
 * FFmpeg is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
 * Lesser General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU Lesser General Public
17
 * License along with FFmpeg; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
 */
20

  
21
/**
22
 * @file mem.h
23
 * Memory handling functions.
24
 */
25

  
26
#ifndef AV_MEM_H
27
#define AV_MEM_H
28

  
29
#ifdef __GNUC__
30
  #define DECLARE_ALIGNED(n,t,v)       t v __attribute__ ((aligned (n)))
31
#else
32
  #define DECLARE_ALIGNED(n,t,v)      __declspec(align(n)) t v
33
#endif
34

  
35
/**
36
 * Memory allocation of size byte with alignment suitable for all
37
 * memory accesses (including vectors if available on the
38
 * CPU). av_malloc(0) must return a non NULL pointer.
39
 */
40
void *av_malloc(unsigned int size);
41

  
42
/**
43
 * av_realloc semantics (same as glibc): if ptr is NULL and size > 0,
44
 * identical to malloc(size). If size is zero, it is identical to
45
 * free(ptr) and NULL is returned.
46
 */
47
void *av_realloc(void *ptr, unsigned int size);
48

  
49
/**
50
 * Free memory which has been allocated with av_malloc(z)() or av_realloc().
51
 * NOTE: ptr = NULL is explicetly allowed
52
 * Note2: it is recommended that you use av_freep() instead
53
 */
54
void av_free(void *ptr);
55

  
56
void *av_mallocz(unsigned int size);
57
char *av_strdup(const char *s);
58

  
59
/**
60
 * Frees memory and sets the pointer to NULL.
61
 * @param ptr pointer to the pointer which should be freed
62
 */
63
void av_freep(void *ptr);
64

  
65
#endif /* AV_MEM_H */

Also available in: Unified diff