[libcamera-devel] [PATCH] libcamera: Replace toString with operator<<() for geometry classes

Laurent Pinchart laurent.pinchart at ideasonboard.com
Fri Apr 29 03:04:41 CEST 2022


Now that geometry classes implement the stream formatting operator<<(),
use it instead of the toString() function.

Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
 src/android/camera_capabilities.cpp           |  6 +++---
 src/android/camera_device.cpp                 |  2 +-
 src/android/yuv/post_processor_yuv.cpp        |  4 ++--
 src/cam/camera_session.cpp                    |  3 +--
 src/cam/kms_sink.cpp                          |  4 +---
 src/libcamera/camera_sensor.cpp               |  4 ++--
 src/libcamera/pipeline/ipu3/imgu.cpp          | 19 +++++++++----------
 .../pipeline/raspberrypi/raspberrypi.cpp      |  2 +-
 src/libcamera/pipeline/rkisp1/rkisp1.cpp      |  6 +++---
 src/libcamera/pipeline/simple/converter.cpp   |  2 +-
 src/libcamera/pipeline/simple/simple.cpp      |  8 ++++----
 src/libcamera/pipeline/uvcvideo/uvcvideo.cpp  |  3 +--
 src/libcamera/pipeline/vimc/vimc.cpp          |  2 +-
 src/libcamera/v4l2_subdevice.cpp              |  2 +-
 src/libcamera/v4l2_videodevice.cpp            |  2 +-
 test/camera-sensor.cpp                        |  3 +--
 test/geometry.cpp                             |  4 +---
 test/stream/stream_formats.cpp                |  4 ++--
 18 files changed, 36 insertions(+), 44 deletions(-)

diff --git a/src/android/camera_capabilities.cpp b/src/android/camera_capabilities.cpp
index 55d651f38870..e06a517d84b8 100644
--- a/src/android/camera_capabilities.cpp
+++ b/src/android/camera_capabilities.cpp
@@ -487,7 +487,7 @@ int CameraCapabilities::initializeStreamConfigurations()
 	 * JPEG encoder requirements into account (alignment and aspect ratio).
 	 */
 	const Size maxRes = cfg.size;
-	LOG(HAL, Debug) << "Maximum supported resolution: " << maxRes.toString();
+	LOG(HAL, Debug) << "Maximum supported resolution: " << maxRes;
 
 	/*
 	 * Build the list of supported image resolutions.
@@ -729,7 +729,7 @@ int CameraCapabilities::initializeStreamConfigurations()
 
 	LOG(HAL, Debug) << "Collected stream configuration map: ";
 	for (const auto &entry : streamConfigurations_)
-		LOG(HAL, Debug) << "{ " << entry.resolution.toString() << " - "
+		LOG(HAL, Debug) << "{ " << entry.resolution << " - "
 				<< utils::hex(entry.androidFormat) << " }";
 
 	return 0;
@@ -1321,7 +1321,7 @@ int CameraCapabilities::initializeStaticMetadata()
 
 		LOG(HAL, Debug)
 			<< "Output Stream: " << utils::hex(entry.androidFormat)
-			<< " (" << entry.resolution.toString() << ")["
+			<< " (" << entry.resolution << ")["
 			<< entry.minFrameDurationNsec << "]"
 			<< "@" << fps;
 	}
diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
index 00d484716045..f7ec95eb720e 100644
--- a/src/android/camera_device.cpp
+++ b/src/android/camera_device.cpp
@@ -925,7 +925,7 @@ int CameraDevice::processCaptureRequest(camera3_capture_request_t *camera3Reques
 		ss << i << " - (" << camera3Stream->width << "x"
 		   << camera3Stream->height << ")"
 		   << "[" << utils::hex(camera3Stream->format) << "] -> "
-		   << "(" << cameraStream->configuration().size.toString() << ")["
+		   << "(" << cameraStream->configuration().size << ")["
 		   << cameraStream->configuration().pixelFormat.toString() << "]";
 
 		/*
diff --git a/src/android/yuv/post_processor_yuv.cpp b/src/android/yuv/post_processor_yuv.cpp
index 9f88392476f1..513c6ef86153 100644
--- a/src/android/yuv/post_processor_yuv.cpp
+++ b/src/android/yuv/post_processor_yuv.cpp
@@ -34,8 +34,8 @@ int PostProcessorYuv::configure(const StreamConfiguration &inCfg,
 
 	if (inCfg.size < outCfg.size) {
 		LOG(YUV, Error) << "Up-scaling is not supported"
-				<< " (from " << inCfg.size.toString()
-				<< " to " << outCfg.size.toString() << ")";
+				<< " (from " << inCfg.size
+				<< " to " << outCfg.size << ")";
 		return -EINVAL;
 	}
 
diff --git a/src/cam/camera_session.cpp b/src/cam/camera_session.cpp
index 0428b5386537..bacb42561560 100644
--- a/src/cam/camera_session.cpp
+++ b/src/cam/camera_session.cpp
@@ -150,8 +150,7 @@ void CameraSession::infoConfiguration() const
 				  << std::endl;
 
 			for (const Size &size : formats.sizes(pixelformat))
-				std::cout << "  - " << size.toString()
-					  << std::endl;
+				std::cout << "  - " << size << std::endl;
 		}
 
 		index++;
diff --git a/src/cam/kms_sink.cpp b/src/cam/kms_sink.cpp
index da579846fd8e..29be5623cb17 100644
--- a/src/cam/kms_sink.cpp
+++ b/src/cam/kms_sink.cpp
@@ -119,9 +119,7 @@ int KMSSink::configure(const libcamera::CameraConfiguration &config)
 						      mode.vdisplay == cfg.size.height;
 				       });
 	if (iter == modes.end()) {
-		std::cerr
-			<< "No mode matching " << cfg.size.toString()
-			<< std::endl;
+		std::cerr << "No mode matching " << cfg.size << std::endl;
 		return -EINVAL;
 	}
 
diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp
index eaa2da6bad32..4bb2066f0fd4 100644
--- a/src/libcamera/camera_sensor.cpp
+++ b/src/libcamera/camera_sensor.cpp
@@ -238,7 +238,7 @@ int CameraSensor::validateSensorDriver()
 
 		LOG(CameraSensor, Warning)
 			<< "The PixelArraySize property has been defaulted to "
-			<< pixelArraySize_.toString();
+			<< pixelArraySize_;
 		err = -EINVAL;
 	} else {
 		pixelArraySize_ = rect.size();
@@ -249,7 +249,7 @@ int CameraSensor::validateSensorDriver()
 		activeArea_ = Rectangle(pixelArraySize_);
 		LOG(CameraSensor, Warning)
 			<< "The PixelArrayActiveAreas property has been defaulted to "
-			<< activeArea_.toString();
+			<< activeArea_;
 		err = -EINVAL;
 	}
 
diff --git a/src/libcamera/pipeline/ipu3/imgu.cpp b/src/libcamera/pipeline/ipu3/imgu.cpp
index e5bbc3829c68..3ac997cc1acf 100644
--- a/src/libcamera/pipeline/ipu3/imgu.cpp
+++ b/src/libcamera/pipeline/ipu3/imgu.cpp
@@ -386,9 +386,9 @@ ImgUDevice::PipeConfig ImgUDevice::calculatePipeConfig(Pipe *pipe)
 	pipeConfigs.clear();
 
 	LOG(IPU3, Debug) << "Calculating pipe configuration for: ";
-	LOG(IPU3, Debug) << "input: " << pipe->input.toString();
-	LOG(IPU3, Debug) << "main: " << pipe->main.toString();
-	LOG(IPU3, Debug) << "vf: " << pipe->viewfinder.toString();
+	LOG(IPU3, Debug) << "input: " << pipe->input;
+	LOG(IPU3, Debug) << "main: " << pipe->main;
+	LOG(IPU3, Debug) << "vf: " << pipe->viewfinder;
 
 	const Size &in = pipe->input;
 
@@ -397,8 +397,7 @@ ImgUDevice::PipeConfig ImgUDevice::calculatePipeConfig(Pipe *pipe)
 	 * See https://bugs.libcamera.org/show_bug.cgi?id=32
 	 */
 	if (in.width < ImgUDevice::kIFMaxCropWidth || in.height < ImgUDevice::kIFMaxCropHeight) {
-		LOG(IPU3, Error) << "Input resolution " << in.toString()
-				 << " not supported";
+		LOG(IPU3, Error) << "Input resolution " << in << " not supported";
 		return {};
 	}
 
@@ -460,9 +459,9 @@ ImgUDevice::PipeConfig ImgUDevice::calculatePipeConfig(Pipe *pipe)
 	}
 
 	LOG(IPU3, Debug) << "Computed pipe configuration: ";
-	LOG(IPU3, Debug) << "IF: " << pipeConfigs[bestIndex].iif.toString();
-	LOG(IPU3, Debug) << "BDS: " << pipeConfigs[bestIndex].bds.toString();
-	LOG(IPU3, Debug) << "GDC: " << pipeConfigs[bestIndex].gdc.toString();
+	LOG(IPU3, Debug) << "IF: " << pipeConfigs[bestIndex].iif;
+	LOG(IPU3, Debug) << "BDS: " << pipeConfigs[bestIndex].bds;
+	LOG(IPU3, Debug) << "GDC: " << pipeConfigs[bestIndex].gdc;
 
 	return pipeConfigs[bestIndex];
 }
@@ -496,13 +495,13 @@ int ImgUDevice::configure(const PipeConfig &pipeConfig, V4L2DeviceFormat *inputF
 	ret = imgu_->setSelection(PAD_INPUT, V4L2_SEL_TGT_CROP, &iif);
 	if (ret)
 		return ret;
-	LOG(IPU3, Debug) << "ImgU IF rectangle = " << iif.toString();
+	LOG(IPU3, Debug) << "ImgU IF rectangle = " << iif;
 
 	Rectangle bds{ 0, 0, pipeConfig.bds };
 	ret = imgu_->setSelection(PAD_INPUT, V4L2_SEL_TGT_COMPOSE, &bds);
 	if (ret)
 		return ret;
-	LOG(IPU3, Debug) << "ImgU BDS rectangle = " << bds.toString();
+	LOG(IPU3, Debug) << "ImgU BDS rectangle = " << bds;
 
 	V4L2SubdeviceFormat gdcFormat = {};
 	gdcFormat.mbus_code = MEDIA_BUS_FMT_FIXED;
diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
index acc0becaa5c0..d8c709b7a503 100644
--- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
+++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
@@ -166,7 +166,7 @@ V4L2SubdeviceFormat findBestFormat(const SensorFormats &formatsMap, const Size &
 				bestFormat.size = size;
 			}
 
-			LOG(RPI, Debug) << "Format: " << size.toString()
+			LOG(RPI, Debug) << "Format: " << size
 					<< " fmt " << format.toString()
 					<< " Score: " << score
 					<< " (best " << bestScore << ")";
diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
index 1624e2ecc5a0..1c53495c97cc 100644
--- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp
+++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
@@ -592,13 +592,13 @@ int PipelineHandlerRkISP1::configure(Camera *camera, CameraConfiguration *c)
 
 	LOG(RkISP1, Debug)
 		<< "ISP input pad configured with " << format.toString()
-		<< " crop " << rect.toString();
+		<< " crop " << rect;
 
 	/* YUYV8_2X8 is required on the ISP source path pad for YUV output. */
 	format.mbus_code = MEDIA_BUS_FMT_YUYV8_2X8;
 	LOG(RkISP1, Debug)
 		<< "Configuring ISP output pad with " << format.toString()
-		<< " crop " << rect.toString();
+		<< " crop " << rect;
 
 	ret = isp_->setSelection(2, V4L2_SEL_TGT_CROP, &rect);
 	if (ret < 0)
@@ -610,7 +610,7 @@ int PipelineHandlerRkISP1::configure(Camera *camera, CameraConfiguration *c)
 
 	LOG(RkISP1, Debug)
 		<< "ISP output pad configured with " << format.toString()
-		<< " crop " << rect.toString();
+		<< " crop " << rect;
 
 	std::map<unsigned int, IPAStream> streamConfig;
 
diff --git a/src/libcamera/pipeline/simple/converter.cpp b/src/libcamera/pipeline/simple/converter.cpp
index 9cbc6ee30ce4..ee8376dea1e0 100644
--- a/src/libcamera/pipeline/simple/converter.cpp
+++ b/src/libcamera/pipeline/simple/converter.cpp
@@ -65,7 +65,7 @@ int SimpleConverter::Stream::configure(const StreamConfiguration &inputCfg,
 	    format.planes[0].bpl != inputCfg.stride) {
 		LOG(SimplePipeline, Error)
 			<< "Input format not supported (requested "
-			<< inputCfg.size.toString() << "-" << videoFormat.toString()
+			<< inputCfg.size << "-" << videoFormat.toString()
 			<< ", got " << format.toString() << ")";
 		return -EINVAL;
 	}
diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
index ece821bfe978..e76bf01261b0 100644
--- a/src/libcamera/pipeline/simple/simple.cpp
+++ b/src/libcamera/pipeline/simple/simple.cpp
@@ -474,7 +474,7 @@ int SimpleCameraData::init()
 			video_->formats(format.mbus_code);
 
 		LOG(SimplePipeline, Debug)
-			<< "Adding configuration for " << format.size.toString()
+			<< "Adding configuration for " << format.size
 			<< " in pixel formats [ "
 			<< utils::join(videoFormats, ", ",
 				       [](const auto &f) {
@@ -808,8 +808,8 @@ CameraConfiguration::Status SimpleCameraConfiguration::validate()
 
 		if (!pipeConfig_->outputSizes.contains(cfg.size)) {
 			LOG(SimplePipeline, Debug)
-				<< "Adjusting size from " << cfg.size.toString()
-				<< " to " << pipeConfig_->captureSize.toString();
+				<< "Adjusting size from " << cfg.size
+				<< " to " << pipeConfig_->captureSize;
 			cfg.size = pipeConfig_->captureSize;
 			status = Adjusted;
 		}
@@ -939,7 +939,7 @@ int SimplePipelineHandler::configure(Camera *camera, CameraConfiguration *c)
 	    captureFormat.size != pipeConfig->captureSize) {
 		LOG(SimplePipeline, Error)
 			<< "Unable to configure capture in "
-			<< pipeConfig->captureSize.toString() << "-"
+			<< pipeConfig->captureSize << "-"
 			<< videoFormat.toString();
 		return -EINVAL;
 	}
diff --git a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
index 40654a0bc40c..e5a79417f923 100644
--- a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
+++ b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
@@ -143,8 +143,7 @@ CameraConfiguration::Status UVCCameraConfiguration::validate()
 
 	if (cfg.size != size) {
 		LOG(UVC, Debug)
-			<< "Adjusting size from " << size.toString()
-			<< " to " << cfg.size.toString();
+			<< "Adjusting size from " << size << " to " << cfg.size;
 		status = Adjusted;
 	}
 
diff --git a/src/libcamera/pipeline/vimc/vimc.cpp b/src/libcamera/pipeline/vimc/vimc.cpp
index c3e33ecf048c..3db0ffe58c39 100644
--- a/src/libcamera/pipeline/vimc/vimc.cpp
+++ b/src/libcamera/pipeline/vimc/vimc.cpp
@@ -164,7 +164,7 @@ CameraConfiguration::Status VimcCameraConfiguration::validate()
 
 	if (cfg.size != size) {
 		LOG(VIMC, Debug)
-			<< "Adjusting size to " << cfg.size.toString();
+			<< "Adjusting size to " << cfg.size;
 		status = Adjusted;
 	}
 
diff --git a/src/libcamera/v4l2_subdevice.cpp b/src/libcamera/v4l2_subdevice.cpp
index fa216e85fde9..d5ae460571d8 100644
--- a/src/libcamera/v4l2_subdevice.cpp
+++ b/src/libcamera/v4l2_subdevice.cpp
@@ -191,7 +191,7 @@ const std::map<uint32_t, V4L2SubdeviceFormatInfo> formatInfoMap = {
 const std::string V4L2SubdeviceFormat::toString() const
 {
 	std::stringstream mbus;
-	mbus << size.toString() << "-";
+	mbus << size << "-";
 
 	const auto it = formatInfoMap.find(mbus_code);
 
diff --git a/src/libcamera/v4l2_videodevice.cpp b/src/libcamera/v4l2_videodevice.cpp
index 05d3273ebb58..5ba866ad71bb 100644
--- a/src/libcamera/v4l2_videodevice.cpp
+++ b/src/libcamera/v4l2_videodevice.cpp
@@ -433,7 +433,7 @@ bool V4L2BufferCache::Entry::operator==(const FrameBuffer &buffer) const
 const std::string V4L2DeviceFormat::toString() const
 {
 	std::stringstream ss;
-	ss << size.toString() << "-" << fourcc.toString();
+	ss << size << "-" << fourcc.toString();
 	return ss.str();
 }
 
diff --git a/test/camera-sensor.cpp b/test/camera-sensor.cpp
index 372ee4aff69b..9b06a60e7695 100644
--- a/test/camera-sensor.cpp
+++ b/test/camera-sensor.cpp
@@ -86,8 +86,7 @@ protected:
 
 		const Size &resolution = sensor_->resolution();
 		if (resolution != Size(4096, 2160)) {
-			cerr << "Incorrect sensor resolution "
-			     << resolution.toString() << endl;
+			cerr << "Incorrect sensor resolution " << resolution << endl;
 			return TestFail;
 		}
 
diff --git a/test/geometry.cpp b/test/geometry.cpp
index 5125692496b3..008d51eac0dd 100644
--- a/test/geometry.cpp
+++ b/test/geometry.cpp
@@ -25,9 +25,7 @@ protected:
 		bool result = op(lhs, rhs);
 
 		if (result != expect) {
-			cout << lhs.toString()
-			     << opName << " "
-			     << rhs.toString()
+			cout << lhs << opName << " " << rhs
 			     << "test failed" << std::endl;
 			return false;
 		}
diff --git a/test/stream/stream_formats.cpp b/test/stream/stream_formats.cpp
index 9353d0085e19..99fa0385e961 100644
--- a/test/stream/stream_formats.cpp
+++ b/test/stream/stream_formats.cpp
@@ -40,10 +40,10 @@ protected:
 			cout << "Failed " << name << endl;
 			cout << "Sizes to test:" << endl;
 			for (Size &size : test)
-				cout << size.toString() << endl;
+				cout << size << endl;
 			cout << "Valid sizes:" << endl;
 			for (Size &size : valid)
-				cout << size.toString() << endl;
+				cout << size << endl;
 
 			return TestFail;
 		}

base-commit: dc7fc90573b99bbc6d21a25a741891471d68f274
-- 
Regards,

Laurent Pinchart



More information about the libcamera-devel mailing list