gralloc1: Add support for 10-bit tight pack usage flag
Add new usage flag that can be used to indicate 10-bit
tight pack implementation defined format such as TP10.
Change-Id: I056c1f39f61503a30e57ea3b1d463897558d2829
CRs-Fixed: 2070081
diff --git a/libgralloc1/gr_allocator.cpp b/libgralloc1/gr_allocator.cpp
index ee311f5..175603e 100644
--- a/libgralloc1/gr_allocator.cpp
+++ b/libgralloc1/gr_allocator.cpp
@@ -194,7 +194,11 @@
if (format == HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED ||
format == HAL_PIXEL_FORMAT_YCbCr_420_888) {
if (prod_usage & GRALLOC1_PRODUCER_USAGE_PRIVATE_ALLOC_UBWC) {
- gr_format = HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS_UBWC;
+ if (prod_usage & GRALLOC1_PRODUCER_USAGE_PRIVATE_10BIT_TP) {
+ gr_format = HAL_PIXEL_FORMAT_YCbCr_420_TP10_UBWC;
+ } else {
+ gr_format = HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS_UBWC;
+ }
} else if (cons_usage & GRALLOC1_CONSUMER_USAGE_VIDEO_ENCODER) {
gr_format = HAL_PIXEL_FORMAT_NV12_ENCODEABLE; // NV12
} else if (cons_usage & GRALLOC1_CONSUMER_USAGE_CAMERA) {
diff --git a/libgralloc1/gralloc_priv.h b/libgralloc1/gralloc_priv.h
index 246ba90..d8dfbf3 100644
--- a/libgralloc1/gralloc_priv.h
+++ b/libgralloc1/gralloc_priv.h
@@ -54,6 +54,10 @@
/* Use legacy ZSL definition until we know the correct usage on gralloc1 */
#define GRALLOC1_PRODUCER_USAGE_PRIVATE_CAMERA_ZSL GRALLOC_USAGE_HW_CAMERA_ZSL
+/* TODO(user): move these to use producer private bits once 64-bit support available */
+/* This flag is used to indicate 10-bit tight pack format (e.g. TP10) */
+#define GRALLOC1_PRODUCER_USAGE_PRIVATE_10BIT_TP 0x08000000
+
/* Consumer flags */
/* TODO(user): Fix when producer and consumer flags are actually separated */
@@ -66,9 +70,6 @@
/* Unused flag */
#define GRALLOC1_USAGE_PRIVATE_UNUSED1 0x04000000
-/* Unused flag */
-#define GRALLOC1_USAGE_PRIVATE_UNUSED2 0x08000000
-
/* Legacy gralloc0.x definitions */
/* Some clients may still be using the old flags */