From patchwork Wed Jan 28 07:49:53 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Elder X-Patchwork-Id: 25989 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id EEE9BC3200 for ; Wed, 28 Jan 2026 07:50:23 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 861B861FE2; Wed, 28 Jan 2026 08:50:23 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="W5w4HHin"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 4FF3B61FC4 for ; Wed, 28 Jan 2026 08:50:18 +0100 (CET) Received: from neptunite.hamster-moth.ts.net (unknown [IPv6:2404:7a81:160:2100:508d:7983:72a6:2eeb]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 5398D14B0; Wed, 28 Jan 2026 08:49:40 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1769586581; bh=/y/zUD9/P7gYnkbi/xAQBW9u8ZTvVtydC0+nnXaRsnY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=W5w4HHinNTPW6CxQEcnc5jNMbZ0/UaZenNzI3lL0xd0OrX64Y7xGQN56jfJni5m4D 16fxVzMHgSotJ4fmB55tXf5AoH8Q7h96oqcJuWTwfU8mS/H+2RjRuKjmQGkeTYICiV k4NgsjMMJe+jGw7xVPC0BYrwVTt96qUSa4VAmB84= From: Paul Elder To: libcamera-devel@lists.libcamera.org Cc: Paul Elder , Kieran Bingham Subject: [PATCH v5 5/8] libcamera: camera_manager: Add LayerManager Date: Wed, 28 Jan 2026 16:49:53 +0900 Message-ID: <20260128074956.760538-6-paul.elder@ideasonboard.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20260128074956.760538-1-paul.elder@ideasonboard.com> References: <20260128074956.760538-1-paul.elder@ideasonboard.com> MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Add to the CameraManager a LayerManager member. This allows us to have one LayerManager that handles loading all the layer shared objects, and then each Camera can access the layer via the LayerManager via through the CameraManager. Signed-off-by: Paul Elder Reviewed-by: Kieran Bingham --- Changes in v4: - Put LayerManager directly in CameraManager, as opposed to a unique pointer No change in v3 New in v2 --- include/libcamera/internal/camera_manager.h | 3 +++ src/libcamera/camera_manager.cpp | 1 + 2 files changed, 4 insertions(+) diff --git a/include/libcamera/internal/camera_manager.h b/include/libcamera/internal/camera_manager.h index 755928ce60a5..cc3ede02507f 100644 --- a/include/libcamera/internal/camera_manager.h +++ b/include/libcamera/internal/camera_manager.h @@ -19,6 +19,7 @@ #include #include "libcamera/internal/global_configuration.h" +#include "libcamera/internal/layer_manager.h" #include "libcamera/internal/process.h" namespace libcamera { @@ -45,6 +46,7 @@ public: } IPAManager *ipaManager() const { return ipaManager_.get(); } + const LayerManager *layerManager() const { return &layerManager_; } protected: void run() override; @@ -71,6 +73,7 @@ private: std::unique_ptr enumerator_; std::unique_ptr ipaManager_; + LayerManager layerManager_; const GlobalConfiguration configuration_; }; diff --git a/src/libcamera/camera_manager.cpp b/src/libcamera/camera_manager.cpp index 23185467ba02..554cd935339a 100644 --- a/src/libcamera/camera_manager.cpp +++ b/src/libcamera/camera_manager.cpp @@ -16,6 +16,7 @@ #include "libcamera/internal/camera.h" #include "libcamera/internal/device_enumerator.h" #include "libcamera/internal/global_configuration.h" +#include "libcamera/internal/layer_manager.h" #include "libcamera/internal/ipa_manager.h" #include "libcamera/internal/pipeline_handler.h"