summaryrefslogtreecommitdiff
path: root/libavcodec/qdm2.c
diff options
context:
space:
mode:
authorJustin Ruggles <justin.ruggles@gmail.com>2012-10-22 18:53:19 -0400
committerJustin Ruggles <justin.ruggles@gmail.com>2012-11-01 11:29:18 -0400
commitbe2ab8b75a634a686a5ced1544c0c9a4ebeab0dc (patch)
tree96fd507d2dfacf1408dd3632ca13420b84c53675 /libavcodec/qdm2.c
parente3d6ab57042ef7b35f24bf154fba39369034a665 (diff)
qdm2: make sure channels is not <= 0 and set channel layout
Diffstat (limited to 'libavcodec/qdm2.c')
-rw-r--r--libavcodec/qdm2.c5
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;