libcamera/include/libcamera
Jacopo Mondi 11fe4333c5 libcamera: ipu3: Initialize controls in the IPA
All the IPU3 Camera controls are currently initialized by the pipeline
handler which initializes them using the camera sensor configuration and
platform specific requirements.

However, some controls are better initialized by the IPA, which might,
in example, cap the exposure times and frame duration to the constraints
of its algorithms implementation.

Also, moving forward, the IPA should register controls to report its
capabilities, in example the ability to enable/disable 3A algorithms on
request.

Move the existing controls initialization to the IPA, by providing
the sensor configuration and its controls to the IPU3IPA::init()
function, which initializes controls and returns them to the pipeline
through an output parameter.

The existing controls initialization has been copied verbatim from the
pipeline handler to the IPA, if not a for few line breaks adjustments
and the resulting Camera controls values are not changed.

Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Umang Jain <umang.jain@ideasonboard.com>
2021-08-12 10:08:32 +02:00
..
base libcamera: base: class: Don't pass Extensible pointer to Private constructor 2021-08-03 23:05:08 +03:00
internal libcamera: controls: Create ControlInfoMap with ControlIdMap 2021-08-12 10:06:25 +02:00
ipa libcamera: ipu3: Initialize controls in the IPA 2021-08-12 10:08:32 +02:00
camera.h libcamera/base: Move extended base functionality 2021-06-25 16:11:08 +01:00
camera_manager.h libcamera/base: Move extended base functionality 2021-06-25 16:11:08 +01:00
compiler.h libcamera: Add macro to conditionally use [[nodiscard]] 2021-02-04 21:00:38 +02:00
control_ids.h.in libcamera: controls: Generate an array of valid values 2020-10-26 17:51:55 +01:00
controls.h libcamera: controls: Create ControlInfoMap with ControlIdMap 2021-08-12 10:06:25 +02:00
file_descriptor.h libcamera: file_descriptor: Implement move semantics for constructor 2020-05-19 18:07:49 +03:00
formats.h.in libcamera: Define constants for pixel formats in the public API 2020-06-18 13:26:36 +03:00
framebuffer.h libcamera: framebuffer: Make FrameBuffer class Extensible 2021-07-12 19:59:22 +03:00
framebuffer_allocator.h libcamera/base: Move class helpers to the base library 2021-06-25 16:11:03 +01:00
geometry.h libcamera: geometry: Mark const functions with __nodiscard 2021-02-04 21:00:38 +02:00
logging.h libcamera: logging: add syslog, stream, and nowhere logging targets 2019-07-17 14:36:35 +09:00
meson.build libcamera: buffer: Rename buffer.h to framebuffer.h 2021-07-11 17:42:02 +03:00
pixel_format.h libcamera: pixel_format: Add a function to return format based on string 2020-08-03 11:48:47 +01:00
property_ids.h.in libcamera: Support draft controls and properties 2020-10-26 17:51:54 +01:00
request.h libcamera/base: Move extended base functionality 2021-06-25 16:11:08 +01:00
stream.h libcamera: buffer: Rename buffer.h to framebuffer.h 2021-07-11 17:42:02 +03:00
transform.h libcamera: Add Transform enum to represent 2D plane transforms. 2020-09-29 11:43:06 +01:00
version.h.in libcamera: Rework automatic version generation to avoid rebuilds 2019-07-09 12:34:10 +03:00