From patchwork Mon Nov 3 14:03:24 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Antoine Bouyer X-Patchwork-Id: 24951 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 4AC90BDE4C for ; Mon, 3 Nov 2025 14:01:56 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 98C4760A86; Mon, 3 Nov 2025 15:01:55 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="KtB+oElL"; dkim-atps=neutral Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazlp170100001.outbound.protection.outlook.com [IPv6:2a01:111:f403:c200::1]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 9AC83606A0 for ; Mon, 3 Nov 2025 15:01:53 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SAkpCJJHpXcnhizhQqcJQlatfLs9y85SVGBv0dNAJ5t0xObW4d2NPynHk/ZNLa0mMfJTfJ9rBkqDDxPt1Dxw1ucq6Bet6fVYy0rce7XaEF5qKWcXjEAfk6rzL54ikxkL4rsivb7DjIpHQ80S7MFvvVrgiMLxpIYEbq0+8aXQaBBKayvX4N3+30XihTzmy1tGjWaxOy8yBNeVWoK8m46rIlF9SiGOMEdh27Lfcd7ms3HX+Su8/l48R9PJi2BFNq7jCwDd40om/2Bl9i1TX9x0KzdFDJlFmPLUrKZAM+R10e3Hu9NAmHOkYNjTdiGvJk6j1QQSY/N4Zrfc/pihy6y/sQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=H4gHQ+zKi0jBdc+7k92Xf6Q2jawgfJ2GY5IjIM33KuI=; b=s8l8efE2LiXXABz2VQNZe0hj+lHyJvqPl7GrWg5zCjl3CzERA0OwhvzHBZK6H18uXLosEOnX4Afs9rQxoPctr8WVQRJIZU4rMQNU+J/Iye3lcGEhibE+JyJ1aZGPYmkmTc3SBh/X0lBCqkj4jzcGk3YxjUewr/63csUceBKlab4M/s6ZZGmSrDY+cM0BYcemIJw7NCRpBA10WwJDZJk1Skk9TPP3izIBbsMJOLIJPxa7pxT7hXsjU6efEuorK3kIZhDepvue9A4cT7xYdAbN4ztEq3KAbUTz4xAZ3uAZb+F5CzFVT5Oxbx/9y52dnXmrOBInQZct7xn+SRZZ4sbGog== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=H4gHQ+zKi0jBdc+7k92Xf6Q2jawgfJ2GY5IjIM33KuI=; b=KtB+oElLjH2LLHiWAK6oKw+Pbuw8gEhdqxVL6UUcgG3MTvcL7fVauYEG8NBgTdyjGWwrdn1Jy6i69d5yIAKBg//6et1ZNM2MQmUMPvBMQqSlHhXllCCJOeEzv/zS7N0qW9+wKakKDBQ/f8o1++2T/CAp1gsbioF1RHRs5rtUM1oZE+GdhW9MKEAbei0XUkPlVOE3dt6dT0cUhJBGhdNkuGiehGiv8nAmlMvtDxjr9j1ETppD3bZmnCs7ItxrXZaCbjyDtfisw5nhqvnz7HjWzjPUuWqZ3qF86b4uJh79CHbQ0r9WyaryLDu23I+a+SqeyX0U/TALhVrE5YcH88YKcg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from GVXPR04MB9831.eurprd04.prod.outlook.com (2603:10a6:150:11c::8) by GV1PR04MB10559.eurprd04.prod.outlook.com (2603:10a6:150:20b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.16; Mon, 3 Nov 2025 14:01:52 +0000 Received: from GVXPR04MB9831.eurprd04.prod.outlook.com ([fe80::4634:3d9c:c4a:641a]) by GVXPR04MB9831.eurprd04.prod.outlook.com ([fe80::4634:3d9c:c4a:641a%6]) with mapi id 15.20.9275.015; Mon, 3 Nov 2025 14:01:52 +0000 From: Antoine Bouyer To: libcamera-devel@lists.libcamera.org Cc: julien.vuillaumier@nxp.com, Antoine Bouyer , Kieran Bingham Subject: [PATCH v4 1/2] libcamera: pipeline_handler: Add accessor for useCount_ Date: Mon, 3 Nov 2025 15:03:24 +0100 Message-Id: <20251103140325.88535-2-antoine.bouyer@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251103140325.88535-1-antoine.bouyer@nxp.com> References: <20251103140325.88535-1-antoine.bouyer@nxp.com> X-ClientProxiedBy: CH0PR03CA0302.namprd03.prod.outlook.com (2603:10b6:610:118::24) To GVXPR04MB9831.eurprd04.prod.outlook.com (2603:10a6:150:11c::8) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GVXPR04MB9831:EE_|GV1PR04MB10559:EE_ X-MS-Office365-Filtering-Correlation-Id: b8e308a1-cacc-4279-05fe-08de1ae18a21 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|19092799006|52116014|376014|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: RQGlRq4XO5mAC0dAtaE7AiShPCPqebmizF15PuTvBe8FzHkkas2EVSSOOB0c5eAwTbCfASindKVSNvfa6hQNAZU7hGc1tslUWfUi6NYGKEw68FuKZE+des7U5FaWOPz+HY47cUOsxBO4FtYs2d9Av/bAbiD7C53oC37FKuvIp0BZZatXPWQOhlFi2ou293xkiY/ZQRRcmc+5/8HfcgebWxrjLDrliK8G0PCRDQfYNtQPhZtQ4vke2sdTy0NHMGwFKSVQ2M5vJ0mO9Uqlwmu7IxR+qfwwqcq8IAzWCX2xdMm3rvKw0pIXem2Q2+Dzxqq1TPu2b2LiuWnZ77+AKEyNAbP2XIGpFJ9zH0+/Nnj4Bt1lUf2p+192+j1KM+QH0i9KR3xU5HN1H6Ysk7l7/fKtW5OAgGZXENdJ/oiwDhNtAmqVIk9eowTYFS7i3z2AGYngq2zwCH9wd62CkLycUDFdmYmancUfl360uLQbnu+1w2QkB2bzXhptReCz8lj4mN4ejMCooP32iDunzyvg992DaC61pz39s6+S7zGh1rI7mchYvcasMqAL+LbQlUytsw+IE/h9zB2De9XRVhGLrX9soh5c6tHyENrXYKu86LtGiz8eO/PQblpj9RZFz2qmQAWa792qKwDFrV6ZgYjKtaac6shFjKQTQjl42LI+8HYxRDb2bfonB03RAQXMfvKTbAHFHvQ7j8fPPHAJRB1jSxkvpoNUjBhpmdnkbgu/V+WgpPmudBHGh85yXXfAGpAZoYO3bw8rNj5Fi+g1/zSKJlCPIhZ7t3ls4ioYAbEfpsFBZu1R0P3ThtEnwLvt5i7IMr0YjvITefZSt1rr4lYVER85ocxzZfX8h4TujOwgpEytbfn/IuNsdg/fwIhCwUzhqsuo2OvIHH3ojXr8PkqXwoYJEGupgY2bIF4kVRSKjrJR7HFITlINwic1zXsgCp28FmdB0DuBGQvhn9wiUhf7CTV7WX6OoHzsvhJrBGj0faZ3IhGqlEaim6mLYSCSbjv8eI3dS/WcgiXX/VtHIJlzj/CKggN/oZSbYy/LSKZdnSs/P9cX55BJ75eNNajyd9nmO6bOK7802BL1OQ7+30knJYmBTIneEdYB2eYc4vCZhksXbVNdIZLgCzuuoPhUs4jEh0HQl3OpNpn3D8f6zrATgkMgRzoo456VO4PweUj3yQG72vGoIcowcNCWIIINPEbxiQs+1ghznBeNihF91+1Uo0ZbFHPul3jOVzOjYqVvwyboaI0ZsgPX2HBtSpUPpl7jCJz1MVgCYhZ/DNbK4kj3cJWZuRoqE9+uStYyGiHAToMIlsybusllqj0TaF90ffcHk7E4SCuIo51XcPTkEK+kAPkoy/mOMo49D0qXmLCElirT/nvrkyls1DUvs068AcU10iuVoEM9d/7DxXPscSyNUqDPzqIHpcCjHFvRkDqnF1IS2Q+ZT9+7TMh8Zy7n6QUhf97P07aRDOBDxEJO82Pytb/l0v/S3UfATeBT2qAzUl15Lq2SQflWbwbUQg+MZDYy4nRE X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:GVXPR04MB9831.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(19092799006)(52116014)(376014)(1800799024)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 1NRhf+PN0CnJN7TKfKM7s3KzpUPVFqptAz5af5BZ/eAf87wzKnsHNd8HwrjEd7MzeAfIEf+xtplhkrYK1AyX0eW99PXb1EgB+bAvs5fnaguMwrots4MQdvAcK7tU6WRmXUdEBcUi+ZtjXbkd05a0mL6WHHbzJZaQi2rqab8V95QWmKeVG5eyP3GIwsUOEcDzHEtbo0Vr6oAo+fK2SuVXsMj303Mzvgbq4EB9rQld6C08E/KKI3bh49tM3I7MWwd+l+J2EyGkIBEQ9AD6QOocZ2uSVJia+5G8JQy3KAMw8rXmZkEajpKlXdj+IW7Uyg/XnLRv+QzwQt5ONe1Z6Z+F3amTYyaj7NeyuwzzyaleRvDeDPp+4sPiBVM0LjW8AChauqWkCyNy/l14BCGhD6WGJffB1fHCMTmayGH0JLhdWakkUrESjmm8aq9x9owNOOdJiZRJVNhMKW3EdnZRyERcZtNxsEhV1oAqz/2rWPBs2+SokIroF4fN7y4vsuROMtR6Ul5vmJAtHA6lC+XGZL97ygjVnpam3tfgtHLp5yFefRYY016S43QlrhMxMIKytG8Toz6RwaaXzBVhdhr/NXbVItbE/hzkRuP4OSJLwVrfirOjjpFWZeFCciMsNMBhHLXZyMoVp1q2yHEZHDj/nCuetvpRqGjfhOS4joPvDuwzkPOALcnT6BQb5RFAdw+SmtTyCG2Vbh66dAjkJf6w7VNnRFcHinsJ0b4Q3Od3gyfYY7HQ5m5+2wXcEDiASCSHJRgqsbrGhORL3MoD+qxygLtW95IL1qr1N5S+9z1eHQHslbuE2UmH2ZMSuPR7h1nQm4eZSClMSEPuJH8eyvN24YBXWKJq4fYdtg1B7dAUPGcm08x/Q/gvp4HcEd1mcEknSUL/OXVhhmU5b1t7gz8TgZ1rUCzm/dI4YXgkm0Cj3ip3vhBfWHx0bq1oZSXS1pDmldosm9KqWScoTTThCMeaTwy2/x1VutPMmS3ZLNFym9UILCuiYEfYxbQVRJzOPS9OsTzwAxoqBpZiCDRuh7yNZDMtMrUcdgwrZu1JpdtINy8GxGwKyaA71tfT6Bw7ayK59z6eGYjPFAggytFDHbO1/jKRotDolzABBynJE1a8rpun1CDhbepVbJQhcp+oWZL397rONjvx48WS+3+/l18PU4/mtIm6A/GDPdM9S/P2AbqpvRFC8AMMO8kbUqigOLVtwvdORd59GhAh5116Sjbaq5mE9PdIRAVOraxf4WKfxznxO7B8QKMb92dBwpYG9aePnnkptT0lKJPXJQH4q6yl38T2dMTyu2AayXgGgG8hEGOf1KfhkDSwCrgPYtgIHc5meVOrE/dkBoL8mw+89JgFBJv/jym6fLXTEBrxKfVweBHxN9iSdP9zNswujPdLFD48L7I4s+8dHZiUDq6OnmPsuWP17TWwtL2TQV+YQGa4Cqrc5l5yeUAawUxB651DBSQLCWmM1/ZkH/nxoZFnHsv2qscW2Y1mx2ceKglUwSBSHyb00Cbij6q5ihMRH/WGzxbwybklm+VlB03yF33ucxnMrEn/SvgPMBnjcIHBGnoI+2y2zB0W2DKEfidbJ6+G/Wf2pcatiGz6lb+0Qhfmg0gNFJ7nlA== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: b8e308a1-cacc-4279-05fe-08de1ae18a21 X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB9831.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2025 14:01:52.3480 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ohFcymJR7uL6ExeP6QFdM67s/czjlNrFLtzKrXoi8PU4FyQlBCIpervbk7LS+NwLUTcOuMacQT0R2+8IUX400w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR04MB10559 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 an accessor for useCount_ parameter, so that PipelineHandler child classes can access it to verify whether the media device is already locked or not. Signed-off-by: Antoine Bouyer Reviewed-by: Kieran Bingham --- include/libcamera/internal/pipeline_handler.h | 1 + src/libcamera/pipeline_handler.cpp | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/include/libcamera/internal/pipeline_handler.h b/include/libcamera/internal/pipeline_handler.h index e89d6a33e398..8fe970317fdd 100644 --- a/include/libcamera/internal/pipeline_handler.h +++ b/include/libcamera/internal/pipeline_handler.h @@ -73,6 +73,7 @@ public: protected: void registerCamera(std::shared_ptr camera); void hotplugMediaDevice(MediaDevice *media); + unsigned int useCount() { return useCount_; }; virtual int queueRequestDevice(Camera *camera, Request *request) = 0; virtual void stopDevice(Camera *camera) = 0; diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp index e5f9e55c9783..3f7c20aced13 100644 --- a/src/libcamera/pipeline_handler.cpp +++ b/src/libcamera/pipeline_handler.cpp @@ -811,6 +811,12 @@ void PipelineHandler::disconnect() * \return The pipeline handler name */ + /** + * \fn PipelineHandler::useCount() + * \brief Retrieve the pipeline handler user count + * \return The pipeline handler user count + */ + /** * \fn PipelineHandler::cameraManager() const * \brief Retrieve the CameraManager that this pipeline handler belongs to