diff options
author | Jason Macnak <natsu@google.com> | 2020-05-14 16:18:06 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-05-14 16:18:06 +0000 |
commit | 8702f764a4810608911b47624475265813f60d40 (patch) | |
tree | 85fce4a750a0fd574105a0d7d5e44dca0ffb370a /devices | |
parent | cbbefb992e6d5825ec225a9461b28fd581aad529 (diff) | |
parent | f3d310834249375441859d02c8c6996450e4e3b6 (diff) | |
download | camera-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.cpp | 24 |
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; |