]> git.sesse.net Git - ffmpeg/commitdiff
avcodec/aac: Share common init code of float decoder and encoder
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
Sun, 22 Nov 2020 22:33:03 +0000 (23:33 +0100)
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
Tue, 8 Dec 2020 16:51:48 +0000 (17:51 +0100)
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
libavcodec/aacdec_template.c
libavcodec/aacenc.c
libavcodec/aactab.c
libavcodec/aactab.h

index 3bf271af543f475b32f32d0c556813363f82b03c..fbe30740715fecaacf5f9ebddf31b647fc62ca9d 100644 (file)
@@ -1230,17 +1230,19 @@ static av_cold void aac_static_table_init(void)
                     352);
 
     // window initialization
-    AAC_RENAME(ff_kbd_window_init)(AAC_KBD_RENAME(kbd_long_1024), 4.0, 1024);
-    AAC_RENAME(ff_kbd_window_init)(AAC_KBD_RENAME(kbd_short_128), 6.0, 128);
 #if !USE_FIXED
     AAC_RENAME(ff_kbd_window_init)(AAC_RENAME(aac_kbd_long_960), 4.0, 960);
     AAC_RENAME(ff_kbd_window_init)(AAC_RENAME(aac_kbd_short_120), 6.0, 120);
     AAC_RENAME(ff_sine_window_init)(AAC_RENAME(sine_960), 960);
     AAC_RENAME(ff_sine_window_init)(AAC_RENAME(sine_120), 120);
-#endif
+    ff_aac_float_common_init();
+#else
+    AAC_RENAME(ff_kbd_window_init)(AAC_KBD_RENAME(kbd_long_1024), 4.0, 1024);
+    AAC_RENAME(ff_kbd_window_init)(AAC_KBD_RENAME(kbd_short_128), 6.0, 128);
     AAC_RENAME(ff_init_ff_sine_windows)(10);
-    AAC_RENAME(ff_init_ff_sine_windows)( 9);
     AAC_RENAME(ff_init_ff_sine_windows)( 7);
+#endif
+    AAC_RENAME(ff_init_ff_sine_windows)( 9);
 
     AAC_RENAME(ff_cbrt_tableinit)();
 }
index 274e5ca294a60a09d54ac71c19760bcbf249712e..070a2e706ab95328cf45d95bf5e4f9700d71ea4e 100644 (file)
@@ -36,7 +36,6 @@
 #include "put_bits.h"
 #include "internal.h"
 #include "mpeg4audio.h"
-#include "kbdwin.h"
 #include "sinewin.h"
 #include "profiles.h"
 
@@ -922,10 +921,7 @@ static av_cold int dsp_init(AVCodecContext *avctx, AACEncContext *s)
         return AVERROR(ENOMEM);
 
     // window init
-    ff_kbd_window_init(ff_aac_kbd_long_1024, 4.0, 1024);
-    ff_kbd_window_init(ff_aac_kbd_short_128, 6.0, 128);
-    ff_init_ff_sine_windows(10);
-    ff_init_ff_sine_windows(7);
+    ff_aac_float_common_init();
 
     if ((ret = ff_mdct_init(&s->mdct1024, 11, 0, 32768.0)) < 0)
         return ret;
index e886642e669b85f9edf882b336e4e98f3f8d37a2..b9d1336d9726ffa501cafa03cee4a15d9f86b26a 100644 (file)
@@ -27,6 +27,7 @@
  * @author Maxim Gavrilov ( maxim.gavrilov gmail com )
  */
 
+#include "config.h"
 #include "libavutil/mem.h"
 #include "libavutil/thread.h"
 #include "aac.h"
 float ff_aac_pow2sf_tab[428];
 float ff_aac_pow34sf_tab[428];
 
+#if CONFIG_AAC_ENCODER || CONFIG_AAC_DECODER
+#include "kbdwin.h"
+#include "sinewin.h"
+
 DECLARE_ALIGNED(32, float,  ff_aac_kbd_long_1024)[1024];
 DECLARE_ALIGNED(32, float,  ff_aac_kbd_short_128)[128];
 
+av_cold void ff_aac_float_common_init(void)
+{
+    ff_kbd_window_init(ff_aac_kbd_long_1024, 4.0, 1024);
+    ff_kbd_window_init(ff_aac_kbd_short_128, 6.0, 128);
+    ff_init_ff_sine_windows(10);
+    ff_init_ff_sine_windows(7);
+}
+#endif
+
 const uint8_t ff_aac_num_swb_1024[] = {
     41, 41, 47, 49, 49, 51, 47, 47, 43, 43, 43, 40, 40
 };
index ddef8462f0e6e3e3f791b50ef0ac31e2b824a5fd..8a354e818624b3b1ccaef3c5468f08ee36004755 100644 (file)
@@ -98,6 +98,9 @@ DECLARE_ALIGNED(32, extern const float, ff_aac_eld_window_480)[1800];
 DECLARE_ALIGNED(32, extern const int,   ff_aac_eld_window_480_fixed)[1800];
 // @}
 
+/* Initializes data shared between float decoder and encoder. */
+void ff_aac_float_common_init(void);
+
 /* @name number of scalefactor window bands for long and short transform windows respectively
  * @{
  */