|
|
@@ -13,6 +13,7 @@ |
|
|
|
* MAXIS EA ADPCM decoder by Robert Marston (rmarston@gmail.com) |
|
|
|
* THP ADPCM decoder by Marco Gerards (mgerards@xs4all.nl) |
|
|
|
* Argonaut Games ADPCM decoder by Zane van Iperen (zane@zanevaniperen.com) |
|
|
|
* Simon & Schuster Interactive ADPCM decoder by Zane van Iperen (zane@zanevaniperen.com) |
|
|
|
* |
|
|
|
* This file is part of FFmpeg. |
|
|
|
* |
|
|
@@ -620,6 +621,7 @@ static int get_nb_samples(AVCodecContext *avctx, GetByteContext *gb, |
|
|
|
case AV_CODEC_ID_ADPCM_IMA_WS: |
|
|
|
case AV_CODEC_ID_ADPCM_YAMAHA: |
|
|
|
case AV_CODEC_ID_ADPCM_AICA: |
|
|
|
case AV_CODEC_ID_ADPCM_IMA_SSI: |
|
|
|
nb_samples = buf_size * 2 / ch; |
|
|
|
break; |
|
|
|
} |
|
|
@@ -1172,6 +1174,13 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data, |
|
|
|
*samples++ = adpcm_ima_expand_nibble(&c->status[st], v & 0x0F, 3); |
|
|
|
} |
|
|
|
break; |
|
|
|
case AV_CODEC_ID_ADPCM_IMA_SSI: |
|
|
|
while (bytestream2_get_bytes_left(&gb) > 0) { |
|
|
|
int v = bytestream2_get_byteu(&gb); |
|
|
|
*samples++ = adpcm_ima_qt_expand_nibble(&c->status[0], v >> 4 , 3); |
|
|
|
*samples++ = adpcm_ima_qt_expand_nibble(&c->status[st], v & 0x0F, 3); |
|
|
|
} |
|
|
|
break; |
|
|
|
case AV_CODEC_ID_ADPCM_IMA_OKI: |
|
|
|
while (bytestream2_get_bytes_left(&gb) > 0) { |
|
|
|
int v = bytestream2_get_byteu(&gb); |
|
|
@@ -1906,6 +1915,7 @@ ADPCM_DECODER(AV_CODEC_ID_ADPCM_IMA_ISS, sample_fmts_s16, adpcm_ima_iss, |
|
|
|
ADPCM_DECODER(AV_CODEC_ID_ADPCM_IMA_OKI, sample_fmts_s16, adpcm_ima_oki, "ADPCM IMA Dialogic OKI"); |
|
|
|
ADPCM_DECODER(AV_CODEC_ID_ADPCM_IMA_QT, sample_fmts_s16p, adpcm_ima_qt, "ADPCM IMA QuickTime"); |
|
|
|
ADPCM_DECODER(AV_CODEC_ID_ADPCM_IMA_RAD, sample_fmts_s16, adpcm_ima_rad, "ADPCM IMA Radical"); |
|
|
|
ADPCM_DECODER(AV_CODEC_ID_ADPCM_IMA_SSI, sample_fmts_s16, adpcm_ima_ssi, "ADPCM IMA Simon & Schuster Interactive"); |
|
|
|
ADPCM_DECODER(AV_CODEC_ID_ADPCM_IMA_SMJPEG, sample_fmts_s16, adpcm_ima_smjpeg, "ADPCM IMA Loki SDL MJPEG"); |
|
|
|
ADPCM_DECODER(AV_CODEC_ID_ADPCM_IMA_WAV, sample_fmts_s16p, adpcm_ima_wav, "ADPCM IMA WAV"); |
|
|
|
ADPCM_DECODER(AV_CODEC_ID_ADPCM_IMA_WS, sample_fmts_both, adpcm_ima_ws, "ADPCM IMA Westwood"); |
|
|
|