lavc/adpcm: THP: allow channel counts up to 10
authorRodger Combs <rodger.combs@gmail.com>
Sat, 20 Jun 2015 10:01:17 +0000 (05:01 -0500)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 20 Jun 2015 17:21:53 +0000 (19:21 +0200)
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/adpcm.c

index 0228ce1..69ece18 100644 (file)
@@ -84,7 +84,7 @@ static const int swf_index_tables[4][16] = {
 /* end of tables */
 
 typedef struct ADPCMDecodeContext {
-    ADPCMChannelStatus status[6];
+    ADPCMChannelStatus status[10];
     int vqa_version;                /**< VQA version. Used for ADPCM_IMA_WS */
 } 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_R3:
     case AV_CODEC_ID_ADPCM_EA_XAS:
+        max_channels = 6;
+        break;
     case AV_CODEC_ID_ADPCM_THP:
     case AV_CODEC_ID_ADPCM_THP_LE:
-        max_channels = 6;
+        max_channels = 10;
         break;
     }
     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_LE:
     {
-        int table[6][16];
+        int table[10][16];
         int ch;
 
 #define THP_GET16(g) \