diff options
Diffstat (limited to 'libavcodec/fft-internal.h')
-rw-r--r-- | libavcodec/fft-internal.h | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/libavcodec/fft-internal.h b/libavcodec/fft-internal.h index 1f240db..d30571b 100644 --- a/libavcodec/fft-internal.h +++ b/libavcodec/fft-internal.h @@ -39,6 +39,8 @@ #include "libavutil/intmath.h" #include "mathops.h" +void ff_mdct_calcw_c(FFTContext *s, FFTDouble *output, const FFTSample *input); + #define SCALE_FLOAT(a, bits) lrint((a) * (double)(1 << (bits))) #define FIX15(a) av_clip(SCALE_FLOAT(a, 15), -32767, 32767) @@ -49,11 +51,17 @@ y = (a + b) >> 1; \ } while (0) -#define CMUL(dre, dim, are, aim, bre, bim) do { \ - (dre) = (MUL16(are, bre) - MUL16(aim, bim)) >> 15; \ - (dim) = (MUL16(are, bim) + MUL16(aim, bre)) >> 15; \ +#define CMULS(dre, dim, are, aim, bre, bim, sh) do { \ + (dre) = (MUL16(are, bre) - MUL16(aim, bim)) >> sh; \ + (dim) = (MUL16(are, bim) + MUL16(aim, bre)) >> sh; \ } while (0) +#define CMUL(dre, dim, are, aim, bre, bim) \ + CMULS(dre, dim, are, aim, bre, bim, 15) + +#define CMULL(dre, dim, are, aim, bre, bim) \ + CMULS(dre, dim, are, aim, bre, bim, 0) + #endif /* CONFIG_FFT_FLOAT */ #define ff_imdct_calc_c FFT_NAME(ff_imdct_calc_c) |