[libcamera-devel] [PATCH v10 1/3] libcamera: controls: Add frame duration control
Naushir Patuck
naush at raspberrypi.com
Fri Dec 18 14:12:24 CET 2020
Hi Kieran,
Thank you for the review.
On Fri, 18 Dec 2020 at 12:44, Kieran Bingham <
kieran.bingham at ideasonboard.com> wrote:
> Hi Naush,
>
> On 18/12/2020 10:06, Naushir Patuck wrote:
> > Add an int64_t array control (controls::FrameDurations) to specify the
> > minimum and maximum (in that order) frame duration to be used by the
> > camera sensor.
> >
> > Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
> > Reviewed-by: David Plowman <david.plowman at raspberrypi.com>
> > Tested-by: David Plowman <david.plowman at raspberrypi.com>
> > Reviewed-by: Jacopo Mondi <jacopo at jmondi.org>
> > ---
> > src/libcamera/control_ids.yaml | 41 ++++++++++++++++++++++++++++++++++
> > 1 file changed, 41 insertions(+)
> >
> > diff --git a/src/libcamera/control_ids.yaml
> b/src/libcamera/control_ids.yaml
> > index 6d6f0fee..a58bff18 100644
> > --- a/src/libcamera/control_ids.yaml
> > +++ b/src/libcamera/control_ids.yaml
> > @@ -306,6 +306,47 @@ controls:
> > maximum valid value is given by the
> properties::ScalerCropMaximum
> > property, and the two can be used to implement digital zoom.
> >
> > + - FrameDurations:
> > + type: int64_t
> > + description: |
> > + The minimum and maximum (in that order) frame duration,
> > + expressed in micro-seconds.
> > +
> > + When provided by applications, the control specifies the
> sensor frame
> > + duration interval the pipeline has to use. This could also
> limit the
> > + largest exposure time the sensor can use. For example, if a
> maximum
> > + frame duration of 33ms is requested (corresponding to 30
> frames per
> > + second), the sensor will not be able to raise the exposure
> time above
> > + 33ms. A fixed frame duration is achieved by setting the
> minimum and
> > + maximum values to be the same.
> > +
> > + The maximum frame duration provides the absolute limit to the
> shutter
> > + speed computed by the AE algorithm and it overrides any
> exposure mode
> > + setting specified with controls::AeExposureMode. Similarly,
> when a
> > + manual exposure time is set through controls::ExposureTime,
> it also
> > + gets clipped to the limits set by this control.
> > +
> > + \sa AeExposureMode
> > + \sa ExposureTime
> > +
> > + \todo Refer to the frame duration limits property to describe
> how
> > + application-provided values gets clipped and reset.
> > +
> > + When reported by pipelines, the control expresses the minimum
> and
> > + maximum frame durations used after being clipped to what the
> current
> > + sensor mode supports, and what is achievable based on the
> exposure
> > + mode setting specified with controls::AeExposureMode or manual
> > + exposure time set through controls::ExposureTime. The sensor
> frame
> > + duration is one of the parameter that defines the capture
> frame rate
>
> s/parameter/parameters/ <fixable while applying I expect>
>
> > + but it does not alone provide enough information to fully
> calculate it
> > + as it does not account for pipeline processing delays.
> > +
> > + \todo Define how to calculate the capture frame rate by
> > + defining controls to report additional delays introduced by
> > + the capture pipeline or post-processing stages (ie JPEG
> > + conversion, frame scaling).
>
> Presumably, the frame rate becomes a function of
> max(FrameDuration, OtherSteps)
>
That's right. The tricky bit is fully defining OtherSteps :-)
Regards,
Naush
>
>
> Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
>
>
> > + size: [2]
> > +
> > #
> ----------------------------------------------------------------------------
> > # Draft controls section
> >
> >
>
> --
> Regards
> --
> Kieran
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.libcamera.org/pipermail/libcamera-devel/attachments/20201218/b8f1c7ef/attachment.htm>
More information about the libcamera-devel
mailing list