gralloc: add private field to indicate gamut
authorAlex Ray <aray@google.com>
Thu, 31 Jan 2013 05:19:59 +0000 (21:19 -0800)
committerAlex Ray <aray@google.com>
Mon, 11 Feb 2013 20:29:17 +0000 (12:29 -0800)
Differentiate between YUV buffers with JFIF and BT.601 gamuts (value
ranges).

Bug: 7985212
Change-Id: I91c3d97858b4d2a54e2d2c67e3417715024561bb

include/exynos_format.h
include/gralloc_priv.h

index 610c89d9ab144b5b774fde364dd814c15c2db3ee..01c4657a39a8dbbdc1c588d66f7a40f9f30af876 100644 (file)
@@ -48,6 +48,15 @@ enum {
     HAL_PIXEL_FORMAT_CUSTOM_MAX
 };
 
+// Colorspace Gamuts
+enum {
+    HAL_PIXEL_GAMUT_DEFAULT = 0,
+    // Values range 0-255
+    HAL_PIXEL_GAMUT_JFIF_8,
+    // Values range 16-235
+    HAL_PIXEL_GAMUT_BT601_8
+};
+
 struct ADDRS {
     unsigned int addr_y;
     unsigned int addr_cbcr;
index e831c0d15a6af53b2736be84f7becd558a32c1e0..7a1e3e086efddf6f8e4108b6710f5666b0999987 100644 (file)
@@ -86,6 +86,7 @@ struct private_handle_t {
     int     height;
     int     stride;
     int     vstride;
+    int     gamut;
 
     // FIXME: the attributes below should be out-of-line
     void    *base;
@@ -97,7 +98,7 @@ struct private_handle_t {
 
 #ifdef __cplusplus
     static const int sNumFds = 3;
-    static const int sNumInts = 15;
+    static const int sNumInts = 16;
     static const int sMagic = 0x3141592;
 
 
@@ -105,7 +106,7 @@ 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), base(0), handle(0), handle1(0), handle2(0)
+        vstride(vstride), gamut(0), base(0), handle(0), handle1(0), handle2(0)
     {
         version = sizeof(native_handle);
         numInts = sNumInts + 2;
@@ -116,8 +117,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), base(0), base1(0), base2(0), handle(0), handle1(0),
-        handle2(0)
+        vstride(vstride), gamut(0), base(0), base1(0), base2(0), handle(0),
+        handle1(0), handle2(0)
     {
         version = sizeof(native_handle);
         numInts = sNumInts + 1;
@@ -128,8 +129,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), base(0), base1(0), base2(0), handle(0), handle1(0),
-        handle2(0)
+        vstride(vstride), gamut(0), base(0), base1(0), base2(0), handle(0),
+        handle1(0), handle2(0)
     {
         version = sizeof(native_handle);
         numInts = sNumInts;