X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fvorbisdec.c;h=8ce0fc7c83095b412ef23d7e71562b95d9216c88;hb=8672fc7b0453098d862bb1c0caafab4823ee0b4e;hp=d0709331e5bc9be2eba1b21ba8a70e66c703de72;hpb=36999606902ce5c53636552ec46df5a38fd3bd6b;p=ffmpeg diff --git a/libavcodec/vorbisdec.c b/libavcodec/vorbisdec.c index d0709331e5b..8ce0fc7c830 100644 --- a/libavcodec/vorbisdec.c +++ b/libavcodec/vorbisdec.c @@ -1356,8 +1356,7 @@ static av_always_inline int vorbis_residue_decode_internal(vorbis_context *vc, if (vqbook >= 0 && vc->codebooks[vqbook].codevectors) { unsigned coffs; unsigned dim = vc->codebooks[vqbook].dimensions; - unsigned step = dim == 1 ? vr->partition_size - : FASTDIV(vr->partition_size, dim); + unsigned step = FASTDIV(vr->partition_size << 1, dim << 1); vorbis_codebook codebook = vc->codebooks[vqbook]; if (vr_type == 0) { @@ -1411,7 +1410,7 @@ static av_always_inline int vorbis_residue_decode_internal(vorbis_context *vc, } } else if (vr_type == 2) { - unsigned voffs_div = ch == 1 ? voffset : FASTDIV(voffset, ch); + unsigned voffs_div = FASTDIV(voffset << 1, ch <<1); unsigned voffs_mod = voffset - voffs_div * ch; for (k = 0; k < step; ++k) {