Revision 26f548bb libavcodec/fft.h
libavcodec/fft.h  

39  39 
/* pre/post rotation tables */ 
40  40 
FFTSample *tcos; 
41  41 
FFTSample *tsin; 
42 
/** 

43 
* Do the permutation needed BEFORE calling fft_calc(). 

44 
*/ 

42  45 
void (*fft_permute)(struct FFTContext *s, FFTComplex *z); 
46 
/** 

47 
* Do a complex FFT with the parameters defined in ff_fft_init(). The 

48 
* input data must be permuted before. No 1.0/sqrt(n) normalization is done. 

49 
*/ 

43  50 
void (*fft_calc)(struct FFTContext *s, FFTComplex *z); 
44  51 
void (*imdct_calc)(struct FFTContext *s, FFTSample *output, const FFTSample *input); 
45  52 
void (*imdct_half)(struct FFTContext *s, FFTSample *output, const FFTSample *input); 
...  ...  
115  122 
void ff_fft_init_arm(FFTContext *s); 
116  123 
void ff_dct_init_mmx(DCTContext *s); 
117  124  
118 
/** 

119 
* Do the permutation needed BEFORE calling ff_fft_calc(). 

120 
*/ 

121 
static inline void ff_fft_permute(FFTContext *s, FFTComplex *z) 

122 
{ 

123 
s>fft_permute(s, z); 

124 
} 

125 
/** 

126 
* Do a complex FFT with the parameters defined in ff_fft_init(). The 

127 
* input data must be permuted before. No 1.0/sqrt(n) normalization is done. 

128 
*/ 

129 
static inline void ff_fft_calc(FFTContext *s, FFTComplex *z) 

130 
{ 

131 
s>fft_calc(s, z); 

132 
} 

133  125 
void ff_fft_end(FFTContext *s); 
134  126  
135 
/* MDCT computation */ 

136  
137 
static inline void ff_imdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input) 

138 
{ 

139 
s>imdct_calc(s, output, input); 

140 
} 

141 
static inline void ff_imdct_half(FFTContext *s, FFTSample *output, const FFTSample *input) 

142 
{ 

143 
s>imdct_half(s, output, input); 

144 
} 

145  
146 
static inline void ff_mdct_calc(FFTContext *s, FFTSample *output, 

147 
const FFTSample *input) 

148 
{ 

149 
s>mdct_calc(s, output, input); 

150 
} 

151  
152  127 
/** 
153  128 
* Maximum window size for ff_kbd_window_init. 
154  129 
*/ 
...  ...  
213  188  
214  189 
void ff_rdft_init_arm(RDFTContext *s); 
215  190  
216 
static av_always_inline void ff_rdft_calc(RDFTContext *s, FFTSample *data) 

217 
{ 

218 
s>rdft_calc(s, data); 

219 
} 

220  
221  191 
/* Discrete Cosine Transform */ 
222  192  
223  193 
struct DCTContext { 
...  ...  
239  209 
* @note the first element of the input of DSTI is ignored 
240  210 
*/ 
241  211 
int ff_dct_init(DCTContext *s, int nbits, enum DCTTransformType type); 
242 
void ff_dct_calc(DCTContext *s, FFTSample *data); 

243  212 
void ff_dct_end (DCTContext *s); 
244  213  
245  214 
#endif /* AVCODEC_FFT_H */ 
Also available in: Unified diff