Avoid global state.
---
 libavcodec/aarch64/mpegaudiodsp_init.c |   4 +-
 libavcodec/arm/mpegaudiodsp_init_arm.c |   2 +-
 libavcodec/mpc.c                       |   5 -
 libavcodec/mpc.h                       |   1 -
 libavcodec/mpc7.c                      |   1 -
 libavcodec/mpc8.c                      |   2 -
 libavcodec/mpegaudiodec_template.c     |   2 -
 libavcodec/mpegaudiodsp.h              |  16 +-
 libavcodec/mpegaudiodsp_template.c     | 302 +++++++++++++++++++++++++++++----
 libavcodec/ppc/mpegaudiodsp_altivec.c  |   2 +-
 libavcodec/qdm2.c                      |   1 -
 libavcodec/x86/mpegaudiodsp.c          |   2 +-
 12 files changed, 283 insertions(+), 57 deletions(-)

diff --git a/libavcodec/aarch64/mpegaudiodsp_init.c 
b/libavcodec/aarch64/mpegaudiodsp_init.c
index 849e310..66c7bef 100644
--- a/libavcodec/aarch64/mpegaudiodsp_init.c
+++ b/libavcodec/aarch64/mpegaudiodsp_init.c
@@ -24,9 +24,9 @@
 #include "libavcodec/mpegaudiodsp.h"
 #include "config.h"
 
-void ff_mpadsp_apply_window_fixed_neon(int32_t *synth_buf, int32_t *window,
+void ff_mpadsp_apply_window_fixed_neon(int32_t *synth_buf, const int32_t 
*window,
                                        int *dither, int16_t *samples, 
ptrdiff_t incr);
-void ff_mpadsp_apply_window_float_neon(float *synth_buf, float *window,
+void ff_mpadsp_apply_window_float_neon(float *synth_buf, const float *window,
                                        int *dither, float *samples, ptrdiff_t 
incr);
 
 av_cold void ff_mpadsp_init_aarch64(MPADSPContext *s)
diff --git a/libavcodec/arm/mpegaudiodsp_init_arm.c 
b/libavcodec/arm/mpegaudiodsp_init_arm.c
index e73aee6..8b6c835 100644
--- a/libavcodec/arm/mpegaudiodsp_init_arm.c
+++ b/libavcodec/arm/mpegaudiodsp_init_arm.c
@@ -25,7 +25,7 @@
 #include "libavcodec/mpegaudiodsp.h"
 #include "config.h"
 
-void ff_mpadsp_apply_window_fixed_armv6(int32_t *synth_buf, int32_t *window,
+void ff_mpadsp_apply_window_fixed_armv6(int32_t *synth_buf, const int32_t 
*window,
                                         int *dither, int16_t *out, int incr);
 
 av_cold void ff_mpadsp_init_arm(MPADSPContext *s)
diff --git a/libavcodec/mpc.c b/libavcodec/mpc.c
index 88f7226..7f13898 100644
--- a/libavcodec/mpc.c
+++ b/libavcodec/mpc.c
@@ -34,11 +34,6 @@
 #include "mpc.h"
 #include "mpcdata.h"
 
-av_cold void ff_mpc_init(void)
-{
-    ff_mpa_synth_init_fixed(ff_mpa_synth_window_fixed);
-}
-
 /**
  * Process decoded Musepack data and produce PCM
  */
diff --git a/libavcodec/mpc.h b/libavcodec/mpc.h
index 39b8d63..98e5a41e 100644
--- a/libavcodec/mpc.h
+++ b/libavcodec/mpc.h
@@ -70,7 +70,6 @@ typedef struct MPCContext {
     DECLARE_ALIGNED(16, int32_t, sb_samples)[MPA_MAX_CHANNELS][36][SBLIMIT];
 } MPCContext;
 
-void ff_mpc_init(void);
 void ff_mpc_dequantize_and_synth(MPCContext *c, int maxband, int16_t **out, 
int channels);
 
 #endif /* AVCODEC_MPC_H */
diff --git a/libavcodec/mpc7.c b/libavcodec/mpc7.c
index 28b5192..8e84eb8 100644
--- a/libavcodec/mpc7.c
+++ b/libavcodec/mpc7.c
@@ -77,7 +77,6 @@ static av_cold int mpc7_decode_init(AVCodecContext * avctx)
     ff_bswapdsp_init(&c->bdsp);
     ff_mpadsp_init(&c->mpadsp);
     c->bdsp.bswap_buf((uint32_t *) buf, (const uint32_t *) avctx->extradata, 
4);
-    ff_mpc_init();
     init_get_bits(&gb, buf, 128);
 
     c->IS = get_bits1(&gb);
diff --git a/libavcodec/mpc8.c b/libavcodec/mpc8.c
index 84dbb61..e026a6b 100644
--- a/libavcodec/mpc8.c
+++ b/libavcodec/mpc8.c
@@ -120,8 +120,6 @@ static av_cold int mpc8_decode_init(AVCodecContext * avctx)
     av_lfg_init(&c->rnd, 0xDEADBEEF);
     ff_mpadsp_init(&c->mpadsp);
 
-    ff_mpc_init();
-
     init_get_bits(&gb, avctx->extradata, 16);
 
     skip_bits(&gb, 3);//sample rate
diff --git a/libavcodec/mpegaudiodec_template.c 
b/libavcodec/mpegaudiodec_template.c
index 63df73e..9fe5085 100644
--- a/libavcodec/mpegaudiodec_template.c
+++ b/libavcodec/mpegaudiodec_template.c
@@ -280,8 +280,6 @@ static av_cold void decode_init_static(void)
                 scale_factor_mult[i][2]);
     }
 
-    RENAME(ff_mpa_synth_init)(RENAME(ff_mpa_synth_window));
-
     /* huffman decode tables */
     offset = 0;
     for (i = 1; i < 16; i++) {
diff --git a/libavcodec/mpegaudiodsp.h b/libavcodec/mpegaudiodsp.h
index fcf03cc..23c1c2e 100644
--- a/libavcodec/mpegaudiodsp.h
+++ b/libavcodec/mpegaudiodsp.h
@@ -25,10 +25,10 @@
 #include "libavutil/common.h"
 
 typedef struct MPADSPContext {
-    void (*apply_window_float)(float *synth_buf, float *window,
+    void (*apply_window_float)(float *synth_buf, const float *window,
                                int *dither_state, float *samples,
                                ptrdiff_t incr);
-    void (*apply_window_fixed)(int32_t *synth_buf, int32_t *window,
+    void (*apply_window_fixed)(int32_t *synth_buf, const int32_t *window,
                                int *dither_state, int16_t *samples,
                                ptrdiff_t incr);
     void (*dct32_float)(float *dst, const float *src);
@@ -41,20 +41,20 @@ typedef struct MPADSPContext {
 
 void ff_mpadsp_init(MPADSPContext *s);
 
-extern int32_t ff_mpa_synth_window_fixed[];
-extern float   ff_mpa_synth_window_float[];
+extern const int32_t ff_mpa_synth_window_fixed[];
+extern const float   ff_mpa_synth_window_float[];
 
 extern const int32_t ff_mpa_enwindow[257];
 
 void ff_mpa_synth_filter_fixed(MPADSPContext *s,
                                int32_t *synth_buf_ptr, int *synth_buf_offset,
-                               int32_t *window, int *dither_state,
+                               const int32_t *window, int *dither_state,
                                int16_t *samples, ptrdiff_t incr,
                                int32_t *sb_samples);
 
 void ff_mpa_synth_filter_float(MPADSPContext *s,
                                float *synth_buf_ptr, int *synth_buf_offset,
-                               float *window, int *dither_state,
+                               const float *window, int *dither_state,
                                float *samples, ptrdiff_t incr,
                                float *sb_samples);
 
@@ -66,10 +66,10 @@ void ff_mpadsp_init_x86(MPADSPContext *s);
 void ff_mpa_synth_init_float(float *window);
 void ff_mpa_synth_init_fixed(int32_t *window);
 
-void ff_mpadsp_apply_window_float(float *synth_buf, float *window,
+void ff_mpadsp_apply_window_float(float *synth_buf, const float *window,
                                   int *dither_state, float *samples,
                                   ptrdiff_t incr);
-void ff_mpadsp_apply_window_fixed(int32_t *synth_buf, int32_t *window,
+void ff_mpadsp_apply_window_fixed(int32_t *synth_buf, const int32_t *window,
                                   int *dither_state, int16_t *samples,
                                   ptrdiff_t incr);
 
diff --git a/libavcodec/mpegaudiodsp_template.c 
b/libavcodec/mpegaudiodsp_template.c
index 48f922a..d4ee205 100644
--- a/libavcodec/mpegaudiodsp_template.c
+++ b/libavcodec/mpegaudiodsp_template.c
@@ -245,7 +245,274 @@ DECLARE_ALIGNED(16, const INTFLOAT, 
RENAME(ff_mdct_win))[8][MDCT_BUF_SIZE] = {
 #endif
 };
 
-DECLARE_ALIGNED(16, MPA_INT, RENAME(ff_mpa_synth_window))[512+256];
+// the tables are generated by the following code
+#if 0
+{
+    int i, j;
+
+    /* max = 18760, max sum over all 16 coefs : 44736 */
+    for(i=0;i<257;i++) {
+        INTFLOAT v;
+        v = ff_mpa_enwindow[i];
+#if CONFIG_FLOAT
+        v *= 1.0 / (1LL<<(16 + FRAC_BITS));
+#endif
+        window[i] = v;
+        if ((i & 63) != 0)
+            v = -v;
+        if (i != 0)
+            window[512 - i] = v;
+    }
+
+
+    // Needed for avoiding shuffles in ASM implementations
+    for(i=0; i < 8; i++)
+        for(j=0; j < 16; j++)
+            window[512+16*i+j] = window[64*i+32-j];
+
+    for(i=0; i < 8; i++)
+        for(j=0; j < 16; j++)
+            window[512+128+16*i+j] = window[64*i+48-j];
+}
+#endif
+DECLARE_ALIGNED(16, const MPA_INT, RENAME(ff_mpa_synth_window))[512 + 256] = {
+#if CONFIG_FLOAT
+    0, -1.8189894e-12, -1.8189894e-12, -1.8189894e-12, -1.8189894e-12,
+    -1.8189894e-12, -1.8189894e-12, -3.63797881e-12, -3.63797881e-12,
+    -3.63797881e-12, -3.63797881e-12, -5.45696821e-12, -5.45696821e-12,
+    -7.27595761e-12, -7.27595761e-12, -9.09494702e-12, -9.09494702e-12,
+    -1.09139364e-11, -1.27329258e-11, -1.27329258e-11, -1.45519152e-11,
+    -1.63709046e-11, -1.8189894e-11, -2.00088834e-11, -2.36468622e-11,
+    -2.54658516e-11, -2.91038305e-11, -3.09228199e-11, -3.45607987e-11,
+    -3.81987775e-11, -4.36557457e-11, -4.72937245e-11, -5.27506927e-11,
+    -5.63886715e-11, -6.36646291e-11, -6.91215973e-11, -7.45785655e-11,
+    -8.18545232e-11, -8.91304808e-11, -9.64064384e-11, -1.05501385e-10,
+    -1.14596332e-10, -1.23691279e-10, -1.32786226e-10, -1.43700163e-10,
+    -1.54614099e-10, -1.65528036e-10, -1.76441972e-10, -1.89174898e-10,
+    -2.01907824e-10, -2.1282176e-10, -2.27373675e-10, -2.40106601e-10,
+    -2.52839527e-10, -2.67391442e-10, -2.80124368e-10, -2.92857294e-10,
+    -3.07409209e-10, -3.20142135e-10, -3.32875061e-10, -3.45607987e-10,
+    -3.56521923e-10, -3.6743586e-10, -3.78349796e-10, 3.87444743e-10,
+    3.9653969e-10, 4.03815648e-10, 4.09272616e-10, 4.12910595e-10, 
4.14729584e-10,
+    4.14729584e-10, 4.12910595e-10, 4.07453626e-10, 4.01996658e-10, 
3.91082722e-10,
+    3.78349796e-10, 3.63797881e-10, 3.43788997e-10, 3.21961124e-10, 
2.96495273e-10,
+    2.65572453e-10, 2.31011654e-10, 1.92812877e-10, 1.5097612e-10, 
1.03682396e-10,
+    5.27506927e-11, -3.63797881e-12, -6.54836185e-11, -1.30967237e-10,
+    -2.01907824e-10, -2.78305379e-10, -3.58340912e-10, -4.43833414e-10,
+    -5.34782885e-10, -6.31189323e-10, -7.29414751e-10, -8.34916136e-10,
+    -9.440555e-10, -1.05683284e-09, -1.17324817e-09, -1.29330147e-09,
+    -1.41699275e-09, -1.54250301e-09, -1.67165126e-09, -1.8026185e-09,
+    -1.93540473e-09, -2.06819095e-09, -2.20097718e-09, -2.3337634e-09,
+    -2.46654963e-09, -2.59751687e-09, -2.72484613e-09, -2.8503564e-09,
+    -2.97222869e-09, -3.08864401e-09, -3.19960236e-09, -3.30510375e-09,
+    -3.40151018e-09, -3.49064067e-09, -3.56885721e-09, -3.6397978e-09,
+    -3.69618647e-09, -3.7416612e-09, -3.77440301e-09, -3.79259291e-09,
+    -3.79623089e-09, -3.78349796e-09, -3.75257514e-09, 3.70528142e-09,
+    3.63797881e-09, 3.55066732e-09, 3.44334694e-09, 3.31419869e-09, 
3.16322257e-09,
+    2.99041858e-09, 2.79214873e-09, 2.57205102e-09, 2.32830644e-09, 
2.05727702e-09,
+    1.76441972e-09, 1.44427759e-09, 1.10048859e-09, 7.3123374e-10, 
3.3651304e-10,
+    -8.18545232e-11, -5.23868948e-10, -9.91349225e-10, -1.48065737e-09,
+    -1.9917934e-09, -2.52475729e-09, -3.07773007e-09, -3.64889274e-09,
+    -4.23824531e-09, -4.84396878e-09, -5.46424417e-09, -6.09543349e-09,
+    -6.73935574e-09, -7.39055395e-09, -8.04902811e-09, -8.70932126e-09,
+    -9.3732524e-09, -1.00353645e-08, -1.06938387e-08, -1.13450369e-08,
+    -1.19853212e-08, -1.26146915e-08, -1.3225872e-08, -1.38188625e-08,
+    -1.43882062e-08, -1.4932084e-08, -1.5445039e-08, -1.59252522e-08,
+    -1.63672667e-08, -1.67692633e-08, -1.71276042e-08, -1.74350134e-08,
+    -1.76933099e-08, -1.78952178e-08, -1.80370989e-08, -1.81153155e-08,
+    -1.81280484e-08, -1.80716597e-08, -1.79406925e-08, -1.77351467e-08,
+    -1.74477464e-08, -1.70784915e-08, -1.66237442e-08, -1.60798663e-08,
+    -1.5446858e-08, -1.47192623e-08, -1.3897079e-08, -1.29766704e-08,
+    1.19580363e-08, 1.08393579e-08, 9.61881597e-09, 8.29641067e-09, 
6.86850399e-09,
+    5.3387339e-09, 3.70528142e-09, 1.96814653e-09, 1.27329258e-10, 
-1.81535142e-09,
+    -3.85989551e-09, -6.00266503e-09, -8.24547897e-09, -1.05828803e-08,
+    -1.30130502e-08, -1.55341695e-08, -1.81444193e-08, -2.08365236e-08,
+    -2.36104825e-08, -2.64626578e-08, -2.93857738e-08, -3.23761924e-08,
+    -3.54302756e-08, -3.85425665e-08, -4.1707608e-08, -4.49181243e-08,
+    -4.81704774e-08, -5.14573912e-08, -5.47734089e-08, -5.81112545e-08,
+    -6.14654709e-08, -6.48287823e-08, -6.81920937e-08, -7.15517672e-08,
+    -7.48987077e-08, -7.82274583e-08, -8.15289241e-08, -8.4795829e-08,
+    -8.80208972e-08, -9.11986717e-08, -9.43200575e-08, -9.73777787e-08,
+    -1.00368197e-07, -1.0327858e-07, -1.06107109e-07, -1.08844688e-07,
+    -1.11484042e-07, -1.14021532e-07, -1.16449883e-07, -1.18761818e-07,
+    -1.20951881e-07, -1.23016434e-07, -1.2495002e-07, -1.26745363e-07,
+    -1.28402462e-07, -1.29912223e-07, -1.31274646e-07, -1.32486093e-07,
+    -1.33541107e-07, -1.34437869e-07, -1.3517456e-07, -1.35751179e-07,
+    -1.36162271e-07, -1.36409653e-07, 1.36493327e-07, 1.36409653e-07,
+    1.36162271e-07, 1.35751179e-07, 1.3517456e-07, 1.34437869e-07, 
1.33541107e-07,
+    1.32486093e-07, 1.31274646e-07, 1.29912223e-07, 1.28402462e-07, 
1.26745363e-07,
+    1.2495002e-07, 1.23016434e-07, 1.20951881e-07, 1.18761818e-07, 
1.16449883e-07,
+    1.14021532e-07, 1.11484042e-07, 1.08844688e-07, 1.06107109e-07, 
1.0327858e-07,
+    1.00368197e-07, 9.73777787e-08, 9.43200575e-08, 9.11986717e-08, 
8.80208972e-08,
+    8.4795829e-08, 8.15289241e-08, 7.82274583e-08, 7.48987077e-08, 
7.15517672e-08,
+    6.81920937e-08, 6.48287823e-08, 6.14654709e-08, 5.81112545e-08, 
5.47734089e-08,
+    5.14573912e-08, 4.81704774e-08, 4.49181243e-08, 4.1707608e-08, 
3.85425665e-08,
+    3.54302756e-08, 3.23761924e-08, 2.93857738e-08, 2.64626578e-08, 
2.36104825e-08,
+    2.08365236e-08, 1.81444193e-08, 1.55341695e-08, 1.30130502e-08, 
1.05828803e-08,
+    8.24547897e-09, 6.00266503e-09, 3.85989551e-09, 1.81535142e-09,
+    -1.27329258e-10, -1.96814653e-09, -3.70528142e-09, -5.3387339e-09,
+    -6.86850399e-09, -8.29641067e-09, -9.61881597e-09, -1.08393579e-08,
+    1.19580363e-08, 1.29766704e-08, 1.3897079e-08, 1.47192623e-08, 
1.5446858e-08,
+    1.60798663e-08, 1.66237442e-08, 1.70784915e-08, 1.74477464e-08, 
1.77351467e-08,
+    1.79406925e-08, 1.80716597e-08, 1.81280484e-08, 1.81153155e-08, 
1.80370989e-08,
+    1.78952178e-08, 1.76933099e-08, 1.74350134e-08, 1.71276042e-08, 
1.67692633e-08,
+    1.63672667e-08, 1.59252522e-08, 1.5445039e-08, 1.4932084e-08, 
1.43882062e-08,
+    1.38188625e-08, 1.3225872e-08, 1.26146915e-08, 1.19853212e-08, 
1.13450369e-08,
+    1.06938387e-08, 1.00353645e-08, 9.3732524e-09, 8.70932126e-09, 
8.04902811e-09,
+    7.39055395e-09, 6.73935574e-09, 6.09543349e-09, 5.46424417e-09, 
4.84396878e-09,
+    4.23824531e-09, 3.64889274e-09, 3.07773007e-09, 2.52475729e-09, 
1.9917934e-09,
+    1.48065737e-09, 9.91349225e-10, 5.23868948e-10, 8.18545232e-11, 
-3.3651304e-10,
+    -7.3123374e-10, -1.10048859e-09, -1.44427759e-09, -1.76441972e-09,
+    -2.05727702e-09, -2.32830644e-09, -2.57205102e-09, -2.79214873e-09,
+    -2.99041858e-09, -3.16322257e-09, -3.31419869e-09, -3.44334694e-09,
+    -3.55066732e-09, -3.63797881e-09, 3.70528142e-09, 3.75257514e-09,
+    3.78349796e-09, 3.79623089e-09, 3.79259291e-09, 3.77440301e-09, 
3.7416612e-09,
+    3.69618647e-09, 3.6397978e-09, 3.56885721e-09, 3.49064067e-09, 
3.40151018e-09,
+    3.30510375e-09, 3.19960236e-09, 3.08864401e-09, 2.97222869e-09, 
2.8503564e-09,
+    2.72484613e-09, 2.59751687e-09, 2.46654963e-09, 2.3337634e-09, 
2.20097718e-09,
+    2.06819095e-09, 1.93540473e-09, 1.8026185e-09, 1.67165126e-09, 
1.54250301e-09,
+    1.41699275e-09, 1.29330147e-09, 1.17324817e-09, 1.05683284e-09, 
9.440555e-10,
+    8.34916136e-10, 7.29414751e-10, 6.31189323e-10, 5.34782885e-10, 
4.43833414e-10,
+    3.58340912e-10, 2.78305379e-10, 2.01907824e-10, 1.30967237e-10, 
6.54836185e-11,
+    3.63797881e-12, -5.27506927e-11, -1.03682396e-10, -1.5097612e-10,
+    -1.92812877e-10, -2.31011654e-10, -2.65572453e-10, -2.96495273e-10,
+    -3.21961124e-10, -3.43788997e-10, -3.63797881e-10, -3.78349796e-10,
+    -3.91082722e-10, -4.01996658e-10, -4.07453626e-10, -4.12910595e-10,
+    -4.14729584e-10, -4.14729584e-10, -4.12910595e-10, -4.09272616e-10,
+    -4.03815648e-10, -3.9653969e-10, 3.87444743e-10, 3.78349796e-10, 
3.6743586e-10,
+    3.56521923e-10, 3.45607987e-10, 3.32875061e-10, 3.20142135e-10, 
3.07409209e-10,
+    2.92857294e-10, 2.80124368e-10, 2.67391442e-10, 2.52839527e-10, 
2.40106601e-10,
+    2.27373675e-10, 2.1282176e-10, 2.01907824e-10, 1.89174898e-10, 
1.76441972e-10,
+    1.65528036e-10, 1.54614099e-10, 1.43700163e-10, 1.32786226e-10, 
1.23691279e-10,
+    1.14596332e-10, 1.05501385e-10, 9.64064384e-11, 8.91304808e-11, 
8.18545232e-11,
+    7.45785655e-11, 6.91215973e-11, 6.36646291e-11, 5.63886715e-11, 
5.27506927e-11,
+    4.72937245e-11, 4.36557457e-11, 3.81987775e-11, 3.45607987e-11, 
3.09228199e-11,
+    2.91038305e-11, 2.54658516e-11, 2.36468622e-11, 2.00088834e-11, 
1.8189894e-11,
+    1.63709046e-11, 1.45519152e-11, 1.27329258e-11, 1.27329258e-11, 
1.09139364e-11,
+    9.09494702e-12, 9.09494702e-12, 7.27595761e-12, 7.27595761e-12, 
5.45696821e-12,
+    5.45696821e-12, 3.63797881e-12, 3.63797881e-12, 3.63797881e-12, 
3.63797881e-12,
+    1.8189894e-12, 1.8189894e-12, 1.8189894e-12, 1.8189894e-12, 1.8189894e-12,
+    1.8189894e-12, -5.27506927e-11, -4.72937245e-11, -4.36557457e-11,
+    -3.81987775e-11, -3.45607987e-11, -3.09228199e-11, -2.91038305e-11,
+    -2.54658516e-11, -2.36468622e-11, -2.00088834e-11, -1.8189894e-11,
+    -1.63709046e-11, -1.45519152e-11, -1.27329258e-11, -1.27329258e-11,
+    -1.09139364e-11, -8.34916136e-10, -7.29414751e-10, -6.31189323e-10,
+    -5.34782885e-10, -4.43833414e-10, -3.58340912e-10, -2.78305379e-10,
+    -2.01907824e-10, -1.30967237e-10, -6.54836185e-11, -3.63797881e-12,
+    5.27506927e-11, 1.03682396e-10, 1.5097612e-10, 1.92812877e-10, 
2.31011654e-10,
+    -9.3732524e-09, -8.70932126e-09, -8.04902811e-09, -7.39055395e-09,
+    -6.73935574e-09, -6.09543349e-09, -5.46424417e-09, -4.84396878e-09,
+    -4.23824531e-09, -3.64889274e-09, -3.07773007e-09, -2.52475729e-09,
+    -1.9917934e-09, -1.48065737e-09, -9.91349225e-10, -5.23868948e-10,
+    -6.81920937e-08, -6.48287823e-08, -6.14654709e-08, -5.81112545e-08,
+    -5.47734089e-08, -5.14573912e-08, -4.81704774e-08, -4.49181243e-08,
+    -4.1707608e-08, -3.85425665e-08, -3.54302756e-08, -3.23761924e-08,
+    -2.93857738e-08, -2.64626578e-08, -2.36104825e-08, -2.08365236e-08,
+    6.81920937e-08, 7.15517672e-08, 7.48987077e-08, 7.82274583e-08, 
8.15289241e-08,
+    8.4795829e-08, 8.80208972e-08, 9.11986717e-08, 9.43200575e-08, 
9.73777787e-08,
+    1.00368197e-07, 1.0327858e-07, 1.06107109e-07, 1.08844688e-07, 
1.11484042e-07,
+    1.14021532e-07, 9.3732524e-09, 1.00353645e-08, 1.06938387e-08, 
1.13450369e-08,
+    1.19853212e-08, 1.26146915e-08, 1.3225872e-08, 1.38188625e-08, 
1.43882062e-08,
+    1.4932084e-08, 1.5445039e-08, 1.59252522e-08, 1.63672667e-08, 
1.67692633e-08,
+    1.71276042e-08, 1.74350134e-08, 8.34916136e-10, 9.440555e-10, 
1.05683284e-09,
+    1.17324817e-09, 1.29330147e-09, 1.41699275e-09, 1.54250301e-09, 
1.67165126e-09,
+    1.8026185e-09, 1.93540473e-09, 2.06819095e-09, 2.20097718e-09, 
2.3337634e-09,
+    2.46654963e-09, 2.59751687e-09, 2.72484613e-09, 5.27506927e-11, 
5.63886715e-11,
+    6.36646291e-11, 6.91215973e-11, 7.45785655e-11, 8.18545232e-11, 
8.91304808e-11,
+    9.64064384e-11, 1.05501385e-10, 1.14596332e-10, 1.23691279e-10, 
1.32786226e-10,
+    1.43700163e-10, 1.54614099e-10, 1.65528036e-10, 1.76441972e-10,
+    -1.89174898e-10, -1.76441972e-10, -1.65528036e-10, -1.54614099e-10,
+    -1.43700163e-10, -1.32786226e-10, -1.23691279e-10, -1.14596332e-10,
+    -1.05501385e-10, -9.64064384e-11, -8.91304808e-11, -8.18545232e-11,
+    -7.45785655e-11, -6.91215973e-11, -6.36646291e-11, -5.63886715e-11,
+    -2.8503564e-09, -2.72484613e-09, -2.59751687e-09, -2.46654963e-09,
+    -2.3337634e-09, -2.20097718e-09, -2.06819095e-09, -1.93540473e-09,
+    -1.8026185e-09, -1.67165126e-09, -1.54250301e-09, -1.41699275e-09,
+    -1.29330147e-09, -1.17324817e-09, -1.05683284e-09, -9.440555e-10,
+    -1.76933099e-08, -1.74350134e-08, -1.71276042e-08, -1.67692633e-08,
+    -1.63672667e-08, -1.59252522e-08, -1.5445039e-08, -1.4932084e-08,
+    -1.43882062e-08, -1.38188625e-08, -1.3225872e-08, -1.26146915e-08,
+    -1.19853212e-08, -1.13450369e-08, -1.06938387e-08, -1.00353645e-08,
+    -1.16449883e-07, -1.14021532e-07, -1.11484042e-07, -1.08844688e-07,
+    -1.06107109e-07, -1.0327858e-07, -1.00368197e-07, -9.73777787e-08,
+    -9.43200575e-08, -9.11986717e-08, -8.80208972e-08, -8.4795829e-08,
+    -8.15289241e-08, -7.82274583e-08, -7.48987077e-08, -7.15517672e-08,
+    1.81444193e-08, 2.08365236e-08, 2.36104825e-08, 2.64626578e-08, 
2.93857738e-08,
+    3.23761924e-08, 3.54302756e-08, 3.85425665e-08, 4.1707608e-08, 
4.49181243e-08,
+    4.81704774e-08, 5.14573912e-08, 5.47734089e-08, 5.81112545e-08, 
6.14654709e-08,
+    6.48287823e-08, 8.18545232e-11, 5.23868948e-10, 9.91349225e-10, 
1.48065737e-09,
+    1.9917934e-09, 2.52475729e-09, 3.07773007e-09, 3.64889274e-09, 
4.23824531e-09,
+    4.84396878e-09, 5.46424417e-09, 6.09543349e-09, 6.73935574e-09, 
7.39055395e-09,
+    8.04902811e-09, 8.70932126e-09, -2.65572453e-10, -2.31011654e-10,
+    -1.92812877e-10, -1.5097612e-10, -1.03682396e-10, -5.27506927e-11,
+    3.63797881e-12, 6.54836185e-11, 1.30967237e-10, 2.01907824e-10, 
2.78305379e-10,
+    3.58340912e-10, 4.43833414e-10, 5.34782885e-10, 6.31189323e-10, 
7.29414751e-10,
+    9.09494702e-12, 1.09139364e-11, 1.27329258e-11, 1.27329258e-11, 
1.45519152e-11,
+    1.63709046e-11, 1.8189894e-11, 2.00088834e-11, 2.36468622e-11, 
2.54658516e-11,
+    2.91038305e-11, 3.09228199e-11, 3.45607987e-11, 3.81987775e-11, 
4.36557457e-11,
+    4.72937245e-11,
+#else
+    0, -1, -1, -1, -1, -1, -1, -2, -2, -2, -2, -3, -3, -4, -4, -5, -5, -6, -7,
+    -7, -8, -9, -10, -11, -13, -14, -16, -17, -19, -21, -24, -26, -29, -31, 
-35,
+    -38, -41, -45, -49, -53, -58, -63, -68, -73, -79, -85, -91, -97, -104, 
-111,
+    -117, -125, -132, -139, -147, -154, -161, -169, -176, -183, -190, -196, 
-202,
+    -208, 213, 218, 222, 225, 227, 228, 228, 227, 224, 221, 215, 208, 200, 189,
+    177, 163, 146, 127, 106, 83, 57, 29, -2, -36, -72, -111, -153, -197, -244,
+    -294, -347, -401, -459, -519, -581, -645, -711, -779, -848, -919, -991, 
-1064,
+    -1137, -1210, -1283, -1356, -1428, -1498, -1567, -1634, -1698, -1759, 
-1817,
+    -1870, -1919, -1962, -2001, -2032, -2057, -2075, -2085, -2087, -2080, 
-2063,
+    2037, 2000, 1952, 1893, 1822, 1739, 1644, 1535, 1414, 1280, 1131, 970, 794,
+    605, 402, 185, -45, -288, -545, -814, -1095, -1388, -1692, -2006, -2330, 
-2663,
+    -3004, -3351, -3705, -4063, -4425, -4788, -5153, -5517, -5879, -6237, 
-6589,
+    -6935, -7271, -7597, -7910, -8209, -8491, -8755, -8998, -9219, -9416, 
-9585,
+    -9727, -9838, -9916, -9959, -9966, -9935, -9863, -9750, -9592, -9389, 
-9139,
+    -8840, -8492, -8092, -7640, -7134, 6574, 5959, 5288, 4561, 3776, 2935, 
2037,
+    1082, 70, -998, -2122, -3300, -4533, -5818, -7154, -8540, -9975, -11455,
+    -12980, -14548, -16155, -17799, -19478, -21189, -22929, -24694, -26482, 
-28289,
+    -30112, -31947, -33791, -35640, -37489, -39336, -41176, -43006, -44821, 
-46617,
+    -48390, -50137, -51853, -53534, -55178, -56778, -58333, -59838, -61289, 
-62684,
+    -64019, -65290, -66494, -67629, -68692, -69679, -70590, -71420, -72169, 
-72835,
+    -73415, -73908, -74313, -74630, -74856, -74992, 75038, 74992, 74856, 74630,
+    74313, 73908, 73415, 72835, 72169, 71420, 70590, 69679, 68692, 67629, 
66494,
+    65290, 64019, 62684, 61289, 59838, 58333, 56778, 55178, 53534, 51853, 
50137,
+    48390, 46617, 44821, 43006, 41176, 39336, 37489, 35640, 33791, 31947, 
30112,
+    28289, 26482, 24694, 22929, 21189, 19478, 17799, 16155, 14548, 12980, 
11455,
+    9975, 8540, 7154, 5818, 4533, 3300, 2122, 998, -70, -1082, -2037, -2935, 
-3776,
+    -4561, -5288, -5959, 6574, 7134, 7640, 8092, 8492, 8840, 9139, 9389, 9592,
+    9750, 9863, 9935, 9966, 9959, 9916, 9838, 9727, 9585, 9416, 9219, 8998, 
8755,
+    8491, 8209, 7910, 7597, 7271, 6935, 6589, 6237, 5879, 5517, 5153, 4788, 
4425,
+    4063, 3705, 3351, 3004, 2663, 2330, 2006, 1692, 1388, 1095, 814, 545, 288, 
45,
+    -185, -402, -605, -794, -970, -1131, -1280, -1414, -1535, -1644, -1739, 
-1822,
+    -1893, -1952, -2000, 2037, 2063, 2080, 2087, 2085, 2075, 2057, 2032, 2001,
+    1962, 1919, 1870, 1817, 1759, 1698, 1634, 1567, 1498, 1428, 1356, 1283, 
1210,
+    1137, 1064, 991, 919, 848, 779, 711, 645, 581, 519, 459, 401, 347, 294, 
244,
+    197, 153, 111, 72, 36, 2, -29, -57, -83, -106, -127, -146, -163, -177, 
-189,
+    -200, -208, -215, -221, -224, -227, -228, -228, -227, -225, -222, -218, 
213,
+    208, 202, 196, 190, 183, 176, 169, 161, 154, 147, 139, 132, 125, 117, 111, 
104,
+    97, 91, 85, 79, 73, 68, 63, 58, 53, 49, 45, 41, 38, 35, 31, 29, 26, 24, 
21, 19,
+    17, 16, 14, 13, 11, 10, 9, 8, 7, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 2, 2, 1, 1, 
1,
+    1, 1, 1, -29, -26, -24, -21, -19, -17, -16, -14, -13, -11, -10, -9, -8, 
-7, -7,
+    -6, -459, -401, -347, -294, -244, -197, -153, -111, -72, -36, -2, 29, 57, 
83,
+    106, 127, -5153, -4788, -4425, -4063, -3705, -3351, -3004, -2663, -2330, 
-2006,
+    -1692, -1388, -1095, -814, -545, -288, -37489, -35640, -33791, -31947, 
-30112,
+    -28289, -26482, -24694, -22929, -21189, -19478, -17799, -16155, -14548, 
-12980,
+    -11455, 37489, 39336, 41176, 43006, 44821, 46617, 48390, 50137, 51853, 
53534,
+    55178, 56778, 58333, 59838, 61289, 62684, 5153, 5517, 5879, 6237, 6589, 
6935,
+    7271, 7597, 7910, 8209, 8491, 8755, 8998, 9219, 9416, 9585, 459, 519, 581, 
645,
+    711, 779, 848, 919, 991, 1064, 1137, 1210, 1283, 1356, 1428, 1498, 29, 31, 
35,
+    38, 41, 45, 49, 53, 58, 63, 68, 73, 79, 85, 91, 97, -104, -97, -91, -85, 
-79,
+    -73, -68, -63, -58, -53, -49, -45, -41, -38, -35, -31, -1567, -1498, -1428,
+    -1356, -1283, -1210, -1137, -1064, -991, -919, -848, -779, -711, -645, 
-581,
+    -519, -9727, -9585, -9416, -9219, -8998, -8755, -8491, -8209, -7910, -7597,
+    -7271, -6935, -6589, -6237, -5879, -5517, -64019, -62684, -61289, -59838,
+    -58333, -56778, -55178, -53534, -51853, -50137, -48390, -46617, -44821, 
-43006,
+    -41176, -39336, 9975, 11455, 12980, 14548, 16155, 17799, 19478, 21189, 
22929,
+    24694, 26482, 28289, 30112, 31947, 33791, 35640, 45, 288, 545, 814, 1095, 
1388,
+    1692, 2006, 2330, 2663, 3004, 3351, 3705, 4063, 4425, 4788, -146, -127, 
-106,
+    -83, -57, -29, 2, 36, 72, 111, 153, 197, 244, 294, 347, 401, 5, 6, 7, 7, 
8, 9,
+    10, 11, 13, 14, 16, 17, 19, 21, 24, 26,
+#endif
+};
 
 #define SUM8(op, sum, w, p)               \
 {                                         \
@@ -288,7 +555,7 @@ DECLARE_ALIGNED(16, MPA_INT, 
RENAME(ff_mpa_synth_window))[512+256];
     op2(sum2, (w2)[7 * 64], tmp);\
 }
 
-void RENAME(ff_mpadsp_apply_window)(MPA_INT *synth_buf, MPA_INT *window,
+void RENAME(ff_mpadsp_apply_window)(MPA_INT *synth_buf, const MPA_INT *window,
                                   int *dither_state, OUT_INT *samples,
                                   ptrdiff_t incr)
 {
@@ -345,7 +612,7 @@ void RENAME(ff_mpadsp_apply_window)(MPA_INT *synth_buf, 
MPA_INT *window,
    32 samples. */
 void RENAME(ff_mpa_synth_filter)(MPADSPContext *s, MPA_INT *synth_buf_ptr,
                                  int *synth_buf_offset,
-                                 MPA_INT *window, int *dither_state,
+                                 const MPA_INT *window, int *dither_state,
                                  OUT_INT *samples, ptrdiff_t incr,
                                  MPA_INT *sb_samples)
 {
@@ -362,35 +629,6 @@ void RENAME(ff_mpa_synth_filter)(MPADSPContext *s, MPA_INT 
*synth_buf_ptr,
     *synth_buf_offset = offset;
 }
 
-av_cold void RENAME(ff_mpa_synth_init)(MPA_INT *window)
-{
-    int i, j;
-
-    /* max = 18760, max sum over all 16 coefs : 44736 */
-    for(i=0;i<257;i++) {
-        INTFLOAT v;
-        v = ff_mpa_enwindow[i];
-#if CONFIG_FLOAT
-        v *= 1.0 / (1LL<<(16 + FRAC_BITS));
-#endif
-        window[i] = v;
-        if ((i & 63) != 0)
-            v = -v;
-        if (i != 0)
-            window[512 - i] = v;
-    }
-
-
-    // Needed for avoiding shuffles in ASM implementations
-    for(i=0; i < 8; i++)
-        for(j=0; j < 16; j++)
-            window[512+16*i+j] = window[64*i+32-j];
-
-    for(i=0; i < 8; i++)
-        for(j=0; j < 16; j++)
-            window[512+128+16*i+j] = window[64*i+48-j];
-}
-
 /* cos(pi*i/18) */
 #define C1 FIXHR(0.98480775301220805936/2)
 #define C2 FIXHR(0.93969262078590838405/2)
diff --git a/libavcodec/ppc/mpegaudiodsp_altivec.c 
b/libavcodec/ppc/mpegaudiodsp_altivec.c
index 4c07131..67d2618 100644
--- a/libavcodec/ppc/mpegaudiodsp_altivec.c
+++ b/libavcodec/ppc/mpegaudiodsp_altivec.c
@@ -89,7 +89,7 @@ static void apply_window(const float *buf, const float *win1,
     }
 }
 
-static void apply_window_mp3(float *in, float *win, int *unused, float *out,
+static void apply_window_mp3(float *in, const float *win, int *unused, float 
*out,
                              ptrdiff_t incr)
 {
     LOCAL_ALIGNED_16(float, suma, [17]);
diff --git a/libavcodec/qdm2.c b/libavcodec/qdm2.c
index 781999a..8fa873a 100644
--- a/libavcodec/qdm2.c
+++ b/libavcodec/qdm2.c
@@ -1708,7 +1708,6 @@ static void qdm2_synthesis_filter(QDM2Context *q, int 
index)
  */
 static av_cold void qdm2_init_static_data(AVCodec *codec) {
     qdm2_init_vlc();
-    ff_mpa_synth_init_float(ff_mpa_synth_window_float);
     softclip_table_init();
     rnd_table_init();
     init_noise_samples();
diff --git a/libavcodec/x86/mpegaudiodsp.c b/libavcodec/x86/mpegaudiodsp.c
index 73b783d..b32dae8 100644
--- a/libavcodec/x86/mpegaudiodsp.c
+++ b/libavcodec/x86/mpegaudiodsp.c
@@ -99,7 +99,7 @@ static void apply_window(const float *buf, const float *win1,
 #undef MULT
 }
 
-static void apply_window_mp3(float *in, float *win, int *unused, float *out,
+static void apply_window_mp3(float *in, const float *win, int *unused, float 
*out,
                              ptrdiff_t incr)
 {
     LOCAL_ALIGNED_16(float, suma, [17]);
-- 
2.0.0

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to