|
|
@ -40,11 +40,17 @@ enum AVTXType { |
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Standard complex to complex FFT with sample data type AVComplexFloat. |
|
|
|
* Standard complex to complex FFT with sample data type AVComplexFloat. |
|
|
|
* Output is not 1/len normalized. Scaling currently unsupported. |
|
|
|
* Output is not 1/len normalized. Scaling currently unsupported. |
|
|
|
|
|
|
|
* The stride parameter is ignored. |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
AV_TX_FLOAT_FFT = 0, |
|
|
|
AV_TX_FLOAT_FFT = 0, |
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Standard MDCT with sample data type of float and a scale type of |
|
|
|
* 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) |
|
|
|
* 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). |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
AV_TX_FLOAT_MDCT = 1, |
|
|
|
AV_TX_FLOAT_MDCT = 1, |
|
|
|
/**
|
|
|
|
/**
|
|
|
@ -53,6 +59,7 @@ enum AVTXType { |
|
|
|
AV_TX_DOUBLE_FFT = 2, |
|
|
|
AV_TX_DOUBLE_FFT = 2, |
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Same as AV_TX_FLOAT_MDCT with data and scale type of double. |
|
|
|
* 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_DOUBLE_MDCT = 3, |
|
|
|
AV_TX_DOUBLE_MDCT = 3, |
|
|
|
/**
|
|
|
|
/**
|
|
|
@ -62,6 +69,7 @@ enum AVTXType { |
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Same as AV_TX_FLOAT_MDCT with data type of int32_t and scale type of float. |
|
|
|
* 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. |
|
|
|
* Only scale values less than or equal to 1.0 are supported. |
|
|
|
|
|
|
|
* Stride must be a non-zero multiple of sizeof(int32_t). |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
AV_TX_INT32_MDCT = 5, |
|
|
|
AV_TX_INT32_MDCT = 5, |
|
|
|
}; |
|
|
|
}; |
|
|
@ -75,8 +83,11 @@ enum AVTXType { |
|
|
|
* @param s the transform context |
|
|
|
* @param s the transform context |
|
|
|
* @param out the output array |
|
|
|
* @param out the output array |
|
|
|
* @param in the input array |
|
|
|
* @param in the input array |
|
|
|
* @param stride the input or output stride (depending on transform direction) |
|
|
|
* @param stride the input or output stride in bytes |
|
|
|
* in bytes, currently implemented for all MDCT transforms |
|
|
|
* |
|
|
|
|
|
|
|
* 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. |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
typedef void (*av_tx_fn)(AVTXContext *s, void *out, void *in, ptrdiff_t stride); |
|
|
|
typedef void (*av_tx_fn)(AVTXContext *s, void *out, void *in, ptrdiff_t stride); |
|
|
|
|
|
|
|
|
|
|
|