diff options
author | Sean Bartell <wingedtachikoma@gmail.com> | 2011-06-25 21:32:25 -0400 |
---|---|---|
committer | Nils Wallménius <nils@rockbox.org> | 2012-04-25 22:13:20 +0200 |
commit | f40bfc9267b13b54e6379dfe7539447662879d24 (patch) | |
tree | 9b20069d5e62809ff434061ad730096836f916f2 /lib/rbcodec/codecs/libwmavoice/libavutil/mathematics.h | |
parent | a0009907de7a0107d49040d8a180f140e2eff299 (diff) | |
download | rockbox-f40bfc9267b13b54e6379dfe7539447662879d24.tar.gz rockbox-f40bfc9267b13b54e6379dfe7539447662879d24.zip |
Add codecs to librbcodec.
Change-Id: Id7f4717d51ed02d67cb9f9cb3c0ada4a81843f97
Reviewed-on: http://gerrit.rockbox.org/137
Reviewed-by: Nils Wallménius <nils@rockbox.org>
Tested-by: Nils Wallménius <nils@rockbox.org>
Diffstat (limited to 'lib/rbcodec/codecs/libwmavoice/libavutil/mathematics.h')
-rw-r--r-- | lib/rbcodec/codecs/libwmavoice/libavutil/mathematics.h | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/lib/rbcodec/codecs/libwmavoice/libavutil/mathematics.h b/lib/rbcodec/codecs/libwmavoice/libavutil/mathematics.h new file mode 100644 index 0000000000..e07d4fe807 --- /dev/null +++ b/lib/rbcodec/codecs/libwmavoice/libavutil/mathematics.h | |||
@@ -0,0 +1,112 @@ | |||
1 | /* | ||
2 | * copyright (c) 2005 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 | #ifndef AVUTIL_MATHEMATICS_H | ||
22 | #define AVUTIL_MATHEMATICS_H | ||
23 | |||
24 | #include <stdint.h> | ||
25 | #include <math.h> | ||
26 | #include "attributes.h" | ||
27 | //#include "rational.h" | ||
28 | |||
29 | #ifndef M_E | ||
30 | #define M_E 2.7182818284590452354 /* e */ | ||
31 | #endif | ||
32 | #ifndef M_LN2 | ||
33 | #define M_LN2 0.69314718055994530942 /* log_e 2 */ | ||
34 | #endif | ||
35 | #ifndef M_LN10 | ||
36 | #define M_LN10 2.30258509299404568402 /* log_e 10 */ | ||
37 | #endif | ||
38 | #ifndef M_LOG2_10 | ||
39 | #define M_LOG2_10 3.32192809488736234787 /* log_2 10 */ | ||
40 | #endif | ||
41 | #ifndef M_PHI | ||
42 | #define M_PHI 1.61803398874989484820 /* phi / golden ratio */ | ||
43 | #endif | ||
44 | #ifndef M_PI | ||
45 | #define M_PI 3.14159265358979323846 /* pi */ | ||
46 | #endif | ||
47 | #ifndef M_SQRT1_2 | ||
48 | #define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */ | ||
49 | #endif | ||
50 | #ifndef M_SQRT2 | ||
51 | #define M_SQRT2 1.41421356237309504880 /* sqrt(2) */ | ||
52 | #endif | ||
53 | #ifndef NAN | ||
54 | #define NAN (0.0/0.0) | ||
55 | #endif | ||
56 | #ifndef INFINITY | ||
57 | #define INFINITY (1.0/0.0) | ||
58 | #endif | ||
59 | |||
60 | enum AVRounding { | ||
61 | AV_ROUND_ZERO = 0, ///< Round toward zero. | ||
62 | AV_ROUND_INF = 1, ///< Round away from zero. | ||
63 | AV_ROUND_DOWN = 2, ///< Round toward -infinity. | ||
64 | AV_ROUND_UP = 3, ///< Round toward +infinity. | ||
65 | AV_ROUND_NEAR_INF = 5, ///< Round to nearest and halfway cases away from zero. | ||
66 | }; | ||
67 | |||
68 | /** | ||
69 | * Return the greatest common divisor of a and b. | ||
70 | * If both a and b are 0 or either or both are <0 then behavior is | ||
71 | * undefined. | ||
72 | */ | ||
73 | int64_t av_const av_gcd(int64_t a, int64_t b); | ||
74 | |||
75 | /** | ||
76 | * Rescale a 64-bit integer with rounding to nearest. | ||
77 | * A simple a*b/c isn't possible as it can overflow. | ||
78 | */ | ||
79 | int64_t av_rescale(int64_t a, int64_t b, int64_t c) av_const; | ||
80 | |||
81 | /** | ||
82 | * Rescale a 64-bit integer with specified rounding. | ||
83 | * A simple a*b/c isn't possible as it can overflow. | ||
84 | */ | ||
85 | int64_t av_rescale_rnd(int64_t a, int64_t b, int64_t c, enum AVRounding) av_const; | ||
86 | |||
87 | /** | ||
88 | * Rescale a 64-bit integer by 2 rational numbers. | ||
89 | */ | ||
90 | //int64_t av_rescale_q(int64_t a, AVRational bq, AVRational cq) av_const; | ||
91 | |||
92 | /** | ||
93 | * Compare 2 timestamps each in its own timebases. | ||
94 | * The result of the function is undefined if one of the timestamps | ||
95 | * is outside the int64_t range when represented in the others timebase. | ||
96 | * @return -1 if ts_a is before ts_b, 1 if ts_a is after ts_b or 0 if they represent the same position | ||
97 | */ | ||
98 | //int av_compare_ts(int64_t ts_a, AVRational tb_a, int64_t ts_b, AVRational tb_b); | ||
99 | |||
100 | /** | ||
101 | * Compare 2 integers modulo mod. | ||
102 | * That is we compare integers a and b for which only the least | ||
103 | * significant log2(mod) bits are known. | ||
104 | * | ||
105 | * @param mod must be a power of 2 | ||
106 | * @return a negative value if a is smaller than b | ||
107 | * a positive value if a is greater than b | ||
108 | * 0 if a equals b | ||
109 | */ | ||
110 | int64_t av_compare_mod(uint64_t a, uint64_t b, uint64_t mod); | ||
111 | |||
112 | #endif /* AVUTIL_MATHEMATICS_H */ | ||