{"id":19997,"url":"https://patchwork.libcamera.org/api/covers/19997/?format=json","web_url":"https://patchwork.libcamera.org/cover/19997/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/projects/1/?format=json","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-1-julien.vuillaumier@nxp.com>","date":"2024-05-03T14:49:16","name":"[v4,0/3] Add environment variable to order pipelines match","submitter":{"id":190,"url":"https://patchwork.libcamera.org/api/people/190/?format=json","name":"Julien Vuillaumier","email":"julien.vuillaumier@nxp.com"},"mbox":"https://patchwork.libcamera.org/cover/19997/mbox/","series":[{"id":4287,"url":"https://patchwork.libcamera.org/api/series/4287/?format=json","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/covers/19997/comments/","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 63B90BDE6B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  3 May 2024 14:49:46 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 9CAEC63415;\n\tFri,  3 May 2024 16:49:45 +0200 (CEST)","from EUR05-DB8-obe.outbound.protection.outlook.com\n\t(mail-db8eur05on20605.outbound.protection.outlook.com\n\t[IPv6:2a01:111:f400:7e1a::605])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id C3AB761A8A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  3 May 2024 16:49:43 +0200 (CEST)","from AM9PR04MB8147.eurprd04.prod.outlook.com\n\t(2603:10a6:20b:3e0::22)\n\tby PAXPR04MB9469.eurprd04.prod.outlook.com (2603:10a6:102:2b4::12)\n\twith Microsoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.29;\n\tFri, 3 May 2024 14:49:41 +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:41 +0000"],"Authentication-Results":["lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=nxp.com header.i=@nxp.com header.b=\"BMLmTt0y\";\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=nrsKNmrbapZVydgugyRGnLYejktJFaHC5FRZOj30cBbQBv7VLtpf7zLUMEfqPA4j5mOUSl47bJZvJMlZrVMhOCVKkG6xuWHtD+aRPKdmHBIctm2QHALCS6KnIihAfzWjAprrKPdFSKrG0Evr7WPlh/GiPVkMFcT7OLh+dOY6fXv47moqTn/JUpFh582hXBybYX9YgJwHJfl3jtzrEBzMSRfbJx3EnU6WWiB3un+XmrISq5ODM5rM6gKiN7KkqiCb/t7/Pdtj299jhvSWAIOAy0qUVHW9GxOHcrOw+bfhzkhsw3TwQtzIBY0l6XasGrKLTQ23YiLhn0OxrzkI74FUUA==","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=oaxY4TENZHMFDjOcMagjxrXxW5s1UAb81qOzCXSqrxw=;\n\tb=GVZNhIMZFLslx/BKrrPFwhD9+/hALvmD8rn8d2zTLQHT4ASyjrdhS3ImsjHlpoe2rNaML+R0fTH4/PlfV64Rr97C0ysou5kOKS/+UgqbQHOGSdnghqcAHu6UaQjzwtVAEntaS9ccAeMbepOQmNjGzVBF8KJmMbofY27cyhi2r5vLWACgswS+5hUvWYxPmJlx/f3cmKxKqIIvwhKigFX+aOtu2LmL7hjMQJwPgs7U+mDJzuWiN1xxmNT7RSktK12u10YfUMTjdrA8jEwkEikjK/8pl6+evsbxwwxAxcD7VzKOxQf46deDOyJ5okxtQDb3D5X6uw6EURYm5xhum4PbBA==","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=oaxY4TENZHMFDjOcMagjxrXxW5s1UAb81qOzCXSqrxw=;\n\tb=BMLmTt0y5ecuonifyea0aOHNVH+n03zsKu3JcaxrenUOHiftpjkOcG6rHgjgxzX+XeUiztUoyPL1NuqTpH/utiT4gRJNqcKdIox35Ar5SqgJMwUTJqqmOyzjBDNqmWJkoWH8w8/zosbod5uMDESQmtdEWxBKr3B5TIZ3aUtttbE=","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 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","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_|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;\n\tARA: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:;\n\tIPV:NLI; SFV:NSPM; H:AM9PR04MB8147.eurprd04.prod.outlook.com; PTR:;\n\tCAT:NONE; \n\tSFS:(13230031)(376005)(52116005)(1800799015)(366007)(38350700005);\n\tDIR: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\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":"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":"<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":"Hi All,\n\nThis is the v4 of the change to support the configuration of the order\nof pipelines match, by using an environment variable.\n\nAs suggested in v3 review comments, this series adds a preceding patch\nthat renames pipeline handlers with the short name used in meson files\n(pipeline subdirectory name in the source tree).\n\nRelated updates are listed in the change history below. Changes for the\nrenaming were kept in a single commit to have a buildable/testable history.\n\nv4:\n- Pipeline handlers renamed to use short name - same as in meson files:\n  * REGISTER_PIPELINE_HANDLER updated with additional 'name' parameter\n  * For each pipeline handler: registration updated with short name\n  * For each IPA module: IPAModuleInfo definition updated with new name\n  * Unit test cases using pipeline handler name updated\n  * Patch (3/3) usage example in commit message updated\n\nv3:\n- PipelineHandlerFactoryBase::getFactoryByName() unnecessary 'else' removed.\n- CameraManager::pipelineFactoryMatch() declaration moved to match the\n  position of the method definition.\n- Add to env variable documentation the information about how the pipeline\n  handlers names are defined in the source - also breaked long line at 80\n  characters.\n- Fix and complement commit messages.\n- Fix and complement source comments.\n\nv2:\n- Add 'get factory by name' helper to PipelineHandlerFactoryBase as a\n  preceding patch\n- Move lamba pipeMatch() to a private class function\n- Remove unnecessary string empty test\n- Inline lamba nameMatch\n- Update comments and variable names per v1 reviews\n\nLink to v3: https://lists.libcamera.org/pipermail/libcamera-devel/2024-March/041254.html\n\nThanks,\nJulien\n\n\nJulien Vuillaumier (3):\n  libcamera: pipeline: Rename pipelines to a shorter name\n  libcamera: pipeline: Add a get factory by name helper\n  libcamera: camera_manager: Add environment variable to order pipelines\n    match\n\n Documentation/environment_variables.rst       |  8 +++\n Documentation/guides/pipeline-handler.rst     |  4 +-\n include/libcamera/internal/camera_manager.h   |  1 +\n include/libcamera/internal/pipeline_handler.h |  5 +-\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/camera_manager.cpp              | 53 ++++++++++++++-----\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            | 24 +++++++++\n test/ipa/ipa_interface_test.cpp               |  2 +-\n test/ipa/ipa_module_test.cpp                  |  2 +-\n 21 files changed, 95 insertions(+), 30 deletions(-)"}