From: Andreas Cadhalpun Date: Thu, 26 Feb 2015 00:06:57 +0000 (+0100) Subject: adxdec: set avctx->channels in adx_read_header X-Git-Tag: v11.4~36 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a73b2c288e3dace6e054a5b48640978be1d5df84;p=platform%2Fupstream%2Flibav.git adxdec: set avctx->channels in adx_read_header It is used in adx_read_packet, which currently depends on the decoder/parser setting this value between reading the file header and demuxing the first packet. Signed-off-by: Andreas Cadhalpun Signed-off-by: Anton Khirnov --- diff --git a/libavformat/adxdec.c b/libavformat/adxdec.c index fc83ff2..9d3ebe3 100644 --- a/libavformat/adxdec.c +++ b/libavformat/adxdec.c @@ -89,8 +89,14 @@ static int adx_read_header(AVFormatContext *s) av_log(s, AV_LOG_ERROR, "Invalid extradata size.\n"); return AVERROR_INVALIDDATA; } + avctx->channels = AV_RB8(avctx->extradata + 7); avctx->sample_rate = AV_RB32(avctx->extradata + 8); + if (avctx->channels <= 0) { + av_log(s, AV_LOG_ERROR, "invalid number of channels %d\n", avctx->channels); + return AVERROR_INVALIDDATA; + } + st->codec->codec_type = AVMEDIA_TYPE_AUDIO; st->codec->codec_id = s->iformat->raw_codec_id;