summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacopo Mondi <jacopo@jmondi.org>2021-08-31 17:14:23 +0200
committerJacopo Mondi <jacopo@jmondi.org>2021-09-27 14:35:51 +0200
commit4c1fc33d8ab94375a5cdfa6a59158bba87229ee3 (patch)
tree6d5ce438a4986f1c239fff98de489b49a7ce35b7
parent72e8e03719aa552abce7eeee8a6e4a9b8eb8443e (diff)
libcamera: ipu3: Drop entityControls map
The IPA::configure() function has an IPAConfigInfo parameters which contains a map of numerical indexes to ControlInfoMap instances. This is a leftover of the old IPA protocol, where it was not possible to specify a rich interface as it is possible today and each entity ControlInfoMap was indexed by a numerical id and stored in a map. Now that the IPA interface allows to specify parameters by name, drop the map and send the sensor's control info map only. If we'll need more ControlInfoMap to be shared with the IPA, a new parameter can be added to IPAConfigInfo. Signed-off-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Umang Jain <umang.jain@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-rw-r--r--include/libcamera/ipa/ipu3.mojom2
-rw-r--r--src/ipa/ipu3/ipu3.cpp6
-rw-r--r--src/libcamera/pipeline/ipu3/ipu3.cpp2
3 files changed, 5 insertions, 5 deletions
diff --git a/include/libcamera/ipa/ipu3.mojom b/include/libcamera/ipa/ipu3.mojom
index d561c224..2045ce90 100644
--- a/include/libcamera/ipa/ipu3.mojom
+++ b/include/libcamera/ipa/ipu3.mojom
@@ -32,7 +32,7 @@ struct IPU3Action {
struct IPAConfigInfo {
libcamera.IPACameraSensorInfo sensorInfo;
- map<uint32, libcamera.ControlInfoMap> entityControls;
+ libcamera.ControlInfoMap sensorControls;
libcamera.Size bdsOutputSize;
libcamera.Size iif;
};
diff --git a/src/ipa/ipu3/ipu3.cpp b/src/ipa/ipu3/ipu3.cpp
index 30d2a539..ac98a86b 100644
--- a/src/ipa/ipu3/ipu3.cpp
+++ b/src/ipa/ipu3/ipu3.cpp
@@ -337,14 +337,14 @@ void IPAIPU3::calculateBdsGrid(const Size &bdsOutputSize)
int IPAIPU3::configure(const IPAConfigInfo &configInfo)
{
- if (configInfo.entityControls.empty()) {
- LOG(IPAIPU3, Error) << "No controls provided";
+ if (configInfo.sensorControls.empty()) {
+ LOG(IPAIPU3, Error) << "No sensor controls provided";
return -ENODATA;
}
sensorInfo_ = configInfo.sensorInfo;
- ctrls_ = configInfo.entityControls.at(0);
+ ctrls_ = configInfo.sensorControls;
const auto itExp = ctrls_.find(V4L2_CID_EXPOSURE);
if (itExp == ctrls_.end()) {
diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
index c287bf86..92e86925 100644
--- a/src/libcamera/pipeline/ipu3/ipu3.cpp
+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
@@ -654,7 +654,7 @@ int PipelineHandlerIPU3::configure(Camera *camera, CameraConfiguration *c)
}
ipa::ipu3::IPAConfigInfo configInfo;
- configInfo.entityControls.emplace(0, data->cio2_.sensor()->controls());
+ configInfo.sensorControls = data->cio2_.sensor()->controls();
configInfo.sensorInfo = sensorInfo;
configInfo.bdsOutputSize = config->imguConfig().bds;
configInfo.iif = config->imguConfig().iif;