diff options
author | Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com> | 2021-03-16 16:40:23 +0100 |
---|---|---|
committer | Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com> | 2021-03-17 15:13:50 +0100 |
commit | 79b48225adddafb6e1e5dcbe384107ba69b89454 (patch) | |
tree | 1145c9be9e28a2d2351a8fcbe814b90aa3f06344 | |
parent | 3f6785963d198e1801ecaa203e4075e18485edd0 (diff) |
libcamera: ipu3: Pass the BDS rectangle at IPA configure call
The IPU3 IPA will need the BDS configuration when the AWB/AGC algorithm
will be integrated.
In order to do that, the configure() interface needs to be modified.
Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-rw-r--r-- | include/libcamera/ipa/ipu3.mojom | 2 | ||||
-rw-r--r-- | src/ipa/ipu3/ipu3.cpp | 6 | ||||
-rw-r--r-- | src/libcamera/pipeline/ipu3/ipu3.cpp | 2 |
3 files changed, 6 insertions, 4 deletions
diff --git a/include/libcamera/ipa/ipu3.mojom b/include/libcamera/ipa/ipu3.mojom index 6ee11333..5d13e7ea 100644 --- a/include/libcamera/ipa/ipu3.mojom +++ b/include/libcamera/ipa/ipu3.mojom @@ -30,7 +30,7 @@ interface IPAIPU3Interface { start() => (int32 ret); stop(); - configure(map<uint32, ControlInfoMap> entityControls) => (); + configure(map<uint32, ControlInfoMap> entityControls, Size bdsOutputSize) => (); mapBuffers(array<IPABuffer> buffers); unmapBuffers(array<uint32> ids); diff --git a/src/ipa/ipu3/ipu3.cpp b/src/ipa/ipu3/ipu3.cpp index b63e58be..a5c5e029 100644 --- a/src/ipa/ipu3/ipu3.cpp +++ b/src/ipa/ipu3/ipu3.cpp @@ -35,7 +35,8 @@ public: int start() override { return 0; } void stop() override {} - void configure(const std::map<uint32_t, ControlInfoMap> &entityControls) override; + void configure(const std::map<uint32_t, ControlInfoMap> &entityControls, + const Size &bdsOutputSize) override; void mapBuffers(const std::vector<IPABuffer> &buffers) override; void unmapBuffers(const std::vector<unsigned int> &ids) override; @@ -62,7 +63,8 @@ private: uint32_t maxGain_; }; -void IPAIPU3::configure(const std::map<uint32_t, ControlInfoMap> &entityControls) +void IPAIPU3::configure(const std::map<uint32_t, ControlInfoMap> &entityControls, + [[maybe_unused]] const Size &bdsOutputSize) { if (entityControls.empty()) return; diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp index bb61ef4a..c9e3c5ef 100644 --- a/src/libcamera/pipeline/ipu3/ipu3.cpp +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp @@ -635,7 +635,7 @@ int PipelineHandlerIPU3::configure(Camera *camera, CameraConfiguration *c) std::map<uint32_t, ControlInfoMap> entityControls; entityControls.emplace(0, data->cio2_.sensor()->controls()); - data->ipa_->configure(entityControls); + data->ipa_->configure(entityControls, config->imguConfig().bds); return 0; } |