summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvincechiu <vincechiu@google.com>2018-09-12 10:19:12 +0800
committervincechiu <vincechiu@google.com>2018-09-12 20:06:03 +0800
commitca890cb965fb73b217cf0f269880944e7572eff4 (patch)
tree0033b8aa6e831a9d88ac7e68132666f7b800f09b
parent2ff1cab9e4341f4bf9362dc0150b59dc40d8e69f (diff)
downloaddisplay-ca890cb965fb73b217cf0f269880944e7572eff4.tar.gz
Gralloc: Modify ImplDefinedFormat to NV21
For CAMERA_OUTPUT, modify it from NV12 to NV21 if vendor.gralloc.ImplDefinedCameraOutput.nv21 is 1 Bug: 113831749 Bug: 113139477 Test: Run GCA Change-Id: Ibe894049b571fafebc720b70af1e42f243e32148
-rw-r--r--gralloc/gr_allocator.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/gralloc/gr_allocator.cpp b/gralloc/gr_allocator.cpp
index 912ada03..12245197 100644
--- a/gralloc/gr_allocator.cpp
+++ b/gralloc/gr_allocator.cpp
@@ -29,6 +29,7 @@
#include <log/log.h>
#include <algorithm>
+#include <cutils/properties.h>
#include <vector>
#include "gr_allocator.h"
@@ -212,7 +213,12 @@ int Allocator::GetImplDefinedFormat(uint64_t usage, int format) {
if (format == HAL_PIXEL_FORMAT_YCbCr_420_888) {
gr_format = HAL_PIXEL_FORMAT_NV21_ZSL; // NV21
} else {
- gr_format = HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS; // NV12 preview
+ char prop[PROPERTY_VALUE_MAX];
+ property_get("vendor.gralloc.ImplDefinedCameraOutput.nv21", prop, "0");
+ if(atoi(prop) > 0)
+ gr_format = HAL_PIXEL_FORMAT_YCrCb_420_SP_VENUS; // NV21 preview
+ else
+ gr_format = HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS; // NV12 preview
}
} else if (usage & BufferUsage::COMPOSER_OVERLAY) {
// XXX: If we still haven't set a format, default to RGBA8888