summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHarvey Yang <chenghaoyang@chromium.org>2024-10-22 07:43:38 +0000
committerKieran Bingham <kieran.bingham@ideasonboard.com>2024-11-20 10:47:27 +0000
commit670bbf3dc2b1099bd12cdcea0e63a26637db6d00 (patch)
treea51508a15ce481ee135f246e520f99138fea2fba
parent168488275aacc804ffd264187dca8b3e48b21d9e (diff)
libcamera: Remove PipelineHandler Fatal check of non-empty MediaDevices
The Fatal check of having at least one MediaDevice was to prevent pipeline handler implementations searching and owning media devices with custom conventions, instead of using the base function |acquireMediaDevice|. It also has the assumption that there's at least one media device to make a camera work. Now that the assumption will be broken by the virtual pipeline handler added in the following patches, and developers should be aware of the available functions in the base class to handle media devices, the Fatal check is no longer needed. Signed-off-by: Harvey Yang <chenghaoyang@chromium.org> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-rw-r--r--src/libcamera/pipeline_handler.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp
index 4905863c..991b06f2 100644
--- a/src/libcamera/pipeline_handler.cpp
+++ b/src/libcamera/pipeline_handler.cpp
@@ -646,9 +646,14 @@ void PipelineHandler::registerCamera(std::shared_ptr<Camera> camera)
{
cameras_.push_back(camera);
- if (mediaDevices_.empty())
- LOG(Pipeline, Fatal)
- << "Registering camera with no media devices!";
+ if (mediaDevices_.empty()) {
+ /*
+ * For virtual devices with no MediaDevice, there are no system
+ * devices to register.
+ */
+ manager_->_d()->addCamera(std::move(camera));
+ return;
+ }
/*
* Walk the entity list and map the devnums of all capture video nodes