From 8afe2f90026e21ca79987d9083e9ccd83c701127 Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Sat, 17 Mar 2012 15:38:10 -0700 Subject: [PATCH] adpcm: convert adpcm_sbpro to bytestream2. --- libavcodec/adpcm.c | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/libavcodec/adpcm.c b/libavcodec/adpcm.c index a76f3bb045..92300d8e32 100644 --- a/libavcodec/adpcm.c +++ b/libavcodec/adpcm.c @@ -1101,38 +1101,41 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, case CODEC_ID_ADPCM_SBPRO_2: if (!c->status[0].step_index) { /* the first byte is a raw sample */ - *samples++ = 128 * (*src++ - 0x80); + *samples++ = 128 * (bytestream2_get_byteu(&gb) - 0x80); if (st) - *samples++ = 128 * (*src++ - 0x80); + *samples++ = 128 * (bytestream2_get_byteu(&gb) - 0x80); c->status[0].step_index = 1; nb_samples--; } if (avctx->codec->id == CODEC_ID_ADPCM_SBPRO_4) { - for (n = nb_samples >> (1 - st); n > 0; n--, src++) { + for (n = nb_samples >> (1 - st); n > 0; n--) { + int byte = bytestream2_get_byteu(&gb); *samples++ = adpcm_sbpro_expand_nibble(&c->status[0], - src[0] >> 4, 4, 0); + byte >> 4, 4, 0); *samples++ = adpcm_sbpro_expand_nibble(&c->status[st], - src[0] & 0x0F, 4, 0); + byte & 0x0F, 4, 0); } } else if (avctx->codec->id == CODEC_ID_ADPCM_SBPRO_3) { - for (n = nb_samples / 3; n > 0; n--, src++) { + for (n = nb_samples / 3; n > 0; n--) { + int byte = bytestream2_get_byteu(&gb); *samples++ = adpcm_sbpro_expand_nibble(&c->status[0], - src[0] >> 5 , 3, 0); + byte >> 5 , 3, 0); *samples++ = adpcm_sbpro_expand_nibble(&c->status[0], - (src[0] >> 2) & 0x07, 3, 0); + (byte >> 2) & 0x07, 3, 0); *samples++ = adpcm_sbpro_expand_nibble(&c->status[0], - src[0] & 0x03, 2, 0); + byte & 0x03, 2, 0); } } else { - for (n = nb_samples >> (2 - st); n > 0; n--, src++) { + for (n = nb_samples >> (2 - st); n > 0; n--) { + int byte = bytestream2_get_byteu(&gb); *samples++ = adpcm_sbpro_expand_nibble(&c->status[0], - src[0] >> 6 , 2, 2); + byte >> 6 , 2, 2); *samples++ = adpcm_sbpro_expand_nibble(&c->status[st], - (src[0] >> 4) & 0x03, 2, 2); + (byte >> 4) & 0x03, 2, 2); *samples++ = adpcm_sbpro_expand_nibble(&c->status[0], - (src[0] >> 2) & 0x03, 2, 2); + (byte >> 2) & 0x03, 2, 2); *samples++ = adpcm_sbpro_expand_nibble(&c->status[st], - src[0] & 0x03, 2, 2); + byte & 0x03, 2, 2); } } break;