annotate common.h @ 992:a13125b5be3a libavutil

bswap: change ME to NE in macro names Other parts of FFmpeg use NE (native endian) rather than ME (machine). This makes it consistent.
author mru
date Sat, 10 Jul 2010 22:09:01 +0000
parents a3c26f53e6fa
children 3aefb6df1f86
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: 104
diff changeset
1 /*
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 104
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: 104
diff changeset
3 *
116
d76a36742464 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 113
diff changeset
4 * This file is part of FFmpeg.
d76a36742464 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 113
diff changeset
5 *
d76a36742464 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 113
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: 104
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: 104
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: 113
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: 104
diff changeset
10 *
116
d76a36742464 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 113
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: 104
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: 104
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: 104
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: 104
diff changeset
15 *
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 104
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: 113
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: 104
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: 104
diff changeset
19 */
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 104
diff changeset
20
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
21 /**
899
0795a743bda1 Remove explicit filename from Doxygen @file commands.
diego
parents: 870
diff changeset
22 * @file
466
f4fd038fcb58 misc spelling fixes
diego
parents: 452
diff changeset
23 * common internal and external 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: 519
diff changeset
26 #ifndef AVUTIL_COMMON_H
bd4052d9050c Globally rename the header inclusion guard names.
stefano
parents: 519
diff changeset
27 #define AVUTIL_COMMON_H
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
28
630
fb04e2fc189c Reorganize header #includes: Unconditionally #include standard C headers,
diego
parents: 619
diff changeset
29 #include <ctype.h>
fb04e2fc189c Reorganize header #includes: Unconditionally #include standard C headers,
diego
parents: 619
diff changeset
30 #include <errno.h>
158
aa83c1df5a69 merge #ifdef HAVE_AV_CONFIG_H sections
mru
parents: 157
diff changeset
31 #include <inttypes.h>
630
fb04e2fc189c Reorganize header #includes: Unconditionally #include standard C headers,
diego
parents: 619
diff changeset
32 #include <limits.h>
fb04e2fc189c Reorganize header #includes: Unconditionally #include standard C headers,
diego
parents: 619
diff changeset
33 #include <math.h>
fb04e2fc189c Reorganize header #includes: Unconditionally #include standard C headers,
diego
parents: 619
diff changeset
34 #include <stdio.h>
fb04e2fc189c Reorganize header #includes: Unconditionally #include standard C headers,
diego
parents: 619
diff changeset
35 #include <stdlib.h>
fb04e2fc189c Reorganize header #includes: Unconditionally #include standard C headers,
diego
parents: 619
diff changeset
36 #include <string.h>
866
efba70214ef1 Move gcc attribute macros to new header libavutil/attributes.h
mru
parents: 848
diff changeset
37 #include "attributes.h"
159
039198e96ee2 rename always_inline to av_always_inline and move to common.h
mru
parents: 158
diff changeset
38
633
8c48a1b999a3 spelling/grammar/consistency review part I
diego
parents: 630
diff changeset
39 //rounded division & shift
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
40 #define RSHIFT(a,b) ((a) > 0 ? ((a) + ((1<<(b))>>1))>>(b) : ((a) + ((1<<(b))>>1)-1)>>(b))
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
41 /* assume b>0 */
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
42 #define ROUNDED_DIV(a,b) (((a)>0 ? (a) + ((b)>>1) : (a) - ((b)>>1))/(b))
120
f42a6347df1d Rename ABS macro to FFABS.
diego
parents: 119
diff changeset
43 #define FFABS(a) ((a) >= 0 ? (a) : (-(a)))
119
7d5463d9530a Rename SIGN macro to FFSIGN to avoid clashes with system headers.
diego
parents: 117
diff changeset
44 #define FFSIGN(a) ((a) > 0 ? 1 : -1)
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
45
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
46 #define FFMAX(a,b) ((a) > (b) ? (a) : (b))
498
2ae1cc70b1c4 Implement FFMAX3(a,b,c) - maximum over three arguments.
voroshil
parents: 496
diff changeset
47 #define FFMAX3(a,b,c) FFMAX(FFMAX(a,b),c)
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
48 #define FFMIN(a,b) ((a) > (b) ? (b) : (a))
501
b35354bd6b57 add FFMIN3
bcoudurier
parents: 498
diff changeset
49 #define FFMIN3(a,b,c) FFMIN(FFMIN(a,b),c)
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
50
126
28a98fbd027f Rename SWAP macro to FFSWAP.
diego
parents: 125
diff changeset
51 #define FFSWAP(type,a,b) do{type SWAP_tmp= b; b= a; a= SWAP_tmp;}while(0)
576
481638df1e8b Add a macro to get the number of elements in a table.
benoit
parents: 567
diff changeset
52 #define FF_ARRAY_ELEMS(a) (sizeof(a) / sizeof((a)[0]))
735
92180cbccda6 Move ALIGN macro to libavutil/common.h and use it in various places
conrad
parents: 668
diff changeset
53 #define FFALIGN(x, a) (((x)+(a)-1)&~((a)-1))
99
michael
parents: 89
diff changeset
54
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
55 /* misc math functions */
157
d96dae9bdcaa fix mingw shared build, and get rid of FF_IMPORT_ATTR
mru
parents: 156
diff changeset
56 extern const uint8_t ff_log2_tab[256];
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
57
784
fd7a78f003e7 Move ff_reverse in libavcodec to av_reverse in libavutil.
cehoyos
parents: 780
diff changeset
58 extern const uint8_t av_reverse[256];
fd7a78f003e7 Move ff_reverse in libavcodec to av_reverse in libavutil.
cehoyos
parents: 780
diff changeset
59
870
3790c30fc3ad Fix build on configurations without fast av_log2()
mru
parents: 868
diff changeset
60 static inline av_const int av_log2_c(unsigned int v)
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
61 {
443
864980df1385 Merge declaration and initialization.
michael
parents: 392
diff changeset
62 int n = 0;
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
63 if (v & 0xffff0000) {
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
64 v >>= 16;
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
65 n += 16;
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
66 }
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
67 if (v & 0xff00) {
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
68 v >>= 8;
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
69 n += 8;
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
70 }
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
71 n += ff_log2_tab[v];
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
72
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
73 return n;
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
74 }
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
75
870
3790c30fc3ad Fix build on configurations without fast av_log2()
mru
parents: 868
diff changeset
76 static inline av_const int av_log2_16bit_c(unsigned int v)
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
77 {
443
864980df1385 Merge declaration and initialization.
michael
parents: 392
diff changeset
78 int n = 0;
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
79 if (v & 0xff00) {
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
80 v >>= 8;
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
81 n += 8;
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
82 }
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
83 n += ff_log2_tab[v];
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
84
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
85 return n;
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
86 }
870
3790c30fc3ad Fix build on configurations without fast av_log2()
mru
parents: 868
diff changeset
87
3790c30fc3ad Fix build on configurations without fast av_log2()
mru
parents: 868
diff changeset
88 #ifdef HAVE_AV_CONFIG_H
3790c30fc3ad Fix build on configurations without fast av_log2()
mru
parents: 868
diff changeset
89 # include "config.h"
3790c30fc3ad Fix build on configurations without fast av_log2()
mru
parents: 868
diff changeset
90 # include "intmath.h"
3790c30fc3ad Fix build on configurations without fast av_log2()
mru
parents: 868
diff changeset
91 #endif
3790c30fc3ad Fix build on configurations without fast av_log2()
mru
parents: 868
diff changeset
92
978
009d2ce554b2 Remove macro duplication between common.h and intmath.h
mru
parents: 961
diff changeset
93 /* Pull in unguarded fallback defines at the end of this file. */
009d2ce554b2 Remove macro duplication between common.h and intmath.h
mru
parents: 961
diff changeset
94 #include "common.h"
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
95
39
c25cab283094 document clip functions
aurel
parents: 38
diff changeset
96 /**
957
e34e8d654ded Fix grammar errors in documentation
mru
parents: 950
diff changeset
97 * Clip a signed integer value into the amin-amax range.
39
c25cab283094 document clip functions
aurel
parents: 38
diff changeset
98 * @param a value to clip
c25cab283094 document clip functions
aurel
parents: 38
diff changeset
99 * @param amin minimum value of the clip range
c25cab283094 document clip functions
aurel
parents: 38
diff changeset
100 * @param amax maximum value of the clip range
151
d6f1b361d2c2 spelling cosmetics: cliped --> clipped
diego
parents: 147
diff changeset
101 * @return clipped value
39
c25cab283094 document clip functions
aurel
parents: 38
diff changeset
102 */
979
a3c26f53e6fa Allow arch-overrides for all common.h clip and log2 functions
mru
parents: 978
diff changeset
103 static inline av_const int av_clip_c(int a, int amin, int amax)
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
104 {
452
4b2cd7e98d58 prettyprinting cosmetics
diego
parents: 443
diff changeset
105 if (a < amin) return amin;
63
e5a312df8a07 cosmetic
michael
parents: 62
diff changeset
106 else if (a > amax) return amax;
e5a312df8a07 cosmetic
michael
parents: 62
diff changeset
107 else return a;
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
108 }
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
109
39
c25cab283094 document clip functions
aurel
parents: 38
diff changeset
110 /**
957
e34e8d654ded Fix grammar errors in documentation
mru
parents: 950
diff changeset
111 * Clip a signed integer value into the 0-255 range.
39
c25cab283094 document clip functions
aurel
parents: 38
diff changeset
112 * @param a value to clip
151
d6f1b361d2c2 spelling cosmetics: cliped --> clipped
diego
parents: 147
diff changeset
113 * @return clipped value
39
c25cab283094 document clip functions
aurel
parents: 38
diff changeset
114 */
979
a3c26f53e6fa Allow arch-overrides for all common.h clip and log2 functions
mru
parents: 978
diff changeset
115 static inline av_const uint8_t av_clip_uint8_c(int a)
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
116 {
909
73a9ad2a11bd Write clip-related decimal numbers into hex, where they make more sense.
rbultje
parents: 908
diff changeset
117 if (a&(~0xFF)) return (-a)>>31;
910
6dcab870b03b Reindent after r22968.
rbultje
parents: 909
diff changeset
118 else return a;
0
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
373
c3b57cc542e0 add a new av_clip_int16() function to libavutil
aurel
parents: 372
diff changeset
121 /**
957
e34e8d654ded Fix grammar errors in documentation
mru
parents: 950
diff changeset
122 * Clip a signed integer value into the -128,127 range.
950
7362675c3e0a Add av_clip_int8(), used in the upcoming VP8 decoder.
rbultje
parents: 949
diff changeset
123 * @param a value to clip
7362675c3e0a Add av_clip_int8(), used in the upcoming VP8 decoder.
rbultje
parents: 949
diff changeset
124 * @return clipped value
7362675c3e0a Add av_clip_int8(), used in the upcoming VP8 decoder.
rbultje
parents: 949
diff changeset
125 */
979
a3c26f53e6fa Allow arch-overrides for all common.h clip and log2 functions
mru
parents: 978
diff changeset
126 static inline av_const int8_t av_clip_int8_c(int a)
950
7362675c3e0a Add av_clip_int8(), used in the upcoming VP8 decoder.
rbultje
parents: 949
diff changeset
127 {
7362675c3e0a Add av_clip_int8(), used in the upcoming VP8 decoder.
rbultje
parents: 949
diff changeset
128 if ((a+0x80) & ~0xFF) return (a>>31) ^ 0x7F;
7362675c3e0a Add av_clip_int8(), used in the upcoming VP8 decoder.
rbultje
parents: 949
diff changeset
129 else return a;
7362675c3e0a Add av_clip_int8(), used in the upcoming VP8 decoder.
rbultje
parents: 949
diff changeset
130 }
7362675c3e0a Add av_clip_int8(), used in the upcoming VP8 decoder.
rbultje
parents: 949
diff changeset
131
7362675c3e0a Add av_clip_int8(), used in the upcoming VP8 decoder.
rbultje
parents: 949
diff changeset
132 /**
957
e34e8d654ded Fix grammar errors in documentation
mru
parents: 950
diff changeset
133 * Clip a signed integer value into the 0-65535 range.
764
c86488f7f319 Introduce av_clip_uint16().
ramiro
parents: 761
diff changeset
134 * @param a value to clip
c86488f7f319 Introduce av_clip_uint16().
ramiro
parents: 761
diff changeset
135 * @return clipped value
c86488f7f319 Introduce av_clip_uint16().
ramiro
parents: 761
diff changeset
136 */
979
a3c26f53e6fa Allow arch-overrides for all common.h clip and log2 functions
mru
parents: 978
diff changeset
137 static inline av_const uint16_t av_clip_uint16_c(int a)
764
c86488f7f319 Introduce av_clip_uint16().
ramiro
parents: 761
diff changeset
138 {
909
73a9ad2a11bd Write clip-related decimal numbers into hex, where they make more sense.
rbultje
parents: 908
diff changeset
139 if (a&(~0xFFFF)) return (-a)>>31;
910
6dcab870b03b Reindent after r22968.
rbultje
parents: 909
diff changeset
140 else return a;
764
c86488f7f319 Introduce av_clip_uint16().
ramiro
parents: 761
diff changeset
141 }
c86488f7f319 Introduce av_clip_uint16().
ramiro
parents: 761
diff changeset
142
c86488f7f319 Introduce av_clip_uint16().
ramiro
parents: 761
diff changeset
143 /**
957
e34e8d654ded Fix grammar errors in documentation
mru
parents: 950
diff changeset
144 * Clip a signed integer value into the -32768,32767 range.
373
c3b57cc542e0 add a new av_clip_int16() function to libavutil
aurel
parents: 372
diff changeset
145 * @param a value to clip
c3b57cc542e0 add a new av_clip_int16() function to libavutil
aurel
parents: 372
diff changeset
146 * @return clipped value
c3b57cc542e0 add a new av_clip_int16() function to libavutil
aurel
parents: 372
diff changeset
147 */
979
a3c26f53e6fa Allow arch-overrides for all common.h clip and log2 functions
mru
parents: 978
diff changeset
148 static inline av_const int16_t av_clip_int16_c(int a)
373
c3b57cc542e0 add a new av_clip_int16() function to libavutil
aurel
parents: 372
diff changeset
149 {
909
73a9ad2a11bd Write clip-related decimal numbers into hex, where they make more sense.
rbultje
parents: 908
diff changeset
150 if ((a+0x8000) & ~0xFFFF) return (a>>31) ^ 0x7FFF;
910
6dcab870b03b Reindent after r22968.
rbultje
parents: 909
diff changeset
151 else return a;
373
c3b57cc542e0 add a new av_clip_int16() function to libavutil
aurel
parents: 372
diff changeset
152 }
c3b57cc542e0 add a new av_clip_int16() function to libavutil
aurel
parents: 372
diff changeset
153
519
5cdb952bd09a Add av_clipf() function to common.h and use it in ra288.c
vitor
parents: 516
diff changeset
154 /**
957
e34e8d654ded Fix grammar errors in documentation
mru
parents: 950
diff changeset
155 * Clip a signed 64-bit integer value into the -2147483648,2147483647 range.
900
5dcfac995af3 Move clipping of audio samples (for those codecs outputting float) from decoder
rbultje
parents: 899
diff changeset
156 * @param a value to clip
5dcfac995af3 Move clipping of audio samples (for those codecs outputting float) from decoder
rbultje
parents: 899
diff changeset
157 * @return clipped value
5dcfac995af3 Move clipping of audio samples (for those codecs outputting float) from decoder
rbultje
parents: 899
diff changeset
158 */
979
a3c26f53e6fa Allow arch-overrides for all common.h clip and log2 functions
mru
parents: 978
diff changeset
159 static inline av_const int32_t av_clipl_int32_c(int64_t a)
900
5dcfac995af3 Move clipping of audio samples (for those codecs outputting float) from decoder
rbultje
parents: 899
diff changeset
160 {
908
de9d2bfb3ceb Fix broken 32-bit clipping, and write numbers in hex instead of decimal so
rbultje
parents: 900
diff changeset
161 if ((a+0x80000000u) & ~UINT64_C(0xFFFFFFFF)) return (a>>63) ^ 0x7FFFFFFF;
910
6dcab870b03b Reindent after r22968.
rbultje
parents: 909
diff changeset
162 else return a;
900
5dcfac995af3 Move clipping of audio samples (for those codecs outputting float) from decoder
rbultje
parents: 899
diff changeset
163 }
5dcfac995af3 Move clipping of audio samples (for those codecs outputting float) from decoder
rbultje
parents: 899
diff changeset
164
5dcfac995af3 Move clipping of audio samples (for those codecs outputting float) from decoder
rbultje
parents: 899
diff changeset
165 /**
957
e34e8d654ded Fix grammar errors in documentation
mru
parents: 950
diff changeset
166 * Clip a float value into the amin-amax range.
519
5cdb952bd09a Add av_clipf() function to common.h and use it in ra288.c
vitor
parents: 516
diff changeset
167 * @param a value to clip
5cdb952bd09a Add av_clipf() function to common.h and use it in ra288.c
vitor
parents: 516
diff changeset
168 * @param amin minimum value of the clip range
5cdb952bd09a Add av_clipf() function to common.h and use it in ra288.c
vitor
parents: 516
diff changeset
169 * @param amax maximum value of the clip range
5cdb952bd09a Add av_clipf() function to common.h and use it in ra288.c
vitor
parents: 516
diff changeset
170 * @return clipped value
5cdb952bd09a Add av_clipf() function to common.h and use it in ra288.c
vitor
parents: 516
diff changeset
171 */
979
a3c26f53e6fa Allow arch-overrides for all common.h clip and log2 functions
mru
parents: 978
diff changeset
172 static inline av_const float av_clipf_c(float a, float amin, float amax)
519
5cdb952bd09a Add av_clipf() function to common.h and use it in ra288.c
vitor
parents: 516
diff changeset
173 {
5cdb952bd09a Add av_clipf() function to common.h and use it in ra288.c
vitor
parents: 516
diff changeset
174 if (a < amin) return amin;
5cdb952bd09a Add av_clipf() function to common.h and use it in ra288.c
vitor
parents: 516
diff changeset
175 else if (a > amax) return amax;
5cdb952bd09a Add av_clipf() function to common.h and use it in ra288.c
vitor
parents: 516
diff changeset
176 else return a;
5cdb952bd09a Add av_clipf() function to common.h and use it in ra288.c
vitor
parents: 516
diff changeset
177 }
5cdb952bd09a Add av_clipf() function to common.h and use it in ra288.c
vitor
parents: 516
diff changeset
178
957
e34e8d654ded Fix grammar errors in documentation
mru
parents: 950
diff changeset
179 /** Compute ceil(log2(x)).
773
8848af31706f Add function to compute ceil(log2(x)).
jbr
parents: 764
diff changeset
180 * @param x value used to compute ceil(log2(x))
8848af31706f Add function to compute ceil(log2(x)).
jbr
parents: 764
diff changeset
181 * @return computed ceiling of log2(x)
8848af31706f Add function to compute ceil(log2(x)).
jbr
parents: 764
diff changeset
182 */
979
a3c26f53e6fa Allow arch-overrides for all common.h clip and log2 functions
mru
parents: 978
diff changeset
183 static inline av_const int av_ceil_log2_c(int x)
773
8848af31706f Add function to compute ceil(log2(x)).
jbr
parents: 764
diff changeset
184 {
8848af31706f Add function to compute ceil(log2(x)).
jbr
parents: 764
diff changeset
185 return av_log2((x - 1) << 1);
8848af31706f Add function to compute ceil(log2(x)).
jbr
parents: 764
diff changeset
186 }
8848af31706f Add function to compute ceil(log2(x)).
jbr
parents: 764
diff changeset
187
949
be4cc14c16c2 Add missing parentheses in MKTAG and MKBETAG macros.
benoit
parents: 910
diff changeset
188 #define MKTAG(a,b,c,d) ((a) | ((b) << 8) | ((c) << 16) | ((d) << 24))
be4cc14c16c2 Add missing parentheses in MKTAG and MKBETAG macros.
benoit
parents: 910
diff changeset
189 #define MKBETAG(a,b,c,d) ((d) | ((c) << 8) | ((b) << 16) | ((a) << 24))
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
190
961
64a8e85b50be Improve GET_UTF{8,16} documentation
mru
parents: 957
diff changeset
191 /**
64a8e85b50be Improve GET_UTF{8,16} documentation
mru
parents: 957
diff changeset
192 * Convert a UTF-8 character (up to 4 bytes) to its 32-bit UCS-4 encoded form.
64a8e85b50be Improve GET_UTF{8,16} documentation
mru
parents: 957
diff changeset
193 *
64a8e85b50be Improve GET_UTF{8,16} documentation
mru
parents: 957
diff changeset
194 * @param val Output value, must be an lvalue of type uint32_t.
64a8e85b50be Improve GET_UTF{8,16} documentation
mru
parents: 957
diff changeset
195 * @param GET_BYTE Expression reading one byte from the input.
64a8e85b50be Improve GET_UTF{8,16} documentation
mru
parents: 957
diff changeset
196 * Evaluated up to 7 times (4 for the currently
64a8e85b50be Improve GET_UTF{8,16} documentation
mru
parents: 957
diff changeset
197 * assigned Unicode range). With a memory buffer
64a8e85b50be Improve GET_UTF{8,16} documentation
mru
parents: 957
diff changeset
198 * input, this could be *ptr++.
64a8e85b50be Improve GET_UTF{8,16} documentation
mru
parents: 957
diff changeset
199 * @param ERROR Expression to be evaluated on invalid input,
64a8e85b50be Improve GET_UTF{8,16} documentation
mru
parents: 957
diff changeset
200 * typically a goto statement.
132
589af48c86f4 Add doxy comments for macro GET_UTF8
gpoirier
parents: 131
diff changeset
201 */
130
dc1ff57e1b08 woops, fix missplaced doxy comment
gpoirier
parents: 129
diff changeset
202 #define GET_UTF8(val, GET_BYTE, ERROR)\
dc1ff57e1b08 woops, fix missplaced doxy comment
gpoirier
parents: 129
diff changeset
203 val= GET_BYTE;\
dc1ff57e1b08 woops, fix missplaced doxy comment
gpoirier
parents: 129
diff changeset
204 {\
dc1ff57e1b08 woops, fix missplaced doxy comment
gpoirier
parents: 129
diff changeset
205 int ones= 7 - av_log2(val ^ 255);\
dc1ff57e1b08 woops, fix missplaced doxy comment
gpoirier
parents: 129
diff changeset
206 if(ones==1)\
dc1ff57e1b08 woops, fix missplaced doxy comment
gpoirier
parents: 129
diff changeset
207 ERROR\
dc1ff57e1b08 woops, fix missplaced doxy comment
gpoirier
parents: 129
diff changeset
208 val&= 127>>ones;\
dc1ff57e1b08 woops, fix missplaced doxy comment
gpoirier
parents: 129
diff changeset
209 while(--ones > 0){\
dc1ff57e1b08 woops, fix missplaced doxy comment
gpoirier
parents: 129
diff changeset
210 int tmp= GET_BYTE - 128;\
dc1ff57e1b08 woops, fix missplaced doxy comment
gpoirier
parents: 129
diff changeset
211 if(tmp>>6)\
dc1ff57e1b08 woops, fix missplaced doxy comment
gpoirier
parents: 129
diff changeset
212 ERROR\
dc1ff57e1b08 woops, fix missplaced doxy comment
gpoirier
parents: 129
diff changeset
213 val= (val<<6) + tmp;\
dc1ff57e1b08 woops, fix missplaced doxy comment
gpoirier
parents: 129
diff changeset
214 }\
dc1ff57e1b08 woops, fix missplaced doxy comment
gpoirier
parents: 129
diff changeset
215 }
dc1ff57e1b08 woops, fix missplaced doxy comment
gpoirier
parents: 129
diff changeset
216
961
64a8e85b50be Improve GET_UTF{8,16} documentation
mru
parents: 957
diff changeset
217 /**
64a8e85b50be Improve GET_UTF{8,16} documentation
mru
parents: 957
diff changeset
218 * Convert a UTF-16 character (2 or 4 bytes) to its 32-bit UCS-4 encoded form.
64a8e85b50be Improve GET_UTF{8,16} documentation
mru
parents: 957
diff changeset
219 *
64a8e85b50be Improve GET_UTF{8,16} documentation
mru
parents: 957
diff changeset
220 * @param val Output value, must be an lvalue of type uint32_t.
64a8e85b50be Improve GET_UTF{8,16} documentation
mru
parents: 957
diff changeset
221 * @param GET_16BIT Expression returning two bytes of UTF-16 data converted
64a8e85b50be Improve GET_UTF{8,16} documentation
mru
parents: 957
diff changeset
222 * to native byte order. Evaluated one or two times.
64a8e85b50be Improve GET_UTF{8,16} documentation
mru
parents: 957
diff changeset
223 * @param ERROR Expression to be evaluated on invalid input,
64a8e85b50be Improve GET_UTF{8,16} documentation
mru
parents: 957
diff changeset
224 * typically a goto statement.
780
29225fa79236 id3v2: Add support for UTF-16 encoding.
diego
parents: 773
diff changeset
225 */
29225fa79236 id3v2: Add support for UTF-16 encoding.
diego
parents: 773
diff changeset
226 #define GET_UTF16(val, GET_16BIT, ERROR)\
29225fa79236 id3v2: Add support for UTF-16 encoding.
diego
parents: 773
diff changeset
227 val = GET_16BIT;\
29225fa79236 id3v2: Add support for UTF-16 encoding.
diego
parents: 773
diff changeset
228 {\
29225fa79236 id3v2: Add support for UTF-16 encoding.
diego
parents: 773
diff changeset
229 unsigned int hi = val - 0xD800;\
29225fa79236 id3v2: Add support for UTF-16 encoding.
diego
parents: 773
diff changeset
230 if (hi < 0x800) {\
29225fa79236 id3v2: Add support for UTF-16 encoding.
diego
parents: 773
diff changeset
231 val = GET_16BIT - 0xDC00;\
29225fa79236 id3v2: Add support for UTF-16 encoding.
diego
parents: 773
diff changeset
232 if (val > 0x3FFU || hi > 0x3FFU)\
29225fa79236 id3v2: Add support for UTF-16 encoding.
diego
parents: 773
diff changeset
233 ERROR\
29225fa79236 id3v2: Add support for UTF-16 encoding.
diego
parents: 773
diff changeset
234 val += (hi<<10) + 0x10000;\
29225fa79236 id3v2: Add support for UTF-16 encoding.
diego
parents: 773
diff changeset
235 }\
29225fa79236 id3v2: Add support for UTF-16 encoding.
diego
parents: 773
diff changeset
236 }\
29225fa79236 id3v2: Add support for UTF-16 encoding.
diego
parents: 773
diff changeset
237
29225fa79236 id3v2: Add support for UTF-16 encoding.
diego
parents: 773
diff changeset
238 /*!
131
e10026931162 Fix wrong params name in PUT_UTF8 doxy comments
gpoirier
parents: 130
diff changeset
239 * \def PUT_UTF8(val, tmp, PUT_BYTE)
957
e34e8d654ded Fix grammar errors in documentation
mru
parents: 950
diff changeset
240 * Convert a 32-bit Unicode character to its UTF-8 encoded form (up to 4 bytes long).
633
8c48a1b999a3 spelling/grammar/consistency review part I
diego
parents: 630
diff changeset
241 * \param val is an input-only argument and should be of type uint32_t. It holds
8c48a1b999a3 spelling/grammar/consistency review part I
diego
parents: 630
diff changeset
242 * a UCS-4 encoded Unicode character that is to be converted to UTF-8. If
8c48a1b999a3 spelling/grammar/consistency review part I
diego
parents: 630
diff changeset
243 * val is given as a function it is executed only once.
129
ccae53673692 Fix ASF format parser's broken UTF-16 string handling
gpoirier
parents: 127
diff changeset
244 * \param tmp is a temporary variable and should be of type uint8_t. It
ccae53673692 Fix ASF format parser's broken UTF-16 string handling
gpoirier
parents: 127
diff changeset
245 * represents an intermediate value during conversion that is to be
633
8c48a1b999a3 spelling/grammar/consistency review part I
diego
parents: 630
diff changeset
246 * output by PUT_BYTE.
341
53126d45b095 misc typo fixes
diego
parents: 339
diff changeset
247 * \param PUT_BYTE writes the converted UTF-8 bytes to any proper destination.
129
ccae53673692 Fix ASF format parser's broken UTF-16 string handling
gpoirier
parents: 127
diff changeset
248 * It could be a function or a statement, and uses tmp as the input byte.
ccae53673692 Fix ASF format parser's broken UTF-16 string handling
gpoirier
parents: 127
diff changeset
249 * For example, PUT_BYTE could be "*output++ = tmp;" PUT_BYTE will be
341
53126d45b095 misc typo fixes
diego
parents: 339
diff changeset
250 * executed up to 4 times for values in the valid UTF-8 range and up to
147
7e143f348a72 Correct GET/PUT_UTF8 comment: the get/put functions might be called up
reimar
parents: 146
diff changeset
251 * 7 times in the general case, depending on the length of the converted
633
8c48a1b999a3 spelling/grammar/consistency review part I
diego
parents: 630
diff changeset
252 * Unicode character.
129
ccae53673692 Fix ASF format parser's broken UTF-16 string handling
gpoirier
parents: 127
diff changeset
253 */
ccae53673692 Fix ASF format parser's broken UTF-16 string handling
gpoirier
parents: 127
diff changeset
254 #define PUT_UTF8(val, tmp, PUT_BYTE)\
ccae53673692 Fix ASF format parser's broken UTF-16 string handling
gpoirier
parents: 127
diff changeset
255 {\
ccae53673692 Fix ASF format parser's broken UTF-16 string handling
gpoirier
parents: 127
diff changeset
256 int bytes, shift;\
ccae53673692 Fix ASF format parser's broken UTF-16 string handling
gpoirier
parents: 127
diff changeset
257 uint32_t in = val;\
ccae53673692 Fix ASF format parser's broken UTF-16 string handling
gpoirier
parents: 127
diff changeset
258 if (in < 0x80) {\
ccae53673692 Fix ASF format parser's broken UTF-16 string handling
gpoirier
parents: 127
diff changeset
259 tmp = in;\
ccae53673692 Fix ASF format parser's broken UTF-16 string handling
gpoirier
parents: 127
diff changeset
260 PUT_BYTE\
ccae53673692 Fix ASF format parser's broken UTF-16 string handling
gpoirier
parents: 127
diff changeset
261 } else {\
ccae53673692 Fix ASF format parser's broken UTF-16 string handling
gpoirier
parents: 127
diff changeset
262 bytes = (av_log2(in) + 4) / 5;\
ccae53673692 Fix ASF format parser's broken UTF-16 string handling
gpoirier
parents: 127
diff changeset
263 shift = (bytes - 1) * 6;\
ccae53673692 Fix ASF format parser's broken UTF-16 string handling
gpoirier
parents: 127
diff changeset
264 tmp = (256 - (256 >> bytes)) | (in >> shift);\
ccae53673692 Fix ASF format parser's broken UTF-16 string handling
gpoirier
parents: 127
diff changeset
265 PUT_BYTE\
ccae53673692 Fix ASF format parser's broken UTF-16 string handling
gpoirier
parents: 127
diff changeset
266 while (shift >= 6) {\
ccae53673692 Fix ASF format parser's broken UTF-16 string handling
gpoirier
parents: 127
diff changeset
267 shift -= 6;\
ccae53673692 Fix ASF format parser's broken UTF-16 string handling
gpoirier
parents: 127
diff changeset
268 tmp = 0x80 | ((in >> shift) & 0x3f);\
ccae53673692 Fix ASF format parser's broken UTF-16 string handling
gpoirier
parents: 127
diff changeset
269 PUT_BYTE\
ccae53673692 Fix ASF format parser's broken UTF-16 string handling
gpoirier
parents: 127
diff changeset
270 }\
ccae53673692 Fix ASF format parser's broken UTF-16 string handling
gpoirier
parents: 127
diff changeset
271 }\
ccae53673692 Fix ASF format parser's broken UTF-16 string handling
gpoirier
parents: 127
diff changeset
272 }
ccae53673692 Fix ASF format parser's broken UTF-16 string handling
gpoirier
parents: 127
diff changeset
273
848
f435d64fd243 Add PUT_UTF16() macro.
rbultje
parents: 807
diff changeset
274 /*!
f435d64fd243 Add PUT_UTF16() macro.
rbultje
parents: 807
diff changeset
275 * \def PUT_UTF16(val, tmp, PUT_16BIT)
957
e34e8d654ded Fix grammar errors in documentation
mru
parents: 950
diff changeset
276 * Convert a 32-bit Unicode character to its UTF-16 encoded form (2 or 4 bytes).
848
f435d64fd243 Add PUT_UTF16() macro.
rbultje
parents: 807
diff changeset
277 * \param val is an input-only argument and should be of type uint32_t. It holds
f435d64fd243 Add PUT_UTF16() macro.
rbultje
parents: 807
diff changeset
278 * a UCS-4 encoded Unicode character that is to be converted to UTF-16. If
f435d64fd243 Add PUT_UTF16() macro.
rbultje
parents: 807
diff changeset
279 * val is given as a function it is executed only once.
f435d64fd243 Add PUT_UTF16() macro.
rbultje
parents: 807
diff changeset
280 * \param tmp is a temporary variable and should be of type uint16_t. It
f435d64fd243 Add PUT_UTF16() macro.
rbultje
parents: 807
diff changeset
281 * represents an intermediate value during conversion that is to be
f435d64fd243 Add PUT_UTF16() macro.
rbultje
parents: 807
diff changeset
282 * output by PUT_16BIT.
f435d64fd243 Add PUT_UTF16() macro.
rbultje
parents: 807
diff changeset
283 * \param PUT_16BIT writes the converted UTF-16 data to any proper destination
f435d64fd243 Add PUT_UTF16() macro.
rbultje
parents: 807
diff changeset
284 * in desired endianness. It could be a function or a statement, and uses tmp
f435d64fd243 Add PUT_UTF16() macro.
rbultje
parents: 807
diff changeset
285 * as the input byte. For example, PUT_BYTE could be "*output++ = tmp;"
f435d64fd243 Add PUT_UTF16() macro.
rbultje
parents: 807
diff changeset
286 * PUT_BYTE will be executed 1 or 2 times depending on input character.
f435d64fd243 Add PUT_UTF16() macro.
rbultje
parents: 807
diff changeset
287 */
f435d64fd243 Add PUT_UTF16() macro.
rbultje
parents: 807
diff changeset
288 #define PUT_UTF16(val, tmp, PUT_16BIT)\
f435d64fd243 Add PUT_UTF16() macro.
rbultje
parents: 807
diff changeset
289 {\
f435d64fd243 Add PUT_UTF16() macro.
rbultje
parents: 807
diff changeset
290 uint32_t in = val;\
f435d64fd243 Add PUT_UTF16() macro.
rbultje
parents: 807
diff changeset
291 if (in < 0x10000) {\
f435d64fd243 Add PUT_UTF16() macro.
rbultje
parents: 807
diff changeset
292 tmp = in;\
f435d64fd243 Add PUT_UTF16() macro.
rbultje
parents: 807
diff changeset
293 PUT_16BIT\
f435d64fd243 Add PUT_UTF16() macro.
rbultje
parents: 807
diff changeset
294 } else {\
f435d64fd243 Add PUT_UTF16() macro.
rbultje
parents: 807
diff changeset
295 tmp = 0xD800 | ((in - 0x10000) >> 10);\
f435d64fd243 Add PUT_UTF16() macro.
rbultje
parents: 807
diff changeset
296 PUT_16BIT\
f435d64fd243 Add PUT_UTF16() macro.
rbultje
parents: 807
diff changeset
297 tmp = 0xDC00 | ((in - 0x10000) & 0x3FF);\
f435d64fd243 Add PUT_UTF16() macro.
rbultje
parents: 807
diff changeset
298 PUT_16BIT\
f435d64fd243 Add PUT_UTF16() macro.
rbultje
parents: 807
diff changeset
299 }\
f435d64fd243 Add PUT_UTF16() macro.
rbultje
parents: 807
diff changeset
300 }\
f435d64fd243 Add PUT_UTF16() macro.
rbultje
parents: 807
diff changeset
301
f435d64fd243 Add PUT_UTF16() macro.
rbultje
parents: 807
diff changeset
302
f435d64fd243 Add PUT_UTF16() macro.
rbultje
parents: 807
diff changeset
303
630
fb04e2fc189c Reorganize header #includes: Unconditionally #include standard C headers,
diego
parents: 619
diff changeset
304 #include "mem.h"
fb04e2fc189c Reorganize header #includes: Unconditionally #include standard C headers,
diego
parents: 619
diff changeset
305
619
c309f86c05a2 Move internal.h #include to the end of the file so that it is after
diego
parents: 610
diff changeset
306 #ifdef HAVE_AV_CONFIG_H
c309f86c05a2 Move internal.h #include to the end of the file so that it is after
diego
parents: 610
diff changeset
307 # include "internal.h"
c309f86c05a2 Move internal.h #include to the end of the file so that it is after
diego
parents: 610
diff changeset
308 #endif /* HAVE_AV_CONFIG_H */
c309f86c05a2 Move internal.h #include to the end of the file so that it is after
diego
parents: 610
diff changeset
309
567
bd4052d9050c Globally rename the header inclusion guard names.
stefano
parents: 519
diff changeset
310 #endif /* AVUTIL_COMMON_H */
978
009d2ce554b2 Remove macro duplication between common.h and intmath.h
mru
parents: 961
diff changeset
311
009d2ce554b2 Remove macro duplication between common.h and intmath.h
mru
parents: 961
diff changeset
312 /*
009d2ce554b2 Remove macro duplication between common.h and intmath.h
mru
parents: 961
diff changeset
313 * The following definitions are outside the multiple inclusion guard
009d2ce554b2 Remove macro duplication between common.h and intmath.h
mru
parents: 961
diff changeset
314 * to ensure they are immediately available in intmath.h.
009d2ce554b2 Remove macro duplication between common.h and intmath.h
mru
parents: 961
diff changeset
315 */
009d2ce554b2 Remove macro duplication between common.h and intmath.h
mru
parents: 961
diff changeset
316
009d2ce554b2 Remove macro duplication between common.h and intmath.h
mru
parents: 961
diff changeset
317 #ifndef av_log2
009d2ce554b2 Remove macro duplication between common.h and intmath.h
mru
parents: 961
diff changeset
318 # define av_log2 av_log2_c
009d2ce554b2 Remove macro duplication between common.h and intmath.h
mru
parents: 961
diff changeset
319 #endif
009d2ce554b2 Remove macro duplication between common.h and intmath.h
mru
parents: 961
diff changeset
320 #ifndef av_log2_16bit
009d2ce554b2 Remove macro duplication between common.h and intmath.h
mru
parents: 961
diff changeset
321 # define av_log2_16bit av_log2_16bit_c
009d2ce554b2 Remove macro duplication between common.h and intmath.h
mru
parents: 961
diff changeset
322 #endif
979
a3c26f53e6fa Allow arch-overrides for all common.h clip and log2 functions
mru
parents: 978
diff changeset
323 #ifndef av_ceil_log2
a3c26f53e6fa Allow arch-overrides for all common.h clip and log2 functions
mru
parents: 978
diff changeset
324 # define av_ceil_log2 av_ceil_log2_c
a3c26f53e6fa Allow arch-overrides for all common.h clip and log2 functions
mru
parents: 978
diff changeset
325 #endif
a3c26f53e6fa Allow arch-overrides for all common.h clip and log2 functions
mru
parents: 978
diff changeset
326 #ifndef av_clip
a3c26f53e6fa Allow arch-overrides for all common.h clip and log2 functions
mru
parents: 978
diff changeset
327 # define av_clip av_clip_c
a3c26f53e6fa Allow arch-overrides for all common.h clip and log2 functions
mru
parents: 978
diff changeset
328 #endif
a3c26f53e6fa Allow arch-overrides for all common.h clip and log2 functions
mru
parents: 978
diff changeset
329 #ifndef av_clip_uint8
a3c26f53e6fa Allow arch-overrides for all common.h clip and log2 functions
mru
parents: 978
diff changeset
330 # define av_clip_uint8 av_clip_uint8_c
a3c26f53e6fa Allow arch-overrides for all common.h clip and log2 functions
mru
parents: 978
diff changeset
331 #endif
a3c26f53e6fa Allow arch-overrides for all common.h clip and log2 functions
mru
parents: 978
diff changeset
332 #ifndef av_clip_int8
a3c26f53e6fa Allow arch-overrides for all common.h clip and log2 functions
mru
parents: 978
diff changeset
333 # define av_clip_int8 av_clip_int8_c
a3c26f53e6fa Allow arch-overrides for all common.h clip and log2 functions
mru
parents: 978
diff changeset
334 #endif
a3c26f53e6fa Allow arch-overrides for all common.h clip and log2 functions
mru
parents: 978
diff changeset
335 #ifndef av_clip_uint16
a3c26f53e6fa Allow arch-overrides for all common.h clip and log2 functions
mru
parents: 978
diff changeset
336 # define av_clip_uint16 av_clip_uint16_c
a3c26f53e6fa Allow arch-overrides for all common.h clip and log2 functions
mru
parents: 978
diff changeset
337 #endif
a3c26f53e6fa Allow arch-overrides for all common.h clip and log2 functions
mru
parents: 978
diff changeset
338 #ifndef av_clip_int16
a3c26f53e6fa Allow arch-overrides for all common.h clip and log2 functions
mru
parents: 978
diff changeset
339 # define av_clip_int16 av_clip_int16_c
a3c26f53e6fa Allow arch-overrides for all common.h clip and log2 functions
mru
parents: 978
diff changeset
340 #endif
a3c26f53e6fa Allow arch-overrides for all common.h clip and log2 functions
mru
parents: 978
diff changeset
341 #ifndef av_clipl_int32
a3c26f53e6fa Allow arch-overrides for all common.h clip and log2 functions
mru
parents: 978
diff changeset
342 # define av_clipl_int32 av_clipl_int32_c
a3c26f53e6fa Allow arch-overrides for all common.h clip and log2 functions
mru
parents: 978
diff changeset
343 #endif
a3c26f53e6fa Allow arch-overrides for all common.h clip and log2 functions
mru
parents: 978
diff changeset
344 #ifndef av_clipf
a3c26f53e6fa Allow arch-overrides for all common.h clip and log2 functions
mru
parents: 978
diff changeset
345 # define av_clipf av_clipf_c
a3c26f53e6fa Allow arch-overrides for all common.h clip and log2 functions
mru
parents: 978
diff changeset
346 #endif