[PATCH v14 2/7] libcamera: Remove PipelineHandler Fatal check of non-empty MediaDevices
Kieran Bingham
kieran.bingham at ideasonboard.com
Thu Oct 3 10:23:02 CEST 2024
Quoting Harvey Yang (2024-09-30 07:29:43)
> 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 at chromium.org>
> Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> ---
> src/libcamera/pipeline_handler.cpp | 11 ++++++++---
> 1 file changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp
> index e5940469..89a513e4 100644
> --- a/src/libcamera/pipeline_handler.cpp
> +++ b/src/libcamera/pipeline_handler.cpp
> @@ -637,9 +637,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;
> + }
Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
>
> /*
> * Walk the entity list and map the devnums of all capture video nodes
> --
> 2.46.1.824.gd892dcdcdd-goog
>
More information about the libcamera-devel
mailing list