[PATCH] libcamera: software_isp: Reset stored exposure in black level
Robert Mader
robert.mader at collabora.com
Mon Mar 17 12:40:19 CET 2025
Thanks!
Tested-by: Robert Mader <robert.mader at collabora.com>
On 17.03.25 12:26, Milan Zamazal wrote:
> Automatic black level setting in software ISP updates the determined
> black level value when exposure or gain change. It stores the last
> exposure and gain values to detect the change.
>
> BlackLevel::configure() resets the stored black level value but not the
> exposure and gain values. This can prevent updating the black value and
> cause bad image output e.g. after suspending and resuming a camera, if
> exposure and gain remain unchanged.
>
> Let's reset the stored exposure and gain values in
> BlackLevel::configure() to fix the problem.
>
> Bug: https://bugs.libcamera.org/show_bug.cgi?id=259
> Signed-off-by: Milan Zamazal <mzamazal at redhat.com>
> ---
> src/ipa/simple/algorithms/blc.cpp | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/src/ipa/simple/algorithms/blc.cpp b/src/ipa/simple/algorithms/blc.cpp
> index 1d7d370b..14cf31bf 100644
> --- a/src/ipa/simple/algorithms/blc.cpp
> +++ b/src/ipa/simple/algorithms/blc.cpp
> @@ -1,6 +1,6 @@
> /* SPDX-License-Identifier: LGPL-2.1-or-later */
> /*
> - * Copyright (C) 2024, Red Hat Inc.
> + * Copyright (C) 2024-2025, Red Hat Inc.
> *
> * Black level handling
> */
> @@ -38,6 +38,9 @@ int BlackLevel::init([[maybe_unused]] IPAContext &context,
> int BlackLevel::configure(IPAContext &context,
> [[maybe_unused]] const IPAConfigInfo &configInfo)
> {
> + exposure_ = 0;
> + gain_ = 0;
> +
> if (definedLevel_.has_value())
> context.configuration.black.level = definedLevel_;
> context.activeState.blc.level =
More information about the libcamera-devel
mailing list