diff options
Diffstat (limited to 'devices/EmulatedCamera/hwl/EmulatedRequestProcessor.cpp')
-rw-r--r-- | devices/EmulatedCamera/hwl/EmulatedRequestProcessor.cpp | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/devices/EmulatedCamera/hwl/EmulatedRequestProcessor.cpp b/devices/EmulatedCamera/hwl/EmulatedRequestProcessor.cpp index ef57437..536b423 100644 --- a/devices/EmulatedCamera/hwl/EmulatedRequestProcessor.cpp +++ b/devices/EmulatedCamera/hwl/EmulatedRequestProcessor.cpp @@ -298,7 +298,7 @@ status_t EmulatedRequestProcessor::LockSensorBuffer( bool isP010 = static_cast<android_pixel_format_v1_1_t>( stream.override_format) == HAL_PIXEL_FORMAT_YCBCR_P010; if ((isYUV_420_888) || (isP010)) { - IMapper::Rect map_rect = {0, 0, width, height}; + android::Rect map_rect = {0, 0, width, height}; auto yuv_layout = importer_->lockYCbCr(buffer, usage, map_rect); if ((yuv_layout.y != nullptr) && (yuv_layout.cb != nullptr) && (yuv_layout.cr != nullptr)) { @@ -308,17 +308,18 @@ status_t EmulatedRequestProcessor::LockSensorBuffer( static_cast<uint8_t*>(yuv_layout.cb); sensor_buffer->plane.img_y_crcb.img_cr = static_cast<uint8_t*>(yuv_layout.cr); - sensor_buffer->plane.img_y_crcb.y_stride = yuv_layout.yStride; - sensor_buffer->plane.img_y_crcb.cbcr_stride = yuv_layout.cStride; - sensor_buffer->plane.img_y_crcb.cbcr_step = yuv_layout.chromaStep; - if (isYUV_420_888 && (yuv_layout.chromaStep == 2) && + sensor_buffer->plane.img_y_crcb.y_stride = yuv_layout.ystride; + sensor_buffer->plane.img_y_crcb.cbcr_stride = yuv_layout.cstride; + sensor_buffer->plane.img_y_crcb.cbcr_step = yuv_layout.chroma_step; + if (isYUV_420_888 && (yuv_layout.chroma_step == 2) && std::abs(sensor_buffer->plane.img_y_crcb.img_cb - sensor_buffer->plane.img_y_crcb.img_cr) != 1) { - ALOGE("%s: Unsupported YUV layout, chroma step: %u U/V plane delta: %u", - __FUNCTION__, yuv_layout.chromaStep, - static_cast<unsigned>( - std::abs(sensor_buffer->plane.img_y_crcb.img_cb - - sensor_buffer->plane.img_y_crcb.img_cr))); + ALOGE( + "%s: Unsupported YUV layout, chroma step: %zu U/V plane delta: %u", + __FUNCTION__, yuv_layout.chroma_step, + static_cast<unsigned>( + std::abs(sensor_buffer->plane.img_y_crcb.img_cb - + sensor_buffer->plane.img_y_crcb.img_cr))); return BAD_VALUE; } sensor_buffer->plane.img_y_crcb.bytesPerPixel = isP010 ? 2 : 1; @@ -338,7 +339,7 @@ status_t EmulatedRequestProcessor::LockSensorBuffer( sensor_buffer->plane.img.img = static_cast<uint8_t*>(importer_->lock(buffer, usage, buffer_size)); } else { - IMapper::Rect region{0, 0, width, height}; + android::Rect region{0, 0, width, height}; sensor_buffer->plane.img.img = static_cast<uint8_t*>(importer_->lock(buffer, usage, region)); } @@ -492,8 +493,12 @@ void EmulatedRequestProcessor::RequestProcessorLoop() { } if (ret == OK) { - auto result = request_state_->InitializeLogicalResult(pipeline_id, - frame_number); + auto partial_result = request_state_->InitializeLogicalResult( + pipeline_id, frame_number, + /*partial result*/ true); + auto result = request_state_->InitializeLogicalResult( + pipeline_id, frame_number, + /*partial result*/ false); // The screen rotation will be the same for all logical and physical devices uint32_t screen_rotation = screen_rotation_; for (auto it = logical_settings->begin(); @@ -503,7 +508,8 @@ void EmulatedRequestProcessor::RequestProcessorLoop() { sensor_->SetCurrentRequest( std::move(logical_settings), std::move(result), - std::move(input_buffers), std::move(output_buffers)); + std::move(partial_result), std::move(input_buffers), + std::move(output_buffers)); } else { NotifyMessage msg{.type = MessageType::kError, .message.error = { |