Module: libav Branch: master Commit: 01a01bf8bdafab1c81c3039850aba042b247626f
Author: Paul B Mahol <[email protected]> Committer: Janne Grunau <[email protected]> Date: Wed Dec 21 19:27:53 2011 +0000 adpcm: fix IMA SMJPEG decoding Signed-off-by: Janne Grunau <[email protected]> --- libavcodec/adpcm.c | 14 +++++++++----- 1 files changed, 9 insertions(+), 5 deletions(-) diff --git a/libavcodec/adpcm.c b/libavcodec/adpcm.c index 48f44fe..2081ef6 100644 --- a/libavcodec/adpcm.c +++ b/libavcodec/adpcm.c @@ -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; _______________________________________________ libav-commits mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-commits
