summaryrefslogtreecommitdiff
path: root/src/libcamera
diff options
context:
space:
mode:
authorPaul Elder <paul.elder@ideasonboard.com>2021-05-24 18:37:14 +0900
committerPaul Elder <paul.elder@ideasonboard.com>2021-05-27 17:05:25 +0900
commit19772ffe102ab2e72d0f9f1403e0c02fcca4424d (patch)
tree4245aef0383ef4fc2ef36e82da3accd36e1dd71a /src/libcamera
parentc0a9768a9bfb8f61e9d21d2f150daa5336537e80 (diff)
controls: Split FrameDurations into FrameDuration and FrameDurationLimits
We need a separate control to report the nominal frame duration, but it's also useful to report the min/max frame duration values that will be used. Split the FrameDurations control into FrameDuration and FrameDurationLimits respectively to support both of these. Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Hirokazu Honda <hiroh@chromium.org> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
Diffstat (limited to 'src/libcamera')
-rw-r--r--src/libcamera/control_ids.yaml9
-rw-r--r--src/libcamera/pipeline/ipu3/ipu3.cpp7
2 files changed, 12 insertions, 4 deletions
diff --git a/src/libcamera/control_ids.yaml b/src/libcamera/control_ids.yaml
index 88d81ac4..f62ade48 100644
--- a/src/libcamera/control_ids.yaml
+++ b/src/libcamera/control_ids.yaml
@@ -323,7 +323,14 @@ controls:
step to respect the received gain factor and shall report
their total value in the request metadata.
- - FrameDurations:
+ - FrameDuration:
+ type: int64_t
+ description: |
+ The instantaneous frame duration from start of frame exposure to start
+ of next exposure, expressed in microseconds. This control is meant to
+ be returned in metadata.
+
+ - FrameDurationLimits:
type: int64_t
description: |
The minimum and maximum (in that order) frame duration,
diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
index 58923bc7..b986bb70 100644
--- a/src/libcamera/pipeline/ipu3/ipu3.cpp
+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
@@ -983,9 +983,10 @@ int PipelineHandlerIPU3::initControls(IPU3CameraData *data)
frameDurations[i] = frameSize / (sensorInfo.pixelRate / 1000000U);
}
- controls[&controls::FrameDurations] = ControlInfo(frameDurations[0],
- frameDurations[1],
- frameDurations[2]);
+ controls[&controls::FrameDurationLimits] =
+ ControlInfo(frameDurations[0],
+ frameDurations[1],
+ frameDurations[2]);
/*
* Compute the scaler crop limits.