summaryrefslogtreecommitdiff
path: root/src/libcamera/camera.cpp
diff options
context:
space:
mode:
authorJacopo Mondi <jacopo@jmondi.org>2020-07-07 16:25:34 +0200
committerJacopo Mondi <jacopo@jmondi.org>2020-08-03 11:16:17 +0200
commit4217c9f1aa863cf629bb2420be352b0c39988a5b (patch)
tree1cea208f10d1cefe58fffdc4745de6229f52ad49 /src/libcamera/camera.cpp
parent117e65cef28a5bb29b831b9468e11de732e283f6 (diff)
libcamera: camera: Zero streams before validate()
The current implementation of the Camera::configure() method zeroes the stream pointers assigned to the StreamConfiguration items before calling the pipeline handler configure() operation, just after the CameraConfiguration has been validated. This discards the stream assignment performed at pipeline hander validation time, requiring platforms that need to perform that early assignment to maintain the association in place with custom data structures. To allow pipeline handlers to use StreamConfiguration::setStream() at validate() time, zero the stream assignment before calling validate(). Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Diffstat (limited to 'src/libcamera/camera.cpp')
-rw-r--r--src/libcamera/camera.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp
index 034f341d..99cb5048 100644
--- a/src/libcamera/camera.cpp
+++ b/src/libcamera/camera.cpp
@@ -753,6 +753,9 @@ int Camera::configure(CameraConfiguration *config)
if (ret < 0)
return ret;
+ for (auto it : *config)
+ it.setStream(nullptr);
+
if (config->validate() != CameraConfiguration::Valid) {
LOG(Camera, Error)
<< "Can't configure camera with invalid configuration";
@@ -763,7 +766,6 @@ int Camera::configure(CameraConfiguration *config)
for (unsigned int index = 0; index < config->size(); ++index) {
StreamConfiguration &cfg = config->at(index);
- cfg.setStream(nullptr);
msg << " (" << index << ") " << cfg.toString();
}