From d09ee48e1cd72e2b14cdba926a409fec3c9fbe43 Mon Sep 17 00:00:00 2001 From: Alex Ray Date: Tue, 5 Mar 2013 12:47:50 -0800 Subject: [PATCH] gralloc: add private field to indicate chromaticity Separate differentiation between gamuts (wide vs narrow) and chromaticities (BT.601 vs BT.709). Change-Id: I892408fae5d12034067c02fe41b03f21b4274af5 --- include/exynos_format.h | 15 ++++++++++++--- include/gralloc_priv.h | 14 ++++++++------ 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/include/exynos_format.h b/include/exynos_format.h index 01c4657..aca1103 100644 --- a/include/exynos_format.h +++ b/include/exynos_format.h @@ -48,13 +48,22 @@ enum { HAL_PIXEL_FORMAT_CUSTOM_MAX }; -// Colorspace Gamuts +// Gamut (colorspace range) enum { HAL_PIXEL_GAMUT_DEFAULT = 0, // Values range 0-255 - HAL_PIXEL_GAMUT_JFIF_8, + HAL_PIXEL_GAMUT_WIDE_8, // Values range 16-235 - HAL_PIXEL_GAMUT_BT601_8 + HAL_PIXEL_GAMUT_NARROW_8 +}; + +// Chromaticities (colorspace parameters) +enum { + HAL_PIXEL_CHROMA_DEFAULT = 0, + // BT.601 "Standard Definition" color space + HAL_PIXEL_CHROMA_BT601_8, + // BT.709 "High Definition" color space + HAL_PIXEL_CHROMA_BT709_8 }; struct ADDRS { diff --git a/include/gralloc_priv.h b/include/gralloc_priv.h index 7a1e3e0..6dd1597 100644 --- a/include/gralloc_priv.h +++ b/include/gralloc_priv.h @@ -87,6 +87,7 @@ struct private_handle_t { int stride; int vstride; int gamut; + int chroma; // FIXME: the attributes below should be out-of-line void *base; @@ -98,7 +99,7 @@ struct private_handle_t { #ifdef __cplusplus static const int sNumFds = 3; - static const int sNumInts = 16; + static const int sNumInts = 17; static const int sMagic = 0x3141592; @@ -106,7 +107,8 @@ struct private_handle_t { int h, int format, int stride, int vstride) : fd(fd), fd1(-1), fd2(-1), magic(sMagic), flags(flags), size(size), offset(0), format(format), width(w), height(h), stride(stride), - vstride(vstride), gamut(0), base(0), handle(0), handle1(0), handle2(0) + vstride(vstride), gamut(0), chroma(0), base(0), handle(0), handle1(0), + handle2(0) { version = sizeof(native_handle); numInts = sNumInts + 2; @@ -117,8 +119,8 @@ struct private_handle_t { int h, int format, int stride, int vstride) : fd(fd), fd1(fd1), fd2(-1), magic(sMagic), flags(flags), size(size), offset(0), format(format), width(w), height(h), stride(stride), - vstride(vstride), gamut(0), base(0), base1(0), base2(0), handle(0), - handle1(0), handle2(0) + vstride(vstride), gamut(0), chroma(0), base(0), base1(0), base2(0), + handle(0), handle1(0), handle2(0) { version = sizeof(native_handle); numInts = sNumInts + 1; @@ -129,8 +131,8 @@ struct private_handle_t { int h, int format, int stride, int vstride) : fd(fd), fd1(fd1), fd2(fd2), magic(sMagic), flags(flags), size(size), offset(0), format(format), width(w), height(h), stride(stride), - vstride(vstride), gamut(0), base(0), base1(0), base2(0), handle(0), - handle1(0), handle2(0) + vstride(vstride), gamut(0), chroma(0), base(0), base1(0), base2(0), + handle(0), handle1(0), handle2(0) { version = sizeof(native_handle); numInts = sNumInts; -- 2.20.1