summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSGCMarkus <markusornik@gmail.com>2019-10-03 16:55:58 +0200
committerArian <arian.kulmer@web.de>2021-11-30 18:32:03 +0100
commitc5575085e685a2a44f75efbc2833301ed41cd4fd (patch)
tree1630f244b55ab75358e62d9b5e8fc9b82851f6d1
parent50da1bf98afdf7a4cde27a40d18d8b5b672ee435 (diff)
gralloc: Add option for YCrCb venus camera preview
On judypn (LG V40) camera preview has red/blue colors switched with HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS but HAL_PIXEL_FORMAT_YCrCb_420_SP breaks camera preview entirely. When using HAL_PIXEL_FORMAT_YCrCb_420_SP_VENUS camera preview works fine, with correct colors. Change-Id: I84ffcbbeb66acf4401294de6b4f3cf846c7530b9
-rw-r--r--gralloc/Android.mk2
-rw-r--r--gralloc/gr_utils.cpp2
2 files changed, 4 insertions, 0 deletions
diff --git a/gralloc/Android.mk b/gralloc/Android.mk
index 2c2382d2..4dffadea 100644
--- a/gralloc/Android.mk
+++ b/gralloc/Android.mk
@@ -42,6 +42,8 @@ LOCAL_CFLAGS := $(common_flags) -DLOG_TAG=\"qdgralloc\" -Wno-si
ifeq ($(TARGET_USES_YCRCB_CAMERA_PREVIEW),true)
LOCAL_CFLAGS += -DUSE_YCRCB_CAMERA_PREVIEW
+else ifeq ($(TARGET_USES_YCRCB_VENUS_CAMERA_PREVIEW),true)
+ LOCAL_CFLAGS += -DUSE_YCRCB_CAMERA_PREVIEW_VENUS
endif
LOCAL_ADDITIONAL_DEPENDENCIES := $(common_deps)
diff --git a/gralloc/gr_utils.cpp b/gralloc/gr_utils.cpp
index ceb5e69f..20508344 100644
--- a/gralloc/gr_utils.cpp
+++ b/gralloc/gr_utils.cpp
@@ -1337,6 +1337,8 @@ int GetImplDefinedFormat(uint64_t usage, int format) {
} else {
#ifdef USE_YCRCB_CAMERA_PREVIEW
gr_format = HAL_PIXEL_FORMAT_YCrCb_420_SP; // NV21 preview
+#elif USE_YCRCB_CAMERA_PREVIEW_VENUS
+ gr_format = HAL_PIXEL_FORMAT_YCrCb_420_SP_VENUS; // NV21 preview
#else
gr_format = HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS; // NV12 preview
#endif