diff options
Diffstat (limited to 'apps/codecs/libwmapro/wmapro_math.h')
-rw-r--r-- | apps/codecs/libwmapro/wmapro_math.h | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/apps/codecs/libwmapro/wmapro_math.h b/apps/codecs/libwmapro/wmapro_math.h index 83fbb40a66..b339d8616d 100644 --- a/apps/codecs/libwmapro/wmapro_math.h +++ b/apps/codecs/libwmapro/wmapro_math.h | |||
@@ -1,8 +1,13 @@ | |||
1 | #ifndef _WMAPRO_MATH_H_ | ||
2 | #define _WMAPRO_MATH_H_ | ||
3 | |||
1 | #include <inttypes.h> | 4 | #include <inttypes.h> |
2 | #include "types.h" | 5 | #include "types.h" |
3 | 6 | ||
4 | #define fixtof16(x) (float)((float)(x) / (float)(1 << 16)) | 7 | #define fixtof16(x) (float)((float)(x) / (float)(1 << 16)) |
8 | #define fixtof31(x) (float)((float)(x) / (float)(1 << 31)) | ||
5 | #define ftofix16(x) ((int32_t)((x) * (float)(1 << 16) + ((x) < 0 ? -0.5:0.5))) | 9 | #define ftofix16(x) ((int32_t)((x) * (float)(1 << 16) + ((x) < 0 ? -0.5:0.5))) |
10 | #define ftofix31(x) ((int32_t)((x) * (float)(1 << 31) + ((x) < 0 ? -0.5:0.5))) | ||
6 | 11 | ||
7 | static inline FIXED fixmulshift(FIXED x, FIXED y, int shamt) | 12 | static inline FIXED fixmulshift(FIXED x, FIXED y, int shamt) |
8 | { | 13 | { |
@@ -36,11 +41,11 @@ static inline void vector_fixmul_window(FIXED *dst, const FIXED *src0, | |||
36 | } | 41 | } |
37 | 42 | ||
38 | static inline void vector_fixmul_scalar(FIXED *dst, const FIXED *src, FIXED mul, | 43 | static inline void vector_fixmul_scalar(FIXED *dst, const FIXED *src, FIXED mul, |
39 | int len) | 44 | int len, int shift) |
40 | { | 45 | { |
41 | int i; | 46 | int i; |
42 | for(i=0; i<len; i++) { | 47 | for(i=0; i<len; i++) |
43 | dst[i] = fixmulshift(src[i],mul,32); | 48 | dst[i] = fixmulshift(src[i],mul,shift); |
44 | } | ||
45 | |||
46 | } | 49 | } |
50 | |||
51 | #endif /* _WMAPRO_MATH_H_ */ | ||