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 } |
enum | AVTXFlags { AV_TX_INPLACE = 1ULL << 0 } |
Flags for av_tx_init() More... | |
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... | |
typedef void(* av_tx_fn) (AVTXContext *s, void *out, void *in, ptrdiff_t stride) |
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 non-zero multiple of sizeof(float). NOTE: the inverse transform is half-length, 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 non-zero 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 non-zero multiple of sizeof(int32_t). |
enum AVTXFlags |
Flags for av_tx_init()
Enumerator | |
---|---|
AV_TX_INPLACE | Performs an in-place transformation on the input. The output argument of av_tn_fn() MUST match the input. May be unsupported or slower for some transform types. |
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 | a bitmask of AVTXFlags or 0 |
Definition at line 160 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 146 of file tx.c.
Referenced by av_tx_init(), decode_close(), siren_close(), and uninit().