Patch Detail
Show a patch.
GET /api/patches/19998/?format=api
{ "id": 19998, "url": "https://patchwork.libcamera.org/api/patches/19998/?format=api", "web_url": "https://patchwork.libcamera.org/patch/19998/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/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": "<20240503144919.2371357-2-julien.vuillaumier@nxp.com>", "date": "2024-05-03T14:49:17", "name": "[v4,1/3] libcamera: pipeline: Rename pipelines to a shorter name", "commit_ref": "5ed35fca680c531538ea242bc9a68e8f243e9050", "pull_url": null, "state": "accepted", "archived": false, "hash": "cbf702a217dd26725d920ace626face1d6236faa", "submitter": { "id": 190, "url": "https://patchwork.libcamera.org/api/people/190/?format=api", "name": "Julien Vuillaumier", "email": "julien.vuillaumier@nxp.com" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/19998/mbox/", "series": [ { "id": 4287, "url": "https://patchwork.libcamera.org/api/series/4287/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=4287", "date": "2024-05-03T14:49:16", "name": "Add environment variable to order pipelines match", "version": 4, "mbox": "https://patchwork.libcamera.org/series/4287/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/19998/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/19998/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 90637BDE6B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 3 May 2024 14:49:56 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 44A8363418;\n\tFri, 3 May 2024 16:49:56 +0200 (CEST)", "from EUR04-HE1-obe.outbound.protection.outlook.com\n\t(mail-he1eur04on20601.outbound.protection.outlook.com\n\t[IPv6:2a01:111:f403:260f::601])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 7B2C263415\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 3 May 2024 16:49:54 +0200 (CEST)", "from AM9PR04MB8147.eurprd04.prod.outlook.com\n\t(2603:10a6:20b:3e0::22)\n\tby PAXPR04MB9570.eurprd04.prod.outlook.com (2603:10a6:102:24d::20)\n\twith Microsoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.30;\n\tFri, 3 May 2024 14:49:51 +0000", "from AM9PR04MB8147.eurprd04.prod.outlook.com\n\t([fe80::eace:e980:28a4:ef8a]) by\n\tAM9PR04MB8147.eurprd04.prod.outlook.com\n\t([fe80::eace:e980:28a4:ef8a%2]) with mapi id 15.20.7544.029;\n\tFri, 3 May 2024 14:49:51 +0000" ], "Authentication-Results": [ "lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=nxp.com header.i=@nxp.com header.b=\"YLmP3pg6\";\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=arcselector9901; d=microsoft.com; cv=none;\n\tb=BypWvKLb6qmgc5j2++KBRaMlVU1m4dqGK21C87pu2uUtntbHzfgHVoGL9r3sTQjidhjvr7PQW5M6XLRnOdCQnQSdM1UdBqbPpBHT6Uji8hyqIHC6cJr0PAUZk4X+qObwve7WqQPcH8TuArI3+Osg5ZXyPnFjkomhZrubTEIlmsGqoGBkIL77IPWslkCk8ngK5FPZxKioUswENfdwTGx90l4UzsLcMjoAtNBCx+rA6cjLt2pyBWqi3BoxNxX+8sGHPF4yT7Blsi9GR1QBOsSJ9809hkA+raOdbzmeTzaOGKmMmP2VQ98qw8wwCbp3gHzdgQg6NMD1z9lQI9+mc7VBwQ==", "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n\ts=arcselector9901;\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=IAHQRbcb8oyR9I3LUCdcMo+09PpYgoJqXBK+yBn42UM=;\n\tb=RnyWLpFLutQObLdJxsirn0f8sBuQ/vYscgU0Rl3L4NMyCI1vn7Zy8FVZ9mFNNnjpaLN8dJ1TELiaIRBJJEb8BxdupycUgnOan8bcbo3C1YoEuyByXnQJlVr2P1cd2+AWRY7LbnTSpLQIBj7pP2DyxaB2C0ZzUuvZbHLdyguEKkFqqKpjzP730RbegQCsO9bAtAqzSshqiXPxS7Ttrnh2/zPirZRXa9j8TkkKhaIOum00yFfHTUJ/yvC0n0B4fw1HA2TzoDUj3fy89cXhaHbM26yh70LQu38LfgBfm171QcsU9s5EyK/OAJOjZjVpcXrk1psPi3sR8NfzWBqd98X1Lw==", "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=selector2;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n\tbh=IAHQRbcb8oyR9I3LUCdcMo+09PpYgoJqXBK+yBn42UM=;\n\tb=YLmP3pg6urCq4WlaC6w9f2ehXGSllPTHRj6fBCdF5p4hQWYNrwO8W1nj5sXt98Reyxbg4dQZvXNv8QjB+Y6MNdc+6SuFeAA45jMyXyzc4a3xnDpZ6zhnyuvBtsIW5Mibx/XrcTbLCHYA87IETSi2TPuB5swEudBn8r8G45AZ6Ho=", "From": "Julien Vuillaumier <julien.vuillaumier@nxp.com>", "To": "libcamera-devel@lists.libcamera.org", "Cc": "jacopo.mondi@ideasonboard.com, kieran.bingham@ideasonboard.com,\n\tjulien.vuillaumier@nxp.com", "Subject": "[PATCH v4 1/3] libcamera: pipeline: Rename pipelines to a shorter\n\tname", "Date": "Fri, 3 May 2024 16:49:17 +0200", "Message-Id": "<20240503144919.2371357-2-julien.vuillaumier@nxp.com>", "X-Mailer": "git-send-email 2.34.1", "In-Reply-To": "<20240503144919.2371357-1-julien.vuillaumier@nxp.com>", "References": "<20240503144919.2371357-1-julien.vuillaumier@nxp.com>", "Content-Transfer-Encoding": "8bit", "Content-Type": "text/plain", "X-ClientProxiedBy": "AM0PR03CA0003.eurprd03.prod.outlook.com\n\t(2603:10a6:208:14::16) To AM9PR04MB8147.eurprd04.prod.outlook.com\n\t(2603:10a6:20b:3e0::22)", "MIME-Version": "1.0", "X-MS-PublicTrafficType": "Email", "X-MS-TrafficTypeDiagnostic": "AM9PR04MB8147:EE_|PAXPR04MB9570:EE_", "X-MS-Office365-Filtering-Correlation-Id": "e99ccf27-5257-44b4-c236-08dc6b8049d1", "X-MS-Exchange-SenderADCheck": "1", "X-MS-Exchange-AntiSpam-Relay": "0", "X-Microsoft-Antispam": "BCL:0;\n\tARA:13230031|52116005|1800799015|376005|366007|38350700005; ", "X-Microsoft-Antispam-Message-Info": "wIwRS5XZT6qc63bgBwP5MtR+VMDKXd6ucX0pOLYdXxn2K0hGO0/nW+zyxBxwQFL1JhTtUY0rvYUo0ae4puufxVxuQjgRpuFyiPLxzD/Kr3M6zw87nxSZcyjl21/0XgvDGFHOs/tF+kZg58RsfWmDbWNpkALjcdf6gWwmCy8xzSSeT6VjhQksx3SUtXlEC6PxS/aepm6jlF5cE45pgBy21Z0dPXq1a8FgUkctcCiYUNReh4irJfgLiD4h5RyFkwooP60NVDkLSUAvoo8gkRDhuy8aTcMrpuNvJ3ACzuKqv2EUDmH4Y/dWfDriv8NdqOExrkPjDkobzZm2Lhgn90lgSz96aFZv1GRUhSwxHRw2AS4Zbn1LsevhACwNcEIEACYno5r/mncCU5PRyz1uIFUJOGx48ZFZTSSgZu3haH2gT0Myg0ihVFgeUkuSS8PJduVVWtdcHqrBrrAo4acKHUKH2rXN6qn4NH9a8HGlfeOktTVmEjRL5mmR2Ex6E/UEwVcU1dbR/38Ow0TM9DT32bb2A0xRffpNEDQT6IqQtOqiF24bNZWXvnvza7wSBNe6o1Vytsg0lIsbucInjBUqbt0O7x44sa74mSEyaifupAysD6pdQe5NWU/Kv7puC/7DKZgw+tc/auarbd83P4ce3lbhb9QyBJQaezv05OTBbr/UEBm1RZ7fG1YN0fKCeZ966mo1ej2FuDWXTN4XFZWOLn+pWBWgxc3o9WzsCFeadkjAF19nrimDpsGlGXcKnrTBAS6roFe6uxDzPYokGViwD8mWqgRctwmkDlCHz7gZnVF5tgkll4Npa4AHvu82oW0/EbU632BHpsvV5DHhty+G5l20jlflWINHKKcGaxQRr0g921+3m1Goty706jDGW3vifG3Lbi0RBBMTfVD51AYoNbm0soJu25c/ASr+G8SuQ35VmFhfPgMSopOZlt1TsxD2Suv8w4XdRb1CqMAOi3YXYMzzPMlJEbqK6EUdlxbuXz1PPie+jR1O6nHrV8uxPmDdUYhH4+4RJNt3jkESJSYxHvRiDLPNRYeO9Wm9gkfX468WEj2cl7rqyrg/5a1DROoOqMz08KmvCnWMXpXMXiD9rjpMRcs8B3rOrM/NzMe06mWGIg/CkeQsd8e3iIs6xhN3p6qbQ9/Uw642D8yjdU2bqyg2AewJcrbyMSCfwbBiXkucogXrd7/viHtvxnzqtfKdedFuE9UoAT/SDO8LzdsfAI3+bvkucFR/+dAbQIru4TaW/WbKKELi+tFq84o0kX6GeR/xGViB/VBwSaV916lfSPPMmw==", "X-Forefront-Antispam-Report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n\tIPV:NLI; SFV:NSPM; H:AM9PR04MB8147.eurprd04.prod.outlook.com; PTR:;\n\tCAT:NONE; \n\tSFS:(13230031)(52116005)(1800799015)(376005)(366007)(38350700005);\n\tDIR:OUT; SFP:1101; ", "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1", "X-MS-Exchange-AntiSpam-MessageData-0": "BhKIOu9Y+oMpgkIF2+gtJ39nxt/upaRRf+lWc/d8aj99R6LL7DHMf3T4MJ/CciIVvHAYz5aUzNnFxYQ/FwXqV79LZf4iNHmGMULXGriuycQZhgV9rS9+578NmJ0UobCS/FWtnrX+zEb28r0PYrMGutYyeq/jylnhrM3JvDYrwTIq3l3uRBJ0EiBdhhYQMFFCJHdRdQ3wUgjf+RXiV/fNEX+tqR2Cf4uLJl79JlNUYypv8DRrNGVMJQ17okNjeCVO33fAWAoVlX2Y01rbx3uqpyHGxr9ZuEsa1jf6t6Sea4pZM0WJ/TIUiWe0AQMZEGJyVD7hg7tO2MBqSUeX7Gc8bYSD57eRSlYzsuiB7Kx5dVnbi1gBGUMzUXl7hpgtgV2+jVo2yhuik5GcR8jhHlu28u9/oHgKpUU2W2PJNDLNwdlRLpr3Jkk/hrzN5lcdWMMmaf0I5pPCfvX1nRgx91i3M8HLLOeZhi5y2t4GPJ7FhF/9+0We9clFPWsAbmTRTHmSiASS4aagGBCs4cZFgMybeINvf44izGM5pZroXB51HwdSx/eqIsxFZaFIsxOJfWJ/nD5hy1MEyrIOI6VV1jEtmczVJsJeHVNut9qKxaNhQzYWOjWOBqfBHlX+XU6q2CHkYnx4ZN5PiUiK0MeOVdKbOCJ1g+NUDmujysFOesp5DZusfMnZpxu4HrH/0qzMB7Yf2uWDK+BM36I2gjG3daNq8CYPo9A48RhMvb7rlLwt1Imk24ihgklkQ33rTBRC00JidI1EWhHAa5cVRzUdq9DK39Aam4FcCGUMe+7WrVtDKksIa5CXV3B2w+8FO1YyLlZQyoZvltVUt/mg314sdS1TPmOpK/LhitMmzGG/tQlsql8caIdvajnGwrzDZNntctGKzRJ1aeVU5E3ADwSPPc6Dv80JO0T2JjS+tta+bL58eEwTkL7quqRIFepGyT1ghcmXq/nf5SnH/NMns2HYWGL5c9VEYqHOOaZ4LKKCOZ2iqjekXmtKDemZxqMCHHnOWs4de1Ic/cArrRrbyXMQyLmo3Sg08Nvyrb4deVm2TD+WZXY6k2BVmXxOGRCjFud0q48YD1JH5ZwE4crrhtrK9n25b/mXTySnIR3Rg7Bgv+CAhoM4warg57I48ZOwWADYEB5ACWvILPNtVLKegIATl8xwf9WGtwghY+6guLYQETUBQAFoevquwQeDJ+U1NeFzupZPfcyMGdTjDoTQQzy/SUuNKBn/InXh+2yXZfltX1wOuLRRd87hfxqY+wgSexjjPWbTdBgCkCj9BEYv6tngTwaWmytYM87VVAgkD7ZoqqAKNDe1yIyrWZldLtPsdAhqKgThz/tmHo1aNXr5kW+AUjW3rE0p/ko8GaY9jqgTEj1Hmo/tAZDO9A5aPf9wlwp/AGadNvCHqhp+T91G1Ek64Ad5Cg5s+U7Wi7gRLEr3BVgCeGtHvsx1eVIH0nL5ryGuefgA+Qa0BAGm3JmB0fIjtFp0FOFtfNt7r7TOZWqIDr2BvlORFIaX12BReVkrP0ao/myT3rnrXBg7mGXCOM3WwM7g3GWkiGEku79xtMlxtIaJBg/uyzPOhUZHO3jre4Zt9BMOU8DptetZYLOQ1rti5HKVKg==", "X-OriginatorOrg": "nxp.com", "X-MS-Exchange-CrossTenant-Network-Message-Id": "e99ccf27-5257-44b4-c236-08dc6b8049d1", "X-MS-Exchange-CrossTenant-AuthSource": "AM9PR04MB8147.eurprd04.prod.outlook.com", "X-MS-Exchange-CrossTenant-AuthAs": "Internal", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "03 May 2024 14:49:51.9579\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": "1W5UEObHCrayz2UmnUaUu12Ssev0zpTWInuBs6WbuHilmozA1RL23PyHpO+69O2ManX6q2X4HOVybwCJrZu9z3P88256nN21IwSG+TPBpsM=", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "PAXPR04MB9570", "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": "The PipelineHandlerFactoryBase class has a name that is\npropagated to the PipelineHandler instance it creates.\n\nIn present implementation, this name comes from the\nREGISTER_PIPELINE_HANDLER registration macro. It corresponds to\nthe stringified name of the PipelineHandler derived class.\nTherefore, PipelineHandler factories and instances names can be\nquite long such as \"PipelineHandlerRkISP1\".\n\nA libcamera user may have to explicitly refer to a PipelineHandler\nname for configuration purpose: one usage of the name can be to\ndefine a pipeline handlers match list and their priorities.\nIt is desired, for user convenience, to use a short name to\ndesignate a pipeline handler. Reusing the short pipeline names\nalready defined in the meson option files is an existing and\nconsistent way of naming pipelines.\n\nThis change adds an explicit name parameter to the\nREGISTER_PIPELINE_HANDLER registration macro. That parameter is\nused to define the name of a pipeline handler factory, instead of\nthe current pipeline handler class name.\n\nEach pipeline registration is updated accordingly. The short name\nassigned corresponds to the pipeline directory name in the\nsource tree. It is consistent with pipelines names used in meson.\n\nChanging the pipeline name has an impact on the IPA modules:\neach module defines a IPAModuleInfo structure. This structure has\na pipelineName member defining the pipeline handler name it shall\nmatch with.\nTherefore, each internal IPA module definition has to be changed\nto have its IPAModuleInfo pipelineName name updated with the short\npipeline handler name.\n\nIn addition to this pipelineName member, the IPAModuleInfo structure\nalso has a name member, associated to the IPA module name.\nHaving renamed the pipelines to a short name, the pipeline name and\nthe IPA module names of the IPAModuleInfo structure are the same:\nfor in-tree IPA, they correspond to the respective pipeline and IPA\nsubdirectories in the source tree.\nHowever the IPA name could be different, for instance with a close\nsource IPA implementation built out-of-tree. Thus, it makes sense to\nkeep the IPA name in that structure, as the 2 definitions may not\nalways be redundant.\n\nSigned-off-by: Julien Vuillaumier <julien.vuillaumier@nxp.com>\n---\n Documentation/guides/pipeline-handler.rst | 4 +++-\n include/libcamera/internal/pipeline_handler.h | 4 ++--\n src/ipa/ipu3/ipu3.cpp | 2 +-\n src/ipa/rkisp1/rkisp1.cpp | 2 +-\n src/ipa/rpi/vc4/vc4.cpp | 2 +-\n src/ipa/simple/soft_simple.cpp | 2 +-\n src/ipa/vimc/vimc.cpp | 2 +-\n src/libcamera/pipeline/imx8-isi/imx8-isi.cpp | 2 +-\n src/libcamera/pipeline/ipu3/ipu3.cpp | 2 +-\n src/libcamera/pipeline/mali-c55/mali-c55.cpp | 2 +-\n src/libcamera/pipeline/rkisp1/rkisp1.cpp | 2 +-\n src/libcamera/pipeline/rpi/vc4/vc4.cpp | 2 +-\n src/libcamera/pipeline/simple/simple.cpp | 2 +-\n src/libcamera/pipeline/uvcvideo/uvcvideo.cpp | 2 +-\n src/libcamera/pipeline/vimc/vimc.cpp | 2 +-\n src/libcamera/pipeline_handler.cpp | 2 ++\n test/ipa/ipa_interface_test.cpp | 2 +-\n test/ipa/ipa_module_test.cpp | 2 +-\n 18 files changed, 22 insertions(+), 18 deletions(-)", "diff": "diff --git a/Documentation/guides/pipeline-handler.rst b/Documentation/guides/pipeline-handler.rst\nindex 728e9676..7e45cdb8 100644\n--- a/Documentation/guides/pipeline-handler.rst\n+++ b/Documentation/guides/pipeline-handler.rst\n@@ -258,7 +258,7 @@ implementations for the overridden class members.\n return false;\n }\n \n- REGISTER_PIPELINE_HANDLER(PipelineHandlerVivid)\n+ REGISTER_PIPELINE_HANDLER(PipelineHandlerVivid, \"vivid\")\n \n } /* namespace libcamera */\n \n@@ -266,6 +266,8 @@ Note that you must register the ``PipelineHandler`` subclass with the pipeline\n handler factory using the `REGISTER_PIPELINE_HANDLER`_ macro which\n registers it and creates a global symbol to reference the class and make it\n available to try and match devices.\n+String \"vivid\" is the name assigned to the pipeline, matching the pipeline\n+subdirectory name in the source tree.\n \n .. _REGISTER_PIPELINE_HANDLER: https://libcamera.org/api-html/pipeline__handler_8h.html\n \ndiff --git a/include/libcamera/internal/pipeline_handler.h b/include/libcamera/internal/pipeline_handler.h\nindex c96944f4..cc70f69c 100644\n--- a/include/libcamera/internal/pipeline_handler.h\n+++ b/include/libcamera/internal/pipeline_handler.h\n@@ -140,7 +140,7 @@ public:\n \t}\n };\n \n-#define REGISTER_PIPELINE_HANDLER(handler) \\\n-static PipelineHandlerFactory<handler> global_##handler##Factory(#handler);\n+#define REGISTER_PIPELINE_HANDLER(handler, name) \\\n+static PipelineHandlerFactory<handler> global_##handler##Factory(name);\n \n } /* namespace libcamera */\ndiff --git a/src/ipa/ipu3/ipu3.cpp b/src/ipa/ipu3/ipu3.cpp\nindex 08ee6eb3..994c0eda 100644\n--- a/src/ipa/ipu3/ipu3.cpp\n+++ b/src/ipa/ipu3/ipu3.cpp\n@@ -672,7 +672,7 @@ extern \"C\" {\n const struct IPAModuleInfo ipaModuleInfo = {\n \tIPA_MODULE_API_VERSION,\n \t1,\n-\t\"PipelineHandlerIPU3\",\n+\t\"ipu3\",\n \t\"ipu3\",\n };\n \ndiff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp\nindex 9dc5f53c..5319c98f 100644\n--- a/src/ipa/rkisp1/rkisp1.cpp\n+++ b/src/ipa/rkisp1/rkisp1.cpp\n@@ -458,7 +458,7 @@ extern \"C\" {\n const struct IPAModuleInfo ipaModuleInfo = {\n \tIPA_MODULE_API_VERSION,\n \t1,\n-\t\"PipelineHandlerRkISP1\",\n+\t\"rkisp1\",\n \t\"rkisp1\",\n };\n \ndiff --git a/src/ipa/rpi/vc4/vc4.cpp b/src/ipa/rpi/vc4/vc4.cpp\nindex d2159a51..11316e05 100644\n--- a/src/ipa/rpi/vc4/vc4.cpp\n+++ b/src/ipa/rpi/vc4/vc4.cpp\n@@ -583,7 +583,7 @@ extern \"C\" {\n const struct IPAModuleInfo ipaModuleInfo = {\n \tIPA_MODULE_API_VERSION,\n \t1,\n-\t\"PipelineHandlerVc4\",\n+\t\"rpi/vc4\",\n \t\"rpi/vc4\",\n };\n \ndiff --git a/src/ipa/simple/soft_simple.cpp b/src/ipa/simple/soft_simple.cpp\nindex b9fb58b5..39c49448 100644\n--- a/src/ipa/simple/soft_simple.cpp\n+++ b/src/ipa/simple/soft_simple.cpp\n@@ -389,7 +389,7 @@ extern \"C\" {\n const struct IPAModuleInfo ipaModuleInfo = {\n \tIPA_MODULE_API_VERSION,\n \t0,\n-\t\"SimplePipelineHandler\",\n+\t\"simple\",\n \t\"simple\",\n };\n \ndiff --git a/src/ipa/vimc/vimc.cpp b/src/ipa/vimc/vimc.cpp\nindex 2c255778..1bda772f 100644\n--- a/src/ipa/vimc/vimc.cpp\n+++ b/src/ipa/vimc/vimc.cpp\n@@ -200,7 +200,7 @@ extern \"C\" {\n const struct IPAModuleInfo ipaModuleInfo = {\n \tIPA_MODULE_API_VERSION,\n \t0,\n-\t\"PipelineHandlerVimc\",\n+\t\"vimc\",\n \t\"vimc\",\n };\n \ndiff --git a/src/libcamera/pipeline/imx8-isi/imx8-isi.cpp b/src/libcamera/pipeline/imx8-isi/imx8-isi.cpp\nindex 63082cea..f4d755c2 100644\n--- a/src/libcamera/pipeline/imx8-isi/imx8-isi.cpp\n+++ b/src/libcamera/pipeline/imx8-isi/imx8-isi.cpp\n@@ -1112,6 +1112,6 @@ void PipelineHandlerISI::bufferReady(FrameBuffer *buffer)\n \tcompleteRequest(request);\n }\n \n-REGISTER_PIPELINE_HANDLER(PipelineHandlerISI)\n+REGISTER_PIPELINE_HANDLER(PipelineHandlerISI, \"imx8-isi\")\n \n } /* namespace libcamera */\ndiff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\nindex fa4bd0bb..d1708d42 100644\n--- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n@@ -1420,6 +1420,6 @@ void IPU3CameraData::frameStart(uint32_t sequence)\n \t\t\t\t*testPatternMode);\n }\n \n-REGISTER_PIPELINE_HANDLER(PipelineHandlerIPU3)\n+REGISTER_PIPELINE_HANDLER(PipelineHandlerIPU3, \"ipu3\")\n \n } /* namespace libcamera */\ndiff --git a/src/libcamera/pipeline/mali-c55/mali-c55.cpp b/src/libcamera/pipeline/mali-c55/mali-c55.cpp\nindex 78343553..44e84bcf 100644\n--- a/src/libcamera/pipeline/mali-c55/mali-c55.cpp\n+++ b/src/libcamera/pipeline/mali-c55/mali-c55.cpp\n@@ -1061,6 +1061,6 @@ bool PipelineHandlerMaliC55::match(DeviceEnumerator *enumerator)\n \treturn true;\n }\n \n-REGISTER_PIPELINE_HANDLER(PipelineHandlerMaliC55)\n+REGISTER_PIPELINE_HANDLER(PipelineHandlerMaliC55, \"mali-c55\")\n \n } /* namespace libcamera */\ndiff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\nindex abb21968..d8f99135 100644\n--- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n+++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n@@ -1322,6 +1322,6 @@ void PipelineHandlerRkISP1::statReady(FrameBuffer *buffer)\n \t\t\t\t data->delayedCtrls_->get(buffer->metadata().sequence));\n }\n \n-REGISTER_PIPELINE_HANDLER(PipelineHandlerRkISP1)\n+REGISTER_PIPELINE_HANDLER(PipelineHandlerRkISP1, \"rkisp1\")\n \n } /* namespace libcamera */\ndiff --git a/src/libcamera/pipeline/rpi/vc4/vc4.cpp b/src/libcamera/pipeline/rpi/vc4/vc4.cpp\nindex 947b1e73..013c6519 100644\n--- a/src/libcamera/pipeline/rpi/vc4/vc4.cpp\n+++ b/src/libcamera/pipeline/rpi/vc4/vc4.cpp\n@@ -1018,6 +1018,6 @@ bool Vc4CameraData::findMatchingBuffers(BayerFrame &bayerFrame, FrameBuffer *&em\n \treturn true;\n }\n \n-REGISTER_PIPELINE_HANDLER(PipelineHandlerVc4)\n+REGISTER_PIPELINE_HANDLER(PipelineHandlerVc4, \"rpi/vc4\")\n \n } /* namespace libcamera */\ndiff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp\nindex 61a59926..e62e9172 100644\n--- a/src/libcamera/pipeline/simple/simple.cpp\n+++ b/src/libcamera/pipeline/simple/simple.cpp\n@@ -1732,6 +1732,6 @@ void SimplePipelineHandler::releasePipeline(SimpleCameraData *data)\n \t}\n }\n \n-REGISTER_PIPELINE_HANDLER(SimplePipelineHandler)\n+REGISTER_PIPELINE_HANDLER(SimplePipelineHandler, \"simple\")\n \n } /* namespace libcamera */\ndiff --git a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp\nindex ed9c7f88..33464517 100644\n--- a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp\n+++ b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp\n@@ -709,6 +709,6 @@ void UVCCameraData::bufferReady(FrameBuffer *buffer)\n \tpipe()->completeRequest(request);\n }\n \n-REGISTER_PIPELINE_HANDLER(PipelineHandlerUVC)\n+REGISTER_PIPELINE_HANDLER(PipelineHandlerUVC, \"uvcvideo\")\n \n } /* namespace libcamera */\ndiff --git a/src/libcamera/pipeline/vimc/vimc.cpp b/src/libcamera/pipeline/vimc/vimc.cpp\nindex 5e66ee1d..f681102d 100644\n--- a/src/libcamera/pipeline/vimc/vimc.cpp\n+++ b/src/libcamera/pipeline/vimc/vimc.cpp\n@@ -623,6 +623,6 @@ void VimcCameraData::paramsBufferReady([[maybe_unused]] unsigned int id,\n {\n }\n \n-REGISTER_PIPELINE_HANDLER(PipelineHandlerVimc)\n+REGISTER_PIPELINE_HANDLER(PipelineHandlerVimc, \"vimc\")\n \n } /* namespace libcamera */\ndiff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp\nindex 29e0c98a..0c913e50 100644\n--- a/src/libcamera/pipeline_handler.cpp\n+++ b/src/libcamera/pipeline_handler.cpp\n@@ -830,6 +830,8 @@ std::vector<PipelineHandlerFactoryBase *> &PipelineHandlerFactoryBase::factories\n * \\def REGISTER_PIPELINE_HANDLER\n * \\brief Register a pipeline handler with the pipeline handler factory\n * \\param[in] handler Class name of PipelineHandler derived class to register\n+ * \\param[in] name Name assigned to the pipeline handler, matching the pipeline\n+ * subdirectory name in the source tree.\n *\n * Register a PipelineHandler subclass with the factory and make it available to\n * try and match devices.\ndiff --git a/test/ipa/ipa_interface_test.cpp b/test/ipa/ipa_interface_test.cpp\nindex 56f3cd6d..b489b5f6 100644\n--- a/test/ipa/ipa_interface_test.cpp\n+++ b/test/ipa/ipa_interface_test.cpp\n@@ -56,7 +56,7 @@ protected:\n \t\tconst std::vector<PipelineHandlerFactoryBase *> &factories =\n \t\t\tPipelineHandlerFactoryBase::factories();\n \t\tfor (const PipelineHandlerFactoryBase *factory : factories) {\n-\t\t\tif (factory->name() == \"PipelineHandlerVimc\") {\n+\t\t\tif (factory->name() == \"vimc\") {\n \t\t\t\tpipe_ = factory->create(nullptr);\n \t\t\t\tbreak;\n \t\t\t}\ndiff --git a/test/ipa/ipa_module_test.cpp b/test/ipa/ipa_module_test.cpp\nindex bd5e0e4c..ae6f7a52 100644\n--- a/test/ipa/ipa_module_test.cpp\n+++ b/test/ipa/ipa_module_test.cpp\n@@ -57,7 +57,7 @@ protected:\n \t\tconst struct IPAModuleInfo testInfo = {\n \t\t\tIPA_MODULE_API_VERSION,\n \t\t\t0,\n-\t\t\t\"PipelineHandlerVimc\",\n+\t\t\t\"vimc\",\n \t\t\t\"vimc\",\n \t\t};\n \n", "prefixes": [ "v4", "1/3" ] }