summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;