diff options
author | Eino-Ville Talvala <etalvala@google.com> | 2017-03-23 15:39:12 -0700 |
---|---|---|
committer | Eino-Ville Talvala <etalvala@google.com> | 2017-03-30 16:11:26 -0700 |
commit | 2d80c0d66f9ca869d6102f07bd236b7c4c94c205 (patch) | |
tree | 46763eb68304189bc7b37618969ab2ce02545b54 /camera/device/1.0/default/CameraDevice.cpp | |
parent | 2f44ec6c868b220be1b566e7ccfbb251beec70ec (diff) |
camera: Map between legacy gralloc0 usage, and HIDL gralloc1 usages
Otherwise some bits will be set incorrectly.
Also move device@1.0 to use ProducerUsageFlags instead of ProducerUsage,
and add a compatibility workaround to set the gralloc0 HW_CAMERA_ZSL flags
when ConsumerUsage::CAMERA is passed in.
Test: Camera CTS passes, updated VTS tests pass
Bug: 35215313
Change-Id: I981dc1a650f838f94d932944fe835fd267f2004d
Diffstat (limited to 'camera/device/1.0/default/CameraDevice.cpp')
-rw-r--r-- | camera/device/1.0/default/CameraDevice.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/camera/device/1.0/default/CameraDevice.cpp b/camera/device/1.0/default/CameraDevice.cpp index 819525be1e..0cc70a1d30 100644 --- a/camera/device/1.0/default/CameraDevice.cpp +++ b/camera/device/1.0/default/CameraDevice.cpp @@ -20,6 +20,8 @@ #include <hardware/gralloc1.h> #include <utils/Trace.h> +#include <grallocusage/GrallocUsageConversion.h> + #include "CameraDevice_1_0.h" namespace android { @@ -29,7 +31,6 @@ namespace device { namespace V1_0 { namespace implementation { -using ::android::hardware::graphics::allocator::V2_0::ProducerUsage; using ::android::hardware::graphics::common::V1_0::PixelFormat; HandleImporter& CameraDevice::sHandleImporter = HandleImporter::getInstance(); @@ -252,7 +253,10 @@ int CameraDevice::sSetUsage(struct preview_stream_ops* w, int usage) { } object->cleanUpCirculatingBuffers(); - return getStatusT(object->mPreviewCallback->setUsage((ProducerUsage) usage)); + ProducerUsageFlags producerUsage; + uint64_t consumerUsage; + ::android_convertGralloc0To1Usage(usage, &producerUsage, &consumerUsage); + return getStatusT(object->mPreviewCallback->setUsage(producerUsage)); } int CameraDevice::sSetSwapInterval(struct preview_stream_ops *w, int interval) { |