libcamera: Make converter/softISP configure()'s outputCfgs argument really const

The intent of the outputCfgs argument to the configure() function of
converter classes and the softISP is to allow the passed in stream-configs
to not be changed.

But only the vector is const, the reference inside the vector are not
const, which allows modifying the stream-configs as can be seen inside
DebayerEGL::configure() which was using a non const reference outputCfg
helper variable.

Fix this by making the references inside the vector const.

Signed-off-by: Hans de Goede <johannes.goede@oss.qualcomm.com>
Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Hans de Goede
2026-04-01 14:59:38 +01:00
committed by Kieran Bingham
parent 1500ef15d1
commit 5f770f748c
14 changed files with 15 additions and 15 deletions
+1 -1
View File
@@ -71,7 +71,7 @@ public:
Alignment align = Alignment::Down) = 0;
virtual int configure(const StreamConfiguration &inputCfg,
const std::vector<std::reference_wrapper<StreamConfiguration>> &outputCfgs) = 0;
const std::vector<std::reference_wrapper<const StreamConfiguration>> &outputCfgs) = 0;
virtual bool isConfigured(const Stream *stream) const = 0;
virtual int exportBuffers(const Stream *stream, unsigned int count,
std::vector<std::unique_ptr<FrameBuffer>> *buffers) = 0;
@@ -34,7 +34,7 @@ public:
int init(const YamlObject &params);
int configure(const StreamConfiguration &inputCfg,
const std::vector<std::reference_wrapper<StreamConfiguration>>
const std::vector<std::reference_wrapper<const StreamConfiguration>>
&outputCfg);
bool isConfigured(const Stream *stream) const;
@@ -54,7 +54,7 @@ public:
const Size &size, Alignment align = Alignment::Down) override;
int configure(const StreamConfiguration &inputCfg,
const std::vector<std::reference_wrapper<StreamConfiguration>>
const std::vector<std::reference_wrapper<const StreamConfiguration>>
&outputCfg) override;
bool isConfigured(const Stream *stream) const override;
int exportBuffers(const Stream *stream, unsigned int count,
@@ -64,7 +64,7 @@ public:
strideAndFrameSize(const PixelFormat &outputFormat, const Size &size);
int configure(const StreamConfiguration &inputCfg,
const std::vector<std::reference_wrapper<StreamConfiguration>> &outputCfgs,
const std::vector<std::reference_wrapper<const StreamConfiguration>> &outputCfgs,
const ipa::soft::IPAConfigInfo &configInfo);
int exportBuffers(const Stream *stream, unsigned int count,