libcamera/src
Jacopo Mondi efd5fb7288 android: Implement flush() camera operation
Implement the flush() camera operation in the CameraDevice class
and make it available to the camera framework by implementing the
operation wrapper in camera_ops.cpp.

Introduce a new camera state State::Flushing to handle concurrent
flush() and process_capture_request() calls.

As flush() can race with processCaptureRequest() protect it
by introducing a new State::Flushing state that
processCaptureRequest() inspects before queuing the Request to the
Camera. If flush() is in progress while processCaptureRequest() is
called, return the current Request immediately in error state. If
flush() has completed and a new call to processCaptureRequest() is
made just after, start the camera again before queuing the request.

Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Reviewed-by: Hirokazu Honda <hiroh@chromium.org>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
2021-06-14 12:26:28 +02:00
..
android android: Implement flush() camera operation 2021-06-14 12:26:28 +02:00
cam cam: Implement OptMetadata 2021-05-06 15:09:42 +02:00
gstreamer gstreamer: Add error checking in gst_libcamera_src_task_enter() 2021-06-07 14:06:50 +09:00
ipa ipa: ipu3: Support return values from configure() 2021-06-14 09:21:42 +01:00
lc-compliance lc-compliance: simple_capture: Handle unsupported roles 2021-04-21 20:05:21 +02:00
libcamera libcamera: pipeline_handler: Cancel Request on queueing failure 2021-06-14 12:26:27 +02:00
qcam qcam: Add libatomic dependency 2021-06-03 00:23:39 +03:00
v4l2 v4l2: Replace manual loop counters with utils::enumerate() 2021-05-18 14:45:29 +03:00
meson.build src: meson: Define system paths 2021-04-30 11:53:09 +01:00