|
|
|
@ -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) |
|
|
|
|