summaryrefslogtreecommitdiff
path: root/src/ipa/ipu3/ipu3_awb.h
diff options
context:
space:
mode:
authorJean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>2021-08-20 08:34:25 +0200
committerJean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>2021-08-20 12:11:29 +0200
commit4eb4073ec708ba1e4b4ef0375496dedc1308b3dc (patch)
treecc1dd6e9340a2fd21bd5bf716d8d0b8677836cc9 /src/ipa/ipu3/ipu3_awb.h
parentfcf56b9716ad5722e21d2d345a8708c21c88ae03 (diff)
ipa: ipu3: convert AWB to the new algorithm interface
When the stats are received, pass them with the context to the existing AWB algorithm. IPAFrameContext now has a new structure to store the gains calculated by the AWB algorithm. When an EventFillParams event is received, call prepare() and set the new gains accordingly in the params structure. There is no more a need for the IPU3Awb::initialise() function, as the params are always set in prepare(). Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'src/ipa/ipu3/ipu3_awb.h')
-rw-r--r--src/ipa/ipu3/ipu3_awb.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/ipa/ipu3/ipu3_awb.h b/src/ipa/ipu3/ipu3_awb.h
index eeb2920b..12703489 100644
--- a/src/ipa/ipu3/ipu3_awb.h
+++ b/src/ipa/ipu3/ipu3_awb.h
@@ -29,9 +29,8 @@ public:
IPU3Awb();
~IPU3Awb();
- void initialise(ipu3_uapi_params &params, const Size &bdsOutputSize, struct ipu3_uapi_grid_config &bdsGrid);
- void calculateWBGains(const ipu3_uapi_stats_3a *stats);
- void updateWbParameters(ipu3_uapi_params &params);
+ void prepare(IPAContext &context, ipu3_uapi_params *params) override;
+ void process(IPAContext &context, const ipu3_uapi_stats_3a *stats) override;
struct Ipu3AwbCell {
unsigned char greenRedAvg;
@@ -72,6 +71,7 @@ public:
};
private:
+ void calculateWBGains(const ipu3_uapi_stats_3a *stats);
void generateZones(std::vector<RGB> &zones);
void generateAwbStats(const ipu3_uapi_stats_3a *stats);
void clearAwbStats();