- add sources.
[platform/framework/web/crosswalk.git] / src / media / base / simd / convert_rgb_to_yuv_ssse3.cc
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.
4
5 #include "media/base/simd/convert_rgb_to_yuv.h"
6
7 #include "build/build_config.h"
8 #include "media/base/simd/convert_rgb_to_yuv_ssse3.h"
9
10 namespace media {
11
12 void ConvertRGB32ToYUV_SSSE3(const uint8* rgbframe,
13                              uint8* yplane,
14                              uint8* uplane,
15                              uint8* vplane,
16                              int width,
17                              int height,
18                              int rgbstride,
19                              int ystride,
20                              int uvstride) {
21   for (; height >= 2; height -= 2) {
22     ConvertARGBToYUVRow_SSSE3(rgbframe, yplane, uplane, vplane, width);
23     rgbframe += rgbstride;
24     yplane += ystride;
25
26     ConvertARGBToYUVRow_SSSE3(rgbframe, yplane, NULL, NULL, width);
27     rgbframe += rgbstride;
28     yplane += ystride;
29
30     uplane += uvstride;
31     vplane += uvstride;
32   }
33
34   if (height)
35     ConvertARGBToYUVRow_SSSE3(rgbframe, yplane, uplane, vplane, width);
36 }
37
38 void ConvertRGB24ToYUV_SSSE3(const uint8* rgbframe,
39                              uint8* yplane,
40                              uint8* uplane,
41                              uint8* vplane,
42                              int width,
43                              int height,
44                              int rgbstride,
45                              int ystride,
46                              int uvstride) {
47   for (; height >= 2; height -= 2) {
48     ConvertRGBToYUVRow_SSSE3(rgbframe, yplane, uplane, vplane, width);
49     rgbframe += rgbstride;
50     yplane += ystride;
51
52     ConvertRGBToYUVRow_SSSE3(rgbframe, yplane, NULL, NULL, width);
53     rgbframe += rgbstride;
54     yplane += ystride;
55
56     uplane += uvstride;
57     vplane += uvstride;
58   }
59
60   if (height)
61     ConvertRGBToYUVRow_SSSE3(rgbframe, yplane, uplane, vplane, width);
62 }
63
64 }  // namespace media