avcodec/adpcm: fix non-4bit adpcm ima wav decoding

(cherry picked from commit f4e05abeded46515bd7b4248fc7d65df82d9af2a)
This commit is contained in:
Paul B Mahol
2025-02-19 20:24:39 +00:00
committed by michaelni
parent 30fc5b1baa
commit a4f778890b

View File

@@ -511,7 +511,9 @@ static inline int16_t adpcm_ima_wav_expand_nibble(ADPCMChannelStatus *c, GetBitC
sign = nibble & (1 << shift);
delta = av_zero_extend(nibble, shift);
diff = ((2 * delta + 1) * step) >> shift;
diff = step >> shift;
for (int i = 0; i < shift; i++)
diff += (step >> (shift-1-i)) * !!(delta & (1 << i));
predictor = c->predictor;
if (sign) predictor -= diff;
else predictor += diff;