Message ID | 20250707155856.33436-4-mzamazal@redhat.com |
---|---|
State | Superseded |
Headers | show |
Series |
|
Related | show |
Hi Milan, On Mon, Jul 07, 2025 at 05:58:48PM +0200, Milan Zamazal wrote: > 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> nit: Commit subject could be more clear and concise: "libcamera: simple: Exclude raw configurations from output conversions" Reviewed-by: Umang Jain <uajain@igalia.com> > --- > src/libcamera/pipeline/simple/simple.cpp | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp > index a900918db..368bf3020 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 isFormatRaw(const libcamera::PixelFormat &pixFmt) > +{ > + return libcamera::PixelFormatInfo::info(pixFmt).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_ && !isFormatRaw(cfg.pixelFormat)) > outputCfgs.push_back(cfg); > } > > -- > 2.50.0 >
diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp index a900918db..368bf3020 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 isFormatRaw(const libcamera::PixelFormat &pixFmt) +{ + return libcamera::PixelFormatInfo::info(pixFmt).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_ && !isFormatRaw(cfg.pixelFormat)) outputCfgs.push_back(cfg); }
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> --- src/libcamera/pipeline/simple/simple.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)