[{"id":35287,"web_url":"https://patchwork.libcamera.org/comment/35287/","msgid":"<92363589-0330-4fc1-b446-407d2cd732bc@ideasonboard.com>","date":"2025-08-06T09:57:16","subject":"Re: [PATCH v3 5/8] libcamera: camera_manager: Add LayerManager","submitter":{"id":216,"url":"https://patchwork.libcamera.org/api/people/216/","name":"Barnabás Pőcze","email":"barnabas.pocze@ideasonboard.com"},"content":"Hi\n\n2025. 07. 28. 13:55 keltezéssel, Paul Elder írta:\n> Add to the CameraManager a LayerManager member. This allows us to have\n> one LayerManager that handles loading all the layer shared objects, and\n> then each Camera can access the layer via the LayerManager via through\n> the CameraManager.\n> \n> Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>\n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> \n> ---\n> New in v2\n> ---\n>   include/libcamera/internal/camera_manager.h | 3 +++\n>   src/libcamera/camera_manager.cpp            | 2 ++\n>   2 files changed, 5 insertions(+)\n> \n> diff --git a/include/libcamera/internal/camera_manager.h b/include/libcamera/internal/camera_manager.h\n> index 0150ca61f7de..ef5b0688de23 100644\n> --- a/include/libcamera/internal/camera_manager.h\n> +++ b/include/libcamera/internal/camera_manager.h\n> @@ -25,6 +25,7 @@ namespace libcamera {\n>   class Camera;\n>   class DeviceEnumerator;\n>   class IPAManager;\n> +class LayerManager;\n>   class PipelineHandlerFactoryBase;\n>   \n>   class CameraManager::Private : public Extensible::Private, public Thread\n> @@ -39,6 +40,7 @@ public:\n>   \tvoid removeCamera(std::shared_ptr<Camera> camera) LIBCAMERA_TSA_EXCLUDES(mutex_);\n>   \n>   \tIPAManager *ipaManager() const { return ipaManager_.get(); }\n> +\tLayerManager *layerManager() const { return layerManager_.get(); }\n>   \n>   protected:\n>   \tvoid run() override;\n> @@ -66,6 +68,7 @@ private:\n>   \n>   \tstd::unique_ptr<IPAManager> ipaManager_;\n>   \tProcessManager processManager_;\n> +\tstd::unique_ptr<LayerManager> layerManager_;\n\nCould it be made a direct member without `unique_ptr`?\n\n\nRegards,\nBarnabás Pőcze\n\n\n>   };\n>   \n>   } /* namespace libcamera */\n> diff --git a/src/libcamera/camera_manager.cpp b/src/libcamera/camera_manager.cpp\n> index f81794bfd6fe..35c8ed036502 100644\n> --- a/src/libcamera/camera_manager.cpp\n> +++ b/src/libcamera/camera_manager.cpp\n> @@ -15,6 +15,7 @@\n>   \n>   #include \"libcamera/internal/camera.h\"\n>   #include \"libcamera/internal/device_enumerator.h\"\n> +#include \"libcamera/internal/layer_manager.h\"\n>   #include \"libcamera/internal/ipa_manager.h\"\n>   #include \"libcamera/internal/pipeline_handler.h\"\n>   \n> @@ -41,6 +42,7 @@ CameraManager::Private::Private()\n>   \t: initialized_(false)\n>   {\n>   \tipaManager_ = std::make_unique<IPAManager>();\n> +\tlayerManager_ = std::make_unique<LayerManager>();\n>   }\n>   \n>   int CameraManager::Private::start()","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id DA201BE086\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  6 Aug 2025 09:57:19 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 97B4A6921A;\n\tWed,  6 Aug 2025 11:57:19 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 18A616921A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  6 Aug 2025 11:57:17 +0200 (CEST)","from [192.168.33.11] (185.182.215.213.nat.pool.zt.hu\n\t[185.182.215.213])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 96DB711EB;\n\tWed,  6 Aug 2025 11:56:28 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"pLl0Javd\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1754474188;\n\tbh=AS/b35OhHJXnxTlPLIIBFEOwRfc2j7ziG3h+L9kEcvM=;\n\th=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n\tb=pLl0Javdz7hk8hgJxoNxB7vceaf2+l+REyBs0r4V60cemhb5sLMKqyGxfq3feaNU6\n\tAVJxVF08aL1HSt4MRluv4Dt1LCEuregBEHj9BwCbxfUPQMtthrP5UgYZ2gfovYshtd\n\tg0RH+pkcNqKIV+FT+ApXTT1KzLNPhTsJIDkEPLJA=","Message-ID":"<92363589-0330-4fc1-b446-407d2cd732bc@ideasonboard.com>","Date":"Wed, 6 Aug 2025 11:57:16 +0200","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v3 5/8] libcamera: camera_manager: Add LayerManager","To":"Paul Elder <paul.elder@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Cc":"kieran.bingham@ideasonboard.com","References":"<20250728115556.2886082-1-paul.elder@ideasonboard.com>\n\t<20250728115556.2886082-6-paul.elder@ideasonboard.com>","From":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Content-Language":"en-US, hu-HU","In-Reply-To":"<20250728115556.2886082-6-paul.elder@ideasonboard.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]