Merge "sdm: Define client interface to enable/disable idle pc"
diff --git a/gralloc/gr_utils.cpp b/gralloc/gr_utils.cpp
index dc64b58..1ecbce3 100644
--- a/gralloc/gr_utils.cpp
+++ b/gralloc/gr_utils.cpp
@@ -66,6 +66,7 @@
// Below formats used by camera and VR
case HAL_PIXEL_FORMAT_BLOB:
case HAL_PIXEL_FORMAT_RAW_OPAQUE:
+ case HAL_PIXEL_FORMAT_NV12_HEIF:
return true;
default:
return false;
@@ -328,6 +329,9 @@
size = ALIGN((alignedw * alignedh) + (alignedw * alignedh) / 2,
SIZE_4K);
break;
+ case HAL_PIXEL_FORMAT_NV12_HEIF:
+ size = VENUS_BUFFER_SIZE(COLOR_FMT_NV12_512, width, height);
+ break;
default:ALOGE("%s: Unrecognized pixel format: 0x%x", __FUNCTION__, format);
return 0;
}
@@ -457,6 +461,7 @@
case HAL_PIXEL_FORMAT_YCbCr_422_SP:
case HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS:
case HAL_PIXEL_FORMAT_NV12_ENCODEABLE:
+ case HAL_PIXEL_FORMAT_NV12_HEIF:
// Same as YCbCr_420_SP_VENUS
GetYuvSPPlaneInfo(hnd->base, width, height, 1, ycbcr);
break;
@@ -908,6 +913,10 @@
aligned_w = ALIGN(width, 64);
aligned_h = ALIGN(height, 64);
break;
+ case HAL_PIXEL_FORMAT_NV12_HEIF:
+ aligned_w = INT(VENUS_Y_STRIDE(COLOR_FMT_NV12_512, width));
+ aligned_h = INT(VENUS_Y_SCANLINES(COLOR_FMT_NV12_512, height));
+ break;
default:
break;
}
@@ -979,6 +988,7 @@
case HAL_PIXEL_FORMAT_YCbCr_420_TP10_UBWC:
case HAL_PIXEL_FORMAT_YCbCr_420_P010_UBWC:
case HAL_PIXEL_FORMAT_YCbCr_420_P010_VENUS:
+ case HAL_PIXEL_FORMAT_NV12_HEIF:
offset[1] = static_cast<uint32_t>(reinterpret_cast<uint64_t>(yuvInfo.cb) - hnd->base);
break;
case HAL_PIXEL_FORMAT_YCrCb_420_SP:
diff --git a/gralloc/gralloc_priv.h b/gralloc/gralloc_priv.h
index 4c981d4..fa086cc 100644
--- a/gralloc/gralloc_priv.h
+++ b/gralloc/gralloc_priv.h
@@ -128,6 +128,7 @@
#define HAL_PIXEL_FORMAT_YCrCb_420_SP_VENUS 0x114
#define HAL_PIXEL_FORMAT_BGR_565 0x115
#define HAL_PIXEL_FORMAT_RAW8 0x123
+#define HAL_PIXEL_FORMAT_NV12_HEIF 0x116
// 10 bit
#define HAL_PIXEL_FORMAT_ARGB_2101010 0x117