ipa: raspberrypi: agc: Fix overflow in Y value calculation
The maxVal variable in the computeInitialY function needs to be a uint64_t, otherwise the subsequent multiplications in the function can overflow on relatively high resolution images (when the counts in the regions go over 16 bits). Signed-off-by: David Plowman <david.plowman@raspberrypi.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Naushir Patuck <naush@raspberrypi.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
committed by
Kieran Bingham
parent
2a261d911f
commit
85541db7bb
@@ -584,7 +584,7 @@ void Agc::fetchAwbStatus(Metadata *imageMetadata)
|
||||
static double computeInitialY(StatisticsPtr &stats, AwbStatus const &awb,
|
||||
double weights[], double gain)
|
||||
{
|
||||
constexpr unsigned int maxVal = 1 << Statistics::NormalisationFactorPow2;
|
||||
constexpr uint64_t maxVal = 1 << Statistics::NormalisationFactorPow2;
|
||||
/*
|
||||
* Note how the calculation below means that equal weights give you
|
||||
* "average" metering (i.e. all pixels equally important).
|
||||
|
||||
Reference in New Issue
Block a user