summaryrefslogtreecommitdiff
path: root/src/qcam/assets/feathericons/check.svg
diff options
context:
space:
mode:
authorKieran Bingham <kieran.bingham@ideasonboard.com>2020-11-10 16:03:39 +0000
committerKieran Bingham <kieran.bingham@ideasonboard.com>2020-12-30 15:31:49 +0000
commit85f01678a04663e4015ff870cd4d738de302c616 (patch)
tree447a154f8495a7d2da35a83a2e44258132cf24e4 /src/qcam/assets/feathericons/check.svg
parentbf68e722766ff0c40bd6bf73953c282c0efe4a44 (diff)
src: meson: Re-order subdir layout
Move the android subdir below the configuration options to keep all subdirs together. Add a comment explaining why android must come first, and some padding to group the libcamera and ipa components, applications, and remaining adaptation layers. Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'src/qcam/assets/feathericons/check.svg')
0 files changed, 0 insertions, 0 deletions
algorithm */ #pragma once #include <mutex> #include <condition_variable> #include <thread> #include "../algorithm.hpp" #include "../alsc_status.h" namespace RPiController { // Algorithm to generate automagic LSC (Lens Shading Correction) tables. struct AlscCalibration { double ct; double table[ALSC_CELLS_X * ALSC_CELLS_Y]; }; struct AlscConfig { // Only repeat the ALSC calculation every "this many" frames uint16_t frame_period; // number of initial frames for which speed taken as 1.0 (maximum) uint16_t startup_frames; // IIR filter speed applied to algorithm results double speed; double sigma_Cr; double sigma_Cb; double min_count; uint16_t min_G; double omega; uint32_t n_iter; double luminance_lut[ALSC_CELLS_X * ALSC_CELLS_Y]; double luminance_strength; std::vector<AlscCalibration> calibrations_Cr; std::vector<AlscCalibration> calibrations_Cb; double default_ct; // colour temperature if no metadata found double threshold; // iteration termination threshold }; class Alsc : public Algorithm { public: Alsc(Controller *controller = NULL); ~Alsc(); char const *Name() const override; void Initialise() 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; void Process(StatisticsPtr &stats, Metadata *image_metadata) override; private: // configuration is read-only, and available to both threads AlscConfig config_; bool first_time_; CameraMode camera_mode_; double luminance_table_[ALSC_CELLS_X * ALSC_CELLS_Y]; std::thread async_thread_; void asyncFunc(); // asynchronous thread function std::mutex mutex_; // condvar for async thread to wait on std::condition_variable async_signal_; // condvar for synchronous thread to wait on std::condition_variable sync_signal_; // for sync thread to check if async thread finished (requires mutex) bool async_finished_;