From 8c7a0932abeeabd86688b2cb495daa61c7fc19be Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Wed, 11 Mar 2015 16:28:06 +0100 Subject: [PATCH] avcodec/amrnbde: Fix undefined shift in decode_pitch_vector() This also simplifies the code Found-by: Clang -fsanitize=shift Reported-by: Thierry Foucu Signed-off-by: Michael Niedermayer --- libavcodec/amrnbdec.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavcodec/amrnbdec.c b/libavcodec/amrnbdec.c index 43ddb625eb..3fa639de27 100644 --- a/libavcodec/amrnbdec.c +++ b/libavcodec/amrnbdec.c @@ -399,17 +399,17 @@ static void decode_pitch_vector(AMRContext *p, decode_pitch_lag_1_6(&pitch_lag_int, &pitch_lag_frac, amr_subframe->p_lag, p->pitch_lag_int, subframe); - } else + } else { ff_decode_pitch_lag(&pitch_lag_int, &pitch_lag_frac, amr_subframe->p_lag, p->pitch_lag_int, subframe, mode != MODE_4k75 && mode != MODE_5k15, mode <= MODE_6k7 ? 4 : (mode == MODE_7k95 ? 5 : 6)); + pitch_lag_frac *= 2; + } p->pitch_lag_int = pitch_lag_int; // store previous lag in a uint8_t - pitch_lag_frac <<= (p->cur_frame_mode != MODE_12k2); - pitch_lag_int += pitch_lag_frac > 0; /* Calculate the pitch vector by interpolating the past excitation at the