Message ID | 20241212052438.1547410-2-paul.elder@ideasonboard.com |
---|---|
State | Accepted |
Headers | show |
Series |
|
Related | show |
Hi Paul, Thank you for the patch. On Thu, Dec 12, 2024 at 02:24:35PM +0900, Paul Elder wrote: > 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> Cheers, Stefan > > --- > Changes in v4: > - fix a few direction entries > > No change in v3 > > Changes in v2: > - add missing entries > - add entries for all controls, since this field shoul dbe mandatory > --- > src/libcamera/control_ids_core.yaml | 44 ++++++++++++++++++++++++++++ > src/libcamera/control_ids_draft.yaml | 15 ++++++++++ > src/libcamera/control_ids_rpi.yaml | 3 ++ > 3 files changed, 62 insertions(+) > > diff --git a/src/libcamera/control_ids_core.yaml b/src/libcamera/control_ids_core.yaml > index d45cf8e56187..073e0611d47c 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 1b284257f601..87e4e02db482 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 34bbdfc863c5..7524c5d23258 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 > -- > 2.39.2 >
diff --git a/src/libcamera/control_ids_core.yaml b/src/libcamera/control_ids_core.yaml index d45cf8e56187..073e0611d47c 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 1b284257f601..87e4e02db482 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 34bbdfc863c5..7524c5d23258 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