|
|
|
@@ -252,7 +252,7 @@ static void ff_eac3_decode_transform_coeffs_aht_ch(AC3DecodeContext *s, int ch) |
|
|
|
/* Vector Quantization */ |
|
|
|
int v = get_bits(gbc, bits); |
|
|
|
for (blk = 0; blk < 6; blk++) { |
|
|
|
s->pre_mantissa[ch][bin][blk] = ff_eac3_mantissa_vq[hebap][v][blk] << 8; |
|
|
|
s->pre_mantissa[ch][bin][blk] = ff_eac3_mantissa_vq[hebap][v][blk] * (1 << 8); |
|
|
|
} |
|
|
|
} else { |
|
|
|
/* Gain Adaptive Quantization */ |
|
|
|
@@ -271,12 +271,12 @@ static void ff_eac3_decode_transform_coeffs_aht_ch(AC3DecodeContext *s, int ch) |
|
|
|
int b; |
|
|
|
int mbits = bits - (2 - log_gain); |
|
|
|
mant = get_sbits(gbc, mbits); |
|
|
|
mant <<= (23 - (mbits - 1)); |
|
|
|
mant = ((unsigned)mant) << (23 - (mbits - 1)); |
|
|
|
/* remap mantissa value to correct for asymmetric quantization */ |
|
|
|
if (mant >= 0) |
|
|
|
b = 1 << (23 - log_gain); |
|
|
|
else |
|
|
|
b = ff_eac3_gaq_remap_2_4_b[hebap-8][log_gain-1] << 8; |
|
|
|
b = ff_eac3_gaq_remap_2_4_b[hebap-8][log_gain-1] * (1 << 8); |
|
|
|
mant += ((ff_eac3_gaq_remap_2_4_a[hebap-8][log_gain-1] * (int64_t)mant) >> 15) + b; |
|
|
|
} else { |
|
|
|
/* small mantissa, no GAQ, or Gk=1 */ |
|
|
|
|