annotate internal.h @ 871:0d85cdd07648 libavutil

Move libm replacements to new header libm.h ffmpeg.c uses lrintf(), which is missing on some systems. Previously it picked up the replacement via libavutil/internal.h due to HAVE_AV_CONFIG_H being erroneously defined. Moving these replacements to a separate header enables ffmpeg.c to use them without being exposed to internal interfaces. This use of a non-public header is justified by the header in question not being part of the internal interface either. It should rather be considered as part of the build system, which is shared between the libraries and the applications. This header cannot be installed since the tested conditions depend on the compiler.
author mru
date Tue, 09 Mar 2010 15:10:23 +0000
parents 41db9ae634fe
children 4d9ad0ed07d0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
108
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 107
diff changeset
1 /*
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 107
diff changeset
2 * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 107
diff changeset
3 *
116
d76a36742464 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 114
diff changeset
4 * This file is part of FFmpeg.
d76a36742464 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 114
diff changeset
5 *
d76a36742464 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 114
diff changeset
6 * FFmpeg is free software; you can redistribute it and/or
108
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 107
diff changeset
7 * modify it under the terms of the GNU Lesser General Public
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 107
diff changeset
8 * License as published by the Free Software Foundation; either
116
d76a36742464 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 114
diff changeset
9 * version 2.1 of the License, or (at your option) any later version.
108
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 107
diff changeset
10 *
116
d76a36742464 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 114
diff changeset
11 * FFmpeg is distributed in the hope that it will be useful,
108
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 107
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 107
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 107
diff changeset
14 * Lesser General Public License for more details.
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 107
diff changeset
15 *
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 107
diff changeset
16 * You should have received a copy of the GNU Lesser General Public
116
d76a36742464 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 114
diff changeset
17 * License along with FFmpeg; if not, write to the Free Software
108
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 107
diff changeset
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 107
diff changeset
19 */
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 107
diff changeset
20
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
21 /**
642
70bdd5501662 Use full internal pathname in doxygen @file directives.
diego
parents: 640
diff changeset
22 * @file libavutil/internal.h
633
8c48a1b999a3 spelling/grammar/consistency review part I
diego
parents: 627
diff changeset
23 * common internal API header
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
24 */
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
25
567
bd4052d9050c Globally rename the header inclusion guard names.
stefano
parents: 549
diff changeset
26 #ifndef AVUTIL_INTERNAL_H
bd4052d9050c Globally rename the header inclusion guard names.
stefano
parents: 549
diff changeset
27 #define AVUTIL_INTERNAL_H
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
28
366
4d3f4347b718 move #include of system headers to top of file
mru
parents: 365
diff changeset
29 #if !defined(DEBUG) && !defined(NDEBUG)
4d3f4347b718 move #include of system headers to top of file
mru
parents: 365
diff changeset
30 # define NDEBUG
4d3f4347b718 move #include of system headers to top of file
mru
parents: 365
diff changeset
31 #endif
4d3f4347b718 move #include of system headers to top of file
mru
parents: 365
diff changeset
32
626
667697e17feb Add required limits.h header.
diego
parents: 625
diff changeset
33 #include <limits.h>
343
f21d1907d47c include all prerequisites in header files
mru
parents: 340
diff changeset
34 #include <stdint.h>
366
4d3f4347b718 move #include of system headers to top of file
mru
parents: 365
diff changeset
35 #include <stddef.h>
4d3f4347b718 move #include of system headers to top of file
mru
parents: 365
diff changeset
36 #include <assert.h>
639
19d5f5c17725 cosmetics: Move all #includes together at the beginning of the file.
diego
parents: 637
diff changeset
37 #include "config.h"
590
e9d89a89561a Use AV_GCC_VERSION_AT_LEAST() to simplify gcc version checks.
cehoyos
parents: 589
diff changeset
38 #include "common.h"
640
48119878cea3 Add required header mem.h, av_malloc and friends are used.
diego
parents: 639
diff changeset
39 #include "mem.h"
604
3c748945c2ad move timer related code in a new timer.h file
aurel
parents: 603
diff changeset
40 #include "timer.h"
343
f21d1907d47c include all prerequisites in header files
mru
parents: 340
diff changeset
41
374
8805bba131a9 Add attribute that forces alignment of stack to functions that need it.
ramiro
parents: 366
diff changeset
42 #ifndef attribute_align_arg
742
1091b120412e Icc 11.1 does not support attributes force_align_arg_pointer, alloc_size and cold.
cehoyos
parents: 736
diff changeset
43 #if (!defined(__ICC) || __ICC > 1110) && AV_GCC_VERSION_AT_LEAST(4,2)
374
8805bba131a9 Add attribute that forces alignment of stack to functions that need it.
ramiro
parents: 366
diff changeset
44 # define attribute_align_arg __attribute__((force_align_arg_pointer))
8805bba131a9 Add attribute that forces alignment of stack to functions that need it.
ramiro
parents: 366
diff changeset
45 #else
8805bba131a9 Add attribute that forces alignment of stack to functions that need it.
ramiro
parents: 366
diff changeset
46 # define attribute_align_arg
8805bba131a9 Add attribute that forces alignment of stack to functions that need it.
ramiro
parents: 366
diff changeset
47 #endif
8805bba131a9 Add attribute that forces alignment of stack to functions that need it.
ramiro
parents: 366
diff changeset
48 #endif
8805bba131a9 Add attribute that forces alignment of stack to functions that need it.
ramiro
parents: 366
diff changeset
49
154
b94a48efd763 move some __attribute__ macros to internal.h
mru
parents: 152
diff changeset
50 #ifndef attribute_used
590
e9d89a89561a Use AV_GCC_VERSION_AT_LEAST() to simplify gcc version checks.
cehoyos
parents: 589
diff changeset
51 #if AV_GCC_VERSION_AT_LEAST(3,1)
154
b94a48efd763 move some __attribute__ macros to internal.h
mru
parents: 152
diff changeset
52 # define attribute_used __attribute__((used))
b94a48efd763 move some __attribute__ macros to internal.h
mru
parents: 152
diff changeset
53 #else
b94a48efd763 move some __attribute__ macros to internal.h
mru
parents: 152
diff changeset
54 # define attribute_used
b94a48efd763 move some __attribute__ macros to internal.h
mru
parents: 152
diff changeset
55 #endif
b94a48efd763 move some __attribute__ macros to internal.h
mru
parents: 152
diff changeset
56 #endif
b94a48efd763 move some __attribute__ macros to internal.h
mru
parents: 152
diff changeset
57
825
610de397f0d6 Define av_alias if supported by compiler
mru
parents: 817
diff changeset
58 #ifndef av_alias
842
935e766af9a1 Gcc attribute may_alias is not supported (or silently ignored) by all supported compilers.
cehoyos
parents: 832
diff changeset
59 #if HAVE_ATTRIBUTE_MAY_ALIAS && (!defined(__ICC) || __ICC > 1110) && AV_GCC_VERSION_AT_LEAST(3,3)
825
610de397f0d6 Define av_alias if supported by compiler
mru
parents: 817
diff changeset
60 # define av_alias __attribute__((may_alias))
610de397f0d6 Define av_alias if supported by compiler
mru
parents: 817
diff changeset
61 #else
610de397f0d6 Define av_alias if supported by compiler
mru
parents: 817
diff changeset
62 # define av_alias
610de397f0d6 Define av_alias if supported by compiler
mru
parents: 817
diff changeset
63 #endif
610de397f0d6 Define av_alias if supported by compiler
mru
parents: 817
diff changeset
64 #endif
610de397f0d6 Define av_alias if supported by compiler
mru
parents: 817
diff changeset
65
155
5d849a1c0d4d move more macros to internal.h
mru
parents: 154
diff changeset
66 #ifndef INT16_MIN
774
1896cda0ecfc whitespace cosmetics, prettyprinting
diego
parents: 772
diff changeset
67 #define INT16_MIN (-0x7fff - 1)
155
5d849a1c0d4d move more macros to internal.h
mru
parents: 154
diff changeset
68 #endif
5d849a1c0d4d move more macros to internal.h
mru
parents: 154
diff changeset
69
5d849a1c0d4d move more macros to internal.h
mru
parents: 154
diff changeset
70 #ifndef INT16_MAX
5d849a1c0d4d move more macros to internal.h
mru
parents: 154
diff changeset
71 #define INT16_MAX 0x7fff
5d849a1c0d4d move more macros to internal.h
mru
parents: 154
diff changeset
72 #endif
5d849a1c0d4d move more macros to internal.h
mru
parents: 154
diff changeset
73
5d849a1c0d4d move more macros to internal.h
mru
parents: 154
diff changeset
74 #ifndef INT32_MIN
774
1896cda0ecfc whitespace cosmetics, prettyprinting
diego
parents: 772
diff changeset
75 #define INT32_MIN (-0x7fffffff - 1)
155
5d849a1c0d4d move more macros to internal.h
mru
parents: 154
diff changeset
76 #endif
5d849a1c0d4d move more macros to internal.h
mru
parents: 154
diff changeset
77
5d849a1c0d4d move more macros to internal.h
mru
parents: 154
diff changeset
78 #ifndef INT32_MAX
5d849a1c0d4d move more macros to internal.h
mru
parents: 154
diff changeset
79 #define INT32_MAX 0x7fffffff
5d849a1c0d4d move more macros to internal.h
mru
parents: 154
diff changeset
80 #endif
5d849a1c0d4d move more macros to internal.h
mru
parents: 154
diff changeset
81
5d849a1c0d4d move more macros to internal.h
mru
parents: 154
diff changeset
82 #ifndef UINT32_MAX
5d849a1c0d4d move more macros to internal.h
mru
parents: 154
diff changeset
83 #define UINT32_MAX 0xffffffff
5d849a1c0d4d move more macros to internal.h
mru
parents: 154
diff changeset
84 #endif
5d849a1c0d4d move more macros to internal.h
mru
parents: 154
diff changeset
85
5d849a1c0d4d move more macros to internal.h
mru
parents: 154
diff changeset
86 #ifndef INT64_MIN
774
1896cda0ecfc whitespace cosmetics, prettyprinting
diego
parents: 772
diff changeset
87 #define INT64_MIN (-0x7fffffffffffffffLL - 1)
155
5d849a1c0d4d move more macros to internal.h
mru
parents: 154
diff changeset
88 #endif
5d849a1c0d4d move more macros to internal.h
mru
parents: 154
diff changeset
89
5d849a1c0d4d move more macros to internal.h
mru
parents: 154
diff changeset
90 #ifndef INT64_MAX
156
69e5b350225c use the standard INT64_C() macro for 64-bit constants
mru
parents: 155
diff changeset
91 #define INT64_MAX INT64_C(9223372036854775807)
155
5d849a1c0d4d move more macros to internal.h
mru
parents: 154
diff changeset
92 #endif
5d849a1c0d4d move more macros to internal.h
mru
parents: 154
diff changeset
93
5d849a1c0d4d move more macros to internal.h
mru
parents: 154
diff changeset
94 #ifndef UINT64_MAX
156
69e5b350225c use the standard INT64_C() macro for 64-bit constants
mru
parents: 155
diff changeset
95 #define UINT64_MAX UINT64_C(0xFFFFFFFFFFFFFFFF)
155
5d849a1c0d4d move more macros to internal.h
mru
parents: 154
diff changeset
96 #endif
5d849a1c0d4d move more macros to internal.h
mru
parents: 154
diff changeset
97
5d849a1c0d4d move more macros to internal.h
mru
parents: 154
diff changeset
98 #ifndef INT_BIT
666
86393a769260 Correct, portable definition of INT_BIT
mru
parents: 642
diff changeset
99 # define INT_BIT (CHAR_BIT * sizeof(int))
155
5d849a1c0d4d move more macros to internal.h
mru
parents: 154
diff changeset
100 #endif
5d849a1c0d4d move more macros to internal.h
mru
parents: 154
diff changeset
101
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
102 #ifndef offsetof
774
1896cda0ecfc whitespace cosmetics, prettyprinting
diego
parents: 772
diff changeset
103 # define offsetof(T, F) ((unsigned int)((char *)&((T *)0)->F))
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
104 #endif
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
105
736
9c9a242f840c Add LABEL_MANGLE() to export label symbols from inside asm blocks.
ramiro
parents: 703
diff changeset
106 /* Use to export labels from asm. */
9c9a242f840c Add LABEL_MANGLE() to export label symbols from inside asm blocks.
ramiro
parents: 703
diff changeset
107 #define LABEL_MANGLE(a) EXTERN_PREFIX #a
9c9a242f840c Add LABEL_MANGLE() to export label symbols from inside asm blocks.
ramiro
parents: 703
diff changeset
108
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
109 // Use rip-relative addressing if compiling PIC code on x86-64.
603
880c6441f56a Change semantic of CONFIG_*, HAVE_* and ARCH_*.
aurel
parents: 600
diff changeset
110 #if ARCH_X86_64 && defined(PIC)
487
9df3dec6f840 Split MANGLE macro into LOCAL_MANGLE AND EXTERN_PREFIX parts
diego
parents: 481
diff changeset
111 # define LOCAL_MANGLE(a) #a "(%%rip)"
473
e841859035a6 Simplify MANGLE macro preprocessor condition checks.
diego
parents: 472
diff changeset
112 #else
487
9df3dec6f840 Split MANGLE macro into LOCAL_MANGLE AND EXTERN_PREFIX parts
diego
parents: 481
diff changeset
113 # define LOCAL_MANGLE(a) #a
138
e8767b5a5fdb indentation
mru
parents: 134
diff changeset
114 #endif
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
115
487
9df3dec6f840 Split MANGLE macro into LOCAL_MANGLE AND EXTERN_PREFIX parts
diego
parents: 481
diff changeset
116 #define MANGLE(a) EXTERN_PREFIX LOCAL_MANGLE(a)
9df3dec6f840 Split MANGLE macro into LOCAL_MANGLE AND EXTERN_PREFIX parts
diego
parents: 481
diff changeset
117
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
118 /* debug stuff */
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
119
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
120 /* dprintf macros */
138
e8767b5a5fdb indentation
mru
parents: 134
diff changeset
121 #ifdef DEBUG
285
c529dbdea4f7 Give context to dprintf
mbardiaux
parents: 283
diff changeset
122 # define dprintf(pctx, ...) av_log(pctx, AV_LOG_DEBUG, __VA_ARGS__)
138
e8767b5a5fdb indentation
mru
parents: 134
diff changeset
123 #else
285
c529dbdea4f7 Give context to dprintf
mbardiaux
parents: 283
diff changeset
124 # define dprintf(pctx, ...)
138
e8767b5a5fdb indentation
mru
parents: 134
diff changeset
125 #endif
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
126
138
e8767b5a5fdb indentation
mru
parents: 134
diff changeset
127 #define av_abort() do { av_log(NULL, AV_LOG_ERROR, "Abort at %s:%d\n", __FILE__, __LINE__); abort(); } while (0)
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
128
143
bec4c3d175da move comment
mru
parents: 139
diff changeset
129 /* math */
bec4c3d175da move comment
mru
parents: 139
diff changeset
130
603
880c6441f56a Change semantic of CONFIG_*, HAVE_* and ARCH_*.
aurel
parents: 600
diff changeset
131 #if ARCH_X86
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
132 #define MASK_ABS(mask, level)\
578
b20a4eb68876 Convert asm keyword into __asm__.
flameeyes
parents: 569
diff changeset
133 __asm__ volatile(\
461
62530c1673a0 Use cltd instead of cdq asm mnemonic, ICC and gcc support both, but
reimar
parents: 432
diff changeset
134 "cltd \n\t"\
13
aedb6bd881b9 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 12
diff changeset
135 "xorl %1, %0 \n\t"\
aedb6bd881b9 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 12
diff changeset
136 "subl %1, %0 \n\t"\
aedb6bd881b9 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 12
diff changeset
137 : "+a" (level), "=&d" (mask)\
aedb6bd881b9 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 12
diff changeset
138 );
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
139 #else
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
140 #define MASK_ABS(mask, level)\
774
1896cda0ecfc whitespace cosmetics, prettyprinting
diego
parents: 772
diff changeset
141 mask = level >> 31;\
1896cda0ecfc whitespace cosmetics, prettyprinting
diego
parents: 772
diff changeset
142 level = (level ^ mask) - mask;
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
143 #endif
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
144
637
683a6dbdd2b2 spelling/grammar/consistency review part III
diego
parents: 636
diff changeset
145 /* avoid usage of dangerous/inappropriate system functions */
359
b951d460bcb4 undef forbidden names before we #define them in case they are macros in libc
mru
parents: 355
diff changeset
146 #undef malloc
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
147 #define malloc please_use_av_malloc
359
b951d460bcb4 undef forbidden names before we #define them in case they are macros in libc
mru
parents: 355
diff changeset
148 #undef free
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
149 #define free please_use_av_free
359
b951d460bcb4 undef forbidden names before we #define them in case they are macros in libc
mru
parents: 355
diff changeset
150 #undef realloc
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
151 #define realloc please_use_av_realloc
359
b951d460bcb4 undef forbidden names before we #define them in case they are macros in libc
mru
parents: 355
diff changeset
152 #undef time
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
153 #define time time_is_forbidden_due_to_security_issues
359
b951d460bcb4 undef forbidden names before we #define them in case they are macros in libc
mru
parents: 355
diff changeset
154 #undef rand
703
b386bd0fad52 When warning about forbidden pseudo random number generation functions,
diego
parents: 675
diff changeset
155 #define rand rand_is_forbidden_due_to_state_trashing_use_av_lfg_get
359
b951d460bcb4 undef forbidden names before we #define them in case they are macros in libc
mru
parents: 355
diff changeset
156 #undef srand
703
b386bd0fad52 When warning about forbidden pseudo random number generation functions,
diego
parents: 675
diff changeset
157 #define srand srand_is_forbidden_due_to_state_trashing_use_av_lfg_init
359
b951d460bcb4 undef forbidden names before we #define them in case they are macros in libc
mru
parents: 355
diff changeset
158 #undef random
703
b386bd0fad52 When warning about forbidden pseudo random number generation functions,
diego
parents: 675
diff changeset
159 #define random random_is_forbidden_due_to_state_trashing_use_av_lfg_get
359
b951d460bcb4 undef forbidden names before we #define them in case they are macros in libc
mru
parents: 355
diff changeset
160 #undef sprintf
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
161 #define sprintf sprintf_is_forbidden_due_to_security_issues_use_snprintf
359
b951d460bcb4 undef forbidden names before we #define them in case they are macros in libc
mru
parents: 355
diff changeset
162 #undef strcat
349
bba4d248d13a more av_strl* adjustments
reimar
parents: 343
diff changeset
163 #define strcat strcat_is_forbidden_due_to_security_issues_use_av_strlcat
359
b951d460bcb4 undef forbidden names before we #define them in case they are macros in libc
mru
parents: 355
diff changeset
164 #undef exit
321
39cdbea1a8f1 prevent exit missuse
michael
parents: 285
diff changeset
165 #define exit exit_is_forbidden
569
165ae9e8f4fb Remove wrong and unnecessary condition. VHOOK filters are not special
stefano
parents: 567
diff changeset
166 #ifndef LIBAVFORMAT_BUILD
359
b951d460bcb4 undef forbidden names before we #define them in case they are macros in libc
mru
parents: 355
diff changeset
167 #undef printf
627
d4b82de2ce47 Disambiguate the macros used to disable fprintf/printf/puts functions.
diego
parents: 626
diff changeset
168 #define printf please_use_av_log_instead_of_printf
359
b951d460bcb4 undef forbidden names before we #define them in case they are macros in libc
mru
parents: 355
diff changeset
169 #undef fprintf
627
d4b82de2ce47 Disambiguate the macros used to disable fprintf/printf/puts functions.
diego
parents: 626
diff changeset
170 #define fprintf please_use_av_log_instead_of_fprintf
431
fa6c031f2a57 Disallow puts(), av_log() should be used instead.
diego
parents: 411
diff changeset
171 #undef puts
627
d4b82de2ce47 Disambiguate the macros used to disable fprintf/printf/puts functions.
diego
parents: 626
diff changeset
172 #define puts please_use_av_log_instead_of_puts
403
c22fbe7d64cf Generate a linking error if perror() is used in libav*
lucabe
parents: 402
diff changeset
173 #undef perror
c22fbe7d64cf Generate a linking error if perror() is used in libav*
lucabe
parents: 402
diff changeset
174 #define perror please_use_av_log_instead_of_perror
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
175 #endif
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
176
777
9b87c6b537bb Rename CHECKED_ALLOC(Z) to FF_ALLOC(Z)_OR_GOTO and add context and label
ramiro
parents: 775
diff changeset
177 #define FF_ALLOC_OR_GOTO(ctx, p, size, label)\
772
988be4b2fd0c Add CHECKED_ALLOC macro.
ramiro
parents: 753
diff changeset
178 {\
774
1896cda0ecfc whitespace cosmetics, prettyprinting
diego
parents: 772
diff changeset
179 p = av_malloc(size);\
1896cda0ecfc whitespace cosmetics, prettyprinting
diego
parents: 772
diff changeset
180 if (p == NULL && (size) != 0) {\
777
9b87c6b537bb Rename CHECKED_ALLOC(Z) to FF_ALLOC(Z)_OR_GOTO and add context and label
ramiro
parents: 775
diff changeset
181 av_log(ctx, AV_LOG_ERROR, "Cannot allocate memory.\n");\
9b87c6b537bb Rename CHECKED_ALLOC(Z) to FF_ALLOC(Z)_OR_GOTO and add context and label
ramiro
parents: 775
diff changeset
182 goto label;\
772
988be4b2fd0c Add CHECKED_ALLOC macro.
ramiro
parents: 753
diff changeset
183 }\
988be4b2fd0c Add CHECKED_ALLOC macro.
ramiro
parents: 753
diff changeset
184 }
988be4b2fd0c Add CHECKED_ALLOC macro.
ramiro
parents: 753
diff changeset
185
777
9b87c6b537bb Rename CHECKED_ALLOC(Z) to FF_ALLOC(Z)_OR_GOTO and add context and label
ramiro
parents: 775
diff changeset
186 #define FF_ALLOCZ_OR_GOTO(ctx, p, size, label)\
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
187 {\
774
1896cda0ecfc whitespace cosmetics, prettyprinting
diego
parents: 772
diff changeset
188 p = av_mallocz(size);\
1896cda0ecfc whitespace cosmetics, prettyprinting
diego
parents: 772
diff changeset
189 if (p == NULL && (size) != 0) {\
777
9b87c6b537bb Rename CHECKED_ALLOC(Z) to FF_ALLOC(Z)_OR_GOTO and add context and label
ramiro
parents: 775
diff changeset
190 av_log(ctx, AV_LOG_ERROR, "Cannot allocate memory.\n");\
9b87c6b537bb Rename CHECKED_ALLOC(Z) to FF_ALLOC(Z)_OR_GOTO and add context and label
ramiro
parents: 775
diff changeset
191 goto label;\
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
192 }\
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
193 }
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
194
871
0d85cdd07648 Move libm replacements to new header libm.h
mru
parents: 865
diff changeset
195 #include "libm.h"
600
198d4fd6541d Add truncf() replacement function.
ramiro
parents: 598
diff changeset
196
605
5d605aafa09d move NULL_IF_CONFIG_SMALL() definition into internal header
aurel
parents: 604
diff changeset
197 /**
636
c04808220c83 spelling/grammar/consistency review part II
diego
parents: 633
diff changeset
198 * Returns NULL if CONFIG_SMALL is true, otherwise the argument
c04808220c83 spelling/grammar/consistency review part II
diego
parents: 633
diff changeset
199 * without modification. Used to disable the definition of strings
605
5d605aafa09d move NULL_IF_CONFIG_SMALL() definition into internal header
aurel
parents: 604
diff changeset
200 * (for example AVCodec long_names).
5d605aafa09d move NULL_IF_CONFIG_SMALL() definition into internal header
aurel
parents: 604
diff changeset
201 */
5d605aafa09d move NULL_IF_CONFIG_SMALL() definition into internal header
aurel
parents: 604
diff changeset
202 #if CONFIG_SMALL
5d605aafa09d move NULL_IF_CONFIG_SMALL() definition into internal header
aurel
parents: 604
diff changeset
203 # define NULL_IF_CONFIG_SMALL(x) NULL
5d605aafa09d move NULL_IF_CONFIG_SMALL() definition into internal header
aurel
parents: 604
diff changeset
204 #else
5d605aafa09d move NULL_IF_CONFIG_SMALL() definition into internal header
aurel
parents: 604
diff changeset
205 # define NULL_IF_CONFIG_SMALL(x) x
5d605aafa09d move NULL_IF_CONFIG_SMALL() definition into internal header
aurel
parents: 604
diff changeset
206 #endif
5d605aafa09d move NULL_IF_CONFIG_SMALL() definition into internal header
aurel
parents: 604
diff changeset
207
567
bd4052d9050c Globally rename the header inclusion guard names.
stefano
parents: 549
diff changeset
208 #endif /* AVUTIL_INTERNAL_H */