[PATCH v4 2/3] ipa: rkisp1: Fix algorithm controls vanish after configure
Paul Elder
paul.elder at ideasonboard.com
Mon Jun 10 12:27:42 CEST 2024
On Wed, Jun 05, 2024 at 11:53:50AM +0200, Stefan Klug wrote:
> std::unordered_map::merge(source) has the side effect of actually moving items
> from source to target. In this case the controls were removed from the source
> maps on the first call to updateControls() and on the second call to
> updateControls() they were missing in the source maps and therefore also
> removed from the camera. Fix this by using insert() instead of merge(). This is
> most likely cheaper than copy-contructing the source map.
>
> Fixes: 4c5152843a2a ("ipa: rkisp1: Derive rkisp1::algorithms::Agc from AgcMeanLuminance")
> Signed-off-by: Stefan Klug <stefan.klug at ideasonboard.com>
> Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder at ideasonboard.com>
> ---
> src/ipa/rkisp1/rkisp1.cpp | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
> index 6687c91e7fb0..17474408ed2d 100644
> --- a/src/ipa/rkisp1/rkisp1.cpp
> +++ b/src/ipa/rkisp1/rkisp1.cpp
> @@ -427,7 +427,7 @@ void IPARkISP1::updateControls(const IPACameraSensorInfo &sensorInfo,
> frameDurations[1],
> frameDurations[2]);
>
> - ctrlMap.merge(context_.ctrlMap);
> + ctrlMap.insert(context_.ctrlMap.begin(), context_.ctrlMap.end());
> *ipaControls = ControlInfoMap(std::move(ctrlMap), controls::controls);
> }
>
> --
> 2.43.0
>
More information about the libcamera-devel
mailing list