]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/blobdiff - libavcodec/alacenc.c
Fix an overflow in the predictor.
[frescor/ffmpeg.git] / libavcodec / alacenc.c
index df4136f4c40df2f1431606b072c6a3716bdac4ba..9fd5064514b76e15ab233f748c267b542f6719c0 100644 (file)
@@ -253,7 +253,8 @@ static void alac_linear_predictor(AlacEncodeContext *s, int ch)
 
             sum >>= lpc.lpc_quant;
             sum += samples[0];
-            residual[i] = samples[lpc.lpc_order+1] - sum;
+            residual[i] = (samples[lpc.lpc_order+1] - sum) << (32 - s->write_sample_size) >>
+                          (32 - s->write_sample_size);
             res_val = residual[i];
 
             if(res_val) {