@ AV_TX_REAL_TO_REAL
Perform a real to half-complex RDFT.
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...
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_tx_fn)(AVTXContext *s, void *out, void *in, ptrdiff_t stride)
Function pointer to a function to perform the transform.
@ AV_TX_FLOAT_MDCT
Standard MDCT with a sample data type of float, double or int32_t, respecively.
@ AV_TX_FLOAT_FFT
Standard complex to complex FFT with sample data type of AVComplexFloat, AVComplexDouble or AVComplex...
@ AV_TX_FULL_IMDCT
Performs a full inverse MDCT rather than leaving out samples that can be derived through symmetry.
@ AV_TX_REAL_TO_IMAGINARY
@ AV_TX_INPLACE
Allows for in-place transformations, where input == output.
@ AV_TX_UNALIGNED
Relaxes alignment requirement for the in and out arrays of av_tx_fn().
@ AV_TX_FLOAT_DCT_I
Discrete Cosine Transform I.
AVTXFlags
Flags for av_tx_init()
void av_tx_uninit(AVTXContext **ctx)
Frees a context and sets *ctx to NULL, does nothing when *ctx == NULL.
@ AV_TX_FLOAT_RDFT
Real to complex and complex to real DFTs.
@ AV_TX_FLOAT_DST_I
Discrete Sine Transform I.
static void scale(int *out, const int *in, const int w, const int h, const int shift)
@ AV_TX_FLOAT_DCT
Real to real (DCT) transforms.
#define flags(name, subs,...)