summaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
authorandresantoso <andresantoso@chromium.org>2015-08-20 22:45:12 -0700
committerCommit bot <commit-bot@chromium.org>2015-08-21 05:46:20 +0000
commitdbb318a91ada8668e51f5e396a599894b71f46f1 (patch)
tree95de93cc4cc49a04c62bfade22f0e68e2c41e412 /ui
parent9bd5d4ba3d08c6be7cbb6f7c5489ab47903609a5 (diff)
downloadchromium_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.cc3
-rw-r--r--ui/gfx/buffer_types.h4
-rw-r--r--ui/gl/gl_image_io_surface.mm14
-rw-r--r--ui/gl/gl_image_memory.cc10
-rw-r--r--ui/gl/gl_image_ozone_native_pixmap.cc4
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;
}