sdm: Add support for new pixel formats in gralloc1
Add support for BGR_888 and CBYCRY_422_I in gralloc1. The
new formats will be used by camera application.
CRs-Fixed: 1116491
Change-Id: Iafa240294a1e2956b96f7aa9606326bb5635a2bd
diff --git a/libgralloc1/gr_utils.cpp b/libgralloc1/gr_utils.cpp
index 444de8c..28fe4f6 100644
--- a/libgralloc1/gr_utils.cpp
+++ b/libgralloc1/gr_utils.cpp
@@ -64,6 +64,7 @@
case HAL_PIXEL_FORMAT_BGRX_1010102:
case HAL_PIXEL_FORMAT_XBGR_2101010:
case HAL_PIXEL_FORMAT_RGBA_FP16:
+ case HAL_PIXEL_FORMAT_BGR_888:
return true;
default:
break;
@@ -131,6 +132,7 @@
bpp = 4;
break;
case HAL_PIXEL_FORMAT_RGB_888:
+ case HAL_PIXEL_FORMAT_BGR_888:
bpp = 3;
break;
case HAL_PIXEL_FORMAT_RGB_565:
@@ -240,6 +242,7 @@
case HAL_PIXEL_FORMAT_YCrCb_422_SP:
case HAL_PIXEL_FORMAT_YCbCr_422_I:
case HAL_PIXEL_FORMAT_YCrCb_422_I:
+ case HAL_PIXEL_FORMAT_CbYCrY_422_I:
if (width & 1) {
ALOGE("width is odd for the YUV422_SP format");
return 0;
@@ -403,7 +406,16 @@
ycbcr->cstride = cstride;
ycbcr->chroma_step = 1;
break;
-
+ case HAL_PIXEL_FORMAT_CbYCrY_422_I:
+ ystride = width * 2;
+ cstride = 0;
+ ycbcr->y = reinterpret_cast<void *>(hnd->base);
+ ycbcr->cr = NULL;
+ ycbcr->cb = NULL;
+ ycbcr->ystride = ystride;
+ ycbcr->cstride = 0;
+ ycbcr->chroma_step = 0;
+ break;
// Unsupported formats
case HAL_PIXEL_FORMAT_YCbCr_422_I:
case HAL_PIXEL_FORMAT_YCrCb_422_I: