libcamera: raspberrypi: Plumb user transform through to IPA
This commit plumbs the user transform from the Raspberry Pi pipeline handler through to the IPA. Note that the transform is actually handled in the sensor (by setting the h/v flip bits), so the IPAs need to understand the orientation of the image they receive. Once in the IPA we add it to the CameraMode description, so that it becomes automatically available to all the individual control algorithms. The IPA configure method has to be reordered just a little so as to fill in the transform in the camera mode before calling SwitchMode. Signed-off-by: David Plowman <david.plowman@raspberrypi.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
committed by
Kieran Bingham
parent
4cff3937e1
commit
5c32a0daf5
@@ -1133,6 +1133,9 @@ int RPiCameraData::configureIPA(const CameraConfiguration *config)
|
||||
entityControls.emplace(0, unicam_[Unicam::Image].dev()->controls());
|
||||
entityControls.emplace(1, isp_[Isp::Input].dev()->controls());
|
||||
|
||||
/* Always send the user transform to the IPA. */
|
||||
ipaConfig.data = { static_cast<unsigned int>(config->transform) };
|
||||
|
||||
/* Allocate the lens shading table via dmaHeap and pass to the IPA. */
|
||||
if (!lsTable_.isValid()) {
|
||||
lsTable_ = dmaHeap_.alloc("ls_grid", MAX_LS_GRID_SIZE);
|
||||
@@ -1141,7 +1144,7 @@ int RPiCameraData::configureIPA(const CameraConfiguration *config)
|
||||
|
||||
/* Allow the IPA to mmap the LS table via the file descriptor. */
|
||||
ipaConfig.operation = RPI_IPA_CONFIG_LS_TABLE;
|
||||
ipaConfig.data = { static_cast<unsigned int>(lsTable_.fd()) };
|
||||
ipaConfig.data.push_back(static_cast<unsigned int>(lsTable_.fd()));
|
||||
}
|
||||
|
||||
CameraSensorInfo sensorInfo = {};
|
||||
|
||||
Reference in New Issue
Block a user