summaryrefslogtreecommitdiff
path: root/libgralloc
diff options
context:
space:
mode:
authorRahul Sharma <sharah@codeaurora.org>2017-01-05 09:15:40 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2017-01-27 09:00:06 -0800
commit61173ea422783cab1e49bfc56d0c5fc3795f3d57 (patch)
tree4a68f6f56d29d12a5318fc3e9b4dca32bdcbf352 /libgralloc
parent8e0581e3da8122d570828f0e54f86e3c0e335c1f (diff)
downloaddisplay-61173ea422783cab1e49bfc56d0c5fc3795f3d57.tar.gz
sdm: Add support for new pixel formats in HAL
Add support for BGR_888 and CBYCRY_422_I in display HAL. The new formats will be used by QCarCam Application. CRs-Fixed: 1116491 Change-Id: I5ccca57a3ca2d27c4e064b0c5abd68c77c7afadd
Diffstat (limited to 'libgralloc')
-rw-r--r--libgralloc/alloc_controller.cpp13
-rw-r--r--libgralloc/gralloc_priv.h2
2 files changed, 15 insertions, 0 deletions
diff --git a/libgralloc/alloc_controller.cpp b/libgralloc/alloc_controller.cpp
index 583767a7..cb57e9c2 100644
--- a/libgralloc/alloc_controller.cpp
+++ b/libgralloc/alloc_controller.cpp
@@ -217,6 +217,7 @@ bool isUncompressedRgbFormat(int format)
case HAL_PIXEL_FORMAT_R_8:
case HAL_PIXEL_FORMAT_RG_88:
case HAL_PIXEL_FORMAT_BGRX_8888:
+ case HAL_PIXEL_FORMAT_BGR_888:
case HAL_PIXEL_FORMAT_RGBA_1010102:
case HAL_PIXEL_FORMAT_ARGB_2101010:
case HAL_PIXEL_FORMAT_RGBX_1010102:
@@ -276,6 +277,7 @@ void AdrenoMemInfo::getAlignedWidthAndHeight(int width, int height, int format,
case HAL_PIXEL_FORMAT_YCbCr_422_I:
case HAL_PIXEL_FORMAT_YCrCb_422_I:
case HAL_PIXEL_FORMAT_YCbCr_420_P010:
+ case HAL_PIXEL_FORMAT_CbYCrY_422_I:
aligned_w = ALIGN(width, 16);
break;
case HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS:
@@ -639,6 +641,7 @@ unsigned int getSize(int format, int width, int height, int usage,
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;
@@ -873,6 +876,16 @@ int getYUVPlaneInfo(private_handle_t* hnd, struct android_ycbcr* ycbcr)
ycbcr->cstride = cstride;
ycbcr->chroma_step = 1;
break;
+ case HAL_PIXEL_FORMAT_CbYCrY_422_I:
+ ystride = width * 2;
+ cstride = 0;
+ ycbcr->y = (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:
diff --git a/libgralloc/gralloc_priv.h b/libgralloc/gralloc_priv.h
index 738b63ff..5797546a 100644
--- a/libgralloc/gralloc_priv.h
+++ b/libgralloc/gralloc_priv.h
@@ -118,6 +118,8 @@
#define HAL_PIXEL_FORMAT_BGRX_1010102 0x11C
#define HAL_PIXEL_FORMAT_XBGR_2101010 0x11D
#define HAL_PIXEL_FORMAT_YCbCr_420_P010 0x11F
+#define HAL_PIXEL_FORMAT_CbYCrY_422_I 0x120
+#define HAL_PIXEL_FORMAT_BGR_888 0x121
#define HAL_PIXEL_FORMAT_INTERLACE 0x180