[{"id":17031,"web_url":"https://patchwork.libcamera.org/comment/17031/","msgid":"<YKU3IR+C6adDFkb5@pendragon.ideasonboard.com>","date":"2021-05-19T16:04:49","subject":"Re: [libcamera-devel] [PATCH v2 7/7] libcamera: pipeline: ipu3:\n\tPass request metadata to IPA","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Umang (and Kieran),\n\nThank you for the patch.\n\nOn Wed, May 19, 2021 at 03:49:54PM +0530, Umang Jain wrote:\n> From: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> \n> Pass the request metadata control list to the IPA when setting\n> passing the statistics buffers, or after the raw buffer completion.\n> \n> This allows us to pass in the timestamp and other data from the request\n> which will be used by the IPA.\n\nAs commented on the previous version, I think it would be better to pass\nthe timestamp explicitly.\n\n> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> ---\n>  src/libcamera/pipeline/ipu3/ipu3.cpp | 5 ++++-\n>  1 file changed, 4 insertions(+), 1 deletion(-)\n> \n> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> index 5b15ca90..38f66919 100644\n> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> @@ -1285,6 +1285,7 @@ void IPU3CameraData::cio2BufferReady(FrameBuffer *buffer)\n>  \tev.op = ipa::ipu3::EventFillParams;\n>  \tev.frame = info->id;\n>  \tev.bufferId = info->paramBuffer->cookie();\n> +\tev.controls = request->metadata();\n>  \tipa_->processEvent(ev);\n>  }\n>  \n> @@ -1314,6 +1315,8 @@ void IPU3CameraData::statBufferReady(FrameBuffer *buffer)\n>  \tif (!info)\n>  \t\treturn;\n>  \n> +\tRequest *request = info->request;\n> +\n>  \tif (buffer->metadata().status == FrameMetadata::FrameCancelled) {\n>  \t\tinfo->metadataProcessed = true;\n>  \n> @@ -1321,7 +1324,6 @@ void IPU3CameraData::statBufferReady(FrameBuffer *buffer)\n>  \t\t* tryComplete() will delete info if it completes the IPU3Frame.\n>  \t\t* In that event, we must have obtained the Request before hand.\n>  \t\t*/\n> -\t\tRequest *request = info->request;\n>  \n>  \t\tif (frameInfos_.tryComplete(info))\n>  \t\t\tpipe_->completeRequest(request);\n> @@ -1333,6 +1335,7 @@ void IPU3CameraData::statBufferReady(FrameBuffer *buffer)\n>  \tev.op = ipa::ipu3::EventStatReady;\n>  \tev.frame = info->id;\n>  \tev.bufferId = info->statBuffer->cookie();\n> +\tev.controls = request->metadata();\n>  \tipa_->processEvent(ev);\n>  }\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 61F6FC31FB\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 19 May 2021 16:04:53 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D29246891A;\n\tWed, 19 May 2021 18:04:52 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 5966368915\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 19 May 2021 18:04:51 +0200 (CEST)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id D586DBAE;\n\tWed, 19 May 2021 18:04:50 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"lo9XMwps\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1621440291;\n\tbh=PH+KgUt3tCRY54FuZtAXRt1wnTmAqtqvknXD8LONvTw=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=lo9XMwpsoPHRL3UB4MWIxsJST2O/jw+KrZaUNISbRM9mTq98Ss7WxW6cQ5icowk1T\n\tCLMyMnQeNyG9RqiSzpEPJyVN9pzpam/WIkJz3P3wSo2cIpyl9VO7nFu6GTKOJCRGWP\n\tyD3JRTyT8S0d7aGM06AA96fzq49w/3eRRxhomTao=","Date":"Wed, 19 May 2021 19:04:49 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Umang Jain <umang.jain@ideasonboard.com>","Message-ID":"<YKU3IR+C6adDFkb5@pendragon.ideasonboard.com>","References":"<20210519101954.77711-1-umang.jain@ideasonboard.com>\n\t<20210519101954.77711-8-umang.jain@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20210519101954.77711-8-umang.jain@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v2 7/7] libcamera: pipeline: ipu3:\n\tPass request metadata to IPA","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>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":17069,"web_url":"https://patchwork.libcamera.org/comment/17069/","msgid":"<ec4fb775-57bf-43b5-0001-b9df2251e522@ideasonboard.com>","date":"2021-05-21T09:17:05","subject":"Re: [libcamera-devel] [PATCH v2 7/7] libcamera: pipeline: ipu3:\n\tPass request metadata to IPA","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Me and Others,\n\nOn 19/05/2021 17:04, Laurent Pinchart wrote:\n> Hi Umang (and Kieran),\n> \n> Thank you for the patch.\n> \n> On Wed, May 19, 2021 at 03:49:54PM +0530, Umang Jain wrote:\n>> From: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>>\n>> Pass the request metadata control list to the IPA when setting\n>> passing the statistics buffers, or after the raw buffer completion.\n>>\n>> This allows us to pass in the timestamp and other data from the request\n>> which will be used by the IPA.\n> \n> As commented on the previous version, I think it would be better to pass\n> the timestamp explicitly.\n\nYes, that could be ok.\n\nIf there are specific things that always need to be passed, this should\nbe added as an IPA interface sturcture like is done for the\nIPAConfigInfo perhaps so it's clear and common.\n\nI don't mind if this patch is just dropped from this series to get the\nrest moving.\n\nFrom what I can tell, only 1/7 needs a small change or a check to\nunblock the rest.\n\nAnd even that could also be done on top perhaps too.\n\n--\nKieran\n\n\n> \n>> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>> ---\n>>  src/libcamera/pipeline/ipu3/ipu3.cpp | 5 ++++-\n>>  1 file changed, 4 insertions(+), 1 deletion(-)\n>>\n>> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\n>> index 5b15ca90..38f66919 100644\n>> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n>> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n>> @@ -1285,6 +1285,7 @@ void IPU3CameraData::cio2BufferReady(FrameBuffer *buffer)\n>>  \tev.op = ipa::ipu3::EventFillParams;\n>>  \tev.frame = info->id;\n>>  \tev.bufferId = info->paramBuffer->cookie();\n>> +\tev.controls = request->metadata();\n>>  \tipa_->processEvent(ev);\n>>  }\n>>  \n>> @@ -1314,6 +1315,8 @@ void IPU3CameraData::statBufferReady(FrameBuffer *buffer)\n>>  \tif (!info)\n>>  \t\treturn;\n>>  \n>> +\tRequest *request = info->request;\n>> +\n>>  \tif (buffer->metadata().status == FrameMetadata::FrameCancelled) {\n>>  \t\tinfo->metadataProcessed = true;\n>>  \n>> @@ -1321,7 +1324,6 @@ void IPU3CameraData::statBufferReady(FrameBuffer *buffer)\n>>  \t\t* tryComplete() will delete info if it completes the IPU3Frame.\n>>  \t\t* In that event, we must have obtained the Request before hand.\n>>  \t\t*/\n>> -\t\tRequest *request = info->request;\n>>  \n>>  \t\tif (frameInfos_.tryComplete(info))\n>>  \t\t\tpipe_->completeRequest(request);\n>> @@ -1333,6 +1335,7 @@ void IPU3CameraData::statBufferReady(FrameBuffer *buffer)\n>>  \tev.op = ipa::ipu3::EventStatReady;\n>>  \tev.frame = info->id;\n>>  \tev.bufferId = info->statBuffer->cookie();\n>> +\tev.controls = request->metadata();\n>>  \tipa_->processEvent(ev);\n>>  }\n>>  \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 A1FE6C31FB\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 21 May 2021 09:17:10 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 617436891B;\n\tFri, 21 May 2021 11:17:10 +0200 (CEST)","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 8617F68918\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 21 May 2021 11:17:09 +0200 (CEST)","from [192.168.0.20]\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 7AF278D8;\n\tFri, 21 May 2021 11:17:08 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"uj9ciAyA\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1621588628;\n\tbh=e+Eu0OWhcQdRiTKAV08vT0EkkuoLWbwIAndZDASQrDI=;\n\th=Reply-To:Subject:To:Cc:References:From:Date:In-Reply-To:From;\n\tb=uj9ciAyAyQ6QsRtwMAEDiFJ9ZAgZ4VWgYRi4Yz1nQSgiYSq0ey/5blGwTFfT9QnWy\n\tEafb1fOKIDbTVRt4GqIP0QGHMMFLBhdVL9OlVZExAUL0OO+WZiZcFFoL3d6R07lcar\n\td/2G6bhBd5iLaWyJ1aRnFB/hyEu9GxDq6VE/2IR4=","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tUmang Jain <umang.jain@ideasonboard.com>","References":"<20210519101954.77711-1-umang.jain@ideasonboard.com>\n\t<20210519101954.77711-8-umang.jain@ideasonboard.com>\n\t<YKU3IR+C6adDFkb5@pendragon.ideasonboard.com>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Organization":"Ideas on Board","Message-ID":"<ec4fb775-57bf-43b5-0001-b9df2251e522@ideasonboard.com>","Date":"Fri, 21 May 2021 10:17:05 +0100","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101\n\tThunderbird/78.8.1","MIME-Version":"1.0","In-Reply-To":"<YKU3IR+C6adDFkb5@pendragon.ideasonboard.com>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-GB","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [PATCH v2 7/7] libcamera: pipeline: ipu3:\n\tPass request metadata to IPA","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>","Reply-To":"kieran.bingham@ideasonboard.com","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":17101,"web_url":"https://patchwork.libcamera.org/comment/17101/","msgid":"<3ba38520-d4e7-2ce6-dec8-49c5d77600f6@ideasonboard.com>","date":"2021-05-21T12:50:48","subject":"Re: [libcamera-devel] [PATCH v2 7/7] libcamera: pipeline: ipu3:\n\tPass request metadata to IPA","submitter":{"id":86,"url":"https://patchwork.libcamera.org/api/people/86/","name":"Umang Jain","email":"umang.jain@ideasonboard.com"},"content":"Hi Kieran\n\nOn 5/21/21 2:47 PM, Kieran Bingham wrote:\n> Hi Me and Others,\n>\n> On 19/05/2021 17:04, Laurent Pinchart wrote:\n>> Hi Umang (and Kieran),\n>>\n>> Thank you for the patch.\n>>\n>> On Wed, May 19, 2021 at 03:49:54PM +0530, Umang Jain wrote:\n>>> From: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>>>\n>>> Pass the request metadata control list to the IPA when setting\n>>> passing the statistics buffers, or after the raw buffer completion.\n>>>\n>>> This allows us to pass in the timestamp and other data from the request\n>>> which will be used by the IPA.\n>> As commented on the previous version, I think it would be better to pass\n>> the timestamp explicitly.\n> Yes, that could be ok.\n>\n> If there are specific things that always need to be passed, this should\n> be added as an IPA interface sturcture like is done for the\n> IPAConfigInfo perhaps so it's clear and common.\n>\n> I don't mind if this patch is just dropped from this series to get the\n> rest moving.\n>\n>  From what I can tell, only 1/7 needs a small change or a check to\n> unblock the rest.\n>\n> And even that could also be done on top perhaps too.\nAgreed. Because would also need to work out ipu3-ipa changes along with \nthis. It would be better if we address it as a separate task \naltogether.  I am dropping this patch in next iteration\n>\n> --\n> Kieran\n>\n>\n>>> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>>> ---\n>>>   src/libcamera/pipeline/ipu3/ipu3.cpp | 5 ++++-\n>>>   1 file changed, 4 insertions(+), 1 deletion(-)\n>>>\n>>> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\n>>> index 5b15ca90..38f66919 100644\n>>> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n>>> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n>>> @@ -1285,6 +1285,7 @@ void IPU3CameraData::cio2BufferReady(FrameBuffer *buffer)\n>>>   \tev.op = ipa::ipu3::EventFillParams;\n>>>   \tev.frame = info->id;\n>>>   \tev.bufferId = info->paramBuffer->cookie();\n>>> +\tev.controls = request->metadata();\n>>>   \tipa_->processEvent(ev);\n>>>   }\n>>>   \n>>> @@ -1314,6 +1315,8 @@ void IPU3CameraData::statBufferReady(FrameBuffer *buffer)\n>>>   \tif (!info)\n>>>   \t\treturn;\n>>>   \n>>> +\tRequest *request = info->request;\n>>> +\n>>>   \tif (buffer->metadata().status == FrameMetadata::FrameCancelled) {\n>>>   \t\tinfo->metadataProcessed = true;\n>>>   \n>>> @@ -1321,7 +1324,6 @@ void IPU3CameraData::statBufferReady(FrameBuffer *buffer)\n>>>   \t\t* tryComplete() will delete info if it completes the IPU3Frame.\n>>>   \t\t* In that event, we must have obtained the Request before hand.\n>>>   \t\t*/\n>>> -\t\tRequest *request = info->request;\n>>>   \n>>>   \t\tif (frameInfos_.tryComplete(info))\n>>>   \t\t\tpipe_->completeRequest(request);\n>>> @@ -1333,6 +1335,7 @@ void IPU3CameraData::statBufferReady(FrameBuffer *buffer)\n>>>   \tev.op = ipa::ipu3::EventStatReady;\n>>>   \tev.frame = info->id;\n>>>   \tev.bufferId = info->statBuffer->cookie();\n>>> +\tev.controls = request->metadata();\n>>>   \tipa_->processEvent(ev);\n>>>   }\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 D053FC3200\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 21 May 2021 12:50:56 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 8E64668911;\n\tFri, 21 May 2021 14:50:56 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 2EDDF68911\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 21 May 2021 14:50:55 +0200 (CEST)","from localhost.localdomain (unknown [103.251.226.162])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id CBB398D8;\n\tFri, 21 May 2021 14:50:53 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"RzBQzYbt\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1621601455;\n\tbh=7Nk58dibZFZ1k2ZF9U8ORtTLtQ1j4TEXlPR0JzQg7tk=;\n\th=Subject:To:Cc:References:From:Date:In-Reply-To:From;\n\tb=RzBQzYbtAYz/spyiiUGCa8j/FN4HBkWyxN+/HxPyV8TdYyyy54bD5s6De+eccgHGY\n\tDvt485TIGXc7zie40GBSL2v14Lo0pQHrGSLF443dhvuWfT3PZxYXz23roMOMDdpzfL\n\tDtwKZs+lJE5K6L3tr/m3fzcZ95XLZkwVXuCOAdhc=","To":"kieran.bingham@ideasonboard.com,\n\tLaurent Pinchart <laurent.pinchart@ideasonboard.com>","References":"<20210519101954.77711-1-umang.jain@ideasonboard.com>\n\t<20210519101954.77711-8-umang.jain@ideasonboard.com>\n\t<YKU3IR+C6adDFkb5@pendragon.ideasonboard.com>\n\t<ec4fb775-57bf-43b5-0001-b9df2251e522@ideasonboard.com>","From":"Umang Jain <umang.jain@ideasonboard.com>","Message-ID":"<3ba38520-d4e7-2ce6-dec8-49c5d77600f6@ideasonboard.com>","Date":"Fri, 21 May 2021 18:20:48 +0530","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101\n\tThunderbird/68.11.0","MIME-Version":"1.0","In-Reply-To":"<ec4fb775-57bf-43b5-0001-b9df2251e522@ideasonboard.com>","Content-Type":"text/plain; charset=utf-8; format=flowed","Content-Transfer-Encoding":"8bit","Content-Language":"en-US","Subject":"Re: [libcamera-devel] [PATCH v2 7/7] libcamera: pipeline: ipu3:\n\tPass request metadata to IPA","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>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]