|
|
|
@ -19,6 +19,10 @@ |
|
|
|
|
#ifndef AVCODEC_AVFFT_H |
|
|
|
|
#define AVCODEC_AVFFT_H |
|
|
|
|
|
|
|
|
|
#include "libavutil/attributes.h" |
|
|
|
|
#include "version_major.h" |
|
|
|
|
#if FF_API_AVFFT |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @file |
|
|
|
|
* @ingroup lavc_fft |
|
|
|
@ -44,26 +48,42 @@ typedef struct FFTContext FFTContext; |
|
|
|
|
* Set up a complex FFT. |
|
|
|
|
* @param nbits log2 of the length of the input array |
|
|
|
|
* @param inverse if 0 perform the forward transform, if 1 perform the inverse |
|
|
|
|
* @deprecated use av_tx_init from libavutil/tx.h with a type of AV_TX_FLOAT_FFT |
|
|
|
|
*/ |
|
|
|
|
attribute_deprecated |
|
|
|
|
FFTContext *av_fft_init(int nbits, int inverse); |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Do the permutation needed BEFORE calling ff_fft_calc(). |
|
|
|
|
* @deprecated without replacement |
|
|
|
|
*/ |
|
|
|
|
attribute_deprecated |
|
|
|
|
void av_fft_permute(FFTContext *s, FFTComplex *z); |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Do a complex FFT with the parameters defined in av_fft_init(). The |
|
|
|
|
* input data must be permuted before. No 1.0/sqrt(n) normalization is done. |
|
|
|
|
* @deprecated use the av_tx_fn value returned by av_tx_init, which also does permutation |
|
|
|
|
*/ |
|
|
|
|
attribute_deprecated |
|
|
|
|
void av_fft_calc(FFTContext *s, FFTComplex *z); |
|
|
|
|
|
|
|
|
|
attribute_deprecated |
|
|
|
|
void av_fft_end(FFTContext *s); |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @deprecated use av_tx_init from libavutil/tx.h with a type of AV_TX_FLOAT_MDCT, |
|
|
|
|
* with a flag of AV_TX_FULL_IMDCT for a replacement to av_imdct_calc. |
|
|
|
|
*/ |
|
|
|
|
attribute_deprecated |
|
|
|
|
FFTContext *av_mdct_init(int nbits, int inverse, double scale); |
|
|
|
|
attribute_deprecated |
|
|
|
|
void av_imdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input); |
|
|
|
|
attribute_deprecated |
|
|
|
|
void av_imdct_half(FFTContext *s, FFTSample *output, const FFTSample *input); |
|
|
|
|
attribute_deprecated |
|
|
|
|
void av_mdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input); |
|
|
|
|
attribute_deprecated |
|
|
|
|
void av_mdct_end(FFTContext *s); |
|
|
|
|
|
|
|
|
|
/* Real Discrete Fourier Transform */ |
|
|
|
@ -81,9 +101,14 @@ typedef struct RDFTContext RDFTContext; |
|
|
|
|
* Set up a real FFT. |
|
|
|
|
* @param nbits log2 of the length of the input array |
|
|
|
|
* @param trans the type of transform |
|
|
|
|
* |
|
|
|
|
* @deprecated use av_tx_init from libavutil/tx.h with a type of AV_TX_FLOAT_RDFT |
|
|
|
|
*/ |
|
|
|
|
attribute_deprecated |
|
|
|
|
RDFTContext *av_rdft_init(int nbits, enum RDFTransformType trans); |
|
|
|
|
attribute_deprecated |
|
|
|
|
void av_rdft_calc(RDFTContext *s, FFTSample *data); |
|
|
|
|
attribute_deprecated |
|
|
|
|
void av_rdft_end(RDFTContext *s); |
|
|
|
|
|
|
|
|
|
/* Discrete Cosine Transform */ |
|
|
|
@ -106,13 +131,19 @@ enum DCTTransformType { |
|
|
|
|
* @param type the type of transform |
|
|
|
|
* |
|
|
|
|
* @note the first element of the input of DST-I is ignored |
|
|
|
|
* |
|
|
|
|
* @deprecated use av_tx_init from libavutil/tx.h with an appropriate type of AV_TX_FLOAT_DCT |
|
|
|
|
*/ |
|
|
|
|
attribute_deprecated |
|
|
|
|
DCTContext *av_dct_init(int nbits, enum DCTTransformType type); |
|
|
|
|
attribute_deprecated |
|
|
|
|
void av_dct_calc(DCTContext *s, FFTSample *data); |
|
|
|
|
attribute_deprecated |
|
|
|
|
void av_dct_end (DCTContext *s); |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @} |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
#endif /* FF_API_AVFFT */ |
|
|
|
|
#endif /* AVCODEC_AVFFT_H */ |
|
|
|
|