summaryrefslogtreecommitdiffstats
path: root/libavcodec/aacdec_fixed.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/aacdec_fixed.c')
-rw-r--r--libavcodec/aacdec_fixed.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/libavcodec/aacdec_fixed.c b/libavcodec/aacdec_fixed.c
index ccfef7f..f6a5330 100644
--- a/libavcodec/aacdec_fixed.c
+++ b/libavcodec/aacdec_fixed.c
@@ -305,8 +305,12 @@ static av_always_inline void predict(PredictorState *ps, int *coef,
if (output_enable) {
int shift = 28 - pv.exp;
- if (shift < 31)
- *coef += (pv.mant + (1 << (shift - 1))) >> shift;
+ if (shift < 31) {
+ if (shift > 0) {
+ *coef += (pv.mant + (1 << (shift - 1))) >> shift;
+ } else
+ *coef += pv.mant << -shift;
+ }
}
e0 = av_int2sf(*coef, 2);
OpenPOWER on IntegriCloud