|
|
@ -100,16 +100,12 @@ static av_cold int xan_decode_init(AVCodecContext *avctx) |
|
|
|
return AVERROR(ENOMEM); |
|
|
|
return AVERROR(ENOMEM); |
|
|
|
s->buffer2_size = avctx->width * avctx->height; |
|
|
|
s->buffer2_size = avctx->width * avctx->height; |
|
|
|
s->buffer2 = av_malloc(s->buffer2_size + 130); |
|
|
|
s->buffer2 = av_malloc(s->buffer2_size + 130); |
|
|
|
if (!s->buffer2) { |
|
|
|
if (!s->buffer2) |
|
|
|
av_freep(&s->buffer1); |
|
|
|
|
|
|
|
return AVERROR(ENOMEM); |
|
|
|
return AVERROR(ENOMEM); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
s->last_frame = av_frame_alloc(); |
|
|
|
s->last_frame = av_frame_alloc(); |
|
|
|
if (!s->last_frame) { |
|
|
|
if (!s->last_frame) |
|
|
|
xan_decode_end(avctx); |
|
|
|
|
|
|
|
return AVERROR(ENOMEM); |
|
|
|
return AVERROR(ENOMEM); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
return 0; |
|
|
|
} |
|
|
|
} |
|
|
@ -649,4 +645,5 @@ AVCodec ff_xan_wc3_decoder = { |
|
|
|
.close = xan_decode_end, |
|
|
|
.close = xan_decode_end, |
|
|
|
.decode = xan_decode_frame, |
|
|
|
.decode = xan_decode_frame, |
|
|
|
.capabilities = AV_CODEC_CAP_DR1, |
|
|
|
.capabilities = AV_CODEC_CAP_DR1, |
|
|
|
|
|
|
|
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP, |
|
|
|
}; |
|
|
|
}; |
|
|
|