yading@11
|
1 /*
|
yading@11
|
2 * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
|
yading@11
|
3 *
|
yading@11
|
4 * This file is part of FFmpeg.
|
yading@11
|
5 *
|
yading@11
|
6 * FFmpeg is free software; you can redistribute it and/or
|
yading@11
|
7 * modify it under the terms of the GNU Lesser General Public
|
yading@11
|
8 * License as published by the Free Software Foundation; either
|
yading@11
|
9 * version 2.1 of the License, or (at your option) any later version.
|
yading@11
|
10 *
|
yading@11
|
11 * FFmpeg is distributed in the hope that it will be useful,
|
yading@11
|
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
yading@11
|
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
yading@11
|
14 * Lesser General Public License for more details.
|
yading@11
|
15 *
|
yading@11
|
16 * You should have received a copy of the GNU Lesser General Public
|
yading@11
|
17 * License along with FFmpeg; if not, write to the Free Software
|
yading@11
|
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
yading@11
|
19 */
|
yading@11
|
20
|
yading@11
|
21 /**
|
yading@11
|
22 * @file
|
yading@11
|
23 * common internal and external API header
|
yading@11
|
24 */
|
yading@11
|
25
|
yading@11
|
26 #ifndef AVUTIL_COMMON_H
|
yading@11
|
27 #define AVUTIL_COMMON_H
|
yading@11
|
28
|
yading@11
|
29 #include <errno.h>
|
yading@11
|
30 #include <inttypes.h>
|
yading@11
|
31 #include <limits.h>
|
yading@11
|
32 #include <math.h>
|
yading@11
|
33 #include <stdio.h>
|
yading@11
|
34 #include <stdlib.h>
|
yading@11
|
35 #include <string.h>
|
yading@11
|
36
|
yading@11
|
37 #include "attributes.h"
|
yading@11
|
38 #include "version.h"
|
yading@11
|
39 #include "libavutil/avconfig.h"
|
yading@11
|
40
|
yading@11
|
41 #if AV_HAVE_BIGENDIAN
|
yading@11
|
42 # define AV_NE(be, le) (be)
|
yading@11
|
43 #else
|
yading@11
|
44 # define AV_NE(be, le) (le)
|
yading@11
|
45 #endif
|
yading@11
|
46
|
yading@11
|
47 //rounded division & shift
|
yading@11
|
48 #define RSHIFT(a,b) ((a) > 0 ? ((a) + ((1<<(b))>>1))>>(b) : ((a) + ((1<<(b))>>1)-1)>>(b))
|
yading@11
|
49 /* assume b>0 */
|
yading@11
|
50 #define ROUNDED_DIV(a,b) (((a)>0 ? (a) + ((b)>>1) : (a) - ((b)>>1))/(b))
|
yading@11
|
51 #define FFUDIV(a,b) (((a)>0 ?(a):(a)-(b)+1) / (b))
|
yading@11
|
52 #define FFUMOD(a,b) ((a)-(b)*FFUDIV(a,b))
|
yading@11
|
53 #define FFABS(a) ((a) >= 0 ? (a) : (-(a)))
|
yading@11
|
54 #define FFSIGN(a) ((a) > 0 ? 1 : -1)
|
yading@11
|
55
|
yading@11
|
56 #define FFMAX(a,b) ((a) > (b) ? (a) : (b))
|
yading@11
|
57 #define FFMAX3(a,b,c) FFMAX(FFMAX(a,b),c)
|
yading@11
|
58 #define FFMIN(a,b) ((a) > (b) ? (b) : (a))
|
yading@11
|
59 #define FFMIN3(a,b,c) FFMIN(FFMIN(a,b),c)
|
yading@11
|
60
|
yading@11
|
61 #define FFSWAP(type,a,b) do{type SWAP_tmp= b; b= a; a= SWAP_tmp;}while(0)
|
yading@11
|
62 #define FF_ARRAY_ELEMS(a) (sizeof(a) / sizeof((a)[0]))
|
yading@11
|
63 #define FFALIGN(x, a) (((x)+(a)-1)&~((a)-1))
|
yading@11
|
64
|
yading@11
|
65 /* misc math functions */
|
yading@11
|
66
|
yading@11
|
67 /**
|
yading@11
|
68 * Reverse the order of the bits of an 8-bits unsigned integer.
|
yading@11
|
69 */
|
yading@11
|
70 #if FF_API_AV_REVERSE
|
yading@11
|
71 extern attribute_deprecated const uint8_t av_reverse[256];
|
yading@11
|
72 #endif
|
yading@11
|
73
|
yading@11
|
74 #ifdef HAVE_AV_CONFIG_H
|
yading@11
|
75 # include "config.h"
|
yading@11
|
76 # include "intmath.h"
|
yading@11
|
77 #endif
|
yading@11
|
78
|
yading@11
|
79 /* Pull in unguarded fallback defines at the end of this file. */
|
yading@11
|
80 #include "common.h"
|
yading@11
|
81
|
yading@11
|
82 #ifndef av_log2
|
yading@11
|
83 av_const int av_log2(unsigned v);
|
yading@11
|
84 #endif
|
yading@11
|
85
|
yading@11
|
86 #ifndef av_log2_16bit
|
yading@11
|
87 av_const int av_log2_16bit(unsigned v);
|
yading@11
|
88 #endif
|
yading@11
|
89
|
yading@11
|
90 /**
|
yading@11
|
91 * Clip a signed integer value into the amin-amax range.
|
yading@11
|
92 * @param a value to clip
|
yading@11
|
93 * @param amin minimum value of the clip range
|
yading@11
|
94 * @param amax maximum value of the clip range
|
yading@11
|
95 * @return clipped value
|
yading@11
|
96 */
|
yading@11
|
97 static av_always_inline av_const int av_clip_c(int a, int amin, int amax)
|
yading@11
|
98 {
|
yading@11
|
99 #if defined(HAVE_AV_CONFIG_H) && defined(ASSERT_LEVEL) && ASSERT_LEVEL >= 2
|
yading@11
|
100 if (amin > amax) abort();
|
yading@11
|
101 #endif
|
yading@11
|
102 if (a < amin) return amin;
|
yading@11
|
103 else if (a > amax) return amax;
|
yading@11
|
104 else return a;
|
yading@11
|
105 }
|
yading@11
|
106
|
yading@11
|
107 /**
|
yading@11
|
108 * Clip a signed 64bit integer value into the amin-amax range.
|
yading@11
|
109 * @param a value to clip
|
yading@11
|
110 * @param amin minimum value of the clip range
|
yading@11
|
111 * @param amax maximum value of the clip range
|
yading@11
|
112 * @return clipped value
|
yading@11
|
113 */
|
yading@11
|
114 static av_always_inline av_const int64_t av_clip64_c(int64_t a, int64_t amin, int64_t amax)
|
yading@11
|
115 {
|
yading@11
|
116 #if defined(HAVE_AV_CONFIG_H) && defined(ASSERT_LEVEL) && ASSERT_LEVEL >= 2
|
yading@11
|
117 if (amin > amax) abort();
|
yading@11
|
118 #endif
|
yading@11
|
119 if (a < amin) return amin;
|
yading@11
|
120 else if (a > amax) return amax;
|
yading@11
|
121 else return a;
|
yading@11
|
122 }
|
yading@11
|
123
|
yading@11
|
124 /**
|
yading@11
|
125 * Clip a signed integer value into the 0-255 range.
|
yading@11
|
126 * @param a value to clip
|
yading@11
|
127 * @return clipped value
|
yading@11
|
128 */
|
yading@11
|
129 static av_always_inline av_const uint8_t av_clip_uint8_c(int a)
|
yading@11
|
130 {
|
yading@11
|
131 if (a&(~0xFF)) return (-a)>>31;
|
yading@11
|
132 else return a;
|
yading@11
|
133 }
|
yading@11
|
134
|
yading@11
|
135 /**
|
yading@11
|
136 * Clip a signed integer value into the -128,127 range.
|
yading@11
|
137 * @param a value to clip
|
yading@11
|
138 * @return clipped value
|
yading@11
|
139 */
|
yading@11
|
140 static av_always_inline av_const int8_t av_clip_int8_c(int a)
|
yading@11
|
141 {
|
yading@11
|
142 if ((a+0x80) & ~0xFF) return (a>>31) ^ 0x7F;
|
yading@11
|
143 else return a;
|
yading@11
|
144 }
|
yading@11
|
145
|
yading@11
|
146 /**
|
yading@11
|
147 * Clip a signed integer value into the 0-65535 range.
|
yading@11
|
148 * @param a value to clip
|
yading@11
|
149 * @return clipped value
|
yading@11
|
150 */
|
yading@11
|
151 static av_always_inline av_const uint16_t av_clip_uint16_c(int a)
|
yading@11
|
152 {
|
yading@11
|
153 if (a&(~0xFFFF)) return (-a)>>31;
|
yading@11
|
154 else return a;
|
yading@11
|
155 }
|
yading@11
|
156
|
yading@11
|
157 /**
|
yading@11
|
158 * Clip a signed integer value into the -32768,32767 range.
|
yading@11
|
159 * @param a value to clip
|
yading@11
|
160 * @return clipped value
|
yading@11
|
161 */
|
yading@11
|
162 static av_always_inline av_const int16_t av_clip_int16_c(int a)
|
yading@11
|
163 {
|
yading@11
|
164 if ((a+0x8000) & ~0xFFFF) return (a>>31) ^ 0x7FFF;
|
yading@11
|
165 else return a;
|
yading@11
|
166 }
|
yading@11
|
167
|
yading@11
|
168 /**
|
yading@11
|
169 * Clip a signed 64-bit integer value into the -2147483648,2147483647 range.
|
yading@11
|
170 * @param a value to clip
|
yading@11
|
171 * @return clipped value
|
yading@11
|
172 */
|
yading@11
|
173 static av_always_inline av_const int32_t av_clipl_int32_c(int64_t a)
|
yading@11
|
174 {
|
yading@11
|
175 if ((a+0x80000000u) & ~UINT64_C(0xFFFFFFFF)) return (a>>63) ^ 0x7FFFFFFF;
|
yading@11
|
176 else return (int32_t)a;
|
yading@11
|
177 }
|
yading@11
|
178
|
yading@11
|
179 /**
|
yading@11
|
180 * Clip a signed integer to an unsigned power of two range.
|
yading@11
|
181 * @param a value to clip
|
yading@11
|
182 * @param p bit position to clip at
|
yading@11
|
183 * @return clipped value
|
yading@11
|
184 */
|
yading@11
|
185 static av_always_inline av_const unsigned av_clip_uintp2_c(int a, int p)
|
yading@11
|
186 {
|
yading@11
|
187 if (a & ~((1<<p) - 1)) return -a >> 31 & ((1<<p) - 1);
|
yading@11
|
188 else return a;
|
yading@11
|
189 }
|
yading@11
|
190
|
yading@11
|
191 /**
|
yading@11
|
192 * Add two signed 32-bit values with saturation.
|
yading@11
|
193 *
|
yading@11
|
194 * @param a one value
|
yading@11
|
195 * @param b another value
|
yading@11
|
196 * @return sum with signed saturation
|
yading@11
|
197 */
|
yading@11
|
198 static av_always_inline int av_sat_add32_c(int a, int b)
|
yading@11
|
199 {
|
yading@11
|
200 return av_clipl_int32((int64_t)a + b);
|
yading@11
|
201 }
|
yading@11
|
202
|
yading@11
|
203 /**
|
yading@11
|
204 * Add a doubled value to another value with saturation at both stages.
|
yading@11
|
205 *
|
yading@11
|
206 * @param a first value
|
yading@11
|
207 * @param b value doubled and added to a
|
yading@11
|
208 * @return sum with signed saturation
|
yading@11
|
209 */
|
yading@11
|
210 static av_always_inline int av_sat_dadd32_c(int a, int b)
|
yading@11
|
211 {
|
yading@11
|
212 return av_sat_add32(a, av_sat_add32(b, b));
|
yading@11
|
213 }
|
yading@11
|
214
|
yading@11
|
215 /**
|
yading@11
|
216 * Clip a float value into the amin-amax range.
|
yading@11
|
217 * @param a value to clip
|
yading@11
|
218 * @param amin minimum value of the clip range
|
yading@11
|
219 * @param amax maximum value of the clip range
|
yading@11
|
220 * @return clipped value
|
yading@11
|
221 */
|
yading@11
|
222 static av_always_inline av_const float av_clipf_c(float a, float amin, float amax)
|
yading@11
|
223 {
|
yading@11
|
224 #if defined(HAVE_AV_CONFIG_H) && defined(ASSERT_LEVEL) && ASSERT_LEVEL >= 2
|
yading@11
|
225 if (amin > amax) abort();
|
yading@11
|
226 #endif
|
yading@11
|
227 if (a < amin) return amin;
|
yading@11
|
228 else if (a > amax) return amax;
|
yading@11
|
229 else return a;
|
yading@11
|
230 }
|
yading@11
|
231
|
yading@11
|
232 /**
|
yading@11
|
233 * Clip a double value into the amin-amax range.
|
yading@11
|
234 * @param a value to clip
|
yading@11
|
235 * @param amin minimum value of the clip range
|
yading@11
|
236 * @param amax maximum value of the clip range
|
yading@11
|
237 * @return clipped value
|
yading@11
|
238 */
|
yading@11
|
239 static av_always_inline av_const double av_clipd_c(double a, double amin, double amax)
|
yading@11
|
240 {
|
yading@11
|
241 #if defined(HAVE_AV_CONFIG_H) && defined(ASSERT_LEVEL) && ASSERT_LEVEL >= 2
|
yading@11
|
242 if (amin > amax) abort();
|
yading@11
|
243 #endif
|
yading@11
|
244 if (a < amin) return amin;
|
yading@11
|
245 else if (a > amax) return amax;
|
yading@11
|
246 else return a;
|
yading@11
|
247 }
|
yading@11
|
248
|
yading@11
|
249 /** Compute ceil(log2(x)).
|
yading@11
|
250 * @param x value used to compute ceil(log2(x))
|
yading@11
|
251 * @return computed ceiling of log2(x)
|
yading@11
|
252 */
|
yading@11
|
253 static av_always_inline av_const int av_ceil_log2_c(int x)
|
yading@11
|
254 {
|
yading@11
|
255 return av_log2((x - 1) << 1);
|
yading@11
|
256 }
|
yading@11
|
257
|
yading@11
|
258 /**
|
yading@11
|
259 * Count number of bits set to one in x
|
yading@11
|
260 * @param x value to count bits of
|
yading@11
|
261 * @return the number of bits set to one in x
|
yading@11
|
262 */
|
yading@11
|
263 static av_always_inline av_const int av_popcount_c(uint32_t x)
|
yading@11
|
264 {
|
yading@11
|
265 x -= (x >> 1) & 0x55555555;
|
yading@11
|
266 x = (x & 0x33333333) + ((x >> 2) & 0x33333333);
|
yading@11
|
267 x = (x + (x >> 4)) & 0x0F0F0F0F;
|
yading@11
|
268 x += x >> 8;
|
yading@11
|
269 return (x + (x >> 16)) & 0x3F;
|
yading@11
|
270 }
|
yading@11
|
271
|
yading@11
|
272 /**
|
yading@11
|
273 * Count number of bits set to one in x
|
yading@11
|
274 * @param x value to count bits of
|
yading@11
|
275 * @return the number of bits set to one in x
|
yading@11
|
276 */
|
yading@11
|
277 static av_always_inline av_const int av_popcount64_c(uint64_t x)
|
yading@11
|
278 {
|
yading@11
|
279 return av_popcount((uint32_t)x) + av_popcount(x >> 32);
|
yading@11
|
280 }
|
yading@11
|
281
|
yading@11
|
282 #define MKTAG(a,b,c,d) ((a) | ((b) << 8) | ((c) << 16) | ((unsigned)(d) << 24))
|
yading@11
|
283 #define MKBETAG(a,b,c,d) ((d) | ((c) << 8) | ((b) << 16) | ((unsigned)(a) << 24))
|
yading@11
|
284
|
yading@11
|
285 /**
|
yading@11
|
286 * Convert a UTF-8 character (up to 4 bytes) to its 32-bit UCS-4 encoded form.
|
yading@11
|
287 *
|
yading@11
|
288 * @param val Output value, must be an lvalue of type uint32_t.
|
yading@11
|
289 * @param GET_BYTE Expression reading one byte from the input.
|
yading@11
|
290 * Evaluated up to 7 times (4 for the currently
|
yading@11
|
291 * assigned Unicode range). With a memory buffer
|
yading@11
|
292 * input, this could be *ptr++.
|
yading@11
|
293 * @param ERROR Expression to be evaluated on invalid input,
|
yading@11
|
294 * typically a goto statement.
|
yading@11
|
295 */
|
yading@11
|
296 #define GET_UTF8(val, GET_BYTE, ERROR)\
|
yading@11
|
297 val= GET_BYTE;\
|
yading@11
|
298 {\
|
yading@11
|
299 uint32_t top = (val & 128) >> 1;\
|
yading@11
|
300 if ((val & 0xc0) == 0x80)\
|
yading@11
|
301 ERROR\
|
yading@11
|
302 while (val & top) {\
|
yading@11
|
303 int tmp= GET_BYTE - 128;\
|
yading@11
|
304 if(tmp>>6)\
|
yading@11
|
305 ERROR\
|
yading@11
|
306 val= (val<<6) + tmp;\
|
yading@11
|
307 top <<= 5;\
|
yading@11
|
308 }\
|
yading@11
|
309 val &= (top << 1) - 1;\
|
yading@11
|
310 }
|
yading@11
|
311
|
yading@11
|
312 /**
|
yading@11
|
313 * Convert a UTF-16 character (2 or 4 bytes) to its 32-bit UCS-4 encoded form.
|
yading@11
|
314 *
|
yading@11
|
315 * @param val Output value, must be an lvalue of type uint32_t.
|
yading@11
|
316 * @param GET_16BIT Expression returning two bytes of UTF-16 data converted
|
yading@11
|
317 * to native byte order. Evaluated one or two times.
|
yading@11
|
318 * @param ERROR Expression to be evaluated on invalid input,
|
yading@11
|
319 * typically a goto statement.
|
yading@11
|
320 */
|
yading@11
|
321 #define GET_UTF16(val, GET_16BIT, ERROR)\
|
yading@11
|
322 val = GET_16BIT;\
|
yading@11
|
323 {\
|
yading@11
|
324 unsigned int hi = val - 0xD800;\
|
yading@11
|
325 if (hi < 0x800) {\
|
yading@11
|
326 val = GET_16BIT - 0xDC00;\
|
yading@11
|
327 if (val > 0x3FFU || hi > 0x3FFU)\
|
yading@11
|
328 ERROR\
|
yading@11
|
329 val += (hi<<10) + 0x10000;\
|
yading@11
|
330 }\
|
yading@11
|
331 }\
|
yading@11
|
332
|
yading@11
|
333 /**
|
yading@11
|
334 * @def PUT_UTF8(val, tmp, PUT_BYTE)
|
yading@11
|
335 * Convert a 32-bit Unicode character to its UTF-8 encoded form (up to 4 bytes long).
|
yading@11
|
336 * @param val is an input-only argument and should be of type uint32_t. It holds
|
yading@11
|
337 * a UCS-4 encoded Unicode character that is to be converted to UTF-8. If
|
yading@11
|
338 * val is given as a function it is executed only once.
|
yading@11
|
339 * @param tmp is a temporary variable and should be of type uint8_t. It
|
yading@11
|
340 * represents an intermediate value during conversion that is to be
|
yading@11
|
341 * output by PUT_BYTE.
|
yading@11
|
342 * @param PUT_BYTE writes the converted UTF-8 bytes to any proper destination.
|
yading@11
|
343 * It could be a function or a statement, and uses tmp as the input byte.
|
yading@11
|
344 * For example, PUT_BYTE could be "*output++ = tmp;" PUT_BYTE will be
|
yading@11
|
345 * executed up to 4 times for values in the valid UTF-8 range and up to
|
yading@11
|
346 * 7 times in the general case, depending on the length of the converted
|
yading@11
|
347 * Unicode character.
|
yading@11
|
348 */
|
yading@11
|
349 #define PUT_UTF8(val, tmp, PUT_BYTE)\
|
yading@11
|
350 {\
|
yading@11
|
351 int bytes, shift;\
|
yading@11
|
352 uint32_t in = val;\
|
yading@11
|
353 if (in < 0x80) {\
|
yading@11
|
354 tmp = in;\
|
yading@11
|
355 PUT_BYTE\
|
yading@11
|
356 } else {\
|
yading@11
|
357 bytes = (av_log2(in) + 4) / 5;\
|
yading@11
|
358 shift = (bytes - 1) * 6;\
|
yading@11
|
359 tmp = (256 - (256 >> bytes)) | (in >> shift);\
|
yading@11
|
360 PUT_BYTE\
|
yading@11
|
361 while (shift >= 6) {\
|
yading@11
|
362 shift -= 6;\
|
yading@11
|
363 tmp = 0x80 | ((in >> shift) & 0x3f);\
|
yading@11
|
364 PUT_BYTE\
|
yading@11
|
365 }\
|
yading@11
|
366 }\
|
yading@11
|
367 }
|
yading@11
|
368
|
yading@11
|
369 /**
|
yading@11
|
370 * @def PUT_UTF16(val, tmp, PUT_16BIT)
|
yading@11
|
371 * Convert a 32-bit Unicode character to its UTF-16 encoded form (2 or 4 bytes).
|
yading@11
|
372 * @param val is an input-only argument and should be of type uint32_t. It holds
|
yading@11
|
373 * a UCS-4 encoded Unicode character that is to be converted to UTF-16. If
|
yading@11
|
374 * val is given as a function it is executed only once.
|
yading@11
|
375 * @param tmp is a temporary variable and should be of type uint16_t. It
|
yading@11
|
376 * represents an intermediate value during conversion that is to be
|
yading@11
|
377 * output by PUT_16BIT.
|
yading@11
|
378 * @param PUT_16BIT writes the converted UTF-16 data to any proper destination
|
yading@11
|
379 * in desired endianness. It could be a function or a statement, and uses tmp
|
yading@11
|
380 * as the input byte. For example, PUT_BYTE could be "*output++ = tmp;"
|
yading@11
|
381 * PUT_BYTE will be executed 1 or 2 times depending on input character.
|
yading@11
|
382 */
|
yading@11
|
383 #define PUT_UTF16(val, tmp, PUT_16BIT)\
|
yading@11
|
384 {\
|
yading@11
|
385 uint32_t in = val;\
|
yading@11
|
386 if (in < 0x10000) {\
|
yading@11
|
387 tmp = in;\
|
yading@11
|
388 PUT_16BIT\
|
yading@11
|
389 } else {\
|
yading@11
|
390 tmp = 0xD800 | ((in - 0x10000) >> 10);\
|
yading@11
|
391 PUT_16BIT\
|
yading@11
|
392 tmp = 0xDC00 | ((in - 0x10000) & 0x3FF);\
|
yading@11
|
393 PUT_16BIT\
|
yading@11
|
394 }\
|
yading@11
|
395 }\
|
yading@11
|
396
|
yading@11
|
397
|
yading@11
|
398
|
yading@11
|
399 #include "mem.h"
|
yading@11
|
400
|
yading@11
|
401 #ifdef HAVE_AV_CONFIG_H
|
yading@11
|
402 # include "internal.h"
|
yading@11
|
403 #endif /* HAVE_AV_CONFIG_H */
|
yading@11
|
404
|
yading@11
|
405 #endif /* AVUTIL_COMMON_H */
|
yading@11
|
406
|
yading@11
|
407 /*
|
yading@11
|
408 * The following definitions are outside the multiple inclusion guard
|
yading@11
|
409 * to ensure they are immediately available in intmath.h.
|
yading@11
|
410 */
|
yading@11
|
411
|
yading@11
|
412 #ifndef av_ceil_log2
|
yading@11
|
413 # define av_ceil_log2 av_ceil_log2_c
|
yading@11
|
414 #endif
|
yading@11
|
415 #ifndef av_clip
|
yading@11
|
416 # define av_clip av_clip_c
|
yading@11
|
417 #endif
|
yading@11
|
418 #ifndef av_clip64
|
yading@11
|
419 # define av_clip64 av_clip64_c
|
yading@11
|
420 #endif
|
yading@11
|
421 #ifndef av_clip_uint8
|
yading@11
|
422 # define av_clip_uint8 av_clip_uint8_c
|
yading@11
|
423 #endif
|
yading@11
|
424 #ifndef av_clip_int8
|
yading@11
|
425 # define av_clip_int8 av_clip_int8_c
|
yading@11
|
426 #endif
|
yading@11
|
427 #ifndef av_clip_uint16
|
yading@11
|
428 # define av_clip_uint16 av_clip_uint16_c
|
yading@11
|
429 #endif
|
yading@11
|
430 #ifndef av_clip_int16
|
yading@11
|
431 # define av_clip_int16 av_clip_int16_c
|
yading@11
|
432 #endif
|
yading@11
|
433 #ifndef av_clipl_int32
|
yading@11
|
434 # define av_clipl_int32 av_clipl_int32_c
|
yading@11
|
435 #endif
|
yading@11
|
436 #ifndef av_clip_uintp2
|
yading@11
|
437 # define av_clip_uintp2 av_clip_uintp2_c
|
yading@11
|
438 #endif
|
yading@11
|
439 #ifndef av_sat_add32
|
yading@11
|
440 # define av_sat_add32 av_sat_add32_c
|
yading@11
|
441 #endif
|
yading@11
|
442 #ifndef av_sat_dadd32
|
yading@11
|
443 # define av_sat_dadd32 av_sat_dadd32_c
|
yading@11
|
444 #endif
|
yading@11
|
445 #ifndef av_clipf
|
yading@11
|
446 # define av_clipf av_clipf_c
|
yading@11
|
447 #endif
|
yading@11
|
448 #ifndef av_clipd
|
yading@11
|
449 # define av_clipd av_clipd_c
|
yading@11
|
450 #endif
|
yading@11
|
451 #ifndef av_popcount
|
yading@11
|
452 # define av_popcount av_popcount_c
|
yading@11
|
453 #endif
|
yading@11
|
454 #ifndef av_popcount64
|
yading@11
|
455 # define av_popcount64 av_popcount64_c
|
yading@11
|
456 #endif
|