[RFC PATCH v2 03/13] libcamera: simple: Don't use raw output formats with conversions
Milan Zamazal
mzamazal at redhat.com
Fri Jan 24 22:57:54 CET 2025
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 software ISP output configurations.
Signed-off-by: Milan Zamazal <mzamazal at redhat.com>
---
src/libcamera/pipeline/simple/simple.cpp | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
index 6e9bc630..06df909b 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>
@@ -209,6 +210,12 @@ static const SimplePipelineInfo supportedDevices[] = {
{ "sun6i-csi", {}, false },
};
+bool isRawFormat(const PixelFormat &format)
+{
+ return libcamera::PixelFormatInfo::info(format).colourEncoding ==
+ libcamera::PixelFormatInfo::ColourEncodingRAW;
+}
+
} /* namespace */
class SimpleCameraData : public Camera::Private
@@ -1284,7 +1291,8 @@ int SimplePipelineHandler::configure(Camera *camera, CameraConfiguration *c)
cfg.setStream(&data->streams_[i]);
- if (data->useConversion_)
+ if (data->useConversion_ &&
+ (!data->swIsp_ || !isRawFormat(cfg.pixelFormat)))
outputCfgs.push_back(cfg);
}
--
2.48.1
More information about the libcamera-devel
mailing list