diff options
author | Naushir Patuck <naush@raspberrypi.com> | 2023-05-03 13:20:27 +0100 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2023-05-04 20:47:40 +0300 |
commit | 726e9274ea95fa46352556d340c5793a8da51fcd (patch) | |
tree | 80f6adcdbf744f9317e09eff3e80c602b384a753 /src/ipa/raspberrypi/controller/region_stats.h | |
parent | 46aefed208fef4bc8d6f6e8882b92b9af710a60b (diff) |
pipeline: ipa: raspberrypi: Refactor and move the Raspberry Pi code
Split the Raspberry Pi pipeline handler and IPA source code into common
and VC4/BCM2835 specific file structures.
For the pipeline handler, the common code files now live in
src/libcamera/pipeline/rpi/common/
and the VC4-specific files in src/libcamera/pipeline/rpi/vc4/.
For the IPA, the common code files now live in
src/ipa/rpi/{cam_helper,controller}/
and the vc4 specific files in src/ipa/rpi/vc4/. With this change, the
camera tuning files are now installed under share/libcamera/ipa/rpi/vc4/.
To build the pipeline and IPA, the meson configuration options have now
changed from "raspberrypi" to "rpi/vc4":
meson setup build -Dipas=rpi/vc4 -Dpipelines=rpi/vc4
Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'src/ipa/raspberrypi/controller/region_stats.h')
-rw-r--r-- | src/ipa/raspberrypi/controller/region_stats.h | 123 |
1 files changed, 0 insertions, 123 deletions
diff --git a/src/ipa/raspberrypi/controller/region_stats.h b/src/ipa/raspberrypi/controller/region_stats.h deleted file mode 100644 index a8860dc8..00000000 --- a/src/ipa/raspberrypi/controller/region_stats.h +++ /dev/null @@ -1,123 +0,0 @@ -/* SPDX-License-Identifier: BSD-2-Clause */ -/* - * Copyright (C) 2022, Raspberry Pi Ltd - * - * region_stats.h - Raspberry Pi region based statistics container - */ -#pragma once - -#include <array> -#include <stdint.h> -#include <vector> - -#include <libcamera/geometry.h> - -namespace RPiController { - -template<typename T> -class RegionStats -{ -public: - struct Region { - T val; - uint32_t counted; - uint32_t uncounted; - }; - - RegionStats() - : size_({}), numFloating_(0), default_({}) - { - } - - void init(const libcamera::Size &size, unsigned int numFloating = 0) - { - size_ = size; - numFloating_ = numFloating; - regions_.clear(); - regions_.resize(size_.width * size_.height + numFloating_); - } - - void init(unsigned int num) - { - size_ = libcamera::Size(num, 1); - numFloating_ = 0; - regions_.clear(); - regions_.resize(num); - } - - unsigned int numRegions() const - { - return size_.width * size_.height; - } - - unsigned int numFloatingRegions() const - { - return numFloating_; - } - - libcamera::Size size() const - { - return size_; - } - - void set(unsigned int index, const Region ®ion) - { - if (index >= numRegions()) - return; - set_(index, region); - } - - void set(const libcamera::Point &pos, const Region ®ion) - { - set(pos.y * size_.width + pos.x, region); - } - - void setFloating(unsigned int index, const Region ®ion) - { - if (index >= numFloatingRegions()) - return; - set(numRegions() + index, region); - } - - const Region &get(unsigned int index) const - { - if (index >= numRegions()) - return default_; - return get_(index); - } - - const Region &get(const libcamera::Point &pos) const - { - return get(pos.y * size_.width + pos.x); - } - - const Region &getFloating(unsigned int index) const - { - if (index >= numFloatingRegions()) - return default_; - return get_(numRegions() + index); - } - - typename std::vector<Region>::iterator begin() { return regions_.begin(); } - typename std::vector<Region>::iterator end() { return regions_.end(); } - typename std::vector<Region>::const_iterator begin() const { return regions_.begin(); } - typename std::vector<Region>::const_iterator end() const { return regions_.end(); } - -private: - void set_(unsigned int index, const Region ®ion) - { - regions_[index] = region; - } - - const Region &get_(unsigned int index) const - { - return regions_[index]; - } - - libcamera::Size size_; - unsigned int numFloating_; - std::vector<Region> regions_; - Region default_; -}; - -} /* namespace RPiController */ |