summaryrefslogtreecommitdiff
path: root/meson_options.txt
diff options
context:
space:
mode:
authorJacopo Mondi <jacopo@jmondi.org>2019-03-22 13:01:49 +0100
committerJacopo Mondi <jacopo@jmondi.org>2019-04-02 11:02:38 +0200
commita20182310dc7d2ad56cf208269a05206580a9a94 (patch)
treeaf8b2cf7b12c4730560c778493dbd8e438f0f18f /meson_options.txt
parent8dcd871fec82270c3bd8f0d0d02f39a9cb2ffc14 (diff)
libcamera: geometry: Add toString to Rectangle
Add toString() helpers to pretty print out the sizes of a Rectangle. Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Diffstat (limited to 'meson_options.txt')
0 files changed, 0 insertions, 0 deletions
21'>21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
/* SPDX-License-Identifier: LGPL-2.1-or-later */
/*
 * Copyright (C) 2021, Ideas On Board
 *
 * agc.h - IPU3 AGC/AEC mean-based control algorithm
 */

#pragma once

#include <linux/intel-ipu3.h>

#include <libcamera/base/utils.h>

#include <libcamera/geometry.h>

#include "algorithm.h"

namespace libcamera {

struct IPACameraSensorInfo;

namespace ipa::ipu3::algorithms {

class Agc : public Algorithm
{
public:
	Agc();
	~Agc() = default;

	int configure(IPAContext &context, const IPAConfigInfo &configInfo) override;
	void process(IPAContext &context, const ipu3_uapi_stats_3a *stats) override;

private:
	double measureBrightness(const ipu3_uapi_stats_3a *stats,
				 const ipu3_uapi_grid_config &grid) const;
	void filterExposure();
	void computeExposure(IPAFrameContext &frameContext, double yGain,
			     double iqMeanGain);
	double estimateLuminance(IPAFrameContext &frameContext,
				 const ipu3_uapi_grid_config &grid,
				 const ipu3_uapi_stats_3a *stats,
				 double gain);

	uint64_t frameCount_;

	utils::Duration lineDuration_;
	utils::Duration minShutterSpeed_;
	utils::Duration maxShutterSpeed_;

	double minAnalogueGain_;
	double maxAnalogueGain_;

	utils::Duration filteredExposure_;
	utils::Duration currentExposure_;

	uint32_t stride_;
};

} /* namespace ipa::ipu3::algorithms */

} /* namespace libcamera */