Index: media/base/simd/convert_rgb_to_yuv_sse2.cc |
diff --git a/media/base/simd/convert_rgb_to_yuv_sse2.cc b/media/base/simd/convert_rgb_to_yuv_sse2.cc |
index f99a2fef8401128376c6ae8de7dfc9d595d22797..124671c0c0317e26fec30794756d3f46425e6d43 100644 |
--- a/media/base/simd/convert_rgb_to_yuv_sse2.cc |
+++ b/media/base/simd/convert_rgb_to_yuv_sse2.cc |
@@ -21,6 +21,18 @@ namespace media { |
// Define a convenient macro to do static cast. |
#define INT16_FIX(x) static_cast<int16>(FIX(x)) |
+// Android's pixel layout is RGBA, while other platforms |
+// are BGRA. |
+#if defined(OS_ANDROID) |
+SIMD_ALIGNED(const int16 ConvertRGBAToYUV_kTable[8 * 3]) = { |
+ INT16_FIX(0.257), INT16_FIX(0.504), INT16_FIX(0.098), 0, |
+ INT16_FIX(0.257), INT16_FIX(0.504), INT16_FIX(0.098), 0, |
+ -INT16_FIX(0.148), -INT16_FIX(0.291), INT16_FIX(0.439), 0, |
+ -INT16_FIX(0.148), -INT16_FIX(0.291), INT16_FIX(0.439), 0, |
+ INT16_FIX(0.439), -INT16_FIX(0.368), -INT16_FIX(0.071), 0, |
+ INT16_FIX(0.439), -INT16_FIX(0.368), -INT16_FIX(0.071), 0, |
+}; |
+#else |
SIMD_ALIGNED(const int16 ConvertRGBAToYUV_kTable[8 * 3]) = { |
INT16_FIX(0.098), INT16_FIX(0.504), INT16_FIX(0.257), 0, |
INT16_FIX(0.098), INT16_FIX(0.504), INT16_FIX(0.257), 0, |
@@ -29,6 +41,7 @@ SIMD_ALIGNED(const int16 ConvertRGBAToYUV_kTable[8 * 3]) = { |
-INT16_FIX(0.071), -INT16_FIX(0.368), INT16_FIX(0.439), 0, |
-INT16_FIX(0.071), -INT16_FIX(0.368), INT16_FIX(0.439), 0, |
}; |
+#endif |
#undef INT16_FIX |