diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index 1db69414a5..db45c8360e 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -1123,15 +1123,9 @@ static inline int sym_quant(int c, int e, int levels) */ static inline int asym_quant(int c, int e, int qbits) { - int lshift, m, v; + int m, v; - lshift = e + qbits - 24; - if (lshift >= 0) - v = c << lshift; - else - v = c >> (-lshift); - /* rounding */ - v = (v + 1) >> 1; + v = (((c << e) >> (24 - qbits)) + 1) >> 1; m = (1 << (qbits-1)); if (v >= m) v = m - 1;