[v3,1/9] ipa: rpi: Rename Matrix to Matrix3x3
diff mbox series

Message ID 20241120142807.2093301-2-stefan.klug@ideasonboard.com
State New
Headers show
Series
  • Move Matrix class from libipa to libcamera
Related show

Commit Message

Stefan Klug Nov. 20, 2024, 2:27 p.m. UTC
The upcoming patches will introduce a Matrix class into
libcamera/internal. That name clashes with the Matrix class from the
RaspberryPi ccm implementation. Rename the rpi version to Matrix3x3 to
prevent the name clash. Matrix3x3 will be replaced by the generic
implementation later.

Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

---
Changes in v3:
- Collect tags
- Fixed typo in commit msg
---
 src/ipa/rpi/controller/rpi/ccm.cpp | 18 +++++++++---------
 src/ipa/rpi/controller/rpi/ccm.h   | 20 ++++++++++----------
 2 files changed, 19 insertions(+), 19 deletions(-)

Patch
diff mbox series

diff --git a/src/ipa/rpi/controller/rpi/ccm.cpp b/src/ipa/rpi/controller/rpi/ccm.cpp
index aefa580c9a4b..7f63f3fdb702 100644
--- a/src/ipa/rpi/controller/rpi/ccm.cpp
+++ b/src/ipa/rpi/controller/rpi/ccm.cpp
@@ -29,17 +29,17 @@  LOG_DEFINE_CATEGORY(RPiCcm)
 
 #define NAME "rpi.ccm"
 
-Matrix::Matrix()
+Matrix3x3::Matrix3x3()
 {
 	memset(m, 0, sizeof(m));
 }
-Matrix::Matrix(double m0, double m1, double m2, double m3, double m4, double m5,
+Matrix3x3::Matrix3x3(double m0, double m1, double m2, double m3, double m4, double m5,
 	       double m6, double m7, double m8)
 {
 	m[0][0] = m0, m[0][1] = m1, m[0][2] = m2, m[1][0] = m3, m[1][1] = m4,
 	m[1][2] = m5, m[2][0] = m6, m[2][1] = m7, m[2][2] = m8;
 }
-int Matrix::read(const libcamera::YamlObject &params)
+int Matrix3x3::read(const libcamera::YamlObject &params)
 {
 	double *ptr = (double *)m;
 
@@ -125,7 +125,7 @@  bool getLocked(Metadata *metadata, std::string const &tag, T &value)
 	return true;
 }
 
-Matrix calculateCcm(std::vector<CtCcm> const &ccms, double ct)
+Matrix3x3 calculateCcm(std::vector<CtCcm> const &ccms, double ct)
 {
 	if (ct <= ccms.front().ct)
 		return ccms.front().ccm;
@@ -141,13 +141,13 @@  Matrix calculateCcm(std::vector<CtCcm> const &ccms, double ct)
 	}
 }
 
-Matrix applySaturation(Matrix const &ccm, double saturation)
+Matrix3x3 applySaturation(Matrix3x3 const &ccm, double saturation)
 {
-	Matrix RGB2Y(0.299, 0.587, 0.114, -0.169, -0.331, 0.500, 0.500, -0.419,
+	Matrix3x3 RGB2Y(0.299, 0.587, 0.114, -0.169, -0.331, 0.500, 0.500, -0.419,
 		     -0.081);
-	Matrix Y2RGB(1.000, 0.000, 1.402, 1.000, -0.345, -0.714, 1.000, 1.771,
+	Matrix3x3 Y2RGB(1.000, 0.000, 1.402, 1.000, -0.345, -0.714, 1.000, 1.771,
 		     0.000);
-	Matrix S(1, 0, 0, 0, saturation, 0, 0, 0, saturation);
+	Matrix3x3 S(1, 0, 0, 0, saturation, 0, 0, 0, saturation);
 	return Y2RGB * S * RGB2Y * ccm;
 }
 
@@ -170,7 +170,7 @@  void Ccm::prepare(Metadata *imageMetadata)
 		LOG(RPiCcm, Warning) << "no colour temperature found";
 	if (!luxOk)
 		LOG(RPiCcm, Warning) << "no lux value found";
-	Matrix ccm = calculateCcm(config_.ccms, awb.temperatureK);
+	Matrix3x3 ccm = calculateCcm(config_.ccms, awb.temperatureK);
 	double saturation = saturation_;
 	struct CcmStatus ccmStatus;
 	ccmStatus.saturation = saturation;
diff --git a/src/ipa/rpi/controller/rpi/ccm.h b/src/ipa/rpi/controller/rpi/ccm.h
index 4e5b33fefa4e..8e7f9616c2ab 100644
--- a/src/ipa/rpi/controller/rpi/ccm.h
+++ b/src/ipa/rpi/controller/rpi/ccm.h
@@ -16,22 +16,22 @@  namespace RPiController {
 
 /* Algorithm to calculate colour matrix. Should be placed after AWB. */
 
-struct Matrix {
-	Matrix(double m0, double m1, double m2, double m3, double m4, double m5,
+struct Matrix3x3 {
+	Matrix3x3(double m0, double m1, double m2, double m3, double m4, double m5,
 	       double m6, double m7, double m8);
-	Matrix();
+	Matrix3x3();
 	double m[3][3];
 	int read(const libcamera::YamlObject &params);
 };
-static inline Matrix operator*(double d, Matrix const &m)
+static inline Matrix3x3 operator*(double d, Matrix3x3 const &m)
 {
-	return Matrix(m.m[0][0] * d, m.m[0][1] * d, m.m[0][2] * d,
+	return Matrix3x3(m.m[0][0] * d, m.m[0][1] * d, m.m[0][2] * d,
 		      m.m[1][0] * d, m.m[1][1] * d, m.m[1][2] * d,
 		      m.m[2][0] * d, m.m[2][1] * d, m.m[2][2] * d);
 }
-static inline Matrix operator*(Matrix const &m1, Matrix const &m2)
+static inline Matrix3x3 operator*(Matrix3x3 const &m1, Matrix3x3 const &m2)
 {
-	Matrix m;
+	Matrix3x3 m;
 	for (int i = 0; i < 3; i++)
 		for (int j = 0; j < 3; j++)
 			m.m[i][j] = m1.m[i][0] * m2.m[0][j] +
@@ -39,9 +39,9 @@  static inline Matrix operator*(Matrix const &m1, Matrix const &m2)
 				    m1.m[i][2] * m2.m[2][j];
 	return m;
 }
-static inline Matrix operator+(Matrix const &m1, Matrix const &m2)
+static inline Matrix3x3 operator+(Matrix3x3 const &m1, Matrix3x3 const &m2)
 {
-	Matrix m;
+	Matrix3x3 m;
 	for (int i = 0; i < 3; i++)
 		for (int j = 0; j < 3; j++)
 			m.m[i][j] = m1.m[i][j] + m2.m[i][j];
@@ -50,7 +50,7 @@  static inline Matrix operator+(Matrix const &m1, Matrix const &m2)
 
 struct CtCcm {
 	double ct;
-	Matrix ccm;
+	Matrix3x3 ccm;
 };
 
 struct CcmConfig {