From: Johann Date: Wed, 29 Jun 2011 18:34:25 +0000 (-0400) Subject: guard against space/time distortion X-Git-Tag: v0.9.7~56^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bb0ca87a0d7c347e924dae4b83af81fe9454dad2;p=libvpx guard against space/time distortion and divide by 0 errors Change-Id: I8af5ca3d0913cb6f278fff754f8772bcb62e674a --- diff --git a/vpxenc.c b/vpxenc.c index 26afcd6f4..775a22b27 100644 --- a/vpxenc.c +++ b/vpxenc.c @@ -1342,6 +1342,8 @@ static void update_rate_histogram(struct rate_hist *hist, if(now < cfg->rc_buf_initial_sz) return; + then = now; + /* Sum the size over the past rc_buf_sz ms */ for(i = hist->frames; i > 0; i--) { @@ -1353,6 +1355,9 @@ static void update_rate_histogram(struct rate_hist *hist, sum_sz += hist->sz[i_idx]; } + if (now == then) + return; + avg_bitrate = sum_sz * 8 * 1000 / (now - then); idx = avg_bitrate * (RATE_BINS/2) / (cfg->rc_target_bitrate * 1000); if(idx < 0)