|
|
@ -99,8 +99,6 @@ static void rdft_calc_c(RDFTContext *s, FFTSample *data) |
|
|
|
av_cold int ff_rdft_init(RDFTContext *s, int nbits, enum RDFTransformType trans) |
|
|
|
av_cold int ff_rdft_init(RDFTContext *s, int nbits, enum RDFTransformType trans) |
|
|
|
{ |
|
|
|
{ |
|
|
|
int n = 1 << nbits; |
|
|
|
int n = 1 << nbits; |
|
|
|
int i; |
|
|
|
|
|
|
|
const double theta = (trans == DFT_R2C || trans == DFT_C2R ? -1 : 1)*2*M_PI/n; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
s->nbits = nbits; |
|
|
|
s->nbits = nbits; |
|
|
|
s->inverse = trans == IDFT_C2R || trans == DFT_C2R; |
|
|
|
s->inverse = trans == IDFT_C2R || trans == DFT_C2R; |
|
|
@ -116,8 +114,11 @@ av_cold int ff_rdft_init(RDFTContext *s, int nbits, enum RDFTransformType trans) |
|
|
|
s->tcos = ff_cos_tabs[nbits]; |
|
|
|
s->tcos = ff_cos_tabs[nbits]; |
|
|
|
s->tsin = ff_sin_tabs[nbits]+(trans == DFT_R2C || trans == DFT_C2R)*(n>>2); |
|
|
|
s->tsin = ff_sin_tabs[nbits]+(trans == DFT_R2C || trans == DFT_C2R)*(n>>2); |
|
|
|
#if !CONFIG_HARDCODED_TABLES |
|
|
|
#if !CONFIG_HARDCODED_TABLES |
|
|
|
for (i = 0; i < (n>>2); i++) { |
|
|
|
{ |
|
|
|
s->tsin[i] = sin(i*theta); |
|
|
|
int i; |
|
|
|
|
|
|
|
const double theta = (trans == DFT_R2C || trans == DFT_C2R ? -1 : 1) * 2 * M_PI / n; |
|
|
|
|
|
|
|
for (i = 0; i < (n >> 2); i++) |
|
|
|
|
|
|
|
s->tsin[i] = sin(i * theta); |
|
|
|
} |
|
|
|
} |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
s->rdft_calc = rdft_calc_c; |
|
|
|
s->rdft_calc = rdft_calc_c; |
|
|
|