summaryrefslogtreecommitdiff
path: root/src/libcamera/pipeline_handler.cpp
diff options
context:
space:
mode:
authorJacopo Mondi <jacopo@jmondi.org>2020-12-04 15:26:47 +0100
committerJacopo Mondi <jacopo@jmondi.org>2020-12-07 14:26:42 +0100
commit8fed613562677dd2402b6f67f0090fcba3301f1f (patch)
tree52ad27e18b5d708afa33ec4cbc0aa5a941c5f603 /src/libcamera/pipeline_handler.cpp
parent1889cdc2e91cc378d239c9b155bbabbdb7827b67 (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/libcamera/pipeline_handler.cpp')
0 files changed, 0 insertions, 0 deletions