Add some useful YUV formats. Add fourcc version of the definitions.

also removed incorrect 4:2:0 interleaved formats

Change-Id: Ib477de86504cc67861def16fc4dfdae0dd3eb59d
diff --git a/include/hardware/hardware.h b/include/hardware/hardware.h
index 210a5aa..d316ccf 100644
--- a/include/hardware/hardware.h
+++ b/include/hardware/hardware.h
@@ -123,27 +123,44 @@
  */
 
 enum {
-    HAL_PIXEL_FORMAT_RGBA_8888    = 1,
-    HAL_PIXEL_FORMAT_RGBX_8888    = 2,
-    HAL_PIXEL_FORMAT_RGB_888      = 3,
-    HAL_PIXEL_FORMAT_RGB_565      = 4,
-    HAL_PIXEL_FORMAT_BGRA_8888    = 5,
-    HAL_PIXEL_FORMAT_RGBA_5551    = 6,
-    HAL_PIXEL_FORMAT_RGBA_4444    = 7,
-    HAL_PIXEL_FORMAT_YCbCr_422_SP = 0x10,
-    HAL_PIXEL_FORMAT_YCrCb_420_SP = 0x11,
-    HAL_PIXEL_FORMAT_YCbCr_422_P  = 0x12,
-    HAL_PIXEL_FORMAT_YCbCr_420_P  = 0x13,
-    HAL_PIXEL_FORMAT_YCbCr_422_I  = 0x14,
-    HAL_PIXEL_FORMAT_YCbCr_420_I  = 0x15,
-    HAL_PIXEL_FORMAT_CbYCrY_422_I = 0x16,
-    HAL_PIXEL_FORMAT_CbYCrY_420_I = 0x17,
-    HAL_PIXEL_FORMAT_YCbCr_420_SP_TILED = 0x20,
-    HAL_PIXEL_FORMAT_YCbCr_420_SP       = 0x21,
-    HAL_PIXEL_FORMAT_YCrCb_420_SP_TILED = 0x22,
-    HAL_PIXEL_FORMAT_YCrCb_422_SP       = 0x23,
+    HAL_PIXEL_FORMAT_RGBA_8888          = 1,
+    HAL_PIXEL_FORMAT_RGBX_8888          = 2,
+    HAL_PIXEL_FORMAT_RGB_888            = 3,
+    HAL_PIXEL_FORMAT_RGB_565            = 4,
+    HAL_PIXEL_FORMAT_BGRA_8888          = 5,
+    HAL_PIXEL_FORMAT_RGBA_5551          = 6,
+    HAL_PIXEL_FORMAT_RGBA_4444          = 7,
+    /* 0x8 - 0xF range unavailable */
+    HAL_PIXEL_FORMAT_YCbCr_422_SP       = 0x10,     // NV16
+    HAL_PIXEL_FORMAT_YCrCb_420_SP       = 0x11,     // NV21 (_adreno)
+    HAL_PIXEL_FORMAT_YCbCr_422_P        = 0x12,     // IYUV
+    HAL_PIXEL_FORMAT_YCbCr_420_P        = 0x13,     // YUV9
+    HAL_PIXEL_FORMAT_YCbCr_422_I        = 0x14,     // YUY2 (_adreno)
+    /* 0x15 reserved */
+    HAL_PIXEL_FORMAT_CbYCrY_422_I       = 0x16,     // UYVY (_adreno)
+    /* 0x17 reserved */
+    /* 0x18 - 0x1F range unavailable */
+    HAL_PIXEL_FORMAT_YCbCr_420_SP_TILED = 0x20,     // NV12_adreno_tiled
+    HAL_PIXEL_FORMAT_YCbCr_420_SP       = 0x21,     // NV12
+    HAL_PIXEL_FORMAT_YCrCb_420_SP_TILED = 0x22,     // NV21_adreno_tiled
+    HAL_PIXEL_FORMAT_YCrCb_422_SP       = 0x23,     // NV61
+    HAL_PIXEL_FORMAT_YCrCb_422_P        = 0x24,     // YV12 (_adreno)
 };
 
+/* fourcc mapping for the YUV formats. see http://www.fourcc.org */
+enum {
+    HAL_PIXEL_FORMAT_NV16               = HAL_PIXEL_FORMAT_YCbCr_422_SP,
+    HAL_PIXEL_FORMAT_NV21               = HAL_PIXEL_FORMAT_YCrCb_420_SP,
+    HAL_PIXEL_FORMAT_IYUV               = HAL_PIXEL_FORMAT_YCbCr_422_P,
+    HAL_PIXEL_FORMAT_YUV9               = HAL_PIXEL_FORMAT_YCbCr_420_P,
+    HAL_PIXEL_FORMAT_YUY2               = HAL_PIXEL_FORMAT_YCbCr_422_I,
+    HAL_PIXEL_FORMAT_UYVY               = HAL_PIXEL_FORMAT_CbYCrY_422_I,
+    HAL_PIXEL_FORMAT_NV12_ADRENO_TILED  = HAL_PIXEL_FORMAT_YCbCr_420_SP_TILED,
+    HAL_PIXEL_FORMAT_NV12               = HAL_PIXEL_FORMAT_YCbCr_420_SP,
+    HAL_PIXEL_FORMAT_NV21_ADRENO_TILED  = HAL_PIXEL_FORMAT_YCrCb_420_SP_TILED,
+    HAL_PIXEL_FORMAT_NV61               = HAL_PIXEL_FORMAT_YCrCb_422_SP,
+    HAL_PIXEL_FORMAT_YV12               = HAL_PIXEL_FORMAT_YCrCb_422_P
+};
 
 /**
  * Transformation definitions
diff --git a/include/hardware/overlay.h b/include/hardware/overlay.h
index eca4d27..fdf3c1c 100644
--- a/include/hardware/overlay.h
+++ b/include/hardware/overlay.h
@@ -48,9 +48,7 @@
     OVERLAY_FORMAT_YCbCr_422_SP = HAL_PIXEL_FORMAT_YCbCr_422_SP,
     OVERLAY_FORMAT_YCbCr_420_SP = HAL_PIXEL_FORMAT_YCbCr_420_SP,
     OVERLAY_FORMAT_YCbYCr_422_I = HAL_PIXEL_FORMAT_YCbCr_422_I,
-    OVERLAY_FORMAT_YCbYCr_420_I = HAL_PIXEL_FORMAT_YCbCr_420_I,
     OVERLAY_FORMAT_CbYCrY_422_I = HAL_PIXEL_FORMAT_CbYCrY_422_I,
-    OVERLAY_FORMAT_CbYCrY_420_I = HAL_PIXEL_FORMAT_CbYCrY_420_I,
     OVERLAY_FORMAT_DEFAULT      = 99    // The actual color format is determined
                                         // by the overlay
 };