Skip to content
Snippets Groups Projects

temp/libcamera: backport more swISP patches

Merged Robert Mader requested to merge rmader/pmaports:libcamera-mode-selection-fix into master
2 files
+ 44
1
Compare changes
  • Side-by-side
  • Inline
Files
2
From 33f19f1059eef968ae7f89b8b5a18bcd6f90303a Mon Sep 17 00:00:00 2001
From: Robert Mader <robert.mader@collabora.com>
Date: Fri, 11 Oct 2024 20:13:24 +0200
Subject: [PATCH] pipeline: simple: Consider output sizes when choosing pipe
config
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@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 b32f8b2c..497db731 100644
--- a/src/libcamera/pipeline/simple/simple.cpp
+++ b/src/libcamera/pipeline/simple/simple.cpp
@@ -1037,7 +1037,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
Loading