ipa: simple: Report contrast in metadata

Provide the requested contrast value, if any, in the metadata to add to
the completed requests.

Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Milan Zamazal <mzamazal@redhat.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
Milan Zamazal 2025-03-27 19:59:43 +01:00 committed by Laurent Pinchart
parent 8a4c2682be
commit 1375b07ede
3 changed files with 20 additions and 1 deletions

View file

@ -87,9 +87,11 @@ int16_t Lut::ccmValue(unsigned int i, float ccm) const
void Lut::prepare(IPAContext &context,
[[maybe_unused]] const uint32_t frame,
[[maybe_unused]] IPAFrameContext &frameContext,
IPAFrameContext &frameContext,
DebayerParams *params)
{
frameContext.contrast = context.activeState.knobs.contrast;
/*
* Update the gamma table if needed. This means if black level changes
* and since the black level gets updated only if a lower value is
@ -139,6 +141,17 @@ void Lut::prepare(IPAContext &context,
}
}
void Lut::process([[maybe_unused]] IPAContext &context,
[[maybe_unused]] const uint32_t frame,
[[maybe_unused]] IPAFrameContext &frameContext,
[[maybe_unused]] const SwIspStats *stats,
ControlList &metadata)
{
const auto &contrast = frameContext.contrast;
if (contrast)
metadata.set(controls::Contrast, contrast.value());
}
REGISTER_IPA_ALGORITHM(Lut, "Lut")
} /* namespace ipa::soft::algorithms */

View file

@ -30,6 +30,11 @@ public:
const uint32_t frame,
IPAFrameContext &frameContext,
DebayerParams *params) override;
void process(IPAContext &context,
const uint32_t frame,
IPAFrameContext &frameContext,
const SwIspStats *stats,
ControlList &metadata) override;
private:
void updateGammaTable(IPAContext &context);

View file

@ -74,6 +74,7 @@ struct IPAFrameContext : public FrameContext {
double red;
double blue;
} gains;
std::optional<double> contrast;
};
struct IPAContext {