| Message ID | 20251229194152.1087528-1-kieran.bingham@ideasonboard.com |
|---|---|
| State | New |
| Headers | show |
| Series |
|
| Related | show |
Hi Kieran, thank you for the patch. Kieran Bingham <kieran.bingham@ideasonboard.com> writes: > When the saturation is applied the metadata is reported for one frame > only. Once the colour temperature and saturation is stable, the > metadata for the saturation is not stored into the frame context and > therefore not reported in the completed request metadata. > > Update the CCM component to also store the applied saturation in the > frameContext so that it can be reported in the metadata. > > Fixes: 59ac34b728c5 ("libcamera: software_isp: Add saturation control") > Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > --- > > This is visible when the CCM is enabled, which is more convenient to > test now that we have the GPU ISP enablement where I noticed this - but > it's still applicable directly to mainline too. > > src/ipa/simple/algorithms/ccm.cpp | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/src/ipa/simple/algorithms/ccm.cpp b/src/ipa/simple/algorithms/ccm.cpp > index 0a98406c1a3a..f28b1037d2d2 100644 > --- a/src/ipa/simple/algorithms/ccm.cpp > +++ b/src/ipa/simple/algorithms/ccm.cpp > @@ -95,6 +95,7 @@ void Ccm::prepare(IPAContext &context, const uint32_t frame, > utils::abs_diff(ct, lastCt_) < kTemperatureThreshold && > saturation == lastSaturation_) { > frameContext.ccm.ccm = context.activeState.ccm.ccm; > + frameContext.saturation = saturation; Or the same assignment present a few lines below could be moved before this check. With or without this change: Reviewed-by: Milan Zamazal <mzamazal@redhat.com> > context.activeState.ccm.changed = false; > return; > }
diff --git a/src/ipa/simple/algorithms/ccm.cpp b/src/ipa/simple/algorithms/ccm.cpp index 0a98406c1a3a..f28b1037d2d2 100644 --- a/src/ipa/simple/algorithms/ccm.cpp +++ b/src/ipa/simple/algorithms/ccm.cpp @@ -95,6 +95,7 @@ void Ccm::prepare(IPAContext &context, const uint32_t frame, utils::abs_diff(ct, lastCt_) < kTemperatureThreshold && saturation == lastSaturation_) { frameContext.ccm.ccm = context.activeState.ccm.ccm; + frameContext.saturation = saturation; context.activeState.ccm.changed = false; return; }
When the saturation is applied the metadata is reported for one frame only. Once the colour temperature and saturation is stable, the metadata for the saturation is not stored into the frame context and therefore not reported in the completed request metadata. Update the CCM component to also store the applied saturation in the frameContext so that it can be reported in the metadata. Fixes: 59ac34b728c5 ("libcamera: software_isp: Add saturation control") Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> --- This is visible when the CCM is enabled, which is more convenient to test now that we have the GPU ISP enablement where I noticed this - but it's still applicable directly to mainline too. src/ipa/simple/algorithms/ccm.cpp | 1 + 1 file changed, 1 insertion(+)