You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-15 14:13:16 +02:00
avcodec/wmaprodec: do not force extradata presence for XMA
Mainly useful for supporting decoding of headerless files. Signed-off-by: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
@@ -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;
|
||||||
|
Reference in New Issue
Block a user