[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