748f48a006
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>
30 lines
947 B
C++
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
|