Skip to content
Snippets Groups Projects
Commit 42df71d9 authored by Vittorio Giovara's avatar Vittorio Giovara Committed by Luca Barbato
Browse files

ratecontrol: Check memory allocation

parent 0994e142
No related branches found
No related tags found
No related merge requests found
...@@ -163,6 +163,8 @@ av_cold int ff_rate_control_init(MpegEncContext *s) ...@@ -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) ...@@ -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) ...@@ -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) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment