summaryrefslogtreecommitdiff
path: root/src/ipa/simple/ipa_context.h
diff options
context:
space:
mode:
authorMilan Zamazal <mzamazal@redhat.com>2024-09-27 15:46:23 +0200
committerKieran Bingham <kieran.bingham@ideasonboard.com>2024-09-27 15:01:57 +0100
commitfb8ad13dc3e38a1bb056c209f692af53588c7b84 (patch)
tree48b94e98c2b932cb711a2b7bc9177e7725fe767a /src/ipa/simple/ipa_context.h
parent54fb3bba81e6ac79e5ac5881e33be4baf96cf6f3 (diff)
libcamera: software_isp: Move exposure+gain to an algorithm module
This is the last step to fully convert software ISP to Algorithm-based processing. The newly introduced frameContext.sensor parameters are set, and the updated code moved, before calling Algorithm::process() to have the values up-to-date in stats processing. Resolves software ISP TODO #10. Signed-off-by: Milan Zamazal <mzamazal@redhat.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Umang Jain <umang.jain@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Diffstat (limited to 'src/ipa/simple/ipa_context.h')
-rw-r--r--src/ipa/simple/ipa_context.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/ipa/simple/ipa_context.h b/src/ipa/simple/ipa_context.h
index cf1ef3fd..3519f20f 100644
--- a/src/ipa/simple/ipa_context.h
+++ b/src/ipa/simple/ipa_context.h
@@ -18,6 +18,10 @@ namespace ipa::soft {
struct IPASessionConfiguration {
float gamma;
+ struct {
+ int32_t exposureMin, exposureMax;
+ double againMin, againMax, againMinStep;
+ } agc;
};
struct IPAActiveState {
@@ -31,6 +35,11 @@ struct IPAActiveState {
double blue;
} gains;
+ struct {
+ int32_t exposure;
+ double again;
+ } agc;
+
static constexpr unsigned int kGammaLookupSize = 1024;
struct {
std::array<double, kGammaLookupSize> gammaTable;
@@ -39,6 +48,10 @@ struct IPAActiveState {
};
struct IPAFrameContext : public FrameContext {
+ struct {
+ uint32_t exposure;
+ double gain;
+ } sensor;
};
struct IPAContext {