summaryrefslogtreecommitdiff
path: root/devices
diff options
context:
space:
mode:
authorJason Macnak <natsu@google.com>2020-05-14 16:18:06 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2020-05-14 16:18:06 +0000
commit8702f764a4810608911b47624475265813f60d40 (patch)
tree85fce4a750a0fd574105a0d7d5e44dca0ffb370a /devices
parentcbbefb992e6d5825ec225a9461b28fd581aad529 (diff)
parentf3d310834249375441859d02c8c6996450e4e3b6 (diff)
downloadcamera-8702f764a4810608911b47624475265813f60d40.tar.gz
Merge "Update emulated camera to use gralloc lock w/ region" into rvc-dev am: 2fe79a38b5 am: 1923ff53e8 am: b00bb7f269 am: f3d3108342
Change-Id: Iede6016f8ef3b62f4aff4a99898f2b420c6bf1f8
Diffstat (limited to 'devices')
-rw-r--r--devices/EmulatedCamera/hwl/EmulatedRequestProcessor.cpp24
1 files changed, 14 insertions, 10 deletions
diff --git a/devices/EmulatedCamera/hwl/EmulatedRequestProcessor.cpp b/devices/EmulatedCamera/hwl/EmulatedRequestProcessor.cpp
index edc2e2c..09bf94d 100644
--- a/devices/EmulatedCamera/hwl/EmulatedRequestProcessor.cpp
+++ b/devices/EmulatedCamera/hwl/EmulatedRequestProcessor.cpp
@@ -230,21 +230,25 @@ status_t EmulatedRequestProcessor::LockSensorBuffer(
} else {
uint32_t buffer_size = 0, stride = 0;
auto ret = GetBufferSizeAndStride(stream, &buffer_size, &stride);
- if (ret == OK) {
+ if (ret != OK) {
+ ALOGE("%s: Unsupported pixel format: 0x%x", __FUNCTION__,
+ stream.override_format);
+ return BAD_VALUE;
+ }
+ if (stream.override_format == HAL_PIXEL_FORMAT_BLOB) {
sensor_buffer->plane.img.img =
static_cast<uint8_t*>(importer.lock(buffer, usage, buffer_size));
- if (sensor_buffer->plane.img.img != nullptr) {
- sensor_buffer->plane.img.stride = stride;
- sensor_buffer->plane.img.buffer_size = buffer_size;
- } else {
- ALOGE("%s: Failed to lock output buffer!", __FUNCTION__);
- return BAD_VALUE;
- }
} else {
- ALOGE("%s: Unsupported pixel format: 0x%x", __FUNCTION__,
- stream.override_format);
+ IMapper::Rect region{0, 0, width, height};
+ sensor_buffer->plane.img.img =
+ static_cast<uint8_t*>(importer.lock(buffer, usage, region));
+ }
+ if (sensor_buffer->plane.img.img == nullptr) {
+ ALOGE("%s: Failed to lock output buffer!", __FUNCTION__);
return BAD_VALUE;
}
+ sensor_buffer->plane.img.stride = stride;
+ sensor_buffer->plane.img.buffer_size = buffer_size;
}
return OK;