|
|
|
@@ -301,6 +301,8 @@ static int svq1_encode_plane(SVQ1EncContext *s, int plane, |
|
|
|
s->motion_val16[plane] = av_mallocz((s->m.mb_stride * |
|
|
|
(block_height + 2) + 1) * |
|
|
|
2 * sizeof(int16_t)); |
|
|
|
if (!s->motion_val8[plane] || !s->motion_val16[plane]) |
|
|
|
return AVERROR(ENOMEM); |
|
|
|
} |
|
|
|
|
|
|
|
s->m.mb_type = s->mb_type; |
|
|
|
@@ -555,6 +557,12 @@ static av_cold int svq1_encode_init(AVCodecContext *avctx) |
|
|
|
s->y_block_height * sizeof(int32_t)); |
|
|
|
s->ssd_int8_vs_int16 = ssd_int8_vs_int16_c; |
|
|
|
|
|
|
|
if (!s->m.me.scratchpad || !s->m.me.map || !s->m.me.score_map || |
|
|
|
!s->mb_type || !s->dummy) { |
|
|
|
svq1_encode_end(avctx); |
|
|
|
return AVERROR(ENOMEM); |
|
|
|
} |
|
|
|
|
|
|
|
if (ARCH_PPC) |
|
|
|
ff_svq1enc_init_ppc(s); |
|
|
|
if (ARCH_X86) |
|
|
|
@@ -588,6 +596,8 @@ static int svq1_encode_frame(AVCodecContext *avctx, AVPacket *pkt, |
|
|
|
} |
|
|
|
s->scratchbuf = av_malloc(s->current_picture->linesize[0] * 16 * 3); |
|
|
|
} |
|
|
|
if (!s->scratchbuf) |
|
|
|
return AVERROR(ENOMEM); |
|
|
|
|
|
|
|
FFSWAP(AVFrame*, s->current_picture, s->last_picture); |
|
|
|
|
|
|
|
|