Message ID | 20250403154925.382973-10-stefan.klug@ideasonboard.com |
---|---|
State | Accepted |
Headers | show |
Series |
|
Related | show |
On Thu, Apr 03, 2025 at 05:49:14PM +0200, Stefan Klug wrote: > Swap gains and automatic/manual in the IPAActiveState structure. This is > in preparation to adding another member, which is easier in the new > structure. The patch contains no functional changes. > > Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com> > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > > --- > > Changes in v2: > - Use one named struct instead of two anonymous ones > > Changes in v3: > - Collected tags > - Updated documentation > --- > src/ipa/rkisp1/algorithms/awb.cpp | 24 ++++++++++++------------ > src/ipa/rkisp1/ipa_context.cpp | 13 ++++++++----- > src/ipa/rkisp1/ipa_context.h | 10 ++++++---- > 3 files changed, 26 insertions(+), 21 deletions(-) > > diff --git a/src/ipa/rkisp1/algorithms/awb.cpp b/src/ipa/rkisp1/algorithms/awb.cpp > index eafe93081bb1..a9759e53f593 100644 > --- a/src/ipa/rkisp1/algorithms/awb.cpp > +++ b/src/ipa/rkisp1/algorithms/awb.cpp > @@ -124,8 +124,8 @@ int Awb::init(IPAContext &context, const YamlObject &tuningData) > int Awb::configure(IPAContext &context, > const IPACameraSensorInfo &configInfo) > { > - context.activeState.awb.gains.manual = RGB<double>{ 1.0 }; > - context.activeState.awb.gains.automatic = > + context.activeState.awb.manual.gains = RGB<double>{ 1.0 }; > + context.activeState.awb.automatic.gains = > awbAlgo_->gainsFromColourTemperature(kDefaultColourTemperature); > context.activeState.awb.autoEnabled = true; > context.activeState.awb.temperatureK = kDefaultColourTemperature; > @@ -173,8 +173,8 @@ void Awb::queueRequest(IPAContext &context, > const auto &colourTemperature = controls.get(controls::ColourTemperature); > bool update = false; > if (colourGains) { > - awb.gains.manual.r() = (*colourGains)[0]; > - awb.gains.manual.b() = (*colourGains)[1]; > + awb.manual.gains.r() = (*colourGains)[0]; > + awb.manual.gains.b() = (*colourGains)[1]; > /* > * \todo Colour temperature reported in metadata is now > * incorrect, as we can't deduce the temperature from the gains. > @@ -183,17 +183,17 @@ void Awb::queueRequest(IPAContext &context, > update = true; > } else if (colourTemperature) { > const auto &gains = awbAlgo_->gainsFromColourTemperature(*colourTemperature); > - awb.gains.manual.r() = gains.r(); > - awb.gains.manual.b() = gains.b(); > + awb.manual.gains.r() = gains.r(); > + awb.manual.gains.b() = gains.b(); > awb.temperatureK = *colourTemperature; > update = true; > } > > if (update) > LOG(RkISP1Awb, Debug) > - << "Set colour gains to " << awb.gains.manual; > + << "Set colour gains to " << awb.manual.gains; > > - frameContext.awb.gains = awb.gains.manual; > + frameContext.awb.gains = awb.manual.gains; > frameContext.awb.temperatureK = awb.temperatureK; > } > > @@ -208,7 +208,7 @@ void Awb::prepare(IPAContext &context, const uint32_t frame, > * most up-to-date automatic values we can read. > */ > if (frameContext.awb.autoEnabled) { > - frameContext.awb.gains = context.activeState.awb.gains.automatic; > + frameContext.awb.gains = context.activeState.awb.automatic.gains; > frameContext.awb.temperatureK = context.activeState.awb.temperatureK; > } > > @@ -325,14 +325,14 @@ void Awb::process(IPAContext &context, > /* Filter the values to avoid oscillations. */ > double speed = 0.2; > awbResult.gains = awbResult.gains * speed + > - activeState.awb.gains.automatic * (1 - speed); > + activeState.awb.automatic.gains * (1 - speed); > > - activeState.awb.gains.automatic = awbResult.gains; > + activeState.awb.automatic.gains = awbResult.gains; > > LOG(RkISP1Awb, Debug) > << std::showpoint > << "Means " << rgbMeans << ", gains " > - << activeState.awb.gains.automatic << ", temp " > + << activeState.awb.automatic.gains << ", temp " > << activeState.awb.temperatureK << "K"; > } > > diff --git a/src/ipa/rkisp1/ipa_context.cpp b/src/ipa/rkisp1/ipa_context.cpp > index 99611bd5b390..39b97d143e95 100644 > --- a/src/ipa/rkisp1/ipa_context.cpp > +++ b/src/ipa/rkisp1/ipa_context.cpp > @@ -191,14 +191,17 @@ namespace libcamera::ipa::rkisp1 { > * \var IPAActiveState::awb > * \brief State for the Automatic White Balance algorithm > * > - * \struct IPAActiveState::awb.gains > + * \var IPAActiveState::awb::AwbState Shouldn't this be \struct ? > + * \brief Struct for the AWB regulation state > + * > + * \struct IPAActiveState::awb::AwbState.gains And this \var ? Paul > * \brief White balance gains > * > - * \var IPAActiveState::awb.gains.manual > - * \brief Manual white balance gains (set through requests) > + * \var IPAActiveState::awb.manual > + * \brief Manual regulation state (set through requests) > * > - * \var IPAActiveState::awb.gains.automatic > - * \brief Automatic white balance gains (computed by the algorithm) > + * \var IPAActiveState::awb.automatic > + * \brief Automatic regulation state (computed by the algorithm) > * > * \var IPAActiveState::awb.temperatureK > * \brief Estimated color temperature > diff --git a/src/ipa/rkisp1/ipa_context.h b/src/ipa/rkisp1/ipa_context.h > index 474f7036f003..6bc922a82971 100644 > --- a/src/ipa/rkisp1/ipa_context.h > +++ b/src/ipa/rkisp1/ipa_context.h > @@ -89,10 +89,12 @@ struct IPAActiveState { > } agc; > > struct { > - struct { > - RGB<double> manual; > - RGB<double> automatic; > - } gains; > + struct AwbState { > + RGB<double> gains; > + }; > + > + AwbState manual; > + AwbState automatic; > > unsigned int temperatureK; > bool autoEnabled; > -- > 2.43.0 >
Hi Paul, Thank you for the review. Quoting Paul Elder (2025-05-07 18:51:17) > On Thu, Apr 03, 2025 at 05:49:14PM +0200, Stefan Klug wrote: > > Swap gains and automatic/manual in the IPAActiveState structure. This is > > in preparation to adding another member, which is easier in the new > > structure. The patch contains no functional changes. > > > > Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com> > > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > > > > --- > > > > Changes in v2: > > - Use one named struct instead of two anonymous ones > > > > Changes in v3: > > - Collected tags > > - Updated documentation > > --- > > src/ipa/rkisp1/algorithms/awb.cpp | 24 ++++++++++++------------ > > src/ipa/rkisp1/ipa_context.cpp | 13 ++++++++----- > > src/ipa/rkisp1/ipa_context.h | 10 ++++++---- > > 3 files changed, 26 insertions(+), 21 deletions(-) > > > > diff --git a/src/ipa/rkisp1/algorithms/awb.cpp b/src/ipa/rkisp1/algorithms/awb.cpp > > index eafe93081bb1..a9759e53f593 100644 > > --- a/src/ipa/rkisp1/algorithms/awb.cpp > > +++ b/src/ipa/rkisp1/algorithms/awb.cpp > > @@ -124,8 +124,8 @@ int Awb::init(IPAContext &context, const YamlObject &tuningData) > > int Awb::configure(IPAContext &context, > > const IPACameraSensorInfo &configInfo) > > { > > - context.activeState.awb.gains.manual = RGB<double>{ 1.0 }; > > - context.activeState.awb.gains.automatic = > > + context.activeState.awb.manual.gains = RGB<double>{ 1.0 }; > > + context.activeState.awb.automatic.gains = > > awbAlgo_->gainsFromColourTemperature(kDefaultColourTemperature); > > context.activeState.awb.autoEnabled = true; > > context.activeState.awb.temperatureK = kDefaultColourTemperature; > > @@ -173,8 +173,8 @@ void Awb::queueRequest(IPAContext &context, > > const auto &colourTemperature = controls.get(controls::ColourTemperature); > > bool update = false; > > if (colourGains) { > > - awb.gains.manual.r() = (*colourGains)[0]; > > - awb.gains.manual.b() = (*colourGains)[1]; > > + awb.manual.gains.r() = (*colourGains)[0]; > > + awb.manual.gains.b() = (*colourGains)[1]; > > /* > > * \todo Colour temperature reported in metadata is now > > * incorrect, as we can't deduce the temperature from the gains. > > @@ -183,17 +183,17 @@ void Awb::queueRequest(IPAContext &context, > > update = true; > > } else if (colourTemperature) { > > const auto &gains = awbAlgo_->gainsFromColourTemperature(*colourTemperature); > > - awb.gains.manual.r() = gains.r(); > > - awb.gains.manual.b() = gains.b(); > > + awb.manual.gains.r() = gains.r(); > > + awb.manual.gains.b() = gains.b(); > > awb.temperatureK = *colourTemperature; > > update = true; > > } > > > > if (update) > > LOG(RkISP1Awb, Debug) > > - << "Set colour gains to " << awb.gains.manual; > > + << "Set colour gains to " << awb.manual.gains; > > > > - frameContext.awb.gains = awb.gains.manual; > > + frameContext.awb.gains = awb.manual.gains; > > frameContext.awb.temperatureK = awb.temperatureK; > > } > > > > @@ -208,7 +208,7 @@ void Awb::prepare(IPAContext &context, const uint32_t frame, > > * most up-to-date automatic values we can read. > > */ > > if (frameContext.awb.autoEnabled) { > > - frameContext.awb.gains = context.activeState.awb.gains.automatic; > > + frameContext.awb.gains = context.activeState.awb.automatic.gains; > > frameContext.awb.temperatureK = context.activeState.awb.temperatureK; > > } > > > > @@ -325,14 +325,14 @@ void Awb::process(IPAContext &context, > > /* Filter the values to avoid oscillations. */ > > double speed = 0.2; > > awbResult.gains = awbResult.gains * speed + > > - activeState.awb.gains.automatic * (1 - speed); > > + activeState.awb.automatic.gains * (1 - speed); > > > > - activeState.awb.gains.automatic = awbResult.gains; > > + activeState.awb.automatic.gains = awbResult.gains; > > > > LOG(RkISP1Awb, Debug) > > << std::showpoint > > << "Means " << rgbMeans << ", gains " > > - << activeState.awb.gains.automatic << ", temp " > > + << activeState.awb.automatic.gains << ", temp " > > << activeState.awb.temperatureK << "K"; > > } > > > > diff --git a/src/ipa/rkisp1/ipa_context.cpp b/src/ipa/rkisp1/ipa_context.cpp > > index 99611bd5b390..39b97d143e95 100644 > > --- a/src/ipa/rkisp1/ipa_context.cpp > > +++ b/src/ipa/rkisp1/ipa_context.cpp > > @@ -191,14 +191,17 @@ namespace libcamera::ipa::rkisp1 { > > * \var IPAActiveState::awb > > * \brief State for the Automatic White Balance algorithm > > * > > - * \struct IPAActiveState::awb.gains > > + * \var IPAActiveState::awb::AwbState > > Shouldn't this be \struct ? > > > + * \brief Struct for the AWB regulation state > > + * > > + * \struct IPAActiveState::awb::AwbState.gains > > And this \var ? I think you are right on both cases. As the rkisp1 is currently excluded from doxygen generation, these errors don't pop up. We should enable doxygen for that, but that is for another series :-). I'll change that while applying. Cheers, Stefan > > > Paul > > > * \brief White balance gains > > * > > - * \var IPAActiveState::awb.gains.manual > > - * \brief Manual white balance gains (set through requests) > > + * \var IPAActiveState::awb.manual > > + * \brief Manual regulation state (set through requests) > > * > > - * \var IPAActiveState::awb.gains.automatic > > - * \brief Automatic white balance gains (computed by the algorithm) > > + * \var IPAActiveState::awb.automatic > > + * \brief Automatic regulation state (computed by the algorithm) > > * > > * \var IPAActiveState::awb.temperatureK > > * \brief Estimated color temperature > > diff --git a/src/ipa/rkisp1/ipa_context.h b/src/ipa/rkisp1/ipa_context.h > > index 474f7036f003..6bc922a82971 100644 > > --- a/src/ipa/rkisp1/ipa_context.h > > +++ b/src/ipa/rkisp1/ipa_context.h > > @@ -89,10 +89,12 @@ struct IPAActiveState { > > } agc; > > > > struct { > > - struct { > > - RGB<double> manual; > > - RGB<double> automatic; > > - } gains; > > + struct AwbState { > > + RGB<double> gains; > > + }; > > + > > + AwbState manual; > > + AwbState automatic; > > > > unsigned int temperatureK; > > bool autoEnabled; > > -- > > 2.43.0 > >
Quoting Stefan Klug (2025-05-20 10:00:08) > Hi Paul, > > Thank you for the review. > > Quoting Paul Elder (2025-05-07 18:51:17) > > On Thu, Apr 03, 2025 at 05:49:14PM +0200, Stefan Klug wrote: > > > Swap gains and automatic/manual in the IPAActiveState structure. This is > > > in preparation to adding another member, which is easier in the new > > > structure. The patch contains no functional changes. > > > > > > Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com> > > > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > > > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > > > > > > --- > > > > > > Changes in v2: > > > - Use one named struct instead of two anonymous ones > > > > > > Changes in v3: > > > - Collected tags > > > - Updated documentation > > > --- > > > src/ipa/rkisp1/algorithms/awb.cpp | 24 ++++++++++++------------ > > > src/ipa/rkisp1/ipa_context.cpp | 13 ++++++++----- > > > src/ipa/rkisp1/ipa_context.h | 10 ++++++---- > > > 3 files changed, 26 insertions(+), 21 deletions(-) > > > > > > diff --git a/src/ipa/rkisp1/algorithms/awb.cpp b/src/ipa/rkisp1/algorithms/awb.cpp > > > index eafe93081bb1..a9759e53f593 100644 > > > --- a/src/ipa/rkisp1/algorithms/awb.cpp > > > +++ b/src/ipa/rkisp1/algorithms/awb.cpp > > > @@ -124,8 +124,8 @@ int Awb::init(IPAContext &context, const YamlObject &tuningData) > > > int Awb::configure(IPAContext &context, > > > const IPACameraSensorInfo &configInfo) > > > { > > > - context.activeState.awb.gains.manual = RGB<double>{ 1.0 }; > > > - context.activeState.awb.gains.automatic = > > > + context.activeState.awb.manual.gains = RGB<double>{ 1.0 }; > > > + context.activeState.awb.automatic.gains = > > > awbAlgo_->gainsFromColourTemperature(kDefaultColourTemperature); > > > context.activeState.awb.autoEnabled = true; > > > context.activeState.awb.temperatureK = kDefaultColourTemperature; > > > @@ -173,8 +173,8 @@ void Awb::queueRequest(IPAContext &context, > > > const auto &colourTemperature = controls.get(controls::ColourTemperature); > > > bool update = false; > > > if (colourGains) { > > > - awb.gains.manual.r() = (*colourGains)[0]; > > > - awb.gains.manual.b() = (*colourGains)[1]; > > > + awb.manual.gains.r() = (*colourGains)[0]; > > > + awb.manual.gains.b() = (*colourGains)[1]; > > > /* > > > * \todo Colour temperature reported in metadata is now > > > * incorrect, as we can't deduce the temperature from the gains. > > > @@ -183,17 +183,17 @@ void Awb::queueRequest(IPAContext &context, > > > update = true; > > > } else if (colourTemperature) { > > > const auto &gains = awbAlgo_->gainsFromColourTemperature(*colourTemperature); > > > - awb.gains.manual.r() = gains.r(); > > > - awb.gains.manual.b() = gains.b(); > > > + awb.manual.gains.r() = gains.r(); > > > + awb.manual.gains.b() = gains.b(); > > > awb.temperatureK = *colourTemperature; > > > update = true; > > > } > > > > > > if (update) > > > LOG(RkISP1Awb, Debug) > > > - << "Set colour gains to " << awb.gains.manual; > > > + << "Set colour gains to " << awb.manual.gains; > > > > > > - frameContext.awb.gains = awb.gains.manual; > > > + frameContext.awb.gains = awb.manual.gains; > > > frameContext.awb.temperatureK = awb.temperatureK; > > > } > > > > > > @@ -208,7 +208,7 @@ void Awb::prepare(IPAContext &context, const uint32_t frame, > > > * most up-to-date automatic values we can read. > > > */ > > > if (frameContext.awb.autoEnabled) { > > > - frameContext.awb.gains = context.activeState.awb.gains.automatic; > > > + frameContext.awb.gains = context.activeState.awb.automatic.gains; > > > frameContext.awb.temperatureK = context.activeState.awb.temperatureK; > > > } > > > > > > @@ -325,14 +325,14 @@ void Awb::process(IPAContext &context, > > > /* Filter the values to avoid oscillations. */ > > > double speed = 0.2; > > > awbResult.gains = awbResult.gains * speed + > > > - activeState.awb.gains.automatic * (1 - speed); > > > + activeState.awb.automatic.gains * (1 - speed); > > > > > > - activeState.awb.gains.automatic = awbResult.gains; > > > + activeState.awb.automatic.gains = awbResult.gains; > > > > > > LOG(RkISP1Awb, Debug) > > > << std::showpoint > > > << "Means " << rgbMeans << ", gains " > > > - << activeState.awb.gains.automatic << ", temp " > > > + << activeState.awb.automatic.gains << ", temp " > > > << activeState.awb.temperatureK << "K"; > > > } > > > > > > diff --git a/src/ipa/rkisp1/ipa_context.cpp b/src/ipa/rkisp1/ipa_context.cpp > > > index 99611bd5b390..39b97d143e95 100644 > > > --- a/src/ipa/rkisp1/ipa_context.cpp > > > +++ b/src/ipa/rkisp1/ipa_context.cpp > > > @@ -191,14 +191,17 @@ namespace libcamera::ipa::rkisp1 { > > > * \var IPAActiveState::awb > > > * \brief State for the Automatic White Balance algorithm > > > * > > > - * \struct IPAActiveState::awb.gains > > > + * \var IPAActiveState::awb::AwbState > > > > Shouldn't this be \struct ? > > > > > + * \brief Struct for the AWB regulation state > > > + * > > > + * \struct IPAActiveState::awb::AwbState.gains > > > > And this \var ? > > I think you are right on both cases. As the rkisp1 is currently excluded > from doxygen generation, these errors don't pop up. We should enable > doxygen for that, but that is for another series :-). I'll change that Yeah, we can do that on top. > while applying. Cool :) with that fixed, Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> > > Cheers, > Stefan > > > > > > > Paul > > > > > * \brief White balance gains > > > * > > > - * \var IPAActiveState::awb.gains.manual > > > - * \brief Manual white balance gains (set through requests) > > > + * \var IPAActiveState::awb.manual > > > + * \brief Manual regulation state (set through requests) > > > * > > > - * \var IPAActiveState::awb.gains.automatic > > > - * \brief Automatic white balance gains (computed by the algorithm) > > > + * \var IPAActiveState::awb.automatic > > > + * \brief Automatic regulation state (computed by the algorithm) > > > * > > > * \var IPAActiveState::awb.temperatureK > > > * \brief Estimated color temperature > > > diff --git a/src/ipa/rkisp1/ipa_context.h b/src/ipa/rkisp1/ipa_context.h > > > index 474f7036f003..6bc922a82971 100644 > > > --- a/src/ipa/rkisp1/ipa_context.h > > > +++ b/src/ipa/rkisp1/ipa_context.h > > > @@ -89,10 +89,12 @@ struct IPAActiveState { > > > } agc; > > > > > > struct { > > > - struct { > > > - RGB<double> manual; > > > - RGB<double> automatic; > > > - } gains; > > > + struct AwbState { > > > + RGB<double> gains; > > > + }; > > > + > > > + AwbState manual; > > > + AwbState automatic; > > > > > > unsigned int temperatureK; > > > bool autoEnabled; > > > -- > > > 2.43.0 > > >
diff --git a/src/ipa/rkisp1/algorithms/awb.cpp b/src/ipa/rkisp1/algorithms/awb.cpp index eafe93081bb1..a9759e53f593 100644 --- a/src/ipa/rkisp1/algorithms/awb.cpp +++ b/src/ipa/rkisp1/algorithms/awb.cpp @@ -124,8 +124,8 @@ int Awb::init(IPAContext &context, const YamlObject &tuningData) int Awb::configure(IPAContext &context, const IPACameraSensorInfo &configInfo) { - context.activeState.awb.gains.manual = RGB<double>{ 1.0 }; - context.activeState.awb.gains.automatic = + context.activeState.awb.manual.gains = RGB<double>{ 1.0 }; + context.activeState.awb.automatic.gains = awbAlgo_->gainsFromColourTemperature(kDefaultColourTemperature); context.activeState.awb.autoEnabled = true; context.activeState.awb.temperatureK = kDefaultColourTemperature; @@ -173,8 +173,8 @@ void Awb::queueRequest(IPAContext &context, const auto &colourTemperature = controls.get(controls::ColourTemperature); bool update = false; if (colourGains) { - awb.gains.manual.r() = (*colourGains)[0]; - awb.gains.manual.b() = (*colourGains)[1]; + awb.manual.gains.r() = (*colourGains)[0]; + awb.manual.gains.b() = (*colourGains)[1]; /* * \todo Colour temperature reported in metadata is now * incorrect, as we can't deduce the temperature from the gains. @@ -183,17 +183,17 @@ void Awb::queueRequest(IPAContext &context, update = true; } else if (colourTemperature) { const auto &gains = awbAlgo_->gainsFromColourTemperature(*colourTemperature); - awb.gains.manual.r() = gains.r(); - awb.gains.manual.b() = gains.b(); + awb.manual.gains.r() = gains.r(); + awb.manual.gains.b() = gains.b(); awb.temperatureK = *colourTemperature; update = true; } if (update) LOG(RkISP1Awb, Debug) - << "Set colour gains to " << awb.gains.manual; + << "Set colour gains to " << awb.manual.gains; - frameContext.awb.gains = awb.gains.manual; + frameContext.awb.gains = awb.manual.gains; frameContext.awb.temperatureK = awb.temperatureK; } @@ -208,7 +208,7 @@ void Awb::prepare(IPAContext &context, const uint32_t frame, * most up-to-date automatic values we can read. */ if (frameContext.awb.autoEnabled) { - frameContext.awb.gains = context.activeState.awb.gains.automatic; + frameContext.awb.gains = context.activeState.awb.automatic.gains; frameContext.awb.temperatureK = context.activeState.awb.temperatureK; } @@ -325,14 +325,14 @@ void Awb::process(IPAContext &context, /* Filter the values to avoid oscillations. */ double speed = 0.2; awbResult.gains = awbResult.gains * speed + - activeState.awb.gains.automatic * (1 - speed); + activeState.awb.automatic.gains * (1 - speed); - activeState.awb.gains.automatic = awbResult.gains; + activeState.awb.automatic.gains = awbResult.gains; LOG(RkISP1Awb, Debug) << std::showpoint << "Means " << rgbMeans << ", gains " - << activeState.awb.gains.automatic << ", temp " + << activeState.awb.automatic.gains << ", temp " << activeState.awb.temperatureK << "K"; } diff --git a/src/ipa/rkisp1/ipa_context.cpp b/src/ipa/rkisp1/ipa_context.cpp index 99611bd5b390..39b97d143e95 100644 --- a/src/ipa/rkisp1/ipa_context.cpp +++ b/src/ipa/rkisp1/ipa_context.cpp @@ -191,14 +191,17 @@ namespace libcamera::ipa::rkisp1 { * \var IPAActiveState::awb * \brief State for the Automatic White Balance algorithm * - * \struct IPAActiveState::awb.gains + * \var IPAActiveState::awb::AwbState + * \brief Struct for the AWB regulation state + * + * \struct IPAActiveState::awb::AwbState.gains * \brief White balance gains * - * \var IPAActiveState::awb.gains.manual - * \brief Manual white balance gains (set through requests) + * \var IPAActiveState::awb.manual + * \brief Manual regulation state (set through requests) * - * \var IPAActiveState::awb.gains.automatic - * \brief Automatic white balance gains (computed by the algorithm) + * \var IPAActiveState::awb.automatic + * \brief Automatic regulation state (computed by the algorithm) * * \var IPAActiveState::awb.temperatureK * \brief Estimated color temperature diff --git a/src/ipa/rkisp1/ipa_context.h b/src/ipa/rkisp1/ipa_context.h index 474f7036f003..6bc922a82971 100644 --- a/src/ipa/rkisp1/ipa_context.h +++ b/src/ipa/rkisp1/ipa_context.h @@ -89,10 +89,12 @@ struct IPAActiveState { } agc; struct { - struct { - RGB<double> manual; - RGB<double> automatic; - } gains; + struct AwbState { + RGB<double> gains; + }; + + AwbState manual; + AwbState automatic; unsigned int temperatureK; bool autoEnabled;