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