[v12,2/8] libcamera: simple: Exclude raw configurations from output conversions
diff mbox series

Message ID 20250804163812.126022-3-mzamazal@redhat.com
State New
Headers show
Series
  • Enable raw streams with software ISP
Related show

Commit Message

Milan Zamazal Aug. 4, 2025, 4:38 p.m. UTC
In order to support raw streams, we need to add raw formats to software
ISP configurations.  In this preparatory patch, the raw formats are
excluded from output configurations for conversions.

Signed-off-by: Milan Zamazal <mzamazal@redhat.com>
Reviewed-by: Umang Jain <uajain@igalia.com>
Signed-off-by: Milan Zamazal <mzamazal@redhat.com>
---
 src/libcamera/pipeline/simple/simple.cpp | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

Patch
diff mbox series

diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
index 50a7e65fb..5fba94170 100644
--- a/src/libcamera/pipeline/simple/simple.cpp
+++ b/src/libcamera/pipeline/simple/simple.cpp
@@ -27,6 +27,7 @@ 
 #include <libcamera/camera.h>
 #include <libcamera/color_space.h>
 #include <libcamera/control_ids.h>
+#include <libcamera/pixel_format.h>
 #include <libcamera/request.h>
 #include <libcamera/stream.h>
 
@@ -261,6 +262,12 @@  static const SimplePipelineInfo supportedDevices[] = {
 	{ "sun6i-csi", {}, false },
 };
 
+bool isRaw(const StreamConfiguration &cfg)
+{
+	return libcamera::PixelFormatInfo::info(cfg.pixelFormat).colourEncoding ==
+	       libcamera::PixelFormatInfo::ColourEncodingRAW;
+}
+
 } /* namespace */
 
 class SimpleCameraData : public Camera::Private
@@ -1424,7 +1431,7 @@  int SimplePipelineHandler::configure(Camera *camera, CameraConfiguration *c)
 
 		cfg.setStream(&data->streams_[i]);
 
-		if (data->useConversion_)
+		if (data->useConversion_ && !isRaw(cfg))
 			outputCfgs.push_back(cfg);
 	}