[libcamera-devel,3/4] ipa: raspberrypi: Rename the controller namespace from Rpi to RpiController

Message ID 20200922095018.68434-4-naush@raspberrypi.com
State Accepted
Headers show
Series
  • Code tidy-ups
Related show

Commit Message

Naushir Patuck Sept. 22, 2020, 9:50 a.m. UTC
This avoids a namespace clash with the RPi namespace used by the ipa and
pipeline handlers, and cleans up the syntax slightly.

There are no functional changes in this commit.

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
---
 src/ipa/raspberrypi/cam_helper.cpp            |  2 +-
 src/ipa/raspberrypi/cam_helper.hpp            |  2 +-
 src/ipa/raspberrypi/cam_helper_imx219.cpp     |  2 +-
 src/ipa/raspberrypi/cam_helper_imx477.cpp     |  2 +-
 src/ipa/raspberrypi/cam_helper_ov5647.cpp     |  2 +-
 .../raspberrypi/controller/agc_algorithm.hpp  |  4 +-
 src/ipa/raspberrypi/controller/algorithm.cpp  |  4 +-
 src/ipa/raspberrypi/controller/algorithm.hpp  |  4 +-
 .../raspberrypi/controller/awb_algorithm.hpp  |  4 +-
 .../raspberrypi/controller/ccm_algorithm.hpp  |  4 +-
 .../controller/contrast_algorithm.hpp         |  4 +-
 src/ipa/raspberrypi/controller/controller.cpp |  2 +-
 src/ipa/raspberrypi/controller/controller.hpp |  4 +-
 src/ipa/raspberrypi/controller/histogram.cpp  |  2 +-
 src/ipa/raspberrypi/controller/histogram.hpp  |  4 +-
 src/ipa/raspberrypi/controller/metadata.hpp   |  4 +-
 src/ipa/raspberrypi/controller/pwl.cpp        |  2 +-
 src/ipa/raspberrypi/controller/pwl.hpp        |  4 +-
 src/ipa/raspberrypi/controller/rpi/agc.cpp    |  2 +-
 src/ipa/raspberrypi/controller/rpi/agc.hpp    |  4 +-
 src/ipa/raspberrypi/controller/rpi/alsc.cpp   |  2 +-
 src/ipa/raspberrypi/controller/rpi/alsc.hpp   |  4 +-
 src/ipa/raspberrypi/controller/rpi/awb.cpp    |  2 +-
 src/ipa/raspberrypi/controller/rpi/awb.hpp    |  4 +-
 .../controller/rpi/black_level.cpp            |  2 +-
 .../controller/rpi/black_level.hpp            |  4 +-
 src/ipa/raspberrypi/controller/rpi/ccm.cpp    |  2 +-
 src/ipa/raspberrypi/controller/rpi/ccm.hpp    |  4 +-
 .../raspberrypi/controller/rpi/contrast.cpp   |  2 +-
 .../raspberrypi/controller/rpi/contrast.hpp   |  4 +-
 src/ipa/raspberrypi/controller/rpi/dpc.cpp    |  2 +-
 src/ipa/raspberrypi/controller/rpi/dpc.hpp    |  4 +-
 src/ipa/raspberrypi/controller/rpi/focus.cpp  |  2 +-
 src/ipa/raspberrypi/controller/rpi/focus.hpp  |  4 +-
 src/ipa/raspberrypi/controller/rpi/geq.cpp    |  2 +-
 src/ipa/raspberrypi/controller/rpi/geq.hpp    |  4 +-
 src/ipa/raspberrypi/controller/rpi/lux.cpp    |  2 +-
 src/ipa/raspberrypi/controller/rpi/lux.hpp    |  4 +-
 src/ipa/raspberrypi/controller/rpi/noise.cpp  |  2 +-
 src/ipa/raspberrypi/controller/rpi/noise.hpp  |  4 +-
 src/ipa/raspberrypi/controller/rpi/sdn.cpp    |  2 +-
 src/ipa/raspberrypi/controller/rpi/sdn.hpp    |  4 +-
 .../raspberrypi/controller/rpi/sharpen.cpp    |  2 +-
 .../raspberrypi/controller/rpi/sharpen.hpp    |  4 +-
 .../controller/sharpen_algorithm.hpp          |  4 +-
 src/ipa/raspberrypi/md_parser.cpp             |  2 +-
 src/ipa/raspberrypi/md_parser.hpp             |  2 +-
 src/ipa/raspberrypi/md_parser_rpi.cpp         |  2 +-
 src/ipa/raspberrypi/md_parser_rpi.hpp         |  2 +-
 src/ipa/raspberrypi/raspberrypi.cpp           | 52 +++++++++----------
 50 files changed, 99 insertions(+), 99 deletions(-)

Comments

Jacopo Mondi Sept. 23, 2020, 7:58 a.m. UTC | #1
Hi Naush,

On Tue, Sep 22, 2020 at 10:50:17AM +0100, Naushir Patuck wrote:
> This avoids a namespace clash with the RPi namespace used by the ipa and
> pipeline handlers, and cleans up the syntax slightly.

So we'll have:
libcamera::RPi:: used by the pipeline handler and the IPA main module and
RPiController:: used by the IPA main module and the controller library

I wonder if we need a libcamera::IPA:: namespace...

For this patch
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>

Thanks
  j

>
> There are no functional changes in this commit.
>
> Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
> ---
>  src/ipa/raspberrypi/cam_helper.cpp            |  2 +-
>  src/ipa/raspberrypi/cam_helper.hpp            |  2 +-
>  src/ipa/raspberrypi/cam_helper_imx219.cpp     |  2 +-
>  src/ipa/raspberrypi/cam_helper_imx477.cpp     |  2 +-
>  src/ipa/raspberrypi/cam_helper_ov5647.cpp     |  2 +-
>  .../raspberrypi/controller/agc_algorithm.hpp  |  4 +-
>  src/ipa/raspberrypi/controller/algorithm.cpp  |  4 +-
>  src/ipa/raspberrypi/controller/algorithm.hpp  |  4 +-
>  .../raspberrypi/controller/awb_algorithm.hpp  |  4 +-
>  .../raspberrypi/controller/ccm_algorithm.hpp  |  4 +-
>  .../controller/contrast_algorithm.hpp         |  4 +-
>  src/ipa/raspberrypi/controller/controller.cpp |  2 +-
>  src/ipa/raspberrypi/controller/controller.hpp |  4 +-
>  src/ipa/raspberrypi/controller/histogram.cpp  |  2 +-
>  src/ipa/raspberrypi/controller/histogram.hpp  |  4 +-
>  src/ipa/raspberrypi/controller/metadata.hpp   |  4 +-
>  src/ipa/raspberrypi/controller/pwl.cpp        |  2 +-
>  src/ipa/raspberrypi/controller/pwl.hpp        |  4 +-
>  src/ipa/raspberrypi/controller/rpi/agc.cpp    |  2 +-
>  src/ipa/raspberrypi/controller/rpi/agc.hpp    |  4 +-
>  src/ipa/raspberrypi/controller/rpi/alsc.cpp   |  2 +-
>  src/ipa/raspberrypi/controller/rpi/alsc.hpp   |  4 +-
>  src/ipa/raspberrypi/controller/rpi/awb.cpp    |  2 +-
>  src/ipa/raspberrypi/controller/rpi/awb.hpp    |  4 +-
>  .../controller/rpi/black_level.cpp            |  2 +-
>  .../controller/rpi/black_level.hpp            |  4 +-
>  src/ipa/raspberrypi/controller/rpi/ccm.cpp    |  2 +-
>  src/ipa/raspberrypi/controller/rpi/ccm.hpp    |  4 +-
>  .../raspberrypi/controller/rpi/contrast.cpp   |  2 +-
>  .../raspberrypi/controller/rpi/contrast.hpp   |  4 +-
>  src/ipa/raspberrypi/controller/rpi/dpc.cpp    |  2 +-
>  src/ipa/raspberrypi/controller/rpi/dpc.hpp    |  4 +-
>  src/ipa/raspberrypi/controller/rpi/focus.cpp  |  2 +-
>  src/ipa/raspberrypi/controller/rpi/focus.hpp  |  4 +-
>  src/ipa/raspberrypi/controller/rpi/geq.cpp    |  2 +-
>  src/ipa/raspberrypi/controller/rpi/geq.hpp    |  4 +-
>  src/ipa/raspberrypi/controller/rpi/lux.cpp    |  2 +-
>  src/ipa/raspberrypi/controller/rpi/lux.hpp    |  4 +-
>  src/ipa/raspberrypi/controller/rpi/noise.cpp  |  2 +-
>  src/ipa/raspberrypi/controller/rpi/noise.hpp  |  4 +-
>  src/ipa/raspberrypi/controller/rpi/sdn.cpp    |  2 +-
>  src/ipa/raspberrypi/controller/rpi/sdn.hpp    |  4 +-
>  .../raspberrypi/controller/rpi/sharpen.cpp    |  2 +-
>  .../raspberrypi/controller/rpi/sharpen.hpp    |  4 +-
>  .../controller/sharpen_algorithm.hpp          |  4 +-
>  src/ipa/raspberrypi/md_parser.cpp             |  2 +-
>  src/ipa/raspberrypi/md_parser.hpp             |  2 +-
>  src/ipa/raspberrypi/md_parser_rpi.cpp         |  2 +-
>  src/ipa/raspberrypi/md_parser_rpi.hpp         |  2 +-
>  src/ipa/raspberrypi/raspberrypi.cpp           | 52 +++++++++----------
>  50 files changed, 99 insertions(+), 99 deletions(-)
>
> diff --git a/src/ipa/raspberrypi/cam_helper.cpp b/src/ipa/raspberrypi/cam_helper.cpp
> index b1343eb2..c8ac3232 100644
> --- a/src/ipa/raspberrypi/cam_helper.cpp
> +++ b/src/ipa/raspberrypi/cam_helper.cpp
> @@ -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;
>
> diff --git a/src/ipa/raspberrypi/cam_helper.hpp b/src/ipa/raspberrypi/cam_helper.hpp
> index 97ce3e92..044c2866 100644
> --- a/src/ipa/raspberrypi/cam_helper.hpp
> +++ b/src/ipa/raspberrypi/cam_helper.hpp
> @@ -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
> diff --git a/src/ipa/raspberrypi/cam_helper_imx219.cpp b/src/ipa/raspberrypi/cam_helper_imx219.cpp
> index 1b9ce382..db8ab879 100644
> --- a/src/ipa/raspberrypi/cam_helper_imx219.cpp
> +++ b/src/ipa/raspberrypi/cam_helper_imx219.cpp
> @@ -23,7 +23,7 @@
>  #include "md_parser_rpi.hpp"
>  #endif
>
> -using namespace RPi;
> +using namespace RPiController;
>
>  /* Metadata parser implementation specific to Sony IMX219 sensors. */
>
> diff --git a/src/ipa/raspberrypi/cam_helper_imx477.cpp b/src/ipa/raspberrypi/cam_helper_imx477.cpp
> index a53b47c0..0e896ac7 100644
> --- a/src/ipa/raspberrypi/cam_helper_imx477.cpp
> +++ b/src/ipa/raspberrypi/cam_helper_imx477.cpp
> @@ -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. */
>
> diff --git a/src/ipa/raspberrypi/cam_helper_ov5647.cpp b/src/ipa/raspberrypi/cam_helper_ov5647.cpp
> index 3dbcb164..dc5d8275 100644
> --- a/src/ipa/raspberrypi/cam_helper_ov5647.cpp
> +++ b/src/ipa/raspberrypi/cam_helper_ov5647.cpp
> @@ -10,7 +10,7 @@
>  #include "cam_helper.hpp"
>  #include "md_parser_rpi.hpp"
>
> -using namespace RPi;
> +using namespace RPiController;
>
>  class CamHelperOv5647 : public CamHelper
>  {
> diff --git a/src/ipa/raspberrypi/controller/agc_algorithm.hpp b/src/ipa/raspberrypi/controller/agc_algorithm.hpp
> index f29bb3ac..b4ea54fb 100644
> --- a/src/ipa/raspberrypi/controller/agc_algorithm.hpp
> +++ b/src/ipa/raspberrypi/controller/agc_algorithm.hpp
> @@ -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
> diff --git a/src/ipa/raspberrypi/controller/algorithm.cpp b/src/ipa/raspberrypi/controller/algorithm.cpp
> index 1b80e296..43ad0a2b 100644
> --- a/src/ipa/raspberrypi/controller/algorithm.cpp
> +++ b/src/ipa/raspberrypi/controller/algorithm.cpp
> @@ -7,7 +7,7 @@
>
>  #include "algorithm.hpp"
>
> -using namespace RPi;
> +using namespace RPiController;
>
>  void Algorithm::Read([[maybe_unused]] boost::property_tree::ptree const &params)
>  {
> @@ -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;
>  }
> diff --git a/src/ipa/raspberrypi/controller/algorithm.hpp b/src/ipa/raspberrypi/controller/algorithm.hpp
> index 187c50c6..6196b2f9 100644
> --- a/src/ipa/raspberrypi/controller/algorithm.hpp
> +++ b/src/ipa/raspberrypi/controller/algorithm.hpp
> @@ -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
> diff --git a/src/ipa/raspberrypi/controller/awb_algorithm.hpp b/src/ipa/raspberrypi/controller/awb_algorithm.hpp
> index 22508ddd..5be0c9f4 100644
> --- a/src/ipa/raspberrypi/controller/awb_algorithm.hpp
> +++ b/src/ipa/raspberrypi/controller/awb_algorithm.hpp
> @@ -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
> diff --git a/src/ipa/raspberrypi/controller/ccm_algorithm.hpp b/src/ipa/raspberrypi/controller/ccm_algorithm.hpp
> index 21806cb0..33d0e30d 100644
> --- a/src/ipa/raspberrypi/controller/ccm_algorithm.hpp
> +++ b/src/ipa/raspberrypi/controller/ccm_algorithm.hpp
> @@ -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
> diff --git a/src/ipa/raspberrypi/controller/contrast_algorithm.hpp b/src/ipa/raspberrypi/controller/contrast_algorithm.hpp
> index 9780322b..7f03bba5 100644
> --- a/src/ipa/raspberrypi/controller/contrast_algorithm.hpp
> +++ b/src/ipa/raspberrypi/controller/contrast_algorithm.hpp
> @@ -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
> diff --git a/src/ipa/raspberrypi/controller/controller.cpp b/src/ipa/raspberrypi/controller/controller.cpp
> index 7c4b04fe..22461cc4 100644
> --- a/src/ipa/raspberrypi/controller/controller.cpp
> +++ b/src/ipa/raspberrypi/controller/controller.cpp
> @@ -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) {}
> diff --git a/src/ipa/raspberrypi/controller/controller.hpp b/src/ipa/raspberrypi/controller/controller.hpp
> index 6ba9412b..49b1a551 100644
> --- a/src/ipa/raspberrypi/controller/controller.hpp
> +++ b/src/ipa/raspberrypi/controller/controller.hpp
> @@ -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
> diff --git a/src/ipa/raspberrypi/controller/histogram.cpp b/src/ipa/raspberrypi/controller/histogram.cpp
> index 103d3f60..9916b3ed 100644
> --- a/src/ipa/raspberrypi/controller/histogram.cpp
> +++ b/src/ipa/raspberrypi/controller/histogram.cpp
> @@ -9,7 +9,7 @@
>
>  #include "histogram.hpp"
>
> -using namespace RPi;
> +using namespace RPiController;
>
>  uint64_t Histogram::CumulativeFreq(double bin) const
>  {
> diff --git a/src/ipa/raspberrypi/controller/histogram.hpp b/src/ipa/raspberrypi/controller/histogram.hpp
> index 06fc3aa7..90f5ac78 100644
> --- a/src/ipa/raspberrypi/controller/histogram.hpp
> +++ b/src/ipa/raspberrypi/controller/histogram.hpp
> @@ -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
> diff --git a/src/ipa/raspberrypi/controller/metadata.hpp b/src/ipa/raspberrypi/controller/metadata.hpp
> index 1d7624a0..f3a8dfab 100644
> --- a/src/ipa/raspberrypi/controller/metadata.hpp
> +++ b/src/ipa/raspberrypi/controller/metadata.hpp
> @@ -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
> diff --git a/src/ipa/raspberrypi/controller/pwl.cpp b/src/ipa/raspberrypi/controller/pwl.cpp
> index 7e11d8f3..aa134a1f 100644
> --- a/src/ipa/raspberrypi/controller/pwl.cpp
> +++ b/src/ipa/raspberrypi/controller/pwl.cpp
> @@ -10,7 +10,7 @@
>
>  #include "pwl.hpp"
>
> -using namespace RPi;
> +using namespace RPiController;
>
>  void Pwl::Read(boost::property_tree::ptree const &params)
>  {
> diff --git a/src/ipa/raspberrypi/controller/pwl.hpp b/src/ipa/raspberrypi/controller/pwl.hpp
> index bd7c7668..4f168551 100644
> --- a/src/ipa/raspberrypi/controller/pwl.hpp
> +++ b/src/ipa/raspberrypi/controller/pwl.hpp
> @@ -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
> diff --git a/src/ipa/raspberrypi/controller/rpi/agc.cpp b/src/ipa/raspberrypi/controller/rpi/agc.cpp
> index 3573f36b..df4d3647 100644
> --- a/src/ipa/raspberrypi/controller/rpi/agc.cpp
> +++ b/src/ipa/raspberrypi/controller/rpi/agc.cpp
> @@ -18,7 +18,7 @@
>
>  #include "agc.hpp"
>
> -using namespace RPi;
> +using namespace RPiController;
>
>  #define NAME "rpi.agc"
>
> diff --git a/src/ipa/raspberrypi/controller/rpi/agc.hpp b/src/ipa/raspberrypi/controller/rpi/agc.hpp
> index 9a7e89c1..ba7ae092 100644
> --- a/src/ipa/raspberrypi/controller/rpi/agc.hpp
> +++ b/src/ipa/raspberrypi/controller/rpi/agc.hpp
> @@ -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
> diff --git a/src/ipa/raspberrypi/controller/rpi/alsc.cpp b/src/ipa/raspberrypi/controller/rpi/alsc.cpp
> index 0d0e0b0c..49e60b98 100644
> --- a/src/ipa/raspberrypi/controller/rpi/alsc.cpp
> +++ b/src/ipa/raspberrypi/controller/rpi/alsc.cpp
> @@ -11,7 +11,7 @@
>
>  // Raspberry Pi ALSC (Auto Lens Shading Correction) algorithm.
>
> -using namespace RPi;
> +using namespace RPiController;
>
>  #define NAME "rpi.alsc"
>
> diff --git a/src/ipa/raspberrypi/controller/rpi/alsc.hpp b/src/ipa/raspberrypi/controller/rpi/alsc.hpp
> index 95572af0..13d1ba54 100644
> --- a/src/ipa/raspberrypi/controller/rpi/alsc.hpp
> +++ b/src/ipa/raspberrypi/controller/rpi/alsc.hpp
> @@ -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
> diff --git a/src/ipa/raspberrypi/controller/rpi/awb.cpp b/src/ipa/raspberrypi/controller/rpi/awb.cpp
> index a58fa11d..a5536e47 100644
> --- a/src/ipa/raspberrypi/controller/rpi/awb.cpp
> +++ b/src/ipa/raspberrypi/controller/rpi/awb.cpp
> @@ -10,7 +10,7 @@
>
>  #include "awb.hpp"
>
> -using namespace RPi;
> +using namespace RPiController;
>
>  #define NAME "rpi.awb"
>
> diff --git a/src/ipa/raspberrypi/controller/rpi/awb.hpp b/src/ipa/raspberrypi/controller/rpi/awb.hpp
> index 36925252..9124d042 100644
> --- a/src/ipa/raspberrypi/controller/rpi/awb.hpp
> +++ b/src/ipa/raspberrypi/controller/rpi/awb.hpp
> @@ -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
> diff --git a/src/ipa/raspberrypi/controller/rpi/black_level.cpp b/src/ipa/raspberrypi/controller/rpi/black_level.cpp
> index 59c9f5a6..0629b77c 100644
> --- a/src/ipa/raspberrypi/controller/rpi/black_level.cpp
> +++ b/src/ipa/raspberrypi/controller/rpi/black_level.cpp
> @@ -13,7 +13,7 @@
>
>  #include "black_level.hpp"
>
> -using namespace RPi;
> +using namespace RPiController;
>
>  #define NAME "rpi.black_level"
>
> diff --git a/src/ipa/raspberrypi/controller/rpi/black_level.hpp b/src/ipa/raspberrypi/controller/rpi/black_level.hpp
> index 5d74c6da..65ec4d0e 100644
> --- a/src/ipa/raspberrypi/controller/rpi/black_level.hpp
> +++ b/src/ipa/raspberrypi/controller/rpi/black_level.hpp
> @@ -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
> diff --git a/src/ipa/raspberrypi/controller/rpi/ccm.cpp b/src/ipa/raspberrypi/controller/rpi/ccm.cpp
> index 327cb71c..a8a2caff 100644
> --- a/src/ipa/raspberrypi/controller/rpi/ccm.cpp
> +++ b/src/ipa/raspberrypi/controller/rpi/ccm.cpp
> @@ -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
> diff --git a/src/ipa/raspberrypi/controller/rpi/ccm.hpp b/src/ipa/raspberrypi/controller/rpi/ccm.hpp
> index f6f4dee1..fcf077e7 100644
> --- a/src/ipa/raspberrypi/controller/rpi/ccm.hpp
> +++ b/src/ipa/raspberrypi/controller/rpi/ccm.hpp
> @@ -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
> diff --git a/src/ipa/raspberrypi/controller/rpi/contrast.cpp b/src/ipa/raspberrypi/controller/rpi/contrast.cpp
> index c8d9ab61..103153db 100644
> --- a/src/ipa/raspberrypi/controller/rpi/contrast.cpp
> +++ b/src/ipa/raspberrypi/controller/rpi/contrast.cpp
> @@ -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
> diff --git a/src/ipa/raspberrypi/controller/rpi/contrast.hpp b/src/ipa/raspberrypi/controller/rpi/contrast.hpp
> index 2e38a762..6836f181 100644
> --- a/src/ipa/raspberrypi/controller/rpi/contrast.hpp
> +++ b/src/ipa/raspberrypi/controller/rpi/contrast.hpp
> @@ -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
> diff --git a/src/ipa/raspberrypi/controller/rpi/dpc.cpp b/src/ipa/raspberrypi/controller/rpi/dpc.cpp
> index d31fae97..348e1609 100644
> --- a/src/ipa/raspberrypi/controller/rpi/dpc.cpp
> +++ b/src/ipa/raspberrypi/controller/rpi/dpc.cpp
> @@ -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).
> diff --git a/src/ipa/raspberrypi/controller/rpi/dpc.hpp b/src/ipa/raspberrypi/controller/rpi/dpc.hpp
> index 9fb72867..d90285c4 100644
> --- a/src/ipa/raspberrypi/controller/rpi/dpc.hpp
> +++ b/src/ipa/raspberrypi/controller/rpi/dpc.hpp
> @@ -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
> diff --git a/src/ipa/raspberrypi/controller/rpi/focus.cpp b/src/ipa/raspberrypi/controller/rpi/focus.cpp
> index ffe44362..bab4406f 100644
> --- a/src/ipa/raspberrypi/controller/rpi/focus.cpp
> +++ b/src/ipa/raspberrypi/controller/rpi/focus.cpp
> @@ -11,7 +11,7 @@
>  #include "../focus_status.h"
>  #include "focus.hpp"
>
> -using namespace RPi;
> +using namespace RPiController;
>  using namespace libcamera;
>
>  LOG_DEFINE_CATEGORY(RPiFocus)
> diff --git a/src/ipa/raspberrypi/controller/rpi/focus.hpp b/src/ipa/raspberrypi/controller/rpi/focus.hpp
> index a9756ea7..131b1d0f 100644
> --- a/src/ipa/raspberrypi/controller/rpi/focus.hpp
> +++ b/src/ipa/raspberrypi/controller/rpi/focus.hpp
> @@ -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 */
> diff --git a/src/ipa/raspberrypi/controller/rpi/geq.cpp b/src/ipa/raspberrypi/controller/rpi/geq.cpp
> index ee0cb95d..b6c98414 100644
> --- a/src/ipa/raspberrypi/controller/rpi/geq.cpp
> +++ b/src/ipa/raspberrypi/controller/rpi/geq.cpp
> @@ -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).
> diff --git a/src/ipa/raspberrypi/controller/rpi/geq.hpp b/src/ipa/raspberrypi/controller/rpi/geq.hpp
> index 7d4bd38d..8ba3046b 100644
> --- a/src/ipa/raspberrypi/controller/rpi/geq.hpp
> +++ b/src/ipa/raspberrypi/controller/rpi/geq.hpp
> @@ -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
> diff --git a/src/ipa/raspberrypi/controller/rpi/lux.cpp b/src/ipa/raspberrypi/controller/rpi/lux.cpp
> index 154db153..5acd49a0 100644
> --- a/src/ipa/raspberrypi/controller/rpi/lux.cpp
> +++ b/src/ipa/raspberrypi/controller/rpi/lux.cpp
> @@ -13,7 +13,7 @@
>
>  #include "lux.hpp"
>
> -using namespace RPi;
> +using namespace RPiController;
>
>  #define NAME "rpi.lux"
>
> diff --git a/src/ipa/raspberrypi/controller/rpi/lux.hpp b/src/ipa/raspberrypi/controller/rpi/lux.hpp
> index eb935409..7b6c7258 100644
> --- a/src/ipa/raspberrypi/controller/rpi/lux.hpp
> +++ b/src/ipa/raspberrypi/controller/rpi/lux.hpp
> @@ -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
> diff --git a/src/ipa/raspberrypi/controller/rpi/noise.cpp b/src/ipa/raspberrypi/controller/rpi/noise.cpp
> index 1b84ecb0..9e9eaf1b 100644
> --- a/src/ipa/raspberrypi/controller/rpi/noise.cpp
> +++ b/src/ipa/raspberrypi/controller/rpi/noise.cpp
> @@ -13,7 +13,7 @@
>
>  #include "noise.hpp"
>
> -using namespace RPi;
> +using namespace RPiController;
>
>  #define NAME "rpi.noise"
>
> diff --git a/src/ipa/raspberrypi/controller/rpi/noise.hpp b/src/ipa/raspberrypi/controller/rpi/noise.hpp
> index 25bf1885..6f6e0be9 100644
> --- a/src/ipa/raspberrypi/controller/rpi/noise.hpp
> +++ b/src/ipa/raspberrypi/controller/rpi/noise.hpp
> @@ -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
> diff --git a/src/ipa/raspberrypi/controller/rpi/sdn.cpp b/src/ipa/raspberrypi/controller/rpi/sdn.cpp
> index 28d9d983..aa82830b 100644
> --- a/src/ipa/raspberrypi/controller/rpi/sdn.cpp
> +++ b/src/ipa/raspberrypi/controller/rpi/sdn.cpp
> @@ -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.
> diff --git a/src/ipa/raspberrypi/controller/rpi/sdn.hpp b/src/ipa/raspberrypi/controller/rpi/sdn.hpp
> index d48aab7e..486c000d 100644
> --- a/src/ipa/raspberrypi/controller/rpi/sdn.hpp
> +++ b/src/ipa/raspberrypi/controller/rpi/sdn.hpp
> @@ -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
> diff --git a/src/ipa/raspberrypi/controller/rpi/sharpen.cpp b/src/ipa/raspberrypi/controller/rpi/sharpen.cpp
> index 356c1058..c953a7d9 100644
> --- a/src/ipa/raspberrypi/controller/rpi/sharpen.cpp
> +++ b/src/ipa/raspberrypi/controller/rpi/sharpen.cpp
> @@ -12,7 +12,7 @@
>
>  #include "sharpen.hpp"
>
> -using namespace RPi;
> +using namespace RPiController;
>
>  #define NAME "rpi.sharpen"
>
> diff --git a/src/ipa/raspberrypi/controller/rpi/sharpen.hpp b/src/ipa/raspberrypi/controller/rpi/sharpen.hpp
> index 568521b9..13a076a8 100644
> --- a/src/ipa/raspberrypi/controller/rpi/sharpen.hpp
> +++ b/src/ipa/raspberrypi/controller/rpi/sharpen.hpp
> @@ -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
> diff --git a/src/ipa/raspberrypi/controller/sharpen_algorithm.hpp b/src/ipa/raspberrypi/controller/sharpen_algorithm.hpp
> index 3b27a745..ca800308 100644
> --- a/src/ipa/raspberrypi/controller/sharpen_algorithm.hpp
> +++ b/src/ipa/raspberrypi/controller/sharpen_algorithm.hpp
> @@ -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
> diff --git a/src/ipa/raspberrypi/md_parser.cpp b/src/ipa/raspberrypi/md_parser.cpp
> index ca809aa2..d82c102c 100644
> --- a/src/ipa/raspberrypi/md_parser.cpp
> +++ b/src/ipa/raspberrypi/md_parser.cpp
> @@ -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
> diff --git a/src/ipa/raspberrypi/md_parser.hpp b/src/ipa/raspberrypi/md_parser.hpp
> index 70d054b2..c9db62c0 100644
> --- a/src/ipa/raspberrypi/md_parser.hpp
> +++ b/src/ipa/raspberrypi/md_parser.hpp
> @@ -50,7 +50,7 @@ parser->Reset();
>
>  before calling Parse again. */
>
> -namespace RPi {
> +namespace RPiController {
>
>  // Abstract base class from which other metadata parsers are derived.
>
> diff --git a/src/ipa/raspberrypi/md_parser_rpi.cpp b/src/ipa/raspberrypi/md_parser_rpi.cpp
> index a42b28f7..2b0bcfc5 100644
> --- a/src/ipa/raspberrypi/md_parser_rpi.cpp
> +++ b/src/ipa/raspberrypi/md_parser_rpi.cpp
> @@ -9,7 +9,7 @@
>
>  #include "md_parser_rpi.hpp"
>
> -using namespace RPi;
> +using namespace RPiController;
>
>  MdParserRPi::MdParserRPi()
>  {
> diff --git a/src/ipa/raspberrypi/md_parser_rpi.hpp b/src/ipa/raspberrypi/md_parser_rpi.hpp
> index 1fa334f4..52f54f00 100644
> --- a/src/ipa/raspberrypi/md_parser_rpi.hpp
> +++ b/src/ipa/raspberrypi/md_parser_rpi.hpp
> @@ -8,7 +8,7 @@
>
>  #include "md_parser.hpp"
>
> -namespace RPi {
> +namespace RPiController {
>
>  class MdParserRPi : public MdParser
>  {
> diff --git a/src/ipa/raspberrypi/raspberrypi.cpp b/src/ipa/raspberrypi/raspberrypi.cpp
> index 28f81824..0c0dc743 100644
> --- a/src/ipa/raspberrypi/raspberrypi.cpp
> +++ b/src/ipa/raspberrypi/raspberrypi.cpp
> @@ -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;
> --
> 2.25.1
>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel@lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel
Kieran Bingham Sept. 23, 2020, 11:07 a.m. UTC | #2
Hi Jacopo, / Naush

On 23/09/2020 08:58, Jacopo Mondi wrote:
> Hi Naush,
> 
> On Tue, Sep 22, 2020 at 10:50:17AM +0100, Naushir Patuck wrote:
>> This avoids a namespace clash with the RPi namespace used by the ipa and
>> pipeline handlers, and cleans up the syntax slightly.
> 
> So we'll have:
> libcamera::RPi:: used by the pipeline handler and the IPA main module and
> RPiController:: used by the IPA main module and the controller library
> 
> I wonder if we need a libcamera::IPA:: namespace...

I came here from the previous patch just to say this, and now I see
you've beaten me to it ;-)

Perhaps this could/should then be

ipa::rpi::controller ?

Where in side an IPA it would be acceptable to use a
 'using namespace ipa;'


> For this patch
> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
> 

Either way, getting rid of the requirement to explicitly specify the
top-level namespace with a 'double ::' is nicer.

Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>

> Thanks
>   j
> 
>>
>> There are no functional changes in this commit.
>>
>> Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
>> ---
>>  src/ipa/raspberrypi/cam_helper.cpp            |  2 +-
>>  src/ipa/raspberrypi/cam_helper.hpp            |  2 +-
>>  src/ipa/raspberrypi/cam_helper_imx219.cpp     |  2 +-
>>  src/ipa/raspberrypi/cam_helper_imx477.cpp     |  2 +-
>>  src/ipa/raspberrypi/cam_helper_ov5647.cpp     |  2 +-
>>  .../raspberrypi/controller/agc_algorithm.hpp  |  4 +-
>>  src/ipa/raspberrypi/controller/algorithm.cpp  |  4 +-
>>  src/ipa/raspberrypi/controller/algorithm.hpp  |  4 +-
>>  .../raspberrypi/controller/awb_algorithm.hpp  |  4 +-
>>  .../raspberrypi/controller/ccm_algorithm.hpp  |  4 +-
>>  .../controller/contrast_algorithm.hpp         |  4 +-
>>  src/ipa/raspberrypi/controller/controller.cpp |  2 +-
>>  src/ipa/raspberrypi/controller/controller.hpp |  4 +-
>>  src/ipa/raspberrypi/controller/histogram.cpp  |  2 +-
>>  src/ipa/raspberrypi/controller/histogram.hpp  |  4 +-
>>  src/ipa/raspberrypi/controller/metadata.hpp   |  4 +-
>>  src/ipa/raspberrypi/controller/pwl.cpp        |  2 +-
>>  src/ipa/raspberrypi/controller/pwl.hpp        |  4 +-
>>  src/ipa/raspberrypi/controller/rpi/agc.cpp    |  2 +-
>>  src/ipa/raspberrypi/controller/rpi/agc.hpp    |  4 +-
>>  src/ipa/raspberrypi/controller/rpi/alsc.cpp   |  2 +-
>>  src/ipa/raspberrypi/controller/rpi/alsc.hpp   |  4 +-
>>  src/ipa/raspberrypi/controller/rpi/awb.cpp    |  2 +-
>>  src/ipa/raspberrypi/controller/rpi/awb.hpp    |  4 +-
>>  .../controller/rpi/black_level.cpp            |  2 +-
>>  .../controller/rpi/black_level.hpp            |  4 +-
>>  src/ipa/raspberrypi/controller/rpi/ccm.cpp    |  2 +-
>>  src/ipa/raspberrypi/controller/rpi/ccm.hpp    |  4 +-
>>  .../raspberrypi/controller/rpi/contrast.cpp   |  2 +-
>>  .../raspberrypi/controller/rpi/contrast.hpp   |  4 +-
>>  src/ipa/raspberrypi/controller/rpi/dpc.cpp    |  2 +-
>>  src/ipa/raspberrypi/controller/rpi/dpc.hpp    |  4 +-
>>  src/ipa/raspberrypi/controller/rpi/focus.cpp  |  2 +-
>>  src/ipa/raspberrypi/controller/rpi/focus.hpp  |  4 +-
>>  src/ipa/raspberrypi/controller/rpi/geq.cpp    |  2 +-
>>  src/ipa/raspberrypi/controller/rpi/geq.hpp    |  4 +-
>>  src/ipa/raspberrypi/controller/rpi/lux.cpp    |  2 +-
>>  src/ipa/raspberrypi/controller/rpi/lux.hpp    |  4 +-
>>  src/ipa/raspberrypi/controller/rpi/noise.cpp  |  2 +-
>>  src/ipa/raspberrypi/controller/rpi/noise.hpp  |  4 +-
>>  src/ipa/raspberrypi/controller/rpi/sdn.cpp    |  2 +-
>>  src/ipa/raspberrypi/controller/rpi/sdn.hpp    |  4 +-
>>  .../raspberrypi/controller/rpi/sharpen.cpp    |  2 +-
>>  .../raspberrypi/controller/rpi/sharpen.hpp    |  4 +-
>>  .../controller/sharpen_algorithm.hpp          |  4 +-
>>  src/ipa/raspberrypi/md_parser.cpp             |  2 +-
>>  src/ipa/raspberrypi/md_parser.hpp             |  2 +-
>>  src/ipa/raspberrypi/md_parser_rpi.cpp         |  2 +-
>>  src/ipa/raspberrypi/md_parser_rpi.hpp         |  2 +-
>>  src/ipa/raspberrypi/raspberrypi.cpp           | 52 +++++++++----------
>>  50 files changed, 99 insertions(+), 99 deletions(-)
>>
>> diff --git a/src/ipa/raspberrypi/cam_helper.cpp b/src/ipa/raspberrypi/cam_helper.cpp
>> index b1343eb2..c8ac3232 100644
>> --- a/src/ipa/raspberrypi/cam_helper.cpp
>> +++ b/src/ipa/raspberrypi/cam_helper.cpp
>> @@ -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;
>>
>> diff --git a/src/ipa/raspberrypi/cam_helper.hpp b/src/ipa/raspberrypi/cam_helper.hpp
>> index 97ce3e92..044c2866 100644
>> --- a/src/ipa/raspberrypi/cam_helper.hpp
>> +++ b/src/ipa/raspberrypi/cam_helper.hpp
>> @@ -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
>> diff --git a/src/ipa/raspberrypi/cam_helper_imx219.cpp b/src/ipa/raspberrypi/cam_helper_imx219.cpp
>> index 1b9ce382..db8ab879 100644
>> --- a/src/ipa/raspberrypi/cam_helper_imx219.cpp
>> +++ b/src/ipa/raspberrypi/cam_helper_imx219.cpp
>> @@ -23,7 +23,7 @@
>>  #include "md_parser_rpi.hpp"
>>  #endif
>>
>> -using namespace RPi;
>> +using namespace RPiController;
>>
>>  /* Metadata parser implementation specific to Sony IMX219 sensors. */
>>
>> diff --git a/src/ipa/raspberrypi/cam_helper_imx477.cpp b/src/ipa/raspberrypi/cam_helper_imx477.cpp
>> index a53b47c0..0e896ac7 100644
>> --- a/src/ipa/raspberrypi/cam_helper_imx477.cpp
>> +++ b/src/ipa/raspberrypi/cam_helper_imx477.cpp
>> @@ -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. */
>>
>> diff --git a/src/ipa/raspberrypi/cam_helper_ov5647.cpp b/src/ipa/raspberrypi/cam_helper_ov5647.cpp
>> index 3dbcb164..dc5d8275 100644
>> --- a/src/ipa/raspberrypi/cam_helper_ov5647.cpp
>> +++ b/src/ipa/raspberrypi/cam_helper_ov5647.cpp
>> @@ -10,7 +10,7 @@
>>  #include "cam_helper.hpp"
>>  #include "md_parser_rpi.hpp"
>>
>> -using namespace RPi;
>> +using namespace RPiController;
>>
>>  class CamHelperOv5647 : public CamHelper
>>  {
>> diff --git a/src/ipa/raspberrypi/controller/agc_algorithm.hpp b/src/ipa/raspberrypi/controller/agc_algorithm.hpp
>> index f29bb3ac..b4ea54fb 100644
>> --- a/src/ipa/raspberrypi/controller/agc_algorithm.hpp
>> +++ b/src/ipa/raspberrypi/controller/agc_algorithm.hpp
>> @@ -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
>> diff --git a/src/ipa/raspberrypi/controller/algorithm.cpp b/src/ipa/raspberrypi/controller/algorithm.cpp
>> index 1b80e296..43ad0a2b 100644
>> --- a/src/ipa/raspberrypi/controller/algorithm.cpp
>> +++ b/src/ipa/raspberrypi/controller/algorithm.cpp
>> @@ -7,7 +7,7 @@
>>
>>  #include "algorithm.hpp"
>>
>> -using namespace RPi;
>> +using namespace RPiController;
>>
>>  void Algorithm::Read([[maybe_unused]] boost::property_tree::ptree const &params)
>>  {
>> @@ -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;
>>  }
>> diff --git a/src/ipa/raspberrypi/controller/algorithm.hpp b/src/ipa/raspberrypi/controller/algorithm.hpp
>> index 187c50c6..6196b2f9 100644
>> --- a/src/ipa/raspberrypi/controller/algorithm.hpp
>> +++ b/src/ipa/raspberrypi/controller/algorithm.hpp
>> @@ -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
>> diff --git a/src/ipa/raspberrypi/controller/awb_algorithm.hpp b/src/ipa/raspberrypi/controller/awb_algorithm.hpp
>> index 22508ddd..5be0c9f4 100644
>> --- a/src/ipa/raspberrypi/controller/awb_algorithm.hpp
>> +++ b/src/ipa/raspberrypi/controller/awb_algorithm.hpp
>> @@ -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
>> diff --git a/src/ipa/raspberrypi/controller/ccm_algorithm.hpp b/src/ipa/raspberrypi/controller/ccm_algorithm.hpp
>> index 21806cb0..33d0e30d 100644
>> --- a/src/ipa/raspberrypi/controller/ccm_algorithm.hpp
>> +++ b/src/ipa/raspberrypi/controller/ccm_algorithm.hpp
>> @@ -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
>> diff --git a/src/ipa/raspberrypi/controller/contrast_algorithm.hpp b/src/ipa/raspberrypi/controller/contrast_algorithm.hpp
>> index 9780322b..7f03bba5 100644
>> --- a/src/ipa/raspberrypi/controller/contrast_algorithm.hpp
>> +++ b/src/ipa/raspberrypi/controller/contrast_algorithm.hpp
>> @@ -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
>> diff --git a/src/ipa/raspberrypi/controller/controller.cpp b/src/ipa/raspberrypi/controller/controller.cpp
>> index 7c4b04fe..22461cc4 100644
>> --- a/src/ipa/raspberrypi/controller/controller.cpp
>> +++ b/src/ipa/raspberrypi/controller/controller.cpp
>> @@ -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) {}
>> diff --git a/src/ipa/raspberrypi/controller/controller.hpp b/src/ipa/raspberrypi/controller/controller.hpp
>> index 6ba9412b..49b1a551 100644
>> --- a/src/ipa/raspberrypi/controller/controller.hpp
>> +++ b/src/ipa/raspberrypi/controller/controller.hpp
>> @@ -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
>> diff --git a/src/ipa/raspberrypi/controller/histogram.cpp b/src/ipa/raspberrypi/controller/histogram.cpp
>> index 103d3f60..9916b3ed 100644
>> --- a/src/ipa/raspberrypi/controller/histogram.cpp
>> +++ b/src/ipa/raspberrypi/controller/histogram.cpp
>> @@ -9,7 +9,7 @@
>>
>>  #include "histogram.hpp"
>>
>> -using namespace RPi;
>> +using namespace RPiController;
>>
>>  uint64_t Histogram::CumulativeFreq(double bin) const
>>  {
>> diff --git a/src/ipa/raspberrypi/controller/histogram.hpp b/src/ipa/raspberrypi/controller/histogram.hpp
>> index 06fc3aa7..90f5ac78 100644
>> --- a/src/ipa/raspberrypi/controller/histogram.hpp
>> +++ b/src/ipa/raspberrypi/controller/histogram.hpp
>> @@ -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
>> diff --git a/src/ipa/raspberrypi/controller/metadata.hpp b/src/ipa/raspberrypi/controller/metadata.hpp
>> index 1d7624a0..f3a8dfab 100644
>> --- a/src/ipa/raspberrypi/controller/metadata.hpp
>> +++ b/src/ipa/raspberrypi/controller/metadata.hpp
>> @@ -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
>> diff --git a/src/ipa/raspberrypi/controller/pwl.cpp b/src/ipa/raspberrypi/controller/pwl.cpp
>> index 7e11d8f3..aa134a1f 100644
>> --- a/src/ipa/raspberrypi/controller/pwl.cpp
>> +++ b/src/ipa/raspberrypi/controller/pwl.cpp
>> @@ -10,7 +10,7 @@
>>
>>  #include "pwl.hpp"
>>
>> -using namespace RPi;
>> +using namespace RPiController;
>>
>>  void Pwl::Read(boost::property_tree::ptree const &params)
>>  {
>> diff --git a/src/ipa/raspberrypi/controller/pwl.hpp b/src/ipa/raspberrypi/controller/pwl.hpp
>> index bd7c7668..4f168551 100644
>> --- a/src/ipa/raspberrypi/controller/pwl.hpp
>> +++ b/src/ipa/raspberrypi/controller/pwl.hpp
>> @@ -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
>> diff --git a/src/ipa/raspberrypi/controller/rpi/agc.cpp b/src/ipa/raspberrypi/controller/rpi/agc.cpp
>> index 3573f36b..df4d3647 100644
>> --- a/src/ipa/raspberrypi/controller/rpi/agc.cpp
>> +++ b/src/ipa/raspberrypi/controller/rpi/agc.cpp
>> @@ -18,7 +18,7 @@
>>
>>  #include "agc.hpp"
>>
>> -using namespace RPi;
>> +using namespace RPiController;
>>
>>  #define NAME "rpi.agc"
>>
>> diff --git a/src/ipa/raspberrypi/controller/rpi/agc.hpp b/src/ipa/raspberrypi/controller/rpi/agc.hpp
>> index 9a7e89c1..ba7ae092 100644
>> --- a/src/ipa/raspberrypi/controller/rpi/agc.hpp
>> +++ b/src/ipa/raspberrypi/controller/rpi/agc.hpp
>> @@ -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
>> diff --git a/src/ipa/raspberrypi/controller/rpi/alsc.cpp b/src/ipa/raspberrypi/controller/rpi/alsc.cpp
>> index 0d0e0b0c..49e60b98 100644
>> --- a/src/ipa/raspberrypi/controller/rpi/alsc.cpp
>> +++ b/src/ipa/raspberrypi/controller/rpi/alsc.cpp
>> @@ -11,7 +11,7 @@
>>
>>  // Raspberry Pi ALSC (Auto Lens Shading Correction) algorithm.
>>
>> -using namespace RPi;
>> +using namespace RPiController;
>>
>>  #define NAME "rpi.alsc"
>>
>> diff --git a/src/ipa/raspberrypi/controller/rpi/alsc.hpp b/src/ipa/raspberrypi/controller/rpi/alsc.hpp
>> index 95572af0..13d1ba54 100644
>> --- a/src/ipa/raspberrypi/controller/rpi/alsc.hpp
>> +++ b/src/ipa/raspberrypi/controller/rpi/alsc.hpp
>> @@ -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
>> diff --git a/src/ipa/raspberrypi/controller/rpi/awb.cpp b/src/ipa/raspberrypi/controller/rpi/awb.cpp
>> index a58fa11d..a5536e47 100644
>> --- a/src/ipa/raspberrypi/controller/rpi/awb.cpp
>> +++ b/src/ipa/raspberrypi/controller/rpi/awb.cpp
>> @@ -10,7 +10,7 @@
>>
>>  #include "awb.hpp"
>>
>> -using namespace RPi;
>> +using namespace RPiController;
>>
>>  #define NAME "rpi.awb"
>>
>> diff --git a/src/ipa/raspberrypi/controller/rpi/awb.hpp b/src/ipa/raspberrypi/controller/rpi/awb.hpp
>> index 36925252..9124d042 100644
>> --- a/src/ipa/raspberrypi/controller/rpi/awb.hpp
>> +++ b/src/ipa/raspberrypi/controller/rpi/awb.hpp
>> @@ -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
>> diff --git a/src/ipa/raspberrypi/controller/rpi/black_level.cpp b/src/ipa/raspberrypi/controller/rpi/black_level.cpp
>> index 59c9f5a6..0629b77c 100644
>> --- a/src/ipa/raspberrypi/controller/rpi/black_level.cpp
>> +++ b/src/ipa/raspberrypi/controller/rpi/black_level.cpp
>> @@ -13,7 +13,7 @@
>>
>>  #include "black_level.hpp"
>>
>> -using namespace RPi;
>> +using namespace RPiController;
>>
>>  #define NAME "rpi.black_level"
>>
>> diff --git a/src/ipa/raspberrypi/controller/rpi/black_level.hpp b/src/ipa/raspberrypi/controller/rpi/black_level.hpp
>> index 5d74c6da..65ec4d0e 100644
>> --- a/src/ipa/raspberrypi/controller/rpi/black_level.hpp
>> +++ b/src/ipa/raspberrypi/controller/rpi/black_level.hpp
>> @@ -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
>> diff --git a/src/ipa/raspberrypi/controller/rpi/ccm.cpp b/src/ipa/raspberrypi/controller/rpi/ccm.cpp
>> index 327cb71c..a8a2caff 100644
>> --- a/src/ipa/raspberrypi/controller/rpi/ccm.cpp
>> +++ b/src/ipa/raspberrypi/controller/rpi/ccm.cpp
>> @@ -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
>> diff --git a/src/ipa/raspberrypi/controller/rpi/ccm.hpp b/src/ipa/raspberrypi/controller/rpi/ccm.hpp
>> index f6f4dee1..fcf077e7 100644
>> --- a/src/ipa/raspberrypi/controller/rpi/ccm.hpp
>> +++ b/src/ipa/raspberrypi/controller/rpi/ccm.hpp
>> @@ -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
>> diff --git a/src/ipa/raspberrypi/controller/rpi/contrast.cpp b/src/ipa/raspberrypi/controller/rpi/contrast.cpp
>> index c8d9ab61..103153db 100644
>> --- a/src/ipa/raspberrypi/controller/rpi/contrast.cpp
>> +++ b/src/ipa/raspberrypi/controller/rpi/contrast.cpp
>> @@ -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
>> diff --git a/src/ipa/raspberrypi/controller/rpi/contrast.hpp b/src/ipa/raspberrypi/controller/rpi/contrast.hpp
>> index 2e38a762..6836f181 100644
>> --- a/src/ipa/raspberrypi/controller/rpi/contrast.hpp
>> +++ b/src/ipa/raspberrypi/controller/rpi/contrast.hpp
>> @@ -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
>> diff --git a/src/ipa/raspberrypi/controller/rpi/dpc.cpp b/src/ipa/raspberrypi/controller/rpi/dpc.cpp
>> index d31fae97..348e1609 100644
>> --- a/src/ipa/raspberrypi/controller/rpi/dpc.cpp
>> +++ b/src/ipa/raspberrypi/controller/rpi/dpc.cpp
>> @@ -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).
>> diff --git a/src/ipa/raspberrypi/controller/rpi/dpc.hpp b/src/ipa/raspberrypi/controller/rpi/dpc.hpp
>> index 9fb72867..d90285c4 100644
>> --- a/src/ipa/raspberrypi/controller/rpi/dpc.hpp
>> +++ b/src/ipa/raspberrypi/controller/rpi/dpc.hpp
>> @@ -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
>> diff --git a/src/ipa/raspberrypi/controller/rpi/focus.cpp b/src/ipa/raspberrypi/controller/rpi/focus.cpp
>> index ffe44362..bab4406f 100644
>> --- a/src/ipa/raspberrypi/controller/rpi/focus.cpp
>> +++ b/src/ipa/raspberrypi/controller/rpi/focus.cpp
>> @@ -11,7 +11,7 @@
>>  #include "../focus_status.h"
>>  #include "focus.hpp"
>>
>> -using namespace RPi;
>> +using namespace RPiController;
>>  using namespace libcamera;
>>
>>  LOG_DEFINE_CATEGORY(RPiFocus)
>> diff --git a/src/ipa/raspberrypi/controller/rpi/focus.hpp b/src/ipa/raspberrypi/controller/rpi/focus.hpp
>> index a9756ea7..131b1d0f 100644
>> --- a/src/ipa/raspberrypi/controller/rpi/focus.hpp
>> +++ b/src/ipa/raspberrypi/controller/rpi/focus.hpp
>> @@ -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 */
>> diff --git a/src/ipa/raspberrypi/controller/rpi/geq.cpp b/src/ipa/raspberrypi/controller/rpi/geq.cpp
>> index ee0cb95d..b6c98414 100644
>> --- a/src/ipa/raspberrypi/controller/rpi/geq.cpp
>> +++ b/src/ipa/raspberrypi/controller/rpi/geq.cpp
>> @@ -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).
>> diff --git a/src/ipa/raspberrypi/controller/rpi/geq.hpp b/src/ipa/raspberrypi/controller/rpi/geq.hpp
>> index 7d4bd38d..8ba3046b 100644
>> --- a/src/ipa/raspberrypi/controller/rpi/geq.hpp
>> +++ b/src/ipa/raspberrypi/controller/rpi/geq.hpp
>> @@ -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
>> diff --git a/src/ipa/raspberrypi/controller/rpi/lux.cpp b/src/ipa/raspberrypi/controller/rpi/lux.cpp
>> index 154db153..5acd49a0 100644
>> --- a/src/ipa/raspberrypi/controller/rpi/lux.cpp
>> +++ b/src/ipa/raspberrypi/controller/rpi/lux.cpp
>> @@ -13,7 +13,7 @@
>>
>>  #include "lux.hpp"
>>
>> -using namespace RPi;
>> +using namespace RPiController;
>>
>>  #define NAME "rpi.lux"
>>
>> diff --git a/src/ipa/raspberrypi/controller/rpi/lux.hpp b/src/ipa/raspberrypi/controller/rpi/lux.hpp
>> index eb935409..7b6c7258 100644
>> --- a/src/ipa/raspberrypi/controller/rpi/lux.hpp
>> +++ b/src/ipa/raspberrypi/controller/rpi/lux.hpp
>> @@ -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
>> diff --git a/src/ipa/raspberrypi/controller/rpi/noise.cpp b/src/ipa/raspberrypi/controller/rpi/noise.cpp
>> index 1b84ecb0..9e9eaf1b 100644
>> --- a/src/ipa/raspberrypi/controller/rpi/noise.cpp
>> +++ b/src/ipa/raspberrypi/controller/rpi/noise.cpp
>> @@ -13,7 +13,7 @@
>>
>>  #include "noise.hpp"
>>
>> -using namespace RPi;
>> +using namespace RPiController;
>>
>>  #define NAME "rpi.noise"
>>
>> diff --git a/src/ipa/raspberrypi/controller/rpi/noise.hpp b/src/ipa/raspberrypi/controller/rpi/noise.hpp
>> index 25bf1885..6f6e0be9 100644
>> --- a/src/ipa/raspberrypi/controller/rpi/noise.hpp
>> +++ b/src/ipa/raspberrypi/controller/rpi/noise.hpp
>> @@ -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
>> diff --git a/src/ipa/raspberrypi/controller/rpi/sdn.cpp b/src/ipa/raspberrypi/controller/rpi/sdn.cpp
>> index 28d9d983..aa82830b 100644
>> --- a/src/ipa/raspberrypi/controller/rpi/sdn.cpp
>> +++ b/src/ipa/raspberrypi/controller/rpi/sdn.cpp
>> @@ -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.
>> diff --git a/src/ipa/raspberrypi/controller/rpi/sdn.hpp b/src/ipa/raspberrypi/controller/rpi/sdn.hpp
>> index d48aab7e..486c000d 100644
>> --- a/src/ipa/raspberrypi/controller/rpi/sdn.hpp
>> +++ b/src/ipa/raspberrypi/controller/rpi/sdn.hpp
>> @@ -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
>> diff --git a/src/ipa/raspberrypi/controller/rpi/sharpen.cpp b/src/ipa/raspberrypi/controller/rpi/sharpen.cpp
>> index 356c1058..c953a7d9 100644
>> --- a/src/ipa/raspberrypi/controller/rpi/sharpen.cpp
>> +++ b/src/ipa/raspberrypi/controller/rpi/sharpen.cpp
>> @@ -12,7 +12,7 @@
>>
>>  #include "sharpen.hpp"
>>
>> -using namespace RPi;
>> +using namespace RPiController;
>>
>>  #define NAME "rpi.sharpen"
>>
>> diff --git a/src/ipa/raspberrypi/controller/rpi/sharpen.hpp b/src/ipa/raspberrypi/controller/rpi/sharpen.hpp
>> index 568521b9..13a076a8 100644
>> --- a/src/ipa/raspberrypi/controller/rpi/sharpen.hpp
>> +++ b/src/ipa/raspberrypi/controller/rpi/sharpen.hpp
>> @@ -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
>> diff --git a/src/ipa/raspberrypi/controller/sharpen_algorithm.hpp b/src/ipa/raspberrypi/controller/sharpen_algorithm.hpp
>> index 3b27a745..ca800308 100644
>> --- a/src/ipa/raspberrypi/controller/sharpen_algorithm.hpp
>> +++ b/src/ipa/raspberrypi/controller/sharpen_algorithm.hpp
>> @@ -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
>> diff --git a/src/ipa/raspberrypi/md_parser.cpp b/src/ipa/raspberrypi/md_parser.cpp
>> index ca809aa2..d82c102c 100644
>> --- a/src/ipa/raspberrypi/md_parser.cpp
>> +++ b/src/ipa/raspberrypi/md_parser.cpp
>> @@ -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
>> diff --git a/src/ipa/raspberrypi/md_parser.hpp b/src/ipa/raspberrypi/md_parser.hpp
>> index 70d054b2..c9db62c0 100644
>> --- a/src/ipa/raspberrypi/md_parser.hpp
>> +++ b/src/ipa/raspberrypi/md_parser.hpp
>> @@ -50,7 +50,7 @@ parser->Reset();
>>
>>  before calling Parse again. */
>>
>> -namespace RPi {
>> +namespace RPiController {
>>
>>  // Abstract base class from which other metadata parsers are derived.
>>
>> diff --git a/src/ipa/raspberrypi/md_parser_rpi.cpp b/src/ipa/raspberrypi/md_parser_rpi.cpp
>> index a42b28f7..2b0bcfc5 100644
>> --- a/src/ipa/raspberrypi/md_parser_rpi.cpp
>> +++ b/src/ipa/raspberrypi/md_parser_rpi.cpp
>> @@ -9,7 +9,7 @@
>>
>>  #include "md_parser_rpi.hpp"
>>
>> -using namespace RPi;
>> +using namespace RPiController;
>>
>>  MdParserRPi::MdParserRPi()
>>  {
>> diff --git a/src/ipa/raspberrypi/md_parser_rpi.hpp b/src/ipa/raspberrypi/md_parser_rpi.hpp
>> index 1fa334f4..52f54f00 100644
>> --- a/src/ipa/raspberrypi/md_parser_rpi.hpp
>> +++ b/src/ipa/raspberrypi/md_parser_rpi.hpp
>> @@ -8,7 +8,7 @@
>>
>>  #include "md_parser.hpp"
>>
>> -namespace RPi {
>> +namespace RPiController {
>>
>>  class MdParserRPi : public MdParser
>>  {
>> diff --git a/src/ipa/raspberrypi/raspberrypi.cpp b/src/ipa/raspberrypi/raspberrypi.cpp
>> index 28f81824..0c0dc743 100644
>> --- a/src/ipa/raspberrypi/raspberrypi.cpp
>> +++ b/src/ipa/raspberrypi/raspberrypi.cpp
>> @@ -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;
>> --
>> 2.25.1
>>
>> _______________________________________________
>> libcamera-devel mailing list
>> libcamera-devel@lists.libcamera.org
>> https://lists.libcamera.org/listinfo/libcamera-devel
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel@lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel
>

Patch

diff --git a/src/ipa/raspberrypi/cam_helper.cpp b/src/ipa/raspberrypi/cam_helper.cpp
index b1343eb2..c8ac3232 100644
--- a/src/ipa/raspberrypi/cam_helper.cpp
+++ b/src/ipa/raspberrypi/cam_helper.cpp
@@ -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;
 
diff --git a/src/ipa/raspberrypi/cam_helper.hpp b/src/ipa/raspberrypi/cam_helper.hpp
index 97ce3e92..044c2866 100644
--- a/src/ipa/raspberrypi/cam_helper.hpp
+++ b/src/ipa/raspberrypi/cam_helper.hpp
@@ -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
diff --git a/src/ipa/raspberrypi/cam_helper_imx219.cpp b/src/ipa/raspberrypi/cam_helper_imx219.cpp
index 1b9ce382..db8ab879 100644
--- a/src/ipa/raspberrypi/cam_helper_imx219.cpp
+++ b/src/ipa/raspberrypi/cam_helper_imx219.cpp
@@ -23,7 +23,7 @@ 
 #include "md_parser_rpi.hpp"
 #endif
 
-using namespace RPi;
+using namespace RPiController;
 
 /* Metadata parser implementation specific to Sony IMX219 sensors. */
 
diff --git a/src/ipa/raspberrypi/cam_helper_imx477.cpp b/src/ipa/raspberrypi/cam_helper_imx477.cpp
index a53b47c0..0e896ac7 100644
--- a/src/ipa/raspberrypi/cam_helper_imx477.cpp
+++ b/src/ipa/raspberrypi/cam_helper_imx477.cpp
@@ -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. */
 
diff --git a/src/ipa/raspberrypi/cam_helper_ov5647.cpp b/src/ipa/raspberrypi/cam_helper_ov5647.cpp
index 3dbcb164..dc5d8275 100644
--- a/src/ipa/raspberrypi/cam_helper_ov5647.cpp
+++ b/src/ipa/raspberrypi/cam_helper_ov5647.cpp
@@ -10,7 +10,7 @@ 
 #include "cam_helper.hpp"
 #include "md_parser_rpi.hpp"
 
-using namespace RPi;
+using namespace RPiController;
 
 class CamHelperOv5647 : public CamHelper
 {
diff --git a/src/ipa/raspberrypi/controller/agc_algorithm.hpp b/src/ipa/raspberrypi/controller/agc_algorithm.hpp
index f29bb3ac..b4ea54fb 100644
--- a/src/ipa/raspberrypi/controller/agc_algorithm.hpp
+++ b/src/ipa/raspberrypi/controller/agc_algorithm.hpp
@@ -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
diff --git a/src/ipa/raspberrypi/controller/algorithm.cpp b/src/ipa/raspberrypi/controller/algorithm.cpp
index 1b80e296..43ad0a2b 100644
--- a/src/ipa/raspberrypi/controller/algorithm.cpp
+++ b/src/ipa/raspberrypi/controller/algorithm.cpp
@@ -7,7 +7,7 @@ 
 
 #include "algorithm.hpp"
 
-using namespace RPi;
+using namespace RPiController;
 
 void Algorithm::Read([[maybe_unused]] boost::property_tree::ptree const &params)
 {
@@ -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;
 }
diff --git a/src/ipa/raspberrypi/controller/algorithm.hpp b/src/ipa/raspberrypi/controller/algorithm.hpp
index 187c50c6..6196b2f9 100644
--- a/src/ipa/raspberrypi/controller/algorithm.hpp
+++ b/src/ipa/raspberrypi/controller/algorithm.hpp
@@ -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
diff --git a/src/ipa/raspberrypi/controller/awb_algorithm.hpp b/src/ipa/raspberrypi/controller/awb_algorithm.hpp
index 22508ddd..5be0c9f4 100644
--- a/src/ipa/raspberrypi/controller/awb_algorithm.hpp
+++ b/src/ipa/raspberrypi/controller/awb_algorithm.hpp
@@ -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
diff --git a/src/ipa/raspberrypi/controller/ccm_algorithm.hpp b/src/ipa/raspberrypi/controller/ccm_algorithm.hpp
index 21806cb0..33d0e30d 100644
--- a/src/ipa/raspberrypi/controller/ccm_algorithm.hpp
+++ b/src/ipa/raspberrypi/controller/ccm_algorithm.hpp
@@ -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
diff --git a/src/ipa/raspberrypi/controller/contrast_algorithm.hpp b/src/ipa/raspberrypi/controller/contrast_algorithm.hpp
index 9780322b..7f03bba5 100644
--- a/src/ipa/raspberrypi/controller/contrast_algorithm.hpp
+++ b/src/ipa/raspberrypi/controller/contrast_algorithm.hpp
@@ -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
diff --git a/src/ipa/raspberrypi/controller/controller.cpp b/src/ipa/raspberrypi/controller/controller.cpp
index 7c4b04fe..22461cc4 100644
--- a/src/ipa/raspberrypi/controller/controller.cpp
+++ b/src/ipa/raspberrypi/controller/controller.cpp
@@ -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) {}
diff --git a/src/ipa/raspberrypi/controller/controller.hpp b/src/ipa/raspberrypi/controller/controller.hpp
index 6ba9412b..49b1a551 100644
--- a/src/ipa/raspberrypi/controller/controller.hpp
+++ b/src/ipa/raspberrypi/controller/controller.hpp
@@ -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
diff --git a/src/ipa/raspberrypi/controller/histogram.cpp b/src/ipa/raspberrypi/controller/histogram.cpp
index 103d3f60..9916b3ed 100644
--- a/src/ipa/raspberrypi/controller/histogram.cpp
+++ b/src/ipa/raspberrypi/controller/histogram.cpp
@@ -9,7 +9,7 @@ 
 
 #include "histogram.hpp"
 
-using namespace RPi;
+using namespace RPiController;
 
 uint64_t Histogram::CumulativeFreq(double bin) const
 {
diff --git a/src/ipa/raspberrypi/controller/histogram.hpp b/src/ipa/raspberrypi/controller/histogram.hpp
index 06fc3aa7..90f5ac78 100644
--- a/src/ipa/raspberrypi/controller/histogram.hpp
+++ b/src/ipa/raspberrypi/controller/histogram.hpp
@@ -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
diff --git a/src/ipa/raspberrypi/controller/metadata.hpp b/src/ipa/raspberrypi/controller/metadata.hpp
index 1d7624a0..f3a8dfab 100644
--- a/src/ipa/raspberrypi/controller/metadata.hpp
+++ b/src/ipa/raspberrypi/controller/metadata.hpp
@@ -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
diff --git a/src/ipa/raspberrypi/controller/pwl.cpp b/src/ipa/raspberrypi/controller/pwl.cpp
index 7e11d8f3..aa134a1f 100644
--- a/src/ipa/raspberrypi/controller/pwl.cpp
+++ b/src/ipa/raspberrypi/controller/pwl.cpp
@@ -10,7 +10,7 @@ 
 
 #include "pwl.hpp"
 
-using namespace RPi;
+using namespace RPiController;
 
 void Pwl::Read(boost::property_tree::ptree const &params)
 {
diff --git a/src/ipa/raspberrypi/controller/pwl.hpp b/src/ipa/raspberrypi/controller/pwl.hpp
index bd7c7668..4f168551 100644
--- a/src/ipa/raspberrypi/controller/pwl.hpp
+++ b/src/ipa/raspberrypi/controller/pwl.hpp
@@ -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
diff --git a/src/ipa/raspberrypi/controller/rpi/agc.cpp b/src/ipa/raspberrypi/controller/rpi/agc.cpp
index 3573f36b..df4d3647 100644
--- a/src/ipa/raspberrypi/controller/rpi/agc.cpp
+++ b/src/ipa/raspberrypi/controller/rpi/agc.cpp
@@ -18,7 +18,7 @@ 
 
 #include "agc.hpp"
 
-using namespace RPi;
+using namespace RPiController;
 
 #define NAME "rpi.agc"
 
diff --git a/src/ipa/raspberrypi/controller/rpi/agc.hpp b/src/ipa/raspberrypi/controller/rpi/agc.hpp
index 9a7e89c1..ba7ae092 100644
--- a/src/ipa/raspberrypi/controller/rpi/agc.hpp
+++ b/src/ipa/raspberrypi/controller/rpi/agc.hpp
@@ -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
diff --git a/src/ipa/raspberrypi/controller/rpi/alsc.cpp b/src/ipa/raspberrypi/controller/rpi/alsc.cpp
index 0d0e0b0c..49e60b98 100644
--- a/src/ipa/raspberrypi/controller/rpi/alsc.cpp
+++ b/src/ipa/raspberrypi/controller/rpi/alsc.cpp
@@ -11,7 +11,7 @@ 
 
 // Raspberry Pi ALSC (Auto Lens Shading Correction) algorithm.
 
-using namespace RPi;
+using namespace RPiController;
 
 #define NAME "rpi.alsc"
 
diff --git a/src/ipa/raspberrypi/controller/rpi/alsc.hpp b/src/ipa/raspberrypi/controller/rpi/alsc.hpp
index 95572af0..13d1ba54 100644
--- a/src/ipa/raspberrypi/controller/rpi/alsc.hpp
+++ b/src/ipa/raspberrypi/controller/rpi/alsc.hpp
@@ -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
diff --git a/src/ipa/raspberrypi/controller/rpi/awb.cpp b/src/ipa/raspberrypi/controller/rpi/awb.cpp
index a58fa11d..a5536e47 100644
--- a/src/ipa/raspberrypi/controller/rpi/awb.cpp
+++ b/src/ipa/raspberrypi/controller/rpi/awb.cpp
@@ -10,7 +10,7 @@ 
 
 #include "awb.hpp"
 
-using namespace RPi;
+using namespace RPiController;
 
 #define NAME "rpi.awb"
 
diff --git a/src/ipa/raspberrypi/controller/rpi/awb.hpp b/src/ipa/raspberrypi/controller/rpi/awb.hpp
index 36925252..9124d042 100644
--- a/src/ipa/raspberrypi/controller/rpi/awb.hpp
+++ b/src/ipa/raspberrypi/controller/rpi/awb.hpp
@@ -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
diff --git a/src/ipa/raspberrypi/controller/rpi/black_level.cpp b/src/ipa/raspberrypi/controller/rpi/black_level.cpp
index 59c9f5a6..0629b77c 100644
--- a/src/ipa/raspberrypi/controller/rpi/black_level.cpp
+++ b/src/ipa/raspberrypi/controller/rpi/black_level.cpp
@@ -13,7 +13,7 @@ 
 
 #include "black_level.hpp"
 
-using namespace RPi;
+using namespace RPiController;
 
 #define NAME "rpi.black_level"
 
diff --git a/src/ipa/raspberrypi/controller/rpi/black_level.hpp b/src/ipa/raspberrypi/controller/rpi/black_level.hpp
index 5d74c6da..65ec4d0e 100644
--- a/src/ipa/raspberrypi/controller/rpi/black_level.hpp
+++ b/src/ipa/raspberrypi/controller/rpi/black_level.hpp
@@ -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
diff --git a/src/ipa/raspberrypi/controller/rpi/ccm.cpp b/src/ipa/raspberrypi/controller/rpi/ccm.cpp
index 327cb71c..a8a2caff 100644
--- a/src/ipa/raspberrypi/controller/rpi/ccm.cpp
+++ b/src/ipa/raspberrypi/controller/rpi/ccm.cpp
@@ -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
diff --git a/src/ipa/raspberrypi/controller/rpi/ccm.hpp b/src/ipa/raspberrypi/controller/rpi/ccm.hpp
index f6f4dee1..fcf077e7 100644
--- a/src/ipa/raspberrypi/controller/rpi/ccm.hpp
+++ b/src/ipa/raspberrypi/controller/rpi/ccm.hpp
@@ -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
diff --git a/src/ipa/raspberrypi/controller/rpi/contrast.cpp b/src/ipa/raspberrypi/controller/rpi/contrast.cpp
index c8d9ab61..103153db 100644
--- a/src/ipa/raspberrypi/controller/rpi/contrast.cpp
+++ b/src/ipa/raspberrypi/controller/rpi/contrast.cpp
@@ -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
diff --git a/src/ipa/raspberrypi/controller/rpi/contrast.hpp b/src/ipa/raspberrypi/controller/rpi/contrast.hpp
index 2e38a762..6836f181 100644
--- a/src/ipa/raspberrypi/controller/rpi/contrast.hpp
+++ b/src/ipa/raspberrypi/controller/rpi/contrast.hpp
@@ -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
diff --git a/src/ipa/raspberrypi/controller/rpi/dpc.cpp b/src/ipa/raspberrypi/controller/rpi/dpc.cpp
index d31fae97..348e1609 100644
--- a/src/ipa/raspberrypi/controller/rpi/dpc.cpp
+++ b/src/ipa/raspberrypi/controller/rpi/dpc.cpp
@@ -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).
diff --git a/src/ipa/raspberrypi/controller/rpi/dpc.hpp b/src/ipa/raspberrypi/controller/rpi/dpc.hpp
index 9fb72867..d90285c4 100644
--- a/src/ipa/raspberrypi/controller/rpi/dpc.hpp
+++ b/src/ipa/raspberrypi/controller/rpi/dpc.hpp
@@ -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
diff --git a/src/ipa/raspberrypi/controller/rpi/focus.cpp b/src/ipa/raspberrypi/controller/rpi/focus.cpp
index ffe44362..bab4406f 100644
--- a/src/ipa/raspberrypi/controller/rpi/focus.cpp
+++ b/src/ipa/raspberrypi/controller/rpi/focus.cpp
@@ -11,7 +11,7 @@ 
 #include "../focus_status.h"
 #include "focus.hpp"
 
-using namespace RPi;
+using namespace RPiController;
 using namespace libcamera;
 
 LOG_DEFINE_CATEGORY(RPiFocus)
diff --git a/src/ipa/raspberrypi/controller/rpi/focus.hpp b/src/ipa/raspberrypi/controller/rpi/focus.hpp
index a9756ea7..131b1d0f 100644
--- a/src/ipa/raspberrypi/controller/rpi/focus.hpp
+++ b/src/ipa/raspberrypi/controller/rpi/focus.hpp
@@ -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 */
diff --git a/src/ipa/raspberrypi/controller/rpi/geq.cpp b/src/ipa/raspberrypi/controller/rpi/geq.cpp
index ee0cb95d..b6c98414 100644
--- a/src/ipa/raspberrypi/controller/rpi/geq.cpp
+++ b/src/ipa/raspberrypi/controller/rpi/geq.cpp
@@ -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).
diff --git a/src/ipa/raspberrypi/controller/rpi/geq.hpp b/src/ipa/raspberrypi/controller/rpi/geq.hpp
index 7d4bd38d..8ba3046b 100644
--- a/src/ipa/raspberrypi/controller/rpi/geq.hpp
+++ b/src/ipa/raspberrypi/controller/rpi/geq.hpp
@@ -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
diff --git a/src/ipa/raspberrypi/controller/rpi/lux.cpp b/src/ipa/raspberrypi/controller/rpi/lux.cpp
index 154db153..5acd49a0 100644
--- a/src/ipa/raspberrypi/controller/rpi/lux.cpp
+++ b/src/ipa/raspberrypi/controller/rpi/lux.cpp
@@ -13,7 +13,7 @@ 
 
 #include "lux.hpp"
 
-using namespace RPi;
+using namespace RPiController;
 
 #define NAME "rpi.lux"
 
diff --git a/src/ipa/raspberrypi/controller/rpi/lux.hpp b/src/ipa/raspberrypi/controller/rpi/lux.hpp
index eb935409..7b6c7258 100644
--- a/src/ipa/raspberrypi/controller/rpi/lux.hpp
+++ b/src/ipa/raspberrypi/controller/rpi/lux.hpp
@@ -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
diff --git a/src/ipa/raspberrypi/controller/rpi/noise.cpp b/src/ipa/raspberrypi/controller/rpi/noise.cpp
index 1b84ecb0..9e9eaf1b 100644
--- a/src/ipa/raspberrypi/controller/rpi/noise.cpp
+++ b/src/ipa/raspberrypi/controller/rpi/noise.cpp
@@ -13,7 +13,7 @@ 
 
 #include "noise.hpp"
 
-using namespace RPi;
+using namespace RPiController;
 
 #define NAME "rpi.noise"
 
diff --git a/src/ipa/raspberrypi/controller/rpi/noise.hpp b/src/ipa/raspberrypi/controller/rpi/noise.hpp
index 25bf1885..6f6e0be9 100644
--- a/src/ipa/raspberrypi/controller/rpi/noise.hpp
+++ b/src/ipa/raspberrypi/controller/rpi/noise.hpp
@@ -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
diff --git a/src/ipa/raspberrypi/controller/rpi/sdn.cpp b/src/ipa/raspberrypi/controller/rpi/sdn.cpp
index 28d9d983..aa82830b 100644
--- a/src/ipa/raspberrypi/controller/rpi/sdn.cpp
+++ b/src/ipa/raspberrypi/controller/rpi/sdn.cpp
@@ -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.
diff --git a/src/ipa/raspberrypi/controller/rpi/sdn.hpp b/src/ipa/raspberrypi/controller/rpi/sdn.hpp
index d48aab7e..486c000d 100644
--- a/src/ipa/raspberrypi/controller/rpi/sdn.hpp
+++ b/src/ipa/raspberrypi/controller/rpi/sdn.hpp
@@ -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
diff --git a/src/ipa/raspberrypi/controller/rpi/sharpen.cpp b/src/ipa/raspberrypi/controller/rpi/sharpen.cpp
index 356c1058..c953a7d9 100644
--- a/src/ipa/raspberrypi/controller/rpi/sharpen.cpp
+++ b/src/ipa/raspberrypi/controller/rpi/sharpen.cpp
@@ -12,7 +12,7 @@ 
 
 #include "sharpen.hpp"
 
-using namespace RPi;
+using namespace RPiController;
 
 #define NAME "rpi.sharpen"
 
diff --git a/src/ipa/raspberrypi/controller/rpi/sharpen.hpp b/src/ipa/raspberrypi/controller/rpi/sharpen.hpp
index 568521b9..13a076a8 100644
--- a/src/ipa/raspberrypi/controller/rpi/sharpen.hpp
+++ b/src/ipa/raspberrypi/controller/rpi/sharpen.hpp
@@ -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
diff --git a/src/ipa/raspberrypi/controller/sharpen_algorithm.hpp b/src/ipa/raspberrypi/controller/sharpen_algorithm.hpp
index 3b27a745..ca800308 100644
--- a/src/ipa/raspberrypi/controller/sharpen_algorithm.hpp
+++ b/src/ipa/raspberrypi/controller/sharpen_algorithm.hpp
@@ -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
diff --git a/src/ipa/raspberrypi/md_parser.cpp b/src/ipa/raspberrypi/md_parser.cpp
index ca809aa2..d82c102c 100644
--- a/src/ipa/raspberrypi/md_parser.cpp
+++ b/src/ipa/raspberrypi/md_parser.cpp
@@ -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
diff --git a/src/ipa/raspberrypi/md_parser.hpp b/src/ipa/raspberrypi/md_parser.hpp
index 70d054b2..c9db62c0 100644
--- a/src/ipa/raspberrypi/md_parser.hpp
+++ b/src/ipa/raspberrypi/md_parser.hpp
@@ -50,7 +50,7 @@  parser->Reset();
 
 before calling Parse again. */
 
-namespace RPi {
+namespace RPiController {
 
 // Abstract base class from which other metadata parsers are derived.
 
diff --git a/src/ipa/raspberrypi/md_parser_rpi.cpp b/src/ipa/raspberrypi/md_parser_rpi.cpp
index a42b28f7..2b0bcfc5 100644
--- a/src/ipa/raspberrypi/md_parser_rpi.cpp
+++ b/src/ipa/raspberrypi/md_parser_rpi.cpp
@@ -9,7 +9,7 @@ 
 
 #include "md_parser_rpi.hpp"
 
-using namespace RPi;
+using namespace RPiController;
 
 MdParserRPi::MdParserRPi()
 {
diff --git a/src/ipa/raspberrypi/md_parser_rpi.hpp b/src/ipa/raspberrypi/md_parser_rpi.hpp
index 1fa334f4..52f54f00 100644
--- a/src/ipa/raspberrypi/md_parser_rpi.hpp
+++ b/src/ipa/raspberrypi/md_parser_rpi.hpp
@@ -8,7 +8,7 @@ 
 
 #include "md_parser.hpp"
 
-namespace RPi {
+namespace RPiController {
 
 class MdParserRPi : public MdParser
 {
diff --git a/src/ipa/raspberrypi/raspberrypi.cpp b/src/ipa/raspberrypi/raspberrypi.cpp
index 28f81824..0c0dc743 100644
--- a/src/ipa/raspberrypi/raspberrypi.cpp
+++ b/src/ipa/raspberrypi/raspberrypi.cpp
@@ -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;