aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2020-11-23 05:12:02 +0100
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2020-12-08 17:51:48 +0100
commitfa4532a1f767c092656836de62797d71ff42cde0 (patch)
tree8fbdbe291688671b70f9e3fe8d8e8d6d01051166
parente5b416daddd0435571c3483621c6953c56e7cf9a (diff)
downloadffmpeg-fa4532a1f767c092656836de62797d71ff42cde0.tar.gz
avcodec/wmadec: Apply VLC offset during init
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
-rw-r--r--libavcodec/wmadec.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/libavcodec/wmadec.c b/libavcodec/wmadec.c
index 2b9499eba7..9c79556bb5 100644
--- a/libavcodec/wmadec.c
+++ b/libavcodec/wmadec.c
@@ -112,7 +112,7 @@ static av_cold int wma_decode_init(AVCodecContext *avctx)
if (s->use_noise_coding) {
ff_init_vlc_from_lengths(&s->hgain_vlc, HGAINVLCBITS, FF_ARRAY_ELEMS(ff_wma_hgain_hufftab),
&ff_wma_hgain_hufftab[0][1], 2,
- &ff_wma_hgain_hufftab[0][0], 2, 1, 0, 0, avctx);
+ &ff_wma_hgain_hufftab[0][0], 2, 1, -18, 0, avctx);
}
if (s->use_exp_vlc)
@@ -545,7 +545,7 @@ static int wma_decode_block(WMACodecContext *s)
}
for (ch = 0; ch < s->avctx->channels; ch++) {
if (s->channel_coded[ch]) {
- int i, n, val, code;
+ int i, n, val;
n = s->exponent_high_sizes[bsize];
val = (int) 0x80000000;
@@ -554,9 +554,8 @@ static int wma_decode_block(WMACodecContext *s)
if (val == (int) 0x80000000) {
val = get_bits(&s->gb, 7) - 19;
} else {
- code = get_vlc2(&s->gb, s->hgain_vlc.table,
+ val += get_vlc2(&s->gb, s->hgain_vlc.table,
HGAINVLCBITS, HGAINMAX);
- val += code - 18;
}
s->high_band_values[ch][i] = val;
}