# SPDX-License-Identifier: CC0-1.0 subdir('tracepoints') libcamera_tracepoint_header = custom_target( 'tp_header', input: ['tracepoints.h.in', tracepoint_files], output: 'tracepoints.h', command: [gen_tracepoints_header, '@OUTPUT@', '@INPUT@'], ) libcamera_internal_headers = files([ 'bayer_format.h', 'buffer.h', 'byte_stream_buffer.h', 'camera_controls.h', 'camera_sensor.h', 'camera_sensor_properties.h', 'control_serializer.h', 'control_validator.h', 'delayed_controls.h', 'device_enumerator.h', 'device_enumerator_sysfs.h', 'device_enumerator_udev.h', 'event_dispatcher.h', 'event_dispatcher_poll.h', 'event_notifier.h', 'file.h', 'formats.h', 'ipa_manager.h', 'ipa_module.h', 'ipa_proxy.h', 'ipc_unixsocket.h', 'log.h', 'media_device.h', 'media_object.h', 'message.h', 'pipeline_handler.h', 'process.h', 'pub_key.h', 'semaphore.h', 'sysfs.h', 'thread.h', 'timer.h', 'utils.h', 'v4l2_device.h', 'v4l2_pixelformat.h', 'v4l2_subdevice.h', 'v4l2_videodevice.h', ]) osting on libcamera.org
summaryrefslogtreecommitdiff
path: root/src/ipa/raspberrypi/controller/rpi/noise.hpp
blob: 6f6e0be9295594f9fe11057ee17b2b7241571f04 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/* SPDX-License-Identifier: BSD-2-Clause */
/*
 * Copyright (C) 2019, Raspberry Pi (Trading) Limited
 *
 * noise.hpp - Noise control algorithm
 */
#pragma once

#include "../algorithm.hpp"
#include "../noise_status.h"

// This is our implementation of the "noise algorithm".

namespace RPiController {

class Noise : public Algorithm
{
public:
	Noise(Controller *controller);
	char const *Name() const override;
	void SwitchMode(CameraMode const &camera_mode, Metadata *metadata) override;
	void Read(boost::property_tree::ptree const &params) override;
	void Prepare(Metadata *image_metadata) override;

private:
	// the noise profile for analogue gain of 1.0
	double reference_constant_;
	double reference_slope_;
	std::atomic<double> mode_factor_;
};

} // namespace RPiController