diff options
author | LuK1337 <priv.luk@gmail.com> | 2019-09-23 21:41:37 +0200 |
---|---|---|
committer | alk3pInjection <webmaster@raspii.tech> | 2022-09-05 22:00:03 +0800 |
commit | f61326a1392b82e7f94f0cfe428903a38a33fba6 (patch) | |
tree | 461b375c388059f51555c67b752b0777a3e44873 | |
parent | a4d9cf0a3514f936abbeb9c5fc407dcdb9ff96e8 (diff) |
gralloc: Allow devices to opt-in for YCrCb camera preview
* Some stock camera HAL implementations output video
stream in YCrCb instead of YCbCr.
Change-Id: I562847dfd9bcf796052f6fd7263e2affbd601384
-rw-r--r-- | gralloc/Android.mk | 5 | ||||
-rw-r--r-- | gralloc/gr_utils.cpp | 4 |
2 files changed, 9 insertions, 0 deletions
diff --git a/gralloc/Android.mk b/gralloc/Android.mk index ebb3cd4e..2c2382d2 100644 --- a/gralloc/Android.mk +++ b/gralloc/Android.mk @@ -39,6 +39,11 @@ LOCAL_SHARED_LIBRARIES := $(common_libs) libqdMetaData libdl \ android.hardware.graphics.mapper@4.0 LOCAL_CFLAGS := $(common_flags) -DLOG_TAG=\"qdgralloc\" -Wno-sign-conversion \ -D__QTI_DISPLAY_GRALLOC__ + +ifeq ($(TARGET_USES_YCRCB_CAMERA_PREVIEW),true) + LOCAL_CFLAGS += -DUSE_YCRCB_CAMERA_PREVIEW +endif + LOCAL_ADDITIONAL_DEPENDENCIES := $(common_deps) LOCAL_SRC_FILES := gr_utils.cpp gr_adreno_info.cpp include $(BUILD_SHARED_LIBRARY) diff --git a/gralloc/gr_utils.cpp b/gralloc/gr_utils.cpp index 98e60e2c..ceb5e69f 100644 --- a/gralloc/gr_utils.cpp +++ b/gralloc/gr_utils.cpp @@ -1335,7 +1335,11 @@ int GetImplDefinedFormat(uint64_t usage, int format) { if (format == HAL_PIXEL_FORMAT_YCbCr_420_888) { gr_format = HAL_PIXEL_FORMAT_NV21_ZSL; // NV21 } else { +#ifdef USE_YCRCB_CAMERA_PREVIEW + gr_format = HAL_PIXEL_FORMAT_YCrCb_420_SP; // NV21 preview +#else gr_format = HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS; // NV12 preview +#endif } } else if (usage & BufferUsage::COMPOSER_OVERLAY) { // XXX: If we still haven't set a format, default to RGBA8888 |