Make this/next iiratio unsigned.
authorJohn Koleszar <jkoleszar@google.com>
Sat, 12 Jun 2010 18:11:51 +0000 (14:11 -0400)
committerJohn Koleszar <jkoleszar@google.com>
Sat, 12 Jun 2010 18:11:51 +0000 (14:11 -0400)
This patch addresses issue #79, which is a regression since commit
28de670 "Fix RD bug." If the coded error value is zero, the iiratio
calculation effectively multiplies by 1000000 by the
DOUBLE_DIVIDE_CHECK macro. This can result in a value larger than
INT_MAX, giving a negative ratio. Since the error values are
conceptually unsigned (though they're stored in a double) this patch
makes the iiratio values unsigned, which allows the clamping to work
as expected.

vp8/encoder/onyx_int.h

index b934d98..889bf73 100644 (file)
@@ -523,8 +523,8 @@ typedef struct
     int motion_lvl;
     int motion_speed;
     int motion_var;
-    int next_iiratio;
-    int this_iiratio;
+    unsigned int next_iiratio;
+    unsigned int this_iiratio;
     int this_frame_modified_error;
 
     double norm_intra_err_per_mb;