[PATCH] pipeline: simple: Consider output sizes when choosing pipe config

Robert Mader robert.mader at collabora.com
Fri Oct 11 20:46:00 CEST 2024


In order to avoid having to adjust the size further down below which
again can break user assumptions. Notably, without this the capture size
of 1920x1080 gets adjusted to 1912x1080 when used with the swISP using a
bayer pattern width of 4, breaking users like Gstreamer down the line.

Closes https://bugs.libcamera.org/show_bug.cgi?id=236

Signed-off-by: Robert Mader <robert.mader at collabora.com>

---

I'm not really sure if this is the correct approach, but sending it out
already for feedback. So far this gives me promissing results on tested
devices.
---
 src/libcamera/pipeline/simple/simple.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
index 3ddce71d..2d185b90 100644
--- a/src/libcamera/pipeline/simple/simple.cpp
+++ b/src/libcamera/pipeline/simple/simple.cpp
@@ -1048,7 +1048,8 @@ CameraConfiguration::Status SimpleCameraConfiguration::validate()
 		const Size &size = pipeConfig->captureSize;
 
 		if (size.width >= maxStreamSize.width &&
-		    size.height >= maxStreamSize.height) {
+		    size.height >= maxStreamSize.height &&
+		    pipeConfig->outputSizes.contains(maxStreamSize)) {
 			if (!pipeConfig_ || size < pipeConfig_->captureSize)
 				pipeConfig_ = pipeConfig;
 		}
-- 
2.47.0



More information about the libcamera-devel mailing list