diff --git a/libavcodec/adpcm.c b/libavcodec/adpcm.c index 53341fd17f..dad0d72331 100644 --- a/libavcodec/adpcm.c +++ b/libavcodec/adpcm.c @@ -706,11 +706,7 @@ static inline short adpcm_ct_expand_nibble(ADPCMChannelStatus *c, char nibble) c->predictor = av_clip_int16(c->predictor); /* calculate new step and clamp it to range 511..32767 */ new_step = (ct_adpcm_table[nibble & 7] * c->step) >> 8; - c->step = new_step; - if(c->step < 511) - c->step = 511; - if(c->step > 32767) - c->step = 32767; + c->step = av_clip(new_step, 511, 32767); return (short)c->predictor; } @@ -723,16 +719,8 @@ static inline short adpcm_sbpro_expand_nibble(ADPCMChannelStatus *c, char nibble delta = nibble & ((1<<(size-1))-1); diff = delta << (7 + c->step + shift); - if (sign) - c->predictor -= diff; - else - c->predictor += diff; - /* clamp result */ - if (c->predictor > 16256) - c->predictor = 16256; - else if (c->predictor < -16384) - c->predictor = -16384; + c->predictor = av_clip(c->predictor + (sign ? -diff : diff), -16384,16256); /* calculate new step */ if (delta >= (2*size - 3) && c->step < 3)