mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
ratecontrol: Check memory allocation
This commit is contained in:
parent
0994e14213
commit
42df71d9bb
@ -163,6 +163,8 @@ av_cold int ff_rate_control_init(MpegEncContext *s)
|
||||
return -1;
|
||||
rcc->entry = av_mallocz(i * sizeof(RateControlEntry));
|
||||
rcc->num_entries = i;
|
||||
if (!rcc->entry)
|
||||
return AVERROR(ENOMEM);
|
||||
|
||||
/* init all to skipped p frames
|
||||
* (with b frames we might have a not encoded frame at the end FIXME) */
|
||||
@ -210,8 +212,10 @@ av_cold int ff_rate_control_init(MpegEncContext *s)
|
||||
p = next;
|
||||
}
|
||||
|
||||
if (init_pass2(s) < 0)
|
||||
if (init_pass2(s) < 0) {
|
||||
ff_rate_control_uninit(s);
|
||||
return -1;
|
||||
}
|
||||
|
||||
// FIXME maybe move to end
|
||||
if ((s->avctx->flags & CODEC_FLAG_PASS2) && s->avctx->rc_strategy == FF_RC_STRATEGY_XVID) {
|
||||
@ -932,6 +936,11 @@ static int init_pass2(MpegEncContext *s)
|
||||
|
||||
qscale = av_malloc(sizeof(double) * rcc->num_entries);
|
||||
blurred_qscale = av_malloc(sizeof(double) * rcc->num_entries);
|
||||
if (!qscale || !blurred_qscale) {
|
||||
av_free(qscale);
|
||||
av_free(blurred_qscale);
|
||||
return AVERROR(ENOMEM);
|
||||
}
|
||||
toobig = 0;
|
||||
|
||||
for (step = 256 * 256; step > 0.0000001; step *= 0.5) {
|
||||
|
Loading…
Reference in New Issue
Block a user