OLD | NEW |
| (Empty) |
1 // Copyright (c) 2009 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 #ifndef MEDIA_BASE_YUV_SCALE_H_ | |
6 #define MEDIA_BASE_YUV_SCALE_H_ | |
7 | |
8 #include "base/basictypes.h" | |
9 | |
10 namespace media { | |
11 | |
12 // Mirror means flip the image horizontally, as in looking in a mirror. | |
13 // Rotate happens after mirroring. | |
14 | |
15 enum Rotate { | |
16 ROTATE_0, // Rotation off. | |
17 ROTATE_90, // Rotate clockwise. | |
18 ROTATE_180, // Rotate upside down. | |
19 ROTATE_270, // Rotate counter clockwise. | |
20 MIRROR_ROTATE_0, // Mirror horizontally. | |
21 MIRROR_ROTATE_90, // Mirror then Rotate clockwise. | |
22 MIRROR_ROTATE_180, // Mirror vertically. | |
23 MIRROR_ROTATE_270, // Transpose. | |
24 }; | |
25 | |
26 // Diagram showing origin and direction of source sampling. | |
27 // ->0 4<- | |
28 // 7 3 | |
29 // | |
30 // 6 5 | |
31 // ->1 2<- | |
32 | |
33 // Scale a frame of YV12 (aka YUV420) to 32 bit ARGB. | |
34 void ScaleYV12ToRGB32(const uint8* yplane, | |
35 const uint8* uplane, | |
36 const uint8* vplane, | |
37 uint8* rgbframe, | |
38 int frame_width, | |
39 int frame_height, | |
40 int scaled_width, | |
41 int scaled_height, | |
42 int ystride, | |
43 int uvstride, | |
44 int rgbstride, | |
45 Rotate view_rotate); | |
46 | |
47 // Scale a frame of YV16 (aka YUV422) to 32 bit ARGB. | |
48 void ScaleYV16ToRGB32(const uint8* yplane, | |
49 const uint8* uplane, | |
50 const uint8* vplane, | |
51 uint8* rgbframe, | |
52 int frame_width, | |
53 int frame_height, | |
54 int scaled_width, | |
55 int scaled_height, | |
56 int ystride, | |
57 int uvstride, | |
58 int rgbstride, | |
59 Rotate view_rotate); | |
60 | |
61 } // namespace media | |
62 | |
63 #endif // MEDIA_BASE_YUV_SCALE_H_ | |
64 | |
OLD | NEW |