Bug 1255688 - Fix TypeFromSize for YV16 case; r=jrmuizel
MozReview-Commit-ID: KATnTZaLLdG
--- 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.