libcamera: pipeline: Pass libcamera controls into pipeline_handler::start()

Applications now have the ability to pass in controls that need to be
applied on startup, rather than doing it through Request where there might
be some frames of delay in getting the controls applied.

This commit adds the ability to pass in a set of libcamera controls into
the pipeline handlers through the pipeline_handler::start() method. These
controls are provided by the application through the camera::start()
public API.

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
Reviewed-by: David Plowman <david.plowman@raspberrypi.com>
Tested-by: David Plowman <david.plowman@raspberrypi.com>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
Naushir Patuck 2020-12-04 15:31:19 +00:00 committed by Laurent Pinchart
parent ee477efde8
commit a62b35b8c0
11 changed files with 24 additions and 21 deletions

View file

@ -209,7 +209,7 @@ methods for the overridden class members.
int exportFrameBuffers(Camera *camera, Stream *stream,
std::vector<std::unique_ptr<FrameBuffer>> *buffers) override;
int start(Camera *camera) override;
int start(Camera *camera, ControlList *controls) override;
void stop(Camera *camera) override;
int queueRequestDevice(Camera *camera, Request *request) override;
@ -239,7 +239,7 @@ methods for the overridden class members.
return -1;
}
int PipelineHandlerVivid::start(Camera *camera)
int PipelineHandlerVivid::start(Camera *camera, ControlList *controls)
{
return -1;
}