[{"id":12650,"web_url":"https://patchwork.libcamera.org/comment/12650/","msgid":"<20200923075801.nb7lpauiqekldaes@uno.localdomain>","date":"2020-09-23T07:58:01","subject":"Re: [libcamera-devel] [PATCH 3/4] ipa: raspberrypi: Rename the\n\tcontroller namespace from Rpi to RpiController","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Naush,\n\nOn Tue, Sep 22, 2020 at 10:50:17AM +0100, Naushir Patuck wrote:\n> This avoids a namespace clash with the RPi namespace used by the ipa and\n> pipeline handlers, and cleans up the syntax slightly.\n\nSo we'll have:\nlibcamera::RPi:: used by the pipeline handler and the IPA main module and\nRPiController:: used by the IPA main module and the controller library\n\nI wonder if we need a libcamera::IPA:: namespace...\n\nFor this patch\nReviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n\nThanks\n  j\n\n>\n> There are no functional changes in this commit.\n>\n> Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> ---\n>  src/ipa/raspberrypi/cam_helper.cpp            |  2 +-\n>  src/ipa/raspberrypi/cam_helper.hpp            |  2 +-\n>  src/ipa/raspberrypi/cam_helper_imx219.cpp     |  2 +-\n>  src/ipa/raspberrypi/cam_helper_imx477.cpp     |  2 +-\n>  src/ipa/raspberrypi/cam_helper_ov5647.cpp     |  2 +-\n>  .../raspberrypi/controller/agc_algorithm.hpp  |  4 +-\n>  src/ipa/raspberrypi/controller/algorithm.cpp  |  4 +-\n>  src/ipa/raspberrypi/controller/algorithm.hpp  |  4 +-\n>  .../raspberrypi/controller/awb_algorithm.hpp  |  4 +-\n>  .../raspberrypi/controller/ccm_algorithm.hpp  |  4 +-\n>  .../controller/contrast_algorithm.hpp         |  4 +-\n>  src/ipa/raspberrypi/controller/controller.cpp |  2 +-\n>  src/ipa/raspberrypi/controller/controller.hpp |  4 +-\n>  src/ipa/raspberrypi/controller/histogram.cpp  |  2 +-\n>  src/ipa/raspberrypi/controller/histogram.hpp  |  4 +-\n>  src/ipa/raspberrypi/controller/metadata.hpp   |  4 +-\n>  src/ipa/raspberrypi/controller/pwl.cpp        |  2 +-\n>  src/ipa/raspberrypi/controller/pwl.hpp        |  4 +-\n>  src/ipa/raspberrypi/controller/rpi/agc.cpp    |  2 +-\n>  src/ipa/raspberrypi/controller/rpi/agc.hpp    |  4 +-\n>  src/ipa/raspberrypi/controller/rpi/alsc.cpp   |  2 +-\n>  src/ipa/raspberrypi/controller/rpi/alsc.hpp   |  4 +-\n>  src/ipa/raspberrypi/controller/rpi/awb.cpp    |  2 +-\n>  src/ipa/raspberrypi/controller/rpi/awb.hpp    |  4 +-\n>  .../controller/rpi/black_level.cpp            |  2 +-\n>  .../controller/rpi/black_level.hpp            |  4 +-\n>  src/ipa/raspberrypi/controller/rpi/ccm.cpp    |  2 +-\n>  src/ipa/raspberrypi/controller/rpi/ccm.hpp    |  4 +-\n>  .../raspberrypi/controller/rpi/contrast.cpp   |  2 +-\n>  .../raspberrypi/controller/rpi/contrast.hpp   |  4 +-\n>  src/ipa/raspberrypi/controller/rpi/dpc.cpp    |  2 +-\n>  src/ipa/raspberrypi/controller/rpi/dpc.hpp    |  4 +-\n>  src/ipa/raspberrypi/controller/rpi/focus.cpp  |  2 +-\n>  src/ipa/raspberrypi/controller/rpi/focus.hpp  |  4 +-\n>  src/ipa/raspberrypi/controller/rpi/geq.cpp    |  2 +-\n>  src/ipa/raspberrypi/controller/rpi/geq.hpp    |  4 +-\n>  src/ipa/raspberrypi/controller/rpi/lux.cpp    |  2 +-\n>  src/ipa/raspberrypi/controller/rpi/lux.hpp    |  4 +-\n>  src/ipa/raspberrypi/controller/rpi/noise.cpp  |  2 +-\n>  src/ipa/raspberrypi/controller/rpi/noise.hpp  |  4 +-\n>  src/ipa/raspberrypi/controller/rpi/sdn.cpp    |  2 +-\n>  src/ipa/raspberrypi/controller/rpi/sdn.hpp    |  4 +-\n>  .../raspberrypi/controller/rpi/sharpen.cpp    |  2 +-\n>  .../raspberrypi/controller/rpi/sharpen.hpp    |  4 +-\n>  .../controller/sharpen_algorithm.hpp          |  4 +-\n>  src/ipa/raspberrypi/md_parser.cpp             |  2 +-\n>  src/ipa/raspberrypi/md_parser.hpp             |  2 +-\n>  src/ipa/raspberrypi/md_parser_rpi.cpp         |  2 +-\n>  src/ipa/raspberrypi/md_parser_rpi.hpp         |  2 +-\n>  src/ipa/raspberrypi/raspberrypi.cpp           | 52 +++++++++----------\n>  50 files changed, 99 insertions(+), 99 deletions(-)\n>\n> diff --git a/src/ipa/raspberrypi/cam_helper.cpp b/src/ipa/raspberrypi/cam_helper.cpp\n> index b1343eb2..c8ac3232 100644\n> --- a/src/ipa/raspberrypi/cam_helper.cpp\n> +++ b/src/ipa/raspberrypi/cam_helper.cpp\n> @@ -16,7 +16,7 @@\n>  #include \"cam_helper.hpp\"\n>  #include \"md_parser.hpp\"\n>\n> -using namespace RPi;\n> +using namespace RPiController;\n>\n>  static std::map<std::string, CamHelperCreateFunc> cam_helpers;\n>\n> diff --git a/src/ipa/raspberrypi/cam_helper.hpp b/src/ipa/raspberrypi/cam_helper.hpp\n> index 97ce3e92..044c2866 100644\n> --- a/src/ipa/raspberrypi/cam_helper.hpp\n> +++ b/src/ipa/raspberrypi/cam_helper.hpp\n> @@ -13,7 +13,7 @@\n>\n>  #include \"libcamera/internal/v4l2_videodevice.h\"\n>\n> -namespace RPi {\n> +namespace RPiController {\n>\n>  // The CamHelper class provides a number of facilities that anyone trying\n>  // trying to drive a camera will need to know, but which are not provided by\n> diff --git a/src/ipa/raspberrypi/cam_helper_imx219.cpp b/src/ipa/raspberrypi/cam_helper_imx219.cpp\n> index 1b9ce382..db8ab879 100644\n> --- a/src/ipa/raspberrypi/cam_helper_imx219.cpp\n> +++ b/src/ipa/raspberrypi/cam_helper_imx219.cpp\n> @@ -23,7 +23,7 @@\n>  #include \"md_parser_rpi.hpp\"\n>  #endif\n>\n> -using namespace RPi;\n> +using namespace RPiController;\n>\n>  /* Metadata parser implementation specific to Sony IMX219 sensors. */\n>\n> diff --git a/src/ipa/raspberrypi/cam_helper_imx477.cpp b/src/ipa/raspberrypi/cam_helper_imx477.cpp\n> index a53b47c0..0e896ac7 100644\n> --- a/src/ipa/raspberrypi/cam_helper_imx477.cpp\n> +++ b/src/ipa/raspberrypi/cam_helper_imx477.cpp\n> @@ -13,7 +13,7 @@\n>  #include \"cam_helper.hpp\"\n>  #include \"md_parser.hpp\"\n>\n> -using namespace RPi;\n> +using namespace RPiController;\n>\n>  /* Metadata parser implementation specific to Sony IMX477 sensors. */\n>\n> diff --git a/src/ipa/raspberrypi/cam_helper_ov5647.cpp b/src/ipa/raspberrypi/cam_helper_ov5647.cpp\n> index 3dbcb164..dc5d8275 100644\n> --- a/src/ipa/raspberrypi/cam_helper_ov5647.cpp\n> +++ b/src/ipa/raspberrypi/cam_helper_ov5647.cpp\n> @@ -10,7 +10,7 @@\n>  #include \"cam_helper.hpp\"\n>  #include \"md_parser_rpi.hpp\"\n>\n> -using namespace RPi;\n> +using namespace RPiController;\n>\n>  class CamHelperOv5647 : public CamHelper\n>  {\n> diff --git a/src/ipa/raspberrypi/controller/agc_algorithm.hpp b/src/ipa/raspberrypi/controller/agc_algorithm.hpp\n> index f29bb3ac..b4ea54fb 100644\n> --- a/src/ipa/raspberrypi/controller/agc_algorithm.hpp\n> +++ b/src/ipa/raspberrypi/controller/agc_algorithm.hpp\n> @@ -8,7 +8,7 @@\n>\n>  #include \"algorithm.hpp\"\n>\n> -namespace RPi {\n> +namespace RPiController {\n>\n>  class AgcAlgorithm : public Algorithm\n>  {\n> @@ -25,4 +25,4 @@ public:\n>  \tSetConstraintMode(std::string const &contraint_mode_name) = 0;\n>  };\n>\n> -} // namespace RPi\n> +} // namespace RPiController\n> diff --git a/src/ipa/raspberrypi/controller/algorithm.cpp b/src/ipa/raspberrypi/controller/algorithm.cpp\n> index 1b80e296..43ad0a2b 100644\n> --- a/src/ipa/raspberrypi/controller/algorithm.cpp\n> +++ b/src/ipa/raspberrypi/controller/algorithm.cpp\n> @@ -7,7 +7,7 @@\n>\n>  #include \"algorithm.hpp\"\n>\n> -using namespace RPi;\n> +using namespace RPiController;\n>\n>  void Algorithm::Read([[maybe_unused]] boost::property_tree::ptree const &params)\n>  {\n> @@ -32,7 +32,7 @@ void Algorithm::Process([[maybe_unused]] StatisticsPtr &stats,\n>  // For registering algorithms with the system:\n>\n>  static std::map<std::string, AlgoCreateFunc> algorithms;\n> -std::map<std::string, AlgoCreateFunc> const &RPi::GetAlgorithms()\n> +std::map<std::string, AlgoCreateFunc> const &RPiController::GetAlgorithms()\n>  {\n>  \treturn algorithms;\n>  }\n> diff --git a/src/ipa/raspberrypi/controller/algorithm.hpp b/src/ipa/raspberrypi/controller/algorithm.hpp\n> index 187c50c6..6196b2f9 100644\n> --- a/src/ipa/raspberrypi/controller/algorithm.hpp\n> +++ b/src/ipa/raspberrypi/controller/algorithm.hpp\n> @@ -19,7 +19,7 @@\n>\n>  #include <boost/property_tree/ptree.hpp>\n>\n> -namespace RPi {\n> +namespace RPiController {\n>\n>  // This defines the basic interface for all control algorithms.\n>\n> @@ -59,4 +59,4 @@ struct RegisterAlgorithm {\n>  };\n>  std::map<std::string, AlgoCreateFunc> const &GetAlgorithms();\n>\n> -} // namespace RPi\n> +} // namespace RPiController\n> diff --git a/src/ipa/raspberrypi/controller/awb_algorithm.hpp b/src/ipa/raspberrypi/controller/awb_algorithm.hpp\n> index 22508ddd..5be0c9f4 100644\n> --- a/src/ipa/raspberrypi/controller/awb_algorithm.hpp\n> +++ b/src/ipa/raspberrypi/controller/awb_algorithm.hpp\n> @@ -8,7 +8,7 @@\n>\n>  #include \"algorithm.hpp\"\n>\n> -namespace RPi {\n> +namespace RPiController {\n>\n>  class AwbAlgorithm : public Algorithm\n>  {\n> @@ -19,4 +19,4 @@ public:\n>  \tvirtual void SetManualGains(double manual_r, double manual_b) = 0;\n>  };\n>\n> -} // namespace RPi\n> +} // namespace RPiController\n> diff --git a/src/ipa/raspberrypi/controller/ccm_algorithm.hpp b/src/ipa/raspberrypi/controller/ccm_algorithm.hpp\n> index 21806cb0..33d0e30d 100644\n> --- a/src/ipa/raspberrypi/controller/ccm_algorithm.hpp\n> +++ b/src/ipa/raspberrypi/controller/ccm_algorithm.hpp\n> @@ -8,7 +8,7 @@\n>\n>  #include \"algorithm.hpp\"\n>\n> -namespace RPi {\n> +namespace RPiController {\n>\n>  class CcmAlgorithm : public Algorithm\n>  {\n> @@ -18,4 +18,4 @@ public:\n>  \tvirtual void SetSaturation(double saturation) = 0;\n>  };\n>\n> -} // namespace RPi\n> +} // namespace RPiController\n> diff --git a/src/ipa/raspberrypi/controller/contrast_algorithm.hpp b/src/ipa/raspberrypi/controller/contrast_algorithm.hpp\n> index 9780322b..7f03bba5 100644\n> --- a/src/ipa/raspberrypi/controller/contrast_algorithm.hpp\n> +++ b/src/ipa/raspberrypi/controller/contrast_algorithm.hpp\n> @@ -8,7 +8,7 @@\n>\n>  #include \"algorithm.hpp\"\n>\n> -namespace RPi {\n> +namespace RPiController {\n>\n>  class ContrastAlgorithm : public Algorithm\n>  {\n> @@ -19,4 +19,4 @@ public:\n>  \tvirtual void SetContrast(double contrast) = 0;\n>  };\n>\n> -} // namespace RPi\n> +} // namespace RPiController\n> diff --git a/src/ipa/raspberrypi/controller/controller.cpp b/src/ipa/raspberrypi/controller/controller.cpp\n> index 7c4b04fe..22461cc4 100644\n> --- a/src/ipa/raspberrypi/controller/controller.cpp\n> +++ b/src/ipa/raspberrypi/controller/controller.cpp\n> @@ -11,7 +11,7 @@\n>  #include <boost/property_tree/json_parser.hpp>\n>  #include <boost/property_tree/ptree.hpp>\n>\n> -using namespace RPi;\n> +using namespace RPiController;\n>\n>  Controller::Controller()\n>  \t: switch_mode_called_(false) {}\n> diff --git a/src/ipa/raspberrypi/controller/controller.hpp b/src/ipa/raspberrypi/controller/controller.hpp\n> index 6ba9412b..49b1a551 100644\n> --- a/src/ipa/raspberrypi/controller/controller.hpp\n> +++ b/src/ipa/raspberrypi/controller/controller.hpp\n> @@ -19,7 +19,7 @@\n>  #include \"device_status.h\"\n>  #include \"metadata.hpp\"\n>\n> -namespace RPi {\n> +namespace RPiController {\n>\n>  class Algorithm;\n>  typedef std::unique_ptr<Algorithm> AlgorithmPtr;\n> @@ -51,4 +51,4 @@ protected:\n>  \tbool switch_mode_called_;\n>  };\n>\n> -} // namespace RPi\n> +} // namespace RPiController\n> diff --git a/src/ipa/raspberrypi/controller/histogram.cpp b/src/ipa/raspberrypi/controller/histogram.cpp\n> index 103d3f60..9916b3ed 100644\n> --- a/src/ipa/raspberrypi/controller/histogram.cpp\n> +++ b/src/ipa/raspberrypi/controller/histogram.cpp\n> @@ -9,7 +9,7 @@\n>\n>  #include \"histogram.hpp\"\n>\n> -using namespace RPi;\n> +using namespace RPiController;\n>\n>  uint64_t Histogram::CumulativeFreq(double bin) const\n>  {\n> diff --git a/src/ipa/raspberrypi/controller/histogram.hpp b/src/ipa/raspberrypi/controller/histogram.hpp\n> index 06fc3aa7..90f5ac78 100644\n> --- a/src/ipa/raspberrypi/controller/histogram.hpp\n> +++ b/src/ipa/raspberrypi/controller/histogram.hpp\n> @@ -13,7 +13,7 @@\n>  // A simple histogram class, for use in particular to find \"quantiles\" and\n>  // averages between \"quantiles\".\n>\n> -namespace RPi {\n> +namespace RPiController {\n>\n>  class Histogram\n>  {\n> @@ -41,4 +41,4 @@ private:\n>  \tstd::vector<uint64_t> cumulative_;\n>  };\n>\n> -} // namespace RPi\n> +} // namespace RPiController\n> diff --git a/src/ipa/raspberrypi/controller/metadata.hpp b/src/ipa/raspberrypi/controller/metadata.hpp\n> index 1d7624a0..f3a8dfab 100644\n> --- a/src/ipa/raspberrypi/controller/metadata.hpp\n> +++ b/src/ipa/raspberrypi/controller/metadata.hpp\n> @@ -15,7 +15,7 @@\n>\n>  #include <boost/any.hpp>\n>\n> -namespace RPi {\n> +namespace RPiController {\n>\n>  class Metadata\n>  {\n> @@ -74,4 +74,4 @@ private:\n>\n>  typedef std::shared_ptr<Metadata> MetadataPtr;\n>\n> -} // namespace RPi\n> +} // namespace RPiController\n> diff --git a/src/ipa/raspberrypi/controller/pwl.cpp b/src/ipa/raspberrypi/controller/pwl.cpp\n> index 7e11d8f3..aa134a1f 100644\n> --- a/src/ipa/raspberrypi/controller/pwl.cpp\n> +++ b/src/ipa/raspberrypi/controller/pwl.cpp\n> @@ -10,7 +10,7 @@\n>\n>  #include \"pwl.hpp\"\n>\n> -using namespace RPi;\n> +using namespace RPiController;\n>\n>  void Pwl::Read(boost::property_tree::ptree const &params)\n>  {\n> diff --git a/src/ipa/raspberrypi/controller/pwl.hpp b/src/ipa/raspberrypi/controller/pwl.hpp\n> index bd7c7668..4f168551 100644\n> --- a/src/ipa/raspberrypi/controller/pwl.hpp\n> +++ b/src/ipa/raspberrypi/controller/pwl.hpp\n> @@ -11,7 +11,7 @@\n>\n>  #include <boost/property_tree/ptree.hpp>\n>\n> -namespace RPi {\n> +namespace RPiController {\n>\n>  class Pwl\n>  {\n> @@ -106,4 +106,4 @@ private:\n>  \tstd::vector<Point> points_;\n>  };\n>\n> -} // namespace RPi\n> +} // namespace RPiController\n> diff --git a/src/ipa/raspberrypi/controller/rpi/agc.cpp b/src/ipa/raspberrypi/controller/rpi/agc.cpp\n> index 3573f36b..df4d3647 100644\n> --- a/src/ipa/raspberrypi/controller/rpi/agc.cpp\n> +++ b/src/ipa/raspberrypi/controller/rpi/agc.cpp\n> @@ -18,7 +18,7 @@\n>\n>  #include \"agc.hpp\"\n>\n> -using namespace RPi;\n> +using namespace RPiController;\n>\n>  #define NAME \"rpi.agc\"\n>\n> diff --git a/src/ipa/raspberrypi/controller/rpi/agc.hpp b/src/ipa/raspberrypi/controller/rpi/agc.hpp\n> index 9a7e89c1..ba7ae092 100644\n> --- a/src/ipa/raspberrypi/controller/rpi/agc.hpp\n> +++ b/src/ipa/raspberrypi/controller/rpi/agc.hpp\n> @@ -20,7 +20,7 @@\n>\n>  #define AGC_STATS_SIZE 15\n>\n> -namespace RPi {\n> +namespace RPiController {\n>\n>  struct AgcMeteringMode {\n>  \tdouble weights[AGC_STATS_SIZE];\n> @@ -121,4 +121,4 @@ private:\n>  \tdouble fixed_analogue_gain_;\n>  };\n>\n> -} // namespace RPi\n> +} // namespace RPiController\n> diff --git a/src/ipa/raspberrypi/controller/rpi/alsc.cpp b/src/ipa/raspberrypi/controller/rpi/alsc.cpp\n> index 0d0e0b0c..49e60b98 100644\n> --- a/src/ipa/raspberrypi/controller/rpi/alsc.cpp\n> +++ b/src/ipa/raspberrypi/controller/rpi/alsc.cpp\n> @@ -11,7 +11,7 @@\n>\n>  // Raspberry Pi ALSC (Auto Lens Shading Correction) algorithm.\n>\n> -using namespace RPi;\n> +using namespace RPiController;\n>\n>  #define NAME \"rpi.alsc\"\n>\n> diff --git a/src/ipa/raspberrypi/controller/rpi/alsc.hpp b/src/ipa/raspberrypi/controller/rpi/alsc.hpp\n> index 95572af0..13d1ba54 100644\n> --- a/src/ipa/raspberrypi/controller/rpi/alsc.hpp\n> +++ b/src/ipa/raspberrypi/controller/rpi/alsc.hpp\n> @@ -13,7 +13,7 @@\n>  #include \"../algorithm.hpp\"\n>  #include \"../alsc_status.h\"\n>\n> -namespace RPi {\n> +namespace RPiController {\n>\n>  // Algorithm to generate automagic LSC (Lens Shading Correction) tables.\n>\n> @@ -102,4 +102,4 @@ private:\n>  \tdouble lambda_b_[ALSC_CELLS_X * ALSC_CELLS_Y];\n>  };\n>\n> -} // namespace RPi\n> +} // namespace RPiController\n> diff --git a/src/ipa/raspberrypi/controller/rpi/awb.cpp b/src/ipa/raspberrypi/controller/rpi/awb.cpp\n> index a58fa11d..a5536e47 100644\n> --- a/src/ipa/raspberrypi/controller/rpi/awb.cpp\n> +++ b/src/ipa/raspberrypi/controller/rpi/awb.cpp\n> @@ -10,7 +10,7 @@\n>\n>  #include \"awb.hpp\"\n>\n> -using namespace RPi;\n> +using namespace RPiController;\n>\n>  #define NAME \"rpi.awb\"\n>\n> diff --git a/src/ipa/raspberrypi/controller/rpi/awb.hpp b/src/ipa/raspberrypi/controller/rpi/awb.hpp\n> index 36925252..9124d042 100644\n> --- a/src/ipa/raspberrypi/controller/rpi/awb.hpp\n> +++ b/src/ipa/raspberrypi/controller/rpi/awb.hpp\n> @@ -14,7 +14,7 @@\n>  #include \"../pwl.hpp\"\n>  #include \"../awb_status.h\"\n>\n> -namespace RPi {\n> +namespace RPiController {\n>\n>  // Control algorithm to perform AWB calculations.\n>\n> @@ -175,4 +175,4 @@ static inline Awb::RGB operator*(Awb::RGB const &rgb, double d)\n>  \treturn d * rgb;\n>  }\n>\n> -} // namespace RPi\n> +} // namespace RPiController\n> diff --git a/src/ipa/raspberrypi/controller/rpi/black_level.cpp b/src/ipa/raspberrypi/controller/rpi/black_level.cpp\n> index 59c9f5a6..0629b77c 100644\n> --- a/src/ipa/raspberrypi/controller/rpi/black_level.cpp\n> +++ b/src/ipa/raspberrypi/controller/rpi/black_level.cpp\n> @@ -13,7 +13,7 @@\n>\n>  #include \"black_level.hpp\"\n>\n> -using namespace RPi;\n> +using namespace RPiController;\n>\n>  #define NAME \"rpi.black_level\"\n>\n> diff --git a/src/ipa/raspberrypi/controller/rpi/black_level.hpp b/src/ipa/raspberrypi/controller/rpi/black_level.hpp\n> index 5d74c6da..65ec4d0e 100644\n> --- a/src/ipa/raspberrypi/controller/rpi/black_level.hpp\n> +++ b/src/ipa/raspberrypi/controller/rpi/black_level.hpp\n> @@ -11,7 +11,7 @@\n>\n>  // This is our implementation of the \"black level algorithm\".\n>\n> -namespace RPi {\n> +namespace RPiController {\n>\n>  class BlackLevel : public Algorithm\n>  {\n> @@ -27,4 +27,4 @@ private:\n>  \tdouble black_level_b_;\n>  };\n>\n> -} // namespace RPi\n> +} // namespace RPiController\n> diff --git a/src/ipa/raspberrypi/controller/rpi/ccm.cpp b/src/ipa/raspberrypi/controller/rpi/ccm.cpp\n> index 327cb71c..a8a2caff 100644\n> --- a/src/ipa/raspberrypi/controller/rpi/ccm.cpp\n> +++ b/src/ipa/raspberrypi/controller/rpi/ccm.cpp\n> @@ -13,7 +13,7 @@\n>\n>  #include \"ccm.hpp\"\n>\n> -using namespace RPi;\n> +using namespace RPiController;\n>\n>  // This algorithm selects a CCM (Colour Correction Matrix) according to the\n>  // colour temperature estimated by AWB (interpolating between known matricies as\n> diff --git a/src/ipa/raspberrypi/controller/rpi/ccm.hpp b/src/ipa/raspberrypi/controller/rpi/ccm.hpp\n> index f6f4dee1..fcf077e7 100644\n> --- a/src/ipa/raspberrypi/controller/rpi/ccm.hpp\n> +++ b/src/ipa/raspberrypi/controller/rpi/ccm.hpp\n> @@ -12,7 +12,7 @@\n>  #include \"../ccm_algorithm.hpp\"\n>  #include \"../pwl.hpp\"\n>\n> -namespace RPi {\n> +namespace RPiController {\n>\n>  // Algorithm to calculate colour matrix. Should be placed after AWB.\n>\n> @@ -73,4 +73,4 @@ private:\n>  \tstd::atomic<double> saturation_;\n>  };\n>\n> -} // namespace RPi\n> +} // namespace RPiController\n> diff --git a/src/ipa/raspberrypi/controller/rpi/contrast.cpp b/src/ipa/raspberrypi/controller/rpi/contrast.cpp\n> index c8d9ab61..103153db 100644\n> --- a/src/ipa/raspberrypi/controller/rpi/contrast.cpp\n> +++ b/src/ipa/raspberrypi/controller/rpi/contrast.cpp\n> @@ -11,7 +11,7 @@\n>\n>  #include \"contrast.hpp\"\n>\n> -using namespace RPi;\n> +using namespace RPiController;\n>\n>  // This is a very simple control algorithm which simply retrieves the results of\n>  // AGC and AWB via their \"status\" metadata, and applies digital gain to the\n> diff --git a/src/ipa/raspberrypi/controller/rpi/contrast.hpp b/src/ipa/raspberrypi/controller/rpi/contrast.hpp\n> index 2e38a762..6836f181 100644\n> --- a/src/ipa/raspberrypi/controller/rpi/contrast.hpp\n> +++ b/src/ipa/raspberrypi/controller/rpi/contrast.hpp\n> @@ -12,7 +12,7 @@\n>  #include \"../contrast_algorithm.hpp\"\n>  #include \"../pwl.hpp\"\n>\n> -namespace RPi {\n> +namespace RPiController {\n>\n>  // Back End algorithm to appaly correct digital gain. Should be placed after\n>  // Back End AWB.\n> @@ -48,4 +48,4 @@ private:\n>  \tstd::mutex mutex_;\n>  };\n>\n> -} // namespace RPi\n> +} // namespace RPiController\n> diff --git a/src/ipa/raspberrypi/controller/rpi/dpc.cpp b/src/ipa/raspberrypi/controller/rpi/dpc.cpp\n> index d31fae97..348e1609 100644\n> --- a/src/ipa/raspberrypi/controller/rpi/dpc.cpp\n> +++ b/src/ipa/raspberrypi/controller/rpi/dpc.cpp\n> @@ -8,7 +8,7 @@\n>  #include \"../logging.hpp\"\n>  #include \"dpc.hpp\"\n>\n> -using namespace RPi;\n> +using namespace RPiController;\n>\n>  // We use the lux status so that we can apply stronger settings in darkness (if\n>  // necessary).\n> diff --git a/src/ipa/raspberrypi/controller/rpi/dpc.hpp b/src/ipa/raspberrypi/controller/rpi/dpc.hpp\n> index 9fb72867..d90285c4 100644\n> --- a/src/ipa/raspberrypi/controller/rpi/dpc.hpp\n> +++ b/src/ipa/raspberrypi/controller/rpi/dpc.hpp\n> @@ -9,7 +9,7 @@\n>  #include \"../algorithm.hpp\"\n>  #include \"../dpc_status.h\"\n>\n> -namespace RPi {\n> +namespace RPiController {\n>\n>  // Back End algorithm to apply appropriate GEQ settings.\n>\n> @@ -29,4 +29,4 @@ private:\n>  \tDpcConfig config_;\n>  };\n>\n> -} // namespace RPi\n> +} // namespace RPiController\n> diff --git a/src/ipa/raspberrypi/controller/rpi/focus.cpp b/src/ipa/raspberrypi/controller/rpi/focus.cpp\n> index ffe44362..bab4406f 100644\n> --- a/src/ipa/raspberrypi/controller/rpi/focus.cpp\n> +++ b/src/ipa/raspberrypi/controller/rpi/focus.cpp\n> @@ -11,7 +11,7 @@\n>  #include \"../focus_status.h\"\n>  #include \"focus.hpp\"\n>\n> -using namespace RPi;\n> +using namespace RPiController;\n>  using namespace libcamera;\n>\n>  LOG_DEFINE_CATEGORY(RPiFocus)\n> diff --git a/src/ipa/raspberrypi/controller/rpi/focus.hpp b/src/ipa/raspberrypi/controller/rpi/focus.hpp\n> index a9756ea7..131b1d0f 100644\n> --- a/src/ipa/raspberrypi/controller/rpi/focus.hpp\n> +++ b/src/ipa/raspberrypi/controller/rpi/focus.hpp\n> @@ -15,7 +15,7 @@\n>   * control.\n>   */\n>\n> -namespace RPi {\n> +namespace RPiController {\n>\n>  class Focus : public Algorithm\n>  {\n> @@ -25,4 +25,4 @@ public:\n>  \tvoid Process(StatisticsPtr &stats, Metadata *image_metadata) override;\n>  };\n>\n> -} /* namespace RPi */\n> +} /* namespace RPiController */\n> diff --git a/src/ipa/raspberrypi/controller/rpi/geq.cpp b/src/ipa/raspberrypi/controller/rpi/geq.cpp\n> index ee0cb95d..b6c98414 100644\n> --- a/src/ipa/raspberrypi/controller/rpi/geq.cpp\n> +++ b/src/ipa/raspberrypi/controller/rpi/geq.cpp\n> @@ -12,7 +12,7 @@\n>\n>  #include \"geq.hpp\"\n>\n> -using namespace RPi;\n> +using namespace RPiController;\n>\n>  // We use the lux status so that we can apply stronger settings in darkness (if\n>  // necessary).\n> diff --git a/src/ipa/raspberrypi/controller/rpi/geq.hpp b/src/ipa/raspberrypi/controller/rpi/geq.hpp\n> index 7d4bd38d..8ba3046b 100644\n> --- a/src/ipa/raspberrypi/controller/rpi/geq.hpp\n> +++ b/src/ipa/raspberrypi/controller/rpi/geq.hpp\n> @@ -9,7 +9,7 @@\n>  #include \"../algorithm.hpp\"\n>  #include \"../geq_status.h\"\n>\n> -namespace RPi {\n> +namespace RPiController {\n>\n>  // Back End algorithm to apply appropriate GEQ settings.\n>\n> @@ -31,4 +31,4 @@ private:\n>  \tGeqConfig config_;\n>  };\n>\n> -} // namespace RPi\n> +} // namespace RPiController\n> diff --git a/src/ipa/raspberrypi/controller/rpi/lux.cpp b/src/ipa/raspberrypi/controller/rpi/lux.cpp\n> index 154db153..5acd49a0 100644\n> --- a/src/ipa/raspberrypi/controller/rpi/lux.cpp\n> +++ b/src/ipa/raspberrypi/controller/rpi/lux.cpp\n> @@ -13,7 +13,7 @@\n>\n>  #include \"lux.hpp\"\n>\n> -using namespace RPi;\n> +using namespace RPiController;\n>\n>  #define NAME \"rpi.lux\"\n>\n> diff --git a/src/ipa/raspberrypi/controller/rpi/lux.hpp b/src/ipa/raspberrypi/controller/rpi/lux.hpp\n> index eb935409..7b6c7258 100644\n> --- a/src/ipa/raspberrypi/controller/rpi/lux.hpp\n> +++ b/src/ipa/raspberrypi/controller/rpi/lux.hpp\n> @@ -14,7 +14,7 @@\n>\n>  // This is our implementation of the \"lux control algorithm\".\n>\n> -namespace RPi {\n> +namespace RPiController {\n>\n>  class Lux : public Algorithm\n>  {\n> @@ -39,4 +39,4 @@ private:\n>  \tstd::mutex mutex_;\n>  };\n>\n> -} // namespace RPi\n> +} // namespace RPiController\n> diff --git a/src/ipa/raspberrypi/controller/rpi/noise.cpp b/src/ipa/raspberrypi/controller/rpi/noise.cpp\n> index 1b84ecb0..9e9eaf1b 100644\n> --- a/src/ipa/raspberrypi/controller/rpi/noise.cpp\n> +++ b/src/ipa/raspberrypi/controller/rpi/noise.cpp\n> @@ -13,7 +13,7 @@\n>\n>  #include \"noise.hpp\"\n>\n> -using namespace RPi;\n> +using namespace RPiController;\n>\n>  #define NAME \"rpi.noise\"\n>\n> diff --git a/src/ipa/raspberrypi/controller/rpi/noise.hpp b/src/ipa/raspberrypi/controller/rpi/noise.hpp\n> index 25bf1885..6f6e0be9 100644\n> --- a/src/ipa/raspberrypi/controller/rpi/noise.hpp\n> +++ b/src/ipa/raspberrypi/controller/rpi/noise.hpp\n> @@ -11,7 +11,7 @@\n>\n>  // This is our implementation of the \"noise algorithm\".\n>\n> -namespace RPi {\n> +namespace RPiController {\n>\n>  class Noise : public Algorithm\n>  {\n> @@ -29,4 +29,4 @@ private:\n>  \tstd::atomic<double> mode_factor_;\n>  };\n>\n> -} // namespace RPi\n> +} // namespace RPiController\n> diff --git a/src/ipa/raspberrypi/controller/rpi/sdn.cpp b/src/ipa/raspberrypi/controller/rpi/sdn.cpp\n> index 28d9d983..aa82830b 100644\n> --- a/src/ipa/raspberrypi/controller/rpi/sdn.cpp\n> +++ b/src/ipa/raspberrypi/controller/rpi/sdn.cpp\n> @@ -10,7 +10,7 @@\n>\n>  #include \"sdn.hpp\"\n>\n> -using namespace RPi;\n> +using namespace RPiController;\n>\n>  // Calculate settings for the spatial denoise block using the noise profile in\n>  // the image metadata.\n> diff --git a/src/ipa/raspberrypi/controller/rpi/sdn.hpp b/src/ipa/raspberrypi/controller/rpi/sdn.hpp\n> index d48aab7e..486c000d 100644\n> --- a/src/ipa/raspberrypi/controller/rpi/sdn.hpp\n> +++ b/src/ipa/raspberrypi/controller/rpi/sdn.hpp\n> @@ -8,7 +8,7 @@\n>\n>  #include \"../algorithm.hpp\"\n>\n> -namespace RPi {\n> +namespace RPiController {\n>\n>  // Algorithm to calculate correct spatial denoise (SDN) settings.\n>\n> @@ -26,4 +26,4 @@ private:\n>  \tdouble strength_;\n>  };\n>\n> -} // namespace RPi\n> +} // namespace RPiController\n> diff --git a/src/ipa/raspberrypi/controller/rpi/sharpen.cpp b/src/ipa/raspberrypi/controller/rpi/sharpen.cpp\n> index 356c1058..c953a7d9 100644\n> --- a/src/ipa/raspberrypi/controller/rpi/sharpen.cpp\n> +++ b/src/ipa/raspberrypi/controller/rpi/sharpen.cpp\n> @@ -12,7 +12,7 @@\n>\n>  #include \"sharpen.hpp\"\n>\n> -using namespace RPi;\n> +using namespace RPiController;\n>\n>  #define NAME \"rpi.sharpen\"\n>\n> diff --git a/src/ipa/raspberrypi/controller/rpi/sharpen.hpp b/src/ipa/raspberrypi/controller/rpi/sharpen.hpp\n> index 568521b9..13a076a8 100644\n> --- a/src/ipa/raspberrypi/controller/rpi/sharpen.hpp\n> +++ b/src/ipa/raspberrypi/controller/rpi/sharpen.hpp\n> @@ -11,7 +11,7 @@\n>\n>  // This is our implementation of the \"sharpen algorithm\".\n>\n> -namespace RPi {\n> +namespace RPiController {\n>\n>  class Sharpen : public SharpenAlgorithm\n>  {\n> @@ -31,4 +31,4 @@ private:\n>  \tdouble user_strength_;\n>  };\n>\n> -} // namespace RPi\n> +} // namespace RPiController\n> diff --git a/src/ipa/raspberrypi/controller/sharpen_algorithm.hpp b/src/ipa/raspberrypi/controller/sharpen_algorithm.hpp\n> index 3b27a745..ca800308 100644\n> --- a/src/ipa/raspberrypi/controller/sharpen_algorithm.hpp\n> +++ b/src/ipa/raspberrypi/controller/sharpen_algorithm.hpp\n> @@ -8,7 +8,7 @@\n>\n>  #include \"algorithm.hpp\"\n>\n> -namespace RPi {\n> +namespace RPiController {\n>\n>  class SharpenAlgorithm : public Algorithm\n>  {\n> @@ -18,4 +18,4 @@ public:\n>  \tvirtual void SetStrength(double strength) = 0;\n>  };\n>\n> -} // namespace RPi\n> +} // namespace RPiController\n> diff --git a/src/ipa/raspberrypi/md_parser.cpp b/src/ipa/raspberrypi/md_parser.cpp\n> index ca809aa2..d82c102c 100644\n> --- a/src/ipa/raspberrypi/md_parser.cpp\n> +++ b/src/ipa/raspberrypi/md_parser.cpp\n> @@ -11,7 +11,7 @@\n>\n>  #include \"md_parser.hpp\"\n>\n> -using namespace RPi;\n> +using namespace RPiController;\n>\n>  // This function goes through the embedded data to find the offsets (not\n>  // values!), in the data block, where the values of the given registers can\n> diff --git a/src/ipa/raspberrypi/md_parser.hpp b/src/ipa/raspberrypi/md_parser.hpp\n> index 70d054b2..c9db62c0 100644\n> --- a/src/ipa/raspberrypi/md_parser.hpp\n> +++ b/src/ipa/raspberrypi/md_parser.hpp\n> @@ -50,7 +50,7 @@ parser->Reset();\n>\n>  before calling Parse again. */\n>\n> -namespace RPi {\n> +namespace RPiController {\n>\n>  // Abstract base class from which other metadata parsers are derived.\n>\n> diff --git a/src/ipa/raspberrypi/md_parser_rpi.cpp b/src/ipa/raspberrypi/md_parser_rpi.cpp\n> index a42b28f7..2b0bcfc5 100644\n> --- a/src/ipa/raspberrypi/md_parser_rpi.cpp\n> +++ b/src/ipa/raspberrypi/md_parser_rpi.cpp\n> @@ -9,7 +9,7 @@\n>\n>  #include \"md_parser_rpi.hpp\"\n>\n> -using namespace RPi;\n> +using namespace RPiController;\n>\n>  MdParserRPi::MdParserRPi()\n>  {\n> diff --git a/src/ipa/raspberrypi/md_parser_rpi.hpp b/src/ipa/raspberrypi/md_parser_rpi.hpp\n> index 1fa334f4..52f54f00 100644\n> --- a/src/ipa/raspberrypi/md_parser_rpi.hpp\n> +++ b/src/ipa/raspberrypi/md_parser_rpi.hpp\n> @@ -8,7 +8,7 @@\n>\n>  #include \"md_parser.hpp\"\n>\n> -namespace RPi {\n> +namespace RPiController {\n>\n>  class MdParserRPi : public MdParser\n>  {\n> diff --git a/src/ipa/raspberrypi/raspberrypi.cpp b/src/ipa/raspberrypi/raspberrypi.cpp\n> index 28f81824..0c0dc743 100644\n> --- a/src/ipa/raspberrypi/raspberrypi.cpp\n> +++ b/src/ipa/raspberrypi/raspberrypi.cpp\n> @@ -125,10 +125,10 @@ private:\n>  \tCameraMode lastMode_;\n>\n>  \t/* Raspberry Pi controller specific defines. */\n> -\tstd::unique_ptr<::RPi::CamHelper> helper_;\n> -\t::RPi::Controller controller_;\n> +\tstd::unique_ptr<RPiController::CamHelper> helper_;\n> +\tRPiController::Controller controller_;\n>  \tbool controllerInit_;\n> -\t::RPi::Metadata rpiMetadata_;\n> +\tRPiController::Metadata rpiMetadata_;\n>\n>  \t/*\n>  \t * We count frames to decide if the frame must be hidden (e.g. from\n> @@ -211,7 +211,7 @@ void IPARPi::configure(const CameraSensorInfo &sensorInfo,\n>  \t */\n>  \tstd::string cameraName(sensorInfo.model);\n>  \tif (!helper_) {\n> -\t\thelper_ = std::unique_ptr<::RPi::CamHelper>(::RPi::CamHelper::Create(cameraName));\n> +\t\thelper_ = std::unique_ptr<RPiController::CamHelper>(RPiController::CamHelper::Create(cameraName));\n>  \t\t/*\n>  \t\t * Pass out the sensor config to the pipeline handler in order\n>  \t\t * to setup the staggered writer class.\n> @@ -268,7 +268,7 @@ void IPARPi::configure(const CameraSensorInfo &sensorInfo,\n>  \t\tagcStatus.analogue_gain = DEFAULT_ANALOGUE_GAIN;\n>  \t}\n>\n> -\t::RPi::Metadata metadata;\n> +\tRPiController::Metadata metadata;\n>  \tcontroller_.SwitchMode(mode_, &metadata);\n>\n>  \t/* SwitchMode may supply updated exposure/gain values to use. */\n> @@ -391,7 +391,7 @@ void IPARPi::processEvent(const IPAOperationData &event)\n>\n>  void IPARPi::reportMetadata()\n>  {\n> -\tstd::unique_lock<::RPi::Metadata> lock(rpiMetadata_);\n> +\tstd::unique_lock<RPiController::Metadata> lock(rpiMetadata_);\n>\n>  \t/*\n>  \t * Certain information about the current frame and how it will be\n> @@ -496,7 +496,7 @@ void IPARPi::queueRequest(const ControlList &controls)\n>\n>  \t\tswitch (ctrl.first) {\n>  \t\tcase controls::AE_ENABLE: {\n> -\t\t\t::RPi::Algorithm *agc = controller_.GetAlgorithm(\"agc\");\n> +\t\t\tRPiController::Algorithm *agc = controller_.GetAlgorithm(\"agc\");\n>  \t\t\tASSERT(agc);\n>  \t\t\tif (ctrl.second.get<bool>() == false)\n>  \t\t\t\tagc->Pause();\n> @@ -508,7 +508,7 @@ void IPARPi::queueRequest(const ControlList &controls)\n>  \t\t}\n>\n>  \t\tcase controls::EXPOSURE_TIME: {\n> -\t\t\t::RPi::AgcAlgorithm *agc = dynamic_cast<::RPi::AgcAlgorithm *>(\n> +\t\t\tRPiController::AgcAlgorithm *agc = dynamic_cast<RPiController::AgcAlgorithm *>(\n>  \t\t\t\tcontroller_.GetAlgorithm(\"agc\"));\n>  \t\t\tASSERT(agc);\n>  \t\t\t/* This expects units of micro-seconds. */\n> @@ -522,7 +522,7 @@ void IPARPi::queueRequest(const ControlList &controls)\n>  \t\t}\n>\n>  \t\tcase controls::ANALOGUE_GAIN: {\n> -\t\t\t::RPi::AgcAlgorithm *agc = dynamic_cast<::RPi::AgcAlgorithm *>(\n> +\t\t\tRPiController::AgcAlgorithm *agc = dynamic_cast<RPiController::AgcAlgorithm *>(\n>  \t\t\t\tcontroller_.GetAlgorithm(\"agc\"));\n>  \t\t\tASSERT(agc);\n>  \t\t\tagc->SetFixedAnalogueGain(ctrl.second.get<float>());\n> @@ -536,7 +536,7 @@ void IPARPi::queueRequest(const ControlList &controls)\n>  \t\t}\n>\n>  \t\tcase controls::AE_METERING_MODE: {\n> -\t\t\t::RPi::AgcAlgorithm *agc = dynamic_cast<::RPi::AgcAlgorithm *>(\n> +\t\t\tRPiController::AgcAlgorithm *agc = dynamic_cast<RPiController::AgcAlgorithm *>(\n>  \t\t\t\tcontroller_.GetAlgorithm(\"agc\"));\n>  \t\t\tASSERT(agc);\n>\n> @@ -552,7 +552,7 @@ void IPARPi::queueRequest(const ControlList &controls)\n>  \t\t}\n>\n>  \t\tcase controls::AE_CONSTRAINT_MODE: {\n> -\t\t\t::RPi::AgcAlgorithm *agc = dynamic_cast<::RPi::AgcAlgorithm *>(\n> +\t\t\tRPiController::AgcAlgorithm *agc = dynamic_cast<RPiController::AgcAlgorithm *>(\n>  \t\t\t\tcontroller_.GetAlgorithm(\"agc\"));\n>  \t\t\tASSERT(agc);\n>\n> @@ -568,7 +568,7 @@ void IPARPi::queueRequest(const ControlList &controls)\n>  \t\t}\n>\n>  \t\tcase controls::AE_EXPOSURE_MODE: {\n> -\t\t\t::RPi::AgcAlgorithm *agc = dynamic_cast<::RPi::AgcAlgorithm *>(\n> +\t\t\tRPiController::AgcAlgorithm *agc = dynamic_cast<RPiController::AgcAlgorithm *>(\n>  \t\t\t\tcontroller_.GetAlgorithm(\"agc\"));\n>  \t\t\tASSERT(agc);\n>\n> @@ -584,7 +584,7 @@ void IPARPi::queueRequest(const ControlList &controls)\n>  \t\t}\n>\n>  \t\tcase controls::EXPOSURE_VALUE: {\n> -\t\t\t::RPi::AgcAlgorithm *agc = dynamic_cast<::RPi::AgcAlgorithm *>(\n> +\t\t\tRPiController::AgcAlgorithm *agc = dynamic_cast<RPiController::AgcAlgorithm *>(\n>  \t\t\t\tcontroller_.GetAlgorithm(\"agc\"));\n>  \t\t\tASSERT(agc);\n>\n> @@ -600,7 +600,7 @@ void IPARPi::queueRequest(const ControlList &controls)\n>  \t\t}\n>\n>  \t\tcase controls::AWB_ENABLE: {\n> -\t\t\t::RPi::Algorithm *awb = controller_.GetAlgorithm(\"awb\");\n> +\t\t\tRPiController::Algorithm *awb = controller_.GetAlgorithm(\"awb\");\n>  \t\t\tASSERT(awb);\n>\n>  \t\t\tif (ctrl.second.get<bool>() == false)\n> @@ -614,7 +614,7 @@ void IPARPi::queueRequest(const ControlList &controls)\n>  \t\t}\n>\n>  \t\tcase controls::AWB_MODE: {\n> -\t\t\t::RPi::AwbAlgorithm *awb = dynamic_cast<::RPi::AwbAlgorithm *>(\n> +\t\t\tRPiController::AwbAlgorithm *awb = dynamic_cast<RPiController::AwbAlgorithm *>(\n>  \t\t\t\tcontroller_.GetAlgorithm(\"awb\"));\n>  \t\t\tASSERT(awb);\n>\n> @@ -631,7 +631,7 @@ void IPARPi::queueRequest(const ControlList &controls)\n>\n>  \t\tcase controls::COLOUR_GAINS: {\n>  \t\t\tauto gains = ctrl.second.get<Span<const float>>();\n> -\t\t\t::RPi::AwbAlgorithm *awb = dynamic_cast<::RPi::AwbAlgorithm *>(\n> +\t\t\tRPiController::AwbAlgorithm *awb = dynamic_cast<RPiController::AwbAlgorithm *>(\n>  \t\t\t\tcontroller_.GetAlgorithm(\"awb\"));\n>  \t\t\tASSERT(awb);\n>\n> @@ -644,7 +644,7 @@ void IPARPi::queueRequest(const ControlList &controls)\n>  \t\t}\n>\n>  \t\tcase controls::BRIGHTNESS: {\n> -\t\t\t::RPi::ContrastAlgorithm *contrast = dynamic_cast<::RPi::ContrastAlgorithm *>(\n> +\t\t\tRPiController::ContrastAlgorithm *contrast = dynamic_cast<RPiController::ContrastAlgorithm *>(\n>  \t\t\t\tcontroller_.GetAlgorithm(\"contrast\"));\n>  \t\t\tASSERT(contrast);\n>\n> @@ -655,7 +655,7 @@ void IPARPi::queueRequest(const ControlList &controls)\n>  \t\t}\n>\n>  \t\tcase controls::CONTRAST: {\n> -\t\t\t::RPi::ContrastAlgorithm *contrast = dynamic_cast<::RPi::ContrastAlgorithm *>(\n> +\t\t\tRPiController::ContrastAlgorithm *contrast = dynamic_cast<RPiController::ContrastAlgorithm *>(\n>  \t\t\t\tcontroller_.GetAlgorithm(\"contrast\"));\n>  \t\t\tASSERT(contrast);\n>\n> @@ -666,7 +666,7 @@ void IPARPi::queueRequest(const ControlList &controls)\n>  \t\t}\n>\n>  \t\tcase controls::SATURATION: {\n> -\t\t\t::RPi::CcmAlgorithm *ccm = dynamic_cast<::RPi::CcmAlgorithm *>(\n> +\t\t\tRPiController::CcmAlgorithm *ccm = dynamic_cast<RPiController::CcmAlgorithm *>(\n>  \t\t\t\tcontroller_.GetAlgorithm(\"ccm\"));\n>  \t\t\tASSERT(ccm);\n>\n> @@ -677,7 +677,7 @@ void IPARPi::queueRequest(const ControlList &controls)\n>  \t\t}\n>\n>  \t\tcase controls::SHARPNESS: {\n> -\t\t\t::RPi::SharpenAlgorithm *sharpen = dynamic_cast<::RPi::SharpenAlgorithm *>(\n> +\t\t\tRPiController::SharpenAlgorithm *sharpen = dynamic_cast<RPiController::SharpenAlgorithm *>(\n>  \t\t\t\tcontroller_.GetAlgorithm(\"sharpen\"));\n>  \t\t\tASSERT(sharpen);\n>\n> @@ -720,7 +720,7 @@ void IPARPi::prepareISP(unsigned int bufferId)\n>  \t\tcontroller_.Prepare(&rpiMetadata_);\n>\n>  \t\t/* Lock the metadata buffer to avoid constant locks/unlocks. */\n> -\t\tstd::unique_lock<::RPi::Metadata> lock(rpiMetadata_);\n> +\t\tstd::unique_lock<RPiController::Metadata> lock(rpiMetadata_);\n>\n>  \t\tAwbStatus *awbStatus = rpiMetadata_.GetLocked<AwbStatus>(\"awb.status\");\n>  \t\tif (awbStatus)\n> @@ -781,18 +781,18 @@ bool IPARPi::parseEmbeddedData(unsigned int bufferId, struct DeviceStatus &devic\n>\n>  \tint size = buffers_.find(bufferId)->second.planes()[0].length;\n>  \thelper_->Parser().SetBufferSize(size);\n> -\t::RPi::MdParser::Status status = helper_->Parser().Parse(it->second);\n> -\tif (status != ::RPi::MdParser::Status::OK) {\n> +\tRPiController::MdParser::Status status = helper_->Parser().Parse(it->second);\n> +\tif (status != RPiController::MdParser::Status::OK) {\n>  \t\tLOG(IPARPI, Error) << \"Embedded Buffer parsing failed, error \" << status;\n>  \t} else {\n>  \t\tuint32_t exposure_lines, gain_code;\n> -\t\tif (helper_->Parser().GetExposureLines(exposure_lines) != ::RPi::MdParser::Status::OK) {\n> +\t\tif (helper_->Parser().GetExposureLines(exposure_lines) != RPiController::MdParser::Status::OK) {\n>  \t\t\tLOG(IPARPI, Error) << \"Exposure time failed\";\n>  \t\t\treturn false;\n>  \t\t}\n>\n>  \t\tdeviceStatus.shutter_speed = helper_->Exposure(exposure_lines);\n> -\t\tif (helper_->Parser().GetGainCode(gain_code) != ::RPi::MdParser::Status::OK) {\n> +\t\tif (helper_->Parser().GetGainCode(gain_code) != RPiController::MdParser::Status::OK) {\n>  \t\t\tLOG(IPARPI, Error) << \"Gain failed\";\n>  \t\t\treturn false;\n>  \t\t}\n> @@ -815,7 +815,7 @@ void IPARPi::processStats(unsigned int bufferId)\n>  \t}\n>\n>  \tbcm2835_isp_stats *stats = static_cast<bcm2835_isp_stats *>(it->second);\n> -\t::RPi::StatisticsPtr statistics = std::make_shared<bcm2835_isp_stats>(*stats);\n> +\tRPiController::StatisticsPtr statistics = std::make_shared<bcm2835_isp_stats>(*stats);\n>  \tcontroller_.Process(statistics, &rpiMetadata_);\n>\n>  \tstruct AgcStatus agcStatus;\n> --\n> 2.25.1\n>\n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 713B2C3B5C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 23 Sep 2020 07:54:11 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 1469262FDF;\n\tWed, 23 Sep 2020 09:54:11 +0200 (CEST)","from relay12.mail.gandi.net (relay12.mail.gandi.net\n\t[217.70.178.232])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 84F6260363\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 23 Sep 2020 09:54:09 +0200 (CEST)","from uno.localdomain (93-34-118-233.ip49.fastwebnet.it\n\t[93.34.118.233]) (Authenticated sender: jacopo@jmondi.org)\n\tby relay12.mail.gandi.net (Postfix) with ESMTPSA id B66E6200005;\n\tWed, 23 Sep 2020 07:54:08 +0000 (UTC)"],"Date":"Wed, 23 Sep 2020 09:58:01 +0200","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Naushir Patuck <naush@raspberrypi.com>","Message-ID":"<20200923075801.nb7lpauiqekldaes@uno.localdomain>","References":"<20200922095018.68434-1-naush@raspberrypi.com>\n\t<20200922095018.68434-4-naush@raspberrypi.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20200922095018.68434-4-naush@raspberrypi.com>","Subject":"Re: [libcamera-devel] [PATCH 3/4] ipa: raspberrypi: Rename the\n\tcontroller namespace from Rpi to RpiController","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":12664,"web_url":"https://patchwork.libcamera.org/comment/12664/","msgid":"<49236496-bca5-b8aa-b1d3-7376fb18cf3e@ideasonboard.com>","date":"2020-09-23T11:07:58","subject":"Re: [libcamera-devel] [PATCH 3/4] ipa: raspberrypi: Rename the\n\tcontroller namespace from Rpi to RpiController","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Jacopo, / Naush\n\nOn 23/09/2020 08:58, Jacopo Mondi wrote:\n> Hi Naush,\n> \n> On Tue, Sep 22, 2020 at 10:50:17AM +0100, Naushir Patuck wrote:\n>> This avoids a namespace clash with the RPi namespace used by the ipa and\n>> pipeline handlers, and cleans up the syntax slightly.\n> \n> So we'll have:\n> libcamera::RPi:: used by the pipeline handler and the IPA main module and\n> RPiController:: used by the IPA main module and the controller library\n> \n> I wonder if we need a libcamera::IPA:: namespace...\n\nI came here from the previous patch just to say this, and now I see\nyou've beaten me to it ;-)\n\nPerhaps this could/should then be\n\nipa::rpi::controller ?\n\nWhere in side an IPA it would be acceptable to use a\n 'using namespace ipa;'\n\n\n> For this patch\n> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n> \n\nEither way, getting rid of the requirement to explicitly specify the\ntop-level namespace with a 'double ::' is nicer.\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n> Thanks\n>   j\n> \n>>\n>> There are no functional changes in this commit.\n>>\n>> Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n>> ---\n>>  src/ipa/raspberrypi/cam_helper.cpp            |  2 +-\n>>  src/ipa/raspberrypi/cam_helper.hpp            |  2 +-\n>>  src/ipa/raspberrypi/cam_helper_imx219.cpp     |  2 +-\n>>  src/ipa/raspberrypi/cam_helper_imx477.cpp     |  2 +-\n>>  src/ipa/raspberrypi/cam_helper_ov5647.cpp     |  2 +-\n>>  .../raspberrypi/controller/agc_algorithm.hpp  |  4 +-\n>>  src/ipa/raspberrypi/controller/algorithm.cpp  |  4 +-\n>>  src/ipa/raspberrypi/controller/algorithm.hpp  |  4 +-\n>>  .../raspberrypi/controller/awb_algorithm.hpp  |  4 +-\n>>  .../raspberrypi/controller/ccm_algorithm.hpp  |  4 +-\n>>  .../controller/contrast_algorithm.hpp         |  4 +-\n>>  src/ipa/raspberrypi/controller/controller.cpp |  2 +-\n>>  src/ipa/raspberrypi/controller/controller.hpp |  4 +-\n>>  src/ipa/raspberrypi/controller/histogram.cpp  |  2 +-\n>>  src/ipa/raspberrypi/controller/histogram.hpp  |  4 +-\n>>  src/ipa/raspberrypi/controller/metadata.hpp   |  4 +-\n>>  src/ipa/raspberrypi/controller/pwl.cpp        |  2 +-\n>>  src/ipa/raspberrypi/controller/pwl.hpp        |  4 +-\n>>  src/ipa/raspberrypi/controller/rpi/agc.cpp    |  2 +-\n>>  src/ipa/raspberrypi/controller/rpi/agc.hpp    |  4 +-\n>>  src/ipa/raspberrypi/controller/rpi/alsc.cpp   |  2 +-\n>>  src/ipa/raspberrypi/controller/rpi/alsc.hpp   |  4 +-\n>>  src/ipa/raspberrypi/controller/rpi/awb.cpp    |  2 +-\n>>  src/ipa/raspberrypi/controller/rpi/awb.hpp    |  4 +-\n>>  .../controller/rpi/black_level.cpp            |  2 +-\n>>  .../controller/rpi/black_level.hpp            |  4 +-\n>>  src/ipa/raspberrypi/controller/rpi/ccm.cpp    |  2 +-\n>>  src/ipa/raspberrypi/controller/rpi/ccm.hpp    |  4 +-\n>>  .../raspberrypi/controller/rpi/contrast.cpp   |  2 +-\n>>  .../raspberrypi/controller/rpi/contrast.hpp   |  4 +-\n>>  src/ipa/raspberrypi/controller/rpi/dpc.cpp    |  2 +-\n>>  src/ipa/raspberrypi/controller/rpi/dpc.hpp    |  4 +-\n>>  src/ipa/raspberrypi/controller/rpi/focus.cpp  |  2 +-\n>>  src/ipa/raspberrypi/controller/rpi/focus.hpp  |  4 +-\n>>  src/ipa/raspberrypi/controller/rpi/geq.cpp    |  2 +-\n>>  src/ipa/raspberrypi/controller/rpi/geq.hpp    |  4 +-\n>>  src/ipa/raspberrypi/controller/rpi/lux.cpp    |  2 +-\n>>  src/ipa/raspberrypi/controller/rpi/lux.hpp    |  4 +-\n>>  src/ipa/raspberrypi/controller/rpi/noise.cpp  |  2 +-\n>>  src/ipa/raspberrypi/controller/rpi/noise.hpp  |  4 +-\n>>  src/ipa/raspberrypi/controller/rpi/sdn.cpp    |  2 +-\n>>  src/ipa/raspberrypi/controller/rpi/sdn.hpp    |  4 +-\n>>  .../raspberrypi/controller/rpi/sharpen.cpp    |  2 +-\n>>  .../raspberrypi/controller/rpi/sharpen.hpp    |  4 +-\n>>  .../controller/sharpen_algorithm.hpp          |  4 +-\n>>  src/ipa/raspberrypi/md_parser.cpp             |  2 +-\n>>  src/ipa/raspberrypi/md_parser.hpp             |  2 +-\n>>  src/ipa/raspberrypi/md_parser_rpi.cpp         |  2 +-\n>>  src/ipa/raspberrypi/md_parser_rpi.hpp         |  2 +-\n>>  src/ipa/raspberrypi/raspberrypi.cpp           | 52 +++++++++----------\n>>  50 files changed, 99 insertions(+), 99 deletions(-)\n>>\n>> diff --git a/src/ipa/raspberrypi/cam_helper.cpp b/src/ipa/raspberrypi/cam_helper.cpp\n>> index b1343eb2..c8ac3232 100644\n>> --- a/src/ipa/raspberrypi/cam_helper.cpp\n>> +++ b/src/ipa/raspberrypi/cam_helper.cpp\n>> @@ -16,7 +16,7 @@\n>>  #include \"cam_helper.hpp\"\n>>  #include \"md_parser.hpp\"\n>>\n>> -using namespace RPi;\n>> +using namespace RPiController;\n>>\n>>  static std::map<std::string, CamHelperCreateFunc> cam_helpers;\n>>\n>> diff --git a/src/ipa/raspberrypi/cam_helper.hpp b/src/ipa/raspberrypi/cam_helper.hpp\n>> index 97ce3e92..044c2866 100644\n>> --- a/src/ipa/raspberrypi/cam_helper.hpp\n>> +++ b/src/ipa/raspberrypi/cam_helper.hpp\n>> @@ -13,7 +13,7 @@\n>>\n>>  #include \"libcamera/internal/v4l2_videodevice.h\"\n>>\n>> -namespace RPi {\n>> +namespace RPiController {\n>>\n>>  // The CamHelper class provides a number of facilities that anyone trying\n>>  // trying to drive a camera will need to know, but which are not provided by\n>> diff --git a/src/ipa/raspberrypi/cam_helper_imx219.cpp b/src/ipa/raspberrypi/cam_helper_imx219.cpp\n>> index 1b9ce382..db8ab879 100644\n>> --- a/src/ipa/raspberrypi/cam_helper_imx219.cpp\n>> +++ b/src/ipa/raspberrypi/cam_helper_imx219.cpp\n>> @@ -23,7 +23,7 @@\n>>  #include \"md_parser_rpi.hpp\"\n>>  #endif\n>>\n>> -using namespace RPi;\n>> +using namespace RPiController;\n>>\n>>  /* Metadata parser implementation specific to Sony IMX219 sensors. */\n>>\n>> diff --git a/src/ipa/raspberrypi/cam_helper_imx477.cpp b/src/ipa/raspberrypi/cam_helper_imx477.cpp\n>> index a53b47c0..0e896ac7 100644\n>> --- a/src/ipa/raspberrypi/cam_helper_imx477.cpp\n>> +++ b/src/ipa/raspberrypi/cam_helper_imx477.cpp\n>> @@ -13,7 +13,7 @@\n>>  #include \"cam_helper.hpp\"\n>>  #include \"md_parser.hpp\"\n>>\n>> -using namespace RPi;\n>> +using namespace RPiController;\n>>\n>>  /* Metadata parser implementation specific to Sony IMX477 sensors. */\n>>\n>> diff --git a/src/ipa/raspberrypi/cam_helper_ov5647.cpp b/src/ipa/raspberrypi/cam_helper_ov5647.cpp\n>> index 3dbcb164..dc5d8275 100644\n>> --- a/src/ipa/raspberrypi/cam_helper_ov5647.cpp\n>> +++ b/src/ipa/raspberrypi/cam_helper_ov5647.cpp\n>> @@ -10,7 +10,7 @@\n>>  #include \"cam_helper.hpp\"\n>>  #include \"md_parser_rpi.hpp\"\n>>\n>> -using namespace RPi;\n>> +using namespace RPiController;\n>>\n>>  class CamHelperOv5647 : public CamHelper\n>>  {\n>> diff --git a/src/ipa/raspberrypi/controller/agc_algorithm.hpp b/src/ipa/raspberrypi/controller/agc_algorithm.hpp\n>> index f29bb3ac..b4ea54fb 100644\n>> --- a/src/ipa/raspberrypi/controller/agc_algorithm.hpp\n>> +++ b/src/ipa/raspberrypi/controller/agc_algorithm.hpp\n>> @@ -8,7 +8,7 @@\n>>\n>>  #include \"algorithm.hpp\"\n>>\n>> -namespace RPi {\n>> +namespace RPiController {\n>>\n>>  class AgcAlgorithm : public Algorithm\n>>  {\n>> @@ -25,4 +25,4 @@ public:\n>>  \tSetConstraintMode(std::string const &contraint_mode_name) = 0;\n>>  };\n>>\n>> -} // namespace RPi\n>> +} // namespace RPiController\n>> diff --git a/src/ipa/raspberrypi/controller/algorithm.cpp b/src/ipa/raspberrypi/controller/algorithm.cpp\n>> index 1b80e296..43ad0a2b 100644\n>> --- a/src/ipa/raspberrypi/controller/algorithm.cpp\n>> +++ b/src/ipa/raspberrypi/controller/algorithm.cpp\n>> @@ -7,7 +7,7 @@\n>>\n>>  #include \"algorithm.hpp\"\n>>\n>> -using namespace RPi;\n>> +using namespace RPiController;\n>>\n>>  void Algorithm::Read([[maybe_unused]] boost::property_tree::ptree const &params)\n>>  {\n>> @@ -32,7 +32,7 @@ void Algorithm::Process([[maybe_unused]] StatisticsPtr &stats,\n>>  // For registering algorithms with the system:\n>>\n>>  static std::map<std::string, AlgoCreateFunc> algorithms;\n>> -std::map<std::string, AlgoCreateFunc> const &RPi::GetAlgorithms()\n>> +std::map<std::string, AlgoCreateFunc> const &RPiController::GetAlgorithms()\n>>  {\n>>  \treturn algorithms;\n>>  }\n>> diff --git a/src/ipa/raspberrypi/controller/algorithm.hpp b/src/ipa/raspberrypi/controller/algorithm.hpp\n>> index 187c50c6..6196b2f9 100644\n>> --- a/src/ipa/raspberrypi/controller/algorithm.hpp\n>> +++ b/src/ipa/raspberrypi/controller/algorithm.hpp\n>> @@ -19,7 +19,7 @@\n>>\n>>  #include <boost/property_tree/ptree.hpp>\n>>\n>> -namespace RPi {\n>> +namespace RPiController {\n>>\n>>  // This defines the basic interface for all control algorithms.\n>>\n>> @@ -59,4 +59,4 @@ struct RegisterAlgorithm {\n>>  };\n>>  std::map<std::string, AlgoCreateFunc> const &GetAlgorithms();\n>>\n>> -} // namespace RPi\n>> +} // namespace RPiController\n>> diff --git a/src/ipa/raspberrypi/controller/awb_algorithm.hpp b/src/ipa/raspberrypi/controller/awb_algorithm.hpp\n>> index 22508ddd..5be0c9f4 100644\n>> --- a/src/ipa/raspberrypi/controller/awb_algorithm.hpp\n>> +++ b/src/ipa/raspberrypi/controller/awb_algorithm.hpp\n>> @@ -8,7 +8,7 @@\n>>\n>>  #include \"algorithm.hpp\"\n>>\n>> -namespace RPi {\n>> +namespace RPiController {\n>>\n>>  class AwbAlgorithm : public Algorithm\n>>  {\n>> @@ -19,4 +19,4 @@ public:\n>>  \tvirtual void SetManualGains(double manual_r, double manual_b) = 0;\n>>  };\n>>\n>> -} // namespace RPi\n>> +} // namespace RPiController\n>> diff --git a/src/ipa/raspberrypi/controller/ccm_algorithm.hpp b/src/ipa/raspberrypi/controller/ccm_algorithm.hpp\n>> index 21806cb0..33d0e30d 100644\n>> --- a/src/ipa/raspberrypi/controller/ccm_algorithm.hpp\n>> +++ b/src/ipa/raspberrypi/controller/ccm_algorithm.hpp\n>> @@ -8,7 +8,7 @@\n>>\n>>  #include \"algorithm.hpp\"\n>>\n>> -namespace RPi {\n>> +namespace RPiController {\n>>\n>>  class CcmAlgorithm : public Algorithm\n>>  {\n>> @@ -18,4 +18,4 @@ public:\n>>  \tvirtual void SetSaturation(double saturation) = 0;\n>>  };\n>>\n>> -} // namespace RPi\n>> +} // namespace RPiController\n>> diff --git a/src/ipa/raspberrypi/controller/contrast_algorithm.hpp b/src/ipa/raspberrypi/controller/contrast_algorithm.hpp\n>> index 9780322b..7f03bba5 100644\n>> --- a/src/ipa/raspberrypi/controller/contrast_algorithm.hpp\n>> +++ b/src/ipa/raspberrypi/controller/contrast_algorithm.hpp\n>> @@ -8,7 +8,7 @@\n>>\n>>  #include \"algorithm.hpp\"\n>>\n>> -namespace RPi {\n>> +namespace RPiController {\n>>\n>>  class ContrastAlgorithm : public Algorithm\n>>  {\n>> @@ -19,4 +19,4 @@ public:\n>>  \tvirtual void SetContrast(double contrast) = 0;\n>>  };\n>>\n>> -} // namespace RPi\n>> +} // namespace RPiController\n>> diff --git a/src/ipa/raspberrypi/controller/controller.cpp b/src/ipa/raspberrypi/controller/controller.cpp\n>> index 7c4b04fe..22461cc4 100644\n>> --- a/src/ipa/raspberrypi/controller/controller.cpp\n>> +++ b/src/ipa/raspberrypi/controller/controller.cpp\n>> @@ -11,7 +11,7 @@\n>>  #include <boost/property_tree/json_parser.hpp>\n>>  #include <boost/property_tree/ptree.hpp>\n>>\n>> -using namespace RPi;\n>> +using namespace RPiController;\n>>\n>>  Controller::Controller()\n>>  \t: switch_mode_called_(false) {}\n>> diff --git a/src/ipa/raspberrypi/controller/controller.hpp b/src/ipa/raspberrypi/controller/controller.hpp\n>> index 6ba9412b..49b1a551 100644\n>> --- a/src/ipa/raspberrypi/controller/controller.hpp\n>> +++ b/src/ipa/raspberrypi/controller/controller.hpp\n>> @@ -19,7 +19,7 @@\n>>  #include \"device_status.h\"\n>>  #include \"metadata.hpp\"\n>>\n>> -namespace RPi {\n>> +namespace RPiController {\n>>\n>>  class Algorithm;\n>>  typedef std::unique_ptr<Algorithm> AlgorithmPtr;\n>> @@ -51,4 +51,4 @@ protected:\n>>  \tbool switch_mode_called_;\n>>  };\n>>\n>> -} // namespace RPi\n>> +} // namespace RPiController\n>> diff --git a/src/ipa/raspberrypi/controller/histogram.cpp b/src/ipa/raspberrypi/controller/histogram.cpp\n>> index 103d3f60..9916b3ed 100644\n>> --- a/src/ipa/raspberrypi/controller/histogram.cpp\n>> +++ b/src/ipa/raspberrypi/controller/histogram.cpp\n>> @@ -9,7 +9,7 @@\n>>\n>>  #include \"histogram.hpp\"\n>>\n>> -using namespace RPi;\n>> +using namespace RPiController;\n>>\n>>  uint64_t Histogram::CumulativeFreq(double bin) const\n>>  {\n>> diff --git a/src/ipa/raspberrypi/controller/histogram.hpp b/src/ipa/raspberrypi/controller/histogram.hpp\n>> index 06fc3aa7..90f5ac78 100644\n>> --- a/src/ipa/raspberrypi/controller/histogram.hpp\n>> +++ b/src/ipa/raspberrypi/controller/histogram.hpp\n>> @@ -13,7 +13,7 @@\n>>  // A simple histogram class, for use in particular to find \"quantiles\" and\n>>  // averages between \"quantiles\".\n>>\n>> -namespace RPi {\n>> +namespace RPiController {\n>>\n>>  class Histogram\n>>  {\n>> @@ -41,4 +41,4 @@ private:\n>>  \tstd::vector<uint64_t> cumulative_;\n>>  };\n>>\n>> -} // namespace RPi\n>> +} // namespace RPiController\n>> diff --git a/src/ipa/raspberrypi/controller/metadata.hpp b/src/ipa/raspberrypi/controller/metadata.hpp\n>> index 1d7624a0..f3a8dfab 100644\n>> --- a/src/ipa/raspberrypi/controller/metadata.hpp\n>> +++ b/src/ipa/raspberrypi/controller/metadata.hpp\n>> @@ -15,7 +15,7 @@\n>>\n>>  #include <boost/any.hpp>\n>>\n>> -namespace RPi {\n>> +namespace RPiController {\n>>\n>>  class Metadata\n>>  {\n>> @@ -74,4 +74,4 @@ private:\n>>\n>>  typedef std::shared_ptr<Metadata> MetadataPtr;\n>>\n>> -} // namespace RPi\n>> +} // namespace RPiController\n>> diff --git a/src/ipa/raspberrypi/controller/pwl.cpp b/src/ipa/raspberrypi/controller/pwl.cpp\n>> index 7e11d8f3..aa134a1f 100644\n>> --- a/src/ipa/raspberrypi/controller/pwl.cpp\n>> +++ b/src/ipa/raspberrypi/controller/pwl.cpp\n>> @@ -10,7 +10,7 @@\n>>\n>>  #include \"pwl.hpp\"\n>>\n>> -using namespace RPi;\n>> +using namespace RPiController;\n>>\n>>  void Pwl::Read(boost::property_tree::ptree const &params)\n>>  {\n>> diff --git a/src/ipa/raspberrypi/controller/pwl.hpp b/src/ipa/raspberrypi/controller/pwl.hpp\n>> index bd7c7668..4f168551 100644\n>> --- a/src/ipa/raspberrypi/controller/pwl.hpp\n>> +++ b/src/ipa/raspberrypi/controller/pwl.hpp\n>> @@ -11,7 +11,7 @@\n>>\n>>  #include <boost/property_tree/ptree.hpp>\n>>\n>> -namespace RPi {\n>> +namespace RPiController {\n>>\n>>  class Pwl\n>>  {\n>> @@ -106,4 +106,4 @@ private:\n>>  \tstd::vector<Point> points_;\n>>  };\n>>\n>> -} // namespace RPi\n>> +} // namespace RPiController\n>> diff --git a/src/ipa/raspberrypi/controller/rpi/agc.cpp b/src/ipa/raspberrypi/controller/rpi/agc.cpp\n>> index 3573f36b..df4d3647 100644\n>> --- a/src/ipa/raspberrypi/controller/rpi/agc.cpp\n>> +++ b/src/ipa/raspberrypi/controller/rpi/agc.cpp\n>> @@ -18,7 +18,7 @@\n>>\n>>  #include \"agc.hpp\"\n>>\n>> -using namespace RPi;\n>> +using namespace RPiController;\n>>\n>>  #define NAME \"rpi.agc\"\n>>\n>> diff --git a/src/ipa/raspberrypi/controller/rpi/agc.hpp b/src/ipa/raspberrypi/controller/rpi/agc.hpp\n>> index 9a7e89c1..ba7ae092 100644\n>> --- a/src/ipa/raspberrypi/controller/rpi/agc.hpp\n>> +++ b/src/ipa/raspberrypi/controller/rpi/agc.hpp\n>> @@ -20,7 +20,7 @@\n>>\n>>  #define AGC_STATS_SIZE 15\n>>\n>> -namespace RPi {\n>> +namespace RPiController {\n>>\n>>  struct AgcMeteringMode {\n>>  \tdouble weights[AGC_STATS_SIZE];\n>> @@ -121,4 +121,4 @@ private:\n>>  \tdouble fixed_analogue_gain_;\n>>  };\n>>\n>> -} // namespace RPi\n>> +} // namespace RPiController\n>> diff --git a/src/ipa/raspberrypi/controller/rpi/alsc.cpp b/src/ipa/raspberrypi/controller/rpi/alsc.cpp\n>> index 0d0e0b0c..49e60b98 100644\n>> --- a/src/ipa/raspberrypi/controller/rpi/alsc.cpp\n>> +++ b/src/ipa/raspberrypi/controller/rpi/alsc.cpp\n>> @@ -11,7 +11,7 @@\n>>\n>>  // Raspberry Pi ALSC (Auto Lens Shading Correction) algorithm.\n>>\n>> -using namespace RPi;\n>> +using namespace RPiController;\n>>\n>>  #define NAME \"rpi.alsc\"\n>>\n>> diff --git a/src/ipa/raspberrypi/controller/rpi/alsc.hpp b/src/ipa/raspberrypi/controller/rpi/alsc.hpp\n>> index 95572af0..13d1ba54 100644\n>> --- a/src/ipa/raspberrypi/controller/rpi/alsc.hpp\n>> +++ b/src/ipa/raspberrypi/controller/rpi/alsc.hpp\n>> @@ -13,7 +13,7 @@\n>>  #include \"../algorithm.hpp\"\n>>  #include \"../alsc_status.h\"\n>>\n>> -namespace RPi {\n>> +namespace RPiController {\n>>\n>>  // Algorithm to generate automagic LSC (Lens Shading Correction) tables.\n>>\n>> @@ -102,4 +102,4 @@ private:\n>>  \tdouble lambda_b_[ALSC_CELLS_X * ALSC_CELLS_Y];\n>>  };\n>>\n>> -} // namespace RPi\n>> +} // namespace RPiController\n>> diff --git a/src/ipa/raspberrypi/controller/rpi/awb.cpp b/src/ipa/raspberrypi/controller/rpi/awb.cpp\n>> index a58fa11d..a5536e47 100644\n>> --- a/src/ipa/raspberrypi/controller/rpi/awb.cpp\n>> +++ b/src/ipa/raspberrypi/controller/rpi/awb.cpp\n>> @@ -10,7 +10,7 @@\n>>\n>>  #include \"awb.hpp\"\n>>\n>> -using namespace RPi;\n>> +using namespace RPiController;\n>>\n>>  #define NAME \"rpi.awb\"\n>>\n>> diff --git a/src/ipa/raspberrypi/controller/rpi/awb.hpp b/src/ipa/raspberrypi/controller/rpi/awb.hpp\n>> index 36925252..9124d042 100644\n>> --- a/src/ipa/raspberrypi/controller/rpi/awb.hpp\n>> +++ b/src/ipa/raspberrypi/controller/rpi/awb.hpp\n>> @@ -14,7 +14,7 @@\n>>  #include \"../pwl.hpp\"\n>>  #include \"../awb_status.h\"\n>>\n>> -namespace RPi {\n>> +namespace RPiController {\n>>\n>>  // Control algorithm to perform AWB calculations.\n>>\n>> @@ -175,4 +175,4 @@ static inline Awb::RGB operator*(Awb::RGB const &rgb, double d)\n>>  \treturn d * rgb;\n>>  }\n>>\n>> -} // namespace RPi\n>> +} // namespace RPiController\n>> diff --git a/src/ipa/raspberrypi/controller/rpi/black_level.cpp b/src/ipa/raspberrypi/controller/rpi/black_level.cpp\n>> index 59c9f5a6..0629b77c 100644\n>> --- a/src/ipa/raspberrypi/controller/rpi/black_level.cpp\n>> +++ b/src/ipa/raspberrypi/controller/rpi/black_level.cpp\n>> @@ -13,7 +13,7 @@\n>>\n>>  #include \"black_level.hpp\"\n>>\n>> -using namespace RPi;\n>> +using namespace RPiController;\n>>\n>>  #define NAME \"rpi.black_level\"\n>>\n>> diff --git a/src/ipa/raspberrypi/controller/rpi/black_level.hpp b/src/ipa/raspberrypi/controller/rpi/black_level.hpp\n>> index 5d74c6da..65ec4d0e 100644\n>> --- a/src/ipa/raspberrypi/controller/rpi/black_level.hpp\n>> +++ b/src/ipa/raspberrypi/controller/rpi/black_level.hpp\n>> @@ -11,7 +11,7 @@\n>>\n>>  // This is our implementation of the \"black level algorithm\".\n>>\n>> -namespace RPi {\n>> +namespace RPiController {\n>>\n>>  class BlackLevel : public Algorithm\n>>  {\n>> @@ -27,4 +27,4 @@ private:\n>>  \tdouble black_level_b_;\n>>  };\n>>\n>> -} // namespace RPi\n>> +} // namespace RPiController\n>> diff --git a/src/ipa/raspberrypi/controller/rpi/ccm.cpp b/src/ipa/raspberrypi/controller/rpi/ccm.cpp\n>> index 327cb71c..a8a2caff 100644\n>> --- a/src/ipa/raspberrypi/controller/rpi/ccm.cpp\n>> +++ b/src/ipa/raspberrypi/controller/rpi/ccm.cpp\n>> @@ -13,7 +13,7 @@\n>>\n>>  #include \"ccm.hpp\"\n>>\n>> -using namespace RPi;\n>> +using namespace RPiController;\n>>\n>>  // This algorithm selects a CCM (Colour Correction Matrix) according to the\n>>  // colour temperature estimated by AWB (interpolating between known matricies as\n>> diff --git a/src/ipa/raspberrypi/controller/rpi/ccm.hpp b/src/ipa/raspberrypi/controller/rpi/ccm.hpp\n>> index f6f4dee1..fcf077e7 100644\n>> --- a/src/ipa/raspberrypi/controller/rpi/ccm.hpp\n>> +++ b/src/ipa/raspberrypi/controller/rpi/ccm.hpp\n>> @@ -12,7 +12,7 @@\n>>  #include \"../ccm_algorithm.hpp\"\n>>  #include \"../pwl.hpp\"\n>>\n>> -namespace RPi {\n>> +namespace RPiController {\n>>\n>>  // Algorithm to calculate colour matrix. Should be placed after AWB.\n>>\n>> @@ -73,4 +73,4 @@ private:\n>>  \tstd::atomic<double> saturation_;\n>>  };\n>>\n>> -} // namespace RPi\n>> +} // namespace RPiController\n>> diff --git a/src/ipa/raspberrypi/controller/rpi/contrast.cpp b/src/ipa/raspberrypi/controller/rpi/contrast.cpp\n>> index c8d9ab61..103153db 100644\n>> --- a/src/ipa/raspberrypi/controller/rpi/contrast.cpp\n>> +++ b/src/ipa/raspberrypi/controller/rpi/contrast.cpp\n>> @@ -11,7 +11,7 @@\n>>\n>>  #include \"contrast.hpp\"\n>>\n>> -using namespace RPi;\n>> +using namespace RPiController;\n>>\n>>  // This is a very simple control algorithm which simply retrieves the results of\n>>  // AGC and AWB via their \"status\" metadata, and applies digital gain to the\n>> diff --git a/src/ipa/raspberrypi/controller/rpi/contrast.hpp b/src/ipa/raspberrypi/controller/rpi/contrast.hpp\n>> index 2e38a762..6836f181 100644\n>> --- a/src/ipa/raspberrypi/controller/rpi/contrast.hpp\n>> +++ b/src/ipa/raspberrypi/controller/rpi/contrast.hpp\n>> @@ -12,7 +12,7 @@\n>>  #include \"../contrast_algorithm.hpp\"\n>>  #include \"../pwl.hpp\"\n>>\n>> -namespace RPi {\n>> +namespace RPiController {\n>>\n>>  // Back End algorithm to appaly correct digital gain. Should be placed after\n>>  // Back End AWB.\n>> @@ -48,4 +48,4 @@ private:\n>>  \tstd::mutex mutex_;\n>>  };\n>>\n>> -} // namespace RPi\n>> +} // namespace RPiController\n>> diff --git a/src/ipa/raspberrypi/controller/rpi/dpc.cpp b/src/ipa/raspberrypi/controller/rpi/dpc.cpp\n>> index d31fae97..348e1609 100644\n>> --- a/src/ipa/raspberrypi/controller/rpi/dpc.cpp\n>> +++ b/src/ipa/raspberrypi/controller/rpi/dpc.cpp\n>> @@ -8,7 +8,7 @@\n>>  #include \"../logging.hpp\"\n>>  #include \"dpc.hpp\"\n>>\n>> -using namespace RPi;\n>> +using namespace RPiController;\n>>\n>>  // We use the lux status so that we can apply stronger settings in darkness (if\n>>  // necessary).\n>> diff --git a/src/ipa/raspberrypi/controller/rpi/dpc.hpp b/src/ipa/raspberrypi/controller/rpi/dpc.hpp\n>> index 9fb72867..d90285c4 100644\n>> --- a/src/ipa/raspberrypi/controller/rpi/dpc.hpp\n>> +++ b/src/ipa/raspberrypi/controller/rpi/dpc.hpp\n>> @@ -9,7 +9,7 @@\n>>  #include \"../algorithm.hpp\"\n>>  #include \"../dpc_status.h\"\n>>\n>> -namespace RPi {\n>> +namespace RPiController {\n>>\n>>  // Back End algorithm to apply appropriate GEQ settings.\n>>\n>> @@ -29,4 +29,4 @@ private:\n>>  \tDpcConfig config_;\n>>  };\n>>\n>> -} // namespace RPi\n>> +} // namespace RPiController\n>> diff --git a/src/ipa/raspberrypi/controller/rpi/focus.cpp b/src/ipa/raspberrypi/controller/rpi/focus.cpp\n>> index ffe44362..bab4406f 100644\n>> --- a/src/ipa/raspberrypi/controller/rpi/focus.cpp\n>> +++ b/src/ipa/raspberrypi/controller/rpi/focus.cpp\n>> @@ -11,7 +11,7 @@\n>>  #include \"../focus_status.h\"\n>>  #include \"focus.hpp\"\n>>\n>> -using namespace RPi;\n>> +using namespace RPiController;\n>>  using namespace libcamera;\n>>\n>>  LOG_DEFINE_CATEGORY(RPiFocus)\n>> diff --git a/src/ipa/raspberrypi/controller/rpi/focus.hpp b/src/ipa/raspberrypi/controller/rpi/focus.hpp\n>> index a9756ea7..131b1d0f 100644\n>> --- a/src/ipa/raspberrypi/controller/rpi/focus.hpp\n>> +++ b/src/ipa/raspberrypi/controller/rpi/focus.hpp\n>> @@ -15,7 +15,7 @@\n>>   * control.\n>>   */\n>>\n>> -namespace RPi {\n>> +namespace RPiController {\n>>\n>>  class Focus : public Algorithm\n>>  {\n>> @@ -25,4 +25,4 @@ public:\n>>  \tvoid Process(StatisticsPtr &stats, Metadata *image_metadata) override;\n>>  };\n>>\n>> -} /* namespace RPi */\n>> +} /* namespace RPiController */\n>> diff --git a/src/ipa/raspberrypi/controller/rpi/geq.cpp b/src/ipa/raspberrypi/controller/rpi/geq.cpp\n>> index ee0cb95d..b6c98414 100644\n>> --- a/src/ipa/raspberrypi/controller/rpi/geq.cpp\n>> +++ b/src/ipa/raspberrypi/controller/rpi/geq.cpp\n>> @@ -12,7 +12,7 @@\n>>\n>>  #include \"geq.hpp\"\n>>\n>> -using namespace RPi;\n>> +using namespace RPiController;\n>>\n>>  // We use the lux status so that we can apply stronger settings in darkness (if\n>>  // necessary).\n>> diff --git a/src/ipa/raspberrypi/controller/rpi/geq.hpp b/src/ipa/raspberrypi/controller/rpi/geq.hpp\n>> index 7d4bd38d..8ba3046b 100644\n>> --- a/src/ipa/raspberrypi/controller/rpi/geq.hpp\n>> +++ b/src/ipa/raspberrypi/controller/rpi/geq.hpp\n>> @@ -9,7 +9,7 @@\n>>  #include \"../algorithm.hpp\"\n>>  #include \"../geq_status.h\"\n>>\n>> -namespace RPi {\n>> +namespace RPiController {\n>>\n>>  // Back End algorithm to apply appropriate GEQ settings.\n>>\n>> @@ -31,4 +31,4 @@ private:\n>>  \tGeqConfig config_;\n>>  };\n>>\n>> -} // namespace RPi\n>> +} // namespace RPiController\n>> diff --git a/src/ipa/raspberrypi/controller/rpi/lux.cpp b/src/ipa/raspberrypi/controller/rpi/lux.cpp\n>> index 154db153..5acd49a0 100644\n>> --- a/src/ipa/raspberrypi/controller/rpi/lux.cpp\n>> +++ b/src/ipa/raspberrypi/controller/rpi/lux.cpp\n>> @@ -13,7 +13,7 @@\n>>\n>>  #include \"lux.hpp\"\n>>\n>> -using namespace RPi;\n>> +using namespace RPiController;\n>>\n>>  #define NAME \"rpi.lux\"\n>>\n>> diff --git a/src/ipa/raspberrypi/controller/rpi/lux.hpp b/src/ipa/raspberrypi/controller/rpi/lux.hpp\n>> index eb935409..7b6c7258 100644\n>> --- a/src/ipa/raspberrypi/controller/rpi/lux.hpp\n>> +++ b/src/ipa/raspberrypi/controller/rpi/lux.hpp\n>> @@ -14,7 +14,7 @@\n>>\n>>  // This is our implementation of the \"lux control algorithm\".\n>>\n>> -namespace RPi {\n>> +namespace RPiController {\n>>\n>>  class Lux : public Algorithm\n>>  {\n>> @@ -39,4 +39,4 @@ private:\n>>  \tstd::mutex mutex_;\n>>  };\n>>\n>> -} // namespace RPi\n>> +} // namespace RPiController\n>> diff --git a/src/ipa/raspberrypi/controller/rpi/noise.cpp b/src/ipa/raspberrypi/controller/rpi/noise.cpp\n>> index 1b84ecb0..9e9eaf1b 100644\n>> --- a/src/ipa/raspberrypi/controller/rpi/noise.cpp\n>> +++ b/src/ipa/raspberrypi/controller/rpi/noise.cpp\n>> @@ -13,7 +13,7 @@\n>>\n>>  #include \"noise.hpp\"\n>>\n>> -using namespace RPi;\n>> +using namespace RPiController;\n>>\n>>  #define NAME \"rpi.noise\"\n>>\n>> diff --git a/src/ipa/raspberrypi/controller/rpi/noise.hpp b/src/ipa/raspberrypi/controller/rpi/noise.hpp\n>> index 25bf1885..6f6e0be9 100644\n>> --- a/src/ipa/raspberrypi/controller/rpi/noise.hpp\n>> +++ b/src/ipa/raspberrypi/controller/rpi/noise.hpp\n>> @@ -11,7 +11,7 @@\n>>\n>>  // This is our implementation of the \"noise algorithm\".\n>>\n>> -namespace RPi {\n>> +namespace RPiController {\n>>\n>>  class Noise : public Algorithm\n>>  {\n>> @@ -29,4 +29,4 @@ private:\n>>  \tstd::atomic<double> mode_factor_;\n>>  };\n>>\n>> -} // namespace RPi\n>> +} // namespace RPiController\n>> diff --git a/src/ipa/raspberrypi/controller/rpi/sdn.cpp b/src/ipa/raspberrypi/controller/rpi/sdn.cpp\n>> index 28d9d983..aa82830b 100644\n>> --- a/src/ipa/raspberrypi/controller/rpi/sdn.cpp\n>> +++ b/src/ipa/raspberrypi/controller/rpi/sdn.cpp\n>> @@ -10,7 +10,7 @@\n>>\n>>  #include \"sdn.hpp\"\n>>\n>> -using namespace RPi;\n>> +using namespace RPiController;\n>>\n>>  // Calculate settings for the spatial denoise block using the noise profile in\n>>  // the image metadata.\n>> diff --git a/src/ipa/raspberrypi/controller/rpi/sdn.hpp b/src/ipa/raspberrypi/controller/rpi/sdn.hpp\n>> index d48aab7e..486c000d 100644\n>> --- a/src/ipa/raspberrypi/controller/rpi/sdn.hpp\n>> +++ b/src/ipa/raspberrypi/controller/rpi/sdn.hpp\n>> @@ -8,7 +8,7 @@\n>>\n>>  #include \"../algorithm.hpp\"\n>>\n>> -namespace RPi {\n>> +namespace RPiController {\n>>\n>>  // Algorithm to calculate correct spatial denoise (SDN) settings.\n>>\n>> @@ -26,4 +26,4 @@ private:\n>>  \tdouble strength_;\n>>  };\n>>\n>> -} // namespace RPi\n>> +} // namespace RPiController\n>> diff --git a/src/ipa/raspberrypi/controller/rpi/sharpen.cpp b/src/ipa/raspberrypi/controller/rpi/sharpen.cpp\n>> index 356c1058..c953a7d9 100644\n>> --- a/src/ipa/raspberrypi/controller/rpi/sharpen.cpp\n>> +++ b/src/ipa/raspberrypi/controller/rpi/sharpen.cpp\n>> @@ -12,7 +12,7 @@\n>>\n>>  #include \"sharpen.hpp\"\n>>\n>> -using namespace RPi;\n>> +using namespace RPiController;\n>>\n>>  #define NAME \"rpi.sharpen\"\n>>\n>> diff --git a/src/ipa/raspberrypi/controller/rpi/sharpen.hpp b/src/ipa/raspberrypi/controller/rpi/sharpen.hpp\n>> index 568521b9..13a076a8 100644\n>> --- a/src/ipa/raspberrypi/controller/rpi/sharpen.hpp\n>> +++ b/src/ipa/raspberrypi/controller/rpi/sharpen.hpp\n>> @@ -11,7 +11,7 @@\n>>\n>>  // This is our implementation of the \"sharpen algorithm\".\n>>\n>> -namespace RPi {\n>> +namespace RPiController {\n>>\n>>  class Sharpen : public SharpenAlgorithm\n>>  {\n>> @@ -31,4 +31,4 @@ private:\n>>  \tdouble user_strength_;\n>>  };\n>>\n>> -} // namespace RPi\n>> +} // namespace RPiController\n>> diff --git a/src/ipa/raspberrypi/controller/sharpen_algorithm.hpp b/src/ipa/raspberrypi/controller/sharpen_algorithm.hpp\n>> index 3b27a745..ca800308 100644\n>> --- a/src/ipa/raspberrypi/controller/sharpen_algorithm.hpp\n>> +++ b/src/ipa/raspberrypi/controller/sharpen_algorithm.hpp\n>> @@ -8,7 +8,7 @@\n>>\n>>  #include \"algorithm.hpp\"\n>>\n>> -namespace RPi {\n>> +namespace RPiController {\n>>\n>>  class SharpenAlgorithm : public Algorithm\n>>  {\n>> @@ -18,4 +18,4 @@ public:\n>>  \tvirtual void SetStrength(double strength) = 0;\n>>  };\n>>\n>> -} // namespace RPi\n>> +} // namespace RPiController\n>> diff --git a/src/ipa/raspberrypi/md_parser.cpp b/src/ipa/raspberrypi/md_parser.cpp\n>> index ca809aa2..d82c102c 100644\n>> --- a/src/ipa/raspberrypi/md_parser.cpp\n>> +++ b/src/ipa/raspberrypi/md_parser.cpp\n>> @@ -11,7 +11,7 @@\n>>\n>>  #include \"md_parser.hpp\"\n>>\n>> -using namespace RPi;\n>> +using namespace RPiController;\n>>\n>>  // This function goes through the embedded data to find the offsets (not\n>>  // values!), in the data block, where the values of the given registers can\n>> diff --git a/src/ipa/raspberrypi/md_parser.hpp b/src/ipa/raspberrypi/md_parser.hpp\n>> index 70d054b2..c9db62c0 100644\n>> --- a/src/ipa/raspberrypi/md_parser.hpp\n>> +++ b/src/ipa/raspberrypi/md_parser.hpp\n>> @@ -50,7 +50,7 @@ parser->Reset();\n>>\n>>  before calling Parse again. */\n>>\n>> -namespace RPi {\n>> +namespace RPiController {\n>>\n>>  // Abstract base class from which other metadata parsers are derived.\n>>\n>> diff --git a/src/ipa/raspberrypi/md_parser_rpi.cpp b/src/ipa/raspberrypi/md_parser_rpi.cpp\n>> index a42b28f7..2b0bcfc5 100644\n>> --- a/src/ipa/raspberrypi/md_parser_rpi.cpp\n>> +++ b/src/ipa/raspberrypi/md_parser_rpi.cpp\n>> @@ -9,7 +9,7 @@\n>>\n>>  #include \"md_parser_rpi.hpp\"\n>>\n>> -using namespace RPi;\n>> +using namespace RPiController;\n>>\n>>  MdParserRPi::MdParserRPi()\n>>  {\n>> diff --git a/src/ipa/raspberrypi/md_parser_rpi.hpp b/src/ipa/raspberrypi/md_parser_rpi.hpp\n>> index 1fa334f4..52f54f00 100644\n>> --- a/src/ipa/raspberrypi/md_parser_rpi.hpp\n>> +++ b/src/ipa/raspberrypi/md_parser_rpi.hpp\n>> @@ -8,7 +8,7 @@\n>>\n>>  #include \"md_parser.hpp\"\n>>\n>> -namespace RPi {\n>> +namespace RPiController {\n>>\n>>  class MdParserRPi : public MdParser\n>>  {\n>> diff --git a/src/ipa/raspberrypi/raspberrypi.cpp b/src/ipa/raspberrypi/raspberrypi.cpp\n>> index 28f81824..0c0dc743 100644\n>> --- a/src/ipa/raspberrypi/raspberrypi.cpp\n>> +++ b/src/ipa/raspberrypi/raspberrypi.cpp\n>> @@ -125,10 +125,10 @@ private:\n>>  \tCameraMode lastMode_;\n>>\n>>  \t/* Raspberry Pi controller specific defines. */\n>> -\tstd::unique_ptr<::RPi::CamHelper> helper_;\n>> -\t::RPi::Controller controller_;\n>> +\tstd::unique_ptr<RPiController::CamHelper> helper_;\n>> +\tRPiController::Controller controller_;\n>>  \tbool controllerInit_;\n>> -\t::RPi::Metadata rpiMetadata_;\n>> +\tRPiController::Metadata rpiMetadata_;\n>>\n>>  \t/*\n>>  \t * We count frames to decide if the frame must be hidden (e.g. from\n>> @@ -211,7 +211,7 @@ void IPARPi::configure(const CameraSensorInfo &sensorInfo,\n>>  \t */\n>>  \tstd::string cameraName(sensorInfo.model);\n>>  \tif (!helper_) {\n>> -\t\thelper_ = std::unique_ptr<::RPi::CamHelper>(::RPi::CamHelper::Create(cameraName));\n>> +\t\thelper_ = std::unique_ptr<RPiController::CamHelper>(RPiController::CamHelper::Create(cameraName));\n>>  \t\t/*\n>>  \t\t * Pass out the sensor config to the pipeline handler in order\n>>  \t\t * to setup the staggered writer class.\n>> @@ -268,7 +268,7 @@ void IPARPi::configure(const CameraSensorInfo &sensorInfo,\n>>  \t\tagcStatus.analogue_gain = DEFAULT_ANALOGUE_GAIN;\n>>  \t}\n>>\n>> -\t::RPi::Metadata metadata;\n>> +\tRPiController::Metadata metadata;\n>>  \tcontroller_.SwitchMode(mode_, &metadata);\n>>\n>>  \t/* SwitchMode may supply updated exposure/gain values to use. */\n>> @@ -391,7 +391,7 @@ void IPARPi::processEvent(const IPAOperationData &event)\n>>\n>>  void IPARPi::reportMetadata()\n>>  {\n>> -\tstd::unique_lock<::RPi::Metadata> lock(rpiMetadata_);\n>> +\tstd::unique_lock<RPiController::Metadata> lock(rpiMetadata_);\n>>\n>>  \t/*\n>>  \t * Certain information about the current frame and how it will be\n>> @@ -496,7 +496,7 @@ void IPARPi::queueRequest(const ControlList &controls)\n>>\n>>  \t\tswitch (ctrl.first) {\n>>  \t\tcase controls::AE_ENABLE: {\n>> -\t\t\t::RPi::Algorithm *agc = controller_.GetAlgorithm(\"agc\");\n>> +\t\t\tRPiController::Algorithm *agc = controller_.GetAlgorithm(\"agc\");\n>>  \t\t\tASSERT(agc);\n>>  \t\t\tif (ctrl.second.get<bool>() == false)\n>>  \t\t\t\tagc->Pause();\n>> @@ -508,7 +508,7 @@ void IPARPi::queueRequest(const ControlList &controls)\n>>  \t\t}\n>>\n>>  \t\tcase controls::EXPOSURE_TIME: {\n>> -\t\t\t::RPi::AgcAlgorithm *agc = dynamic_cast<::RPi::AgcAlgorithm *>(\n>> +\t\t\tRPiController::AgcAlgorithm *agc = dynamic_cast<RPiController::AgcAlgorithm *>(\n>>  \t\t\t\tcontroller_.GetAlgorithm(\"agc\"));\n>>  \t\t\tASSERT(agc);\n>>  \t\t\t/* This expects units of micro-seconds. */\n>> @@ -522,7 +522,7 @@ void IPARPi::queueRequest(const ControlList &controls)\n>>  \t\t}\n>>\n>>  \t\tcase controls::ANALOGUE_GAIN: {\n>> -\t\t\t::RPi::AgcAlgorithm *agc = dynamic_cast<::RPi::AgcAlgorithm *>(\n>> +\t\t\tRPiController::AgcAlgorithm *agc = dynamic_cast<RPiController::AgcAlgorithm *>(\n>>  \t\t\t\tcontroller_.GetAlgorithm(\"agc\"));\n>>  \t\t\tASSERT(agc);\n>>  \t\t\tagc->SetFixedAnalogueGain(ctrl.second.get<float>());\n>> @@ -536,7 +536,7 @@ void IPARPi::queueRequest(const ControlList &controls)\n>>  \t\t}\n>>\n>>  \t\tcase controls::AE_METERING_MODE: {\n>> -\t\t\t::RPi::AgcAlgorithm *agc = dynamic_cast<::RPi::AgcAlgorithm *>(\n>> +\t\t\tRPiController::AgcAlgorithm *agc = dynamic_cast<RPiController::AgcAlgorithm *>(\n>>  \t\t\t\tcontroller_.GetAlgorithm(\"agc\"));\n>>  \t\t\tASSERT(agc);\n>>\n>> @@ -552,7 +552,7 @@ void IPARPi::queueRequest(const ControlList &controls)\n>>  \t\t}\n>>\n>>  \t\tcase controls::AE_CONSTRAINT_MODE: {\n>> -\t\t\t::RPi::AgcAlgorithm *agc = dynamic_cast<::RPi::AgcAlgorithm *>(\n>> +\t\t\tRPiController::AgcAlgorithm *agc = dynamic_cast<RPiController::AgcAlgorithm *>(\n>>  \t\t\t\tcontroller_.GetAlgorithm(\"agc\"));\n>>  \t\t\tASSERT(agc);\n>>\n>> @@ -568,7 +568,7 @@ void IPARPi::queueRequest(const ControlList &controls)\n>>  \t\t}\n>>\n>>  \t\tcase controls::AE_EXPOSURE_MODE: {\n>> -\t\t\t::RPi::AgcAlgorithm *agc = dynamic_cast<::RPi::AgcAlgorithm *>(\n>> +\t\t\tRPiController::AgcAlgorithm *agc = dynamic_cast<RPiController::AgcAlgorithm *>(\n>>  \t\t\t\tcontroller_.GetAlgorithm(\"agc\"));\n>>  \t\t\tASSERT(agc);\n>>\n>> @@ -584,7 +584,7 @@ void IPARPi::queueRequest(const ControlList &controls)\n>>  \t\t}\n>>\n>>  \t\tcase controls::EXPOSURE_VALUE: {\n>> -\t\t\t::RPi::AgcAlgorithm *agc = dynamic_cast<::RPi::AgcAlgorithm *>(\n>> +\t\t\tRPiController::AgcAlgorithm *agc = dynamic_cast<RPiController::AgcAlgorithm *>(\n>>  \t\t\t\tcontroller_.GetAlgorithm(\"agc\"));\n>>  \t\t\tASSERT(agc);\n>>\n>> @@ -600,7 +600,7 @@ void IPARPi::queueRequest(const ControlList &controls)\n>>  \t\t}\n>>\n>>  \t\tcase controls::AWB_ENABLE: {\n>> -\t\t\t::RPi::Algorithm *awb = controller_.GetAlgorithm(\"awb\");\n>> +\t\t\tRPiController::Algorithm *awb = controller_.GetAlgorithm(\"awb\");\n>>  \t\t\tASSERT(awb);\n>>\n>>  \t\t\tif (ctrl.second.get<bool>() == false)\n>> @@ -614,7 +614,7 @@ void IPARPi::queueRequest(const ControlList &controls)\n>>  \t\t}\n>>\n>>  \t\tcase controls::AWB_MODE: {\n>> -\t\t\t::RPi::AwbAlgorithm *awb = dynamic_cast<::RPi::AwbAlgorithm *>(\n>> +\t\t\tRPiController::AwbAlgorithm *awb = dynamic_cast<RPiController::AwbAlgorithm *>(\n>>  \t\t\t\tcontroller_.GetAlgorithm(\"awb\"));\n>>  \t\t\tASSERT(awb);\n>>\n>> @@ -631,7 +631,7 @@ void IPARPi::queueRequest(const ControlList &controls)\n>>\n>>  \t\tcase controls::COLOUR_GAINS: {\n>>  \t\t\tauto gains = ctrl.second.get<Span<const float>>();\n>> -\t\t\t::RPi::AwbAlgorithm *awb = dynamic_cast<::RPi::AwbAlgorithm *>(\n>> +\t\t\tRPiController::AwbAlgorithm *awb = dynamic_cast<RPiController::AwbAlgorithm *>(\n>>  \t\t\t\tcontroller_.GetAlgorithm(\"awb\"));\n>>  \t\t\tASSERT(awb);\n>>\n>> @@ -644,7 +644,7 @@ void IPARPi::queueRequest(const ControlList &controls)\n>>  \t\t}\n>>\n>>  \t\tcase controls::BRIGHTNESS: {\n>> -\t\t\t::RPi::ContrastAlgorithm *contrast = dynamic_cast<::RPi::ContrastAlgorithm *>(\n>> +\t\t\tRPiController::ContrastAlgorithm *contrast = dynamic_cast<RPiController::ContrastAlgorithm *>(\n>>  \t\t\t\tcontroller_.GetAlgorithm(\"contrast\"));\n>>  \t\t\tASSERT(contrast);\n>>\n>> @@ -655,7 +655,7 @@ void IPARPi::queueRequest(const ControlList &controls)\n>>  \t\t}\n>>\n>>  \t\tcase controls::CONTRAST: {\n>> -\t\t\t::RPi::ContrastAlgorithm *contrast = dynamic_cast<::RPi::ContrastAlgorithm *>(\n>> +\t\t\tRPiController::ContrastAlgorithm *contrast = dynamic_cast<RPiController::ContrastAlgorithm *>(\n>>  \t\t\t\tcontroller_.GetAlgorithm(\"contrast\"));\n>>  \t\t\tASSERT(contrast);\n>>\n>> @@ -666,7 +666,7 @@ void IPARPi::queueRequest(const ControlList &controls)\n>>  \t\t}\n>>\n>>  \t\tcase controls::SATURATION: {\n>> -\t\t\t::RPi::CcmAlgorithm *ccm = dynamic_cast<::RPi::CcmAlgorithm *>(\n>> +\t\t\tRPiController::CcmAlgorithm *ccm = dynamic_cast<RPiController::CcmAlgorithm *>(\n>>  \t\t\t\tcontroller_.GetAlgorithm(\"ccm\"));\n>>  \t\t\tASSERT(ccm);\n>>\n>> @@ -677,7 +677,7 @@ void IPARPi::queueRequest(const ControlList &controls)\n>>  \t\t}\n>>\n>>  \t\tcase controls::SHARPNESS: {\n>> -\t\t\t::RPi::SharpenAlgorithm *sharpen = dynamic_cast<::RPi::SharpenAlgorithm *>(\n>> +\t\t\tRPiController::SharpenAlgorithm *sharpen = dynamic_cast<RPiController::SharpenAlgorithm *>(\n>>  \t\t\t\tcontroller_.GetAlgorithm(\"sharpen\"));\n>>  \t\t\tASSERT(sharpen);\n>>\n>> @@ -720,7 +720,7 @@ void IPARPi::prepareISP(unsigned int bufferId)\n>>  \t\tcontroller_.Prepare(&rpiMetadata_);\n>>\n>>  \t\t/* Lock the metadata buffer to avoid constant locks/unlocks. */\n>> -\t\tstd::unique_lock<::RPi::Metadata> lock(rpiMetadata_);\n>> +\t\tstd::unique_lock<RPiController::Metadata> lock(rpiMetadata_);\n>>\n>>  \t\tAwbStatus *awbStatus = rpiMetadata_.GetLocked<AwbStatus>(\"awb.status\");\n>>  \t\tif (awbStatus)\n>> @@ -781,18 +781,18 @@ bool IPARPi::parseEmbeddedData(unsigned int bufferId, struct DeviceStatus &devic\n>>\n>>  \tint size = buffers_.find(bufferId)->second.planes()[0].length;\n>>  \thelper_->Parser().SetBufferSize(size);\n>> -\t::RPi::MdParser::Status status = helper_->Parser().Parse(it->second);\n>> -\tif (status != ::RPi::MdParser::Status::OK) {\n>> +\tRPiController::MdParser::Status status = helper_->Parser().Parse(it->second);\n>> +\tif (status != RPiController::MdParser::Status::OK) {\n>>  \t\tLOG(IPARPI, Error) << \"Embedded Buffer parsing failed, error \" << status;\n>>  \t} else {\n>>  \t\tuint32_t exposure_lines, gain_code;\n>> -\t\tif (helper_->Parser().GetExposureLines(exposure_lines) != ::RPi::MdParser::Status::OK) {\n>> +\t\tif (helper_->Parser().GetExposureLines(exposure_lines) != RPiController::MdParser::Status::OK) {\n>>  \t\t\tLOG(IPARPI, Error) << \"Exposure time failed\";\n>>  \t\t\treturn false;\n>>  \t\t}\n>>\n>>  \t\tdeviceStatus.shutter_speed = helper_->Exposure(exposure_lines);\n>> -\t\tif (helper_->Parser().GetGainCode(gain_code) != ::RPi::MdParser::Status::OK) {\n>> +\t\tif (helper_->Parser().GetGainCode(gain_code) != RPiController::MdParser::Status::OK) {\n>>  \t\t\tLOG(IPARPI, Error) << \"Gain failed\";\n>>  \t\t\treturn false;\n>>  \t\t}\n>> @@ -815,7 +815,7 @@ void IPARPi::processStats(unsigned int bufferId)\n>>  \t}\n>>\n>>  \tbcm2835_isp_stats *stats = static_cast<bcm2835_isp_stats *>(it->second);\n>> -\t::RPi::StatisticsPtr statistics = std::make_shared<bcm2835_isp_stats>(*stats);\n>> +\tRPiController::StatisticsPtr statistics = std::make_shared<bcm2835_isp_stats>(*stats);\n>>  \tcontroller_.Process(statistics, &rpiMetadata_);\n>>\n>>  \tstruct AgcStatus agcStatus;\n>> --\n>> 2.25.1\n>>\n>> _______________________________________________\n>> libcamera-devel mailing list\n>> libcamera-devel@lists.libcamera.org\n>> https://lists.libcamera.org/listinfo/libcamera-devel\n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 739CAC3B5C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 23 Sep 2020 11:08:03 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 4217E62FE8;\n\tWed, 23 Sep 2020 13:08:03 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id EB9D062FD2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 23 Sep 2020 13:08:01 +0200 (CEST)","from [192.168.0.20]\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id B23F9555;\n\tWed, 23 Sep 2020 13:08:00 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"TtwI4gEN\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1600859281;\n\tbh=NRIKFcUq1E8ZSkXuniZ+qGMgMh67+PRbqoucpOIggII=;\n\th=Reply-To:Subject:To:Cc:References:From:Date:In-Reply-To:From;\n\tb=TtwI4gEN18EsoZn9TFVK8bTKuFd6yL5PWikoN4MwX2lqYNrJEcoyciD1yNEnektm9\n\tmaYnTV2AfYdPdT4mJ3QUsDtZYuMBwhqobxafVVuCwJ2WKiBiHJGWWQz3U7cPKCbwT/\n\tFgHt3V0yn1ZCVjrSCt9h6clrBsQay0h2URs3vOdU=","To":"Jacopo Mondi <jacopo@jmondi.org>, Naushir Patuck <naush@raspberrypi.com>","References":"<20200922095018.68434-1-naush@raspberrypi.com>\n\t<20200922095018.68434-4-naush@raspberrypi.com>\n\t<20200923075801.nb7lpauiqekldaes@uno.localdomain>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Autocrypt":"addr=kieran.bingham@ideasonboard.com; keydata=\n\tmQINBFYE/WYBEACs1PwjMD9rgCu1hlIiUA1AXR4rv2v+BCLUq//vrX5S5bjzxKAryRf0uHat\n\tV/zwz6hiDrZuHUACDB7X8OaQcwhLaVlq6byfoBr25+hbZG7G3+5EUl9cQ7dQEdvNj6V6y/SC\n\trRanWfelwQThCHckbobWiQJfK9n7rYNcPMq9B8e9F020LFH7Kj6YmO95ewJGgLm+idg1Kb3C\n\tpotzWkXc1xmPzcQ1fvQMOfMwdS+4SNw4rY9f07Xb2K99rjMwZVDgESKIzhsDB5GY465sCsiQ\n\tcSAZRxqE49RTBq2+EQsbrQpIc8XiffAB8qexh5/QPzCmR4kJgCGeHIXBtgRj+nIkCJPZvZtf\n\tKr2EAbc6tgg6DkAEHJb+1okosV09+0+TXywYvtEop/WUOWQ+zo+Y/OBd+8Ptgt1pDRyOBzL8\n\tRXa8ZqRf0Mwg75D+dKntZeJHzPRJyrlfQokngAAs4PaFt6UfS+ypMAF37T6CeDArQC41V3ko\n\tlPn1yMsVD0p+6i3DPvA/GPIksDC4owjnzVX9kM8Zc5Cx+XoAN0w5Eqo4t6qEVbuettxx55gq\n\t8K8FieAjgjMSxngo/HST8TpFeqI5nVeq0/lqtBRQKumuIqDg+Bkr4L1V/PSB6XgQcOdhtd36\n\tOe9X9dXB8YSNt7VjOcO7BTmFn/Z8r92mSAfHXpb07YJWJosQOQARAQABtDBLaWVyYW4gQmlu\n\tZ2hhbSA8a2llcmFuLmJpbmdoYW1AaWRlYXNvbmJvYXJkLmNvbT6JAlcEEwEKAEECGwMFCwkI\n\tBwIGFQgJCgsCBBYCAwECHgECF4ACGQEWIQSQLdeYP70o/eNy1HqhHkZyEKRh/QUCXWTtygUJ\n\tCyJXZAAKCRChHkZyEKRh/f8dEACTDsbLN2nioNZMwyLuQRUAFcXNolDX48xcUXsWS2QjxaPm\n\tVsJx8Uy8aYkS85mdPBh0C83OovQR/OVbr8AxhGvYqBs3nQvbWuTl/+4od7DfK2VZOoKBAu5S\n\tQK2FYuUcikDqYcFWJ8DQnubxfE8dvzojHEkXw0sA4igINHDDFX3HJGZtLio+WpEFQtCbfTAG\n\tYZslasz1YZRbwEdSsmO3/kqy5eMnczlm8a21A3fKUo3g8oAZEFM+f4DUNzqIltg31OAB/kZS\n\tenKZQ/SWC8PmLg/ZXBrReYakxXtkP6w3FwMlzOlhGxqhIRNiAJfXJBaRhuUWzPOpEDE9q5YJ\n\tBmqQL2WJm1VSNNVxbXJHpaWMH1sA2R00vmvRrPXGwyIO0IPYeUYQa3gsy6k+En/aMQJd27dp\n\taScf9am9PFICPY5T4ppneeJLif2lyLojo0mcHOV+uyrds9XkLpp14GfTkeKPdPMrLLTsHRfH\n\tfA4I4OBpRrEPiGIZB/0im98MkGY/Mu6qxeZmYLCcgD6qz4idOvfgVOrNh+aA8HzIVR+RMW8H\n\tQGBN9f0E3kfwxuhl3omo6V7lDw8XOdmuWZNC9zPq1UfryVHANYbLGz9KJ4Aw6M+OgBC2JpkD\n\thXMdHUkC+d20dwXrwHTlrJi1YNp6rBc+xald3wsUPOZ5z8moTHUX/uPA/qhGsbkCDQRWBP1m\n\tARAAzijkb+Sau4hAncr1JjOY+KyFEdUNxRy+hqTJdJfaYihxyaj0Ee0P0zEi35CbE6lgU0Uz\n\ttih9fiUbSV3wfsWqg1Ut3/5rTKu7kLFp15kF7eqvV4uezXRD3Qu4yjv/rMmEJbbD4cTvGCYI\n\td6MDC417f7vK3hCbCVIZSp3GXxyC1LU+UQr3fFcOyCwmP9vDUR9JV0BSqHHxRDdpUXE26Dk6\n\tmhf0V1YkspE5St814ETXpEus2urZE5yJIUROlWPIL+hm3NEWfAP06vsQUyLvr/GtbOT79vXl\n\tEn1aulcYyu20dRRxhkQ6iILaURcxIAVJJKPi8dsoMnS8pB0QW12AHWuirPF0g6DiuUfPmrA5\n\tPKe56IGlpkjc8cO51lIxHkWTpCMWigRdPDexKX+Sb+W9QWK/0JjIc4t3KBaiG8O4yRX8ml2R\n\t+rxfAVKM6V769P/hWoRGdgUMgYHFpHGSgEt80OKK5HeUPy2cngDUXzwrqiM5Sz6Od0qw5pCk\n\tNlXqI0W/who0iSVM+8+RmyY0OEkxEcci7rRLsGnM15B5PjLJjh1f2ULYkv8s4SnDwMZ/kE04\n\t/UqCMK/KnX8pwXEMCjz0h6qWNpGwJ0/tYIgQJZh6bqkvBrDogAvuhf60Sogw+mH8b+PBlx1L\n\toeTK396wc+4c3BfiC6pNtUS5GpsPMMjYMk7kVvEAEQEAAYkCPAQYAQoAJgIbDBYhBJAt15g/\n\tvSj943LUeqEeRnIQpGH9BQJdizzIBQkLSKZiAAoJEKEeRnIQpGH9eYgQAJpjaWNgqNOnMTmD\n\tMJggbwjIotypzIXfhHNCeTkG7+qCDlSaBPclcPGYrTwCt0YWPU2TgGgJrVhYT20ierN8LUvj\n\t6qOPTd+Uk7NFzL65qkh80ZKNBFddx1AabQpSVQKbdcLb8OFs85kuSvFdgqZwgxA1vl4TFhNz\n\tPZ79NAmXLackAx3sOVFhk4WQaKRshCB7cSl+RIng5S/ThOBlwNlcKG7j7W2MC06BlTbdEkUp\n\tECzuuRBv8wX4OQl+hbWbB/VKIx5HKlLu1eypen/5lNVzSqMMIYkkZcjV2SWQyUGxSwq0O/sx\n\tS0A8/atCHUXOboUsn54qdxrVDaK+6jIAuo8JiRWctP16KjzUM7MO0/+4zllM8EY57rXrj48j\n\tsbEYX0YQnzaj+jO6kJtoZsIaYR7rMMq9aUAjyiaEZpmP1qF/2sYenDx0Fg2BSlLvLvXM0vU8\n\tpQk3kgDu7kb/7PRYrZvBsr21EIQoIjXbZxDz/o7z95frkP71EaICttZ6k9q5oxxA5WC6sTXc\n\tMW8zs8avFNuA9VpXt0YupJd2ijtZy2mpZNG02fFVXhIn4G807G7+9mhuC4XG5rKlBBUXTvPU\n\tAfYnB4JBDLmLzBFavQfvonSfbitgXwCG3vS+9HEwAjU30Bar1PEOmIbiAoMzuKeRm2LVpmq4\n\tWZw01QYHU/GUV/zHJSFk","Organization":"Ideas on Board","Message-ID":"<49236496-bca5-b8aa-b1d3-7376fb18cf3e@ideasonboard.com>","Date":"Wed, 23 Sep 2020 12:07:58 +0100","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101\n\tThunderbird/68.10.0","MIME-Version":"1.0","In-Reply-To":"<20200923075801.nb7lpauiqekldaes@uno.localdomain>","Content-Language":"en-GB","Subject":"Re: [libcamera-devel] [PATCH 3/4] ipa: raspberrypi: Rename the\n\tcontroller namespace from Rpi to RpiController","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Reply-To":"kieran.bingham@ideasonboard.com","Cc":"libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]