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);