diff options
author | Justin Ruggles <justin.ruggles@gmail.com> | 2012-10-22 18:53:19 -0400 |
---|---|---|
committer | Justin Ruggles <justin.ruggles@gmail.com> | 2012-11-01 11:29:18 -0400 |
commit | be2ab8b75a634a686a5ced1544c0c9a4ebeab0dc (patch) | |
tree | 96fd507d2dfacf1408dd3632ca13420b84c53675 | |
parent | e3d6ab57042ef7b35f24bf154fba39369034a665 (diff) | |
download | ffmpeg-be2ab8b75a634a686a5ced1544c0c9a4ebeab0dc.tar.gz |
qdm2: make sure channels is not <= 0 and set channel layout
-rw-r--r-- | libavcodec/qdm2.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/libavcodec/qdm2.c b/libavcodec/qdm2.c index 4d3b3915fb..8e93886f1c 100644 --- a/libavcodec/qdm2.c +++ b/libavcodec/qdm2.c @@ -36,6 +36,7 @@ #include <stdio.h> #define BITSTREAM_READER_LE +#include "libavutil/audioconvert.h" #include "avcodec.h" #include "get_bits.h" #include "dsputil.h" @@ -1768,8 +1769,10 @@ static av_cold int qdm2_decode_init(AVCodecContext *avctx) avctx->channels = s->nb_channels = s->channels = AV_RB32(extradata); extradata += 4; - if (s->channels > MPA_MAX_CHANNELS) + if (s->channels <= 0 || s->channels > MPA_MAX_CHANNELS) return AVERROR_INVALIDDATA; + avctx->channel_layout = avctx->channels == 2 ? AV_CH_LAYOUT_STEREO : + AV_CH_LAYOUT_MONO; avctx->sample_rate = AV_RB32(extradata); extradata += 4; |