Files
external_libcamera/src/ipa/raspberrypi/controller/agc_algorithm.hpp
T
David Plowman 748f48a006 ipa: raspberrypi: agc: Add GetConvergenceFrames method to AGC base class
We add a GetConvergenceFrames method to the AgcAlgorithm class which
can be called when the AGC is started from scratch. It suggests how
many frames should be dropped before displaying any (while the AGC
converges).

The Raspberry Pi specific implementation makes this customisable from
the tuning file.

Signed-off-by: David Plowman <david.plowman@raspberrypi.com>
Reviewed-by: Naushir Patuck <naush@raspberrypi.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
2020-12-11 23:31:19 +02:00

30 lines
947 B
C++

/* SPDX-License-Identifier: BSD-2-Clause */
/*
* Copyright (C) 2019, Raspberry Pi (Trading) Limited
*
* agc_algorithm.hpp - AGC/AEC control algorithm interface
*/
#pragma once
#include "algorithm.hpp"
namespace RPiController {
class AgcAlgorithm : public Algorithm
{
public:
AgcAlgorithm(Controller *controller) : Algorithm(controller) {}
// An AGC algorithm must provide the following:
virtual unsigned int GetConvergenceFrames() const = 0;
virtual void SetEv(double ev) = 0;
virtual void SetFlickerPeriod(double flicker_period) = 0;
virtual void SetFixedShutter(double fixed_shutter) = 0; // microseconds
virtual void SetFixedAnalogueGain(double fixed_analogue_gain) = 0;
virtual void SetMeteringMode(std::string const &metering_mode_name) = 0;
virtual void SetExposureMode(std::string const &exposure_mode_name) = 0;
virtual void
SetConstraintMode(std::string const &contraint_mode_name) = 0;
};
} // namespace RPiController