From 39f41a4f36fae46168312f08f144b5cc22b0c69a Mon Sep 17 00:00:00 2001 From: Jim Bankoski Date: Thu, 14 Oct 2010 16:19:06 -0400 Subject: [PATCH] safety check to avoid divide by 0s --- vp8/encoder/onyx_if.c | 3 +++ vp8/encoder/ratectrl.c | 2 ++ 2 files changed, 5 insertions(+) diff --git a/vp8/encoder/onyx_if.c b/vp8/encoder/onyx_if.c index 34af6ea8e..54eb31be8 100644 --- a/vp8/encoder/onyx_if.c +++ b/vp8/encoder/onyx_if.c @@ -1420,6 +1420,9 @@ int vp8_reverse_trans(int x) }; void vp8_new_frame_rate(VP8_COMP *cpi, double framerate) { + if(framerate < .1) + framerate = 30; + cpi->oxcf.frame_rate = framerate; cpi->output_frame_rate = cpi->oxcf.frame_rate; cpi->per_frame_bandwidth = (int)(cpi->oxcf.target_bandwidth / cpi->output_frame_rate); diff --git a/vp8/encoder/ratectrl.c b/vp8/encoder/ratectrl.c index 50f4db0b8..dd324f435 100644 --- a/vp8/encoder/ratectrl.c +++ b/vp8/encoder/ratectrl.c @@ -1481,6 +1481,8 @@ void vp8_adjust_key_frame_context(VP8_COMP *cpi) // allocated than those following other gfs. cpi->kf_overspend_bits += (cpi->projected_frame_size - cpi->per_frame_bandwidth) * 7 / 8; cpi->gf_overspend_bits += (cpi->projected_frame_size - cpi->per_frame_bandwidth) * 1 / 8; + if(!av_key_frame_frequency) + av_key_frame_frequency = 60; // Work out how much to try and recover per frame. // For one pass we estimate the number of frames to spread it over based upon past history.