diff options
author | andresantoso <andresantoso@chromium.org> | 2015-08-20 22:45:12 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-08-21 05:46:20 +0000 |
commit | dbb318a91ada8668e51f5e396a599894b71f46f1 (patch) | |
tree | 95de93cc4cc49a04c62bfade22f0e68e2c41e412 /ui | |
parent | 9bd5d4ba3d08c6be7cbb6f7c5489ab47903609a5 (diff) | |
download | chromium_src-dbb318a91ada8668e51f5e396a599894b71f46f1.zip chromium_src-dbb318a91ada8668e51f5e396a599894b71f46f1.tar.gz chromium_src-dbb318a91ada8668e51f5e396a599894b71f46f1.tar.bz2 |
Add UYVY 4:2:2 support to VideoFrame and GpuMemoryBuffer.
Added media::PIXEL_FORMAT_UYVY.
Replace gfx::BufferFormat::YUV_420_BIPLANAR with gfx::BufferFormat::UYVY_422.
We plan to use this format to enable video overlays on Mac.
BUG=510252
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
Review URL: https://codereview.chromium.org/1299973003
Cr-Commit-Position: refs/heads/master@{#344692}
Diffstat (limited to 'ui')
-rw-r--r-- | ui/gfx/buffer_format_util.cc | 3 | ||||
-rw-r--r-- | ui/gfx/buffer_types.h | 4 | ||||
-rw-r--r-- | ui/gl/gl_image_io_surface.mm | 14 | ||||
-rw-r--r-- | ui/gl/gl_image_memory.cc | 10 | ||||
-rw-r--r-- | ui/gl/gl_image_ozone_native_pixmap.cc | 4 |
5 files changed, 20 insertions, 15 deletions
diff --git a/ui/gfx/buffer_format_util.cc b/ui/gfx/buffer_format_util.cc index 202fb74..e0abf16 100644 --- a/ui/gfx/buffer_format_util.cc +++ b/ui/gfx/buffer_format_util.cc @@ -20,9 +20,8 @@ size_t NumberOfPlanesForBufferFormat(BufferFormat format) { case BufferFormat::RGBA_8888: case BufferFormat::BGRX_8888: case BufferFormat::BGRA_8888: + case BufferFormat::UYVY_422: return 1; - case BufferFormat::YUV_420_BIPLANAR: - return 2; case BufferFormat::YUV_420: return 3; } diff --git a/ui/gfx/buffer_types.h b/ui/gfx/buffer_types.h index c6d0e09..8552958 100644 --- a/ui/gfx/buffer_types.h +++ b/ui/gfx/buffer_types.h @@ -21,9 +21,9 @@ enum class BufferFormat { BGRX_8888, BGRA_8888, YUV_420, - YUV_420_BIPLANAR, + UYVY_422, - LAST = YUV_420_BIPLANAR + LAST = UYVY_422 }; // The usage mode affects how a buffer can be used. Only buffers created with diff --git a/ui/gl/gl_image_io_surface.mm b/ui/gl/gl_image_io_surface.mm index ef091f7..09848d2 100644 --- a/ui/gl/gl_image_io_surface.mm +++ b/ui/gl/gl_image_io_surface.mm @@ -25,6 +25,7 @@ bool ValidInternalFormat(unsigned internalformat) { switch (internalformat) { case GL_R8: case GL_BGRA_EXT: + case GL_RGB: return true; default: return false; @@ -35,6 +36,7 @@ bool ValidFormat(BufferFormat format) { switch (format) { case BufferFormat::R_8: case BufferFormat::BGRA_8888: + case BufferFormat::UYVY_422: return true; case BufferFormat::ATC: case BufferFormat::ATCIA: @@ -45,7 +47,6 @@ bool ValidFormat(BufferFormat format) { case BufferFormat::RGBA_8888: case BufferFormat::BGRX_8888: case BufferFormat::YUV_420: - case BufferFormat::YUV_420_BIPLANAR: return false; } @@ -59,6 +60,8 @@ GLenum TextureFormat(BufferFormat format) { return GL_RED; case BufferFormat::BGRA_8888: return GL_RGBA; + case BufferFormat::UYVY_422: + return GL_RGB; case BufferFormat::ATC: case BufferFormat::ATCIA: case BufferFormat::DXT1: @@ -68,7 +71,6 @@ GLenum TextureFormat(BufferFormat format) { case BufferFormat::RGBA_8888: case BufferFormat::BGRX_8888: case BufferFormat::YUV_420: - case BufferFormat::YUV_420_BIPLANAR: NOTREACHED(); return 0; } @@ -83,6 +85,9 @@ GLenum DataFormat(BufferFormat format) { return GL_RED; case BufferFormat::BGRA_8888: return GL_BGRA; + case BufferFormat::UYVY_422: + return GL_YCBCR_422_APPLE; + break; case BufferFormat::ATC: case BufferFormat::ATCIA: case BufferFormat::DXT1: @@ -92,7 +97,6 @@ GLenum DataFormat(BufferFormat format) { case BufferFormat::RGBA_8888: case BufferFormat::BGRX_8888: case BufferFormat::YUV_420: - case BufferFormat::YUV_420_BIPLANAR: NOTREACHED(); return 0; } @@ -107,6 +111,9 @@ GLenum DataType(BufferFormat format) { return GL_UNSIGNED_BYTE; case BufferFormat::BGRA_8888: return GL_UNSIGNED_INT_8_8_8_8_REV; + case BufferFormat::UYVY_422: + return GL_UNSIGNED_SHORT_8_8_APPLE; + break; case BufferFormat::ATC: case BufferFormat::ATCIA: case BufferFormat::DXT1: @@ -116,7 +123,6 @@ GLenum DataType(BufferFormat format) { case BufferFormat::RGBA_8888: case BufferFormat::BGRX_8888: case BufferFormat::YUV_420: - case BufferFormat::YUV_420_BIPLANAR: NOTREACHED(); return 0; } diff --git a/ui/gl/gl_image_memory.cc b/ui/gl/gl_image_memory.cc index c2ab57a..90bc7fc 100644 --- a/ui/gl/gl_image_memory.cc +++ b/ui/gl/gl_image_memory.cc @@ -47,7 +47,7 @@ bool ValidFormat(BufferFormat format) { return true; case BufferFormat::BGRX_8888: case BufferFormat::YUV_420: - case BufferFormat::YUV_420_BIPLANAR: + case BufferFormat::UYVY_422: return false; } @@ -69,7 +69,7 @@ bool IsCompressedFormat(BufferFormat format) { case BufferFormat::BGRA_8888: case BufferFormat::BGRX_8888: case BufferFormat::YUV_420: - case BufferFormat::YUV_420_BIPLANAR: + case BufferFormat::UYVY_422: return false; } @@ -98,7 +98,7 @@ GLenum TextureFormat(BufferFormat format) { return GL_BGRA_EXT; case BufferFormat::BGRX_8888: case BufferFormat::YUV_420: - case BufferFormat::YUV_420_BIPLANAR: + case BufferFormat::UYVY_422: NOTREACHED(); return 0; } @@ -126,7 +126,7 @@ GLenum DataType(BufferFormat format) { case BufferFormat::ETC1: case BufferFormat::BGRX_8888: case BufferFormat::YUV_420: - case BufferFormat::YUV_420_BIPLANAR: + case BufferFormat::UYVY_422: NOTREACHED(); return 0; } @@ -207,7 +207,7 @@ bool GLImageMemory::StrideInBytes(size_t width, return true; case BufferFormat::BGRX_8888: case BufferFormat::YUV_420: - case BufferFormat::YUV_420_BIPLANAR: + case BufferFormat::UYVY_422: NOTREACHED(); return false; } diff --git a/ui/gl/gl_image_ozone_native_pixmap.cc b/ui/gl/gl_image_ozone_native_pixmap.cc index 17c233b..a867e2d 100644 --- a/ui/gl/gl_image_ozone_native_pixmap.cc +++ b/ui/gl/gl_image_ozone_native_pixmap.cc @@ -38,7 +38,7 @@ bool ValidFormat(gfx::BufferFormat format) { case BufferFormat::RGBA_4444: case BufferFormat::RGBA_8888: case BufferFormat::YUV_420: - case BufferFormat::YUV_420_BIPLANAR: + case BufferFormat::UYVY_422: return false; } @@ -61,7 +61,7 @@ EGLint FourCC(gfx::BufferFormat format) { case BufferFormat::RGBA_4444: case BufferFormat::RGBA_8888: case BufferFormat::YUV_420: - case BufferFormat::YUV_420_BIPLANAR: + case BufferFormat::UYVY_422: NOTREACHED(); return 0; } |