[PATCH v6 07/12] libcamera: simple: Identify requested stream roles
Milan Zamazal
mzamazal at redhat.com
Mon May 26 12:15:27 CEST 2025
Currently, raw streams don't work in the simple pipeline and the
requested stream roles are ignored. In order to support raw streams, we
now track in SimpleCameraConfiguration whether raw and/or processed
streams are requested. We also check that at most one raw stream is
requested, there is no reason to have more.
That information will be used in the followup patches.
Signed-off-by: Milan Zamazal <mzamazal at redhat.com>
---
src/libcamera/pipeline/simple/simple.cpp | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
index d0f44c7d..0219a393 100644
--- a/src/libcamera/pipeline/simple/simple.cpp
+++ b/src/libcamera/pipeline/simple/simple.cpp
@@ -378,6 +378,9 @@ public:
bool needConversion() const { return needConversion_; }
const Transform &combinedTransform() const { return combinedTransform_; }
+ bool processedRequested_;
+ bool rawRequested_;
+
private:
/*
* The SimpleCameraData instance is guaranteed to be valid as long as
@@ -1299,12 +1302,27 @@ std::unique_ptr<CameraConfiguration>
SimplePipelineHandler::generateConfiguration(Camera *camera, Span<const StreamRole> roles)
{
SimpleCameraData *data = cameraData(camera);
- std::unique_ptr<CameraConfiguration> config =
+ std::unique_ptr<SimpleCameraConfiguration> config =
std::make_unique<SimpleCameraConfiguration>(camera, data);
+ config->processedRequested_ = false;
+ config->rawRequested_ = false;
+
if (roles.empty())
return config;
+ for (const auto &role : roles)
+ if (role == StreamRole::Raw) {
+ if (config->rawRequested_) {
+ LOG(SimplePipeline, Error)
+ << "Can't capture multiple raw streams";
+ return nullptr;
+ }
+ config->rawRequested_ = true;
+ } else {
+ config->processedRequested_ = true;
+ }
+
/* Create the formats map. */
std::map<PixelFormat, std::vector<SizeRange>> formats;
--
2.49.0
More information about the libcamera-devel
mailing list