changeset 10440:899237b1961f libavcodec

mpegaudiodec, mpc and qdm2 all use the same mpa_synth window, so make them use the same variable/global storage. Saves 4 kB in .bss.
author reimar
date Mon, 19 Oct 2009 17:21:02 +0000
parents b4b55a3d65c9
children 0a6fc654cfb6
files mpc.c mpegaudio.h mpegaudiodec.c qdm2.c
diffstat 4 files changed, 8 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/mpc.c	Mon Oct 19 15:51:34 2009 +0000
+++ b/mpc.c	Mon Oct 19 17:21:02 2009 +0000
@@ -33,11 +33,9 @@
 #include "mpc.h"
 #include "mpcdata.h"
 
-static DECLARE_ALIGNED_16(MPA_INT, mpa_window[512]);
-
 void ff_mpc_init(void)
 {
-    ff_mpa_synth_init(mpa_window);
+    ff_mpa_synth_init(ff_mpa_synth_window);
 }
 
 /**
@@ -53,7 +51,7 @@
         samples_ptr = samples + ch;
         for(i = 0; i < SAMPLES_PER_BAND; i++) {
             ff_mpa_synth_filter(c->synth_buf[ch], &(c->synth_buf_offset[ch]),
-                                mpa_window, &dither_state,
+                                ff_mpa_synth_window, &dither_state,
                                 samples_ptr, 2,
                                 c->sb_samples[ch][i]);
             samples_ptr += 64;
--- a/mpegaudio.h	Mon Oct 19 15:51:34 2009 +0000
+++ b/mpegaudio.h	Mon Oct 19 17:21:02 2009 +0000
@@ -137,6 +137,7 @@
 
 int ff_mpa_l2_select_table(int bitrate, int nb_channels, int freq, int lsf);
 int ff_mpa_decode_header(AVCodecContext *avctx, uint32_t head, int *sample_rate, int *channels, int *frame_size, int *bitrate);
+extern MPA_INT ff_mpa_synth_window[];
 void ff_mpa_synth_init(MPA_INT *window);
 void ff_mpa_synth_filter(MPA_INT *synth_buf_ptr, int *synth_buf_offset,
                          MPA_INT *window, int *dither_state,
--- a/mpegaudiodec.c	Mon Oct 19 15:51:34 2009 +0000
+++ b/mpegaudiodec.c	Mon Oct 19 17:21:02 2009 +0000
@@ -120,7 +120,7 @@
     SCALE_GEN(4.0 / 9.0), /* 9 steps */
 };
 
-static DECLARE_ALIGNED_16(MPA_INT, window[512]);
+DECLARE_ALIGNED_16(MPA_INT, ff_mpa_synth_window[512]);
 
 /**
  * Convert region offsets to region sizes and truncate
@@ -351,7 +351,7 @@
                     scale_factor_mult[i][2]);
         }
 
-        ff_mpa_synth_init(window);
+        ff_mpa_synth_init(ff_mpa_synth_window);
 
         /* huffman decode tables */
         offset = 0;
@@ -2238,7 +2238,7 @@
         samples_ptr = samples + ch;
         for(i=0;i<nb_frames;i++) {
             ff_mpa_synth_filter(s->synth_buf[ch], &(s->synth_buf_offset[ch]),
-                         window, &s->dither_state,
+                         ff_mpa_synth_window, &s->dither_state,
                          samples_ptr, s->nb_channels,
                          s->sb_samples[ch][i]);
             samples_ptr += 32 * s->nb_channels;
--- a/qdm2.c	Mon Oct 19 15:51:34 2009 +0000
+++ b/qdm2.c	Mon Oct 19 17:21:02 2009 +0000
@@ -219,8 +219,6 @@
 static uint8_t random_dequant_type24[128][3];
 static float noise_samples[128];
 
-static DECLARE_ALIGNED_16(MPA_INT, mpa_window[512]);
-
 
 static av_cold void softclip_table_init(void) {
     int i;
@@ -1684,7 +1682,7 @@
 
         for (i = 0; i < 8; i++) {
             ff_mpa_synth_filter(q->synth_buf[ch], &(q->synth_buf_offset[ch]),
-                mpa_window, &dither_state,
+                ff_mpa_synth_window, &dither_state,
                 samples_ptr, q->nb_channels,
                 q->sb_samples[ch][(8 * index) + i]);
             samples_ptr += 32 * q->nb_channels;
@@ -1713,7 +1711,7 @@
     initialized = 1;
 
     qdm2_init_vlc();
-    ff_mpa_synth_init(mpa_window);
+    ff_mpa_synth_init(ff_mpa_synth_window);
     softclip_table_init();
     rnd_table_init();
     init_noise_samples();