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