[{"id":32904,"web_url":"https://patchwork.libcamera.org/comment/32904/","msgid":"<52394d01-984e-43ec-90dd-386e2f00365d@nxp.com>","date":"2024-12-20T16:18:21","subject":"Re: [EXT] [PATCH v2] libcamera: virtual: Install configuration file","submitter":{"id":190,"url":"https://patchwork.libcamera.org/api/people/190/","name":"Julien Vuillaumier","email":"julien.vuillaumier@nxp.com"},"content":"Hi Barnabás,\n\nOn 20/12/2024 14:54, Barnabás Pőcze wrote:\n> \n> Install the example configuration file of the virtual pipeline\n> handler as it serves documentation purposes, and to make the\n> virtual pipeline handler easily usable in CI.\n> \n> Nonetheless, the file is installed with the \".example\" suffix\n> so that it will not be used by default, to avoid cluttering\n> the camera lists of users whose distributions decide to\n> enable the virtual pipeline handler.\n> \n> The file is installed in the proper location for convenience:\n>    (1) is is easier to use it in the CI;\n>    (2) users need not browse documentation to determine where\n>        they should place the file.\n\nVirtual pipeline, when enabled, outputs a noisy error message during the \nmatch() when its configuration file is not installed:\n\nDEBUG Camera camera_manager.cpp:140 Found registered pipeline handler \n'virtual'\nERROR Pipeline pipeline_handler.cpp:629 Configuration file \n'/usr/share/libcamera/pipeline/virtual/virtual.yaml' not found for \npipeline handler 'virtual'\nERROR Virtual virtual.cpp:336 Failed to open config file:\n\nShould virtual.yaml be installed with its actual name without the \n'.example' suffix. That would clear the error, though augmenting the \ncamera list.\n\n> \n> Signed-off-by: Barnabás Pőcze <pobrn@protonmail.com>\n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> Reviewed-by: Harvey Yang <chenghaoyang@chromium.org>\n> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> ---\n>   src/libcamera/pipeline/virtual/data/meson.build | 4 ++++\n>   src/libcamera/pipeline/virtual/meson.build      | 2 ++\n>   2 files changed, 6 insertions(+)\n>   create mode 100644 src/libcamera/pipeline/virtual/data/meson.build\n> \n> diff --git a/src/libcamera/pipeline/virtual/data/meson.build b/src/libcamera/pipeline/virtual/data/meson.build\n> new file mode 100644\n> index 000000000..ce63f9a27\n> --- /dev/null\n> +++ b/src/libcamera/pipeline/virtual/data/meson.build\n> @@ -0,0 +1,4 @@\n> +install_data('virtual.yaml',\n> +             install_dir : pipeline_data_dir / 'virtual',\n> +             install_tag : 'runtime',\n> +             rename: 'virtual.yaml.example')\n> diff --git a/src/libcamera/pipeline/virtual/meson.build b/src/libcamera/pipeline/virtual/meson.build\n> index 4786fe2e0..c84345936 100644\n> --- a/src/libcamera/pipeline/virtual/meson.build\n> +++ b/src/libcamera/pipeline/virtual/meson.build\n> @@ -11,3 +11,5 @@ libjpeg = dependency('libjpeg', required : true)\n> \n>   libcamera_deps += [libyuv_dep]\n>   libcamera_deps += [libjpeg]\n> +\n> +subdir('data')\n> --\n\nThanks,\nJulien","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 E81C8C3274\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 20 Dec 2024 16:17:39 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 93EE7684B0;\n\tFri, 20 Dec 2024 17:17:38 +0100 (CET)","from EUR02-AM0-obe.outbound.protection.outlook.com\n\t(mail-am0eur02on20624.outbound.protection.outlook.com\n\t[IPv6:2a01:111:f403:2606::624])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 552226849F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 20 Dec 2024 17:17:36 +0100 (CET)","from AM9PR04MB8147.eurprd04.prod.outlook.com\n\t(2603:10a6:20b:3e0::22)\n\tby DBBPR04MB8010.eurprd04.prod.outlook.com (2603:10a6:10:1f1::14)\n\twith Microsoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8272.16;\n\tFri, 20 Dec 2024 16:17:35 +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%5]) with mapi id 15.20.8272.005;\n\tFri, 20 Dec 2024 16:17:35 +0000"],"Authentication-Results":["lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=nxp.com header.i=@nxp.com header.b=\"HcLDvAmm\";\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=dGOmf38ZFIOz9WTgoXBR+qlC1GKZ/nIWZhJD0S83LNIJP0k/tzJryJmhgBQo84H0dIlx8/xUuuZ908iCG1ikxftdex5B4XVjT9Nbf0F4TlkeTIZYMlHenux+qDWqXp/NBiOJQXFH6WX8HcT9eveCfgMEjmAwmwrmXPAX3No9GK7P9/1hJrv5ktqDwcdNjSKi05vm8lf5v7LgsI0V2LqcTV3PwGuwRvUTgZx5Tm5IONjtU5hbG1vhfkKPLO1PYFj27PqaGZtTkA4pNeXJyEbttWNva2/1ljFxt1wBMnNaSNzXulub8/66U7Vlzfp0gGOoFFc1Op+xATN2C3KmWZD7BQ==","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=GV8UylEZzlVEON+7WdoxysGeq3aDPfIUG5DcyoC3gUE=;\n\tb=BXXa1hcyQGChO0f8gGquNhZ0C3ScY+fmBg42KV85ySmyXr8uvEvRiE2VTYGoMGen/O3zV8Hb+vMZRSe5MPPnC4jjv0YlI5LT5SQp5OXe3TNikKpgbrf5e5YxFA8LxpL59sjVuBAqyhfQux8FazkRl+x5uq4yvXLXnipvTiQN8rp2aPD2B9pw96H7kNM94MDsbULHCtkpPw9SS60Y3CS2ZMDs5LOu5xKoshREPhQqfQnsO2BUe7fa4iBx3XwK4J7+MKPdmp2WtubZtcCAdeZJncJb559/KW2/mHfLPlG5xaHCKW+oxjSG2mofbQVBnJkIlY8EKTuMeA+RmV3oUC5bKA==","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=GV8UylEZzlVEON+7WdoxysGeq3aDPfIUG5DcyoC3gUE=;\n\tb=HcLDvAmmCsfAqyHQV0HmYo2r6ZPkjlqMUyfNoMEzNicOpb0SrBO9GiO+SZr+MVHKng/JHsVLvX1L3TidUIgbHHW73XEeS97hCc8bPhVBuT/pP7JlhxSXhY8/NUmR78X/TO7W6Chz2MFuK/8CA6TRQ42BWZxZG4ZjahTl2ZhTfMz7r7tyDZ6uTwFWAEdZiUHzYPqbWlMkCdH/GcDiyECMUe3DKRdeKTk0F8xdvUIuOlsIjA/7RWPi+O231A1I6z0vWM4yMz9RGuLLrz3zadgiAMCzCnDTD3ZgW+xCL+Eb5AkFEgHzf0TzOHsiOOFrgEwNC0b3UXCVOjG9IrkpCB4yIw==","Message-ID":"<52394d01-984e-43ec-90dd-386e2f00365d@nxp.com>","Date":"Fri, 20 Dec 2024 17:18:21 +0100","User-Agent":"Mozilla Thunderbird","Subject":"Re: [EXT] [PATCH v2] libcamera: virtual: Install configuration file","To":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <pobrn@protonmail.com>,\n\tlibcamera-devel@lists.libcamera.org","Cc":"Kieran Bingham <kieran.bingham@ideasonboard.com>,\n\tHarvey Yang <chenghaoyang@chromium.org>,\n\tLaurent Pinchart <laurent.pinchart@ideasonboard.com>","References":"<20241220135420.694142-1-pobrn@protonmail.com>","Content-Language":"en-US","From":"Julien Vuillaumier <julien.vuillaumier@nxp.com>","In-Reply-To":"<20241220135420.694142-1-pobrn@protonmail.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","X-ClientProxiedBy":"AS4P191CA0006.EURP191.PROD.OUTLOOK.COM\n\t(2603:10a6:20b:5d5::17) 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_|DBBPR04MB8010:EE_","X-MS-Office365-Filtering-Correlation-Id":"0fed208e-d021-4055-fd31-08dd2111d046","X-LD-Processed":"686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"BCL:0; ARA:13230040|366016|376014|1800799024|7053199007;","X-Microsoft-Antispam-Message-Info":"=?utf-8?q?Ygk43/OOms2ZDu9++gpTs4r6Kfq8?=\n\t=?utf-8?q?S37ytrhw9vTLS8HbXZosVaKe2en4Cq7hHiLr3RZ6uag5pgpImtuWojvw?=\n\t=?utf-8?q?LNmZSaaonSEVei/z0RxeEZ1t1MQr4eB6cP+CyUl5Batf5EDBWeBSV/ow?=\n\t=?utf-8?q?Vanqbc00ME3hkTJe8+5zwvPx2jxiDxsmO1QBMaHAw6uQ9RxY+3FMhsBh?=\n\t=?utf-8?q?h8vHZQC36GiqQF3F0cAPF+/8dtBeYYtL+HuPImN6W/01ns/hxpAV7qTe?=\n\t=?utf-8?q?Vs12b8VcvwdhfYG/jxFlsw4AmG5ijX6+fNroz7TlbiqEP6TyCsb+B+qj?=\n\t=?utf-8?q?tIQBFfpmimKdx7hMfBRgsA3FKQaDFF+1AdiBIwMS5pBQKM/nchS+vIpF?=\n\t=?utf-8?q?gykfoASYmQqkhhUtzmYPZIXncBDRt3A8K0DDi/dPQFpIE0ViPm1zIOpa?=\n\t=?utf-8?q?JqzYiJglq3h71JJKLjzVqHkYLBWGTfhnYNtqfxeqK9TbWdhBm8y4R09Z?=\n\t=?utf-8?q?Cpj8pCVz7p52jTPD45B37CAfYwdfuADgm5/Uw6EaEGkWEM2hHOlIh3FS?=\n\t=?utf-8?q?b22oOM6uMXHc5o73XOEjbJ27AB7g7Q83I+3e/ff8k9rgGYDaoxM9jaaz?=\n\t=?utf-8?q?SRXa/5nP+VdmpXyw+Clx+kvBEOaIMI29koWIUnHnSLHZ4Ti/XGx/iKCN?=\n\t=?utf-8?q?wGBVlMM0wMjhPiGqhkMx+U5gifdLNO8p064QnH9sKLzZFXjrcq0XxAdz?=\n\t=?utf-8?q?sTwHscwCZv4L/PCkfVAiUw454AaVk51gtPGbuy6WzdmWTtwC9cF2+0qA?=\n\t=?utf-8?q?1BytE9NQrUBJHc89HHQzxfCSKDSxZeiiWmvjFncXtvZAZemalXfFI7/V?=\n\t=?utf-8?q?UTtwvK8NVrTPQLjIfK7cbAVeUP6FFZVJRDZjCzlqppGHTmnimQa5PwR0?=\n\t=?utf-8?q?LYhpsrjM7o8Egc4niMrcw4R+WKsINMpEDmTjJREkKmqTUWdHQwlNZL0W?=\n\t=?utf-8?q?hBezqb30Lw1p3rXStMbbipsFN8IALYPM8YPCRallfiBY5eFfXGDK4SB7?=\n\t=?utf-8?q?9YppLa6tcaoXPDVpP+o0z4Temh/slkfNdUOuyhdU6lufV1R/wRcwsCck?=\n\t=?utf-8?q?b42NCq58CY2DLSd48hsKqyu+LuKdQz98y5qoXjKOT0jQFb6EsfRF5Ru7?=\n\t=?utf-8?q?uOqjXif9AlWdUHNU4irGsIinCOFDSnSm0zoTRn7OMCHaYGqaD3TO2+0p?=\n\t=?utf-8?q?WulyMx9/gQTyA/+WLXGxayre9Z9h63voavi9V6/CFZAtIW4bF+S4nZEx?=\n\t=?utf-8?q?dePGt3iERl2HadC43nELVjPZfL0NCWi9jncT/umHhvndeDTq+21mkwAS?=\n\t=?utf-8?q?Zn4RlDH6EMZgaIq0EjSYWV0caotxst+9k1eGAlNpur7vjTRdXDx2U0Zj?=\n\t=?utf-8?q?zioYLaMm1h3X3k5HqYoK3d4j96nt5xpcFnSjgAfQQfK9C6bv+gGyIlgg?=\n\t=?utf-8?q?6aIt2A+QiF5bV9TaztUmI1Hq73SnqjOTyBd4?=","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:(13230040)(366016)(376014)(1800799024)(7053199007); DIR:OUT;\n\tSFP:1101; ","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"=?utf-8?q?wLHvZpM7IgE5zegNS6khLrVIv?=\n\t=?utf-8?q?mC/ua2XatClpKA9lBV8AgrZSX9JmOXE58TjoqtrguR8vJQsBzo5+jyBy?=\n\t=?utf-8?q?ehQIOQwgpfBOr4f6+5scvcW3iwMP/Xa0354Eh/XxOGyxIvkcSK3r9u0S?=\n\t=?utf-8?q?1OhIsHLvGs5iq94xRcgA8gdjb8fgWJO1X4PMJq4wb3vPx/Jf2T9hn7yl?=\n\t=?utf-8?q?4N5IdTqjeOpwAwPHLbyswXiw5s5oqSXI2TLkMPcncdfuCvWHFpLQwEPU?=\n\t=?utf-8?q?CCvfGOefIDC6z4ttSfOpCTyTTi7wmnupUcHhqSU5+Hob/puvUtliydti?=\n\t=?utf-8?q?xWX8kDqudHcRV3Xa6jZY/FXPndcZKxaDzdcthQ7j/evlb4YhPs7Ly/Re?=\n\t=?utf-8?q?eJUdT11WgSu7lQLVHsoYN/IsyeBLEU0MZCyylJ0cLGduS8YbAnyRiKiR?=\n\t=?utf-8?q?/5PoUpU16vRD4lnU5LSjck2W4mdji/5rmup8shhAAA/Vt/Uqs4XOAVBQ?=\n\t=?utf-8?q?yd5e4tCOMHgcR/1cY/Sh6CgAFNnojz7SNAq1myNPOSCTsytzL1UzOBtV?=\n\t=?utf-8?q?DvgrXcfqPrk6oEVxKxnuJC0D9HeRysHyuypril8apSqkr+cW7VxiNFQv?=\n\t=?utf-8?q?kvr+FgTu5br8isThZDjumJwt4Rney75XwUZuf1c9351rS2OYtMGx2Kee?=\n\t=?utf-8?q?vxqz87UL0+lnQPTnGgpZpI/Hh7B0npndUHhsaiNQb4A39y99eF32lfOa?=\n\t=?utf-8?q?FImjfr7BeeHEB2jFC0YH3GuDkO046xga/4t/GNLt6wygh7Y1wtc39I4J?=\n\t=?utf-8?q?tZ3Bv+tu5SFWQQajCpvoogSXm1rzNb4oPVSjDJzdx8D6Z5oWmN63eaGb?=\n\t=?utf-8?q?E/yXF1/38nQPqAxD9+SIH8B6Oc7tGgyHQDkjqc8/mL3tFdxkIJSHuhPY?=\n\t=?utf-8?q?9ebtYuJY01n0xa2/YBAwQN23XK+gphYSRtyIx58GMF3RFTcEx/Mu1oBy?=\n\t=?utf-8?q?lkGscWRLAVTVg+deZbZC6xc4UtOQEnzcO9i5OkoK5ixJTjm12uQNxwcs?=\n\t=?utf-8?q?ETyDy9A+n6OinbOIg2knhUF51Eq9WhYhDU4M+o6j2+URPaZXzQWg0W+p?=\n\t=?utf-8?q?dL+zMTVxu1lX1yL0j5UVIKqVG62HHVl7u7x1Y6F9OQlm7gkrzXLeNkdm?=\n\t=?utf-8?q?FW3UW6BqDPwOcoSUvf207I6et0bkaoWKoOJNsWb5b/3TzWjgrfKKbc29?=\n\t=?utf-8?q?PPKEqtcre13B4x6tcPEfsI/CGVq8PT/LCzUMCQA/H6K94+Tvk9Fwr6lk?=\n\t=?utf-8?q?TKdD2HaDcFUc0uLHRLU2sWdY70YAI9ny4CbeA6FuwEMeNl1mokFdvFxi?=\n\t=?utf-8?q?4i8AASssoPM5yxjU+FszFFDNVefaGJ0ok0t7yVkyJMM46vwfyZe7KPFz?=\n\t=?utf-8?q?c7zjmIYArmkd3VV8k0kCFy5Pw48RW6DMkhsj+PTVR2rOjaglWNG5OrmG?=\n\t=?utf-8?q?UOTG4MLqgK5UNvJNfUW+T7W+Cr/2jO4GpSi3lO0RYNlrFEeUA5o4WUbN?=\n\t=?utf-8?q?mzO8ZM9YH0/iCPk2NEB/zZzCfd5iw0+6k1QgYcaTs8hVssuPknldc6ml?=\n\t=?utf-8?q?EePENC9BiwCLEgMlzYtCYrbS2eQ3gNytlTpZl1etfoLyrHOgX2l841KY?=\n\t=?utf-8?q?LRAbq+gAAcuiQ5tH0fgX1VJPHnE01EZ8Mtb4QGB+5Q36E5MPE/23riG3?=\n\t=?utf-8?q?I9GOh3duic9PMKItfEFazCOhoukUg=3D=3D?=","X-OriginatorOrg":"nxp.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"0fed208e-d021-4055-fd31-08dd2111d046","X-MS-Exchange-CrossTenant-AuthSource":"AM9PR04MB8147.eurprd04.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"20 Dec 2024 16:17:35.0093\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":"op0KO+zswwf2enrSp0t/0xl5q7Gdd9tJed76UVBoVPWDmkJNEeH2mtfwHBXpGfMu+ANKsgFIMO+dD7q9WmTkcC9GGmk9LxyWPJLOuBqUnnI=","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"DBBPR04MB8010","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>"}},{"id":32906,"web_url":"https://patchwork.libcamera.org/comment/32906/","msgid":"<26Uoh1j-VMXTBlAbqzYYg-bNw2Cnuay_7TXxIX7QeqjE7IdDtIY3nLzWwZ88twJCRR0UrRZyVug8O4Sci3vMhtBQuBeLA6z5oj70N8_MLH8=@protonmail.com>","date":"2024-12-20T16:44:09","subject":"Re: [EXT] [PATCH v2] libcamera: virtual: Install configuration file","submitter":{"id":133,"url":"https://patchwork.libcamera.org/api/people/133/","name":"Pőcze Barnabás","email":"pobrn@protonmail.com"},"content":"Hi\n\n\n2024. december 20., péntek 17:17 keltezéssel, Julien Vuillaumier <julien.vuillaumier@nxp.com> írta:\n\n> Hi Barnabás,\n> \n> On 20/12/2024 14:54, Barnabás Pőcze wrote:\n> \n> > Install the example configuration file of the virtual pipeline\n> > handler as it serves documentation purposes, and to make the\n> > virtual pipeline handler easily usable in CI.\n> > \n> > Nonetheless, the file is installed with the \".example\" suffix\n> > so that it will not be used by default, to avoid cluttering\n> > the camera lists of users whose distributions decide to\n> > enable the virtual pipeline handler.\n> > \n> > The file is installed in the proper location for convenience:\n> > (1) is is easier to use it in the CI;\n> > (2) users need not browse documentation to determine where\n> > they should place the file.\n> \n> \n> Virtual pipeline, when enabled, outputs a noisy error message during the\n> match() when its configuration file is not installed:\n> \n> DEBUG Camera camera_manager.cpp:140 Found registered pipeline handler\n> 'virtual'\n> ERROR Pipeline pipeline_handler.cpp:629 Configuration file\n> '/usr/share/libcamera/pipeline/virtual/virtual.yaml' not found for\n> pipeline handler 'virtual'\n> ERROR Virtual virtual.cpp:336 Failed to open config file:\n> \n> Should virtual.yaml be installed with its actual name without the\n> '.example' suffix. That would clear the error, though augmenting the\n> camera list.\n\nThat is indeed correct, but there should be no issues apart from that.\nIs it causing any problems?\n\nI don't believe adding the virtual cameras is acceptable for any end user.\nInstalling it with the \".example\" suffix means that it is trivial for\ndistributions to ship the virtual pipeline with an example configuration\nwithout it interfering normal operations.\n\nI suppose a placeholder `virtual.yaml` file could be installed with the\nfollowing content: { }\n\nBut I am not entirely sure if it's worth it.\n\n\nRegards,\nBarnabás Pőcze\n\n> \n> > Signed-off-by: Barnabás Pőcze pobrn@protonmail.com\n> > Reviewed-by: Kieran Bingham kieran.bingham@ideasonboard.com\n> > Reviewed-by: Harvey Yang chenghaoyang@chromium.org\n> > Reviewed-by: Laurent Pinchart laurent.pinchart@ideasonboard.com\n> > ---\n> > src/libcamera/pipeline/virtual/data/meson.build | 4 ++++\n> > src/libcamera/pipeline/virtual/meson.build | 2 ++\n> > 2 files changed, 6 insertions(+)\n> > create mode 100644 src/libcamera/pipeline/virtual/data/meson.build\n> > \n> > diff --git a/src/libcamera/pipeline/virtual/data/meson.build b/src/libcamera/pipeline/virtual/data/meson.build\n> > new file mode 100644\n> > index 000000000..ce63f9a27\n> > --- /dev/null\n> > +++ b/src/libcamera/pipeline/virtual/data/meson.build\n> > @@ -0,0 +1,4 @@\n> > +install_data('virtual.yaml',\n> > + install_dir : pipeline_data_dir / 'virtual',\n> > + install_tag : 'runtime',\n> > + rename: 'virtual.yaml.example')\n> > diff --git a/src/libcamera/pipeline/virtual/meson.build b/src/libcamera/pipeline/virtual/meson.build\n> > index 4786fe2e0..c84345936 100644\n> > --- a/src/libcamera/pipeline/virtual/meson.build\n> > +++ b/src/libcamera/pipeline/virtual/meson.build\n> > @@ -11,3 +11,5 @@ libjpeg = dependency('libjpeg', required : true)\n> > \n> > libcamera_deps += [libyuv_dep]\n> > libcamera_deps += [libjpeg]\n> > +\n> > +subdir('data')\n> > --\n> \n> \n> Thanks,\n> Julien","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 8A30BC327D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 20 Dec 2024 16:44:19 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id BDD50684AE;\n\tFri, 20 Dec 2024 17:44:18 +0100 (CET)","from mail-40133.protonmail.ch (mail-40133.protonmail.ch\n\t[185.70.40.133])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A141C6808F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 20 Dec 2024 17:44:16 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=protonmail.com header.i=@protonmail.com\n\theader.b=\"l0VRYXNm\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;\n\ts=protonmail3; t=1734713055; x=1734972255;\n\tbh=vpALpJ4IrsMoEXEdC4O4y5MOcdlsBRNf3xyR/Y5ne8I=;\n\th=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:\n\tFeedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:\n\tMessage-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;\n\tb=l0VRYXNm0CYeqtg3dZ/uU8/3ZU9OecEZ+uQQI6RKMZCaJ3IR+BYD0zVn3ZyvHYzzg\n\tuT+nxGB2o2FkRCW8S1BdrD5wbKlcM2f6ZjNxGjUufDQ2kOWzdfTKq7Q929+/nKhlBW\n\txD2XpWrC9V7PU+ScYqRtQQxtcXJWeoJ7WLKjIMU3CNc4MHOdPDbCijwEw1sWYD6U9k\n\tr13yxmCm1hvt6QGpMi6WPWTrQM+1WMDo6fEVptEw606RrjVG5pZYdTDEzQka9N3UoK\n\tuOCF/trGkPs+kfVMOmnTuXS90dzojZGrQgmbuWVh8/9tr1Xb4QwPrQHEIGs4A13OnB\n\tWMNiHSLd7w3ww==","Date":"Fri, 20 Dec 2024 16:44:09 +0000","To":"Julien Vuillaumier <julien.vuillaumier@nxp.com>","From":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <pobrn@protonmail.com>","Cc":"libcamera-devel@lists.libcamera.org,\n\tKieran Bingham <kieran.bingham@ideasonboard.com>,\n\tHarvey Yang <chenghaoyang@chromium.org>,\n\tLaurent Pinchart <laurent.pinchart@ideasonboard.com>","Subject":"Re: [EXT] [PATCH v2] libcamera: virtual: Install configuration file","Message-ID":"<26Uoh1j-VMXTBlAbqzYYg-bNw2Cnuay_7TXxIX7QeqjE7IdDtIY3nLzWwZ88twJCRR0UrRZyVug8O4Sci3vMhtBQuBeLA6z5oj70N8_MLH8=@protonmail.com>","In-Reply-To":"<52394d01-984e-43ec-90dd-386e2f00365d@nxp.com>","References":"<20241220135420.694142-1-pobrn@protonmail.com>\n\t<52394d01-984e-43ec-90dd-386e2f00365d@nxp.com>","Feedback-ID":"20568564:user:proton","X-Pm-Message-ID":"1549fbb3d3aa298a4de6003a3d3e2cebdef54637","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Transfer-Encoding":"quoted-printable","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>"}},{"id":32907,"web_url":"https://patchwork.libcamera.org/comment/32907/","msgid":"<20241220180014.GA2974@pendragon.ideasonboard.com>","date":"2024-12-20T18:00:14","subject":"Re: [EXT] [PATCH v2] libcamera: virtual: Install configuration file","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Fri, Dec 20, 2024 at 04:44:09PM +0000, Barnabás Pőcze wrote:\n> 2024. december 20., péntek 17:17 keltezéssel, Julien Vuillaumier írta:\n> > On 20/12/2024 14:54, Barnabás Pőcze wrote:\n> > \n> > > Install the example configuration file of the virtual pipeline\n> > > handler as it serves documentation purposes, and to make the\n> > > virtual pipeline handler easily usable in CI.\n> > > \n> > > Nonetheless, the file is installed with the \".example\" suffix\n> > > so that it will not be used by default, to avoid cluttering\n> > > the camera lists of users whose distributions decide to\n> > > enable the virtual pipeline handler.\n> > > \n> > > The file is installed in the proper location for convenience:\n> > > (1) is is easier to use it in the CI;\n> > > (2) users need not browse documentation to determine where\n> > > they should place the file.\n> > \n> > \n> > Virtual pipeline, when enabled, outputs a noisy error message during the\n> > match() when its configuration file is not installed:\n> > \n> > DEBUG Camera camera_manager.cpp:140 Found registered pipeline handler\n> > 'virtual'\n> > ERROR Pipeline pipeline_handler.cpp:629 Configuration file\n> > '/usr/share/libcamera/pipeline/virtual/virtual.yaml' not found for\n> > pipeline handler 'virtual'\n> > ERROR Virtual virtual.cpp:336 Failed to open config file:\n\nShould we demote that to a debug message ? It is not an error as such.\n\n> > \n> > Should virtual.yaml be installed with its actual name without the\n> > '.example' suffix. That would clear the error, though augmenting the\n> > camera list.\n> \n> That is indeed correct, but there should be no issues apart from that.\n> Is it causing any problems?\n> \n> I don't believe adding the virtual cameras is acceptable for any end user.\n> Installing it with the \".example\" suffix means that it is trivial for\n> distributions to ship the virtual pipeline with an example configuration\n> without it interfering normal operations.\n> \n> I suppose a placeholder `virtual.yaml` file could be installed with the\n> following content: { }\n> \n> But I am not entirely sure if it's worth it.\n\nI'm not sure either.\n\n> > > Signed-off-by: Barnabás Pőcze pobrn@protonmail.com\n> > > Reviewed-by: Kieran Bingham kieran.bingham@ideasonboard.com\n> > > Reviewed-by: Harvey Yang chenghaoyang@chromium.org\n> > > Reviewed-by: Laurent Pinchart laurent.pinchart@ideasonboard.com\n> > > ---\n> > > src/libcamera/pipeline/virtual/data/meson.build | 4 ++++\n> > > src/libcamera/pipeline/virtual/meson.build | 2 ++\n> > > 2 files changed, 6 insertions(+)\n> > > create mode 100644 src/libcamera/pipeline/virtual/data/meson.build\n> > > \n> > > diff --git a/src/libcamera/pipeline/virtual/data/meson.build b/src/libcamera/pipeline/virtual/data/meson.build\n> > > new file mode 100644\n> > > index 000000000..ce63f9a27\n> > > --- /dev/null\n> > > +++ b/src/libcamera/pipeline/virtual/data/meson.build\n> > > @@ -0,0 +1,4 @@\n> > > +install_data('virtual.yaml',\n> > > + install_dir : pipeline_data_dir / 'virtual',\n> > > + install_tag : 'runtime',\n> > > + rename: 'virtual.yaml.example')\n> > > diff --git a/src/libcamera/pipeline/virtual/meson.build b/src/libcamera/pipeline/virtual/meson.build\n> > > index 4786fe2e0..c84345936 100644\n> > > --- a/src/libcamera/pipeline/virtual/meson.build\n> > > +++ b/src/libcamera/pipeline/virtual/meson.build\n> > > @@ -11,3 +11,5 @@ libjpeg = dependency('libjpeg', required : true)\n> > > \n> > > libcamera_deps += [libyuv_dep]\n> > > libcamera_deps += [libjpeg]\n> > > +\n> > > +subdir('data')\n> > > --","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 95441C3274\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 20 Dec 2024 18:00:24 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A4784684AE;\n\tFri, 20 Dec 2024 19:00:23 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 28FE86808F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 20 Dec 2024 19:00:21 +0100 (CET)","from pendragon.ideasonboard.com (unknown [95.214.66.65])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 5EE8F16A;\n\tFri, 20 Dec 2024 18:59:41 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"JxtAL0EG\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1734717581;\n\tbh=hCINXy1eaGfQVBrfx/xJtyPNrm/GHkr17cFfy51ow58=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=JxtAL0EGazggskUkLiSirmfBw0WSRdZ/+TQuiUE/0RQzmGsnbaBqSQSFfVE/hUjK/\n\th6OJldLFOx/CSXWbUXXeeNkKzMV9fsW5gP/HWO9xh+M6oCZ9KgDME7p1YyjYdBlMv5\n\tztE4BJYdLnyAbXTQKIxdGPn6VSppqn7Gi0ES0EAg=","Date":"Fri, 20 Dec 2024 20:00:14 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <pobrn@protonmail.com>","Cc":"Julien Vuillaumier <julien.vuillaumier@nxp.com>,\n\tlibcamera-devel@lists.libcamera.org,\n\tKieran Bingham <kieran.bingham@ideasonboard.com>,\n\tHarvey Yang <chenghaoyang@chromium.org>","Subject":"Re: [EXT] [PATCH v2] libcamera: virtual: Install configuration file","Message-ID":"<20241220180014.GA2974@pendragon.ideasonboard.com>","References":"<20241220135420.694142-1-pobrn@protonmail.com>\n\t<52394d01-984e-43ec-90dd-386e2f00365d@nxp.com>\n\t<26Uoh1j-VMXTBlAbqzYYg-bNw2Cnuay_7TXxIX7QeqjE7IdDtIY3nLzWwZ88twJCRR0UrRZyVug8O4Sci3vMhtBQuBeLA6z5oj70N8_MLH8=@protonmail.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<26Uoh1j-VMXTBlAbqzYYg-bNw2Cnuay_7TXxIX7QeqjE7IdDtIY3nLzWwZ88twJCRR0UrRZyVug8O4Sci3vMhtBQuBeLA6z5oj70N8_MLH8=@protonmail.com>","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>"}},{"id":32929,"web_url":"https://patchwork.libcamera.org/comment/32929/","msgid":"<97ff1854-dd3c-45a9-9907-2efe49bda7a0@nxp.com>","date":"2025-01-03T17:43:18","subject":"Re: [EXT] [PATCH v2] libcamera: virtual: Install configuration file","submitter":{"id":190,"url":"https://patchwork.libcamera.org/api/people/190/","name":"Julien Vuillaumier","email":"julien.vuillaumier@nxp.com"},"content":"Hi Barnabás,\n\nOn 20/12/2024 17:44, Barnabás Pőcze wrote:\n> \n> \n> Hi\n> \n> \n> 2024. december 20., péntek 17:17 keltezéssel, Julien Vuillaumier <julien.vuillaumier@nxp.com> írta:\n> \n>> Hi Barnabás,\n>>\n>> On 20/12/2024 14:54, Barnabás Pőcze wrote:\n>>\n>>> Install the example configuration file of the virtual pipeline\n>>> handler as it serves documentation purposes, and to make the\n>>> virtual pipeline handler easily usable in CI.\n>>>\n>>> Nonetheless, the file is installed with the \".example\" suffix\n>>> so that it will not be used by default, to avoid cluttering\n>>> the camera lists of users whose distributions decide to\n>>> enable the virtual pipeline handler.\n>>>\n>>> The file is installed in the proper location for convenience:\n>>> (1) is is easier to use it in the CI;\n>>> (2) users need not browse documentation to determine where\n>>> they should place the file.\n>>\n>>\n>> Virtual pipeline, when enabled, outputs a noisy error message during the\n>> match() when its configuration file is not installed:\n>>\n>> DEBUG Camera camera_manager.cpp:140 Found registered pipeline handler\n>> 'virtual'\n>> ERROR Pipeline pipeline_handler.cpp:629 Configuration file\n>> '/usr/share/libcamera/pipeline/virtual/virtual.yaml' not found for\n>> pipeline handler 'virtual'\n>> ERROR Virtual virtual.cpp:336 Failed to open config file:\n>>\n>> Should virtual.yaml be installed with its actual name without the\n>> '.example' suffix. That would clear the error, though augmenting the\n>> camera list.\n> \n> That is indeed correct, but there should be no issues apart from that.\n> Is it causing any problems?\n\nThere is no functional issue - however it is confusing to have a \npipeline handler reporting errors in the libcamera log during the match.\n\n> I don't believe adding the virtual cameras is acceptable for any end user.\n\nI am not sure that adding virtual cameras is really an issue for the end \nuser:\n- virtual pipeline being present means that 'test' meson config option \nequals true - option may not be used by distributions (just speculating)\n- vimc pipeline handler is already adding virtual cameras - vimc \npipeline presence also depends on the 'test' meson option.\n\nIt is only my view but I see it preferable for the end user to have \nvirtual cameras added and no error messages.\n\n> Installing it with the \".example\" suffix means that it is trivial for\n> distributions to ship the virtual pipeline with an example configuration\n> without it interfering normal operations.\n> \n> I suppose a placeholder `virtual.yaml` file could be installed with the\n> following content: { }\n> \n> But I am not entirely sure if it's worth it >\n> \n> Regards,\n> Barnabás Pőcze\n> \n\nThanks,\nJulien\n\n>>\n>>> Signed-off-by: Barnabás Pőcze pobrn@protonmail.com\n>>> Reviewed-by: Kieran Bingham kieran.bingham@ideasonboard.com\n>>> Reviewed-by: Harvey Yang chenghaoyang@chromium.org\n>>> Reviewed-by: Laurent Pinchart laurent.pinchart@ideasonboard.com\n>>> ---\n>>> src/libcamera/pipeline/virtual/data/meson.build | 4 ++++\n>>> src/libcamera/pipeline/virtual/meson.build | 2 ++\n>>> 2 files changed, 6 insertions(+)\n>>> create mode 100644 src/libcamera/pipeline/virtual/data/meson.build\n>>>\n>>> diff --git a/src/libcamera/pipeline/virtual/data/meson.build b/src/libcamera/pipeline/virtual/data/meson.build\n>>> new file mode 100644\n>>> index 000000000..ce63f9a27\n>>> --- /dev/null\n>>> +++ b/src/libcamera/pipeline/virtual/data/meson.build\n>>> @@ -0,0 +1,4 @@\n>>> +install_data('virtual.yaml',\n>>> + install_dir : pipeline_data_dir / 'virtual',\n>>> + install_tag : 'runtime',\n>>> + rename: 'virtual.yaml.example')\n>>> diff --git a/src/libcamera/pipeline/virtual/meson.build b/src/libcamera/pipeline/virtual/meson.build\n>>> index 4786fe2e0..c84345936 100644\n>>> --- a/src/libcamera/pipeline/virtual/meson.build\n>>> +++ b/src/libcamera/pipeline/virtual/meson.build\n>>> @@ -11,3 +11,5 @@ libjpeg = dependency('libjpeg', required : true)\n>>>\n>>> libcamera_deps += [libyuv_dep]\n>>> libcamera_deps += [libjpeg]\n>>> +\n>>> +subdir('data')\n>>> --\n>>\n>>\n>> Thanks,\n>> Julien","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 C49EBC324C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  3 Jan 2025 17:42:17 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id CE346684DF;\n\tFri,  3 Jan 2025 18:42:16 +0100 (CET)","from EUR03-VI1-obe.outbound.protection.outlook.com\n\t(mail-vi1eur03on20603.outbound.protection.outlook.com\n\t[IPv6:2a01:111:f403:260c::603])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 2AEAA61886\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  3 Jan 2025 18:42:15 +0100 (CET)","from AM9PR04MB8147.eurprd04.prod.outlook.com\n\t(2603:10a6:20b:3e0::22)\n\tby DBAPR04MB7398.eurprd04.prod.outlook.com (2603:10a6:10:1a0::7) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8314.14;\n\tFri, 3 Jan 2025 17:42:09 +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%5]) with mapi id 15.20.8314.013;\n\tFri, 3 Jan 2025 17:42:08 +0000"],"Authentication-Results":["lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=nxp.com header.i=@nxp.com header.b=\"iUs2mI6D\";\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=GCVr52wgL4Qrepj/SckpPQi4q0tqaRO16Qpags2wV1zfakIyQeSCNHd3njM7EHvAT0JBBkQuGJ4EJvXCc9OBLZeCtqJYJmJt5jeos3pQeRP0+5bFtGQrcYC+taranYkEz54ukHFcmVDCFhbTSP95b8ZUxPWnKkkSQztFljo0EEeUtdZAXDA8gUwa9lEwEYEr5cnlzBNsukfwdnJPaKpbpC+nfji8pZAn7OV3NGAwpNFSh3dupipsSrFE+20JndrklxR1dbZQJCqiohwd5B5wR7MQgHOPq4MwbYvhuN4D3TaWVmSCX9PVjLzcDO5+fyQT1pJp5hFFsb8i8le4hqxL+w==","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=dpo6D37/5z/NNtka3LvChK1c0tQsXLfcb872l85Scvw=;\n\tb=qTdrCRTBUb3KaJpCp3lV1JbV56KpYSZeFDgAuSMeQqEgAwA1nK7J/bMGfHlqpSzPS3lDphmhNpS2lsQZBaODn/0RsonV1wqKBdXDUj8Wn3mne5MHPuPUvpsNiiQqqwUoir3eU4bL5RFsXC4gzAsHZR1AQxor3JTO0CV5XboXt9iVCGBzN/96Cm2F294N3d+9jS7bucySPLjD7v1WoRz832Okc5arqCYyp5wQaNDIFAVxMskUxHx22mwf1eyzU/73vfBeEGXecbK7v1f76iBw/cwcCvkDdXz6WhaC4wxTNz5JYXmBUWu6EGobqyBiC98BHapGlgImJD3IJ68sG1LN6Q==","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=dpo6D37/5z/NNtka3LvChK1c0tQsXLfcb872l85Scvw=;\n\tb=iUs2mI6DaDcMQ5kRawWM08yuIGyK296sSFw+LNrWXhbotbHO/5jF8NG/Mpxam5G3wPYy/Vdxt89KNM6prOfLjWIjZo2WvQFcOVnuLSp+1lxNxdc447rS75Tl1kluwMUEmhtV/Haneu+5OaTKvKrqzGNhfghzMJf3qsbXAwf3/N/rkmm1/gnocdBF0RGSOEzlOWDhtUBpSt0nkYm8gpldtT92WDHuTlo4DT9BltLXcozegZfNH67jjApk5BOCoj0Nx6rJXLjPQ/RiEyxSEAiqwO21cA3Dxso4uYBWxPi67yy6mRtztqk/eYt11Zoq2dUDZHrZzkSKgRJuEAvxINDe3A==","Message-ID":"<97ff1854-dd3c-45a9-9907-2efe49bda7a0@nxp.com>","Date":"Fri, 3 Jan 2025 18:43:18 +0100","User-Agent":"Mozilla Thunderbird","Subject":"Re: [EXT] [PATCH v2] libcamera: virtual: Install configuration file","To":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <pobrn@protonmail.com>","Cc":"libcamera-devel@lists.libcamera.org,\n\tKieran Bingham <kieran.bingham@ideasonboard.com>,\n\tHarvey Yang <chenghaoyang@chromium.org>,\n\tLaurent Pinchart <laurent.pinchart@ideasonboard.com>","References":"<20241220135420.694142-1-pobrn@protonmail.com>\n\t<52394d01-984e-43ec-90dd-386e2f00365d@nxp.com>\n\t<26Uoh1j-VMXTBlAbqzYYg-bNw2Cnuay_7TXxIX7QeqjE7IdDtIY3nLzWwZ88twJCRR0UrRZyVug8O4Sci3vMhtBQuBeLA6z5oj70N8_MLH8=@protonmail.com>","Content-Language":"en-US","From":"Julien Vuillaumier <julien.vuillaumier@nxp.com>","In-Reply-To":"<26Uoh1j-VMXTBlAbqzYYg-bNw2Cnuay_7TXxIX7QeqjE7IdDtIY3nLzWwZ88twJCRR0UrRZyVug8O4Sci3vMhtBQuBeLA6z5oj70N8_MLH8=@protonmail.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","X-ClientProxiedBy":"AS4P189CA0033.EURP189.PROD.OUTLOOK.COM\n\t(2603:10a6:20b:5dd::6) 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_|DBAPR04MB7398:EE_","X-MS-Office365-Filtering-Correlation-Id":"8399011c-07b7-4574-b560-08dd2c1df258","X-LD-Processed":"686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"BCL:0;ARA:13230040|366016|376014|1800799024;","X-Microsoft-Antispam-Message-Info":"=?utf-8?q?P6+0/MA9WkqVPGhpaDhL6EYtMDfZ?=\n\t=?utf-8?q?h5CigL3t6TdQq6MSF5288MlX9MQ+FaNkSEYx0SPHSj23mtcjwo01J21u?=\n\t=?utf-8?q?DqYpY/jxN8otwDHlNaNxm0mf9YpciXr+CXdFDRYzavqozJPO9ZP82JqH?=\n\t=?utf-8?q?zbvEtiIh6sPNOfG4aZWrZc6F6nCOL4YPioikov1PNgMBXFB1Oxd7bbfM?=\n\t=?utf-8?q?wmahV/2IFj86vEfIy4hpkQaTiNjQUTs8fh1F1h8iZgPe8sIr53S1JHN/?=\n\t=?utf-8?q?1h5a35wIoPGmtOZm1oyvY8eO9D36aYSm9Xw4YyTDZ5ITfHUBBcwPZu3+?=\n\t=?utf-8?q?lJdDU/4V8sDg4kbxx+36ka9utURmesRTsbngNPpN+NT6iGwg7wITjEOX?=\n\t=?utf-8?q?L8kCEHuC9hTGIz05rOg5b4ilYAhixy2HWTGtFUxX8AlKPffFBp6TA+hp?=\n\t=?utf-8?q?t886ClIv1uobGrI9m5OaF/fRrgZcHUF0jyz6C6guYhUSY4OGet62OPQU?=\n\t=?utf-8?q?aJ8S5xB3JoJbddP7NbnlbU7FWowqrtXhqCVTqMAwK+blzJsYpZFiISzK?=\n\t=?utf-8?q?2pPXvLuxlOH2tZLT8gXTSQu2HtpGQ3/cas8BKtc7jkcevPMrjB/2+HtL?=\n\t=?utf-8?q?VdgC9fkeXHEfi6yA8WsGk8InKRD7pqKO+3MJ1ACMzpKgW0m1XRYxgTjw?=\n\t=?utf-8?q?tzD6HnIN57VSjY6u3jAfeqqXKP5UaPHj99O1KZzxp2fuWls3JLZbzUa0?=\n\t=?utf-8?q?l8ytBUbc50gkvRTJXsYifONkJWkuTJd27kvDMTCXHdxTemhq9v1AEUOz?=\n\t=?utf-8?q?KBuDIRU18g5WxtsrASowJmTzsr/5jIrqZxjBUmt/riRu225TZyH1mg/2?=\n\t=?utf-8?q?n9EmZLlLae99fjdxwvPK1HfmroekWL+fXqeIy43bsxwdsAO76faap+BC?=\n\t=?utf-8?q?erK0z/w3CYaKAQhr1jRprvzZCVzLRvo10KgsDxI7KMHv2uo1cInQdBeY?=\n\t=?utf-8?q?Ot5zTRThX2anx+Ymy14fm1/qs1GWadc3ik6zVumI+DdW42LaDjtmuIXU?=\n\t=?utf-8?q?C1eYbNf38eCs34YwrQGyd1bK9a/4VDROSnw/Y7SB2JD8x01tDvm+vQ0r?=\n\t=?utf-8?q?DsSP27nvMUP+G9mUHQ2xMjJvf0rQwtBlePcpncijDhBAwHlsOnQcJetl?=\n\t=?utf-8?q?Ch+w6YFU5QLQO0nsufQOMAxKP1W48pLYy3Bl4JNH5tlzMRx+g2pzvTpu?=\n\t=?utf-8?q?c+S27qTfL18qhfcS0o98IDtrSDX7eru1jJX5pBydBV1XDwNW6exnnQ2Y?=\n\t=?utf-8?q?5G2Yd9sVkYVr0T+MhoEc1ehUcQgVWsBdyW/aHNcbfP0b808LoXG7pBkC?=\n\t=?utf-8?q?OASPzzCJZaVKva6MPwlrgahxiOSWOeo96z+ZKwvNhwfHvQOsG/1+42QH?=\n\t=?utf-8?q?1LTur4k5RYwUPDEXvXNSrXNAv72rHG2tnzI1Lk6xwa9b2jJqqr5cPmxP?=\n\t=?utf-8?q?CAF7CeUQu/j3xaA10QBdq1bn2TsfOJPwADcq?=","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:(13230040)(366016)(376014)(1800799024); DIR:OUT; SFP:1101; ","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"=?utf-8?q?Ozba+nanQPYE/CQ2AshPspFrn?=\n\t=?utf-8?q?+VMyKzbdQJMkhxROmHeiesbDzLtGplZ2Ef5nXp0hfiEYkz7cLlOs4bi+?=\n\t=?utf-8?q?01qojKBUy9bTKSw77pz9XGEz0lGbW2ydHJuuCuBg6nXCJXc98MsEIUiZ?=\n\t=?utf-8?q?jP2RWlqAugNCxzw5PIHNNxv/yt1VWKhVdnLiN6iZJUvD1HXa4xKmQHo8?=\n\t=?utf-8?q?lIi0Ec+GrDwdQ0R1Us4ZaqStfAw05yGFh2/Ntsm/ffErDEs8NZeTaonW?=\n\t=?utf-8?q?DLMerw1+3oNw+W+X1vblCrFawzQANDRfr51LvdHU+hQQAL3YKYxWQUI8?=\n\t=?utf-8?q?6SYcHqfvNMJEYfX2zU7MFdJwia7q42tzaWISruhCGxB8pLIQ+4UjsDOu?=\n\t=?utf-8?q?bOo4SPLrHhdzxrqagtrPzAIUW7h6gQmSMXykZEm0MD32yvmOZhoCNjiE?=\n\t=?utf-8?q?zyjB/+NTMBmcxCKRpFsGOxwAzgOvPPx3Abgs4AhjwPlhpZtgDxmQ3Wqi?=\n\t=?utf-8?q?hYhIGAQBx12CtNNcR0sLVuvnH8Q/NuG44ZEEj0ufeUvSQOSDZIONshDN?=\n\t=?utf-8?q?Y9QBQFphWnRbmVWOsvgPzGv7HpHQwmrrzFGT0hdXPBDOUDQjOv1WgysK?=\n\t=?utf-8?q?7AQprwydzdDETaR18kMbULh5XklFw2MPPubuJW8IgvxzOyQWg1PTpnB1?=\n\t=?utf-8?q?BgoRrf61E3wafnD0eFAxIjjhKgq6pxzIadtERCINzZpXIkdTjc2wVrXP?=\n\t=?utf-8?q?AjgvhqDRIzhKm44vBul1tHmTilggWEm/Dhj0/ZJkeo9r2k7lRdkt0BWL?=\n\t=?utf-8?q?/BOIqQ+RriO3/5lLN/aBvChtQOxagWrfBXDHruj4+GgL0BE48d6mZEQt?=\n\t=?utf-8?q?OYq1ta/f5FWx4YSyR3TvmAAO47IC9PXgSc5K1N9ib/nR+dIeSdJ+dI3j?=\n\t=?utf-8?q?Dl/0JPy/QnSbSJ8GNQbSQXw6+MQx1ce5IzYC2WZFyyyWPIEmHz7Vn52/?=\n\t=?utf-8?q?zkdHYy/Bwr/s1AhU1E8TEhrtvQLXe2tIXbT+w/AONSrYFre4VSWL8OgG?=\n\t=?utf-8?q?FkICh+Xls5Mgzav+1udCduP8BkWk2/IhsjG4iLOgZQI1vwpEJTd907/C?=\n\t=?utf-8?q?s536Rg035jOmA2O92gvxx3luoKX+DkytGWPJIa5fRPUKJ7tsGCyLTMMz?=\n\t=?utf-8?q?R4quLQTMYnYI/nqXIqsHn23Pp4C3yqg5ovt6/8pBmHnZJqzoyB65Bpya?=\n\t=?utf-8?q?Nl91OI5SuxDFPwqcdXYkZmcS5ihNbBivvnjmWXTG6jH5rHpZnZS3xbwC?=\n\t=?utf-8?q?XT3BuZB5enIG8FRaYZzQBA+xsWk/QeLNNGcS7PNNpm8XIgElqK1o2SY4?=\n\t=?utf-8?q?gU8vOA09Ib5k+oDrLza8tYnOM3iGi/QdvTRpuO9gjCd2Qop1Wr3eSMi4?=\n\t=?utf-8?q?370ugXcsX60z0UBFuAIUDntPKCsn34lkPncGIUaxvyf4rAbRhMiHrWUE?=\n\t=?utf-8?q?mqESDFy7Dj6fKjVZmzhPDOBQEkeyk8iNSr5IxOQ+uE6zo8cXLU8VAYB3?=\n\t=?utf-8?q?6TkB/YsdjVryVhlbeFBNDbIOlJyuTd2WgIhmzXJNss/uCepJrQUDNoKS?=\n\t=?utf-8?q?pK1J2zgP3sMgRve8bZGWW2s7BKh7zX6SrQ6d17IbT9+dbiWB6nnR6K3z?=\n\t=?utf-8?q?Th3IlAMjJdLk+bN4ldekAVZSW20jUGkTWxQ1lntHJbOUz6xFSaOCnQSv?=\n\t=?utf-8?q?HSkdcOEODwICpglPNz7UHgpKRrxmw=3D=3D?=","X-OriginatorOrg":"nxp.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"8399011c-07b7-4574-b560-08dd2c1df258","X-MS-Exchange-CrossTenant-AuthSource":"AM9PR04MB8147.eurprd04.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"03 Jan 2025 17:42:08.9241\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":"ARBtRP8F0xL0LsdmKvFTEC/Rmh5z2ttaBUgF50TAMtRftGpBhC+NPfJD6Yt8NwgEwe3l3mooIOawWUt0r3vv3Aj6xLBmKPeg+SzPbHETvpI=","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"DBAPR04MB7398","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>"}},{"id":33007,"web_url":"https://patchwork.libcamera.org/comment/33007/","msgid":"<20250110020802.GO6159@pendragon.ideasonboard.com>","date":"2025-01-10T02:08:02","subject":"Re: [EXT] [PATCH v2] libcamera: virtual: Install configuration file","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Fri, Jan 03, 2025 at 06:43:18PM +0100, Julien Vuillaumier wrote:\n> On 20/12/2024 17:44, Barnabás Pőcze wrote:\n> > 2024. december 20., péntek 17:17 keltezéssel, Julien Vuillaumier írta:\n> >> On 20/12/2024 14:54, Barnabás Pőcze wrote:\n> >>\n> >>> Install the example configuration file of the virtual pipeline\n> >>> handler as it serves documentation purposes, and to make the\n> >>> virtual pipeline handler easily usable in CI.\n> >>>\n> >>> Nonetheless, the file is installed with the \".example\" suffix\n> >>> so that it will not be used by default, to avoid cluttering\n> >>> the camera lists of users whose distributions decide to\n> >>> enable the virtual pipeline handler.\n> >>>\n> >>> The file is installed in the proper location for convenience:\n> >>> (1) is is easier to use it in the CI;\n> >>> (2) users need not browse documentation to determine where\n> >>> they should place the file.\n> >>\n> >> Virtual pipeline, when enabled, outputs a noisy error message during the\n> >> match() when its configuration file is not installed:\n> >>\n> >> DEBUG Camera camera_manager.cpp:140 Found registered pipeline handler\n> >> 'virtual'\n> >> ERROR Pipeline pipeline_handler.cpp:629 Configuration file\n> >> '/usr/share/libcamera/pipeline/virtual/virtual.yaml' not found for\n> >> pipeline handler 'virtual'\n> >> ERROR Virtual virtual.cpp:336 Failed to open config file:\n> >>\n> >> Should virtual.yaml be installed with its actual name without the\n> >> '.example' suffix. That would clear the error, though augmenting the\n> >> camera list.\n> > \n> > That is indeed correct, but there should be no issues apart from that.\n> > Is it causing any problems?\n> \n> There is no functional issue - however it is confusing to have a \n> pipeline handler reporting errors in the libcamera log during the match.\n> \n> > I don't believe adding the virtual cameras is acceptable for any end user.\n> \n> I am not sure that adding virtual cameras is really an issue for the end \n> user:\n> - virtual pipeline being present means that 'test' meson config option \n> equals true - option may not be used by distributions (just speculating)\n\nThe virtual pipeline handler can also be enabled by setting the\n'pipelines' meson option, without enabling the 'test' option.\n\n> - vimc pipeline handler is already adding virtual cameras\n\nCorrect, but only if the vimc driver is loaded.\n\n> - vimc \n> pipeline presence also depends on the 'test' meson option.\n\nIt can also be enabled through the 'pipelines' option.\n\n> It is only my view but I see it preferable for the end user to have \n> virtual cameras added and no error messages.\n\nI think we all agree that the error message is wrong.\n\nBy default, I believe no virtual camera should be created. That can be\nachieved by ensuring that distributions either do not enable the virtual\npipeline handler in their libcamera package (either explicitly, or\nthrough the 'test' option), or do not install the virtual pipeline\nhandler configuration file.\n\nI also believe that end users could find the virtual pipeline handler\nuseful, which would call for enabling it in distribution packages. If\nthat's the case, distributions should not install the configuration\nfile.\n\nAt the end of the day distributions will decide what to do, regardless\nof what we do in meson.build. They can decide not to package the virtual\npipeline handler configuration file even if we install it. Conversely,\nthey can also decide to strip the .example suffix from the file we\ninstall, if we decide to install an example file only.\n\nMy personal opinion is that we should install the sample configuration\nfile with a .example suffix, and demote the error message to an info\nmessage. When running libcamera from the build directory the virtual\npipeline handler configuration file will be loaded, making it easy to\ndevelop the pipeline handler without having to install libcamera or\nrename files.\n\n> > Installing it with the \".example\" suffix means that it is trivial for\n> > distributions to ship the virtual pipeline with an example configuration\n> > without it interfering normal operations.\n> > \n> > I suppose a placeholder `virtual.yaml` file could be installed with the\n> > following content: { }\n> > \n> > But I am not entirely sure if it's worth it >\n> > \n> >>> Signed-off-by: Barnabás Pőcze pobrn@protonmail.com\n> >>> Reviewed-by: Kieran Bingham kieran.bingham@ideasonboard.com\n> >>> Reviewed-by: Harvey Yang chenghaoyang@chromium.org\n> >>> Reviewed-by: Laurent Pinchart laurent.pinchart@ideasonboard.com\n> >>> ---\n> >>> src/libcamera/pipeline/virtual/data/meson.build | 4 ++++\n> >>> src/libcamera/pipeline/virtual/meson.build | 2 ++\n> >>> 2 files changed, 6 insertions(+)\n> >>> create mode 100644 src/libcamera/pipeline/virtual/data/meson.build\n> >>>\n> >>> diff --git a/src/libcamera/pipeline/virtual/data/meson.build b/src/libcamera/pipeline/virtual/data/meson.build\n> >>> new file mode 100644\n> >>> index 000000000..ce63f9a27\n> >>> --- /dev/null\n> >>> +++ b/src/libcamera/pipeline/virtual/data/meson.build\n> >>> @@ -0,0 +1,4 @@\n> >>> +install_data('virtual.yaml',\n> >>> + install_dir : pipeline_data_dir / 'virtual',\n> >>> + install_tag : 'runtime',\n> >>> + rename: 'virtual.yaml.example')\n> >>> diff --git a/src/libcamera/pipeline/virtual/meson.build b/src/libcamera/pipeline/virtual/meson.build\n> >>> index 4786fe2e0..c84345936 100644\n> >>> --- a/src/libcamera/pipeline/virtual/meson.build\n> >>> +++ b/src/libcamera/pipeline/virtual/meson.build\n> >>> @@ -11,3 +11,5 @@ libjpeg = dependency('libjpeg', required : true)\n> >>>\n> >>> libcamera_deps += [libyuv_dep]\n> >>> libcamera_deps += [libjpeg]\n> >>> +\n> >>> +subdir('data')","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 255E8C32F5\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 10 Jan 2025 02:08:09 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 0685E684EA;\n\tFri, 10 Jan 2025 03:08:08 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 32A4D608A9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 10 Jan 2025 03:08:06 +0100 (CET)","from pendragon.ideasonboard.com (81-175-209-231.bb.dnainternet.fi\n\t[81.175.209.231])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id BBC6278C;\n\tFri, 10 Jan 2025 03:07:11 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"bODedUFf\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1736474831;\n\tbh=e0J/cw8sdx4xRqqfIgf9ToEcTx03kgL05IGfWghw4b8=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=bODedUFfXgbSCMwDfYnikM9Nixy+J4UGvhEDritgdxYXmrE5L7Dskt8zOijcQOie7\n\tshps/yXFa1g2jB2pgTGls1OQujarDn12NsYcxSMqzkB+QycRoBpYMOTqKJwFL2a3AP\n\t0eCSXRk8e7sXTzKtn05vPJ3TuC7qkpDTc06LPnl8=","Date":"Fri, 10 Jan 2025 04:08:02 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Julien Vuillaumier <julien.vuillaumier@nxp.com>","Cc":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <pobrn@protonmail.com>,\n\tlibcamera-devel@lists.libcamera.org, Kieran Bingham\n\t<kieran.bingham@ideasonboard.com>, Harvey Yang\n\t<chenghaoyang@chromium.org>","Subject":"Re: [EXT] [PATCH v2] libcamera: virtual: Install configuration file","Message-ID":"<20250110020802.GO6159@pendragon.ideasonboard.com>","References":"<20241220135420.694142-1-pobrn@protonmail.com>\n\t<52394d01-984e-43ec-90dd-386e2f00365d@nxp.com>\n\t<26Uoh1j-VMXTBlAbqzYYg-bNw2Cnuay_7TXxIX7QeqjE7IdDtIY3nLzWwZ88twJCRR0UrRZyVug8O4Sci3vMhtBQuBeLA6z5oj70N8_MLH8=@protonmail.com>\n\t<97ff1854-dd3c-45a9-9907-2efe49bda7a0@nxp.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<97ff1854-dd3c-45a9-9907-2efe49bda7a0@nxp.com>","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>"}},{"id":33008,"web_url":"https://patchwork.libcamera.org/comment/33008/","msgid":"<20250110021202.GP6159@pendragon.ideasonboard.com>","date":"2025-01-10T02:12:02","subject":"Re: [EXT] [PATCH v2] libcamera: virtual: Install configuration file","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Fri, Jan 10, 2025 at 04:08:02AM +0200, Laurent Pinchart wrote:\n> On Fri, Jan 03, 2025 at 06:43:18PM +0100, Julien Vuillaumier wrote:\n> > On 20/12/2024 17:44, Barnabás Pőcze wrote:\n> > > 2024. december 20., péntek 17:17 keltezéssel, Julien Vuillaumier írta:\n> > >> On 20/12/2024 14:54, Barnabás Pőcze wrote:\n> > >>\n> > >>> Install the example configuration file of the virtual pipeline\n> > >>> handler as it serves documentation purposes, and to make the\n> > >>> virtual pipeline handler easily usable in CI.\n> > >>>\n> > >>> Nonetheless, the file is installed with the \".example\" suffix\n> > >>> so that it will not be used by default, to avoid cluttering\n> > >>> the camera lists of users whose distributions decide to\n> > >>> enable the virtual pipeline handler.\n> > >>>\n> > >>> The file is installed in the proper location for convenience:\n> > >>> (1) is is easier to use it in the CI;\n> > >>> (2) users need not browse documentation to determine where\n> > >>> they should place the file.\n> > >>\n> > >> Virtual pipeline, when enabled, outputs a noisy error message during the\n> > >> match() when its configuration file is not installed:\n> > >>\n> > >> DEBUG Camera camera_manager.cpp:140 Found registered pipeline handler\n> > >> 'virtual'\n> > >> ERROR Pipeline pipeline_handler.cpp:629 Configuration file\n> > >> '/usr/share/libcamera/pipeline/virtual/virtual.yaml' not found for\n> > >> pipeline handler 'virtual'\n> > >> ERROR Virtual virtual.cpp:336 Failed to open config file:\n> > >>\n> > >> Should virtual.yaml be installed with its actual name without the\n> > >> '.example' suffix. That would clear the error, though augmenting the\n> > >> camera list.\n> > > \n> > > That is indeed correct, but there should be no issues apart from that.\n> > > Is it causing any problems?\n> > \n> > There is no functional issue - however it is confusing to have a \n> > pipeline handler reporting errors in the libcamera log during the match.\n> > \n> > > I don't believe adding the virtual cameras is acceptable for any end user.\n> > \n> > I am not sure that adding virtual cameras is really an issue for the end \n> > user:\n> > - virtual pipeline being present means that 'test' meson config option \n> > equals true - option may not be used by distributions (just speculating)\n> \n> The virtual pipeline handler can also be enabled by setting the\n> 'pipelines' meson option, without enabling the 'test' option.\n> \n> > - vimc pipeline handler is already adding virtual cameras\n> \n> Correct, but only if the vimc driver is loaded.\n> \n> > - vimc \n> > pipeline presence also depends on the 'test' meson option.\n> \n> It can also be enabled through the 'pipelines' option.\n> \n> > It is only my view but I see it preferable for the end user to have \n> > virtual cameras added and no error messages.\n> \n> I think we all agree that the error message is wrong.\n> \n> By default, I believe no virtual camera should be created. That can be\n> achieved by ensuring that distributions either do not enable the virtual\n> pipeline handler in their libcamera package (either explicitly, or\n> through the 'test' option), or do not install the virtual pipeline\n> handler configuration file.\n> \n> I also believe that end users could find the virtual pipeline handler\n> useful, which would call for enabling it in distribution packages. If\n> that's the case, distributions should not install the configuration\n> file.\n> \n> At the end of the day distributions will decide what to do, regardless\n> of what we do in meson.build. They can decide not to package the virtual\n> pipeline handler configuration file even if we install it. Conversely,\n> they can also decide to strip the .example suffix from the file we\n> install, if we decide to install an example file only.\n> \n> My personal opinion is that we should install the sample configuration\n> file with a .example suffix, and demote the error message to an info\n> message.\n\nOr even a debug message.\n\n> When running libcamera from the build directory the virtual\n> pipeline handler configuration file will be loaded, making it easy to\n> develop the pipeline handler without having to install libcamera or\n> rename files.\n> \n> > > Installing it with the \".example\" suffix means that it is trivial for\n> > > distributions to ship the virtual pipeline with an example configuration\n> > > without it interfering normal operations.\n> > > \n> > > I suppose a placeholder `virtual.yaml` file could be installed with the\n> > > following content: { }\n> > > \n> > > But I am not entirely sure if it's worth it >\n> > > \n> > >>> Signed-off-by: Barnabás Pőcze pobrn@protonmail.com\n> > >>> Reviewed-by: Kieran Bingham kieran.bingham@ideasonboard.com\n> > >>> Reviewed-by: Harvey Yang chenghaoyang@chromium.org\n> > >>> Reviewed-by: Laurent Pinchart laurent.pinchart@ideasonboard.com\n> > >>> ---\n> > >>> src/libcamera/pipeline/virtual/data/meson.build | 4 ++++\n> > >>> src/libcamera/pipeline/virtual/meson.build | 2 ++\n> > >>> 2 files changed, 6 insertions(+)\n> > >>> create mode 100644 src/libcamera/pipeline/virtual/data/meson.build\n> > >>>\n> > >>> diff --git a/src/libcamera/pipeline/virtual/data/meson.build b/src/libcamera/pipeline/virtual/data/meson.build\n> > >>> new file mode 100644\n> > >>> index 000000000..ce63f9a27\n> > >>> --- /dev/null\n> > >>> +++ b/src/libcamera/pipeline/virtual/data/meson.build\n> > >>> @@ -0,0 +1,4 @@\n> > >>> +install_data('virtual.yaml',\n> > >>> + install_dir : pipeline_data_dir / 'virtual',\n> > >>> + install_tag : 'runtime',\n> > >>> + rename: 'virtual.yaml.example')\n> > >>> diff --git a/src/libcamera/pipeline/virtual/meson.build b/src/libcamera/pipeline/virtual/meson.build\n> > >>> index 4786fe2e0..c84345936 100644\n> > >>> --- a/src/libcamera/pipeline/virtual/meson.build\n> > >>> +++ b/src/libcamera/pipeline/virtual/meson.build\n> > >>> @@ -11,3 +11,5 @@ libjpeg = dependency('libjpeg', required : true)\n> > >>>\n> > >>> libcamera_deps += [libyuv_dep]\n> > >>> libcamera_deps += [libjpeg]\n> > >>> +\n> > >>> +subdir('data')","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 0495FC32EF\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 10 Jan 2025 02:12:09 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 4989E684EA;\n\tFri, 10 Jan 2025 03:12:08 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id AECB8608A9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 10 Jan 2025 03:12:06 +0100 (CET)","from pendragon.ideasonboard.com (81-175-209-231.bb.dnainternet.fi\n\t[81.175.209.231])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 48D7C78C;\n\tFri, 10 Jan 2025 03:11:12 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"WqRMTPOS\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1736475072;\n\tbh=QluwLb4mbhR7XT4qj3LSuWed9rk184mTzQcnza2rkGU=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=WqRMTPOSC9oD3xEEpPO97uXyhYpXx1Yhox+UTI7oJXlZhck3/08BvGf42R2Bxy4r4\n\tgDf3S5nvMmwVKTsIuOhNiaB6PJIsZc7w0OzWE7fCaWmWjWygwEEdkJ5gCI5UPsk/7N\n\t+XhudPfAP49ml0M4qfj7t16xYQaIJdo+hRo3w1iM=","Date":"Fri, 10 Jan 2025 04:12:02 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Julien Vuillaumier <julien.vuillaumier@nxp.com>","Cc":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <pobrn@protonmail.com>,\n\tlibcamera-devel@lists.libcamera.org, Kieran Bingham\n\t<kieran.bingham@ideasonboard.com>, Harvey Yang\n\t<chenghaoyang@chromium.org>","Subject":"Re: [EXT] [PATCH v2] libcamera: virtual: Install configuration file","Message-ID":"<20250110021202.GP6159@pendragon.ideasonboard.com>","References":"<20241220135420.694142-1-pobrn@protonmail.com>\n\t<52394d01-984e-43ec-90dd-386e2f00365d@nxp.com>\n\t<26Uoh1j-VMXTBlAbqzYYg-bNw2Cnuay_7TXxIX7QeqjE7IdDtIY3nLzWwZ88twJCRR0UrRZyVug8O4Sci3vMhtBQuBeLA6z5oj70N8_MLH8=@protonmail.com>\n\t<97ff1854-dd3c-45a9-9907-2efe49bda7a0@nxp.com>\n\t<20250110020802.GO6159@pendragon.ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20250110020802.GO6159@pendragon.ideasonboard.com>","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>"}}]