Patch Detail
Show a patch.
GET /api/1.1/patches/24963/?format=api
{ "id": 24963, "url": "https://patchwork.libcamera.org/api/1.1/patches/24963/?format=api", "web_url": "https://patchwork.libcamera.org/patch/24963/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/1.1/projects/1/?format=api", "name": "libcamera", "link_name": "libcamera", "list_id": "libcamera_core", "list_email": "libcamera-devel@lists.libcamera.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20251104075609.94310-2-antoine.bouyer@nxp.com>", "date": "2025-11-04T07:56:08", "name": "[v5,1/2] libcamera: pipeline_handler: Add accessor for useCount_", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "e52993a68ae2342875fd522ea85b6bbb65e2e16a", "submitter": { "id": 218, "url": "https://patchwork.libcamera.org/api/1.1/people/218/?format=api", "name": "Antoine Bouyer", "email": "antoine.bouyer@nxp.com" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/24963/mbox/", "series": [ { "id": 5561, "url": "https://patchwork.libcamera.org/api/1.1/series/5561/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5561", "date": "2025-11-04T07:56:07", "name": "imx8-isi: Move isi routing into acquireDevice", "version": 5, "mbox": "https://patchwork.libcamera.org/series/5561/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/24963/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/24963/checks/", "tags": {}, "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 A8344C3241\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 4 Nov 2025 07:54:53 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 6C0FC60A86;\n\tTue, 4 Nov 2025 08:54:53 +0100 (CET)", "from PA4PR04CU001.outbound.protection.outlook.com\n\t(mail-francecentralazlp170130007.outbound.protection.outlook.com\n\t[IPv6:2a01:111:f403:c20a::7])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 7A43E606E6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 4 Nov 2025 08:54:51 +0100 (CET)", "from GVXPR04MB9831.eurprd04.prod.outlook.com (2603:10a6:150:11c::8)\n\tby DBAPR04MB7448.eurprd04.prod.outlook.com (2603:10a6:10:1a6::6) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.16;\n\tTue, 4 Nov 2025 07:54:49 +0000", "from GVXPR04MB9831.eurprd04.prod.outlook.com\n\t([fe80::4634:3d9c:c4a:641a]) by\n\tGVXPR04MB9831.eurprd04.prod.outlook.com\n\t([fe80::4634:3d9c:c4a:641a%6]) with mapi id 15.20.9298.006;\n\tTue, 4 Nov 2025 07:54:49 +0000" ], "Authentication-Results": [ "lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=nxp.com header.i=@nxp.com header.b=\"Cx6FSBgg\";\n\tdkim-atps=neutral", "dkim=none (message not signed)\n\theader.d=none;dmarc=none action=none header.from=nxp.com;" ], "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n\tb=tuqmwDFlW2FQ3ztsdonSyIiZe3K67GsSYAsVKnD+0ccCyHYTrAmTsvDUYn8nAbuAchQLv3x2VWBKSAdEDO6lTGXqMOyyQFbdz1zYn9+liFYlKFz2jC58xJ1AwpdcFt2VU9zoUNYu1cL/4P89OSHiuCgX9VlVsKRc5o0mAD1CgQJ+MFy7IZRdHGfEcuf66KdsK7hdbJWO6yczS5e0unUaSkysb2TR0yhtfJFeweUvCS7+tdA3GDyTXLDQTFCeMJlM6DmVsczra7Ahg68QBrd874BWAO+YQCAyH3mF0D9W2TRdYNR2dCowInGsnRWUFUKcWkzaKO3hZM+iBXD0uAVhLw==", "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n\ts=arcselector10001;\n\th=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;\n\tbh=z1eHOI41+8hbpCxIEVC0i1vAxB1l4Cbrzi5gnyIH/yo=;\n\tb=x9KJ3NDjNQioTK09LIFqfZqxihdj2bzgL42Nx6g82dVvGEHu5zhDCViSYQ00V5nm+6Q6DQ2qN3/RldHMWJqnX3iAIW3nBwzE0Lza7D0DQHD/AQehh8HxMcgRJ3sq4Z4+F4wP1HQqc2xyp3VukyR/0sTsqHytCVAim3Wv/nrBm2LguhZCLGPh5lXgSU596g06THQpdUXLFdzP2emaUnPU955oMJ/1kNhULBT3nnJwM4MMCqUBSy0pHe+SBumgdnmZL2amC7Samr23yAwe+LLfHeqK+qBF//SAOORPIyC3yRpU34XhrNuQ5yiVVWIPEIdD5y9Yrrwe38h9TqzbRbCIMg==", "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n\tsmtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com;\n\tdkim=pass header.d=nxp.com; arc=none", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n\tbh=z1eHOI41+8hbpCxIEVC0i1vAxB1l4Cbrzi5gnyIH/yo=;\n\tb=Cx6FSBggRyf9UJAlnhdgsrK5tSNclCYXFFFoUb4kIWszhJiDaqs9yIs7SppVeCplHEOImngOr5dm4suBsvV76BRidD7MXZFKaWCXwpCAAAs0SbvnXpfOek19hNJeurFPoxoMJl9aCKyCrOuY+JQbRL3V4LL5mxziVoN6E+6BhjYwfYUWt1XT88CeKozkYvPpQxd3Z7DJ3fm860+qHaCtZvJCB1LT6BNSZjLDknyVFDzd0LgG7woLQ62wMWuEgRjzLMu9vDqRrC1wtVyDtdkUL6fXH9Q5Kfy8eApVQvdsaPbGRFg5E0IuNLuLhN1yuyNMZ/rVvu5BzykmqpWW5T+gOA==", "From": "Antoine Bouyer <antoine.bouyer@nxp.com>", "To": "libcamera-devel@lists.libcamera.org", "Cc": "julien.vuillaumier@nxp.com, Antoine Bouyer <antoine.bouyer@nxp.com>,\n\tKieran Bingham <kieran.bingham@ideasonboard.com>", "Subject": "[PATCH v5 1/2] libcamera: pipeline_handler: Add accessor for\n\tuseCount_", "Date": "Tue, 4 Nov 2025 08:56:08 +0100", "Message-Id": "<20251104075609.94310-2-antoine.bouyer@nxp.com>", "X-Mailer": "git-send-email 2.34.1", "In-Reply-To": "<20251104075609.94310-1-antoine.bouyer@nxp.com>", "References": "<20251104075609.94310-1-antoine.bouyer@nxp.com>", "Content-Transfer-Encoding": "8bit", "Content-Type": "text/plain", "X-ClientProxiedBy": "CH5PR02CA0015.namprd02.prod.outlook.com\n\t(2603:10b6:610:1ed::9) To GVXPR04MB9831.eurprd04.prod.outlook.com\n\t(2603:10a6:150:11c::8)", "MIME-Version": "1.0", "X-MS-PublicTrafficType": "Email", "X-MS-TrafficTypeDiagnostic": "GVXPR04MB9831:EE_|DBAPR04MB7448:EE_", "X-MS-Office365-Filtering-Correlation-Id": "b7d5ee4e-4de7-4aa2-42b8-08de1b776d96", "X-MS-Exchange-SenderADCheck": "1", "X-MS-Exchange-AntiSpam-Relay": "0", "X-Microsoft-Antispam": "BCL:0;\n\tARA:13230040|376014|52116014|366016|1800799024|19092799006|38350700014;", "X-Microsoft-Antispam-Message-Info": "RNAYq2z6SQpCCSxoA8YdHWjOsOgGnykHYDC95AOp4RLI4MTt3NpcM52d07j0JDm7W6WUWiJnKzZcS7UpUZByCs6HJIRjKd59dZ7qjJbIy9thRW1i02c1IJY80nDHZ8/dTodwnHkX5mgEYFNbaVw98eBZ8RaqV4zJcSaH44WU8TD6vhLmeNq4lPRkW7tC03QGM+LVQ611HgtE+VAQwoWagQbl5+HkYlDqdft56uhtiCb/Z+AWMiSBAzu6Q7flpI2hGyKDpDdW58iT/8u13X3TC8MWtKnPqR/gDo60isNSbrtWyOzEGf8pc09hn2c11/XjPjM7/gHDi7qMRGGscsucDrnpEn/g+VWX5CnhWfnZw3rYNg42EGZH4XCSm7W+E+jnNOYXx+w7/1bE/lrVJ9nricOKaKXD4kQQQaX2CgA97oDIcKHN8MQuw1MrYmq39FLTMrysG4xQsfaqoweqb2YPuKL477lvfNXaSMb0YuzXmsgvTq5+2dUJmeq56JUO7nol0lxYEFTAhXiuWxwDb1RpyyO0VMzG31KRUUaj+HHMF8XEqPJXyRUbekvjHohIwwL9nK56QYO6j3avgeUYohRcD7t5Xi111zp4cyWvHrQFG9/1NRJYvZXvFTJXf6iqOXwrK9r+iWKys0elzCmixMraptipKg92ilKcjEsU8uVBNn+vT/1KgnZ3EtZmClAqpXj3+RZc8lAe6tyT4WZ7lFFe1D5eU+575oBAUsz/IzXrHlksf7kiOnirMpRyiJO7yY7Z/jQcgZ2bor4df2hjREV34TTX+q0nfeYfrGYQCWnhnWJ9KSunI5IjDd4DXaNGc+QIi1r4BD8bElMkzui23sSAhABcu5zNCZIRZkTiQEmq/LnZUUgtua1wy9NdOKJh7FUoOK2iaLG/tdUV8RosgB25AAD6BsyrhUBGzbuAWjEfoibUDAzS1jwHlvw9U+J+sXySl45HyuH35JrrmwS78gC/GWTRbYLQSV6xycVyJr+YvNIMQPt1MAM20rR/KafvcJomlViNoz12E1BDrzN5MXJAQVROU2E8nqHEjYWlL0Dl8TY1r06P7aQZqMvDFEj3qeyjVdc24zUT0t3RcjwYaA1cYtJ/hvkvI8ruxSkW9Il+EwuXIaulo/Z3OQfh1/4U9juxA3mgyWc5Aaa9hng88kULCtsdic79gCto3f6qyqaKbH8hG5iOYc1AjDkFDci3hAp7wKOo6GDf5DtsRAZWrOOReUlpEjeMz6gp1PMr6Gvr43UrIQmoeaZMJ53L3RSTO53g7eRCm/SqvcC7QlI4MsOlY3sCbhCfB4feG9gu9Qd/s63SreAYmLuDtPYvT8jm6LQ97qMlsORVVc+ZaGHUX/kmR19jQgVMPD31L0FbdcnJf0IF0zcC9cApmjG3M53GdGRJS/28CjvSnn66gc6nTwHSDiFRtbkVDiCX7urZW3HqTd2STNE2EyrYXvXI+kQ8BuvPUyww+A/ZT42ZCN6Hxra0+ZjWvRZieaUzJmqUfnwX5P+CZihoBwC/SBeHLcwAteG3", "X-Forefront-Antispam-Report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n\tIPV:NLI; SFV:NSPM; H:GVXPR04MB9831.eurprd04.prod.outlook.com; PTR:;\n\tCAT:NONE; \n\tSFS:(13230040)(376014)(52116014)(366016)(1800799024)(19092799006)(38350700014);\n\tDIR:OUT; SFP:1101; ", "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1", "X-MS-Exchange-AntiSpam-MessageData-0": "c1rwpGNGPDrVhJUSI+LvT0vpNBuLT/Xc03XwuQSVVOoS8JIZYgiuk8pJ6NUMcO45LWz/AYfKbCBwEycfOrkmT0+/ZOVNnd9iQXrYEBKfBJEnSefIdCI4LrCmGSIjSA5F/l2uut/zEbb/fsYfR+uGlLk9Heyeb3HcjCqgkdKncuTEzYLy72q3xitpuDrhyUL9TkACo5RInbigKaWMniu2b0B/vPx1gYxmI42vQhxfzhm54OSg9cILK0Y9Ug0vL/Dzqbx9pK2nszhV6yX/IC09Qlo8P2Mkvos7+6Rc33Zi4fdWCggOwbmZBdsIyjbbeshUcQW+skVG/46hcwX9u8EAcB5janP5WcBzBKxL2Q6s3g/rGLwEjDE/nEavktgAvKy42aoR9cpe6CBZqKHhC6BpFRMZVjpAQ5TKCkWdbFNrBnpxsZAHsYXMyiiklWjfyqSHj1K1dFmB0zi6lmMeKePQ0Ej5Uv/iR/OMvKVLnFlsPGHdVtevlGTDHYfrqSHAJYdl6cLl4QpO7JLzpej8U5tGwy99vF3g88Cmv+xBmvNeRsho4wa38BgFyH7rqLg/cwSTnH6ok++YE8nca6PgZolYOrN3MJbLbsH9Qh1YjD+CKRWy938NP8m8NHnoc92TSu0y/LXDFOs227lH55kfGTsxMNefwFSk4qZF3dysdCFmwdeQpYaGGtLFurwL+AkJ3iSnZlDTtUjjRcFipzMNsdjOSeDtbmGh6Bb+uoXY0wIfat/ViQ5opQuyudlwA5y4Lkaoq8sT1l2Bw7DmTJcwRpdjnFrTGyu4vqQHJEHlvMZPz/r8vKf1X0ONB5n19tbsnuF5u679d26plqKnZm56VMitTVvZSLiYJUPoenVYVCy5bcTqPURR8C5R6QyeIaSCIh1b3i95FX/akAsnJDU5pV42dr+u17ivx3ZQVnozHjxnkwltfWxji1VSx8QAf3f1/Ebhmmrf4mApO+pg7CDnjsH3mGrEC2emA35S0quZBMiMF22u4tZqYWAn1slz4CoilzRjwQvLK162kFycY3ui/IjtHMYmyd9ONx6UOqGOp6oWRX/xgq3Z6/AvBMqI43WiixRpEDZFOFubmVR/m6BxA/yIdMtgReccCMeSfKcIF6cHRepZv51J78ukoQbru/shnQj11LEQ6dzxFgkjdBRNvZlzZItNrRDy6Pn2RnMe1MR/4WeLFiZKqpw+w8YX6qNp+IWXiiSr4Ka16DVKGeWZ7slu9zZuP1i9CbyVZ1X0sWW57PKW5su5zpROemdvlnIMG3vQKmt0GFjICZUil5Zl7zslJCGhuHdR+sbi5Axdwsl6e882PdoRR2L0bNbevyIP7VXtir+UwnWhBwXyiUaN7SPxbLOraDZIBGtK/ZjV0aedhqjEf9btex+fYNqMZAF2p3w9wpf9c6l3UmRW63HXw0OhWOYM8ubf02kFaC5R80SoD+Q/F9wTHYJFg+Gg/qnWdnw0HvDH7/XnvZ0hCte4IwUSX3YoOukMv6o++FuOZ6m/s+WfZ9kciJLRwtMGxZM8QIWlgiK+DbEBGggg7a4umqf1C1sNwH0Sti/zEbV1I3wlYwrxTIJkt+AjLJGi4PuVmI2nz4slpsRUPgGrulRYl54ypQ==", "X-OriginatorOrg": "nxp.com", "X-MS-Exchange-CrossTenant-Network-Message-Id": "b7d5ee4e-4de7-4aa2-42b8-08de1b776d96", "X-MS-Exchange-CrossTenant-AuthSource": "GVXPR04MB9831.eurprd04.prod.outlook.com", "X-MS-Exchange-CrossTenant-AuthAs": "Internal", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "04 Nov 2025 07:54:49.1470\n\t(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": "qqcVxtsxR796a7jJf0BUaBL+hGMnEHvIcvhWxk6rb6TKDZjIdZqNaAOyLupqqYTKTKl3QMaBMfgWr50NzOYmFw==", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DBAPR04MB7448", "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>" }, "content": "Add an accessor for useCount_ parameter, so that PipelineHandler\nchild classes can access it to verify whether the media device\nis already locked or not.\n\nSigned-off-by: Antoine Bouyer <antoine.bouyer@nxp.com>\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n---\n include/libcamera/internal/pipeline_handler.h | 1 +\n src/libcamera/pipeline_handler.cpp | 14 ++++++++++++++\n 2 files changed, 15 insertions(+)", "diff": "diff --git a/include/libcamera/internal/pipeline_handler.h b/include/libcamera/internal/pipeline_handler.h\nindex e89d6a33e398..2ca210d0ae4f 100644\n--- a/include/libcamera/internal/pipeline_handler.h\n+++ b/include/libcamera/internal/pipeline_handler.h\n@@ -73,6 +73,7 @@ public:\n protected:\n \tvoid registerCamera(std::shared_ptr<Camera> camera);\n \tvoid hotplugMediaDevice(MediaDevice *media);\n+\tunsigned int useCount() const { return useCount_; };\n \n \tvirtual int queueRequestDevice(Camera *camera, Request *request) = 0;\n \tvirtual void stopDevice(Camera *camera) = 0;\ndiff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp\nindex e5f9e55c9783..0279c21b691b 100644\n--- a/src/libcamera/pipeline_handler.cpp\n+++ b/src/libcamera/pipeline_handler.cpp\n@@ -168,6 +168,10 @@ MediaDevice *PipelineHandler::acquireMediaDevice(DeviceEnumerator *enumerator,\n */\n bool PipelineHandler::acquire(Camera *camera)\n {\n+\tLOG(Pipeline, Debug)\n+\t\t<< \"Acquire camera \" << camera->id()\n+\t\t<< \" useCount \" << useCount_;\n+\n \tif (useCount_ == 0) {\n \t\tfor (std::shared_ptr<MediaDevice> &media : mediaDevices_) {\n \t\t\tif (!media->lock()) {\n@@ -214,6 +218,10 @@ void PipelineHandler::release(Camera *camera)\n \t\tunlockMediaDevices();\n \n \t--useCount_;\n+\n+\tLOG(Pipeline, Debug)\n+\t\t<< \"release camera \" << camera->id()\n+\t\t<< \" useCount \" << useCount_;\n }\n \n /**\n@@ -811,6 +819,12 @@ void PipelineHandler::disconnect()\n * \\return The pipeline handler name\n */\n \n+/**\n+ * \\fn PipelineHandler::useCount()\n+ * \\brief Retrieve the pipeline handler's used camera count\n+ * \\return The number of acquired cameras of the pipeline handler\n+ */\n+\n /**\n * \\fn PipelineHandler::cameraManager() const\n * \\brief Retrieve the CameraManager that this pipeline handler belongs to\n", "prefixes": [ "v5", "1/2" ] }