[libcamera-devel] Initial settings for camera exposure and analogue gain

Jacopo Mondi jacopo at jmondi.org
Wed Jun 10 14:27:00 CEST 2020


Hi David,

On Tue, Jun 09, 2020 at 03:00:49PM +0100, David Plowman wrote:
> Hi
>
> I'd like to discuss the question of being able to set a sensor's initial
> exposure time and analogue gain before the sensor is started by calling the
> Camera::start method. Currently I believe this is not possible; they can
> only be adjusted in the ControlList passed with a Request.
>

For application-supplied controls I think you're right. IPAs can
pre-configure sensors I guess. If I'm not mistaken your IPA protocol
has a RPI_IPA_ACTION_SET_SENSOR_CONFIG event, which is be used to
pre-configure sensor with known delay values, but that works at
start-up time only...

> This would be a helpful feature, for example when switching from preview to
> capture you might want to use different exposure/gain combinations. Or for
> capturing multiple exposures - you could straight away get the frame you
> want without waiting a couple of frames for the camera to start streaming
> with the wrong values and then change.
>
> As regards an API, we were thinking in terms of adding a "ControlList const
> &controls" parameter to the Camera::start method, which would forward the
> controls to the pipeline handler prior to the camera actually being
> started. (We're happy to work on the feature once there's sufficient
> consensus.)

We started planning support for the same feature, with the idea to
support Android's session parameters
https://source.android.com/devices/camera/session-parameters

When we (briefly) discussed this, we were considering providing a
ControlList at Camera:;configure() time, probably adding it to the
CameraConfiguration parameter. Thinking out loud, this would allow,
in example, to return a set of pre-configured control sets from
Camera::generateConfiguration() depending on the requested stream role
and yet-to-be-designed capture profile.

Why would you prefer to do at start() time ? That's certainly possible
if there's good reasons to do so...

Thanks
  j

>
> Best regards
>
> David

> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel



More information about the libcamera-devel mailing list