mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-03-23 04:24:35 +02:00
svq1: Check memory allocation
This commit is contained in:
parent
42df71d9bb
commit
28fb80dcbf
@ -292,6 +292,8 @@ static int svq1_encode_plane(SVQ1EncContext *s, int plane,
|
|||||||
s->motion_val16[plane] = av_mallocz((s->m.mb_stride *
|
s->motion_val16[plane] = av_mallocz((s->m.mb_stride *
|
||||||
(block_height + 2) + 1) *
|
(block_height + 2) + 1) *
|
||||||
2 * sizeof(int16_t));
|
2 * sizeof(int16_t));
|
||||||
|
if (!s->motion_val8[plane] || !s->motion_val16[plane])
|
||||||
|
return AVERROR(ENOMEM);
|
||||||
}
|
}
|
||||||
|
|
||||||
s->m.mb_type = s->mb_type;
|
s->m.mb_type = s->mb_type;
|
||||||
@ -549,6 +551,12 @@ static av_cold int svq1_encode_init(AVCodecContext *avctx)
|
|||||||
s->y_block_height * sizeof(int32_t));
|
s->y_block_height * sizeof(int32_t));
|
||||||
s->ssd_int8_vs_int16 = ssd_int8_vs_int16_c;
|
s->ssd_int8_vs_int16 = ssd_int8_vs_int16_c;
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
if (ARCH_PPC)
|
if (ARCH_PPC)
|
||||||
ff_svq1enc_init_ppc(s);
|
ff_svq1enc_init_ppc(s);
|
||||||
if (ARCH_X86)
|
if (ARCH_X86)
|
||||||
@ -612,8 +620,15 @@ static int svq1_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
|
|||||||
s->frame_width / (i ? 4 : 1),
|
s->frame_width / (i ? 4 : 1),
|
||||||
s->frame_height / (i ? 4 : 1),
|
s->frame_height / (i ? 4 : 1),
|
||||||
pict->linesize[i],
|
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;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
// avpriv_align_put_bits(&s->pb);
|
// avpriv_align_put_bits(&s->pb);
|
||||||
while (put_bits_count(&s->pb) & 31)
|
while (put_bits_count(&s->pb) & 31)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user