From cc137b1c6d5dbfc5365f2eae4e53dab9ca134224 Mon Sep 17 00:00:00 2001 From: Milan Zamazal Date: Fri, 18 Jul 2025 16:44:44 +0200 Subject: [PATCH] libcamera: software_isp: Remove type casts in statistics computation Type casting from unsigned int to int performed in stats computation is unnecessary, window_.width is unsigned and the array index is always non-negative. Let's simply use unsigned int in all the SwStatsCpu:stats* methods. Signed-off-by: Milan Zamazal Reviewed-by: Umang Jain Reviewed-by: Kieran Bingham Signed-off-by: Kieran Bingham --- src/libcamera/software_isp/swstats_cpu.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/libcamera/software_isp/swstats_cpu.cpp b/src/libcamera/software_isp/swstats_cpu.cpp index c520c806..4b77b360 100644 --- a/src/libcamera/software_isp/swstats_cpu.cpp +++ b/src/libcamera/software_isp/swstats_cpu.cpp @@ -175,7 +175,7 @@ void SwStatsCpu::statsBGGR8Line0(const uint8_t *src[]) std::swap(src0, src1); /* x += 4 sample every other 2x2 block */ - for (int x = 0; x < (int)window_.width; x += 4) { + for (unsigned int x = 0; x < window_.width; x += 4) { b = src0[x]; g = src0[x + 1]; g2 = src1[x]; @@ -200,7 +200,7 @@ void SwStatsCpu::statsBGGR10Line0(const uint8_t *src[]) std::swap(src0, src1); /* x += 4 sample every other 2x2 block */ - for (int x = 0; x < (int)window_.width; x += 4) { + for (unsigned int x = 0; x < window_.width; x += 4) { b = src0[x]; g = src0[x + 1]; g2 = src1[x]; @@ -226,7 +226,7 @@ void SwStatsCpu::statsBGGR12Line0(const uint8_t *src[]) std::swap(src0, src1); /* x += 4 sample every other 2x2 block */ - for (int x = 0; x < (int)window_.width; x += 4) { + for (unsigned int x = 0; x < window_.width; x += 4) { b = src0[x]; g = src0[x + 1]; g2 = src1[x]; @@ -245,7 +245,7 @@ void SwStatsCpu::statsBGGR10PLine0(const uint8_t *src[]) { const uint8_t *src0 = src[1] + window_.x * 5 / 4; const uint8_t *src1 = src[2] + window_.x * 5 / 4; - const int widthInBytes = window_.width * 5 / 4; + const unsigned int widthInBytes = window_.width * 5 / 4; if (swapLines_) std::swap(src0, src1); @@ -253,7 +253,7 @@ void SwStatsCpu::statsBGGR10PLine0(const uint8_t *src[]) SWSTATS_START_LINE_STATS(uint8_t) /* x += 5 sample every other 2x2 block */ - for (int x = 0; x < widthInBytes; x += 5) { + for (unsigned int x = 0; x < widthInBytes; x += 5) { /* BGGR */ b = src0[x]; g = src0[x + 1]; @@ -271,7 +271,7 @@ void SwStatsCpu::statsGBRG10PLine0(const uint8_t *src[]) { const uint8_t *src0 = src[1] + window_.x * 5 / 4; const uint8_t *src1 = src[2] + window_.x * 5 / 4; - const int widthInBytes = window_.width * 5 / 4; + const unsigned int widthInBytes = window_.width * 5 / 4; if (swapLines_) std::swap(src0, src1); @@ -279,7 +279,7 @@ void SwStatsCpu::statsGBRG10PLine0(const uint8_t *src[]) SWSTATS_START_LINE_STATS(uint8_t) /* x += 5 sample every other 2x2 block */ - for (int x = 0; x < widthInBytes; x += 5) { + for (unsigned int x = 0; x < widthInBytes; x += 5) { /* GBRG */ g = src0[x]; b = src0[x + 1];