| 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_
|
|
|