[libcamera-devel] [PATCH 0/2] android: Wait on acquisition fences in CameraStream
Hirokazu Honda
hiroh at chromium.org
Mon Sep 27 07:09:38 CEST 2021
Hi Jacopo, thank you for fixing this.
On Sat, Sep 25, 2021 at 2:01 AM Jacopo Mondi <jacopo at jmondi.org> wrote:
>
> An acquisition fence is associated to each camera3_stream_buffer_t part of a
> capture request.
>
> Streams generated by libcamera (Type::Direct) are queued to the
> libcamera::Camera and their fences are waited on by the CameraWorker class.
>
> Acquisition fences for Streams generated by post-processing have been so far
> ignored and the fence was not closed, resulting in a leak that crashed the
> camera service with:
>
> FATAL FileDescriptor file_descriptor.cpp:265 Failed to dup() fd: Too many open files
>
> Fix this by instrumenting CameraStream to handle fences in the process()
> function.
>
> This is a temporary workaround until libcamera is not instrumented with a
> mechanism to handle fences internally.
>
Laurent, is this what you mentioned me last week?
-Hiro
> Thanks
> j
>
> Jacopo Mondi (2):
> android: wait on fences in CameraStream::process()
> android: Post-pone fences reset in result
>
> src/android/camera_device.cpp | 46 +++++++++++++++++++++++-----------
> src/android/camera_stream.cpp | 47 ++++++++++++++++++++++++++++++++++-
> src/android/camera_stream.h | 4 ++-
> 3 files changed, 81 insertions(+), 16 deletions(-)
>
> --
> 2.32.0
>
More information about the libcamera-devel
mailing list