From 107b3064d8bf783c64f488f17c1f485dd72653e7 Mon Sep 17 00:00:00 2001 From: Paul B Mahol Date: Wed, 11 Jan 2017 11:38:56 +0100 Subject: [PATCH] avcodec/wmaprodec: do not force extradata presence for XMA Mainly useful for supporting decoding of headerless files. Signed-off-by: Paul B Mahol --- libavcodec/wmaprodec.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavcodec/wmaprodec.c b/libavcodec/wmaprodec.c index d06e3b73ef..105e27999e 100644 --- a/libavcodec/wmaprodec.c +++ b/libavcodec/wmaprodec.c @@ -322,12 +322,12 @@ static av_cold int decode_init(AVCodecContext *avctx) for (i = 0; i < avctx->extradata_size; i++) av_log(avctx, AV_LOG_DEBUG, "[%x] ", avctx->extradata[i]); av_log(avctx, AV_LOG_DEBUG, "\n"); - if (avctx->codec_id == AV_CODEC_ID_XMA2 && avctx->extradata_size >= 34) { + if (avctx->codec_id == AV_CODEC_ID_XMA2 && (!avctx->extradata || avctx->extradata_size >= 6)) { s->decode_flags = 0x10d6; - channel_mask = AV_RL32(edata_ptr+2); + channel_mask = avctx->extradata ? AV_RL32(edata_ptr+2) : 0; s->bits_per_sample = 16; - } else if (avctx->codec_id == AV_CODEC_ID_XMA1 && avctx->extradata_size >= 28) { + } else if (avctx->codec_id == AV_CODEC_ID_XMA1) { s->decode_flags = 0x10d6; s->bits_per_sample = 16; channel_mask = 0;