]> git.sesse.net Git - ffmpeg/commitdiff
avcodec/aacdec, sinewin: Move 120 and 960 point sine tables to aacdec
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
Sun, 22 Nov 2020 13:27:45 +0000 (14:27 +0100)
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
Tue, 8 Dec 2020 16:51:47 +0000 (17:51 +0100)
The floating point AAC decoder is the only user of these tables, so it
makes sense to move them there. Furthermore, initializing the ordinary
power-of-two sinetables is currently not thread-safe and if the 120- and
960-point sinetables were not moved, one would have to choose whether
to guard initializing these two tables with their own AVOnces or not.
Doing so would add unnecessary AVOnces as the AAC decoder already guards
initializing its static data by an AVOnce; not doing so would be fragile
if a second user of these tables were to be added.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
libavcodec/aacdec.c
libavcodec/aacdec_template.c
libavcodec/sinewin.h
libavcodec/sinewin_tablegen.h
libavcodec/sinewin_tablegen_template.c

index d17852d8ba8597cf1ab601ccaeb5b786fcbda0e8..fd4805f6eb2812a6a9b7c52b3be52c23dadb17b7 100644 (file)
@@ -69,6 +69,9 @@
 #   include "mips/aacdec_mips.h"
 #endif
 
+DECLARE_ALIGNED(32, static INTFLOAT, AAC_RENAME(sine_120))[120];
+DECLARE_ALIGNED(32, static INTFLOAT, AAC_RENAME(sine_960))[960];
+
 static av_always_inline void reset_predict_state(PredictorState *ps)
 {
     ps->r0   = 0.0f;
index 186175e6e6286fc78c4c1a921fb8cb9cae1698e1..e6fe913a27607c834b03bd8a3ecc6015574ac1e2 100644 (file)
@@ -1235,8 +1235,8 @@ static av_cold void aac_static_table_init(void)
 #if !USE_FIXED
     AAC_RENAME(ff_kbd_window_init)(AAC_RENAME(ff_aac_kbd_long_960), 4.0, 960);
     AAC_RENAME(ff_kbd_window_init)(AAC_RENAME(ff_aac_kbd_short_120), 6.0, 120);
-    AAC_RENAME(ff_sine_window_init)(AAC_RENAME(ff_sine_960), 960);
-    AAC_RENAME(ff_sine_window_init)(AAC_RENAME(ff_sine_120), 120);
+    AAC_RENAME(ff_sine_window_init)(AAC_RENAME(sine_960), 960);
+    AAC_RENAME(ff_sine_window_init)(AAC_RENAME(sine_120), 120);
 #endif
     AAC_RENAME(ff_init_ff_sine_windows)(10);
     AAC_RENAME(ff_init_ff_sine_windows)( 9);
@@ -2810,9 +2810,9 @@ static void imdct_and_windowing_960(AACContext *ac, SingleChannelElement *sce)
     INTFLOAT *in    = sce->coeffs;
     INTFLOAT *out   = sce->ret;
     INTFLOAT *saved = sce->saved;
-    const INTFLOAT *swindow      = ics->use_kb_window[0] ? AAC_RENAME(ff_aac_kbd_short_120) : AAC_RENAME(ff_sine_120);
-    const INTFLOAT *lwindow_prev = ics->use_kb_window[1] ? AAC_RENAME(ff_aac_kbd_long_960) : AAC_RENAME(ff_sine_960);
-    const INTFLOAT *swindow_prev = ics->use_kb_window[1] ? AAC_RENAME(ff_aac_kbd_short_120) : AAC_RENAME(ff_sine_120);
+    const INTFLOAT *swindow      = ics->use_kb_window[0] ? AAC_RENAME(ff_aac_kbd_short_120) : AAC_RENAME(sine_120);
+    const INTFLOAT *lwindow_prev = ics->use_kb_window[1] ? AAC_RENAME(ff_aac_kbd_long_960) : AAC_RENAME(sine_960);
+    const INTFLOAT *swindow_prev = ics->use_kb_window[1] ? AAC_RENAME(ff_aac_kbd_short_120) : AAC_RENAME(sine_120);
     INTFLOAT *buf  = ac->buf_mdct;
     INTFLOAT *temp = ac->temp;
     int i;
index 329e9bb5be6fc75b5526a9baaae77102b68619a0..7b64096a717762123e42ea28f69ae2573ecb2fe7 100644 (file)
@@ -38,9 +38,6 @@
 #define SINETABLE(size) \
     SINETABLE_CONST DECLARE_ALIGNED(32, INTFLOAT, AAC_RENAME(ff_sine_##size))[size]
 
-#define SINETABLE120960(size) \
-    DECLARE_ALIGNED(32, INTFLOAT, AAC_RENAME(ff_sine_##size))[size]
-
 /**
  * Generate a sine window.
  * @param   window  pointer to half window
@@ -55,11 +52,9 @@ void AAC_RENAME(ff_init_ff_sine_windows)(int index);
 
 extern SINETABLE(  32);
 extern SINETABLE(  64);
-extern SINETABLE120960(120);
 extern SINETABLE( 128);
 extern SINETABLE( 256);
 extern SINETABLE( 512);
-extern SINETABLE120960(960);
 extern SINETABLE(1024);
 extern SINETABLE(2048);
 extern SINETABLE(4096);
index 3c11cb62829988e3b0c62df574a96dca010804ab..1959074189dd404ebdb1b17fdc925dd5b77ca421 100644 (file)
 #include "libavutil/attributes.h"
 #include "libavutil/common.h"
 
-#if !USE_FIXED
-SINETABLE120960(120);
-SINETABLE120960(960);
-#endif
 #if !CONFIG_HARDCODED_TABLES
 SINETABLE(  32);
 SINETABLE(  64);
index b8eb407bd8952f7953310851f0158ebb7d263b17..43ce1ba82e8384f15a9c53d7403c0dc1c2486de5 100644 (file)
@@ -33,8 +33,6 @@
 #define SINETABLE_CONST
 #define SINETABLE(size) \
     INTFLOAT AAC_RENAME(ff_sine_##size)[size]
-#define SINETABLE120960(size) \
-    INTFLOAT AAC_RENAME(ff_sine_##size)[size]
 #define FF_ARRAY_ELEMS(a) (sizeof(a) / sizeof((a)[0]))
 #include "sinewin_tablegen.h"
 #include "tableprint.h"