From 031b1cbeeb1e6234607c383341a9bac6829817c9 Mon Sep 17 00:00:00 2001 From: Benjamin Larsson Date: Sun, 17 May 2009 16:12:07 +0000 Subject: [PATCH] Change from INIT_VLC_USE_STATIC to INIT_VLC_USE_NEW_STATIC in atrac3 Originally committed as revision 18865 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/atrac3.c | 9 ++++++++- libavcodec/atrac3data.h | 4 ++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/libavcodec/atrac3.c b/libavcodec/atrac3.c index c0825cb..205a123 100644 --- a/libavcodec/atrac3.c +++ b/libavcodec/atrac3.c @@ -933,6 +933,8 @@ static av_cold int atrac3_decode_init(AVCodecContext *avctx) int i; const uint8_t *edata_ptr = avctx->extradata; ATRAC3Context *q = avctx->priv_data; + static VLC_TYPE atrac3_vlc_table[4096][2]; + static int vlcs_initialized = 0; /* Take data from the AVCodecContext (RM container). */ q->sample_rate = avctx->sample_rate; @@ -1023,10 +1025,15 @@ static av_cold int atrac3_decode_init(AVCodecContext *avctx) /* Initialize the VLC tables. */ + if (!vlcs_initialized) { 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], huff_bits[i], 1, 1, - huff_codes[i], 1, 1, INIT_VLC_USE_STATIC); + huff_codes[i], 1, 1, INIT_VLC_USE_NEW_STATIC); + } + vlcs_initialized = 1; } init_atrac3_transforms(q); diff --git a/libavcodec/atrac3data.h b/libavcodec/atrac3data.h index 00197d3..e71dc35 100644 --- a/libavcodec/atrac3data.h +++ b/libavcodec/atrac3data.h @@ -105,6 +105,10 @@ static const uint8_t* const huff_bits[7] = { huffbits1,huffbits2,huffbits3,huffbits4,huffbits5,huffbits6,huffbits7, }; +static const uint16_t atrac3_vlc_offs[] = { + 0,512,1024,1536,2048,2560,3072,3584,4096 +}; + /* selector tables */ static const uint8_t CLCLengthTab[8] = {0, 4, 3, 3, 4, 4, 5, 6}; -- 2.7.4