Commit 107b3064 authored by Paul B Mahol's avatar Paul B Mahol

avcodec/wmaprodec: do not force extradata presence for XMA

Mainly useful for supporting decoding of headerless files.
Signed-off-by: 's avatarPaul B Mahol <onemda@gmail.com>
parent 45cd50e5
...@@ -322,12 +322,12 @@ static av_cold int decode_init(AVCodecContext *avctx) ...@@ -322,12 +322,12 @@ static av_cold int decode_init(AVCodecContext *avctx)
for (i = 0; i < avctx->extradata_size; i++) for (i = 0; i < avctx->extradata_size; i++)
av_log(avctx, AV_LOG_DEBUG, "[%x] ", avctx->extradata[i]); av_log(avctx, AV_LOG_DEBUG, "[%x] ", avctx->extradata[i]);
av_log(avctx, AV_LOG_DEBUG, "\n"); 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; 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; 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->decode_flags = 0x10d6;
s->bits_per_sample = 16; s->bits_per_sample = 16;
channel_mask = 0; channel_mask = 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment