From patchwork Fri May 3 14:49:16 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Julien Vuillaumier X-Patchwork-Id: 19997 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 63B90BDE6B for ; Fri, 3 May 2024 14:49:46 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 9CAEC63415; Fri, 3 May 2024 16:49:45 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="BMLmTt0y"; dkim-atps=neutral Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on20605.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e1a::605]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id C3AB761A8A for ; Fri, 3 May 2024 16:49:43 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nrsKNmrbapZVydgugyRGnLYejktJFaHC5FRZOj30cBbQBv7VLtpf7zLUMEfqPA4j5mOUSl47bJZvJMlZrVMhOCVKkG6xuWHtD+aRPKdmHBIctm2QHALCS6KnIihAfzWjAprrKPdFSKrG0Evr7WPlh/GiPVkMFcT7OLh+dOY6fXv47moqTn/JUpFh582hXBybYX9YgJwHJfl3jtzrEBzMSRfbJx3EnU6WWiB3un+XmrISq5ODM5rM6gKiN7KkqiCb/t7/Pdtj299jhvSWAIOAy0qUVHW9GxOHcrOw+bfhzkhsw3TwQtzIBY0l6XasGrKLTQ23YiLhn0OxrzkI74FUUA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=oaxY4TENZHMFDjOcMagjxrXxW5s1UAb81qOzCXSqrxw=; b=GVZNhIMZFLslx/BKrrPFwhD9+/hALvmD8rn8d2zTLQHT4ASyjrdhS3ImsjHlpoe2rNaML+R0fTH4/PlfV64Rr97C0ysou5kOKS/+UgqbQHOGSdnghqcAHu6UaQjzwtVAEntaS9ccAeMbepOQmNjGzVBF8KJmMbofY27cyhi2r5vLWACgswS+5hUvWYxPmJlx/f3cmKxKqIIvwhKigFX+aOtu2LmL7hjMQJwPgs7U+mDJzuWiN1xxmNT7RSktK12u10YfUMTjdrA8jEwkEikjK/8pl6+evsbxwwxAxcD7VzKOxQf46deDOyJ5okxtQDb3D5X6uw6EURYm5xhum4PbBA== 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=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=oaxY4TENZHMFDjOcMagjxrXxW5s1UAb81qOzCXSqrxw=; b=BMLmTt0y5ecuonifyea0aOHNVH+n03zsKu3JcaxrenUOHiftpjkOcG6rHgjgxzX+XeUiztUoyPL1NuqTpH/utiT4gRJNqcKdIox35Ar5SqgJMwUTJqqmOyzjBDNqmWJkoWH8w8/zosbod5uMDESQmtdEWxBKr3B5TIZ3aUtttbE= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM9PR04MB8147.eurprd04.prod.outlook.com (2603:10a6:20b:3e0::22) by PAXPR04MB9469.eurprd04.prod.outlook.com (2603:10a6:102:2b4::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.29; Fri, 3 May 2024 14:49:41 +0000 Received: from AM9PR04MB8147.eurprd04.prod.outlook.com ([fe80::eace:e980:28a4:ef8a]) by AM9PR04MB8147.eurprd04.prod.outlook.com ([fe80::eace:e980:28a4:ef8a%2]) with mapi id 15.20.7544.029; Fri, 3 May 2024 14:49:41 +0000 From: Julien Vuillaumier To: libcamera-devel@lists.libcamera.org Cc: jacopo.mondi@ideasonboard.com, kieran.bingham@ideasonboard.com, julien.vuillaumier@nxp.com Subject: [PATCH v4 0/3] Add environment variable to order pipelines match Date: Fri, 3 May 2024 16:49:16 +0200 Message-Id: <20240503144919.2371357-1-julien.vuillaumier@nxp.com> X-Mailer: git-send-email 2.34.1 X-ClientProxiedBy: AM0PR03CA0003.eurprd03.prod.outlook.com (2603:10a6:208:14::16) To AM9PR04MB8147.eurprd04.prod.outlook.com (2603:10a6:20b:3e0::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM9PR04MB8147:EE_|PAXPR04MB9469:EE_ X-MS-Office365-Filtering-Correlation-Id: 2df4db2a-ca90-4ab9-bf34-08dc6b804398 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230031|376005|52116005|1800799015|366007|38350700005; X-Microsoft-Antispam-Message-Info: QeTzw8E02vQG5xwNmjQEO3v+yyDZuHgtdHoaEJlqNNkznbs5TV5Jk64CNKUNLSkkGQPiY+xJFFYdDiyGnpf7qdOVhP1DH0+qxtAT4cx5KF3AbeSr5x1x8Yq+TI2rmmE0riM8+oESUHHAG4ZR12GtHd4Kzc7YoEpGPwSetxUua275N7y9Adzzr4MSI8/DWQWdDPsX3DEXnkXRzvJicY063X95MkytmiGB+lthkqOtHsl4W5a+vzeTA9HsuaZQ/ajL2FtDBTfuQD+SRUxC6AKBrlWhxj26V6wXcEKnq75Y09jVzf06Rv60MbqKUxhVM9Vp3T9LNaSLx36iWK5Uio7bgQbevqMDHOAngPSVfAeY7lE5CJluaWooej0ffiV9Ts/IZ2P+WtwQ1O5R9avmMYTFzjwljXx4cb97Tpw7wpuw5u7fBsyVxOtLaW4XOQ+rfscDz5c2dilF+F9ra/RH8f+B5+57cq40zlg5ygv0imA6fWhIj3UPHHthNJIT8v5a/MyseKAEF7Ovs4oeG5tbvcIBGwvPJ4VZDZNda1u0qTWjFd3Mtr60mN4CYvElrWTrXVFqKbDobf8f99P+eIT+IXswWH3IxSYiFieiyiYuDtdU8N4G93idkLBU1xogM7t0GA6E08LrVKRx8Jh1bUS2QsmdEuLEW+MnvR51wooEY5Ksrv9csbwNf1qlSg417JxlIwHVgMHY/WFuIOsAvSm/Gw2ArMV/qg8uEGtdulFkUrZPGIM48YbqCi64uq+mtHZVt6uQk+6kSll2opHFSLUtJGsB/MDW168XqTSRUdHlqTgC0+QNGnwXBd5RppsjSSo1FS3sst8kVeYU+/QXbmHgkTUAJxrepmLvWWhunXnoidohVw2cJ4cID/VnftxXDRSaOGhD8gl+8IucPDOlatvDWHYy9t/tjSv196iuKLx06/SsU+Nts3F6baCEjniEIsncBFy8VASHj0slvUTAU3Sd5S8Yo65AKKPOdO6MJeddPxAJV+BI/AMZ1MBYg56A6eVCZTOwR81H65Tpv/GAgyjLuj1jJ4BJFaDMSrkJW7fnwR9YGDBjZJYwpnfoeWsppJwBfvnR26d2IO0JHKz4oWjbLtbHha3kVzTo9YtUNlSVSwr4OAETZmX9yL3VYISZ6+ixExq3Mo7vmZMjZnpUwcZoGG/yQ+zpPyzG9S/uTY4nko1stNjsVryPkzNvzQHNfteHZVlBbW7lxDG+riMRWeqfhYnEKcOxDn3j6vYLh9eqMnJIH2kBwtLp/Hu4MSlynWXfVng+EH75u/OJKa8qMYjN0GNBpg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM9PR04MB8147.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(376005)(52116005)(1800799015)(366007)(38350700005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: b5SKmNTQZ8+jlT2Ondf34HCMsiejntShFxvo/Mm5KkAO5yx7D+hJ8Wit7ELXVxNvSZiLFLuAxzpU2Bkh9yrQ8r0D86VCpHuHTeRcQV2iz9pcXRW9eidqvxac5Xb8IJko8Fgpy552peIdf11Gy/XgO7EA4Da1A+Nb93g6YhBElXIQ/2BSg1k1d+Ak5C8K0+9B3/AsFvCvzgU/qwXXvsHssYgBXdqqWQwYC7SADRBbVP1Ul3hPS/qUsu0VUiE92tAe5/vcmPBjYK7zgpuYmXBIyAumYYPmW8HFU65qvqfEsqSXuLDKpa/rlez7b00/6K6X/lG/MCfRGSXwxJ+odAgMFklS4adGtXmnmWW7BuYsAnvX0h7azJ32ibOzeITA1t5X/j4YIlcogSGGzr2hL3BJpwlONDyET6F2Z6BPHZDKf/RNrgUXpN69cBORzSfBxAPhFV+srvEHejjYxRwPeskc40JDkhNqrVsx+MFMqM5UWzV9pXchds6bRn7Hy9MufE0PwaYFnuVqMBpdMjNVPTxQesNaAnNX//pI3dmBLfS8EZVtW8VOVKqf2OU/4KdH7LB+cLkyUpQgmuZkXDya/g4+RJQxgvHDQmAEsKeSeJMQBKxdqbtn9HeEQnilSH4xXm0BfY5/xO0sEasRL6MqrOCD7abXc0y2SZSiX9otj0QuuHiBGwjK72pzNTLI1ZPw8BbMHQ8cN9eWhY4pMT7K04I+Qzo+xuvveHCgzAWj7sZqW67CW0a5G+O7piP7sX7IekAPX6RASKF5TceOwH5ansao7Wcl0nmdRHp3DNXhhiR4rqEnaQallH4ZLqtDwMWseB1jiX01nsI4t8ZaWGXCQjMdbOjNWM212F4JRGu0FI01Nzr1zHYzc0kWGiM9UlhaeiHnVFKE0i8/MB+fBgMa9F3dir9eI653P7ssCkct2lLBtmscxg+FXl1HM3rTEGD1b6EgxhI5z83/gZRLHshD+hXhR2mFWd6Elhi5THwILJpgDSLrXRuxg6AerivjIl9abVctMSFpuzVyEPaSSfabEEGNjX2U0IAlBGs4OCYN/cEd/EE+rs7Bll18j1E2Vacv5xY4JS2U++dAYoA5/xnk2aChflKqjLtWNYS3rLiwQvuVX9iAAPfmVhE5hmgx8hZQZTaaaV8bfOMJqEjOPA4iuub1+5f2CGESiIth/b0ebcUCZJTfMWjCvQwZ+4CrJpskv786WQpV0OC/0jrPEeT016iWFn09Cx/cFDEiuNynq1qSghvmARN8xXmWou+414rMc0o73sbWUVzjkYewIHnJHjS4uXvOvfei1rXgl9mU41nmwniCp4B3eTsY/OsizsgHibtKDgDUiJ/H226/ws6PYmfZAiBQgQXGe6Ybs1k3nGPmfrZbAh/Hq8zCk5f+MXSJcpyqxo2JmPPeUhkhviMNTOYfHfhnwcLSkPBlV8CTOqgRgTmSim0+dsMaXtIZ6hxniADV/hhAa+KfUBSC2Yu5i0NPQWWYE957tyK4n+/AZHZQriCTpn8z746uQT7BQtMF9dyp1iJIsY967n3Tg9q78Uu+cy0ixRN0TDIu7DTX7t7vY2IJdZE3MUxFSb818iI2CCU70pOfMypGPPZEt+d/X2fD0g== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2df4db2a-ca90-4ab9-bf34-08dc6b804398 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:41.5254 (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: A1b7bkKYgxMNyjtiE/wWfGcxQhfMYkbe3TARDiCSdLYgzl2BrLS2YN+nP5qNdR9WVNF/hsYDu2zIYt2PWOT6bMHlPbV+kizzRpIBPfZHQgo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB9469 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" Hi All, This is the v4 of the change to support the configuration of the order of pipelines match, by using an environment variable. As suggested in v3 review comments, this series adds a preceding patch that renames pipeline handlers with the short name used in meson files (pipeline subdirectory name in the source tree). Related updates are listed in the change history below. Changes for the renaming were kept in a single commit to have a buildable/testable history. v4: - Pipeline handlers renamed to use short name - same as in meson files: * REGISTER_PIPELINE_HANDLER updated with additional 'name' parameter * For each pipeline handler: registration updated with short name * For each IPA module: IPAModuleInfo definition updated with new name * Unit test cases using pipeline handler name updated * Patch (3/3) usage example in commit message updated v3: - PipelineHandlerFactoryBase::getFactoryByName() unnecessary 'else' removed. - CameraManager::pipelineFactoryMatch() declaration moved to match the position of the method definition. - Add to env variable documentation the information about how the pipeline handlers names are defined in the source - also breaked long line at 80 characters. - Fix and complement commit messages. - Fix and complement source comments. v2: - Add 'get factory by name' helper to PipelineHandlerFactoryBase as a preceding patch - Move lamba pipeMatch() to a private class function - Remove unnecessary string empty test - Inline lamba nameMatch - Update comments and variable names per v1 reviews Link to v3: https://lists.libcamera.org/pipermail/libcamera-devel/2024-March/041254.html Thanks, Julien Julien Vuillaumier (3): libcamera: pipeline: Rename pipelines to a shorter name libcamera: pipeline: Add a get factory by name helper libcamera: camera_manager: Add environment variable to order pipelines match Documentation/environment_variables.rst | 8 +++ Documentation/guides/pipeline-handler.rst | 4 +- include/libcamera/internal/camera_manager.h | 1 + include/libcamera/internal/pipeline_handler.h | 5 +- src/ipa/ipu3/ipu3.cpp | 2 +- src/ipa/rkisp1/rkisp1.cpp | 2 +- src/ipa/rpi/vc4/vc4.cpp | 2 +- src/ipa/simple/soft_simple.cpp | 2 +- src/ipa/vimc/vimc.cpp | 2 +- src/libcamera/camera_manager.cpp | 53 ++++++++++++++----- src/libcamera/pipeline/imx8-isi/imx8-isi.cpp | 2 +- src/libcamera/pipeline/ipu3/ipu3.cpp | 2 +- src/libcamera/pipeline/mali-c55/mali-c55.cpp | 2 +- src/libcamera/pipeline/rkisp1/rkisp1.cpp | 2 +- src/libcamera/pipeline/rpi/vc4/vc4.cpp | 2 +- src/libcamera/pipeline/simple/simple.cpp | 2 +- src/libcamera/pipeline/uvcvideo/uvcvideo.cpp | 2 +- src/libcamera/pipeline/vimc/vimc.cpp | 2 +- src/libcamera/pipeline_handler.cpp | 24 +++++++++ test/ipa/ipa_interface_test.cpp | 2 +- test/ipa/ipa_module_test.cpp | 2 +- 21 files changed, 95 insertions(+), 30 deletions(-)