Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLynne <dev@lynne.ee>2022-10-28 22:36:10 +0300
committerLynne <dev@lynne.ee>2022-11-06 16:39:33 +0300
commit469cd8d7fa55ebd07be31e4c5bd0ed4b45c551dc (patch)
tree39a6426364b9fdd54468fc16b0bc6137c42927c7 /libavcodec/aac.h
parent4cee7ebd75205bca06ca8010711ae2f83a55caa6 (diff)
aacdec: convert to lavu/tx and support fixed-point 960-sample decoding
This patch replaces the transform used in AAC with lavu/tx and removes the limitation on only being able to decode 960-sample files with the float decoder. This commit also removes a whole bunch of unnecessary and slow lifting steps the decoder did to compensate for the poor accuracy of the old integer transformation code. Overall float decoder speedup on Zen 3 for 64kbps: 32%
Diffstat (limited to 'libavcodec/aac.h')
-rw-r--r--libavcodec/aac.h27
1 files changed, 16 insertions, 11 deletions
diff --git a/libavcodec/aac.h b/libavcodec/aac.h
index c8d6b17710..285d3b7482 100644
--- a/libavcodec/aac.h
+++ b/libavcodec/aac.h
@@ -36,11 +36,8 @@
#include "libavutil/float_dsp.h"
#include "libavutil/fixed_dsp.h"
#include "libavutil/mem_internal.h"
+#include "libavutil/tx.h"
#include "avcodec.h"
-#if !USE_FIXED
-#include "mdct15.h"
-#endif
-#include "fft.h"
#include "mpeg4audio.h"
#include "sbr.h"
@@ -326,16 +323,24 @@ struct AACContext {
* @name Computed / set up during initialization
* @{
*/
- FFTContext mdct;
- FFTContext mdct_small;
- FFTContext mdct_ld;
- FFTContext mdct_ltp;
+ AVTXContext *mdct120;
+ AVTXContext *mdct128;
+ AVTXContext *mdct480;
+ AVTXContext *mdct512;
+ AVTXContext *mdct960;
+ AVTXContext *mdct1024;
+ AVTXContext *mdct_ltp;
+
+ av_tx_fn mdct120_fn;
+ av_tx_fn mdct128_fn;
+ av_tx_fn mdct480_fn;
+ av_tx_fn mdct512_fn;
+ av_tx_fn mdct960_fn;
+ av_tx_fn mdct1024_fn;
+ av_tx_fn mdct_ltp_fn;
#if USE_FIXED
AVFixedDSPContext *fdsp;
#else
- MDCT15Context *mdct120;
- MDCT15Context *mdct480;
- MDCT15Context *mdct960;
AVFloatDSPContext *fdsp;
#endif /* USE_FIXED */
int random_state;