mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-13 21:28:01 +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;
|
return -1;
|
||||||
rcc->entry = av_mallocz(i * sizeof(RateControlEntry));
|
rcc->entry = av_mallocz(i * sizeof(RateControlEntry));
|
||||||
rcc->num_entries = i;
|
rcc->num_entries = i;
|
||||||
|
if (!rcc->entry)
|
||||||
|
return AVERROR(ENOMEM);
|
||||||
|
|
||||||
/* init all to skipped p frames
|
/* init all to skipped p frames
|
||||||
* (with b frames we might have a not encoded frame at the end FIXME) */
|
* (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;
|
p = next;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (init_pass2(s) < 0)
|
if (init_pass2(s) < 0) {
|
||||||
|
ff_rate_control_uninit(s);
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
// FIXME maybe move to end
|
// FIXME maybe move to end
|
||||||
if ((s->avctx->flags & CODEC_FLAG_PASS2) && s->avctx->rc_strategy == FF_RC_STRATEGY_XVID) {
|
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);
|
qscale = av_malloc(sizeof(double) * rcc->num_entries);
|
||||||
blurred_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;
|
toobig = 0;
|
||||||
|
|
||||||
for (step = 256 * 256; step > 0.0000001; step *= 0.5) {
|
for (step = 256 * 256; step > 0.0000001; step *= 0.5) {
|
||||||
|
Loading…
Reference in New Issue
Block a user