diff --git a/libavcodec/mpegaudiodec.c b/libavcodec/mpegaudiodec.c index e5a1acecb0..f3ed155ab9 100644 --- a/libavcodec/mpegaudiodec.c +++ b/libavcodec/mpegaudiodec.c @@ -73,8 +73,7 @@ # include "dct32.c" #endif -static void compute_antialias_integer(MPADecodeContext *s, GranuleDef *g); -static void compute_antialias_float(MPADecodeContext *s, GranuleDef *g); +static void compute_antialias(MPADecodeContext *s, GranuleDef *g); static void apply_window_mp3_c(MPA_INT *synth_buf, MPA_INT *window, int *dither_state, OUT_INT *samples, int incr); @@ -1575,6 +1574,7 @@ static void compute_stereo(MPADecodeContext *s, } } +#if !CONFIG_FLOAT static void compute_antialias_integer(MPADecodeContext *s, GranuleDef *g) { @@ -1614,45 +1614,7 @@ static void compute_antialias_integer(MPADecodeContext *s, ptr += 18; } } - -static void compute_antialias_float(MPADecodeContext *s, - GranuleDef *g) -{ - float *ptr; - int n, i; - - /* we antialias only "long" bands */ - if (g->block_type == 2) { - if (!g->switch_point) - return; - /* XXX: check this for 8000Hz case */ - n = 1; - } else { - n = SBLIMIT - 1; - } - - ptr = g->sb_hybrid + 18; - for(i = n;i > 0;i--) { - float tmp0, tmp1; - float *csa = &csa_table_float[0][0]; -#define FLOAT_AA(j)\ - tmp0= ptr[-1-j];\ - tmp1= ptr[ j];\ - ptr[-1-j] = tmp0 * csa[0+4*j] - tmp1 * csa[1+4*j];\ - ptr[ j] = tmp0 * csa[1+4*j] + tmp1 * csa[0+4*j]; - - FLOAT_AA(0) - FLOAT_AA(1) - FLOAT_AA(2) - FLOAT_AA(3) - FLOAT_AA(4) - FLOAT_AA(5) - FLOAT_AA(6) - FLOAT_AA(7) - - ptr += 18; - } -} +#endif static void compute_imdct(MPADecodeContext *s, GranuleDef *g, diff --git a/libavcodec/mpegaudiodec_float.c b/libavcodec/mpegaudiodec_float.c index a8aebba654..93adaf8cc8 100644 --- a/libavcodec/mpegaudiodec_float.c +++ b/libavcodec/mpegaudiodec_float.c @@ -41,6 +41,45 @@ void ff_mpa_synth_filter_float(MPADecodeContext *s, float *synth_buf_ptr, *synth_buf_offset = offset; } +static void compute_antialias_float(MPADecodeContext *s, + GranuleDef *g) +{ + float *ptr; + int n, i; + + /* we antialias only "long" bands */ + if (g->block_type == 2) { + if (!g->switch_point) + return; + /* XXX: check this for 8000Hz case */ + n = 1; + } else { + n = SBLIMIT - 1; + } + + ptr = g->sb_hybrid + 18; + for(i = n;i > 0;i--) { + float tmp0, tmp1; + float *csa = &csa_table_float[0][0]; +#define FLOAT_AA(j)\ + tmp0= ptr[-1-j];\ + tmp1= ptr[ j];\ + ptr[-1-j] = tmp0 * csa[0+4*j] - tmp1 * csa[1+4*j];\ + ptr[ j] = tmp0 * csa[1+4*j] + tmp1 * csa[0+4*j]; + + FLOAT_AA(0) + FLOAT_AA(1) + FLOAT_AA(2) + FLOAT_AA(3) + FLOAT_AA(4) + FLOAT_AA(5) + FLOAT_AA(6) + FLOAT_AA(7) + + ptr += 18; + } +} + #if CONFIG_MP1FLOAT_DECODER AVCodec mp1float_decoder = {