From 79b48225adddafb6e1e5dcbe384107ba69b89454 Mon Sep 17 00:00:00 2001 From: Jean-Michel Hautbois Date: Tue, 16 Mar 2021 16:40:23 +0100 Subject: 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 Reviewed-by: Jacopo Mondi Reviewed-by: Laurent Pinchart --- include/libcamera/ipa/ipu3.mojom | 2 +- src/ipa/ipu3/ipu3.cpp | 6 ++++-- 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 entityControls) => (); + configure(map entityControls, Size bdsOutputSize) => (); mapBuffers(array buffers); unmapBuffers(array 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 &entityControls) override; + void configure(const std::map &entityControls, + const Size &bdsOutputSize) override; void mapBuffers(const std::vector &buffers) override; void unmapBuffers(const std::vector &ids) override; @@ -62,7 +63,8 @@ private: uint32_t maxGain_; }; -void IPAIPU3::configure(const std::map &entityControls) +void IPAIPU3::configure(const std::map &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 entityControls; entityControls.emplace(0, data->cio2_.sensor()->controls()); - data->ipa_->configure(entityControls); + data->ipa_->configure(entityControls, config->imguConfig().bds); return 0; } -- cgit v1.2.1