| 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 37b168d8719ff37c579e84dab7d182bcb1d28af6..1c407d18e3b074270882d8a862cf0a6a24f236fe 100644 | 
| --- a/media/base/simd/convert_yuv_to_rgb_x86.cc | 
| +++ b/media/base/simd/convert_yuv_to_rgb_x86.cc | 
| @@ -40,6 +40,37 @@ void ConvertYUVToRGB32_MMX(const uint8* yplane, | 
| EmptyRegisterState(); | 
| } | 
|  | 
| +void ConvertYUVAToARGB_MMX(const uint8* yplane, | 
| +                           const uint8* uplane, | 
| +                           const uint8* vplane, | 
| +                           const uint8* aplane, | 
| +                           uint8* rgbframe, | 
| +                           int width, | 
| +                           int height, | 
| +                           int ystride, | 
| +                           int uvstride, | 
| +                           int astride, | 
| +                           int rgbstride, | 
| +                           YUVType yuv_type) { | 
| +  unsigned int y_shift = 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; | 
| +    const uint8* a_ptr = aplane + y * astride; | 
| + | 
| +    ConvertYUVAToARGBRow_MMX(y_ptr, | 
| +                             u_ptr, | 
| +                             v_ptr, | 
| +                             a_ptr, | 
| +                             rgb_row, | 
| +                             width); | 
| +  } | 
| + | 
| +  _mm_empty(); | 
| +} | 
| + | 
| void ConvertYUVToRGB32_SSE(const uint8* yplane, | 
| const uint8* uplane, | 
| const uint8* vplane, | 
|  |