summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2020-08-22 17:23:37 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2020-08-25 02:03:16 +0300
commitf2734ff3ab09d3ab78321daf61d18cb628da2b98 (patch)
tree5604776f1d76221a964319e60500eb8106657333
parentb869d4463ef38934da35ffaf287870541e0dee47 (diff)
libcamera: Replace utils::clamp() with std::clamp()
Now that libcamera uses C++17, the C++ standard library provides std::clamp(). Drop our custom utils::clamp() function. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
-rw-r--r--include/libcamera/internal/utils.h7
-rw-r--r--src/ipa/rkisp1/rkisp1.cpp11
-rw-r--r--src/libcamera/pipeline/ipu3/imgu.cpp3
-rw-r--r--src/libcamera/pipeline/ipu3/ipu3.cpp12
-rw-r--r--src/libcamera/pipeline/vimc/vimc.cpp2
-rw-r--r--src/libcamera/utils.cpp8
6 files changed, 14 insertions, 29 deletions
diff --git a/include/libcamera/internal/utils.h b/include/libcamera/internal/utils.h
index 45cd6f12..a1b644b0 100644
--- a/include/libcamera/internal/utils.h
+++ b/include/libcamera/internal/utils.h
@@ -65,13 +65,6 @@ unsigned int set_overlap(InputIt1 first1, InputIt1 last1,
return count;
}
-/* C++11 doesn't provide std::clamp */
-template <typename T>
-const T& clamp(const T& v, const T& lo, const T& hi)
-{
- return std::max(lo, std::min(v, hi));
-}
-
using clock = std::chrono::steady_clock;
using duration = std::chrono::steady_clock::duration;
using time_point = std::chrono::steady_clock::time_point;
diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
index 4bb16273..3a1c50c4 100644
--- a/src/ipa/rkisp1/rkisp1.cpp
+++ b/src/ipa/rkisp1/rkisp1.cpp
@@ -24,7 +24,6 @@
#include <libipa/ipa_interface_wrapper.h>
#include "libcamera/internal/log.h"
-#include "libcamera/internal/utils.h"
namespace libcamera {
@@ -234,13 +233,13 @@ void IPARkISP1::updateStatistics(unsigned int frame,
double exposure;
exposure = factor * exposure_ * gain_ / minGain_;
- exposure_ = utils::clamp<uint64_t>((uint64_t)exposure,
- minExposure_,
- maxExposure_);
+ exposure_ = std::clamp<uint64_t>((uint64_t)exposure,
+ minExposure_,
+ maxExposure_);
exposure = exposure / exposure_ * minGain_;
- gain_ = utils::clamp<uint64_t>((uint64_t)exposure,
- minGain_, maxGain_);
+ gain_ = std::clamp<uint64_t>((uint64_t)exposure,
+ minGain_, maxGain_);
setControls(frame + 1);
}
diff --git a/src/libcamera/pipeline/ipu3/imgu.cpp b/src/libcamera/pipeline/ipu3/imgu.cpp
index eb829e09..a4d74a62 100644
--- a/src/libcamera/pipeline/ipu3/imgu.cpp
+++ b/src/libcamera/pipeline/ipu3/imgu.cpp
@@ -7,6 +7,7 @@
#include "imgu.h"
+#include <algorithm>
#include <cmath>
#include <limits>
@@ -129,7 +130,7 @@ void calculateBDSHeight(ImgUDevice::Pipe *pipe, const Size &iif, const Size &gdc
if (!isSameRatio(pipe->input, gdc)) {
float estIFHeight = (iif.width * gdc.height) /
static_cast<float>(gdc.width);
- estIFHeight = utils::clamp<float>(estIFHeight, minIFHeight, iif.height);
+ estIFHeight = std::clamp<float>(estIFHeight, minIFHeight, iif.height);
bool found = false;
ifHeight = utils::alignUp(estIFHeight, IF_ALIGN_H);
diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
index 019e50b8..2d881fe2 100644
--- a/src/libcamera/pipeline/ipu3/ipu3.cpp
+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
@@ -240,15 +240,15 @@ CameraConfiguration::Status IPU3CameraConfiguration::validate()
unsigned int limit;
limit = utils::alignDown(cio2Configuration_.size.width - 1,
IMGU_OUTPUT_WIDTH_MARGIN);
- cfg->size.width = utils::clamp(cfg->size.width,
- IMGU_OUTPUT_MIN_SIZE.width,
- limit);
+ cfg->size.width = std::clamp(cfg->size.width,
+ IMGU_OUTPUT_MIN_SIZE.width,
+ limit);
limit = utils::alignDown(cio2Configuration_.size.height - 1,
IMGU_OUTPUT_HEIGHT_MARGIN);
- cfg->size.height = utils::clamp(cfg->size.height,
- IMGU_OUTPUT_MIN_SIZE.height,
- limit);
+ cfg->size.height = std::clamp(cfg->size.height,
+ IMGU_OUTPUT_MIN_SIZE.height,
+ limit);
cfg->size.alignDownTo(IMGU_OUTPUT_WIDTH_ALIGN,
IMGU_OUTPUT_HEIGHT_ALIGN);
diff --git a/src/libcamera/pipeline/vimc/vimc.cpp b/src/libcamera/pipeline/vimc/vimc.cpp
index cf244f11..7e237650 100644
--- a/src/libcamera/pipeline/vimc/vimc.cpp
+++ b/src/libcamera/pipeline/vimc/vimc.cpp
@@ -360,7 +360,7 @@ int PipelineHandlerVimc::processControls(VimcCameraData *data, Request *request)
}
int32_t value = lroundf(it.second.get<float>() * 128 + offset);
- controls.set(cid, utils::clamp(value, 0, 255));
+ controls.set(cid, std::clamp(value, 0, 255));
}
for (const auto &ctrl : controls)
diff --git a/src/libcamera/utils.cpp b/src/libcamera/utils.cpp
index 615df46a..a5232902 100644
--- a/src/libcamera/utils.cpp
+++ b/src/libcamera/utils.cpp
@@ -147,14 +147,6 @@ std::string dirname(const std::string &path)
*/
/**
- * \fn libcamera::utils::clamp(const T& v, const T& lo, const T& hi)
- * \param[in] v The value to clamp
- * \param[in] lo The lower boundary to clamp v to
- * \param[in] hi The higher boundary to clamp v to
- * \return lo if v is less than lo, hi if v is greater than hi, otherwise v
- */
-
-/**
* \typedef clock
* \brief The libcamera clock (monotonic)
*/