summaryrefslogtreecommitdiff
path: root/libavcodec/sinewin_fixed_tablegen.h
diff options
context:
space:
mode:
authorLynne <dev@lynne.ee>2022-10-28 21:36:10 +0200
committerLynne <dev@lynne.ee>2022-11-06 14:39:33 +0100
commit469cd8d7fa55ebd07be31e4c5bd0ed4b45c551dc (patch)
tree39a6426364b9fdd54468fc16b0bc6137c42927c7 /libavcodec/sinewin_fixed_tablegen.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/sinewin_fixed_tablegen.h')
-rw-r--r--libavcodec/sinewin_fixed_tablegen.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/libavcodec/sinewin_fixed_tablegen.h b/libavcodec/sinewin_fixed_tablegen.h
index c52c90bed7..056735704c 100644
--- a/libavcodec/sinewin_fixed_tablegen.h
+++ b/libavcodec/sinewin_fixed_tablegen.h
@@ -44,8 +44,11 @@
#include "libavutil/attributes.h"
#define SINETABLE_CONST
+SINETABLE( 120);
SINETABLE( 128);
+SINETABLE( 480);
SINETABLE( 512);
+SINETABLE( 960);
SINETABLE(1024);
#define SIN_FIX(a) (int)floor((a) * 0x80000000 + 0.5)
@@ -59,8 +62,11 @@ static av_cold void sine_window_init_fixed(int *window, int n)
static av_cold void init_sine_windows_fixed(void)
{
+ sine_window_init_fixed(sine_120_fixed, 120);
sine_window_init_fixed(sine_128_fixed, 128);
+ sine_window_init_fixed(sine_480_fixed, 480);
sine_window_init_fixed(sine_512_fixed, 512);
+ sine_window_init_fixed(sine_960_fixed, 960);
sine_window_init_fixed(sine_1024_fixed, 1024);
}
#endif /* CONFIG_HARDCODED_TABLES */