[{"id":38775,"web_url":"https://patchwork.libcamera.org/comment/38775/","msgid":"<8827869e-ee42-4c10-ab06-ca1b6c1151fd@oss.qualcomm.com>","date":"2026-05-07T13:16:30","subject":"Re: [PATCH v5 3/3] ipa: libipa: camera_sensor_helper: Add OV2740\n\tblack level","submitter":{"id":242,"url":"https://patchwork.libcamera.org/api/people/242/","name":"Hans de Goede","email":"johannes.goede@oss.qualcomm.com"},"content":"Hi,\n\nOn 6-May-26 23:46, Javier Tia wrote:\n> Set blackLevel_ = 4096 (0x40 at 10-bit) in CameraSensorHelperOv2740.\n> The OV2740 kernel driver programs BLC target register 0x4003 with 0x40\n> for the 180 MHz link frequency mode. This matches the same pattern\n> used by OV5675 and other OmniVision sensors with a 10-bit black level\n> of 64.\n> \n> Without this, the Simple pipeline falls back to auto-guessing the\n> black level, which happens to arrive at the same value but isn't\n> documented. More importantly, the CameraSensorHelper is the canonical\n> location for sensor calibration data and is used across all pipeline\n> handlers, not just Simple.\n> \n> Suggested-by: Robert Mader <robert.mader@collabora.com>\n> Signed-off-by: Javier Tia <floss@jetm.me>\n> Reviewed-by: Milan Zamazal <mzamazal@redhat.com>\n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\nThanks, patch looks good to me:\n\nReviewed-by: Hans de Goede <johannes.goede@oss.qualcomm.com>\n\nRegards,\n\nHans\n\n\n\n> ---\n>  src/ipa/libipa/camera_sensor_helper.cpp | 2 ++\n>  1 file changed, 2 insertions(+)\n> \n> diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp\n> index e3e3e535..3028197e 100644\n> --- a/src/ipa/libipa/camera_sensor_helper.cpp\n> +++ b/src/ipa/libipa/camera_sensor_helper.cpp\n> @@ -672,6 +672,8 @@ class CameraSensorHelperOv2740 : public CameraSensorHelper\n>  public:\n>  \tCameraSensorHelperOv2740()\n>  \t{\n> +\t\t/* From Linux kernel driver: 0x40 at 10bits. */\n> +\t\tblackLevel_ = 4096;\n>  \t\tgain_ = AnalogueGainLinear{ 1, 0, 0, 128 };\n>  \t}\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 18385BDCB5\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  7 May 2026 13:16:40 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id ABDBA63024;\n\tThu,  7 May 2026 15:16:39 +0200 (CEST)","from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com\n\t[205.220.168.131])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id BF1D062FEC\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  7 May 2026 15:16:37 +0200 (CEST)","from pps.filterd (m0279867.ppops.net [127.0.0.1])\n\tby mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n\t647BTIX4682791 for <libcamera-devel@lists.libcamera.org>;\n\tThu, 7 May 2026 13:16:36 GMT","from mail-oi1-f198.google.com (mail-oi1-f198.google.com\n\t[209.85.167.198])\n\tby mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e0mhasphx-1\n\t(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 07 May 2026 13:16:36 +0000 (GMT)","by mail-oi1-f198.google.com with SMTP id\n\t5614622812f47-471618e2082so500334b6e.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 07 May 2026 06:16:36 -0700 (PDT)","from ?IPV6:2001:1c00:c32:7800:5bfa:a036:83f0:f9ec?\n\t(2001-1c00-0c32-7800-5bfa-a036-83f0-f9ec.cable.dynamic.v6.ziggo.nl.\n\t[2001:1c00:c32:7800:5bfa:a036:83f0:f9ec])\n\tby smtp.gmail.com with ESMTPSA id\n\t4fb4d7f45d1cf-67cd90ef9c7sm2144301a12.10.2026.05.07.06.16.31\n\t(version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n\tThu, 07 May 2026 06:16:32 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=qualcomm.com header.i=@qualcomm.com\n\theader.b=\"ArdSLSmJ\"; dkim=pass (2048-bit key;\n\tunprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n\theader.b=\"gMvx0/Bv\"; dkim-atps=neutral","DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=\n\tcc:content-transfer-encoding:content-type:date:from:in-reply-to\n\t:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=\n\tC0kkH24N4+Lr8iWO42SyUa+sezg+W7SJeIrVxOHKBR8=; b=ArdSLSmJreAMTh5C\n\tXvuuoHW9Le0ksgQV+u9VYADX87cyORaKLNBxv6myfdpeRvVjyqCao2vzV2WX5L44\n\tUT6/DY2GCJ5H8wGYdS/FWK9vgtDMDHIuSz3/7FfUmULq1R989CA3+Oz93dR50H0E\n\tlTN+58APhsnXJsoHmqxIY0/nkxBTJEfnVTGmLDi1KrUh2cUYrP73o7ASQU88/pdC\n\tDR/5Vo4XPVqxnbpdb7rbQw3h+aAIV1JC913BCP+fEJwSAhr9e4LihXPvInWGM935\n\tB+QFg2jbUOMiUCRfgaz0Jf+XfgPEoS71v4y02XeBW4eC/+WaVSBJPLNn3oe03/jD\n\tuDNO1Q==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=oss.qualcomm.com; s=google; t=1778159795; x=1778764595;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:in-reply-to:content-language:references\n\t:cc:to:subject:from:user-agent:mime-version:date:message-id:from:to\n\t:cc:subject:date:message-id:reply-to;\n\tbh=C0kkH24N4+Lr8iWO42SyUa+sezg+W7SJeIrVxOHKBR8=;\n\tb=gMvx0/Bvdn7DVmj8z6M78nNfnSeIIgvCHasOZbPSG1CQSZ8lVlyiYSHZ2B6qya/q26\n\tcX5ipV6Nu6ofKSPtDyyh7EGNnvZ2uVnk7I+y23xAUbPplUScqDrHjW+OfxUc1WyQF1xw\n\tAnEWRB7njqVPl1pMEstz4NloznMjOvS8nvv51ACaJb+luKjhuWfM8sq5E4xQP856GIEx\n\t9PQdqEFfTHRWbI5OqVkzxBE6SFHPvvsPhNA03wRaeCkAqspVo4lJ+UOFCh3oW2HLKJwS\n\tvAxzCPAA259I7EXgEyQvnxdOtv520+FywGrkb5wN51v69LFfC1ik8vZuzBz/0ddIIvRI\n\tyO8Q=="],"X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20251104; t=1778159795; x=1778764595;\n\th=content-transfer-encoding:in-reply-to:content-language:references\n\t:cc:to:subject:from:user-agent:mime-version:date:message-id:x-gm-gg\n\t:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;\n\tbh=C0kkH24N4+Lr8iWO42SyUa+sezg+W7SJeIrVxOHKBR8=;\n\tb=jX4FnpwOM6hNi4zodE8Dz1u8kYotj027Tgjz7LXJZS6qOJ1m0ixpRTbbp5iKhFVHfd\n\tGBlKLZxeZzwjZxeLYUboQ86aKSt2LN5kCbLTHuzFqHeKTScMiP9l8iiZOHquJajviihA\n\t0I5ceB0PP2MwREgIN6BygN9wf6HmcBUSMNryDp/giX14BjI1spe+JxIKpvE59/+vAbo8\n\tsz/F2W4fyPRpTscedjx2UgaHf52znWLLcTgROZTqgFMetsnMrk5yRoBwig4at8mUejGs\n\tTlvuq64F1lFnD8EMidCWNd4VpQmrq9yVdsceniy+g55pTwDR3AI8oi6dsTejaxbnpKYV\n\tpuYw==","X-Forwarded-Encrypted":"i=1;\n\tAFNElJ+HRFXfOvBxfYrGmrF6HZlTjEyIT/tS/Mb960tIyXW7+1+zTSGIad2dlC3Qi0XAxfJpCWRr0AlVw+uE7mrPVBo=@lists.libcamera.org","X-Gm-Message-State":"AOJu0YwxEQgdzrC4sBmC12A+ozLkK5gR/D9AtF9eyQZpMhDOBV9u+8W/\n\tRN01bahztXv9WgURnBxExv2DHM281qxRXirlD22aEfES7LKLCrAgToaxXf4PeDk+1drgdPZx577\n\tYWwXj4gHBKgo3cYIepoS9SsuFj2soGn9j8BipGVT4YkwdNtKNuq1IH2Gn3CrvzTN6U9psf8L3gZ\n\tmb","X-Gm-Gg":"AeBDiesnB8ZmwkytTqTAPL1kXQBNNbfH4JeXpEw33+GqHHbsYRG2sn6UU5Szuq6sd4x\n\tAjp3/6738Ejd7IId9AvHc/fxtW1GRB1sxVaBzo8wVKZBOfEvIelxLHn2zknff8olzucsP/5dxX8\n\tYjacKUVFSJzjUOzjl+fBOJl1WZXH2flDhHn3tKo3T8I5Pp7ZcEXFT6ErcNU5cD4glqmvcuNdmWK\n\t0I93UjLN7oiL2oGtPNwiw69dXoG5nFLp/WZjkENTUmd+/VHDTC1/emyo0YC+IM1vsrvxCHuyDhN\n\tRbE4KyaZ6JVS2oQlHRG1Fzznwf35bRDZTXiqPF8ZWXIUese5Jz/5JGS3vaZdI0xreaM+egwAJPf\n\t0NaTCAoml7VDOsk2AEd7/nqxtWxW8DWfiXDcswRJXwuNs75w+z1GWrMw7mH2Sqt2XU8wpy/P7/3\n\tuCvb6Mruu2Yase5MxKTh5KnNlywNK6h2z0kcpWug2bUJKHsa6h+ULGdTQ7B6DrheQ5OOBz843jv\n\tbSw+o3E7SQEzAbMkCxchXopGYU=","X-Received":["by 2002:a05:6808:1984:b0:47b:e097:b8d with SMTP id\n\t5614622812f47-4804254fe56mr4292616b6e.42.1778159795211; \n\tThu, 07 May 2026 06:16:35 -0700 (PDT)","by 2002:a05:6808:1984:b0:47b:e097:b8d with SMTP id\n\t5614622812f47-4804254fe56mr4292560b6e.42.1778159794721; \n\tThu, 07 May 2026 06:16:34 -0700 (PDT)"],"Message-ID":"<8827869e-ee42-4c10-ab06-ca1b6c1151fd@oss.qualcomm.com>","Date":"Thu, 7 May 2026 15:16:30 +0200","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","From":"johannes.goede@oss.qualcomm.com","Subject":"Re: [PATCH v5 3/3] ipa: libipa: camera_sensor_helper: Add OV2740\n\tblack level","To":"Javier Tia <floss@jetm.me>, libcamera-devel@lists.libcamera.org","Cc":"mzamazal@redhat.com, kieran.bingham@ideasonboard.com,\n\trobert.mader@collabora.com","References":"<177810597783.688418.1631246733707368646@jetm.me>\n\t<20260506221945.ACDC41EA006B@mailuser.phl.internal>","Content-Language":"en-US, nl","In-Reply-To":"<20260506221945.ACDC41EA006B@mailuser.phl.internal>","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"7bit","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwNTA3MDEzMiBTYWx0ZWRfX/aevJqTKBCfA\n\tdIYDa0HBU6aNdYGGaTAg4kooGQzBp0h/GUPX4tk9lGVnSMSWbSYBJvNrykueBbM9AldQAB/N7w1\n\tSL5mhf5+ztgLCQj14BoNoJLM5OJ6wZwiPAWH/vZSVZa5e5+XQUgpOWXxnURoWyAGRFmLrOCDRQK\n\tFWU7xfdYH4hMffE2p6oGdCFjR53Io2HvFKCP/oqF82Y7u98Jnf32WZHSl9mClS4Bq4BOTKtIkLQ\n\tLE28qu2z6dcu1o8l0uMinAFxSWrG97gny3zpZFk0R7KHznAC91+9tc4otGfpV+xwygaUDN8pHeC\n\t0vDBCn5X4hV0lszycxRsGyz4BVh3Dkg/VkBv8kwm4JUDEY4Zxv/JqA9mUHlQLotsN1+g+d2mP0T\n\t4bnWsI/XV2Dy1rjo2kg+SegP5wOshXNp4pow3mzLC8RX/ypAvmeemavpqU0b2G/zcv93BlJvCXT\n\tzOGVIImzHQF/8+ixl4Q==","X-Proofpoint-ORIG-GUID":"bgpJUP9elz9PaNQftoRnH2wVPVPNxg0d","X-Proofpoint-GUID":"bgpJUP9elz9PaNQftoRnH2wVPVPNxg0d","X-Authority-Analysis":"v=2.4 cv=ReWgzVtv c=1 sm=1 tr=0 ts=69fc90b4 cx=c_pps\n\ta=4ztaESFFfuz8Af0l9swBwA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10\n\ta=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22\n\ta=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=QX4gbG5DAAAA:8\n\ta=20KFwNOVAAAA:8 a=P1BnusSwAAAA:8 a=EUspDBNiAAAA:8\n\ta=cFICs7PjzX8PR_XZwqEA:9\n\ta=QEXdDO2ut3YA:10 a=TPnrazJqx2CeVZ-ItzZ-:22 a=AbAUZ8qAyYyZVLSsDulk:22\n\ta=D0XLA9XvdZm18NrgonBM:22","X-Proofpoint-Virus-Version":"vendor=baseguard\n\tengine=ICAP:2.0.293, Aquarius:18.0.1143, Hydra:6.1.51,\n\tFMLib:17.12.100.49\n\tdefinitions=2026-05-07_01,2026-05-06_01,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n\tclxscore=1015 priorityscore=1501 impostorscore=0 lowpriorityscore=0\n\tspamscore=0 suspectscore=0 adultscore=0 phishscore=0 malwarescore=0\n\tbulkscore=0 classifier=typeunknown authscore=0 authtc= authcc=\n\troute=outbound\n\tadjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000\n\tdefinitions=main-2605070132","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":38782,"web_url":"https://patchwork.libcamera.org/comment/38782/","msgid":"<20260507142651.GN1547435@killaraus.ideasonboard.com>","date":"2026-05-07T14:26:51","subject":"Re: [PATCH v5 3/3] ipa: libipa: camera_sensor_helper: Add OV2740\n\tblack level","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Javier,\n\nThank you for the patch.\n\nOn Wed, May 06, 2026 at 03:46:42PM -0600, Javier Tia wrote:\n> Set blackLevel_ = 4096 (0x40 at 10-bit) in CameraSensorHelperOv2740.\n> The OV2740 kernel driver programs BLC target register 0x4003 with 0x40\n> for the 180 MHz link frequency mode. This matches the same pattern\n> used by OV5675 and other OmniVision sensors with a 10-bit black level\n> of 64.\n> \n> Without this, the Simple pipeline falls back to auto-guessing the\n> black level, which happens to arrive at the same value but isn't\n> documented. More importantly, the CameraSensorHelper is the canonical\n> location for sensor calibration data and is used across all pipeline\n> handlers, not just Simple.\n> \n> Suggested-by: Robert Mader <robert.mader@collabora.com>\n> Signed-off-by: Javier Tia <floss@jetm.me>\n> Reviewed-by: Milan Zamazal <mzamazal@redhat.com>\n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n> ---\n>  src/ipa/libipa/camera_sensor_helper.cpp | 2 ++\n>  1 file changed, 2 insertions(+)\n> \n> diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp\n> index e3e3e535..3028197e 100644\n> --- a/src/ipa/libipa/camera_sensor_helper.cpp\n> +++ b/src/ipa/libipa/camera_sensor_helper.cpp\n> @@ -672,6 +672,8 @@ class CameraSensorHelperOv2740 : public CameraSensorHelper\n>  public:\n>  \tCameraSensorHelperOv2740()\n>  \t{\n> +\t\t/* From Linux kernel driver: 0x40 at 10bits. */\n> +\t\tblackLevel_ = 4096;\n>  \t\tgain_ = AnalogueGainLinear{ 1, 0, 0, 128 };\n>  \t}\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 259AABE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  7 May 2026 14:26:55 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id BED726301E;\n\tThu,  7 May 2026 16:26:54 +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 3391162FEC\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  7 May 2026 16:26:53 +0200 (CEST)","from killaraus.ideasonboard.com\n\t(2001-14ba-70f3-e800--a06.rev.dnainternet.fi\n\t[IPv6:2001:14ba:70f3:e800::a06])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id CE302664;\n\tThu,  7 May 2026 16:26:48 +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=\"h1rtmVFR\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1778164009;\n\tbh=MZ0clNKuJJfcLJI6tJQbfETFPJ5Md83UPUsVV7xtip8=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=h1rtmVFRrq52X5KzUEbpQHaevxdbQaU7WM2elAffzrBrFDMC8Wc4tD0dfsQHaXsBK\n\tnmyV1HPvwOAlGUWyktGoeDYxtSH4NEE5O49/2Fshc69ma+7BLR4EtUO5bITLf+BJ+1\n\t+B7jJlCwwm+v91I6Ee1z9GkrShQSItuu1nd0IPHs=","Date":"Thu, 7 May 2026 17:26:51 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Javier Tia <floss@jetm.me>","Cc":"libcamera-devel@lists.libcamera.org, mzamazal@redhat.com,\n\tkieran.bingham@ideasonboard.com, robert.mader@collabora.com","Subject":"Re: [PATCH v5 3/3] ipa: libipa: camera_sensor_helper: Add OV2740\n\tblack level","Message-ID":"<20260507142651.GN1547435@killaraus.ideasonboard.com>","References":"<177810597783.688418.1631246733707368646@jetm.me>\n\t<20260506221945.ACDC41EA006B@mailuser.phl.internal>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20260506221945.ACDC41EA006B@mailuser.phl.internal>","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>"}}]