OSDN Git Service

Add some useful YUV formats. Add fourcc version of the definitions.
authorMathias Agopian <mathias@google.com>
Tue, 15 Jun 2010 04:08:00 +0000 (21:08 -0700)
committerMathias Agopian <mathias@google.com>
Wed, 16 Jun 2010 00:32:16 +0000 (17:32 -0700)
also removed incorrect 4:2:0 interleaved formats

Change-Id: Ib477de86504cc67861def16fc4dfdae0dd3eb59d

include/hardware/hardware.h
include/hardware/overlay.h

index 210a5aa..d316ccf 100644 (file)
@@ -123,27 +123,44 @@ int hw_get_module(const char *id, const struct hw_module_t **module);
  */
 
 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
index eca4d27..fdf3c1c 100644 (file)
@@ -48,9 +48,7 @@ enum {
     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
 };