[{"id":36672,"web_url":"https://patchwork.libcamera.org/comment/36672/","msgid":"<ee24fdb0-4c89-41f0-90a8-be51d7f7c34d@ideasonboard.com>","date":"2025-11-04T11:31:21","subject":"Re: [PATCH v5 1/2] libcamera: pipeline_handler: Add accessor for\n\tuseCount_","submitter":{"id":216,"url":"https://patchwork.libcamera.org/api/people/216/","name":"Barnabás Pőcze","email":"barnabas.pocze@ideasonboard.com"},"content":"Hi\n\n2025. 11. 04. 8:56 keltezéssel, Antoine Bouyer írta:\n> Add an accessor for useCount_ parameter, so that PipelineHandler\n> child classes can access it to verify whether the media device\n> is already locked or not.\n> \n> Signed-off-by: Antoine Bouyer <antoine.bouyer@nxp.com>\n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> ---\n>   include/libcamera/internal/pipeline_handler.h |  1 +\n>   src/libcamera/pipeline_handler.cpp            | 14 ++++++++++++++\n>   2 files changed, 15 insertions(+)\n> \n> diff --git a/include/libcamera/internal/pipeline_handler.h b/include/libcamera/internal/pipeline_handler.h\n> index e89d6a33e398..2ca210d0ae4f 100644\n> --- a/include/libcamera/internal/pipeline_handler.h\n> +++ b/include/libcamera/internal/pipeline_handler.h\n> @@ -73,6 +73,7 @@ public:\n>   protected:\n>   \tvoid registerCamera(std::shared_ptr<Camera> camera);\n>   \tvoid hotplugMediaDevice(MediaDevice *media);\n> +\tunsigned int useCount() const { return useCount_; };\n>   \n>   \tvirtual int queueRequestDevice(Camera *camera, Request *request) = 0;\n>   \tvirtual void stopDevice(Camera *camera) = 0;\n> diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp\n> index e5f9e55c9783..0279c21b691b 100644\n> --- a/src/libcamera/pipeline_handler.cpp\n> +++ b/src/libcamera/pipeline_handler.cpp\n> @@ -168,6 +168,10 @@ MediaDevice *PipelineHandler::acquireMediaDevice(DeviceEnumerator *enumerator,\n>    */\n>   bool PipelineHandler::acquire(Camera *camera)\n>   {\n> +\tLOG(Pipeline, Debug)\n> +\t\t<< \"Acquire camera \" << camera->id()\n> +\t\t<< \" useCount \" << useCount_;\n> +\n>   \tif (useCount_ == 0) {\n>   \t\tfor (std::shared_ptr<MediaDevice> &media : mediaDevices_) {\n>   \t\t\tif (!media->lock()) {\n> @@ -214,6 +218,10 @@ void PipelineHandler::release(Camera *camera)\n>   \t\tunlockMediaDevices();\n>   \n>   \t--useCount_;\n> +\n> +\tLOG(Pipeline, Debug)\n> +\t\t<< \"release camera \" << camera->id()\n\nThe casing does not match the previous log message, but this can be fixed when applying the change.\nAnd maybe the log message additions should be separate.\n\nBut otherwise looks good to me.\n\nReviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n\n\n> +\t\t<< \" useCount \" << useCount_;\n>   }\n>   \n>   /**\n> @@ -811,6 +819,12 @@ void PipelineHandler::disconnect()\n>    * \\return The pipeline handler name\n>    */\n>   \n> +/**\n> + * \\fn PipelineHandler::useCount()\n> + * \\brief Retrieve the pipeline handler's used camera count\n> + * \\return The number of acquired cameras of the pipeline handler\n> + */\n> +\n>   /**\n>    * \\fn PipelineHandler::cameraManager() const\n>    * \\brief Retrieve the CameraManager that this pipeline handler belongs to","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 9649BBDE4C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  4 Nov 2025 11:31:27 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B815160A80;\n\tTue,  4 Nov 2025 12:31:26 +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 719C86069A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  4 Nov 2025 12:31:25 +0100 (CET)","from [192.168.33.40] (185.221.140.239.nat.pool.zt.hu\n\t[185.221.140.239])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 7AB9BC6F;\n\tTue,  4 Nov 2025 12:29:31 +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=\"kFvIE+Lf\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1762255771;\n\tbh=ZhSMR0OYtMpt9utYa1p7ZHynLkgoad7UQ+iDs3TOOsY=;\n\th=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n\tb=kFvIE+Lfo1fhXOoGcdfuWLgBmgE2rjwXvcJQohON/woSCqYYMerBR/jhcTNdGpgAj\n\tEBegd3TgR08yl1H4ZR8OZaLjDA4pCnLjyA33RQ9mdWUueQkEzxDVLgFWIce8nKtTkg\n\tyxSNgeWc5lanq2A43GsmBtLmjG/abkrFU97YoG4A=","Message-ID":"<ee24fdb0-4c89-41f0-90a8-be51d7f7c34d@ideasonboard.com>","Date":"Tue, 4 Nov 2025 12:31:21 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v5 1/2] libcamera: pipeline_handler: Add accessor for\n\tuseCount_","To":"Antoine Bouyer <antoine.bouyer@nxp.com>,\n\tlibcamera-devel@lists.libcamera.org","Cc":"julien.vuillaumier@nxp.com,\n\tKieran Bingham <kieran.bingham@ideasonboard.com>","References":"<20251104075609.94310-1-antoine.bouyer@nxp.com>\n\t<20251104075609.94310-2-antoine.bouyer@nxp.com>","From":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Content-Language":"en-US, hu-HU","In-Reply-To":"<20251104075609.94310-2-antoine.bouyer@nxp.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","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":36675,"web_url":"https://patchwork.libcamera.org/comment/36675/","msgid":"<3fcf5ecb-86eb-4a0a-9eab-dbba5e7b6e9e@nxp.com>","date":"2025-11-04T13:39:16","subject":"Re: [PATCH v5 1/2] libcamera: pipeline_handler: Add accessor for\n\tuseCount_","submitter":{"id":218,"url":"https://patchwork.libcamera.org/api/people/218/","name":"Antoine Bouyer","email":"antoine.bouyer@nxp.com"},"content":"Hi Barnabás\n\nThanks for your reviews.\n\nOn 11/4/25 12:31 PM, Barnabás Pőcze wrote:\n> Caution: This is an external email. Please take care when clicking links \n> or opening attachments. When in doubt, report the message using the \n> 'Report this email' button\n> \n> \n> Hi\n> \n> 2025. 11. 04. 8:56 keltezéssel, Antoine Bouyer írta:\n>> Add an accessor for useCount_ parameter, so that PipelineHandler\n>> child classes can access it to verify whether the media device\n>> is already locked or not.\n>>\n>> Signed-off-by: Antoine Bouyer <antoine.bouyer@nxp.com>\n>> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>> ---\n>>   include/libcamera/internal/pipeline_handler.h |  1 +\n>>   src/libcamera/pipeline_handler.cpp            | 14 ++++++++++++++\n>>   2 files changed, 15 insertions(+)\n>>\n>> diff --git a/include/libcamera/internal/pipeline_handler.h b/include/ \n>> libcamera/internal/pipeline_handler.h\n>> index e89d6a33e398..2ca210d0ae4f 100644\n>> --- a/include/libcamera/internal/pipeline_handler.h\n>> +++ b/include/libcamera/internal/pipeline_handler.h\n>> @@ -73,6 +73,7 @@ public:\n>>   protected:\n>>       void registerCamera(std::shared_ptr<Camera> camera);\n>>       void hotplugMediaDevice(MediaDevice *media);\n>> +     unsigned int useCount() const { return useCount_; };\n>>\n>>       virtual int queueRequestDevice(Camera *camera, Request *request) \n>> = 0;\n>>       virtual void stopDevice(Camera *camera) = 0;\n>> diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/ \n>> pipeline_handler.cpp\n>> index e5f9e55c9783..0279c21b691b 100644\n>> --- a/src/libcamera/pipeline_handler.cpp\n>> +++ b/src/libcamera/pipeline_handler.cpp\n>> @@ -168,6 +168,10 @@ MediaDevice \n>> *PipelineHandler::acquireMediaDevice(DeviceEnumerator *enumerator,\n>>    */\n>>   bool PipelineHandler::acquire(Camera *camera)\n>>   {\n>> +     LOG(Pipeline, Debug)\n>> +             << \"Acquire camera \" << camera->id()\n>> +             << \" useCount \" << useCount_;\n>> +\n>>       if (useCount_ == 0) {\n>>               for (std::shared_ptr<MediaDevice> &media : mediaDevices_) {\n>>                       if (!media->lock()) {\n>> @@ -214,6 +218,10 @@ void PipelineHandler::release(Camera *camera)\n>>               unlockMediaDevices();\n>>\n>>       --useCount_;\n>> +\n>> +     LOG(Pipeline, Debug)\n>> +             << \"release camera \" << camera->id()\n> \n> The casing does not match the previous log message, but this can be \n> fixed when applying the change.\n> And maybe the log message additions should be separate.\n\nIndeed, preferable to log _after_ usecCount_ is increased, and _before_ \nit is decreased, or simply remove the logs. I'm not particularly \nmotivated to keep them. Just moved them here since they were in ISI \npipeline handler originally in v1.\n\nLet me push a v6 without any logs.\n\n> \n> But otherwise looks good to me.\n> \n> Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n\nThanks\nAntoine\n\n> \n> \n>> +             << \" useCount \" << useCount_;\n>>   }\n>>\n>>   /**\n>> @@ -811,6 +819,12 @@ void PipelineHandler::disconnect()\n>>    * \\return The pipeline handler name\n>>    */\n>>\n>> +/**\n>> + * \\fn PipelineHandler::useCount()\n>> + * \\brief Retrieve the pipeline handler's used camera count\n>> + * \\return The number of acquired cameras of the pipeline handler\n>> + */\n>> +\n>>   /**\n>>    * \\fn PipelineHandler::cameraManager() const\n>>    * \\brief Retrieve the CameraManager that this pipeline handler \n>> belongs to\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 737C3BDE4C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  4 Nov 2025 13:39:22 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 626A260856;\n\tTue,  4 Nov 2025 14:39:21 +0100 (CET)","from DU2PR03CU002.outbound.protection.outlook.com\n\t(mail-northeuropeazlp170110003.outbound.protection.outlook.com\n\t[IPv6:2a01:111:f403:c200::3])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 5280B6069A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  4 Nov 2025 14:39:19 +0100 (CET)","from GVXPR04MB9831.eurprd04.prod.outlook.com (2603:10a6:150:11c::8)\n\tby GV2PR04MB11635.eurprd04.prod.outlook.com (2603:10a6:150:2cb::14)\n\twith Microsoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.13;\n\tTue, 4 Nov 2025 13:39:17 +0000","from GVXPR04MB9831.eurprd04.prod.outlook.com\n\t([fe80::4634:3d9c:c4a:641a]) by\n\tGVXPR04MB9831.eurprd04.prod.outlook.com\n\t([fe80::4634:3d9c:c4a:641a%6]) with mapi id 15.20.9298.006;\n\tTue, 4 Nov 2025 13:39:17 +0000"],"Authentication-Results":["lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=nxp.com header.i=@nxp.com header.b=\"RBoNOohV\";\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=uOVIZxmLeISlPHJvju2WulnjA2WquI8WD9V+v4N3+pru0nVDpPXLIlUi2rsGoxccT0er2S8pd6WuKPYt2VjIaQLq03QuJT8UgSZC2mRKCozoJBnZ1T+AGjbNUQJHuMEDMl8sdqZ3iAn4CElBmQUFeFPg9fiLJiFrMka6pIOGjwa4FfCjiQLUUPRixPNOdIHQKkjGAPyzVKlA1hfIcJZrcTgNDayQeLE3g8qdZvo4+BBDmcpqb9YFp14O3qhabQhSZlNnuU4TKJX0cCz2HeBDeQr4yRKDw3/rfSitq4pnzYEemOgfisIWnKCK2NpWVt2DDgkm2caxAZ3XU7xC2DTl4A==","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=rhynhA6S81Qc5in5vC3ehSbtHhXQ9qKpFiotxC1l//4=;\n\tb=K+wNqg6ZjTcoJ68VnkbXD0M2IV3TdQa1DCQAcBqZm00tAQSpwV+FJ9wBwvfN9nDqzxZ0Uy+Hu/DQg0Vky/yzdq9/RxXY9VzPnP8+vxnDeLN4DQ79bDT/kbO388HOIRbR9fBJlRM9T4VeuYPKBdKk0mT/I9Soo0kwhahbM0C9vcOvw8HOOODrWha52d8Isb1vgw/fnIM4iEI+kEQGFd8V8rAjNjBzaUiaOXscOwaykG5WfPLrmLmpNfkf8Z8aymQ92cWnNPuYye3ZI+xTkT7d/N1prD4Iw7F0vMMhSWJQ/W+PoipebEryoC9svA+wgAAKjwaSco/Rpq34pjOwdUsVHQ==","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=rhynhA6S81Qc5in5vC3ehSbtHhXQ9qKpFiotxC1l//4=;\n\tb=RBoNOohVAOsKMIdH8JfnT61tHFUSl2EH8gsrVijFoFpTkhMZ5VDnVQAWTLY48FKbJXQz1I2LRW2kAkDVtcK/5dulUjy0xJPzkPMLB+T1n3KjrcLHa/eayY6MIGO4H5JPArXb87iOkNxEqtSd/CHQTHYsqloPrYScaqXjJnFsqUum1FBhyzjsnHOE+2L/Wz3gYolkwR6w1CoGuJIBcfC+YlRkRA+LnJa0e5ooE/sBCZhyjeeuyGgkAs5ExYIrytj8mpDNWGO/jZui5V2/AxiyvrSznveqfFcl6a9BTG5zFa0jz4mQ6Hii6UKgrsQg+W6KRYaIsp7i+gGJVb/aD/Lj1Q==","Message-ID":"<3fcf5ecb-86eb-4a0a-9eab-dbba5e7b6e9e@nxp.com>","Date":"Tue, 4 Nov 2025 14:39:16 +0100","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v5 1/2] libcamera: pipeline_handler: Add accessor for\n\tuseCount_","To":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Cc":"julien.vuillaumier@nxp.com,\n\tKieran Bingham <kieran.bingham@ideasonboard.com>","References":"<20251104075609.94310-1-antoine.bouyer@nxp.com>\n\t<20251104075609.94310-2-antoine.bouyer@nxp.com>\n\t<ee24fdb0-4c89-41f0-90a8-be51d7f7c34d@ideasonboard.com>","Content-Language":"en-US","From":"Antoine Bouyer <antoine.bouyer@nxp.com>","In-Reply-To":"<ee24fdb0-4c89-41f0-90a8-be51d7f7c34d@ideasonboard.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","X-ClientProxiedBy":"AS4PR10CA0001.EURPRD10.PROD.OUTLOOK.COM\n\t(2603:10a6:20b:5dc::17) To GVXPR04MB9831.eurprd04.prod.outlook.com\n\t(2603:10a6:150:11c::8)","MIME-Version":"1.0","X-MS-PublicTrafficType":"Email","X-MS-TrafficTypeDiagnostic":"GVXPR04MB9831:EE_|GV2PR04MB11635:EE_","X-MS-Office365-Filtering-Correlation-Id":"652ec656-6859-435f-f3e8-08de1ba78cfc","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"BCL:0;\n\tARA:13230040|19092799006|1800799024|366016|376014; ","X-Microsoft-Antispam-Message-Info":"=?utf-8?q?N2aahO1HpQW5XfjzowOAY4/p68wT?=\n\t=?utf-8?q?og5BtKAZ2bfKGBHlFvJxCEAdHra21MZV/OQeF2i8niW2rjEx5zdY1yth?=\n\t=?utf-8?q?frYMnRNm0n3qp1syraavrEXLYfBvQrslH+J+rfKMWWSuOZYbWJBuvQVd?=\n\t=?utf-8?q?vy2ROPOFtEiGwPSrmeY7AOnMzD2qtjxUNptA6SaRrasWBjcPGf9/XgW1?=\n\t=?utf-8?q?flEhZ15LSKrf5BaFvReuYT6zhspf+cvXWHcp1KCz056/HEZdLk2N8r56?=\n\t=?utf-8?q?ObLbJyQILWb6dce1SkErp32WMZobbCQErCl89E44ra9lLBIZCtKXRYxI?=\n\t=?utf-8?q?V/rZoNNRT/KC6gh+unfBOXQVJ4l50DZZNctdWVn3m/LYPgHbpn2yyk4C?=\n\t=?utf-8?q?xRT2fEJT3beOSBttMmvCTF/8gEWgc08j8JpfFFd+HDGgafcyuRNmZwpr?=\n\t=?utf-8?q?YpBE4CROTITJgFMcQ1fvSI8W8YmabN40S3hgcqIRMWFaKSzxL6aWqtHF?=\n\t=?utf-8?q?tlfgMCwPKB7siMKijm8ikMq91DCraaufXIdVqRZ/fbZOMQKqeZsUtjKA?=\n\t=?utf-8?q?/PZPG46MovjsGVYWbet7gY6FReUECnmqY0owps7UpIf2dhKrkrkWdcE8?=\n\t=?utf-8?q?WFiK0PLRPbImEukytjPnTfZrOmgqoYIffwxeFxJ4/4ETCRz7cJWNxMgB?=\n\t=?utf-8?q?yEnDlmChy/hj+FfRmQ/zTUGmNdx4+6eAggI9TKDZVKtTy9KS9zbAJL82?=\n\t=?utf-8?q?oRFavDHuL51+3FlHOIAxjC2p9apxCZ5yCNMLZ7sNphE61dE2WfIa1jIB?=\n\t=?utf-8?q?DsUFa/4ZAoPHrYJEsKUzgL541HHBWoWzjTJb3VfHmmyeV4WNQ5dizxwW?=\n\t=?utf-8?q?iHcFEhWxzZMH1DrwVCV6DKCHDBqYGZuokGrkeNu3YUwsMwScOgScy0KA?=\n\t=?utf-8?q?Zv1XBn3RnhihtXHBzbFZT6LyaS9gP0hbTsS/rHqKnU7iq9e2FVnQoVpw?=\n\t=?utf-8?q?CV6ROD+OYD3IeSASp5YpkQ/enz5GjA7XDC9DyjRcPKKhxeipRjpLmZPz?=\n\t=?utf-8?q?reClRE5trl/AXajBYGGwovgdFQ2oLHXH/Xi9edPpzpWwY5wBJdksTxv/?=\n\t=?utf-8?q?FntgUybc4gydpalXbtgmTyJ7OqV8tVz3pBu/SsKPmkkzjmWXIwN8xXQF?=\n\t=?utf-8?q?rqPu813vRkSz1UknUFnLK0MCgB7Fbgssj5gz4xLkjP04zp1OFoIEYmQl?=\n\t=?utf-8?q?y+XhjX3xGpSWESGujw5rUEh1DtC+cLe9JM8UEVTlCnO8dwaVh+Fi3VGs?=\n\t=?utf-8?q?15nh0tS1FEimfKtml0gu0u9fjt3gT+j3tSk1QmHb0LheTx/5Hg2sa7/t?=\n\t=?utf-8?q?Px4dkk2wK9ntMs55z9oxdld0UkllMHnXaRQWvUS5Di83Id1+DB/vD0jR?=\n\t=?utf-8?q?xS9EXx7h4uDd60ihFLFXOmnl1wGLvZ7wHFdf9ptcXCkrdD+fdEDE9T1D?=\n\t=?utf-8?q?vCsYdhN7WWS993DNdPbvskEJ/oZehobaFuXbfePFSW6pxvxGQ4QbwlNU?=\n\t=?utf-8?q?ZtpeB+1ASQSBehOj3yqUYtkVHqER0QmBYW24i9DkA+Qc?=","X-Forefront-Antispam-Report":"CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n\tIPV:NLI; SFV:NSPM; H:GVXPR04MB9831.eurprd04.prod.outlook.com; PTR:;\n\tCAT:NONE; \n\tSFS:(13230040)(19092799006)(1800799024)(366016)(376014); DIR:OUT;\n\tSFP:1101; ","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"=?utf-8?q?kPWbDKL+PpTuoL5bKdH18avzh?=\n\t=?utf-8?q?IxWGz6mln53HDowo5DT56yyY1vR2xcz5fprtM+QRhPT+eBfWkqJhYzEo?=\n\t=?utf-8?q?H4ER0BSUU/vX5ukrvt6dj6I+FLL8PprlHQBSbbLkSCWLIokZBZPcXBCf?=\n\t=?utf-8?q?69GWei+7v0zNLSO8R+1HbVX+bTJkNQCGC0fpYdYuC4q+og4pWM+rN5M5?=\n\t=?utf-8?q?XxzPn9vkeSJrw190G6P106vq6upIALCyd2jzoDr2hQHiiDvOvtom2/GB?=\n\t=?utf-8?q?Z5ReNKpeL9YMAdpFi4iSiNxbvOv0wNwmu2uvCU/9jai5ieQtLV+zp+tc?=\n\t=?utf-8?q?LMogF7pC5KB0IHIevtd1JFpToBl3zj4bHtRKsuhoUGdig1s4fY4lq1bt?=\n\t=?utf-8?q?gEi1pHar+3ljDQYazvki96L+W57Vl+FpgP0FRPufnfeAJif03cro3dUH?=\n\t=?utf-8?q?1Va4ruwEA6IpSav7cMiESKYvpbjUp0I3wD18yVtIaD2DpoU0FZLvxyCw?=\n\t=?utf-8?q?rN0ojcs+rG4N7C4618j4fWmeYM3YbwOxFkfB456I7ErM7C6FxeI1+uMv?=\n\t=?utf-8?q?5gjdZ0PlFQKwxuyFaxmV3gRYHBfAOUQbY3x8pGyLsQ0O92G1b6NCpskW?=\n\t=?utf-8?q?A+DzYpGKulDifFauUEBnSyuQDnm8F74qEgoST13uUb22oSq/RwZhXlXl?=\n\t=?utf-8?q?2AcP40B8J8xLmL2d7ePzBeUaj5i4y+dxJswJpD6Cy0mJRw0oaQIetfPr?=\n\t=?utf-8?q?IeAI8+RVZ/KT6EXQrGMjbjrcmphUzWumKs3LJSOtFSLmiWF7qOks1QjO?=\n\t=?utf-8?q?7V15vfvlo5QxPyCdR8TwJdmiasK9S9NKcFnqXQVntdempB1ZemBQ+LHd?=\n\t=?utf-8?q?ujgCIJbXNTXVHo5SuPDUtHtMkhDy8CNtLJ7k2rLcKpvcOsQPn8DgZLjw?=\n\t=?utf-8?q?qE+Bhoa385alfKVHgqLAiV9k1ESH5/BNVBkfL2+Xfhzdn6YEHDWD3MUb?=\n\t=?utf-8?q?Jg34uVfZJNDHfCGTt48ULqO9NKpj8EfKkEaiDEGzobMiUAa6Q64XUQKt?=\n\t=?utf-8?q?XtOoNAI/WVacftmeK8rC0NHTIsBQNw8VDJ9WdNCRHrYQRsNEwgxZHqRG?=\n\t=?utf-8?q?pvIYEXkhxAZcdqm5eYk1MtKTrkWlSoFG0jEMgcCJqNMXuEn8DJeWuJ72?=\n\t=?utf-8?q?O+W2dWFFX6Xu7yXAkmwuSM2iRdz76WXmp6TYrXNZm1cWjs2gwGjdnyob?=\n\t=?utf-8?q?eJGGcdmIamThJz5mYEFOfgbMNzIMmhVc6uUQKc2FdKhNvahEcz4BBydj?=\n\t=?utf-8?q?JiANhV9tCFqCO5O5yYueTQRlOn9JPnYfTKAU0jsD9eVnP8cUKHOrqYmc?=\n\t=?utf-8?q?wMOfGtSDTxMGdkUPdr5Z0dvLB3CNERBKZlHa06fYktHUxYEayWZ9jHml?=\n\t=?utf-8?q?f06/KiGZvOhrhFW8TAPiZ5npgvoAtuKWJTQs4yy3i4q/LLPjOyzL7mSi?=\n\t=?utf-8?q?PfBasdOFPvDGrPpOlJIM/acC37nkVnMLhU2w3C7WkjDpQjQD30tPnKnc?=\n\t=?utf-8?q?EbfH7CzVWZFjPKm0JmULd+I76DAJLqpjKjYZT0LftVxIsCb/l1FSSsR2?=\n\t=?utf-8?q?Toana1D60tk7pNhAIbNProHVukrFyzQeqiEjBER+RZqHiGVh9+9m8p6d?=\n\t=?utf-8?q?ZIMmi5UM6R/FcPn2D+fDTN7efX7Q7NyqdbvsfLKzz1wg0z0V0vp6Qoge?=\n\t=?utf-8?q?JYqKLvNAV3zQoAKkkILy6LXPwKV9A=3D=3D?=","X-OriginatorOrg":"nxp.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"652ec656-6859-435f-f3e8-08de1ba78cfc","X-MS-Exchange-CrossTenant-AuthSource":"GVXPR04MB9831.eurprd04.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"04 Nov 2025 13:39:17.4008\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":"31FT6IVO8SQZHEv8fg8hGxT7mpy9S91AJqXokRz35KjYmOGXOGxp/O7UDS+Uij+4Wee1ha2I/IYvY78t4xRoFw==","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"GV2PR04MB11635","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>"}}]