camera: use ScopedPlatformFile for mojo::{Wrap,Unwrap}PlatformFile
The two functions no longer take base::PlatformFile after libchrome
r822064 uprev.
BUG=chromium:1144735
TEST=cros-workon-hatch start cros-camera cros-camera-libcab
TEST=cros-workon-hatch start cros-camera-libjda cros-camera-libjea_test
TEST=cros-workon-hatch start cros-camera-test cros-camera-hal_usb
TEST=cros-workon-hatch start cros-camera-libcamera_connector
TEST=emerge, deploy on DUT
TEST=tast run ${hatch-DUT}.cros camera.* (except camera.HAL3Remote.*)
TEST=camera.CCAUIRecordVideo.swa fails with broken-thumbnail (pre-exist)
Change-Id: Iba27bc232ac278e8497a8df30ab9cf992cdcd793
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform2/+/2581750
Reviewed-by: Qijiang Fan <fqj@google.com>
Reviewed-by: Shik Chen <shik@chromium.org>
Commit-Queue: Qijiang Fan <fqj@google.com>
Tested-by: Grace Cham <hscham@chromium.org>
diff --git a/camera/camera3_test/camera3_device_connector.cc b/camera/camera3_test/camera3_device_connector.cc
index 5a13f8f..d0574a9 100644
--- a/camera/camera3_test/camera3_device_connector.cc
+++ b/camera/camera3_test/camera3_device_connector.cc
@@ -415,7 +415,7 @@
std::vector<mojo::ScopedHandle> fds;
for (uint32_t i = 0; i < num_planes; i++) {
int dup_fd = HANDLE_EINTR(dup((*native_handle)->data[i]));
- fds.emplace_back(mojo::WrapPlatformFile(dup_fd));
+ fds.emplace_back(mojo::WrapPlatformFile(base::ScopedPlatformFile(dup_fd)));
}
uint64_t buffer_id = reinterpret_cast<uint64_t>(native_handle);
base::AutoLock bufferLock(buffer_handle_map_lock_);
diff --git a/camera/common/camera_algorithm_bridge_impl.cc b/camera/common/camera_algorithm_bridge_impl.cc
index f983708..8668520 100644
--- a/camera/common/camera_algorithm_bridge_impl.cc
+++ b/camera/common/camera_algorithm_bridge_impl.cc
@@ -229,7 +229,8 @@
cb.Run(-errno);
return;
}
- interface_ptr_->RegisterBuffer(mojo::WrapPlatformFile(dup_fd), cb);
+ interface_ptr_->RegisterBuffer(
+ mojo::WrapPlatformFile(base::ScopedPlatformFile(dup_fd)), cb);
}
void CameraAlgorithmBridgeImpl::IPCBridge::Request(
diff --git a/camera/common/camera_algorithm_ops_impl.cc b/camera/common/camera_algorithm_ops_impl.cc
index 17f88ec..c3621ea 100644
--- a/camera/common/camera_algorithm_ops_impl.cc
+++ b/camera/common/camera_algorithm_ops_impl.cc
@@ -91,14 +91,14 @@
DCHECK(cam_algo_);
DCHECK(ipc_task_runner_->BelongsToCurrentThread());
VLOGF_ENTER();
- base::PlatformFile fd;
+ base::ScopedPlatformFile fd;
MojoResult mojo_result = mojo::UnwrapPlatformFile(std::move(buffer_fd), &fd);
if (mojo_result != MOJO_RESULT_OK) {
LOGF(ERROR) << "Failed to unwrap handle: " << mojo_result;
std::move(callback).Run(-EBADF);
return;
}
- int32_t result = cam_algo_->register_buffer(fd);
+ int32_t result = cam_algo_->register_buffer(fd.release());
std::move(callback).Run(result);
VLOGF_EXIT();
}
diff --git a/camera/common/jpeg/jpeg_decode_accelerator_impl.cc b/camera/common/jpeg/jpeg_decode_accelerator_impl.cc
index 8176e64..c636f74 100644
--- a/camera/common/jpeg/jpeg_decode_accelerator_impl.cc
+++ b/camera/common/jpeg/jpeg_decode_accelerator_impl.cc
@@ -225,8 +225,8 @@
const uint32_t num_planes = buffer_manager->GetNumPlanes(output_buffer);
std::vector<mojom::DmaBufPlanePtr> planes(num_planes);
for (uint32_t i = 0; i < num_planes; ++i) {
- mojo::ScopedHandle fd_handle =
- mojo::WrapPlatformFile(HANDLE_EINTR(dup(output_buffer->data[i])));
+ mojo::ScopedHandle fd_handle = mojo::WrapPlatformFile(
+ base::ScopedPlatformFile(HANDLE_EINTR(dup(output_buffer->data[i]))));
const int32_t stride = base::checked_cast<int32_t>(
buffer_manager->GetPlaneStride(output_buffer, i));
const uint32_t offset = base::checked_cast<uint32_t>(
@@ -240,8 +240,8 @@
mojo_format, buffer_manager->GetWidth(output_buffer),
buffer_manager->GetHeight(output_buffer), std::move(planes));
- mojo::ScopedHandle input_handle =
- mojo::WrapPlatformFile(HANDLE_EINTR(dup(input_fd)));
+ mojo::ScopedHandle input_handle = mojo::WrapPlatformFile(
+ base::ScopedPlatformFile(HANDLE_EINTR(dup(input_fd))));
inflight_buffer_ids_.insert(buffer_id);
jda_ptr_->DecodeWithDmaBuf(
diff --git a/camera/common/jpeg/jpeg_encode_accelerator_impl.cc b/camera/common/jpeg/jpeg_encode_accelerator_impl.cc
index acbe21d..1cb3c01 100644
--- a/camera/common/jpeg/jpeg_encode_accelerator_impl.cc
+++ b/camera/common/jpeg/jpeg_encode_accelerator_impl.cc
@@ -284,10 +284,11 @@
int dup_output_fd = HANDLE_EINTR(dup(output_fd));
mojo::ScopedHandle input_handle = mojo::WrapPlatformFile(
- input_platform_shm.PassPlatformHandle().fd.release());
+ std::move(input_platform_shm.PassPlatformHandle().fd));
mojo::ScopedHandle exif_handle = mojo::WrapPlatformFile(
- exif_platform_shm.PassPlatformHandle().fd.release());
- mojo::ScopedHandle output_handle = mojo::WrapPlatformFile(dup_output_fd);
+ std::move(exif_platform_shm.PassPlatformHandle().fd));
+ mojo::ScopedHandle output_handle =
+ mojo::WrapPlatformFile(base::ScopedPlatformFile(dup_output_fd));
jea_ptr_->EncodeWithFD(
task_id, std::move(input_handle), input_buffer_size, coded_size_width,
@@ -339,15 +340,15 @@
std::move(exif_shm_region));
mojo::ScopedHandle exif_handle = mojo::WrapPlatformFile(
- exif_platform_shm.PassPlatformHandle().fd.release());
+ std::move(exif_platform_shm.PassPlatformHandle().fd));
auto WrapToMojoPlanes =
[](const std::vector<JpegCompressor::DmaBufPlane>& planes) {
std::vector<cros::mojom::DmaBufPlanePtr> mojo_planes;
for (auto plane : planes) {
auto mojo_plane = cros::mojom::DmaBufPlane::New();
- mojo_plane->fd_handle =
- mojo::WrapPlatformFile(HANDLE_EINTR(dup(plane.fd)));
+ mojo_plane->fd_handle = mojo::WrapPlatformFile(
+ base::ScopedPlatformFile(HANDLE_EINTR(dup(plane.fd))));
mojo_plane->stride = plane.stride;
mojo_plane->offset = plane.offset;
mojo_plane->size = plane.size;
diff --git a/camera/common/libcamera_connector/camera_client_ops.cc b/camera/common/libcamera_connector/camera_client_ops.cc
index 614d79c..48159d5 100644
--- a/camera/common/libcamera_connector/camera_client_ops.cc
+++ b/camera/common/libcamera_connector/camera_client_ops.cc
@@ -83,11 +83,11 @@
CHECK_EQ(result->output_buffers->size(), 1u);
const auto& output_buffer = result->output_buffers->front();
if (output_buffer->release_fence.is_valid()) {
- base::PlatformFile fence;
+ base::ScopedPlatformFile fence;
CHECK_EQ(mojo::UnwrapPlatformFile(std::move(output_buffer->release_fence),
&fence),
MOJO_RESULT_OK);
- if (sync_wait(fence, 1000) != 0) {
+ if (sync_wait(fence.release(), 1000) != 0) {
LOGF(ERROR) << "Failed to wait for release fence on buffer";
}
}
diff --git a/camera/common/libcamera_connector/stream_buffer_manager.cc b/camera/common/libcamera_connector/stream_buffer_manager.cc
index 281a28f..75a3cd5 100644
--- a/camera/common/libcamera_connector/stream_buffer_manager.cc
+++ b/camera/common/libcamera_connector/stream_buffer_manager.cc
@@ -59,8 +59,9 @@
buffer_handle->height = pool_buffer_handle->height;
buffer_handle->sizes = std::vector<uint32_t>();
for (size_t i = 0; i < pool_buffer_handle->fds.size(); ++i) {
- buffer_handle->fds.push_back(mojo::WrapPlatformFile(
- HANDLE_EINTR(dup(fd_map_[pool_buffer_handle->buffer_id][i].get()))));
+ buffer_handle->fds.push_back(
+ mojo::WrapPlatformFile(base::ScopedPlatformFile(HANDLE_EINTR(
+ dup(fd_map_[pool_buffer_handle->buffer_id][i].get())))));
buffer_handle->strides.push_back(pool_buffer_handle->strides[i]);
buffer_handle->offsets.push_back(pool_buffer_handle->offsets[i]);
buffer_handle->sizes->push_back(pool_buffer_handle->sizes->at(i));
diff --git a/camera/common/utils/cros_camera_mojo_utils.cc b/camera/common/utils/cros_camera_mojo_utils.cc
index 7646976..b50dcef 100644
--- a/camera/common/utils/cros_camera_mojo_utils.cc
+++ b/camera/common/utils/cros_camera_mojo_utils.cc
@@ -57,7 +57,8 @@
ret->status = static_cast<cros::mojom::Camera3BufferStatus>(buffer->status);
if (buffer->acquire_fence != -1) {
- ret->acquire_fence = mojo::WrapPlatformFile(buffer->acquire_fence);
+ ret->acquire_fence =
+ mojo::WrapPlatformFile(base::ScopedPlatformFile(buffer->acquire_fence));
if (!ret->acquire_fence.is_valid()) {
LOGF(ERROR) << "Failed to wrap acquire_fence";
ret.reset();
@@ -66,7 +67,8 @@
}
if (buffer->release_fence != -1) {
- ret->release_fence = mojo::WrapPlatformFile(buffer->release_fence);
+ ret->release_fence =
+ mojo::WrapPlatformFile(base::ScopedPlatformFile(buffer->release_fence));
if (!ret->release_fence.is_valid()) {
LOGF(ERROR) << "Failed to wrap release_fence";
ret.reset();
diff --git a/camera/hal/usb_v1/arc_camera_service.cc b/camera/hal/usb_v1/arc_camera_service.cc
index ded5de0..673bb0f 100644
--- a/camera/hal/usb_v1/arc_camera_service.cc
+++ b/camera/hal/usb_v1/arc_camera_service.cc
@@ -175,7 +175,7 @@
std::vector<mojo::ScopedHandle> handles;
for (const auto& fd : fds) {
- handles.push_back(mojo::WrapPlatformFile(fd));
+ handles.push_back(mojo::WrapPlatformFile(base::ScopedPlatformFile(fd)));
}
if (ret) {
handles.clear();
diff --git a/camera/hal_adapter/camera_device_adapter.cc b/camera/hal_adapter/camera_device_adapter.cc
index e237386..7248813 100644
--- a/camera/hal_adapter/camera_device_adapter.cc
+++ b/camera/hal_adapter/camera_device_adapter.cc
@@ -698,7 +698,7 @@
mojo_buffer_handle->sizes = std::vector<uint32_t>();
for (size_t plane = 0; plane < num_planes; plane++) {
mojo_buffer_handle->fds.push_back(
- mojo::WrapPlatformFile(buffer_handle->data[plane]));
+ mojo::WrapPlatformFile(base::ScopedFD(buffer_handle->data[plane])));
mojo_buffer_handle->strides.push_back(
CameraBufferManager::GetPlaneStride(buffer_handle, plane));
mojo_buffer_handle->offsets.push_back(