Go to the documentation of this file.
19 #ifndef AVCODEC_AVFFT_H
20 #define AVCODEC_AVFFT_H
void av_fft_end(FFTContext *s)
void av_imdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input)
filter_frame For filters that do not use the this method is called when a frame is pushed to the filter s input It can be called at any time except in a reentrant way If the input frame is enough to produce output
AVComplexFloat FFTComplex
void av_fft_permute(FFTContext *s, FFTComplex *z)
Do the permutation needed BEFORE calling ff_fft_calc().
DCTContext * av_dct_init(int nbits, enum DCTTransformType type)
Set up DCT.
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf type
void av_dct_end(DCTContext *s)
void av_rdft_calc(RDFTContext *s, FFTSample *data)
void av_dct_calc(DCTContext *s, FFTSample *data)
FFTContext * av_mdct_init(int nbits, int inverse, double scale)
void av_mdct_end(FFTContext *s)
RDFTContext * av_rdft_init(int nbits, enum RDFTransformType trans)
Set up a real FFT.
and forward the test the status of outputs and forward it to the corresponding return FFERROR_NOT_READY If the filters stores internally one or a few frame for some input
FFTContext * av_fft_init(int nbits, int inverse)
Set up a complex FFT.
static uint32_t inverse(uint32_t v)
find multiplicative inverse modulo 2 ^ 32
void av_rdft_end(RDFTContext *s)
void av_fft_calc(FFTContext *s, FFTComplex *z)
Do a complex FFT with the parameters defined in av_fft_init().
void av_mdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input)
void av_imdct_half(FFTContext *s, FFTSample *output, const FFTSample *input)