Commit bb5b3940 authored by Janne Grunau's avatar Janne Grunau

adpcm: ADPCM Electronic Arts has always two channels

parent faaec467
...@@ -91,9 +91,13 @@ typedef struct ADPCMDecodeContext { ...@@ -91,9 +91,13 @@ typedef struct ADPCMDecodeContext {
static av_cold int adpcm_decode_init(AVCodecContext * avctx) static av_cold int adpcm_decode_init(AVCodecContext * avctx)
{ {
ADPCMDecodeContext *c = avctx->priv_data; ADPCMDecodeContext *c = avctx->priv_data;
unsigned int min_channels = 1;
unsigned int max_channels = 2; unsigned int max_channels = 2;
switch(avctx->codec->id) { switch(avctx->codec->id) {
case CODEC_ID_ADPCM_EA:
min_channels = 2;
break;
case CODEC_ID_ADPCM_EA_R1: case CODEC_ID_ADPCM_EA_R1:
case CODEC_ID_ADPCM_EA_R2: case CODEC_ID_ADPCM_EA_R2:
case CODEC_ID_ADPCM_EA_R3: case CODEC_ID_ADPCM_EA_R3:
...@@ -101,7 +105,7 @@ static av_cold int adpcm_decode_init(AVCodecContext * avctx) ...@@ -101,7 +105,7 @@ static av_cold int adpcm_decode_init(AVCodecContext * avctx)
max_channels = 6; max_channels = 6;
break; break;
} }
if (avctx->channels <= 0 || avctx->channels > max_channels) { if (avctx->channels < min_channels || avctx->channels > max_channels) {
av_log(avctx, AV_LOG_ERROR, "Invalid number of channels\n"); av_log(avctx, AV_LOG_ERROR, "Invalid number of channels\n");
return AVERROR(EINVAL); return AVERROR(EINVAL);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment