|
|
@@ -1001,11 +1001,15 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, |
|
|
|
break; |
|
|
|
case CODEC_ID_ADPCM_IMA_AMV: |
|
|
|
case CODEC_ID_ADPCM_IMA_SMJPEG: |
|
|
|
c->status[0].predictor = (int16_t)bytestream_get_le16(&src); |
|
|
|
c->status[0].step_index = bytestream_get_le16(&src); |
|
|
|
|
|
|
|
if (avctx->codec->id == CODEC_ID_ADPCM_IMA_AMV) |
|
|
|
src+=4; |
|
|
|
if (avctx->codec->id == CODEC_ID_ADPCM_IMA_AMV) { |
|
|
|
c->status[0].predictor = sign_extend(bytestream_get_le16(&src), 16); |
|
|
|
c->status[0].step_index = bytestream_get_le16(&src); |
|
|
|
src += 4; |
|
|
|
} else { |
|
|
|
c->status[0].predictor = sign_extend(bytestream_get_be16(&src), 16); |
|
|
|
c->status[0].step_index = bytestream_get_byte(&src); |
|
|
|
src += 1; |
|
|
|
} |
|
|
|
|
|
|
|
for (n = nb_samples >> (1 - st); n > 0; n--, src++) { |
|
|
|
char hi, lo; |
|
|
|