From patchwork Tue Nov 4 13:49:26 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Antoine Bouyer X-Patchwork-Id: 24966 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 71EDCC3241 for ; Tue, 4 Nov 2025 13:47:50 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 0A93960A7B; Tue, 4 Nov 2025 14:47:48 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="SyQk4h6s"; dkim-atps=neutral Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazlp170110003.outbound.protection.outlook.com [IPv6:2a01:111:f403:c200::3]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id C541D60856 for ; Tue, 4 Nov 2025 14:47:44 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FiT+Ow60hirm5ZUiuKxwAfjLAz9plqSjdUM+rfDe1UlWdnN1HWBSJTGvRs+XJCN7CfdExAeCUiq8bwyZ6VIV1BZGkZVIz7SWtMDBMKrZjCLz8LOXcP5QoxBgY6LuYg44VyiB1bXi3Q8nkrCT+/ImAaz+m6/BlDKom29Seie/xvoOBisMbzxy9Tw0EnAlI+wq/sXnuTNMZH6TJLFDLI2KlGJJPp1Ekeez5P2D/iCtbKzLHUdBoLbyhGJ7ROrkIOHb9ZjdvHzufVFL25kkIU2ah5FpoNV10g8J8rbITWIHiWBxUmSAPKSlhOV5NicF/DOdAx/CVidy7gT+eUZaWYc8ow== 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=QeWqTcZPC9HXrL45LMB2b4qKvCzMIf0NDV7/kLTDfsE=; b=paUJHloppTS+rodGEPGEiXcbJEuzUUO+DKdHaNmxIHFjPY+JKKSkb1lFe9iqyp321JbKuUTkAgY2Fs3LT15JqY5EmVcvinb9Zz+P4w+PSFXLSwvj2yIy2KHC/Gm+jDYtuBOCYRnceznZLzX96PtHMxTDGnTMDqWH4lwahokzlzAbAmT/Ikzlxg1Hmq66Jm0J76fMx7VvyQNdV3cEN7NNYQTm+ppAPsUs+fTtz6cP+B0cv6iUFy3wFGs7+RPg12fp9hjdVX7Ch6ZlRJ1nY2p98hAU6PAnE/uDh88f0xMVqUpnz7xwpNbaa9Oa/F/JXUQ681ZBCww/w5MAaSIEk7XGoQ== 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=QeWqTcZPC9HXrL45LMB2b4qKvCzMIf0NDV7/kLTDfsE=; b=SyQk4h6s47zRQjHB4UJDz58THyEsA0YUN6I/+e88G3SeufVM2kp2Ru+ioz6R+ElA0AdtoPwAJviuiFz0YGmFIR5qIlePl9vMbeel1eGO/iUPcTJzxkPYK+T6sqMw4R4CtvxlN03B7IItRw12QmkXBC4VuZkL4TPKlqFXYc6rTrnDEMpPSQZgEi6Su04QKEGZS2rK7jcAPhWJzPFgfqI0gMGRB70lAt+gT9oZwNs3DzhcJH0B3x/flq4+/UwRGFbusxj8nc1ZqD+neMiyE5XfsJjxXxNmlhCvQjf+Av9gQp6P3M1ky2uKQrEDzAlKnmJgXUNoWj3YhprL+u0hQkjUVg== 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 AM8PR04MB8020.eurprd04.prod.outlook.com (2603:10a6:20b:244::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.16; Tue, 4 Nov 2025 13:47:43 +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.9298.006; Tue, 4 Nov 2025 13:47:43 +0000 From: Antoine Bouyer To: libcamera-devel@lists.libcamera.org Cc: julien.vuillaumier@nxp.com, Antoine Bouyer , Kieran Bingham , =?utf-8?q?Barnab?= =?utf-8?b?w6FzIFDFkWN6ZQ==?= Subject: [PATCH v6 1/2] libcamera: pipeline_handler: Add accessor for useCount_ Date: Tue, 4 Nov 2025 14:49:26 +0100 Message-Id: <20251104134927.318841-2-antoine.bouyer@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251104134927.318841-1-antoine.bouyer@nxp.com> References: <20251104134927.318841-1-antoine.bouyer@nxp.com> X-ClientProxiedBy: AS4P251CA0019.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:5d3::7) To GVXPR04MB9831.eurprd04.prod.outlook.com (2603:10a6:150:11c::8) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GVXPR04MB9831:EE_|AM8PR04MB8020:EE_ X-MS-Office365-Filtering-Correlation-Id: ab7fb17d-bdc7-414d-e29b-08de1ba8baa7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|52116014|376014|19092799006|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?HBEHdoWasbGBRhpA2FEIiXMYKvAZ?= =?utf-8?q?8qDdFn4yKUYknbc8l7aNCOxH/eRX6Rplx3A6MmKizGJlDvfdIcSzZPfl?= =?utf-8?q?6NJpve/uQuqJQ1X8ELJhGlQxcdw9Z+hgpCBhjEuzwtqzvlDVj0x7y4wi?= =?utf-8?q?JUyByCwG2D9b4jbgxKoXktTBnQHChGsKIdXETBdx1QVGJ7NS2htS+lmA?= =?utf-8?q?TltstdOo2wcdL3O/Ej0L4lw/nYRKgXpmZRc70kTmywQQNHOI81xr1eBK?= =?utf-8?q?K+NDKMM8HNBRGqDGSAf9H5KvJFNZEqCAmeVDzArzqKKRT+b86tSQjyTh?= =?utf-8?q?nSEQ94Qes6YqmTmxxUdvjwSLVulCLWEM+pTfoRnXgs/eDrgcGad97Xyu?= =?utf-8?q?/pXV1HeCIuOIXYKPZyrpSMgB6t27MSeiMc6aNjbU3u8GtS69Zrx4Q0Fm?= =?utf-8?q?kIpkEeFCtOHF4KAoPLI3a7aow0Yg4UAFV8MW/RoLW9XRnEWm5gZ7GE/H?= =?utf-8?q?l1vQkKTTCk8P0D77yDMW+s6c2lj9DIkKOezQyz0bT9/m/4n/56inwUmE?= =?utf-8?q?eeq+XMhKBvgoC8AJ+f0groiGmRHcuEzs3/5/SJCE+sfiPO9CMn/72Y17?= =?utf-8?q?l3M7SCbolvwWls0z1muY7dLY+sy0dsySKMvuGSdEAyPtWPtAl7kc8CHw?= =?utf-8?q?PSSI1j9ha0qa9YXrIIqHvQ4YjXOxekfAXFBeKLur/O2oNXxBcKSbrjr1?= =?utf-8?q?RUg3z0gpJBidXV9xo2D5KfF4aOl330DqZXE2XK4Um2QhZZI0FFk6Hkf2?= =?utf-8?q?QTuBzilCqKEcrNvBvxVRWICS7aaLDTU2IGgQJM9a9/aRM8QWNYnKHcgH?= =?utf-8?q?GLA08ejfY6+p9oQCsJMbl9h4Ta2/hOwA6ZFsu6Tt9EvydNTtv3HCJOXb?= =?utf-8?q?ozzTjgfBNom+TGH1wf3xgu28iGpHAI0nOoqBzuXbPI487EI671QFT9jG?= =?utf-8?q?TJZkNPERepu61Tq5nthkDzRyy+cUxQJ8m/4ZYvzDJ4kINPt+fX3hLSGN?= =?utf-8?q?7Are1ErDcgmScugoKs8jHX1k51mEsDqNLXtWvR+RmsBZm4tFahT4mAhw?= =?utf-8?q?nKMOGlHPGHaaaG6BR4exYYTqThvEJMzyIlmqEtorTK0Sxubgtr3uPSuC?= =?utf-8?q?TREpcM8vxHx/Q4hultlTDnFnMAVs3/geu2+Njat0VJmpn10R8ZZpaquI?= =?utf-8?q?qtuac9VbB4+0Nyz+rsZZdLGR7Pnh+BoxvFc3tU/S3KIuTDdf0csbXjoq?= =?utf-8?q?Dte+mS0Ml+ih58f6+xrwdXXsYOCIpuJd1yxO2T0iMjpz6m2YB0CvruTc?= =?utf-8?q?3hH4MKGZQWSjROhDWNxGyri/ddsQMa+P+oI04geUVggDOW8biFzkEJCo?= =?utf-8?q?hTlOzeC0zOEcZJ4FOwFFg0yzo3uB9z3hJ39rgEXotqqzreV1UD6EA1yC?= =?utf-8?q?kx3jwhiYNwP443DCFruTrFecN9dxaBA2FxIERyvscuJKrf5PE14xWStX?= =?utf-8?q?tcDOA9gvxPYfNXk7nsyHFujomoT3AnYNqLJHImTIGYn5LBhS+UftxHiN?= =?utf-8?q?VRG76zY9uHtty5WSBUoknsxFN++bY9YWNTlzzx+ZZq20CAxH2ydp?= 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)(52116014)(376014)(19092799006)(1800799024)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?D0GppWSymOOYp1fFspesMI6qW?= =?utf-8?q?B7qd1X+lL/QngbSFBZhU1joQsyvNNeZ2hh2DxryaN5cXca2vAx9YFRI1?= =?utf-8?q?CI9zKIbDY+N20+tjjA/fPRMsFNFrdbinZfqtsOH1eymq/W+kQlVPdeCl?= =?utf-8?q?MqSgdNvgu09TSwQx4fpn/QUnhpocl8EiMqS61mpXpmHrgbZZNjWERQxa?= =?utf-8?q?KMML/kbk9AyEyY2Bye5fmfoaiPxCBDiN9bKCnwdVa1ReQXQTd9IX+HJC?= =?utf-8?q?ehSyoUVTiwuD6aKfLddCRiwadi3CXRREMN7ffeirTPMnbOsRaktgWJ/d?= =?utf-8?q?HRYUePkq6d0nbcEq0eOnn3Kky3uY/mRoibyeEe7cweRoWVuG2ac7ahin?= =?utf-8?q?c90JRasE7SZA/UDELCwgW8TMJDFzhsf+HSjtw1J54Li6vsWAE/bK+oCf?= =?utf-8?q?Wdlgy1JeOrzEcrH05Ru3/855R6tnWAKbf5pFrh0yY21fNVEcbHKr1XSY?= =?utf-8?q?6AHvhlfjoIJoumTrqibXQa53WW8YKzzkekGbqXalSn9rLfNpDF22BTtg?= =?utf-8?q?RiEQ86ChKNIf3ZhKkIQItlp0HpyRyJtYAKJrrWgHhhjHGrnGhICqvCLX?= =?utf-8?q?+pLE4fRJ7d/rlRQ7N+aLb2qyCRmQidJA53sh+3xwUZXaDm5UTW/bYIE8?= =?utf-8?q?Y4pIu/A9XGPAYhxCyd/9WSOP2VEYBiC4ov9LZzR2ahrSZEPsPGDeMlGx?= =?utf-8?q?x/i/mtZcDGX8iC6Jse2/uFbOIfbSmza5BQ3UV6apabGvsibGlnZabctY?= =?utf-8?q?0pDgvAxHwo+rd1zX8KiV0b3heJPJMf15ciJ2rDaBXN7for64NUZUBzRt?= =?utf-8?q?6yNAQRO2/lvOP5fV/r3Shahk/Cxg8bCBxpZmJpiCx/bISvvvR8Oq3FA6?= =?utf-8?q?5WeOGNMV0f2CdM6Ax62vo+Rp/gCMUFjfViSHAltF+gddAXu9p3py44Oc?= =?utf-8?q?35PdImnXfO76jpwdR2WbIud/OEongQqcIzQzjWDEw0CW50vwXssqADP9?= =?utf-8?q?8pFKekbJ5itbSL4WxKsQ1D6WOp/uKQTCmNrYL9eI3hoTAXM8E4veWSNv?= =?utf-8?q?iFX58GG71xgSX78/G14AU/IyGCseVr/4BcPxzScbd1hDrJEUiAb6UNfG?= =?utf-8?q?YyMXRFPkNmxitpoIoi9Mt/xIaOheevJkkxXBhlSXbSW8/O+5sXDx9bvR?= =?utf-8?q?2bX2GdLi3gRxyQ7yrwEFkXkVrFi54OVaHhbEUy73fqQ/mou4T5W4733Z?= =?utf-8?q?127sFBt/YfBFI2xOWl9PplYiTYYe363+9EEZn0ljvTfbj8tkDnumz9L/?= =?utf-8?q?4cFMSk8WyrWSm8hCtjawHbRhyUPn08u6EVOCcPyQfMpnsqvcoENYDA/z?= =?utf-8?q?S/xYNe5opRa3Tam32yYKohj1vCozBN7HB2bzhDiHee4BLcj5aqtsYlJk?= =?utf-8?q?4XRTPApdbZK630ccUcAHTMKabk6d/UtcUiOQFXVD6bBoLOo583GptS92?= =?utf-8?q?NmFIbvZuuIRLhJfyMigj0UGCoRLDpx7BntZ7v43MfC7BA4LqUTCgw7WX?= =?utf-8?q?f/0dUPM2dFuTIM7wekgjq7cZZbZUk93EE3fTzFDXa8hNbgUHoChwkWwB?= =?utf-8?q?CVemLhHDh7Vlg1BGWUT+dygZZ9t+FnP+4qH7N90CwQocEakvW4vgCUPJ?= =?utf-8?q?S7d6RaZ5SWacAdjW6+uH+AMpSN9jA=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: ab7fb17d-bdc7-414d-e29b-08de1ba8baa7 X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB9831.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2025 13:47:43.5799 (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: XJEkr1w5ZYVHfoJKQTL+JFFE8oGJMmciDUFNUCtMK2pcVqtmnZdQZIWY0e7p/AfYPotcN7Yy7X2hMNrdKqOFXQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR04MB8020 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 Reviewed-by: Barnabás Pőcze --- 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..2ca210d0ae4f 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() const { 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..15fb32566543 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's used camera count + * \return The number of acquired cameras of the pipeline handler + */ + /** * \fn PipelineHandler::cameraManager() const * \brief Retrieve the CameraManager that this pipeline handler belongs to