[libcamera-devel] [PATCH v2 1/3] libcamera: controls: Add frame duration control

Naushir Patuck naush at raspberrypi.com
Wed Jun 3 11:44:18 CEST 2020


Hi Jacopo,

On Wed, 3 Jun 2020 at 09:42, Jacopo Mondi <jacopo at jmondi.org> wrote:
>
> Hi Naush,
>
>     I won't go into details here as I would like Laurent to chime in
> and express his view on this topic, but I would have a question in the
> meantime.
>
> On Tue, Jun 02, 2020 at 10:38:41AM +0100, Naushir Patuck wrote:
> > Hi Jacopo,
> >
> >
> > On Mon, 1 Jun 2020 at 16:40, Jacopo Mondi <jacopo at jmondi.org> wrote:
> > >
> > > Hi Naush,
> > >
> > > On Thu, May 28, 2020 at 09:52:51AM +0100, Naushir Patuck wrote:
>
> [snip]
>
> > > > > > On "FrameDuration" itself: would it make sense to only considered it
> > > > > > when running with AE off ? In that case it would be applications
> > > > > > responsibility to opportunely calculate the exposure time and the frame
> > > > > > duration, but I think it's expected if you run in manual mode. And for
> > > > > > reference, that's what Android does as well :)
> > > > > >
> > > > > > It would also rule out the need to specify how the frameDurationLimits
> > > > > > would be used when running in manual mode and wanting to configure a
> > > > > > precise value there, as I guess you would have to give to min and max
> > > > > > the same value to express that.
> > > >
> > > > FrameDurationLimits should only really apply with AE enabled.  AE
> > > > varies the shutter speed all over the place, that could cause
> > > > framerate changes that we need to clip.  If AE is disabled and we have
> > > > a manual shutter speed set, that dictates the frame duration, and any
> > > > limits will not apply.  Perhaps I should add this in the description?
> > > >
> >
> > I have to correct myself here.  FrameDurationLimits will also apply
> > with manual shutter speeds when AE is disabled.  We could, say, have a
> > manual shutter speed request of 25 ms, but still want to run at 30fps.
> > There is a question on what happens if they clash, e.g. request a
> > manual shutter speed of 66ms, and a FrameDuration of 30fps?  What gets
> > prioritised?  Currently, in our implementation, FrameDuration will
> > always be prioritised.
>
> Is there a rationle behind this decision ? I'm asking as I see Android
> going in the other direction, with the exposure time always overriding
> the requested frame duration.

This was an entirely arbitrary choice on my part - based on what was
easiest to do at the time :)

> It is specified in their documentation that the mximum frame duration
> a camera reports (lower frame rate) shall be at least the maximum
> allowed exposure time, so that all possible exposure values are known
> to be in the requested FPS range. I guess this should be enforced even
> if we give frame duration priority, or should we cap the maximum frame
> duration to the maximum available exposure time ?

I have not looked at the Android docs in ages, but do they have two
sets of frame duration limits, one that the sensor will report (sounds
like this is what you are working on?) and one that the user requests
(of course, bounded by the former)?  This was where my thinking was
going, and with frame duration priority, exposure time is capped by
the user request (if given), or the sensor limits.  But as always, if
the consensus is to behave differently, I am happy to change things
around.

Regards,
Naush


>
> Just trying to get more data points to make an informed decision, as
> your question on what has to be prioritized is quite sensible...
>
> Thanks
>   j


More information about the libcamera-devel mailing list