#define SAMPLES_PER_FRAME 1024
#define MDCT_SIZE 512
+#define ATRAC3_VLC_BITS 8
+
typedef struct GainBlock {
AtracGainInfo g_block[4];
} GainBlock;
} ATRAC3Context;
static DECLARE_ALIGNED(32, float, mdct_window)[MDCT_SIZE];
-static VLC_TYPE atrac3_vlc_table[4096][2];
+static VLC_TYPE atrac3_vlc_table[7 * 1 << ATRAC3_VLC_BITS][2];
static VLC spectral_coeff_tab[7];
/**
static av_cold void atrac3_init_static_data(void)
{
+ VLC_TYPE (*table)[2] = atrac3_vlc_table;
int i;
init_imdct_window();
/* Initialize the VLC tables. */
for (i = 0; i < 7; i++) {
- spectral_coeff_tab[i].table = &atrac3_vlc_table[atrac3_vlc_offs[i]];
- spectral_coeff_tab[i].table_allocated = atrac3_vlc_offs[i + 1] -
- atrac3_vlc_offs[i ];
- init_vlc(&spectral_coeff_tab[i], 9, huff_tab_sizes[i],
+ spectral_coeff_tab[i].table = table;
+ spectral_coeff_tab[i].table_allocated = 256;
+ init_vlc(&spectral_coeff_tab[i], ATRAC3_VLC_BITS, huff_tab_sizes[i],
huff_bits[i], 1, 1,
huff_codes[i], 1, 1, INIT_VLC_USE_NEW_STATIC);
+ table += 256;
}
}
huffbits1, huffbits2, huffbits3, huffbits4, huffbits5, huffbits6, huffbits7,
};
-static const uint16_t atrac3_vlc_offs[9] = {
- 0, 512, 1024, 1536, 2048, 2560, 3072, 3584, 4096
-};
-
/* selector tables */
static const uint8_t clc_length_tab[8] = { 0, 4, 3, 3, 4, 4, 5, 6 };