Ignore title parameter for navigator.registerProtocolHandler
[chromium-blink-merge.git] / media / base / simd / convert_yuv_to_rgb_x86.cc
blob969890dbbefd386e0754d19c24e00000b52d44f0
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #if defined(_MSC_VER)
6 #include <intrin.h>
7 #else
8 #include <mmintrin.h>
9 #endif
11 #include "media/base/simd/convert_yuv_to_rgb.h"
12 #include "media/base/simd/yuv_to_rgb_table.h"
13 #include "media/base/yuv_convert.h"
15 namespace media {
17 void ConvertYUVToRGB32_MMX(const uint8* yplane,
18 const uint8* uplane,
19 const uint8* vplane,
20 uint8* rgbframe,
21 int width,
22 int height,
23 int ystride,
24 int uvstride,
25 int rgbstride,
26 YUVType yuv_type) {
27 unsigned int y_shift = GetVerticalShift(yuv_type);
28 for (int y = 0; y < height; ++y) {
29 uint8* rgb_row = rgbframe + y * rgbstride;
30 const uint8* y_ptr = yplane + y * ystride;
31 const uint8* u_ptr = uplane + (y >> y_shift) * uvstride;
32 const uint8* v_ptr = vplane + (y >> y_shift) * uvstride;
34 ConvertYUVToRGB32Row_MMX(y_ptr,
35 u_ptr,
36 v_ptr,
37 rgb_row,
38 width,
39 GetLookupTable(yuv_type));
42 EmptyRegisterState();
45 void ConvertYUVAToARGB_MMX(const uint8* yplane,
46 const uint8* uplane,
47 const uint8* vplane,
48 const uint8* aplane,
49 uint8* rgbframe,
50 int width,
51 int height,
52 int ystride,
53 int uvstride,
54 int astride,
55 int rgbstride,
56 YUVType yuv_type) {
57 unsigned int y_shift = GetVerticalShift(yuv_type);
58 for (int y = 0; y < height; ++y) {
59 uint8* rgb_row = rgbframe + y * rgbstride;
60 const uint8* y_ptr = yplane + y * ystride;
61 const uint8* u_ptr = uplane + (y >> y_shift) * uvstride;
62 const uint8* v_ptr = vplane + (y >> y_shift) * uvstride;
63 const uint8* a_ptr = aplane + y * astride;
65 ConvertYUVAToARGBRow_MMX(y_ptr,
66 u_ptr,
67 v_ptr,
68 a_ptr,
69 rgb_row,
70 width,
71 GetLookupTable(yuv_type));
74 EmptyRegisterState();
77 void ConvertYUVToRGB32_SSE(const uint8* yplane,
78 const uint8* uplane,
79 const uint8* vplane,
80 uint8* rgbframe,
81 int width,
82 int height,
83 int ystride,
84 int uvstride,
85 int rgbstride,
86 YUVType yuv_type) {
87 unsigned int y_shift = GetVerticalShift(yuv_type);
88 for (int y = 0; y < height; ++y) {
89 uint8* rgb_row = rgbframe + y * rgbstride;
90 const uint8* y_ptr = yplane + y * ystride;
91 const uint8* u_ptr = uplane + (y >> y_shift) * uvstride;
92 const uint8* v_ptr = vplane + (y >> y_shift) * uvstride;
94 ConvertYUVToRGB32Row_SSE(y_ptr,
95 u_ptr,
96 v_ptr,
97 rgb_row,
98 width,
99 GetLookupTable(yuv_type));
102 EmptyRegisterState();
105 } // namespace media