summaryrefslogtreecommitdiff
path: root/camera/device/1.0/default/CameraDevice.cpp
diff options
context:
space:
mode:
authorEino-Ville Talvala <etalvala@google.com>2017-03-23 15:39:12 -0700
committerEino-Ville Talvala <etalvala@google.com>2017-03-30 16:11:26 -0700
commit2d80c0d66f9ca869d6102f07bd236b7c4c94c205 (patch)
tree46763eb68304189bc7b37618969ab2ce02545b54 /camera/device/1.0/default/CameraDevice.cpp
parent2f44ec6c868b220be1b566e7ccfbb251beec70ec (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.cpp8
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) {