FFmpeg
Data Structures | Typedefs | Enumerations | Functions
tx.h File Reference
#include <stdint.h>
#include <stddef.h>

Go to the source code of this file.

Data Structures

struct  AVComplexFloat
 
struct  AVComplexDouble
 

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 }
 

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 Currently power of two lengths from 4 to 131072 are supported, along with any length decomposable to a power of two and either 3, 5 or 15. More...
 
void av_tx_uninit (AVTXContext **ctx)
 Frees a context and sets ctx to NULL, does nothing when ctx == NULL. More...
 

Typedef Documentation

typedef void(* av_tx_fn) (AVTXContext *s, void *out, void *in, ptrdiff_t stride)

Function pointer to a function to perform the transform.

Note
Using a different context than the one allocated during av_tx_init() is not allowed.
Parameters
sthe transform context
outthe output array
inthe input array
stridethe input or output stride (depending on transform direction) in bytes, currently implemented for all MDCT transforms

Definition at line 68 of file tx.h.

Enumeration Type Documentation

enum AVTXType
Enumerator
AV_TX_FLOAT_FFT 

Standard complex to complex FFT with sample data type AVComplexFloat.

Scaling currently unsupported

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)

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.

Definition at line 35 of file tx.h.

Function Documentation

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 Currently power of two lengths from 4 to 131072 are supported, along with any length decomposable to a power of two and either 3, 5 or 15.

Parameters
ctxthe context to allocate, will be NULL on error
txpointer to the transform function pointer to set
typetype the type of transform
invwhether to do an inverse or a forward transform
lenthe size of the transform in samples
scalepointer to the value to scale the output if supported by type
flagscurrently unused
Returns
0 on success, negative error code on failure

Definition at line 112 of file tx.c.

Referenced by config_input().

void av_tx_uninit ( AVTXContext **  ctx)

Frees a context and sets ctx to NULL, does nothing when ctx == NULL.

Definition at line 99 of file tx.c.

Referenced by av_tx_init(), and uninit().