From 726e9274ea95fa46352556d340c5793a8da51fcd Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 3 May 2023 13:20:27 +0100 Subject: 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 Reviewed-by: Jacopo Mondi Reviewed-by: Laurent Pinchart Signed-off-by: Laurent Pinchart --- src/ipa/raspberrypi/controller/region_stats.h | 123 -------------------------- 1 file changed, 123 deletions(-) delete mode 100644 src/ipa/raspberrypi/controller/region_stats.h (limited to 'src/ipa/raspberrypi/controller/region_stats.h') 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 -#include -#include - -#include - -namespace RPiController { - -template -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::iterator begin() { return regions_.begin(); } - typename std::vector::iterator end() { return regions_.end(); } - typename std::vector::const_iterator begin() const { return regions_.begin(); } - typename std::vector::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 regions_; - Region default_; -}; - -} /* namespace RPiController */ -- cgit v1.2.1