diff options
Diffstat (limited to 'libavcodec/adpcm.c')
-rw-r--r-- | libavcodec/adpcm.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/libavcodec/adpcm.c b/libavcodec/adpcm.c index 0c4e722e02..8f6863cb01 100644 --- a/libavcodec/adpcm.c +++ b/libavcodec/adpcm.c @@ -427,18 +427,19 @@ static int adpcm_decode_frame(AVCodecContext *avctx, src++; /* if != 0 -> out-of-sync */ } - for(m=3; src < (buf + buf_size);) { - *samples++ = adpcm_ima_expand_nibble(&c->status[0], src[0] & 0x0F); + for(m=4; src < (buf + buf_size);) { + *samples++ = adpcm_ima_expand_nibble(&c->status[0], src[0] & 0x0F); if (st) *samples++ = adpcm_ima_expand_nibble(&c->status[1], src[4] & 0x0F); *samples++ = adpcm_ima_expand_nibble(&c->status[0], (src[0] >> 4) & 0x0F); - if (st) + if (st) { *samples++ = adpcm_ima_expand_nibble(&c->status[1], (src[4] >> 4) & 0x0F); - src++; - if (st && !m--) { - m=3; - src+=4; - } + if (!--m) { + m=4; + src+=4; + } + } + src++; } break; case CODEC_ID_ADPCM_MS: |