diff options
Diffstat (limited to 'apps/codecs/libwmapro/libavutil/common.h')
-rw-r--r-- | apps/codecs/libwmapro/libavutil/common.h | 298 |
1 files changed, 0 insertions, 298 deletions
diff --git a/apps/codecs/libwmapro/libavutil/common.h b/apps/codecs/libwmapro/libavutil/common.h deleted file mode 100644 index 48732a29dd..0000000000 --- a/apps/codecs/libwmapro/libavutil/common.h +++ /dev/null | |||
@@ -1,298 +0,0 @@ | |||
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 libavutil/common.h | ||
23 | * common internal and external API header | ||
24 | */ | ||
25 | |||
26 | #ifndef AVUTIL_COMMON_H | ||
27 | #define AVUTIL_COMMON_H | ||
28 | |||
29 | #include <ctype.h> | ||
30 | #include <errno.h> | ||
31 | #include <inttypes.h> | ||
32 | #include <limits.h> | ||
33 | #include <math.h> | ||
34 | #include <stdio.h> | ||
35 | #include <stdlib.h> | ||
36 | #include <string.h> | ||
37 | #include "attributes.h" | ||
38 | |||
39 | //rounded division & shift | ||
40 | #define RSHIFT(a,b) ((a) > 0 ? ((a) + ((1<<(b))>>1))>>(b) : ((a) + ((1<<(b))>>1)-1)>>(b)) | ||
41 | /* assume b>0 */ | ||
42 | #define ROUNDED_DIV(a,b) (((a)>0 ? (a) + ((b)>>1) : (a) - ((b)>>1))/(b)) | ||
43 | #define FFABS(a) ((a) >= 0 ? (a) : (-(a))) | ||
44 | #define FFSIGN(a) ((a) > 0 ? 1 : -1) | ||
45 | |||
46 | #define FFMAX(a,b) ((a) > (b) ? (a) : (b)) | ||
47 | #define FFMAX3(a,b,c) FFMAX(FFMAX(a,b),c) | ||
48 | #define FFMIN(a,b) ((a) > (b) ? (b) : (a)) | ||
49 | #define FFMIN3(a,b,c) FFMIN(FFMIN(a,b),c) | ||
50 | |||
51 | #define FFSWAP(type,a,b) do{type SWAP_tmp= b; b= a; a= SWAP_tmp;}while(0) | ||
52 | #define FF_ARRAY_ELEMS(a) (sizeof(a) / sizeof((a)[0])) | ||
53 | #define FFALIGN(x, a) (((x)+(a)-1)&~((a)-1)) | ||
54 | |||
55 | /* misc math functions */ | ||
56 | extern const uint8_t ff_log2_tab[256]; | ||
57 | |||
58 | extern const uint8_t av_reverse[256]; | ||
59 | |||
60 | static inline av_const int av_log2_c(unsigned int v) | ||
61 | { | ||
62 | int n = 0; | ||
63 | if (v & 0xffff0000) { | ||
64 | v >>= 16; | ||
65 | n += 16; | ||
66 | } | ||
67 | if (v & 0xff00) { | ||
68 | v >>= 8; | ||
69 | n += 8; | ||
70 | } | ||
71 | n += ff_log2_tab[v]; | ||
72 | |||
73 | return n; | ||
74 | } | ||
75 | |||
76 | static inline av_const int av_log2_16bit_c(unsigned int v) | ||
77 | { | ||
78 | int n = 0; | ||
79 | if (v & 0xff00) { | ||
80 | v >>= 8; | ||
81 | n += 8; | ||
82 | } | ||
83 | n += ff_log2_tab[v]; | ||
84 | |||
85 | return n; | ||
86 | } | ||
87 | |||
88 | #ifdef HAVE_AV_CONFIG_H | ||
89 | # include "config.h" | ||
90 | # include "intmath.h" | ||
91 | #endif | ||
92 | |||
93 | #ifndef av_log2 | ||
94 | # define av_log2 av_log2_c | ||
95 | #endif | ||
96 | #ifndef av_log2_16bit | ||
97 | # define av_log2_16bit av_log2_16bit_c | ||
98 | #endif | ||
99 | |||
100 | /** | ||
101 | * Clips a signed integer value into the amin-amax range. | ||
102 | * @param a value to clip | ||
103 | * @param amin minimum value of the clip range | ||
104 | * @param amax maximum value of the clip range | ||
105 | * @return clipped value | ||
106 | */ | ||
107 | static inline av_const int av_clip(int a, int amin, int amax) | ||
108 | { | ||
109 | if (a < amin) return amin; | ||
110 | else if (a > amax) return amax; | ||
111 | else return a; | ||
112 | } | ||
113 | |||
114 | /** | ||
115 | * Clips a signed integer value into the 0-255 range. | ||
116 | * @param a value to clip | ||
117 | * @return clipped value | ||
118 | */ | ||
119 | static inline av_const uint8_t av_clip_uint8(int a) | ||
120 | { | ||
121 | if (a&(~255)) return (-a)>>31; | ||
122 | else return a; | ||
123 | } | ||
124 | |||
125 | /** | ||
126 | * Clips a signed integer value into the 0-65535 range. | ||
127 | * @param a value to clip | ||
128 | * @return clipped value | ||
129 | */ | ||
130 | static inline av_const uint16_t av_clip_uint16(int a) | ||
131 | { | ||
132 | if (a&(~65535)) return (-a)>>31; | ||
133 | else return a; | ||
134 | } | ||
135 | |||
136 | /** | ||
137 | * Clips a signed integer value into the -32768,32767 range. | ||
138 | * @param a value to clip | ||
139 | * @return clipped value | ||
140 | */ | ||
141 | static inline av_const int16_t av_clip_int16(int a) | ||
142 | { | ||
143 | if ((a+32768) & ~65535) return (a>>31) ^ 32767; | ||
144 | else return a; | ||
145 | } | ||
146 | |||
147 | /** | ||
148 | * Clips a float value into the amin-amax range. | ||
149 | * @param a value to clip | ||
150 | * @param amin minimum value of the clip range | ||
151 | * @param amax maximum value of the clip range | ||
152 | * @return clipped value | ||
153 | */ | ||
154 | static inline av_const float av_clipf(float a, float amin, float amax) | ||
155 | { | ||
156 | if (a < amin) return amin; | ||
157 | else if (a > amax) return amax; | ||
158 | else return a; | ||
159 | } | ||
160 | |||
161 | /** Computes ceil(log2(x)). | ||
162 | * @param x value used to compute ceil(log2(x)) | ||
163 | * @return computed ceiling of log2(x) | ||
164 | */ | ||
165 | static inline av_const int av_ceil_log2(int x) | ||
166 | { | ||
167 | return av_log2((x - 1) << 1); | ||
168 | } | ||
169 | |||
170 | #define MKTAG(a,b,c,d) (a | (b << 8) | (c << 16) | (d << 24)) | ||
171 | #define MKBETAG(a,b,c,d) (d | (c << 8) | (b << 16) | (a << 24)) | ||
172 | |||
173 | /*! | ||
174 | * \def GET_UTF8(val, GET_BYTE, ERROR) | ||
175 | * Converts a UTF-8 character (up to 4 bytes long) to its 32-bit UCS-4 encoded form | ||
176 | * \param val is the output and should be of type uint32_t. It holds the converted | ||
177 | * UCS-4 character and should be a left value. | ||
178 | * \param GET_BYTE gets UTF-8 encoded bytes from any proper source. It can be | ||
179 | * a function or a statement whose return value or evaluated value is of type | ||
180 | * uint8_t. It will be executed up to 4 times for values in the valid UTF-8 range, | ||
181 | * and up to 7 times in the general case. | ||
182 | * \param ERROR action that should be taken when an invalid UTF-8 byte is returned | ||
183 | * from GET_BYTE. It should be a statement that jumps out of the macro, | ||
184 | * like exit(), goto, return, break, or continue. | ||
185 | */ | ||
186 | #define GET_UTF8(val, GET_BYTE, ERROR)\ | ||
187 | val= GET_BYTE;\ | ||
188 | {\ | ||
189 | int ones= 7 - av_log2(val ^ 255);\ | ||
190 | if(ones==1)\ | ||
191 | ERROR\ | ||
192 | val&= 127>>ones;\ | ||
193 | while(--ones > 0){\ | ||
194 | int tmp= GET_BYTE - 128;\ | ||
195 | if(tmp>>6)\ | ||
196 | ERROR\ | ||
197 | val= (val<<6) + tmp;\ | ||
198 | }\ | ||
199 | } | ||
200 | |||
201 | /*! | ||
202 | * \def GET_UTF16(val, GET_16BIT, ERROR) | ||
203 | * Converts a UTF-16 character (2 or 4 bytes) to its 32-bit UCS-4 encoded form | ||
204 | * \param val is the output and should be of type uint32_t. It holds the converted | ||
205 | * UCS-4 character and should be a left value. | ||
206 | * \param GET_16BIT gets two bytes of UTF-16 encoded data converted to native endianness. | ||
207 | * It can be a function or a statement whose return value or evaluated value is of type | ||
208 | * uint16_t. It will be executed up to 2 times. | ||
209 | * \param ERROR action that should be taken when an invalid UTF-16 surrogate is | ||
210 | * returned from GET_BYTE. It should be a statement that jumps out of the macro, | ||
211 | * like exit(), goto, return, break, or continue. | ||
212 | */ | ||
213 | #define GET_UTF16(val, GET_16BIT, ERROR)\ | ||
214 | val = GET_16BIT;\ | ||
215 | {\ | ||
216 | unsigned int hi = val - 0xD800;\ | ||
217 | if (hi < 0x800) {\ | ||
218 | val = GET_16BIT - 0xDC00;\ | ||
219 | if (val > 0x3FFU || hi > 0x3FFU)\ | ||
220 | ERROR\ | ||
221 | val += (hi<<10) + 0x10000;\ | ||
222 | }\ | ||
223 | }\ | ||
224 | |||
225 | /*! | ||
226 | * \def PUT_UTF8(val, tmp, PUT_BYTE) | ||
227 | * Converts a 32-bit Unicode character to its UTF-8 encoded form (up to 4 bytes long). | ||
228 | * \param val is an input-only argument and should be of type uint32_t. It holds | ||
229 | * a UCS-4 encoded Unicode character that is to be converted to UTF-8. If | ||
230 | * val is given as a function it is executed only once. | ||
231 | * \param tmp is a temporary variable and should be of type uint8_t. It | ||
232 | * represents an intermediate value during conversion that is to be | ||
233 | * output by PUT_BYTE. | ||
234 | * \param PUT_BYTE writes the converted UTF-8 bytes to any proper destination. | ||
235 | * It could be a function or a statement, and uses tmp as the input byte. | ||
236 | * For example, PUT_BYTE could be "*output++ = tmp;" PUT_BYTE will be | ||
237 | * executed up to 4 times for values in the valid UTF-8 range and up to | ||
238 | * 7 times in the general case, depending on the length of the converted | ||
239 | * Unicode character. | ||
240 | */ | ||
241 | #define PUT_UTF8(val, tmp, PUT_BYTE)\ | ||
242 | {\ | ||
243 | int bytes, shift;\ | ||
244 | uint32_t in = val;\ | ||
245 | if (in < 0x80) {\ | ||
246 | tmp = in;\ | ||
247 | PUT_BYTE\ | ||
248 | } else {\ | ||
249 | bytes = (av_log2(in) + 4) / 5;\ | ||
250 | shift = (bytes - 1) * 6;\ | ||
251 | tmp = (256 - (256 >> bytes)) | (in >> shift);\ | ||
252 | PUT_BYTE\ | ||
253 | while (shift >= 6) {\ | ||
254 | shift -= 6;\ | ||
255 | tmp = 0x80 | ((in >> shift) & 0x3f);\ | ||
256 | PUT_BYTE\ | ||
257 | }\ | ||
258 | }\ | ||
259 | } | ||
260 | |||
261 | /*! | ||
262 | * \def PUT_UTF16(val, tmp, PUT_16BIT) | ||
263 | * Converts a 32-bit Unicode character to its UTF-16 encoded form (2 or 4 bytes). | ||
264 | * \param val is an input-only argument and should be of type uint32_t. It holds | ||
265 | * a UCS-4 encoded Unicode character that is to be converted to UTF-16. If | ||
266 | * val is given as a function it is executed only once. | ||
267 | * \param tmp is a temporary variable and should be of type uint16_t. It | ||
268 | * represents an intermediate value during conversion that is to be | ||
269 | * output by PUT_16BIT. | ||
270 | * \param PUT_16BIT writes the converted UTF-16 data to any proper destination | ||
271 | * in desired endianness. It could be a function or a statement, and uses tmp | ||
272 | * as the input byte. For example, PUT_BYTE could be "*output++ = tmp;" | ||
273 | * PUT_BYTE will be executed 1 or 2 times depending on input character. | ||
274 | */ | ||
275 | #define PUT_UTF16(val, tmp, PUT_16BIT)\ | ||
276 | {\ | ||
277 | uint32_t in = val;\ | ||
278 | if (in < 0x10000) {\ | ||
279 | tmp = in;\ | ||
280 | PUT_16BIT\ | ||
281 | } else {\ | ||
282 | tmp = 0xD800 | ((in - 0x10000) >> 10);\ | ||
283 | PUT_16BIT\ | ||
284 | tmp = 0xDC00 | ((in - 0x10000) & 0x3FF);\ | ||
285 | PUT_16BIT\ | ||
286 | }\ | ||
287 | }\ | ||
288 | |||
289 | |||
290 | |||
291 | #include "mem.h" | ||
292 | |||
293 | //#ifdef HAVE_AV_CONFIG_H | ||
294 | #if 1 | ||
295 | # include "internal.h" | ||
296 | #endif /* HAVE_AV_CONFIG_H */ | ||
297 | |||
298 | #endif /* AVUTIL_COMMON_H */ | ||