summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorKieran Bingham <kieran.bingham@ideasonboard.com>2020-06-27 22:18:26 +0100
committerKieran Bingham <kieran.bingham@ideasonboard.com>2020-07-06 23:58:42 +0100
commitd35cf6e4e4972948e49e6e45f3f0caaeea760a0b (patch)
treefbee6fd7f0b8960138bd8482cc46510673abab38 /include
parente0c583871da9cc6d243bff26ef5ba224007fc5ed (diff)
libcamera: camera: Allow unspecified roles for generateConfiguration
Providing an empty set of roles is permitted to generate an empty configuration from the pipeline handlers. Overload the generateConfiguration() function such that not specifying a roles parameter will use an empty set, and return an empty configuration. Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
Diffstat (limited to 'include')
-rw-r--r--include/libcamera/camera.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/libcamera/camera.h b/include/libcamera/camera.h
index 9c0e58f7..4d1a4a9f 100644
--- a/include/libcamera/camera.h
+++ b/include/libcamera/camera.h
@@ -89,7 +89,7 @@ public:
const ControlList &properties();
const std::set<Stream *> &streams() const;
- std::unique_ptr<CameraConfiguration> generateConfiguration(const StreamRoles &roles);
+ std::unique_ptr<CameraConfiguration> generateConfiguration(const StreamRoles &roles = {});
int configure(CameraConfiguration *config);
Request *createRequest(uint64_t cookie = 0);
an class="hl kwa">return status_; config_ = camera_->generateConfiguration({ StreamRole::VideoRecording }); if (!config_ || config_->size() != 1) { cout << "Failed to generate default configuration" << endl; return TestFail; } return TestPass; } int run() override { StreamConfiguration &cfg = config_->at(0); if (camera_->acquire()) { cout << "Failed to acquire the camera" << endl; return TestFail; } /* Test that setting the default configuration works. */ if (camera_->configure(config_.get())) { cout << "Failed to set default configuration" << endl; return TestFail; } /* * Test that configuring the camera fails if it is not * acquired, this will also test release and reacquiring * of the camera. */ if (camera_->release()) { cout << "Failed to release the camera" << endl; return TestFail; } if (!camera_->configure(config_.get())) { cout << "Setting configuration on a camera not acquired succeeded when it should have failed" << endl; return TestFail; } if (camera_->acquire()) { cout << "Failed to acquire the camera" << endl; return TestFail; } /* * Test that modifying the default configuration works. Doubling * the default configuration of the VIMC camera is known to * work. */ cfg.size.width *= 2; cfg.size.height *= 2; if (camera_->configure(config_.get())) { cout << "Failed to set modified configuration" << endl; return TestFail; } /* * Test that setting an invalid configuration fails. */ cfg.size = { 0, 0 }; if (!camera_->configure(config_.get())) { cout << "Invalid configuration incorrectly accepted" << endl; return TestFail; } return TestPass; } std::unique_ptr<CameraConfiguration> config_; }; } /* namespace */ TEST_REGISTER(ConfigurationSet)