diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index fe93337b721e4a96ed60d3129c92206c7c5a73eb..a9552568c4d2d83adb6c998244ba2055cd6c4ac7 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -642,10 +642,11 @@ static void group_exponents(AC3EncodeContext *s) for (blk = 0; blk < AC3_MAX_BLOCKS; blk++) { AC3Block *block = &s->blocks[blk]; for (ch = 0; ch < s->channels; ch++) { - if (s->exp_strategy[ch][blk] == EXP_REUSE) + int exp_strategy = s->exp_strategy[ch][blk]; + if (exp_strategy == EXP_REUSE) continue; - group_size = s->exp_strategy[ch][blk] + (s->exp_strategy[ch][blk] == EXP_D45); - nb_groups = exponent_group_tab[s->exp_strategy[ch][blk]-1][s->nb_coefs[ch]]; + group_size = exp_strategy + (exp_strategy == EXP_D45); + nb_groups = exponent_group_tab[exp_strategy-1][s->nb_coefs[ch]]; bit_count += 4 + (nb_groups * 7); p = block->exp[ch];