From d94e29cac94d1f938cf3a25320522cc9de0a6b86 Mon Sep 17 00:00:00 2001 From: Justin Ruggles Date: Tue, 27 Sep 2011 19:49:25 -0400 Subject: pcmdec: move number of channels check to pcm_decode_init() --- libavcodec/pcm.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'libavcodec/pcm.c') diff --git a/libavcodec/pcm.c b/libavcodec/pcm.c index c0d093015a..2a50a8146d 100644 --- a/libavcodec/pcm.c +++ b/libavcodec/pcm.c @@ -213,6 +213,11 @@ static av_cold int pcm_decode_init(AVCodecContext * avctx) PCMDecode *s = avctx->priv_data; int i; + if (avctx->channels <= 0 || avctx->channels > MAX_CHANNELS) { + av_log(avctx, AV_LOG_ERROR, "PCM channels out of bounds\n"); + return AVERROR(EINVAL); + } + switch(avctx->codec->id) { case CODEC_ID_PCM_ALAW: for(i=0;i<256;i++) @@ -266,11 +271,6 @@ static int pcm_decode_frame(AVCodecContext *avctx, samples = data; src = buf; - if(avctx->channels <= 0 || avctx->channels > MAX_CHANNELS){ - av_log(avctx, AV_LOG_ERROR, "PCM channels out of bounds\n"); - return -1; - } - sample_size = av_get_bits_per_sample(avctx->codec_id)/8; /* av_get_bits_per_sample returns 0 for CODEC_ID_PCM_DVD */ -- cgit v1.2.3