[libcamera-devel] [PATCH 7/9] fixup: Rework flickerless transition mode
Jacopo Mondi
jacopo at jmondi.org
Fri Jul 1 17:46:59 CEST 2022
Re-work the introduction text.
This might seems arbitrary but the new text provides a bit more context.
Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
---
src/libcamera/control_ids.yaml | 32 ++++++++++++++++++++++++--------
1 file changed, 24 insertions(+), 8 deletions(-)
diff --git a/src/libcamera/control_ids.yaml b/src/libcamera/control_ids.yaml
index e6676a149795..225377cf9e76 100644
--- a/src/libcamera/control_ids.yaml
+++ b/src/libcamera/control_ids.yaml
@@ -218,19 +218,35 @@ controls:
The set of ExposureTimeMode modes that are supported by the camera must
have an intersection with the supported set of AnalogueGainMode modes.
- As it takes a few frames to apply the exposure time, there is a period of
- time between submitting a request with ExposureTimeMode set to Manual
- and the exposure time component of the AE actually being disabled,
- during which the AE algorithm can still update the exposure time. If an
- application is switching from automatic and manual control and wishes
- to eliminate any flicker during the switch, the following procedure is
- recommended.
+ Flickerless exposure mode transitions
+
+ Applications that transition from ExposureTimeModeAuto to the direct
+ control of the exposure time should aim to do so by selecting an
+ ExposureTime value as close as possible to the last value computed by
+ the auto exposure algorithm in order to avoid any visible flickering.
+
+ To select the correct value to use as ExposureTime value, applications
+ should accommodate the natural delay in applying controls caused by the
+ capture pipeline frame depth.
+
+ When switching to manual exposure mode, applications should not
+ immediately specify an ExposureTime value in the same request where
+ ExposureTimeMode is set to Manual. They should instead wait for the
+ first Request where ExposureTimeMode is reported as
+ ExposureTimeModeManual in the Request metadata, and use the reported
+ ExposureTime to populate the control value in the next Request to be
+ queued to the Camera.
+
+ The implementation of the auto-exposure algorithm should equally try to
+ minimize flickering and when transitioning from manual exposure mode to
+ auto exposure use the last value provided by the application as starting
+ point.
1. Start with ExposureTimeMode set to Auto
2. Set ExposureTimeMode to Manual
- 3. Wait for the first request to be output that has ExposureTimeMode
+ 3. Wait for the first completed request that has ExposureTimeMode
set to Manual
4. Copy the value reported in ExposureTime into a new request, and
--
2.36.1
More information about the libcamera-devel
mailing list