|
|
@ -844,19 +844,13 @@ static av_cold int mss3_decode_init(AVCodecContext *avctx) |
|
|
|
b_width * b_height); |
|
|
|
b_width * b_height); |
|
|
|
if (!c->dct_coder[i].prev_dc) { |
|
|
|
if (!c->dct_coder[i].prev_dc) { |
|
|
|
av_log(avctx, AV_LOG_ERROR, "Cannot allocate buffer\n"); |
|
|
|
av_log(avctx, AV_LOG_ERROR, "Cannot allocate buffer\n"); |
|
|
|
while (i >= 0) { |
|
|
|
|
|
|
|
av_freep(&c->dct_coder[i].prev_dc); |
|
|
|
|
|
|
|
i--; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return AVERROR(ENOMEM); |
|
|
|
return AVERROR(ENOMEM); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
c->pic = av_frame_alloc(); |
|
|
|
c->pic = av_frame_alloc(); |
|
|
|
if (!c->pic) { |
|
|
|
if (!c->pic) |
|
|
|
mss3_decode_end(avctx); |
|
|
|
|
|
|
|
return AVERROR(ENOMEM); |
|
|
|
return AVERROR(ENOMEM); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
avctx->pix_fmt = AV_PIX_FMT_YUV420P; |
|
|
|
avctx->pix_fmt = AV_PIX_FMT_YUV420P; |
|
|
|
|
|
|
|
|
|
|
@ -875,4 +869,5 @@ AVCodec ff_msa1_decoder = { |
|
|
|
.close = mss3_decode_end, |
|
|
|
.close = mss3_decode_end, |
|
|
|
.decode = mss3_decode_frame, |
|
|
|
.decode = mss3_decode_frame, |
|
|
|
.capabilities = AV_CODEC_CAP_DR1, |
|
|
|
.capabilities = AV_CODEC_CAP_DR1, |
|
|
|
|
|
|
|
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP, |
|
|
|
}; |
|
|
|
}; |
|
|
|