summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMathias Agopian <mathias@google.com>2010-07-01 21:28:06 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-07-01 21:28:06 -0700
commit1daacdc8d2d110d3edd077fcd2befa9884924e10 (patch)
treeeb04813cbf145c41f5a9035b26e91151ea1ae390
parent95d78bef32edd183fb8c16b7775bf0a069948420 (diff)
parent6915eb345b6640a43b9c1241f7ad8ffa0463874a (diff)
downloadhardware_libhardware-1daacdc8d2d110d3edd077fcd2befa9884924e10.zip
hardware_libhardware-1daacdc8d2d110d3edd077fcd2befa9884924e10.tar.gz
hardware_libhardware-1daacdc8d2d110d3edd077fcd2befa9884924e10.tar.bz2
Merge "remove h/w specific YUV formats from the HAL" into gingerbread
-rw-r--r--include/hardware/copybit.h6
-rw-r--r--include/hardware/hardware.h65
-rw-r--r--include/hardware/overlay.h6
3 files changed, 44 insertions, 33 deletions
diff --git a/include/hardware/copybit.h b/include/hardware/copybit.h
index 82d22da..b6302c3 100644
--- a/include/hardware/copybit.h
+++ b/include/hardware/copybit.h
@@ -46,10 +46,8 @@ enum {
COPYBIT_FORMAT_BGRA_8888 = HAL_PIXEL_FORMAT_BGRA_8888,
COPYBIT_FORMAT_RGBA_5551 = HAL_PIXEL_FORMAT_RGBA_5551,
COPYBIT_FORMAT_RGBA_4444 = HAL_PIXEL_FORMAT_RGBA_4444,
- COPYBIT_FORMAT_YCbCr_422_SP = HAL_PIXEL_FORMAT_YCbCr_422_SP,
- COPYBIT_FORMAT_YCbCr_420_SP = HAL_PIXEL_FORMAT_YCbCr_420_SP,
- COPYBIT_FORMAT_YCrCb_422_SP = HAL_PIXEL_FORMAT_YCrCb_422_SP,
- COPYBIT_FORMAT_YCrCb_420_SP = HAL_PIXEL_FORMAT_YCrCb_420_SP,
+ COPYBIT_FORMAT_YCbCr_422_SP = 0x10,
+ COPYBIT_FORMAT_YCrCb_420_SP = 0x11,
};
/* name for copybit_set_parameter */
diff --git a/include/hardware/hardware.h b/include/hardware/hardware.h
index fcd87f8..9382fe4 100644
--- a/include/hardware/hardware.h
+++ b/include/hardware/hardware.h
@@ -130,34 +130,49 @@ enum {
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
- HAL_PIXEL_FORMAT_YCbCr_422_P = 0x12, // IYUV
- HAL_PIXEL_FORMAT_YCbCr_420_P = 0x13, // YUV9
- HAL_PIXEL_FORMAT_YCbCr_422_I = 0x14, // YUY2
- /* 0x15 reserved */
- HAL_PIXEL_FORMAT_CbYCrY_422_I = 0x16, // UYVY
- /* 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_422_SP = 0x22, // NV61
-};
-/* 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_NV61 = HAL_PIXEL_FORMAT_YCrCb_422_SP
+ /* 0x8 - 0xFF range unavailable */
+
+ /*
+ * 0x100 - 0x1FF
+ *
+ * This range is reserved for HAL implementations. OEMs can use
+ * any value in this range to communicate formats between their HAL
+ * modules
+ *
+ */
+
+ /*
+ * Android YUV formats:
+ *
+ * These two formats are exposed outside of the HAL to software
+ * decoders and applications.
+ * EGLImageKHR must support them in conjunction with the
+ * OES_EGL_image_external extension.
+ *
+ * YV12 is a planar format comprised of a WxH Y plane followed
+ * by (W/2) x (H/2) Cr and Cb planes.
+ *
+ * YV16 is a planar format comprised of WxH Y, Cr and Cb planes.
+ *
+ * For both these formats, the Y plane appears first, followed by the Cr
+ * plane and then the Cb plane.
+ *
+ * Both formats *require* a 16 pixel alignment horizontally and vertically.
+ *
+ */
+ HAL_PIXEL_FORMAT_YV12 = 0x32315659, // YCrCb 4:2:0 Planar
+ HAL_PIXEL_FORMAT_YV16 = 0x36315659, // YCrCb 4:2:2 Planar
+
+
+ /* Legacy formats (deprecated), used by ImageFormat.java */
+ HAL_PIXEL_FORMAT_YCbCr_422_SP = 0x10, // NV16
+ HAL_PIXEL_FORMAT_YCrCb_420_SP = 0x11, // NV21
+ HAL_PIXEL_FORMAT_YCbCr_422_I = 0x14, // YUY2
+ HAL_PIXEL_FORMAT_YCbCr_420_SP_TILED = 0x20, // NV12_adreno_tiled
};
+
/**
* Transformation definitions
*/
diff --git a/include/hardware/overlay.h b/include/hardware/overlay.h
index fdf3c1c..42fb014 100644
--- a/include/hardware/overlay.h
+++ b/include/hardware/overlay.h
@@ -45,10 +45,8 @@ enum {
OVERLAY_FORMAT_RGBA_8888 = HAL_PIXEL_FORMAT_RGBA_8888,
OVERLAY_FORMAT_RGB_565 = HAL_PIXEL_FORMAT_RGB_565,
OVERLAY_FORMAT_BGRA_8888 = HAL_PIXEL_FORMAT_BGRA_8888,
- 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_CbYCrY_422_I = HAL_PIXEL_FORMAT_CbYCrY_422_I,
+ OVERLAY_FORMAT_YCbYCr_422_I = 0x14,
+ OVERLAY_FORMAT_CbYCrY_422_I = 0x16,
OVERLAY_FORMAT_DEFAULT = 99 // The actual color format is determined
// by the overlay
};