68e8476d56
All platforms are now using the digital gain from the AgcStatus, so the AgcPrepareStatus and prepare() methods can be tidied up. Signed-off-by: David Plowman <david.plowman@raspberrypi.com> Signed-off-by: Naushir Patuck <naush@raspberrypi.com> Reviewed-by: Naushir Patuck <naush@raspberrypi.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
49 lines
1.2 KiB
C++
49 lines
1.2 KiB
C++
/* SPDX-License-Identifier: BSD-2-Clause */
|
|
/*
|
|
* Copyright (C) 2019, Raspberry Pi Ltd
|
|
*
|
|
* AGC/AEC control algorithm status
|
|
*/
|
|
#pragma once
|
|
|
|
#include <string>
|
|
|
|
#include <libcamera/base/utils.h>
|
|
|
|
#include "hdr_status.h"
|
|
|
|
/*
|
|
* The AGC algorithm process method should post an AgcStatus into the image
|
|
* metadata under the tag "agc.status".
|
|
* The AGC algorithm prepare method should post an AgcPrepareStatus instead
|
|
* under "agc.prepare_status".
|
|
*/
|
|
|
|
/*
|
|
* Note: total_exposure_value will be reported as zero until the algorithm has
|
|
* seen statistics and calculated meaningful values. The contents should be
|
|
* ignored until then.
|
|
*/
|
|
|
|
struct AgcStatus {
|
|
libcamera::utils::Duration totalExposureValue; /* value for all exposure and gain for this image */
|
|
libcamera::utils::Duration targetExposureValue; /* (unfiltered) target total exposure AGC is aiming for */
|
|
libcamera::utils::Duration exposureTime;
|
|
double analogueGain;
|
|
double digitalGain;
|
|
std::string exposureMode;
|
|
std::string constraintMode;
|
|
std::string meteringMode;
|
|
double ev;
|
|
libcamera::utils::Duration flickerPeriod;
|
|
int floatingRegionEnable;
|
|
libcamera::utils::Duration fixedExposureTime;
|
|
double fixedGain;
|
|
unsigned int channel;
|
|
HdrStatus hdr;
|
|
};
|
|
|
|
struct AgcPrepareStatus {
|
|
int locked;
|
|
};
|