summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Elder <paul.elder@ideasonboard.com>2024-11-26 00:11:50 +0900
committerPaul Elder <paul.elder@ideasonboard.com>2024-12-18 17:26:40 +0900
commit9bd9d25a8297441d6cd8934cc3df2a8bbb497251 (patch)
tree6caa6782130408ed893603bc36e260629dd6c4b4
parentef7c767a0f1c716fd102049ed9b9bc7b1a2684d4 (diff)
libcamera: controls: Populate direction field in control definitions
In preparation for adding support for querying direction information from controls, populate the corresponding field in the control ID defintions. Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Stefan Klug <stefan.klug@ideasonboard.com>
-rw-r--r--src/libcamera/control_ids_core.yaml44
-rw-r--r--src/libcamera/control_ids_draft.yaml15
-rw-r--r--src/libcamera/control_ids_rpi.yaml3
3 files changed, 62 insertions, 0 deletions
diff --git a/src/libcamera/control_ids_core.yaml b/src/libcamera/control_ids_core.yaml
index d45cf8e5..073e0611 100644
--- a/src/libcamera/control_ids_core.yaml
+++ b/src/libcamera/control_ids_core.yaml
@@ -10,6 +10,7 @@ vendor: libcamera
controls:
- AeEnable:
type: bool
+ direction: inout
description: |
Enable or disable the AE.
@@ -17,6 +18,7 @@ controls:
- AeLocked:
type: bool
+ direction: out
description: |
Report the lock status of a running AE algorithm.
@@ -31,6 +33,7 @@ controls:
# - Better handling of custom types.
- AeMeteringMode:
type: int32_t
+ direction: inout
description: |
Specify a metering mode for the AE algorithm to use.
@@ -56,6 +59,7 @@ controls:
# - Better handling of custom types.
- AeConstraintMode:
type: int32_t
+ direction: inout
description: |
Specify a constraint mode for the AE algorithm to use.
@@ -98,6 +102,7 @@ controls:
# - Better handling of custom types.
- AeExposureMode:
type: int32_t
+ direction: inout
description: |
Specify an exposure mode for the AE algorithm to use.
@@ -120,6 +125,7 @@ controls:
- ExposureValue:
type: float
+ direction: inout
description: |
Specify an Exposure Value (EV) parameter.
@@ -134,6 +140,7 @@ controls:
- ExposureTime:
type: int32_t
+ direction: inout
description: |
Exposure time for the frame applied in the sensor device.
@@ -153,6 +160,7 @@ controls:
- AnalogueGain:
type: float
+ direction: inout
description: |
Analogue gain value applied in the sensor device.
@@ -173,6 +181,7 @@ controls:
- AeFlickerMode:
type: int32_t
+ direction: inout
description: |
Set the flicker avoidance mode for AGC/AEC.
@@ -215,6 +224,7 @@ controls:
- AeFlickerPeriod:
type: int32_t
+ direction: inout
description: |
Manual flicker period in microseconds.
@@ -235,6 +245,7 @@ controls:
- AeFlickerDetected:
type: int32_t
+ direction: out
description: |
Flicker period detected in microseconds.
@@ -257,6 +268,7 @@ controls:
- Brightness:
type: float
+ direction: inout
description: |
Specify a fixed brightness parameter.
@@ -265,6 +277,7 @@ controls:
- Contrast:
type: float
+ direction: inout
description: |
Specify a fixed contrast parameter.
@@ -273,6 +286,7 @@ controls:
- Lux:
type: float
+ direction: out
description: |
Report an estimate of the current illuminance level in lux.
@@ -280,6 +294,7 @@ controls:
- AwbEnable:
type: bool
+ direction: inout
description: |
Enable or disable the AWB.
@@ -290,6 +305,7 @@ controls:
# - Better handling of custom types.
- AwbMode:
type: int32_t
+ direction: inout
description: |
Specify the range of illuminants to use for the AWB algorithm.
@@ -323,6 +339,7 @@ controls:
- AwbLocked:
type: bool
+ direction: out
description: |
Report the lock status of a running AWB algorithm.
@@ -334,6 +351,7 @@ controls:
- ColourGains:
type: float
+ direction: inout
description: |
Pair of gain values for the Red and Blue colour channels, in that
order.
@@ -345,6 +363,7 @@ controls:
- ColourTemperature:
type: int32_t
+ direction: out
description: |
Report the estimate of the colour temperature for the frame, in kelvin.
@@ -352,6 +371,7 @@ controls:
- Saturation:
type: float
+ direction: inout
description: |
Specify a fixed saturation parameter.
@@ -360,6 +380,7 @@ controls:
- SensorBlackLevels:
type: int32_t
+ direction: out
description: |
Reports the sensor black levels used for processing a frame.
@@ -370,6 +391,7 @@ controls:
- Sharpness:
type: float
+ direction: inout
description: |
Intensity of the sharpening applied to the image.
@@ -384,6 +406,7 @@ controls:
- FocusFoM:
type: int32_t
+ direction: out
description: |
Reports a Figure of Merit (FoM) to indicate how in-focus the frame is.
@@ -396,6 +419,7 @@ controls:
- ColourCorrectionMatrix:
type: float
+ direction: inout
description: |
The 3x3 matrix that converts camera RGB to sRGB within the imaging
pipeline.
@@ -409,6 +433,7 @@ controls:
- ScalerCrop:
type: Rectangle
+ direction: inout
description: |
Sets the image portion that will be scaled to form the whole of
the final output image.
@@ -424,6 +449,7 @@ controls:
- DigitalGain:
type: float
+ direction: inout
description: |
Digital gain value applied during the processing steps applied
to the image as captured from the sensor.
@@ -441,6 +467,7 @@ controls:
- FrameDuration:
type: int64_t
+ direction: out
description: |
The instantaneous frame duration from start of frame exposure to start
of next exposure, expressed in microseconds.
@@ -449,6 +476,7 @@ controls:
- FrameDurationLimits:
type: int64_t
+ direction: inout
description: |
The minimum and maximum (in that order) frame duration, expressed in
microseconds.
@@ -485,6 +513,7 @@ controls:
- SensorTemperature:
type: float
+ direction: out
description: |
Temperature measure from the camera sensor in Celsius.
@@ -497,6 +526,7 @@ controls:
- SensorTimestamp:
type: int64_t
+ direction: out
description: |
The time when the first row of the image sensor active array is exposed.
@@ -511,6 +541,7 @@ controls:
- AfMode:
type: int32_t
+ direction: inout
description: |
The mode of the AF (autofocus) algorithm.
@@ -575,6 +606,7 @@ controls:
- AfRange:
type: int32_t
+ direction: inout
description: |
The range of focus distances that is scanned.
@@ -602,6 +634,7 @@ controls:
- AfSpeed:
type: int32_t
+ direction: inout
description: |
Determine whether the AF is to move the lens as quickly as possible or
more steadily.
@@ -620,6 +653,7 @@ controls:
- AfMetering:
type: int32_t
+ direction: inout
description: |
The parts of the image used by the AF algorithm to measure focus.
enum:
@@ -636,6 +670,7 @@ controls:
- AfWindows:
type: Rectangle
+ direction: inout
description: |
The focus windows used by the AF algorithm when AfMetering is set to
AfMeteringWindows.
@@ -665,6 +700,7 @@ controls:
- AfTrigger:
type: int32_t
+ direction: in
description: |
Start an autofocus scan.
@@ -690,6 +726,7 @@ controls:
- AfPause:
type: int32_t
+ direction: in
description: |
Pause lens movements when in continuous autofocus mode.
@@ -734,6 +771,7 @@ controls:
- LensPosition:
type: float
+ direction: inout
description: |
Set and report the focus lens position.
@@ -768,6 +806,7 @@ controls:
- AfState:
type: int32_t
+ direction: out
description: |
The current state of the AF algorithm.
@@ -825,6 +864,7 @@ controls:
- AfPauseState:
type: int32_t
+ direction: out
description: |
Report whether the autofocus is currently running, paused or pausing.
@@ -860,6 +900,7 @@ controls:
- HdrMode:
type: int32_t
+ direction: inout
description: |
Set the mode to be used for High Dynamic Range (HDR) imaging.
@@ -926,6 +967,7 @@ controls:
- HdrChannel:
type: int32_t
+ direction: out
description: |
The HDR channel used to capture the frame.
@@ -960,6 +1002,7 @@ controls:
- Gamma:
type: float
+ direction: inout
description: |
Specify a fixed gamma value.
@@ -968,6 +1011,7 @@ controls:
- DebugMetadataEnable:
type: bool
+ direction: inout
description: |
Enable or disable the debug metadata.
diff --git a/src/libcamera/control_ids_draft.yaml b/src/libcamera/control_ids_draft.yaml
index 1b284257..87e4e02d 100644
--- a/src/libcamera/control_ids_draft.yaml
+++ b/src/libcamera/control_ids_draft.yaml
@@ -10,6 +10,7 @@ vendor: draft
controls:
- AePrecaptureTrigger:
type: int32_t
+ direction: inout
description: |
Control for AE metering trigger. Currently identical to
ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER.
@@ -31,6 +32,7 @@ controls:
- NoiseReductionMode:
type: int32_t
+ direction: inout
description: |
Control to select the noise reduction algorithm mode. Currently
identical to ANDROID_NOISE_REDUCTION_MODE.
@@ -59,6 +61,7 @@ controls:
- ColorCorrectionAberrationMode:
type: int32_t
+ direction: inout
description: |
Control to select the color correction aberration mode. Currently
identical to ANDROID_COLOR_CORRECTION_ABERRATION_MODE.
@@ -79,6 +82,7 @@ controls:
- AeState:
type: int32_t
+ direction: out
description: |
Control to report the current AE algorithm state. Currently identical to
ANDROID_CONTROL_AE_STATE.
@@ -108,6 +112,7 @@ controls:
- AwbState:
type: int32_t
+ direction: out
description: |
Control to report the current AWB algorithm state. Currently identical
to ANDROID_CONTROL_AWB_STATE.
@@ -129,6 +134,7 @@ controls:
- SensorRollingShutterSkew:
type: int64_t
+ direction: out
description: |
Control to report the time between the start of exposure of the first
row and the start of exposure of the last row. Currently identical to
@@ -136,6 +142,7 @@ controls:
- LensShadingMapMode:
type: int32_t
+ direction: inout
description: |
Control to report if the lens shading map is available. Currently
identical to ANDROID_STATISTICS_LENS_SHADING_MAP_MODE.
@@ -149,6 +156,7 @@ controls:
- PipelineDepth:
type: int32_t
+ direction: out
description: |
Specifies the number of pipeline stages the frame went through from when
it was exposed to when the final completed result was available to the
@@ -163,6 +171,7 @@ controls:
- MaxLatency:
type: int32_t
+ direction: out
description: |
The maximum number of frames that can occur after a request (different
than the previous) has been submitted, and before the result's state
@@ -172,6 +181,7 @@ controls:
- TestPatternMode:
type: int32_t
+ direction: inout
description: |
Control to select the test pattern mode. Currently identical to
ANDROID_SENSOR_TEST_PATTERN_MODE.
@@ -229,6 +239,7 @@ controls:
- FaceDetectMode:
type: int32_t
+ direction: inout
description: |
Control to select the face detection mode used by the pipeline.
@@ -262,6 +273,7 @@ controls:
- FaceDetectFaceRectangles:
type: Rectangle
+ direction: out
description: |
Boundary rectangles of the detected faces. The number of values is
the number of detected faces.
@@ -273,6 +285,7 @@ controls:
- FaceDetectFaceScores:
type: uint8_t
+ direction: out
description: |
Confidence score of each of the detected faces. The range of score is
[0, 100]. The number of values should be the number of faces reported
@@ -285,6 +298,7 @@ controls:
- FaceDetectFaceLandmarks:
type: Point
+ direction: out
description: |
Array of human face landmark coordinates in format [..., left_eye_i,
right_eye_i, mouth_i, left_eye_i+1, ...], with i = index of face. The
@@ -298,6 +312,7 @@ controls:
- FaceDetectFaceIds:
type: int32_t
+ direction: out
description: |
Each detected face is given a unique ID that is valid for as long as the
face is visible to the camera device. A face that leaves the field of
diff --git a/src/libcamera/control_ids_rpi.yaml b/src/libcamera/control_ids_rpi.yaml
index 34bbdfc8..7524c5d2 100644
--- a/src/libcamera/control_ids_rpi.yaml
+++ b/src/libcamera/control_ids_rpi.yaml
@@ -9,6 +9,7 @@ vendor: rpi
controls:
- StatsOutputEnable:
type: bool
+ direction: inout
description: |
Toggles the Raspberry Pi IPA to output the hardware generated statistics.
@@ -21,6 +22,7 @@ controls:
- Bcm2835StatsOutput:
type: uint8_t
size: [n]
+ direction: out
description: |
Span of the BCM2835 ISP generated statistics for the current frame.
@@ -33,6 +35,7 @@ controls:
- ScalerCrops:
type: Rectangle
size: [n]
+ direction: out
description: |
An array of rectangles, where each singular value has identical
functionality to the ScalerCrop control. This control allows the