@@ -16,7 +16,7 @@
#include "cam_helper.hpp"
#include "md_parser.hpp"
-using namespace RPi;
+using namespace RPiController;
static std::map<std::string, CamHelperCreateFunc> cam_helpers;
@@ -13,7 +13,7 @@
#include "libcamera/internal/v4l2_videodevice.h"
-namespace RPi {
+namespace RPiController {
// The CamHelper class provides a number of facilities that anyone trying
// trying to drive a camera will need to know, but which are not provided by
@@ -23,7 +23,7 @@
#include "md_parser_rpi.hpp"
#endif
-using namespace RPi;
+using namespace RPiController;
/* Metadata parser implementation specific to Sony IMX219 sensors. */
@@ -13,7 +13,7 @@
#include "cam_helper.hpp"
#include "md_parser.hpp"
-using namespace RPi;
+using namespace RPiController;
/* Metadata parser implementation specific to Sony IMX477 sensors. */
@@ -10,7 +10,7 @@
#include "cam_helper.hpp"
#include "md_parser_rpi.hpp"
-using namespace RPi;
+using namespace RPiController;
class CamHelperOv5647 : public CamHelper
{
@@ -8,7 +8,7 @@
#include "algorithm.hpp"
-namespace RPi {
+namespace RPiController {
class AgcAlgorithm : public Algorithm
{
@@ -25,4 +25,4 @@ public:
SetConstraintMode(std::string const &contraint_mode_name) = 0;
};
-} // namespace RPi
+} // namespace RPiController
@@ -7,7 +7,7 @@
#include "algorithm.hpp"
-using namespace RPi;
+using namespace RPiController;
void Algorithm::Read([[maybe_unused]] boost::property_tree::ptree const ¶ms)
{
@@ -32,7 +32,7 @@ void Algorithm::Process([[maybe_unused]] StatisticsPtr &stats,
// For registering algorithms with the system:
static std::map<std::string, AlgoCreateFunc> algorithms;
-std::map<std::string, AlgoCreateFunc> const &RPi::GetAlgorithms()
+std::map<std::string, AlgoCreateFunc> const &RPiController::GetAlgorithms()
{
return algorithms;
}
@@ -19,7 +19,7 @@
#include <boost/property_tree/ptree.hpp>
-namespace RPi {
+namespace RPiController {
// This defines the basic interface for all control algorithms.
@@ -59,4 +59,4 @@ struct RegisterAlgorithm {
};
std::map<std::string, AlgoCreateFunc> const &GetAlgorithms();
-} // namespace RPi
+} // namespace RPiController
@@ -8,7 +8,7 @@
#include "algorithm.hpp"
-namespace RPi {
+namespace RPiController {
class AwbAlgorithm : public Algorithm
{
@@ -19,4 +19,4 @@ public:
virtual void SetManualGains(double manual_r, double manual_b) = 0;
};
-} // namespace RPi
+} // namespace RPiController
@@ -8,7 +8,7 @@
#include "algorithm.hpp"
-namespace RPi {
+namespace RPiController {
class CcmAlgorithm : public Algorithm
{
@@ -18,4 +18,4 @@ public:
virtual void SetSaturation(double saturation) = 0;
};
-} // namespace RPi
+} // namespace RPiController
@@ -8,7 +8,7 @@
#include "algorithm.hpp"
-namespace RPi {
+namespace RPiController {
class ContrastAlgorithm : public Algorithm
{
@@ -19,4 +19,4 @@ public:
virtual void SetContrast(double contrast) = 0;
};
-} // namespace RPi
+} // namespace RPiController
@@ -11,7 +11,7 @@
#include <boost/property_tree/json_parser.hpp>
#include <boost/property_tree/ptree.hpp>
-using namespace RPi;
+using namespace RPiController;
Controller::Controller()
: switch_mode_called_(false) {}
@@ -19,7 +19,7 @@
#include "device_status.h"
#include "metadata.hpp"
-namespace RPi {
+namespace RPiController {
class Algorithm;
typedef std::unique_ptr<Algorithm> AlgorithmPtr;
@@ -51,4 +51,4 @@ protected:
bool switch_mode_called_;
};
-} // namespace RPi
+} // namespace RPiController
@@ -9,7 +9,7 @@
#include "histogram.hpp"
-using namespace RPi;
+using namespace RPiController;
uint64_t Histogram::CumulativeFreq(double bin) const
{
@@ -13,7 +13,7 @@
// A simple histogram class, for use in particular to find "quantiles" and
// averages between "quantiles".
-namespace RPi {
+namespace RPiController {
class Histogram
{
@@ -41,4 +41,4 @@ private:
std::vector<uint64_t> cumulative_;
};
-} // namespace RPi
+} // namespace RPiController
@@ -15,7 +15,7 @@
#include <boost/any.hpp>
-namespace RPi {
+namespace RPiController {
class Metadata
{
@@ -74,4 +74,4 @@ private:
typedef std::shared_ptr<Metadata> MetadataPtr;
-} // namespace RPi
+} // namespace RPiController
@@ -10,7 +10,7 @@
#include "pwl.hpp"
-using namespace RPi;
+using namespace RPiController;
void Pwl::Read(boost::property_tree::ptree const ¶ms)
{
@@ -11,7 +11,7 @@
#include <boost/property_tree/ptree.hpp>
-namespace RPi {
+namespace RPiController {
class Pwl
{
@@ -106,4 +106,4 @@ private:
std::vector<Point> points_;
};
-} // namespace RPi
+} // namespace RPiController
@@ -18,7 +18,7 @@
#include "agc.hpp"
-using namespace RPi;
+using namespace RPiController;
#define NAME "rpi.agc"
@@ -20,7 +20,7 @@
#define AGC_STATS_SIZE 15
-namespace RPi {
+namespace RPiController {
struct AgcMeteringMode {
double weights[AGC_STATS_SIZE];
@@ -121,4 +121,4 @@ private:
double fixed_analogue_gain_;
};
-} // namespace RPi
+} // namespace RPiController
@@ -11,7 +11,7 @@
// Raspberry Pi ALSC (Auto Lens Shading Correction) algorithm.
-using namespace RPi;
+using namespace RPiController;
#define NAME "rpi.alsc"
@@ -13,7 +13,7 @@
#include "../algorithm.hpp"
#include "../alsc_status.h"
-namespace RPi {
+namespace RPiController {
// Algorithm to generate automagic LSC (Lens Shading Correction) tables.
@@ -102,4 +102,4 @@ private:
double lambda_b_[ALSC_CELLS_X * ALSC_CELLS_Y];
};
-} // namespace RPi
+} // namespace RPiController
@@ -10,7 +10,7 @@
#include "awb.hpp"
-using namespace RPi;
+using namespace RPiController;
#define NAME "rpi.awb"
@@ -14,7 +14,7 @@
#include "../pwl.hpp"
#include "../awb_status.h"
-namespace RPi {
+namespace RPiController {
// Control algorithm to perform AWB calculations.
@@ -175,4 +175,4 @@ static inline Awb::RGB operator*(Awb::RGB const &rgb, double d)
return d * rgb;
}
-} // namespace RPi
+} // namespace RPiController
@@ -13,7 +13,7 @@
#include "black_level.hpp"
-using namespace RPi;
+using namespace RPiController;
#define NAME "rpi.black_level"
@@ -11,7 +11,7 @@
// This is our implementation of the "black level algorithm".
-namespace RPi {
+namespace RPiController {
class BlackLevel : public Algorithm
{
@@ -27,4 +27,4 @@ private:
double black_level_b_;
};
-} // namespace RPi
+} // namespace RPiController
@@ -13,7 +13,7 @@
#include "ccm.hpp"
-using namespace RPi;
+using namespace RPiController;
// This algorithm selects a CCM (Colour Correction Matrix) according to the
// colour temperature estimated by AWB (interpolating between known matricies as
@@ -12,7 +12,7 @@
#include "../ccm_algorithm.hpp"
#include "../pwl.hpp"
-namespace RPi {
+namespace RPiController {
// Algorithm to calculate colour matrix. Should be placed after AWB.
@@ -73,4 +73,4 @@ private:
std::atomic<double> saturation_;
};
-} // namespace RPi
+} // namespace RPiController
@@ -11,7 +11,7 @@
#include "contrast.hpp"
-using namespace RPi;
+using namespace RPiController;
// This is a very simple control algorithm which simply retrieves the results of
// AGC and AWB via their "status" metadata, and applies digital gain to the
@@ -12,7 +12,7 @@
#include "../contrast_algorithm.hpp"
#include "../pwl.hpp"
-namespace RPi {
+namespace RPiController {
// Back End algorithm to appaly correct digital gain. Should be placed after
// Back End AWB.
@@ -48,4 +48,4 @@ private:
std::mutex mutex_;
};
-} // namespace RPi
+} // namespace RPiController
@@ -8,7 +8,7 @@
#include "../logging.hpp"
#include "dpc.hpp"
-using namespace RPi;
+using namespace RPiController;
// We use the lux status so that we can apply stronger settings in darkness (if
// necessary).
@@ -9,7 +9,7 @@
#include "../algorithm.hpp"
#include "../dpc_status.h"
-namespace RPi {
+namespace RPiController {
// Back End algorithm to apply appropriate GEQ settings.
@@ -29,4 +29,4 @@ private:
DpcConfig config_;
};
-} // namespace RPi
+} // namespace RPiController
@@ -11,7 +11,7 @@
#include "../focus_status.h"
#include "focus.hpp"
-using namespace RPi;
+using namespace RPiController;
using namespace libcamera;
LOG_DEFINE_CATEGORY(RPiFocus)
@@ -15,7 +15,7 @@
* control.
*/
-namespace RPi {
+namespace RPiController {
class Focus : public Algorithm
{
@@ -25,4 +25,4 @@ public:
void Process(StatisticsPtr &stats, Metadata *image_metadata) override;
};
-} /* namespace RPi */
+} /* namespace RPiController */
@@ -12,7 +12,7 @@
#include "geq.hpp"
-using namespace RPi;
+using namespace RPiController;
// We use the lux status so that we can apply stronger settings in darkness (if
// necessary).
@@ -9,7 +9,7 @@
#include "../algorithm.hpp"
#include "../geq_status.h"
-namespace RPi {
+namespace RPiController {
// Back End algorithm to apply appropriate GEQ settings.
@@ -31,4 +31,4 @@ private:
GeqConfig config_;
};
-} // namespace RPi
+} // namespace RPiController
@@ -13,7 +13,7 @@
#include "lux.hpp"
-using namespace RPi;
+using namespace RPiController;
#define NAME "rpi.lux"
@@ -14,7 +14,7 @@
// This is our implementation of the "lux control algorithm".
-namespace RPi {
+namespace RPiController {
class Lux : public Algorithm
{
@@ -39,4 +39,4 @@ private:
std::mutex mutex_;
};
-} // namespace RPi
+} // namespace RPiController
@@ -13,7 +13,7 @@
#include "noise.hpp"
-using namespace RPi;
+using namespace RPiController;
#define NAME "rpi.noise"
@@ -11,7 +11,7 @@
// This is our implementation of the "noise algorithm".
-namespace RPi {
+namespace RPiController {
class Noise : public Algorithm
{
@@ -29,4 +29,4 @@ private:
std::atomic<double> mode_factor_;
};
-} // namespace RPi
+} // namespace RPiController
@@ -10,7 +10,7 @@
#include "sdn.hpp"
-using namespace RPi;
+using namespace RPiController;
// Calculate settings for the spatial denoise block using the noise profile in
// the image metadata.
@@ -8,7 +8,7 @@
#include "../algorithm.hpp"
-namespace RPi {
+namespace RPiController {
// Algorithm to calculate correct spatial denoise (SDN) settings.
@@ -26,4 +26,4 @@ private:
double strength_;
};
-} // namespace RPi
+} // namespace RPiController
@@ -12,7 +12,7 @@
#include "sharpen.hpp"
-using namespace RPi;
+using namespace RPiController;
#define NAME "rpi.sharpen"
@@ -11,7 +11,7 @@
// This is our implementation of the "sharpen algorithm".
-namespace RPi {
+namespace RPiController {
class Sharpen : public SharpenAlgorithm
{
@@ -31,4 +31,4 @@ private:
double user_strength_;
};
-} // namespace RPi
+} // namespace RPiController
@@ -8,7 +8,7 @@
#include "algorithm.hpp"
-namespace RPi {
+namespace RPiController {
class SharpenAlgorithm : public Algorithm
{
@@ -18,4 +18,4 @@ public:
virtual void SetStrength(double strength) = 0;
};
-} // namespace RPi
+} // namespace RPiController
@@ -11,7 +11,7 @@
#include "md_parser.hpp"
-using namespace RPi;
+using namespace RPiController;
// This function goes through the embedded data to find the offsets (not
// values!), in the data block, where the values of the given registers can
@@ -50,7 +50,7 @@ parser->Reset();
before calling Parse again. */
-namespace RPi {
+namespace RPiController {
// Abstract base class from which other metadata parsers are derived.
@@ -9,7 +9,7 @@
#include "md_parser_rpi.hpp"
-using namespace RPi;
+using namespace RPiController;
MdParserRPi::MdParserRPi()
{
@@ -8,7 +8,7 @@
#include "md_parser.hpp"
-namespace RPi {
+namespace RPiController {
class MdParserRPi : public MdParser
{
@@ -125,10 +125,10 @@ private:
CameraMode lastMode_;
/* Raspberry Pi controller specific defines. */
- std::unique_ptr<RPi::CamHelper> helper_;
- RPi::Controller controller_;
+ std::unique_ptr<RPiController::CamHelper> helper_;
+ RPiController::Controller controller_;
bool controllerInit_;
- RPi::Metadata rpiMetadata_;
+ RPiController::Metadata rpiMetadata_;
/*
* We count frames to decide if the frame must be hidden (e.g. from
@@ -211,7 +211,7 @@ void IPARPi::configure(const CameraSensorInfo &sensorInfo,
*/
std::string cameraName(sensorInfo.model);
if (!helper_) {
- helper_ = std::unique_ptr<RPi::CamHelper>(RPi::CamHelper::Create(cameraName));
+ helper_ = std::unique_ptr<RPiController::CamHelper>(RPiController::CamHelper::Create(cameraName));
/*
* Pass out the sensor config to the pipeline handler in order
* to setup the staggered writer class.
@@ -268,7 +268,7 @@ void IPARPi::configure(const CameraSensorInfo &sensorInfo,
agcStatus.analogue_gain = DEFAULT_ANALOGUE_GAIN;
}
- RPi::Metadata metadata;
+ RPiController::Metadata metadata;
controller_.SwitchMode(mode_, &metadata);
/* SwitchMode may supply updated exposure/gain values to use. */
@@ -391,7 +391,7 @@ void IPARPi::processEvent(const IPAOperationData &event)
void IPARPi::reportMetadata()
{
- std::unique_lock<RPi::Metadata> lock(rpiMetadata_);
+ std::unique_lock<RPiController::Metadata> lock(rpiMetadata_);
/*
* Certain information about the current frame and how it will be
@@ -496,7 +496,7 @@ void IPARPi::queueRequest(const ControlList &controls)
switch (ctrl.first) {
case controls::AE_ENABLE: {
- RPi::Algorithm *agc = controller_.GetAlgorithm("agc");
+ RPiController::Algorithm *agc = controller_.GetAlgorithm("agc");
ASSERT(agc);
if (ctrl.second.get<bool>() == false)
agc->Pause();
@@ -508,7 +508,7 @@ void IPARPi::queueRequest(const ControlList &controls)
}
case controls::EXPOSURE_TIME: {
- RPi::AgcAlgorithm *agc = dynamic_cast<RPi::AgcAlgorithm *>(
+ RPiController::AgcAlgorithm *agc = dynamic_cast<RPiController::AgcAlgorithm *>(
controller_.GetAlgorithm("agc"));
ASSERT(agc);
/* This expects units of micro-seconds. */
@@ -522,7 +522,7 @@ void IPARPi::queueRequest(const ControlList &controls)
}
case controls::ANALOGUE_GAIN: {
- RPi::AgcAlgorithm *agc = dynamic_cast<RPi::AgcAlgorithm *>(
+ RPiController::AgcAlgorithm *agc = dynamic_cast<RPiController::AgcAlgorithm *>(
controller_.GetAlgorithm("agc"));
ASSERT(agc);
agc->SetFixedAnalogueGain(ctrl.second.get<float>());
@@ -536,7 +536,7 @@ void IPARPi::queueRequest(const ControlList &controls)
}
case controls::AE_METERING_MODE: {
- RPi::AgcAlgorithm *agc = dynamic_cast<RPi::AgcAlgorithm *>(
+ RPiController::AgcAlgorithm *agc = dynamic_cast<RPiController::AgcAlgorithm *>(
controller_.GetAlgorithm("agc"));
ASSERT(agc);
@@ -552,7 +552,7 @@ void IPARPi::queueRequest(const ControlList &controls)
}
case controls::AE_CONSTRAINT_MODE: {
- RPi::AgcAlgorithm *agc = dynamic_cast<RPi::AgcAlgorithm *>(
+ RPiController::AgcAlgorithm *agc = dynamic_cast<RPiController::AgcAlgorithm *>(
controller_.GetAlgorithm("agc"));
ASSERT(agc);
@@ -568,7 +568,7 @@ void IPARPi::queueRequest(const ControlList &controls)
}
case controls::AE_EXPOSURE_MODE: {
- RPi::AgcAlgorithm *agc = dynamic_cast<RPi::AgcAlgorithm *>(
+ RPiController::AgcAlgorithm *agc = dynamic_cast<RPiController::AgcAlgorithm *>(
controller_.GetAlgorithm("agc"));
ASSERT(agc);
@@ -584,7 +584,7 @@ void IPARPi::queueRequest(const ControlList &controls)
}
case controls::EXPOSURE_VALUE: {
- RPi::AgcAlgorithm *agc = dynamic_cast<RPi::AgcAlgorithm *>(
+ RPiController::AgcAlgorithm *agc = dynamic_cast<RPiController::AgcAlgorithm *>(
controller_.GetAlgorithm("agc"));
ASSERT(agc);
@@ -600,7 +600,7 @@ void IPARPi::queueRequest(const ControlList &controls)
}
case controls::AWB_ENABLE: {
- RPi::Algorithm *awb = controller_.GetAlgorithm("awb");
+ RPiController::Algorithm *awb = controller_.GetAlgorithm("awb");
ASSERT(awb);
if (ctrl.second.get<bool>() == false)
@@ -614,7 +614,7 @@ void IPARPi::queueRequest(const ControlList &controls)
}
case controls::AWB_MODE: {
- RPi::AwbAlgorithm *awb = dynamic_cast<RPi::AwbAlgorithm *>(
+ RPiController::AwbAlgorithm *awb = dynamic_cast<RPiController::AwbAlgorithm *>(
controller_.GetAlgorithm("awb"));
ASSERT(awb);
@@ -631,7 +631,7 @@ void IPARPi::queueRequest(const ControlList &controls)
case controls::COLOUR_GAINS: {
auto gains = ctrl.second.get<Span<const float>>();
- RPi::AwbAlgorithm *awb = dynamic_cast<RPi::AwbAlgorithm *>(
+ RPiController::AwbAlgorithm *awb = dynamic_cast<RPiController::AwbAlgorithm *>(
controller_.GetAlgorithm("awb"));
ASSERT(awb);
@@ -644,7 +644,7 @@ void IPARPi::queueRequest(const ControlList &controls)
}
case controls::BRIGHTNESS: {
- RPi::ContrastAlgorithm *contrast = dynamic_cast<RPi::ContrastAlgorithm *>(
+ RPiController::ContrastAlgorithm *contrast = dynamic_cast<RPiController::ContrastAlgorithm *>(
controller_.GetAlgorithm("contrast"));
ASSERT(contrast);
@@ -655,7 +655,7 @@ void IPARPi::queueRequest(const ControlList &controls)
}
case controls::CONTRAST: {
- RPi::ContrastAlgorithm *contrast = dynamic_cast<RPi::ContrastAlgorithm *>(
+ RPiController::ContrastAlgorithm *contrast = dynamic_cast<RPiController::ContrastAlgorithm *>(
controller_.GetAlgorithm("contrast"));
ASSERT(contrast);
@@ -666,7 +666,7 @@ void IPARPi::queueRequest(const ControlList &controls)
}
case controls::SATURATION: {
- RPi::CcmAlgorithm *ccm = dynamic_cast<RPi::CcmAlgorithm *>(
+ RPiController::CcmAlgorithm *ccm = dynamic_cast<RPiController::CcmAlgorithm *>(
controller_.GetAlgorithm("ccm"));
ASSERT(ccm);
@@ -677,7 +677,7 @@ void IPARPi::queueRequest(const ControlList &controls)
}
case controls::SHARPNESS: {
- RPi::SharpenAlgorithm *sharpen = dynamic_cast<RPi::SharpenAlgorithm *>(
+ RPiController::SharpenAlgorithm *sharpen = dynamic_cast<RPiController::SharpenAlgorithm *>(
controller_.GetAlgorithm("sharpen"));
ASSERT(sharpen);
@@ -720,7 +720,7 @@ void IPARPi::prepareISP(unsigned int bufferId)
controller_.Prepare(&rpiMetadata_);
/* Lock the metadata buffer to avoid constant locks/unlocks. */
- std::unique_lock<RPi::Metadata> lock(rpiMetadata_);
+ std::unique_lock<RPiController::Metadata> lock(rpiMetadata_);
AwbStatus *awbStatus = rpiMetadata_.GetLocked<AwbStatus>("awb.status");
if (awbStatus)
@@ -781,18 +781,18 @@ bool IPARPi::parseEmbeddedData(unsigned int bufferId, struct DeviceStatus &devic
int size = buffers_.find(bufferId)->second.planes()[0].length;
helper_->Parser().SetBufferSize(size);
- RPi::MdParser::Status status = helper_->Parser().Parse(it->second);
- if (status != RPi::MdParser::Status::OK) {
+ RPiController::MdParser::Status status = helper_->Parser().Parse(it->second);
+ if (status != RPiController::MdParser::Status::OK) {
LOG(IPARPI, Error) << "Embedded Buffer parsing failed, error " << status;
} else {
uint32_t exposure_lines, gain_code;
- if (helper_->Parser().GetExposureLines(exposure_lines) != RPi::MdParser::Status::OK) {
+ if (helper_->Parser().GetExposureLines(exposure_lines) != RPiController::MdParser::Status::OK) {
LOG(IPARPI, Error) << "Exposure time failed";
return false;
}
deviceStatus.shutter_speed = helper_->Exposure(exposure_lines);
- if (helper_->Parser().GetGainCode(gain_code) != RPi::MdParser::Status::OK) {
+ if (helper_->Parser().GetGainCode(gain_code) != RPiController::MdParser::Status::OK) {
LOG(IPARPI, Error) << "Gain failed";
return false;
}
@@ -815,7 +815,7 @@ void IPARPi::processStats(unsigned int bufferId)
}
bcm2835_isp_stats *stats = static_cast<bcm2835_isp_stats *>(it->second);
- RPi::StatisticsPtr statistics = std::make_shared<bcm2835_isp_stats>(*stats);
+ RPiController::StatisticsPtr statistics = std::make_shared<bcm2835_isp_stats>(*stats);
controller_.Process(statistics, &rpiMetadata_);
struct AgcStatus agcStatus;