Message ID | 20250919173709.220881-7-mzamazal@redhat.com |
---|---|
State | New |
Headers | show |
Series |
|
Related | show |
On 19.09.2025 19:37, Milan Zamazal wrote: > If the histogram size is non-zero but lower than the number of bins, > yHistValsPerBin is zero and then the AGC processing crashes on division > by it. Let's check yHistValsPerBin for being zero and stop AGC > processing in such a case. The condition also covers the cases where > histogramSize or yHistValsPerBinMod are zero. > > Tested-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> > Signed-off-by: Milan Zamazal <mzamazal@redhat.com> > --- Reviewed-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name> Thanks, Maciej
diff --git a/src/ipa/simple/algorithms/agc.cpp b/src/ipa/simple/algorithms/agc.cpp index c46bb0ebe..e47949ec4 100644 --- a/src/ipa/simple/algorithms/agc.cpp +++ b/src/ipa/simple/algorithms/agc.cpp @@ -124,6 +124,12 @@ void Agc::process(IPAContext &context, unsigned int denom = 0; unsigned int num = 0; + if (yHistValsPerBin == 0) { + LOG(IPASoftExposure, Debug) + << "Not adjusting exposure due to insufficient histogram data"; + return; + } + for (unsigned int i = 0; i < histogramSize; i++) { unsigned int idx = (i - (i / yHistValsPerBinMod)) / yHistValsPerBin; exposureBins[idx] += histogram[blackLevelHistIdx + i];