[mutter/wip/nielsdg/add-yuv-support] WIP: add YUV support
- From: Niels De Graef <nielsdg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wip/nielsdg/add-yuv-support] WIP: add YUV support
- Date: Tue, 6 Nov 2018 09:25:50 +0000 (UTC)
commit e1dfaac17ae726be7429c8cb639575464b56e75e
Author: Niels De Graef <Niels DeGraef barco com>
Date: Tue Oct 23 12:26:30 2018 +0200
WIP: add YUV support
cogl/cogl/cogl-bitmap-conversion.c | 1 +
cogl/cogl/cogl-types.h | 4 +++-
src/wayland/meta-wayland-buffer.c | 17 +++++++++++++++++
3 files changed, 21 insertions(+), 1 deletion(-)
---
diff --git a/cogl/cogl/cogl-bitmap-conversion.c b/cogl/cogl/cogl-bitmap-conversion.c
index 9748aca0c..14634d03e 100644
--- a/cogl/cogl/cogl-bitmap-conversion.c
+++ b/cogl/cogl/cogl-bitmap-conversion.c
@@ -323,6 +323,7 @@ _cogl_bitmap_needs_short_temp_buffer (CoglPixelFormat format)
case COGL_PIXEL_FORMAT_DEPTH_24_STENCIL_8:
case COGL_PIXEL_FORMAT_ANY:
case COGL_PIXEL_FORMAT_YUV:
+ case COGL_PIXEL_FORMAT_Y_UV:
g_assert_not_reached ();
case COGL_PIXEL_FORMAT_A_8:
diff --git a/cogl/cogl/cogl-types.h b/cogl/cogl/cogl-types.h
index f67895dd9..25163c13f 100644
--- a/cogl/cogl/cogl-types.h
+++ b/cogl/cogl/cogl-types.h
@@ -353,7 +353,9 @@ typedef enum { /*< prefix=COGL_PIXEL_FORMAT >*/
COGL_PIXEL_FORMAT_DEPTH_16 = (9 | COGL_DEPTH_BIT),
COGL_PIXEL_FORMAT_DEPTH_32 = (3 | COGL_DEPTH_BIT),
- COGL_PIXEL_FORMAT_DEPTH_24_STENCIL_8 = (3 | COGL_DEPTH_BIT | COGL_STENCIL_BIT)
+ COGL_PIXEL_FORMAT_DEPTH_24_STENCIL_8 = (3 | COGL_DEPTH_BIT | COGL_STENCIL_BIT),
+
+ COGL_PIXEL_FORMAT_Y_UV = 14 /* NV12 */
} CoglPixelFormat;
/**
diff --git a/src/wayland/meta-wayland-buffer.c b/src/wayland/meta-wayland-buffer.c
index b4b1e7825..b5a050815 100644
--- a/src/wayland/meta-wayland-buffer.c
+++ b/src/wayland/meta-wayland-buffer.c
@@ -181,6 +181,19 @@ shm_buffer_get_cogl_pixel_format (struct wl_shm_buffer *shm_buffer,
components = COGL_TEXTURE_COMPONENTS_RGB;
break;
#endif
+ case WL_SHM_FORMAT_NV12:
+ g_warning ("FORMAT IS NV12");
+ case WL_SHM_FORMAT_NV21:
+ g_warning ("FORMAT IS NV21");
+ case WL_SHM_FORMAT_YUV422:
+ g_warning ("FORMAT IS YUV422");
+ case WL_SHM_FORMAT_YVU422:
+ g_warning ("FORMAT IS YVU422");
+ case WL_SHM_FORMAT_YUV444:
+ g_warning ("FORMAT IS YUV444");
+ case WL_SHM_FORMAT_YVU444:
+ g_warning ("FORMAT IS YVU444");
+
default:
g_warn_if_reached ();
format = COGL_PIXEL_FORMAT_ARGB_8888;
@@ -288,6 +301,10 @@ egl_image_buffer_attach (MetaWaylandBuffer *buffer,
case EGL_TEXTURE_RGBA:
cogl_format = COGL_PIXEL_FORMAT_RGBA_8888_PRE;
break;
+ case EGL_TEXTURE_Y_UV_WL:
+ g_warning ("Got a NV12 color format texture!!");
+ cogl_format = COGL_PIXEL_FORMAT_Y_UV;
+ break;
default:
g_set_error (error, G_IO_ERROR,
G_IO_ERROR_FAILED,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]