Index: media/base/yuv_convert.h |
=================================================================== |
--- media/base/yuv_convert.h (revision 16299) |
+++ media/base/yuv_convert.h (working copy) |
@@ -9,29 +9,55 @@ |
namespace media { |
-// Convert a frame of YV12 (aka YUV420) to 32 bit ARGB. |
-void ConvertYV12ToRGB32(const uint8* yplane, |
- const uint8* uplane, |
- const uint8* vplane, |
- uint8* rgbframe, |
- size_t frame_width, |
- size_t frame_height, |
- int ystride, |
- int uvstride, |
- int rgbstride); |
+// Type of YUV surface. |
+// The value of these enums matter as they are used to shift vertical indices. |
+enum YUVType { |
+ YV16 = 0, // YV16 is half width and full height chroma channels. |
+ YV12 = 1, // YV12 is half width and half height chroma channels. |
+}; |
-// Convert a frame of YV16 (aka YUV422) to 32 bit ARGB. |
-void ConvertYV16ToRGB32(const uint8* yplane, |
- const uint8* uplane, |
- const uint8* vplane, |
- uint8* rgbframe, |
- size_t frame_width, |
- size_t frame_height, |
- int ystride, |
- int uvstride, |
- int rgbstride); |
+// Mirror means flip the image horizontally, as in looking in a mirror. |
+// Rotate happens after mirroring. |
+enum Rotate { |
+ ROTATE_0, // Rotation off. |
+ ROTATE_90, // Rotate clockwise. |
+ ROTATE_180, // Rotate upside down. |
+ ROTATE_270, // Rotate counter clockwise. |
+ MIRROR_ROTATE_0, // Mirror horizontally. |
+ MIRROR_ROTATE_90, // Mirror then Rotate clockwise. |
+ MIRROR_ROTATE_180, // Mirror vertically. |
+ MIRROR_ROTATE_270, // Transpose. |
+}; |
+// Convert a frame of YUV to 32 bit ARGB. |
+// Pass in YV16/YV12 depending on source format |
+void ConvertYUVToRGB32(const uint8* yplane, |
+ const uint8* uplane, |
+ const uint8* vplane, |
+ uint8* rgbframe, |
+ int frame_width, |
+ int frame_height, |
+ int ystride, |
+ int uvstride, |
+ int rgbstride, |
+ YUVType yuv_type); |
-#endif // MEDIA_BASE_YUV_CONVERT_H_ |
+// Scale a frame of YUV to 32 bit ARGB. |
+// Supports rotation and mirroring. |
+void ScaleYUVToRGB32(const uint8* yplane, |
+ const uint8* uplane, |
+ const uint8* vplane, |
+ uint8* rgbframe, |
+ int frame_width, |
+ int frame_height, |
+ int scaled_width, |
+ int scaled_height, |
+ int ystride, |
+ int uvstride, |
+ int rgbstride, |
+ YUVType yuv_type, |
+ Rotate view_rotate); |
} // namespace media |
+ |
+#endif // MEDIA_BASE_YUV_CONVERT_H_ |