Camera: avoid double closing FD
Right now conventional HAL close the acquire_fence FD so wrapper
should not close it again. However, we might need to change this
behavior later to make camera service agnostic to passthrough or
binderized mode.
Bug: 34169301
Change-Id: I96b46521e4081b43e7a7e9c9efa98121739dda99
diff --git a/camera/device/3.2/default/CameraDeviceSession.cpp b/camera/device/3.2/default/CameraDeviceSession.cpp
index de61d83..201a3b4 100644
--- a/camera/device/3.2/default/CameraDeviceSession.cpp
+++ b/camera/device/3.2/default/CameraDeviceSession.cpp
@@ -97,6 +97,9 @@
//TODO(b/34110242): make this hidl transport agnostic
#ifdef BINDERIZED
fd = dup(handle->data[0]);
+ // TODO(b/34169301)
+ // Camera service expect FD be closed by HAL process (in passthrough mode)
+ // close(handle->data[0]);
#else
fd = handle->data[0];
#endif
@@ -695,14 +698,16 @@
if (hasInputBuf) {
int streamId = static_cast<Camera3Stream*>(hal_result->input_buffer->stream)->mId;
auto key = std::make_pair(streamId, frameNumber);
- sHandleImporter.closeFence(d->mInflightBuffers[key].acquire_fence);
+ // TODO (b/34169301): currently HAL closed the fence
+ //sHandleImporter.closeFence(d->mInflightBuffers[key].acquire_fence);
d->mInflightBuffers.erase(key);
}
for (size_t i = 0; i < numOutputBufs; i++) {
int streamId = static_cast<Camera3Stream*>(hal_result->output_buffers[i].stream)->mId;
auto key = std::make_pair(streamId, frameNumber);
- sHandleImporter.closeFence(d->mInflightBuffers[key].acquire_fence);
+ // TODO (b/34169301): currently HAL closed the fence
+ //sHandleImporter.closeFence(d->mInflightBuffers[key].acquire_fence);
d->mInflightBuffers.erase(key);
}