1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-01-13 21:28:01 +02:00

lavc/adpcm: THP: allow channel counts up to 10

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Rodger Combs 2015-06-20 05:01:17 -05:00 committed by Michael Niedermayer
parent db426031dd
commit 6b547180b9

View File

@ -84,7 +84,7 @@ static const int swf_index_tables[4][16] = {
/* end of tables */ /* end of tables */
typedef struct ADPCMDecodeContext { typedef struct ADPCMDecodeContext {
ADPCMChannelStatus status[6]; ADPCMChannelStatus status[10];
int vqa_version; /**< VQA version. Used for ADPCM_IMA_WS */ int vqa_version; /**< VQA version. Used for ADPCM_IMA_WS */
} ADPCMDecodeContext; } ADPCMDecodeContext;
@ -104,9 +104,11 @@ static av_cold int adpcm_decode_init(AVCodecContext * avctx)
case AV_CODEC_ID_ADPCM_EA_R2: case AV_CODEC_ID_ADPCM_EA_R2:
case AV_CODEC_ID_ADPCM_EA_R3: case AV_CODEC_ID_ADPCM_EA_R3:
case AV_CODEC_ID_ADPCM_EA_XAS: case AV_CODEC_ID_ADPCM_EA_XAS:
max_channels = 6;
break;
case AV_CODEC_ID_ADPCM_THP: case AV_CODEC_ID_ADPCM_THP:
case AV_CODEC_ID_ADPCM_THP_LE: case AV_CODEC_ID_ADPCM_THP_LE:
max_channels = 6; max_channels = 10;
break; break;
} }
if (avctx->channels < min_channels || avctx->channels > max_channels) { if (avctx->channels < min_channels || avctx->channels > max_channels) {
@ -1428,7 +1430,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
case AV_CODEC_ID_ADPCM_THP: case AV_CODEC_ID_ADPCM_THP:
case AV_CODEC_ID_ADPCM_THP_LE: case AV_CODEC_ID_ADPCM_THP_LE:
{ {
int table[6][16]; int table[10][16];
int ch; int ch;
#define THP_GET16(g) \ #define THP_GET16(g) \