summaryrefslogtreecommitdiff
path: root/libavutil/tx.h
diff options
context:
space:
mode:
authorLynne <dev@lynne.ee>2021-01-12 08:11:47 +0100
committerLynne <dev@lynne.ee>2021-01-13 17:34:13 +0100
commit06a8596825e069a2e26810be40871e7d98a00f67 (patch)
tree0568da7a5e99bc662816008ba678a33b5401793f /libavutil/tx.h
parentca21cb1e36ccae2ee71d4299d477fa9284c1f551 (diff)
downloadffmpeg-06a8596825e069a2e26810be40871e7d98a00f67.tar.gz
lavu: support arbitrary-point FFTs and all even (i)MDCT transforms
This patch adds support for arbitrary-point FFTs and all even MDCT transforms. Odd MDCTs are not supported yet as they're based on the DCT-II and DCT-III and they're very niche. With this we can now write tests.
Diffstat (limited to 'libavutil/tx.h')
-rw-r--r--libavutil/tx.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/libavutil/tx.h b/libavutil/tx.h
index 418e8ec1ed..f49eb8c4c7 100644
--- a/libavutil/tx.h
+++ b/libavutil/tx.h
@@ -51,6 +51,8 @@ enum AVTXType {
* 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_FLOAT_MDCT = 1,
/**
@@ -93,8 +95,7 @@ typedef void (*av_tx_fn)(AVTXContext *s, void *out, void *in, ptrdiff_t stride);
/**
* Initialize a transform context with the given configuration
- * Currently power of two lengths from 2 to 131072 are supported, along with
- * any length decomposable to a power of two and either 3, 5 or 15.
+ * (i)MDCTs with an odd length are currently not supported.
*
* @param ctx the context to allocate, will be NULL on error
* @param tx pointer to the transform function pointer to set