Bug 1255688 - Fix TypeFromSize for YV16 case; r=jrmuizel draft
authorKaku Kuo <tkuo@mozilla.com>
Thu, 10 Mar 2016 17:58:00 +0800
changeset 372346 fa25dd9512f26dfb4e58d5ddb96a14b48fd8c593
parent 372307 ea15028498ed95677844fb7f30be5efcaf8b2621
child 522168 f91f41bb5ddb4f44394cbffbb3fd4530ab872644
push id19512
push usertkuo@mozilla.com
push dateSat, 28 May 2016 03:10:39 +0000
reviewersjrmuizel
bugs1255688
milestone49.0a1
Bug 1255688 - Fix TypeFromSize for YV16 case; r=jrmuizel MozReview-Commit-ID: KATnTZaLLdG
gfx/ycbcr/yuv_convert.cpp
--- a/gfx/ycbcr/yuv_convert.cpp
+++ b/gfx/ycbcr/yuv_convert.cpp
@@ -20,31 +20,31 @@
 
 // Header for low level row functions.
 #include "yuv_row.h"
 #include "mozilla/SSE.h"
 
 namespace mozilla {
 
 namespace gfx {
- 
+
 // 16.16 fixed point arithmetic
 const int kFractionBits = 16;
 const int kFractionMax = 1 << kFractionBits;
 const int kFractionMask = ((1 << kFractionBits) - 1);
 
-YUVType TypeFromSize(int ywidth, 
-                              int yheight, 
-                              int cbcrwidth, 
+YUVType TypeFromSize(int ywidth,
+                              int yheight,
+                              int cbcrwidth,
                               int cbcrheight)
 {
   if (ywidth == cbcrwidth && yheight == cbcrheight) {
     return YV24;
   }
-  else if (ywidth / 2 == cbcrwidth && yheight == cbcrheight) {
+  else if ((ywidth + 1) / 2 == cbcrwidth && yheight == cbcrheight) {
     return YV16;
   }
   else {
     return YV12;
   }
 }
 
 // Convert a frame of YUV to 32 bit ARGB.