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

Message ID 20250716142027.236277-3-uajain@igalia.com
State New
Headers show
Series
  • libcamera: simple: Enable Raw capture
Related show

Commit Message

Umang Jain July 16, 2025, 2:20 p.m. UTC
From: Milan Zamazal <mzamazal@redhat.com>

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>
---
 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 de6b29ab..cadc1117 100644
--- a/src/libcamera/pipeline/simple/simple.cpp
+++ b/src/libcamera/pipeline/simple/simple.cpp
@@ -26,6 +26,7 @@ 
 
 #include <libcamera/camera.h>
 #include <libcamera/control_ids.h>
+#include <libcamera/pixel_format.h>
 #include <libcamera/request.h>
 #include <libcamera/stream.h>
 
@@ -259,6 +260,12 @@  static const SimplePipelineInfo supportedDevices[] = {
 	{ "sun6i-csi", {}, false },
 };
 
+bool isFormatRaw(const libcamera::PixelFormat &pixFmt)
+{
+	return libcamera::PixelFormatInfo::info(pixFmt).colourEncoding ==
+	       libcamera::PixelFormatInfo::ColourEncodingRAW;
+}
+
 } /* namespace */
 
 class SimpleCameraData : public Camera::Private
@@ -1388,7 +1395,7 @@  int SimplePipelineHandler::configure(Camera *camera, CameraConfiguration *c)
 
 		cfg.setStream(&data->streams_[i]);
 
-		if (data->useConversion_)
+		if (data->useConversion_ && !isFormatRaw(cfg.pixelFormat))
 			outputCfgs.push_back(cfg);
 	}