[v2,4/4] libcamera: Standardize on 'const auto'
diff mbox series

Message ID 20260212151238.3736234-5-laurent.pinchart@ideasonboard.com
State New
Headers show
Series
  • libcamera: Clean up iterators
Related show

Commit Message

Laurent Pinchart Feb. 12, 2026, 3:12 p.m. UTC
'const auto' and 'auto const' are interchanggeable in C++. There are 446
occurrences of the former in the code base, and 67 occurrences of the
latter. Standardize on the winner.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 .../guides/application-developer.rst          |  2 +-
 include/libcamera/base/utils.h                |  2 +-
 src/apps/common/stream_options.cpp            |  4 ++--
 src/ipa/ipu3/ipu3.cpp                         |  8 +++----
 src/ipa/mali-c55/mali-c55.cpp                 |  8 +++----
 src/ipa/rkisp1/rkisp1.cpp                     |  8 +++----
 src/ipa/rpi/common/ipa_base.cpp               |  4 ++--
 src/ipa/rpi/controller/controller.cpp         |  6 ++---
 src/ipa/rpi/controller/rpi/agc_channel.cpp    |  2 +-
 src/ipa/rpi/controller/rpi/lux.cpp            |  2 +-
 src/ipa/rpi/pisp/pisp.cpp                     |  2 +-
 src/ipa/rpi/vc4/vc4.cpp                       |  2 +-
 src/ipa/simple/soft_simple.cpp                |  8 +++----
 src/libcamera/delayed_controls.cpp            |  4 ++--
 src/libcamera/media_device.cpp                |  2 +-
 src/libcamera/pipeline/mali-c55/mali-c55.cpp  |  2 +-
 .../pipeline/rpi/common/delayed_controls.cpp  |  4 ++--
 .../pipeline/rpi/common/pipeline_base.cpp     | 24 +++++++++----------
 .../pipeline/rpi/common/rpi_stream.cpp        |  8 +++----
 src/libcamera/pipeline/rpi/pisp/pisp.cpp      |  6 ++---
 src/libcamera/pipeline/rpi/vc4/vc4.cpp        |  2 +-
 src/libcamera/pipeline/virtual/virtual.cpp    |  2 +-
 src/libcamera/stream.cpp                      |  4 ++--
 src/libcamera/v4l2_videodevice.cpp            |  2 +-
 test/media_device/media_device_print_test.cpp | 10 ++++----
 test/v4l2_videodevice/buffer_cache.cpp        |  2 +-
 26 files changed, 65 insertions(+), 65 deletions(-)

Patch
diff mbox series

diff --git a/Documentation/guides/application-developer.rst b/Documentation/guides/application-developer.rst
index 06c07d1e9449..918077af1d22 100644
--- a/Documentation/guides/application-developer.rst
+++ b/Documentation/guides/application-developer.rst
@@ -82,7 +82,7 @@  cameras in the system:
 
 .. code:: cpp
 
-   for (auto const &camera : cm->cameras())
+   for (const auto &camera : cm->cameras())
        std::cout << camera->id() << std::endl;
 
 Printing the camera id lists the machine-readable unique identifiers, so for
diff --git a/include/libcamera/base/utils.h b/include/libcamera/base/utils.h
index 37f0d065f82f..7083b7ce9ce9 100644
--- a/include/libcamera/base/utils.h
+++ b/include/libcamera/base/utils.h
@@ -340,7 +340,7 @@  public:
 	template<typename Period>
 	double get() const
 	{
-		auto const c = std::chrono::duration_cast<std::chrono::duration<double, Period>>(*this);
+		const auto c = std::chrono::duration_cast<std::chrono::duration<double, Period>>(*this);
 		return c.count();
 	}
 
diff --git a/src/apps/common/stream_options.cpp b/src/apps/common/stream_options.cpp
index 288f86530351..54e00737cb65 100644
--- a/src/apps/common/stream_options.cpp
+++ b/src/apps/common/stream_options.cpp
@@ -48,7 +48,7 @@  std::vector<StreamRole> StreamKeyValueParser::roles(const OptionValue &values)
 	const std::vector<OptionValue> &streamParameters = values.toArray();
 
 	std::vector<StreamRole> roles;
-	for (auto const &value : streamParameters) {
+	for (const auto &value : streamParameters) {
 		/* If a role is invalid default it to viewfinder. */
 		roles.push_back(parseRole(value.toKeyValues()).value_or(StreamRole::Viewfinder));
 	}
@@ -81,7 +81,7 @@  int StreamKeyValueParser::updateConfiguration(CameraConfiguration *config,
 	}
 
 	unsigned int i = 0;
-	for (auto const &value : streamParameters) {
+	for (const auto &value : streamParameters) {
 		KeyValueParser::Options opts = value.toKeyValues();
 		StreamConfiguration &cfg = config->at(i++);
 
diff --git a/src/ipa/ipu3/ipu3.cpp b/src/ipa/ipu3/ipu3.cpp
index 03d873f2c74f..92f5bd072134 100644
--- a/src/ipa/ipu3/ipu3.cpp
+++ b/src/ipa/ipu3/ipu3.cpp
@@ -493,7 +493,7 @@  int IPAIPU3::configure(const IPAConfigInfo &configInfo,
 	/* Update the IPASessionConfiguration using the sensor settings. */
 	updateSessionConfiguration(sensorCtrls_);
 
-	for (auto const &algo : algorithms()) {
+	for (const auto &algo : algorithms()) {
 		int ret = algo->configure(context_, configInfo);
 		if (ret)
 			return ret;
@@ -563,7 +563,7 @@  void IPAIPU3::computeParams(const uint32_t frame, const uint32_t bufferId)
 
 	IPAFrameContext &frameContext = context_.frameContexts.get(frame);
 
-	for (auto const &algo : algorithms())
+	for (const auto &algo : algorithms())
 		algo->prepare(context_, frame, frameContext, params);
 
 	paramsComputed.emit(frame);
@@ -601,7 +601,7 @@  void IPAIPU3::processStats(const uint32_t frame,
 
 	ControlList metadata(controls::controls);
 
-	for (auto const &algo : algorithms())
+	for (const auto &algo : algorithms())
 		algo->process(context_, frame, frameContext, stats, metadata);
 
 	setControls(frame);
@@ -629,7 +629,7 @@  void IPAIPU3::queueRequest(const uint32_t frame, const ControlList &controls)
 {
 	IPAFrameContext &frameContext = context_.frameContexts.alloc(frame);
 
-	for (auto const &algo : algorithms())
+	for (const auto &algo : algorithms())
 		algo->queueRequest(context_, frame, frameContext, controls);
 }
 
diff --git a/src/ipa/mali-c55/mali-c55.cpp b/src/ipa/mali-c55/mali-c55.cpp
index c626e246643b..fd5c9563d6c3 100644
--- a/src/ipa/mali-c55/mali-c55.cpp
+++ b/src/ipa/mali-c55/mali-c55.cpp
@@ -285,7 +285,7 @@  int IPAMaliC55::configure(const IPAConfigInfo &ipaConfig, uint8_t bayerOrder,
 				   static_cast<BayerFormat::Order>(bayerOrder));
 	updateControls(info, ipaConfig.sensorControls, ipaControls);
 
-	for (auto const &a : algorithms()) {
+	for (const auto &a : algorithms()) {
 		Algorithm *algo = static_cast<Algorithm *>(a.get());
 
 		int ret = algo->configure(context_, info);
@@ -324,7 +324,7 @@  void IPAMaliC55::queueRequest(const uint32_t request, const ControlList &control
 {
 	IPAFrameContext &frameContext = context_.frameContexts.alloc(request);
 
-	for (auto const &a : algorithms()) {
+	for (const auto &a : algorithms()) {
 		Algorithm *algo = static_cast<Algorithm *>(a.get());
 
 		algo->queueRequest(context_, request, frameContext, controls);
@@ -337,7 +337,7 @@  void IPAMaliC55::fillParams(unsigned int request,
 	IPAFrameContext &frameContext = context_.frameContexts.get(request);
 	MaliC55Params params(buffers_.at(bufferId).planes()[0]);
 
-	for (auto const &algo : algorithms())
+	for (const auto &algo : algorithms())
 		algo->prepare(context_, request, frameContext, &params);
 
 	paramsComputed.emit(request, params.bytesused());
@@ -359,7 +359,7 @@  void IPAMaliC55::processStats(unsigned int request, unsigned int bufferId,
 
 	ControlList metadata(controls::controls);
 
-	for (auto const &a : algorithms()) {
+	for (const auto &a : algorithms()) {
 		Algorithm *algo = static_cast<Algorithm *>(a.get());
 
 		algo->process(context_, request, frameContext, stats, metadata);
diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
index fbcc39103d4b..373a343bddd0 100644
--- a/src/ipa/rkisp1/rkisp1.cpp
+++ b/src/ipa/rkisp1/rkisp1.cpp
@@ -280,7 +280,7 @@  int IPARkISP1::configure(const IPAConfigInfo &ipaConfig,
 			return format.colourEncoding == PixelFormatInfo::ColourEncodingRAW;
 		});
 
-	for (auto const &a : algorithms()) {
+	for (const auto &a : algorithms()) {
 		Algorithm *algo = static_cast<Algorithm *>(a.get());
 
 		/* Disable algorithms that don't support raw formats. */
@@ -331,7 +331,7 @@  void IPARkISP1::queueRequest(const uint32_t frame, const ControlList &controls)
 	IPAFrameContext &frameContext = context_.frameContexts.alloc(frame);
 	context_.debugMetadata.enableByControl(controls);
 
-	for (auto const &a : algorithms()) {
+	for (const auto &a : algorithms()) {
 		Algorithm *algo = static_cast<Algorithm *>(a.get());
 		if (algo->disabled_)
 			continue;
@@ -346,7 +346,7 @@  void IPARkISP1::computeParams(const uint32_t frame, const uint32_t bufferId)
 	RkISP1Params params(context_.configuration.paramFormat,
 			    mappedBuffers_.at(bufferId).planes()[0]);
 
-	for (auto const &algo : algorithms())
+	for (const auto &algo : algorithms())
 		algo->prepare(context_, frame, frameContext, &params);
 
 	paramsComputed.emit(frame, params.bytesused());
@@ -373,7 +373,7 @@  void IPARkISP1::processStats(const uint32_t frame, const uint32_t bufferId,
 
 	ControlList metadata(controls::controls);
 
-	for (auto const &a : algorithms()) {
+	for (const auto &a : algorithms()) {
 		Algorithm *algo = static_cast<Algorithm *>(a.get());
 		if (algo->disabled_)
 			continue;
diff --git a/src/ipa/rpi/common/ipa_base.cpp b/src/ipa/rpi/common/ipa_base.cpp
index 7072b38c765e..17f6850f247e 100644
--- a/src/ipa/rpi/common/ipa_base.cpp
+++ b/src/ipa/rpi/common/ipa_base.cpp
@@ -924,7 +924,7 @@  void IpaBase::applyControls(const ControlList &controls)
 		} while (false);
 
 	/* Iterate over controls */
-	for (auto const &ctrl : controls) {
+	for (const auto &ctrl : controls) {
 		LOG(IPARPI, Debug) << "Request ctrl: "
 				   << controls::controls.at(ctrl.first)->name()
 				   << " = " << ctrl.second.toString();
@@ -1627,7 +1627,7 @@  void IpaBase::reportMetadata(unsigned int ipaContext)
 	const HdrStatus &hdrStatus = agcStatus ? agcStatus->hdr : hdrStatus_;
 	if (!hdrStatus.mode.empty() && hdrStatus.mode != "Off") {
 		int32_t hdrMode = controls::HdrModeOff;
-		for (auto const &[mode, name] : HdrModeTable) {
+		for (const auto &[mode, name] : HdrModeTable) {
 			if (hdrStatus.mode == name) {
 				hdrMode = mode;
 				break;
diff --git a/src/ipa/rpi/controller/controller.cpp b/src/ipa/rpi/controller/controller.cpp
index 88de6f3655a8..138f6cb29141 100644
--- a/src/ipa/rpi/controller/controller.cpp
+++ b/src/ipa/rpi/controller/controller.cpp
@@ -114,7 +114,7 @@  int Controller::read(char const *filename)
 			<< "This format of the tuning file will be deprecated soon!"
 			<< " Please use the convert_tuning.py utility to update to version 2.0.";
 
-		for (auto const &[key, value] : root->asDict()) {
+		for (const auto &[key, value] : root->asDict()) {
 			int ret = createAlgorithm(key, value);
 			if (ret)
 				return ret;
@@ -127,8 +127,8 @@  int Controller::read(char const *filename)
 			return -EINVAL;
 		}
 
-		for (auto const &rootAlgo : (*root)["algorithms"].asList())
-			for (auto const &[key, value] : rootAlgo.asDict()) {
+		for (const auto &rootAlgo : (*root)["algorithms"].asList())
+			for (const auto &[key, value] : rootAlgo.asDict()) {
 				int ret = createAlgorithm(key, value);
 				if (ret)
 					return ret;
diff --git a/src/ipa/rpi/controller/rpi/agc_channel.cpp b/src/ipa/rpi/controller/rpi/agc_channel.cpp
index 154551dfacc2..010de81a0e35 100644
--- a/src/ipa/rpi/controller/rpi/agc_channel.cpp
+++ b/src/ipa/rpi/controller/rpi/agc_channel.cpp
@@ -298,7 +298,7 @@  int AgcChannel::read(const libcamera::YamlObject &params,
 		return ret;
 
 	const Size &size = hardwareConfig.agcZoneWeights;
-	for (auto const &modes : config_.meteringModes) {
+	for (const auto &modes : config_.meteringModes) {
 		if (modes.second.weights.size() != size.width * size.height) {
 			LOG(RPiAgc, Error) << "AgcMeteringMode: Incorrect number of weights";
 			return -EINVAL;
diff --git a/src/ipa/rpi/controller/rpi/lux.cpp b/src/ipa/rpi/controller/rpi/lux.cpp
index 7dab27cc0a90..efc2c511dbdc 100644
--- a/src/ipa/rpi/controller/rpi/lux.cpp
+++ b/src/ipa/rpi/controller/rpi/lux.cpp
@@ -90,7 +90,7 @@  void Lux::process(StatisticsPtr &stats, Metadata *imageMetadata)
 		 * is a better choice than the Y-histogram, for example, because it's invariant
 		 * to the metering mode (and cheaper to evaluate).
 		 */
-		auto const &fullImageStats = stats->agcRegions.getFloating(0);
+		const auto &fullImageStats = stats->agcRegions.getFloating(0);
 		double currentY = static_cast<double>(fullImageStats.val.ySum) / fullImageStats.counted;
 
 		double currentGain = deviceStatus.analogueGain;
diff --git a/src/ipa/rpi/pisp/pisp.cpp b/src/ipa/rpi/pisp/pisp.cpp
index ec7593ffc940..63935985ce5b 100644
--- a/src/ipa/rpi/pisp/pisp.cpp
+++ b/src/ipa/rpi/pisp/pisp.cpp
@@ -553,7 +553,7 @@  RPiController::StatisticsPtr IpaPiSP::platformProcessStats(Span<uint8_t> mem)
 
 void IpaPiSP::handleControls(const ControlList &controls)
 {
-	for (auto const &ctrl : controls) {
+	for (const auto &ctrl : controls) {
 		switch (ctrl.first) {
 		case controls::HDR_MODE:
 		case controls::AE_METERING_MODE:
diff --git a/src/ipa/rpi/vc4/vc4.cpp b/src/ipa/rpi/vc4/vc4.cpp
index 2b205b2861bd..b6ca44e7a0a0 100644
--- a/src/ipa/rpi/vc4/vc4.cpp
+++ b/src/ipa/rpi/vc4/vc4.cpp
@@ -300,7 +300,7 @@  void IpaVc4::handleControls(const ControlList &controls)
 		{ controls::draft::NoiseReductionModeZSL, RPiController::DenoiseMode::ColourHighQuality },
 	};
 
-	for (auto const &ctrl : controls) {
+	for (const auto &ctrl : controls) {
 		switch (ctrl.first) {
 		case controls::draft::NOISE_REDUCTION_MODE: {
 			RPiController::DenoiseAlgorithm *sdn = dynamic_cast<RPiController::DenoiseAlgorithm *>(
diff --git a/src/ipa/simple/soft_simple.cpp b/src/ipa/simple/soft_simple.cpp
index 6bef597c8ace..c35277cfe06e 100644
--- a/src/ipa/simple/soft_simple.cpp
+++ b/src/ipa/simple/soft_simple.cpp
@@ -249,7 +249,7 @@  int IPASoftSimple::configure(const IPAConfigInfo &configInfo)
 		context_.configuration.agc.againMinStep = 1.0;
 	}
 
-	for (auto const &algo : algorithms()) {
+	for (const auto &algo : algorithms()) {
 		int ret = algo->configure(context_, configInfo);
 		if (ret)
 			return ret;
@@ -279,7 +279,7 @@  void IPASoftSimple::queueRequest(const uint32_t frame, const ControlList &contro
 {
 	IPAFrameContext &frameContext = context_.frameContexts.alloc(frame);
 
-	for (auto const &algo : algorithms())
+	for (const auto &algo : algorithms())
 		algo->queueRequest(context_, frame, frameContext, controls);
 }
 
@@ -288,7 +288,7 @@  void IPASoftSimple::computeParams(const uint32_t frame)
 	context_.activeState.combinedMatrix = Matrix<float, 3, 3>::identity();
 
 	IPAFrameContext &frameContext = context_.frameContexts.get(frame);
-	for (auto const &algo : algorithms())
+	for (const auto &algo : algorithms())
 		algo->prepare(context_, frame, frameContext, params_);
 	params_->combinedMatrix = context_.activeState.combinedMatrix;
 
@@ -307,7 +307,7 @@  void IPASoftSimple::processStats(const uint32_t frame,
 	frameContext.sensor.gain = camHelper_ ? camHelper_->gain(again) : again;
 
 	ControlList metadata(controls::controls);
-	for (auto const &algo : algorithms())
+	for (const auto &algo : algorithms())
 		algo->process(context_, frame, frameContext, stats_, metadata);
 	metadataReady.emit(frame, metadata);
 
diff --git a/src/libcamera/delayed_controls.cpp b/src/libcamera/delayed_controls.cpp
index 94d0a575b01b..5b3ced4e711d 100644
--- a/src/libcamera/delayed_controls.cpp
+++ b/src/libcamera/delayed_controls.cpp
@@ -81,7 +81,7 @@  DelayedControls::DelayedControls(V4L2Device *device,
 	 * Create a map of control ids to delays for controls exposed by the
 	 * device.
 	 */
-	for (auto const &param : controlParams) {
+	for (const auto &param : controlParams) {
 		auto it = controls.find(param.first);
 		if (it == controls.end()) {
 			LOG(DelayedControls, Error)
@@ -120,7 +120,7 @@  void DelayedControls::reset()
 
 	/* Retrieve control as reported by the device. */
 	std::vector<uint32_t> ids;
-	for (auto const &param : controlParams_)
+	for (const auto &param : controlParams_)
 		ids.push_back(param.first->id());
 
 	ControlList controls = device_->getControls(ids);
diff --git a/src/libcamera/media_device.cpp b/src/libcamera/media_device.cpp
index 8c82a2b1488b..3f974eaabd67 100644
--- a/src/libcamera/media_device.cpp
+++ b/src/libcamera/media_device.cpp
@@ -589,7 +589,7 @@  bool MediaDevice::addObject(MediaObject *object)
  */
 void MediaDevice::clear()
 {
-	for (auto const &o : objects_)
+	for (const auto &o : objects_)
 		delete o.second;
 
 	objects_.clear();
diff --git a/src/libcamera/pipeline/mali-c55/mali-c55.cpp b/src/libcamera/pipeline/mali-c55/mali-c55.cpp
index 77f251416f71..c209b0b070b1 100644
--- a/src/libcamera/pipeline/mali-c55/mali-c55.cpp
+++ b/src/libcamera/pipeline/mali-c55/mali-c55.cpp
@@ -318,7 +318,7 @@  void MaliC55CameraData::updateControls(const ControlInfoMap &ipaControls)
 		ControlInfo(ispMinCrop, sensorInfo.analogCrop,
 			    sensorInfo.analogCrop);
 
-	for (auto const &c : ipaControls)
+	for (const auto &c : ipaControls)
 		controls.emplace(c.first, c.second);
 
 	controlInfo_ = ControlInfoMap(std::move(controls), controls::controls);
diff --git a/src/libcamera/pipeline/rpi/common/delayed_controls.cpp b/src/libcamera/pipeline/rpi/common/delayed_controls.cpp
index ad50a7c8bb08..19c719460349 100644
--- a/src/libcamera/pipeline/rpi/common/delayed_controls.cpp
+++ b/src/libcamera/pipeline/rpi/common/delayed_controls.cpp
@@ -85,7 +85,7 @@  DelayedControls::DelayedControls(V4L2Device *device,
 	 * Create a map of control ids to delays for controls exposed by the
 	 * device.
 	 */
-	for (auto const &param : controlParams) {
+	for (const auto &param : controlParams) {
 		auto it = controls.find(param.first);
 		if (it == controls.end()) {
 			LOG(RPiDelayedControls, Error)
@@ -125,7 +125,7 @@  void DelayedControls::reset(unsigned int cookie)
 
 	/* Retrieve control as reported by the device. */
 	std::vector<uint32_t> ids;
-	for (auto const &param : controlParams_)
+	for (const auto &param : controlParams_)
 		ids.push_back(param.first->id());
 
 	ControlList controls = device_->getControls(ids);
diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
index de43603ddf69..c507b44b27d0 100644
--- a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
+++ b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
@@ -508,7 +508,7 @@  int PipelineHandlerBase::configure(Camera *camera, CameraConfiguration *config)
 
 	/* Start by freeing all buffers and reset the stream states. */
 	data->freeBuffers();
-	for (auto const stream : data->streams_)
+	for (const auto stream : data->streams_)
 		stream->clearFlags(StreamFlag::External);
 
 	/*
@@ -561,7 +561,7 @@  int PipelineHandlerBase::configure(Camera *camera, CameraConfiguration *config)
 
 	/* Update the controls that the Raspberry Pi IPA can handle. */
 	ControlInfoMap::Map ctrlMap;
-	for (auto const &c : result.controlInfo)
+	for (const auto &c : result.controlInfo)
 		ctrlMap.emplace(c.first, c.second);
 
 	const auto cropParamsIt = data->cropParams_.find(0);
@@ -663,7 +663,7 @@  int PipelineHandlerBase::start(Camera *camera, const ControlList *controls)
 	data->startupFrameCount_ = result.startupFrameCount;
 	data->invalidFrameCount_ = result.invalidFrameCount;
 
-	for (auto const stream : data->streams_)
+	for (const auto stream : data->streams_)
 		stream->resetBuffers();
 
 	if (!data->buffersAllocated_) {
@@ -701,7 +701,7 @@  int PipelineHandlerBase::start(Camera *camera, const ControlList *controls)
 	data->platformStart();
 
 	/* Start all streams. */
-	for (auto const stream : data->streams_) {
+	for (const auto stream : data->streams_) {
 		ret = stream->dev()->streamOn();
 		if (ret) {
 			stop(camera);
@@ -719,7 +719,7 @@  void PipelineHandlerBase::stopDevice(Camera *camera)
 	data->state_ = CameraData::State::Stopped;
 	data->platformStop();
 
-	for (auto const stream : data->streams_) {
+	for (const auto stream : data->streams_) {
 		stream->dev()->streamOff();
 		stream->dev()->releaseBuffers();
 	}
@@ -801,7 +801,7 @@  int PipelineHandlerBase::registerCamera(std::unique_ptr<RPi::CameraData> &camera
 		return -EINVAL;
 
 	/* Populate the map of sensor supported formats and sizes. */
-	for (auto const mbusCode : data->sensor_->mbusCodes())
+	for (const auto mbusCode : data->sensor_->mbusCodes())
 		data->sensorFormats_.emplace(mbusCode,
 					     data->sensor_->sizes(mbusCode));
 
@@ -886,7 +886,7 @@  void PipelineHandlerBase::mapBuffers(Camera *camera, const BufferMap &buffers, u
 	 * This will allow us to identify buffers passed between the pipeline
 	 * handler and the IPA.
 	 */
-	for (auto const &[id, buffer] : buffers) {
+	for (const auto &[id, buffer] : buffers) {
 		Span<const FrameBuffer::Plane> planes = buffer.buffer->planes();
 
 		bufferIds.emplace_back(mask | id,
@@ -902,7 +902,7 @@  int PipelineHandlerBase::queueAllBuffers(Camera *camera)
 	CameraData *data = cameraData(camera);
 	int ret;
 
-	for (auto const stream : data->streams_) {
+	for (const auto stream : data->streams_) {
 		ret = stream->dev()->importBuffers(VIDEO_MAX_FRAME);
 		if (ret < 0)
 			return ret;
@@ -987,7 +987,7 @@  void CameraData::freeBuffers()
 		bufferIds_.clear();
 	}
 
-	for (auto const stream : streams_)
+	for (const auto stream : streams_)
 		stream->releaseBuffers();
 
 	platformFreeBuffers();
@@ -1322,7 +1322,7 @@  void CameraData::applyScalerCrop(const ControlList &controls)
 			scalerCrops.push_back(*scalerCropCore);
 	}
 
-	for (auto const &[i, scalerCrop] : utils::enumerate(scalerCrops)) {
+	for (const auto &[i, scalerCrop] : utils::enumerate(scalerCrops)) {
 		Rectangle nativeCrop = scalerCrop;
 
 		if (!nativeCrop.width || !nativeCrop.height)
@@ -1364,7 +1364,7 @@  void CameraData::cameraTimeout()
 	 * stop all devices streaming, and return any outstanding requests as
 	 * incomplete and cancelled.
 	 */
-	for (auto const stream : streams_)
+	for (const auto stream : streams_)
 		stream->dev()->streamOff();
 
 	clearIncompleteRequests();
@@ -1504,7 +1504,7 @@  void CameraData::fillRequestMetadata(const ControlList &bufferControls, Request
 	if (cropParams_.size()) {
 		std::vector<Rectangle> crops;
 
-		for (auto const &[k, v] : cropParams_)
+		for (const auto &[k, v] : cropParams_)
 			crops.push_back(scaleIspCrop(v.ispCrop));
 
 		request->_d()->metadata().set(controls::ScalerCrop, crops[0]);
diff --git a/src/libcamera/pipeline/rpi/common/rpi_stream.cpp b/src/libcamera/pipeline/rpi/common/rpi_stream.cpp
index f420400dfe18..db452a15c988 100644
--- a/src/libcamera/pipeline/rpi/common/rpi_stream.cpp
+++ b/src/libcamera/pipeline/rpi/common/rpi_stream.cpp
@@ -68,13 +68,13 @@  void Stream::resetBuffers()
 {
 	/* Add all internal buffers to the queue of usable buffers. */
 	availableBuffers_ = {};
-	for (auto const &buffer : internalBuffers_)
+	for (const auto &buffer : internalBuffers_)
 		availableBuffers_.push(buffer.get());
 }
 
 void Stream::setExportedBuffers(std::vector<std::unique_ptr<FrameBuffer>> *buffers)
 {
-	for (auto const &buffer : *buffers)
+	for (const auto &buffer : *buffers)
 		bufferEmplace(++id_, buffer.get());
 }
 
@@ -90,7 +90,7 @@  unsigned int Stream::getBufferId(FrameBuffer *buffer) const
 
 	/* Find the buffer in the map, and return the buffer id. */
 	auto it = std::find_if(bufferMap_.begin(), bufferMap_.end(),
-			       [&buffer](auto const &p) { return p.second.buffer == buffer; });
+			       [&buffer](const auto &p) { return p.second.buffer == buffer; });
 
 	if (it == bufferMap_.end())
 		return 0;
@@ -201,7 +201,7 @@  void Stream::returnBuffer(FrameBuffer *buffer)
 
 const BufferObject &Stream::getBuffer(unsigned int id)
 {
-	auto const &it = bufferMap_.find(id);
+	const auto &it = bufferMap_.find(id);
 	if (it == bufferMap_.end())
 		return errorBufferObject;
 
diff --git a/src/libcamera/pipeline/rpi/pisp/pisp.cpp b/src/libcamera/pipeline/rpi/pisp/pisp.cpp
index 7bcba32b9b58..dff73a79bb3f 100644
--- a/src/libcamera/pipeline/rpi/pisp/pisp.cpp
+++ b/src/libcamera/pipeline/rpi/pisp/pisp.cpp
@@ -972,7 +972,7 @@  int PipelineHandlerPiSP::allocateBuffers(Camera *camera)
 	}
 
 	/* Decide how many internal buffers to allocate. */
-	for (auto const stream : data->streams_) {
+	for (const auto stream : data->streams_) {
 		unsigned int numBuffers;
 		/*
 		 * For CFE, allocate a minimum of 4 buffers as we want
@@ -1036,12 +1036,12 @@  int PipelineHandlerPiSP::allocateBuffers(Camera *camera)
 	pisp_image_format_config tdn;
 	data->be_->GetTdnOutputFormat(tdn);
 	unsigned int size = tdn.stride * tdn.height;
-	for (auto const &buffer : data->isp_[Isp::TdnOutput].getBuffers()) {
+	for (const auto &buffer : data->isp_[Isp::TdnOutput].getBuffers()) {
 		FrameBuffer *b = buffer.second.buffer;
 		b->_d()->metadata().planes()[0].bytesused = size;
 		data->tdnBuffers_.push_back(b);
 	}
-	for (auto const &buffer : data->isp_[Isp::StitchOutput].getBuffers()) {
+	for (const auto &buffer : data->isp_[Isp::StitchOutput].getBuffers()) {
 		FrameBuffer *b = buffer.second.buffer;
 		b->_d()->metadata().planes()[0].bytesused = size;
 		data->stitchBuffers_.push_back(b);
diff --git a/src/libcamera/pipeline/rpi/vc4/vc4.cpp b/src/libcamera/pipeline/rpi/vc4/vc4.cpp
index 8a80439e9082..b734889dd016 100644
--- a/src/libcamera/pipeline/rpi/vc4/vc4.cpp
+++ b/src/libcamera/pipeline/rpi/vc4/vc4.cpp
@@ -233,7 +233,7 @@  int PipelineHandlerVc4::allocateBuffers(Camera *camera)
 	}
 
 	/* Decide how many internal buffers to allocate. */
-	for (auto const stream : data->streams_) {
+	for (const auto stream : data->streams_) {
 		unsigned int numBuffers;
 		/*
 		 * For Unicam, allocate a minimum number of buffers for internal
diff --git a/src/libcamera/pipeline/virtual/virtual.cpp b/src/libcamera/pipeline/virtual/virtual.cpp
index 40c35264c568..efd800ebe3d6 100644
--- a/src/libcamera/pipeline/virtual/virtual.cpp
+++ b/src/libcamera/pipeline/virtual/virtual.cpp
@@ -136,7 +136,7 @@  VirtualCameraData::VirtualCameraData(PipelineHandler *pipe,
 
 void VirtualCameraData::processRequest(Request *request)
 {
-	for (auto const &[stream, buffer] : request->buffers()) {
+	for (const auto &[stream, buffer] : request->buffers()) {
 		bool found = false;
 		/* map buffer and fill test patterns */
 		for (auto &streamConfig : streamConfigs_) {
diff --git a/src/libcamera/stream.cpp b/src/libcamera/stream.cpp
index 8df70dbfd10b..be0c80cbcfc2 100644
--- a/src/libcamera/stream.cpp
+++ b/src/libcamera/stream.cpp
@@ -194,7 +194,7 @@  std::vector<Size> StreamFormats::sizes(const PixelFormat &pixelformat) const
 	std::vector<Size> sizes;
 
 	/* Make sure pixel format exists. */
-	auto const &it = formats_.find(pixelformat);
+	const auto &it = formats_.find(pixelformat);
 	if (it == formats_.end())
 		return {};
 
@@ -243,7 +243,7 @@  std::vector<Size> StreamFormats::sizes(const PixelFormat &pixelformat) const
  */
 SizeRange StreamFormats::range(const PixelFormat &pixelformat) const
 {
-	auto const it = formats_.find(pixelformat);
+	const auto it = formats_.find(pixelformat);
 	if (it == formats_.end())
 		return {};
 
diff --git a/src/libcamera/v4l2_videodevice.cpp b/src/libcamera/v4l2_videodevice.cpp
index 61a4551c63c5..d877df29ee6e 100644
--- a/src/libcamera/v4l2_videodevice.cpp
+++ b/src/libcamera/v4l2_videodevice.cpp
@@ -206,7 +206,7 @@  V4L2BufferCache::~V4L2BufferCache()
  */
 bool V4L2BufferCache::isEmpty() const
 {
-	for (auto const &entry : cache_) {
+	for (const auto &entry : cache_) {
 		if (!entry.free_)
 			return false;
 	}
diff --git a/test/media_device/media_device_print_test.cpp b/test/media_device/media_device_print_test.cpp
index 63aeed48fff6..d4dc1f515069 100644
--- a/test/media_device/media_device_print_test.cpp
+++ b/test/media_device/media_device_print_test.cpp
@@ -66,15 +66,15 @@  void MediaDevicePrintTest::printMediaGraph(const MediaDevice &media, ostream &os
 {
 	os << "\n" << media.driver() << " - " << media.deviceNode() << "\n\n";
 
-	for (auto const &entity : media.entities()) {
+	for (const auto &entity : media.entities()) {
 		os << "\"" << entity->name() << "\"\n";
 
-		for (auto const &sink : entity->pads()) {
+		for (const auto &sink : entity->pads()) {
 			if (!(sink->flags() & MEDIA_PAD_FL_SINK))
 				continue;
 
 			os << "  [" << sink->index() << "]" << ": Sink\n";
-			for (auto const &link : sink->links()) {
+			for (const auto &link : sink->links()) {
 				os << "\t";
 				printNode(sink, os);
 				os << " <- ";
@@ -84,12 +84,12 @@  void MediaDevicePrintTest::printMediaGraph(const MediaDevice &media, ostream &os
 			os << "\n";
 		}
 
-		for (auto const &source : entity->pads()) {
+		for (const auto &source : entity->pads()) {
 			if (!(source->flags() & MEDIA_PAD_FL_SOURCE))
 				continue;
 
 			os << "  [" << source->index() << "]" << ": Source\n";
-			for (auto const &link : source->links()) {
+			for (const auto &link : source->links()) {
 				os << "\t";
 				printNode(source, os);
 				os << " -> ";
diff --git a/test/v4l2_videodevice/buffer_cache.cpp b/test/v4l2_videodevice/buffer_cache.cpp
index 5a9aa2199c50..613e0d7ce9d2 100644
--- a/test/v4l2_videodevice/buffer_cache.cpp
+++ b/test/v4l2_videodevice/buffer_cache.cpp
@@ -133,7 +133,7 @@  public:
 		if (!cache.isEmpty())
 			return TestFail;
 
-		for (auto const &buffer : buffers) {
+		for (const auto &buffer : buffers) {
 			FrameBuffer &b = *buffer.get();
 			cache.get(b);
 		}