Add extra check in vbr_rate_correction.

Check for case that could cause divide by 0 and refactor.

Change-Id: I1f2724e15edaee05c9daf3832d110c2f2ac4476b
diff --git a/av1/encoder/ratectrl.c b/av1/encoder/ratectrl.c
index 8e40e80..754da2b 100644
--- a/av1/encoder/ratectrl.c
+++ b/av1/encoder/ratectrl.c
@@ -1704,27 +1704,18 @@
 static void vbr_rate_correction(AV1_COMP *cpi, int *this_frame_target) {
   RATE_CONTROL *const rc = &cpi->rc;
   int64_t vbr_bits_off_target = rc->vbr_bits_off_target;
-  int max_delta;
-  const int frame_window = clamp((int)(cpi->twopass.total_stats.count -
-                                       cpi->common.current_frame.frame_number),
-                                 1, 16);
+  const int frame_window =
+      AOMMIN(16, (int)(cpi->twopass.total_stats.count -
+                       cpi->common.current_frame.frame_number));
 
-  max_delta = (vbr_bits_off_target > 0)
-                  ? (int)(vbr_bits_off_target / frame_window)
-                  : (int)(-vbr_bits_off_target / frame_window);
+  if (frame_window > 0) {
+    const int max_delta =
+        AOMMIN(abs((int)(vbr_bits_off_target / frame_window)),
+               (*this_frame_target * VBR_PCT_ADJUSTMENT_LIMIT) / 100);
 
-  max_delta = AOMMIN(max_delta,
-                     ((*this_frame_target * VBR_PCT_ADJUSTMENT_LIMIT) / 100));
-
-  // vbr_bits_off_target > 0 means we have extra bits to spend
-  if (vbr_bits_off_target > 0) {
-    *this_frame_target += (vbr_bits_off_target > max_delta)
-                              ? max_delta
-                              : (int)vbr_bits_off_target;
-  } else {
-    *this_frame_target -= (vbr_bits_off_target < -max_delta)
-                              ? max_delta
-                              : (int)-vbr_bits_off_target;
+    // vbr_bits_off_target > 0 means we have extra bits to spend
+    // vbr_bits_off_target < 0 we are currently overshooting
+    *this_frame_target += (vbr_bits_off_target >= 0) ? max_delta : -max_delta;
   }
 
   // Fast redistribution of bits arising from massive local undershoot.