diff options
author | Jacopo Mondi <jacopo@jmondi.org> | 2020-12-04 15:26:47 +0100 |
---|---|---|
committer | Jacopo Mondi <jacopo@jmondi.org> | 2020-12-07 14:26:42 +0100 |
commit | 8fed613562677dd2402b6f67f0090fcba3301f1f (patch) | |
tree | 52ad27e18b5d708afa33ec4cbc0aa5a941c5f603 /src/qcam/main.cpp | |
parent | 1889cdc2e91cc378d239c9b155bbabbdb7827b67 (diff) |
android: camera_device: Stop camera when re-configuring it
The Android camera device HAL3 specification does not require a
camera to go through any explicit close() call between configurations.
It is legitimate for a camera to be configured, a number of requests
processed and then re-configured again without any explicit stop.
The libcamera Android camera HAL starts the Camera at the first handled
request, and only stops it at camera close time. This means that two
camera configuration attempts in the same streaming session are only
interleaved by capture requests handling.
The libcamera::Camera state machine requires the Camera to be stopped
before any configuration take place, and this currently doesn't happen.
Fix this by stopping the camera and the associated worker thread if
a configuration attempt is performed while the Camera is in running
state.
This patch fixes cros_camera_test:
Camera3PreviewTest/Camera3SinglePreviewTest.Camera3BasicPreviewTest/0
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Diffstat (limited to 'src/qcam/main.cpp')
0 files changed, 0 insertions, 0 deletions