Index: media/base/simd/convert_yuv_to_rgb_x86.cc |
diff --git a/media/base/simd/convert_yuv_to_rgb_x86.cc b/media/base/simd/convert_yuv_to_rgb_x86.cc |
index 2e6f5e30ab0f57518dcbaba852e9b56c3715eab0..969890dbbefd386e0754d19c24e00000b52d44f0 100644 |
--- a/media/base/simd/convert_yuv_to_rgb_x86.cc |
+++ b/media/base/simd/convert_yuv_to_rgb_x86.cc |
@@ -13,6 +13,34 @@ |
#include "media/base/yuv_convert.h" |
namespace media { |
+ |
+void ConvertYUVToRGB32_MMX(const uint8* yplane, |
+ const uint8* uplane, |
+ const uint8* vplane, |
+ uint8* rgbframe, |
+ int width, |
+ int height, |
+ int ystride, |
+ int uvstride, |
+ int rgbstride, |
+ YUVType yuv_type) { |
+ unsigned int y_shift = GetVerticalShift(yuv_type); |
+ for (int y = 0; y < height; ++y) { |
+ uint8* rgb_row = rgbframe + y * rgbstride; |
+ const uint8* y_ptr = yplane + y * ystride; |
+ const uint8* u_ptr = uplane + (y >> y_shift) * uvstride; |
+ const uint8* v_ptr = vplane + (y >> y_shift) * uvstride; |
+ |
+ ConvertYUVToRGB32Row_MMX(y_ptr, |
+ u_ptr, |
+ v_ptr, |
+ rgb_row, |
+ width, |
+ GetLookupTable(yuv_type)); |
+ } |
+ |
+ EmptyRegisterState(); |
+} |
void ConvertYUVAToARGB_MMX(const uint8* yplane, |
const uint8* uplane, |