svq1enc: correctly handle memory error and allocations

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
This commit is contained in:
Michael Niedermayer 2015-01-27 15:32:54 +00:00 committed by Vittorio Giovara
parent 67e9f3907d
commit 6f7a32839d
1 changed files with 6 additions and 0 deletions

View File

@ -583,10 +583,16 @@ static int svq1_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
ret = ff_get_buffer(avctx, s->current_picture, 0);
if (ret < 0)
return ret;
}
if (!s->last_picture->data[0]) {
ret = ff_get_buffer(avctx, s->last_picture, 0);
if (ret < 0)
return ret;
}
if (!s->scratchbuf) {
s->scratchbuf = av_malloc(s->current_picture->linesize[0] * 16 * 2);
if (!s->scratchbuf)
return AVERROR(ENOMEM);
}
FFSWAP(AVFrame*, s->current_picture, s->last_picture);