safety check to avoid divide by 0s
authorJim Bankoski <jimbankoski@google.com>
Thu, 14 Oct 2010 20:19:06 +0000 (16:19 -0400)
committerJim Bankoski <jimbankoski@google.com>
Thu, 14 Oct 2010 20:19:06 +0000 (16:19 -0400)
vp8/encoder/onyx_if.c
vp8/encoder/ratectrl.c

index 34af6ea..54eb31b 100644 (file)
@@ -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);
index 50f4db0..dd324f4 100644 (file)
@@ -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.