libcamera/Documentation
Paul Elder 85cb179f28 controls: Redefine AeEnable
In the redesign of the AE-related controls, the AeEnable control was
intended to be removed in favor of more specific sub-controls for
analogue gain and exposure time. However this will cause problems if
aperture sub-controls are introduced, and an application from a
pre-aperture era uses a camera that supports aperture.

If there is no AeEnable control, then a pre-aperture era application
might set analogue gain and exposure time to manual, while aperture
silently stays auto since that's the default mode. Thus aperture would
be uncontrollable by the application.

With an AeEnable control, then a pre-aperture era application can set
AeEnable to manual, and under the hood all three of analogue gain and
exposure time and aperture will be set to manual. The application won't
be able to set the manual aperture, however.

Although the above scenario is expected to be rare, the scenario with an
AeEnable control seems less detrimental. With an AeEnable control at
least the aperture would be static at a reasonably usable value, whereas
without an AeEnable the aperture would be more-or-less uncontrolable and
could go to extreme values as the AEGC algorithm tries to compensate for
the manual analogue gain and exposure time values.

Thus we redefine the AeEnable control, available only as a control and
not in metadata. It will be preprocessed by the Camera class so that the
relevant sub-controls are set. No pipline handler nor IPA shall act on
the AeEnable control. The IPA still has to report the control as
available, however.

Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Stefan Klug <stefan.klug@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
2025-01-20 21:36:40 +02:00
..
api-html Documentation: Rename "API" section to "API Reference" 2024-08-21 12:22:17 +03:00
design controls: Redefine AeEnable 2025-01-20 21:36:40 +02:00
guides Documentation: guides: Fix FileSink source link 2024-10-08 19:17:05 +05:30
images/rotation Documentation: Add figures to document Orientation 2023-10-23 16:05:54 +03:00
internal-api-html Documentation: Add internal-api-html placeholder 2024-08-21 03:11:36 +03:00
theme Documentation: Rework index.rst 2024-08-21 01:35:49 +03:00
binning.svg Documentation: Introduce Camera Sensor Model 2023-09-27 14:35:33 +03:00
camera-sensor-model.rst Documentation: Add documentation-contents.rst 2024-08-21 01:35:24 +03:00
code-of-conduct.rst Documentation: Add documentation-contents.rst 2024-08-21 01:35:24 +03:00
coding-style.rst Documentation: Add documentation-contents.rst 2024-08-21 01:35:24 +03:00
conf.py Documentation: Rework docs.rst into introduction.rst 2024-08-21 01:35:44 +03:00
contributing.rst Documentation: contributing: Integrate the code of conduct 2023-11-25 19:01:07 +02:00
documentation-contents.rst Documentation: Reformat documentation_contents.rst 2024-08-21 03:11:57 +03:00
Doxyfile-common.in ipa: mali-c55: Add Mali-C55 ISP IPA module 2024-12-17 22:35:58 +00:00
Doxyfile-internal.in libcamera: Add CameraSensor implementation for raw V4L2 sensors 2025-01-08 14:30:25 +01:00
Doxyfile-public.in Documentation: Split public/private documentation 2024-08-14 04:17:40 +03:00
environment_variables.rst Documentation: Add documentation-contents.rst 2024-08-21 01:35:24 +03:00
feature_requirements.rst Documentation: Remove libcamera architecture from introduction.rst 2024-08-21 01:35:39 +03:00
gen-doxyfile.py Documentation: Split public/private documentation 2024-08-14 04:17:40 +03:00
getting-started.rst Documentation: Add documentation-contents.rst 2024-08-21 01:35:24 +03:00
index.rst Documentation: design: ae: Document the design for AE controls 2025-01-20 19:38:14 +02:00
introduction.rst Documentation: Rename "Documentation" section to "Introduction" 2024-08-21 12:22:31 +03:00
lens_driver_requirements.rst Documentation: Add documentation-contents.rst 2024-08-21 01:35:24 +03:00
libcamera_architecture.rst Documentation: Remove libcamera architecture from introduction.rst 2024-08-21 01:35:39 +03:00
mainpage.dox Documentation: Fix links from API references to guides 2024-08-25 04:35:10 +03:00
mali-c55.dot Documentation: Rework docs.rst into introduction.rst 2024-08-21 01:35:44 +03:00
meson.build Documentation: design: ae: Document the design for AE controls 2025-01-20 19:38:14 +02:00
python-bindings.rst Documentation: Add documentation-contents.rst 2024-08-21 01:35:24 +03:00
sensor_driver_requirements.rst Documentation: Add documentation-contents.rst 2024-08-21 01:35:24 +03:00
sensor_model.svg Documentation: Introduce Camera Sensor Model 2023-09-27 14:35:33 +03:00
skipping.svg Documentation: Introduce Camera Sensor Model 2023-09-27 14:35:33 +03:00
software-isp-benchmarking.rst Documentation: Add documentation-contents.rst 2024-08-21 01:35:24 +03:00
thread-safety.dox Documentation: Add Thread safety page 2024-08-14 03:57:47 +03:00