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) {
+ if (!s->m.me.temp || !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);
}
s->frame_width / (i ? 4 : 1),
s->frame_height / (i ? 4 : 1),
pict->linesize[i],
- s->current_picture->linesize[i]) < 0)
+ s->current_picture->linesize[i]) < 0) {
+ int j;
+ for (j = 0; j < i; j++) {
+ av_freep(&s->motion_val8[j]);
+ av_freep(&s->motion_val16[j]);
+ }
+ av_freep(&s->scratchbuf);
return -1;
+ }
// avpriv_align_put_bits(&s->pb);
while (put_bits_count(&s->pb) & 31)