summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Klug <stefan.klug@ideasonboard.com>2024-12-16 16:40:45 +0100
committerStefan Klug <stefan.klug@ideasonboard.com>2024-12-17 10:31:44 +0100
commit60bb16695ee8821d6e8832f8bd1c4a336a371ebe (patch)
treedf549c3b3be7aad32cc52237d0634d12c66c2bce
parent169b65ce16375c7ec6708b187937183e11d4ed0d (diff)
pipeline: rkisp1: Reorder sensorInfo collection code
The sensorInfo (specifically the crop rectangle of the selected sensor mode) is collected to be passed to the IPA later. In an upcoming patch that data will also be needed for correct ScalerCrop handling. Move the collection of the sensorInfo before the dewarper configuration step and refactor the code a bit. Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
-rw-r--r--src/libcamera/pipeline/rkisp1/rkisp1.cpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
index 6ac14cd1..89946b78 100644
--- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp
+++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
@@ -843,6 +843,11 @@ int PipelineHandlerRkISP1::configure(Camera *camera, CameraConfiguration *c)
<< "ISP output pad configured with " << format
<< " crop " << outputCrop;
+ IPACameraSensorInfo sensorInfo;
+ ret = data->sensor_->sensorInfo(&sensorInfo);
+ if (ret)
+ return ret;
+
std::map<unsigned int, IPAStream> streamConfig;
std::vector<std::reference_wrapper<StreamConfiguration>> outputCfgs;
@@ -882,14 +887,9 @@ int PipelineHandlerRkISP1::configure(Camera *camera, CameraConfiguration *c)
return ret;
/* Inform IPA of stream configuration and sensor controls. */
- ipa::rkisp1::IPAConfigInfo ipaConfig{};
-
- ret = data->sensor_->sensorInfo(&ipaConfig.sensorInfo);
- if (ret)
- return ret;
-
- ipaConfig.sensorControls = data->sensor_->controls();
- ipaConfig.paramFormat = paramFormat.fourcc;
+ ipa::rkisp1::IPAConfigInfo ipaConfig{ sensorInfo,
+ data->sensor_->controls(),
+ paramFormat.fourcc };
ret = data->ipa_->configure(ipaConfig, streamConfig, &data->ipaControls_);
if (ret) {