Mercurial > libavcodec.hg
comparison adpcm.c @ 5853:286738ef0a4e libavcodec
EA IMA SEAD decoder
original patch by Peter Ross
author | aurel |
---|---|
date | Tue, 30 Oct 2007 23:12:18 +0000 |
parents | dea3ac1d4c67 |
children | 29b36106bc9c |
comparison
equal
deleted
inserted
replaced
5852:66317285d195 | 5853:286738ef0a4e |
---|---|
29 * Fringe ADPCM codecs (e.g., DK3, DK4, Westwood) | 29 * Fringe ADPCM codecs (e.g., DK3, DK4, Westwood) |
30 * by Mike Melanson (melanson@pcisys.net) | 30 * by Mike Melanson (melanson@pcisys.net) |
31 * CD-ROM XA ADPCM codec by BERO | 31 * CD-ROM XA ADPCM codec by BERO |
32 * EA ADPCM decoder by Robin Kay (komadori@myrealbox.com) | 32 * EA ADPCM decoder by Robin Kay (komadori@myrealbox.com) |
33 * EA ADPCM R1/R2/R3 decoder by Peter Ross (pross@xvid.org) | 33 * EA ADPCM R1/R2/R3 decoder by Peter Ross (pross@xvid.org) |
34 * EA IMA SEAD decoder by Peter Ross (pross@xvid.org) | |
34 * THP ADPCM decoder by Marco Gerards (mgerards@xs4all.nl) | 35 * THP ADPCM decoder by Marco Gerards (mgerards@xs4all.nl) |
35 * | 36 * |
36 * Features and limitations: | 37 * Features and limitations: |
37 * | 38 * |
38 * Reference documents: | 39 * Reference documents: |
1135 src += 128; | 1136 src += 128; |
1136 samples += 28 * 8; | 1137 samples += 28 * 8; |
1137 buf_size -= 128; | 1138 buf_size -= 128; |
1138 } | 1139 } |
1139 break; | 1140 break; |
1141 case CODEC_ID_ADPCM_IMA_EA_SEAD: | |
1142 for (; src < buf+buf_size; src++) { | |
1143 *samples++ = adpcm_ima_expand_nibble(&c->status[0], src[0] >> 4, 6); | |
1144 *samples++ = adpcm_ima_expand_nibble(&c->status[st],src[0]&0x0F, 6); | |
1145 } | |
1146 break; | |
1140 case CODEC_ID_ADPCM_EA: | 1147 case CODEC_ID_ADPCM_EA: |
1141 samples_in_chunk = AV_RL32(src); | 1148 samples_in_chunk = AV_RL32(src); |
1142 if (samples_in_chunk >= ((buf_size - 12) * 2)) { | 1149 if (samples_in_chunk >= ((buf_size - 12) * 2)) { |
1143 src += buf_size; | 1150 src += buf_size; |
1144 break; | 1151 break; |
1533 ADPCM_CODEC(CODEC_ID_ADPCM_CT, adpcm_ct); | 1540 ADPCM_CODEC(CODEC_ID_ADPCM_CT, adpcm_ct); |
1534 ADPCM_CODEC(CODEC_ID_ADPCM_EA, adpcm_ea); | 1541 ADPCM_CODEC(CODEC_ID_ADPCM_EA, adpcm_ea); |
1535 ADPCM_CODEC(CODEC_ID_ADPCM_IMA_AMV, adpcm_ima_amv); | 1542 ADPCM_CODEC(CODEC_ID_ADPCM_IMA_AMV, adpcm_ima_amv); |
1536 ADPCM_CODEC(CODEC_ID_ADPCM_IMA_DK3, adpcm_ima_dk3); | 1543 ADPCM_CODEC(CODEC_ID_ADPCM_IMA_DK3, adpcm_ima_dk3); |
1537 ADPCM_CODEC(CODEC_ID_ADPCM_IMA_DK4, adpcm_ima_dk4); | 1544 ADPCM_CODEC(CODEC_ID_ADPCM_IMA_DK4, adpcm_ima_dk4); |
1545 ADPCM_CODEC(CODEC_ID_ADPCM_IMA_EA_SEAD, adpcm_ima_ea_sead); | |
1538 ADPCM_CODEC(CODEC_ID_ADPCM_IMA_QT, adpcm_ima_qt); | 1546 ADPCM_CODEC(CODEC_ID_ADPCM_IMA_QT, adpcm_ima_qt); |
1539 ADPCM_CODEC(CODEC_ID_ADPCM_IMA_SMJPEG, adpcm_ima_smjpeg); | 1547 ADPCM_CODEC(CODEC_ID_ADPCM_IMA_SMJPEG, adpcm_ima_smjpeg); |
1540 ADPCM_CODEC(CODEC_ID_ADPCM_IMA_WAV, adpcm_ima_wav); | 1548 ADPCM_CODEC(CODEC_ID_ADPCM_IMA_WAV, adpcm_ima_wav); |
1541 ADPCM_CODEC(CODEC_ID_ADPCM_IMA_WS, adpcm_ima_ws); | 1549 ADPCM_CODEC(CODEC_ID_ADPCM_IMA_WS, adpcm_ima_ws); |
1542 ADPCM_CODEC(CODEC_ID_ADPCM_MS, adpcm_ms); | 1550 ADPCM_CODEC(CODEC_ID_ADPCM_MS, adpcm_ms); |