diff --git a/libavcodec/wmaprodec.c b/libavcodec/wmaprodec.c index 922b75beff..a323a19fba 100644 --- a/libavcodec/wmaprodec.c +++ b/libavcodec/wmaprodec.c @@ -1346,14 +1346,12 @@ static int decode_frame(WMAProDecodeCtx *s) /** interleave samples and write them to the output buffer */ for (i = 0; i < s->num_channels; i++) { - float* ptr; + float* ptr = s->samples + i; int incr = s->num_channels; float* iptr = s->channel[i].out; - int x; - - ptr = s->samples + i; + float* iend = iptr + s->samples_per_frame; - for (x = 0; x < s->samples_per_frame; x++) { + while (iptr < iend) { *ptr = av_clipf(*iptr++, -1.0, 32767.0 / 32768.0); ptr += incr; }