FFmpeg

#include <stdint.h>
#include <stddef.h>
Go to the source code of this file.
Data Structures  
struct  AVComplexFloat 
struct  AVComplexDouble 
struct  AVComplexInt32 
Typedefs  
typedef void(*  av_tx_fn) (AVTXContext *s, void *out, void *in, ptrdiff_t stride) 
Function pointer to a function to perform the transform. More...  
Enumerations  
enum  AVTXType { AV_TX_FLOAT_FFT = 0, AV_TX_FLOAT_MDCT = 1, AV_TX_DOUBLE_FFT = 2, AV_TX_DOUBLE_MDCT = 3, AV_TX_INT32_FFT = 4, AV_TX_INT32_MDCT = 5 } 
Functions  
int  av_tx_init (AVTXContext **ctx, av_tx_fn *tx, enum AVTXType type, int inv, int len, const void *scale, uint64_t flags) 
Initialize a transform context with the given configuration (i)MDCTs with an odd length are currently not supported. More...  
void  av_tx_uninit (AVTXContext **ctx) 
Frees a context and sets ctx to NULL, does nothing when ctx == NULL. More...  
Function pointer to a function to perform the transform.
s  the transform context 
out  the output array 
in  the input array 
stride  the input or output stride in bytes 
The out and in arrays must be aligned to the maximum required by the CPU architecture. The stride must follow the constraints the transform type has specified.
enum AVTXType 
Enumerator  

AV_TX_FLOAT_FFT 
Standard complex to complex FFT with sample data type AVComplexFloat. Output is not 1/len normalized. Scaling currently unsupported. The stride parameter is ignored. 
AV_TX_FLOAT_MDCT 
Standard MDCT with sample data type of float and a scale type of float. Length is the frame size, not the window size (which is 2x frame) For forward transforms, the stride specifies the spacing between each sample in the output array in bytes. The input must be a flat array. For inverse transforms, the stride specifies the spacing between each sample in the input array in bytes. The output will be a flat array. Stride must be a nonzero multiple of sizeof(float). NOTE: the inverse transform is halflength, meaning the output will not contain redundant data. This is what most codecs work with. 
AV_TX_DOUBLE_FFT 
Same as AV_TX_FLOAT_FFT with a data type of AVComplexDouble. 
AV_TX_DOUBLE_MDCT 
Same as AV_TX_FLOAT_MDCT with data and scale type of double. Stride must be a nonzero multiple of sizeof(double). 
AV_TX_INT32_FFT 
Same as AV_TX_FLOAT_FFT with a data type of AVComplexInt32. 
AV_TX_INT32_MDCT 
Same as AV_TX_FLOAT_MDCT with data type of int32_t and scale type of float. Only scale values less than or equal to 1.0 are supported. Stride must be a nonzero multiple of sizeof(int32_t). 
int av_tx_init  (  AVTXContext **  ctx, 
av_tx_fn *  tx,  
enum AVTXType  type,  
int  inv,  
int  len,  
const void *  scale,  
uint64_t  flags  
) 
Initialize a transform context with the given configuration (i)MDCTs with an odd length are currently not supported.
ctx  the context to allocate, will be NULL on error 
tx  pointer to the transform function pointer to set 
type  type the type of transform 
inv  whether to do an inverse or a forward transform 
len  the size of the transform in samples 
scale  pointer to the value to scale the output if supported by type 
flags  currently unused 
Definition at line 123 of file tx.c.
Referenced by config_input(), config_output(), decode_init(), and siren_init().
void av_tx_uninit  (  AVTXContext **  ctx  ) 
Frees a context and sets ctx to NULL, does nothing when ctx == NULL.
Definition at line 110 of file tx.c.
Referenced by av_tx_init(), decode_close(), siren_close(), and uninit().