shithub: libvpx

Download patch

ref: 169823428fd1ba25c7a42924ac71aa0ee3dff57d
parent: 12d45f62f6af0b319aea508812461c83b6d91a35
author: Johann <johannkoenig@google.com>
date: Fri Feb 10 06:07:33 EST 2012

Missed some variance casts

Change-Id: I9fb510f9421fb3c317a8e32e3058cee977ddf9fa

--- a/vp8/encoder/x86/variance_mmx.c
+++ b/vp8/encoder/x86/variance_mmx.c
@@ -219,7 +219,7 @@
         &xsum, &xxsum
     );
     *sse = xxsum;
-    return (xxsum - ((xsum * xsum) >> 4));
+    return (xxsum - ((unsigned int)(xsum * xsum) >> 4));
 }
 
 
@@ -244,7 +244,7 @@
         &xsum, &xxsum
     );
     *sse = xxsum;
-    return (xxsum - ((xsum * xsum) >> 6));
+    return (xxsum - ((unsigned int)(xsum * xsum) >> 6));
 }
 
 unsigned int vp8_sub_pixel_variance16x16_mmx
@@ -282,7 +282,7 @@
     xxsum0 += xxsum1;
 
     *sse = xxsum0;
-    return (xxsum0 - ((xsum0 * xsum0) >> 8));
+    return (xxsum0 - ((unsigned int)(xsum0 * xsum0) >> 8));
 
 
 }
@@ -335,7 +335,7 @@
     xxsum0 += xxsum1;
 
     *sse = xxsum0;
-    return (xxsum0 - ((xsum0 * xsum0) >> 7));
+    return (xxsum0 - ((unsigned int)(xsum0 * xsum0) >> 7));
 }
 
 unsigned int vp8_sub_pixel_variance8x16_mmx
@@ -358,7 +358,7 @@
         &xsum, &xxsum
     );
     *sse = xxsum;
-    return (xxsum - ((xsum * xsum) >> 7));
+    return (xxsum - ((unsigned int)(xsum * xsum) >> 7));
 }
 
 
--- a/vp8/encoder/x86/variance_sse2.c
+++ b/vp8/encoder/x86/variance_sse2.c
@@ -184,7 +184,7 @@
 
     vp8_get16x16var_sse2(src_ptr, source_stride, ref_ptr, recon_stride, &sse0, &sum0) ;
     *sse = sse0;
-    return (sse0 - ((sum0 * sum0) >> 8));
+    return (sse0 - ((unsigned int)(sum0 * sum0) >> 8));
 }
 unsigned int vp8_mse16x16_wmt(
     const unsigned char *src_ptr,
@@ -265,7 +265,7 @@
         &xsum, &xxsum
     );
     *sse = xxsum;
-    return (xxsum - ((xsum * xsum) >> 4));
+    return (xxsum - ((unsigned int)(xsum * xsum) >> 4));
 }
 
 
@@ -314,7 +314,7 @@
     }
 
     *sse = xxsum;
-    return (xxsum - ((xsum * xsum) >> 6));
+    return (xxsum - ((unsigned int)(xsum * xsum) >> 6));
 }
 
 unsigned int vp8_sub_pixel_variance16x16_wmt
@@ -375,7 +375,7 @@
     }
 
     *sse = xxsum0;
-    return (xxsum0 - ((xsum0 * xsum0) >> 8));
+    return (xxsum0 - ((unsigned int)(xsum0 * xsum0) >> 8));
 }
 
 unsigned int vp8_sub_pixel_mse16x16_wmt(
@@ -446,7 +446,7 @@
     }
 
     *sse = xxsum0;
-    return (xxsum0 - ((xsum0 * xsum0) >> 7));
+    return (xxsum0 - ((unsigned int)(xsum0 * xsum0) >> 7));
 }
 
 unsigned int vp8_sub_pixel_variance8x16_wmt
@@ -494,7 +494,7 @@
     }
 
     *sse = xxsum;
-    return (xxsum - ((xsum * xsum) >> 7));
+    return (xxsum - ((unsigned int)(xsum * xsum) >> 7));
 }
 
 
@@ -514,7 +514,7 @@
         &xsum0, &xxsum0);
 
     *sse = xxsum0;
-    return (xxsum0 - ((xsum0 * xsum0) >> 8));
+    return (xxsum0 - ((unsigned int)(xsum0 * xsum0) >> 8));
 }
 
 
@@ -533,7 +533,7 @@
         &xsum0, &xxsum0);
 
     *sse = xxsum0;
-    return (xxsum0 - ((xsum0 * xsum0) >> 8));
+    return (xxsum0 - ((unsigned int)(xsum0 * xsum0) >> 8));
 }
 
 
@@ -553,5 +553,5 @@
         &xsum0, &xxsum0);
 
     *sse = xxsum0;
-    return (xxsum0 - ((xsum0 * xsum0) >> 8));
+    return (xxsum0 - ((unsigned int)(xsum0 * xsum0) >> 8));
 }