summaryrefslogtreecommitdiff
path: root/libavcodec/atrac3plus.c
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2020-10-23 13:06:36 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2020-10-27 10:32:16 +0100
commit5f8de7b74147e2a347481d7bc900ebecba6f340f (patch)
tree64739760d4fe761746f558a5388af986c11d0c21 /libavcodec/atrac3plus.c
parent38afc6858ceb4932dce9dc577ce548a2623ba2eb (diff)
avcodec/atrac3plus: Perform reusing of VLCs during init
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Diffstat (limited to 'libavcodec/atrac3plus.c')
-rw-r--r--libavcodec/atrac3plus.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/libavcodec/atrac3plus.c b/libavcodec/atrac3plus.c
index 8d17889582..6b046a887e 100644
--- a/libavcodec/atrac3plus.c
+++ b/libavcodec/atrac3plus.c
@@ -192,12 +192,12 @@ av_cold void ff_atrac3p_init_vlcs(void)
/* build huffman tables for spectrum decoding */
for (i = 0; i < 112; i++) {
- if (atrac3p_spectra_tabs[i].cb)
+ if (atrac3p_spectra_tabs[i].redirect < 0)
build_canonical_huff(atrac3p_spectra_tabs[i].cb,
atrac3p_spectra_tabs[i].xlat,
&tab_offset, &spec_vlc_tabs[i]);
- else
- spec_vlc_tabs[i].table = 0;
+ else /* Reuse already initialized VLC table */
+ spec_vlc_tabs[i] = spec_vlc_tabs[atrac3p_spectra_tabs[i].redirect];
}
/* build huffman tables for gain data decoding */
@@ -880,10 +880,6 @@ static void decode_spectrum(GetBitContext *gb, Atrac3pChanUnitCtx *ctx,
tab_index = (chan->table_type * 8 + codetab) * 7 + wordlen - 1;
tab = &atrac3p_spectra_tabs[tab_index];
- /* this allows reusing VLC tables */
- if (tab->redirect >= 0)
- tab_index = tab->redirect;
-
decode_qu_spectra(gb, tab, &spec_vlc_tabs[tab_index],
&chan->spectrum[ff_atrac3p_qu_to_spec_pos[qu]],
num_specs);