[{"id":37820,"web_url":"https://patchwork.libcamera.org/comment/37820/","msgid":"<176901610369.1693075.6112939431802067334@ping.linuxembedded.co.uk>","date":"2026-01-21T17:21:43","subject":"Re: [PATCH v1 2/3] ipa: rpi: Fix printing of `utils::Duration`","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Barnabás Pőcze (2026-01-15 11:16:29)\n> `utils::Duration` derives from `std::chrono::duration<...>`, but multiplying\n> it yields an `std::chrono::duration<...>`, not `Duration`. chrono duration\n> types only have `operator<<` in C++20 or later, so this usage should not\n> compile. It only did so because the `operator<<` for `Duration` was in\n> the `libcamera` namespace and `Duration` has an implicit constructor from\n> any chrono duration type.\n> \n> This will cease to work when that operator is moved into the `utils` namespace\n> for ADL purposes. So fix it by making the cast to `Duration` explicit.\n> \n> Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n\nThis looks reasonable to me - but it's in ipa/rpi so it needs an ack\nfrom RPi.\n\nBut from me:\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n\n> ---\n>  src/ipa/rpi/common/ipa_base.cpp | 2 +-\n>  1 file changed, 1 insertion(+), 1 deletion(-)\n> \n> diff --git a/src/ipa/rpi/common/ipa_base.cpp b/src/ipa/rpi/common/ipa_base.cpp\n> index 14aba4500..f95a0f838 100644\n> --- a/src/ipa/rpi/common/ipa_base.cpp\n> +++ b/src/ipa/rpi/common/ipa_base.cpp\n> @@ -602,7 +602,7 @@ void IpaBase::setMode(const IPACameraSensorInfo &sensorInfo)\n>                         mode_.minLineLength = adjustedLineLength;\n>                 } else {\n>                         LOG(IPARPI, Error)\n> -                               << \"Sensor minimum line length of \" << pixelTime * mode_.width\n> +                               << \"Sensor minimum line length of \" << Duration(pixelTime * mode_.width)\n>                                 << \" (\" << 1us / pixelTime << \" MPix/s)\"\n>                                 << \" is below the minimum allowable ISP limit of \"\n>                                 << adjustedLineLength\n> -- \n> 2.52.0\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 A7C04C3220\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 21 Jan 2026 17:21:48 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E3FC561FC9;\n\tWed, 21 Jan 2026 18:21:47 +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 6DD4961F9F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 21 Jan 2026 18:21:46 +0100 (CET)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 49BAC741;\n\tWed, 21 Jan 2026 18:21:14 +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=\"KmW51xey\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1769016074;\n\tbh=HoChH/igstQdi13ZD8yNNuBxwhM+JRsQA+BsnIaR2V0=;\n\th=In-Reply-To:References:Subject:From:To:Date:From;\n\tb=KmW51xeyNjaV2E3pR0LbtOZfeutTlfwTK+JL2o0GcjQJuzRPr7rUa3+0iJ9uubFE7\n\tueCMJI1Rr2CNUbKseOjMDPi/WWavuks+ShRe92URBKDjFwO7Y7N3rr+RJLKsGqRu1F\n\tg96i1Nh2+w1MVX+UG2xBPVKWc992FBM4rcqEEkN8=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20260115111630.1892890-2-barnabas.pocze@ideasonboard.com>","References":"<20260115111630.1892890-1-barnabas.pocze@ideasonboard.com>\n\t<20260115111630.1892890-2-barnabas.pocze@ideasonboard.com>","Subject":"Re: [PATCH v1 2/3] ipa: rpi: Fix printing of `utils::Duration`","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","To":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Wed, 21 Jan 2026 17:21:43 +0000","Message-ID":"<176901610369.1693075.6112939431802067334@ping.linuxembedded.co.uk>","User-Agent":"alot/0.9.1","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":37831,"web_url":"https://patchwork.libcamera.org/comment/37831/","msgid":"<20260122003642.GJ21091@killaraus>","date":"2026-01-22T00:36:42","subject":"Re: [PATCH v1 2/3] ipa: rpi: Fix printing of `utils::Duration`","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Barnabás,\n\nThank you for the patch.\n\nOn Thu, Jan 15, 2026 at 12:16:29PM +0100, Barnabás Pőcze wrote:\n> `utils::Duration` derives from `std::chrono::duration<...>`, but multiplying\n> it yields an `std::chrono::duration<...>`, not `Duration`. chrono duration\n> types only have `operator<<` in C++20 or later, so this usage should not\n> compile. It only did so because the `operator<<` for `Duration` was in\n> the `libcamera` namespace and `Duration` has an implicit constructor from\n> any chrono duration type.\n> \n> This will cease to work when that operator is moved into the `utils` namespace\n> for ADL purposes. So fix it by making the cast to `Duration` explicit.\n> \n> Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n> ---\n>  src/ipa/rpi/common/ipa_base.cpp | 2 +-\n>  1 file changed, 1 insertion(+), 1 deletion(-)\n> \n> diff --git a/src/ipa/rpi/common/ipa_base.cpp b/src/ipa/rpi/common/ipa_base.cpp\n> index 14aba4500..f95a0f838 100644\n> --- a/src/ipa/rpi/common/ipa_base.cpp\n> +++ b/src/ipa/rpi/common/ipa_base.cpp\n> @@ -602,7 +602,7 @@ void IpaBase::setMode(const IPACameraSensorInfo &sensorInfo)\n>  \t\t\tmode_.minLineLength = adjustedLineLength;\n>  \t\t} else {\n>  \t\t\tLOG(IPARPI, Error)\n> -\t\t\t\t<< \"Sensor minimum line length of \" << pixelTime * mode_.width\n> +\t\t\t\t<< \"Sensor minimum line length of \" << Duration(pixelTime * mode_.width)\n\n\t\t\t\t<< \"Sensor minimum line length of \"\n\t\t\t\t<< Duration(pixelTime * mode_.width)\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n>  \t\t\t\t<< \" (\" << 1us / pixelTime << \" MPix/s)\"\n>  \t\t\t\t<< \" is below the minimum allowable ISP limit of \"\n>  \t\t\t\t<< adjustedLineLength","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 A81D3C3220\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 22 Jan 2026 00:36:46 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 6183561FBB;\n\tThu, 22 Jan 2026 01:36:46 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 3DBDD61A35\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 22 Jan 2026 01:36:44 +0100 (CET)","from pendragon.ideasonboard.com\n\t(2001-14ba-703d-e500--ff4.rev.dnainternet.fi\n\t[IPv6:2001:14ba:703d:e500::ff4])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id C9892324;\n\tThu, 22 Jan 2026 01:36: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=\"Gx0VPrRw\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1769042172;\n\tbh=t3zizzSDK/b8tHDqNG1DIs++S7M97VAKYViPZoJ2+B0=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=Gx0VPrRwMnG9gPBz7uBLCoCUM6/AzZFRK/MZrgBqer7w9ViLRAnvRUdtSAeRJv2U0\n\tPrxMPmZIK+tgDrDYUy3FLXAY0EVwobq6qndP2viAeC+5tI4VMJQYWgR0NF6IscwW+Y\n\tFxYd78v4iU7n2rOjvbTjWUtf5xDf7C+FnMQ1q1/Y=","Date":"Thu, 22 Jan 2026 02:36:42 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH v1 2/3] ipa: rpi: Fix printing of `utils::Duration`","Message-ID":"<20260122003642.GJ21091@killaraus>","References":"<20260115111630.1892890-1-barnabas.pocze@ideasonboard.com>\n\t<20260115111630.1892890-2-barnabas.pocze@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20260115111630.1892890-2-barnabas.pocze@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>"}},{"id":38004,"web_url":"https://patchwork.libcamera.org/comment/38004/","msgid":"<176961670651.3376561.12936505034155068006@ping.linuxembedded.co.uk>","date":"2026-01-28T16:11:46","subject":"Re: [PATCH v1 2/3] ipa: rpi: Fix printing of `utils::Duration`","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Naush, David,\n\nAny objections here - I'd like to get these ones merged as this series\nfixes ADL/log string handling.\n\n--\nKieran\n\n\nQuoting Barnabás Pőcze (2026-01-15 11:16:29)\n> `utils::Duration` derives from `std::chrono::duration<...>`, but multiplying\n> it yields an `std::chrono::duration<...>`, not `Duration`. chrono duration\n> types only have `operator<<` in C++20 or later, so this usage should not\n> compile. It only did so because the `operator<<` for `Duration` was in\n> the `libcamera` namespace and `Duration` has an implicit constructor from\n> any chrono duration type.\n> \n> This will cease to work when that operator is moved into the `utils` namespace\n> for ADL purposes. So fix it by making the cast to `Duration` explicit.\n> \n> Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n> ---\n>  src/ipa/rpi/common/ipa_base.cpp | 2 +-\n>  1 file changed, 1 insertion(+), 1 deletion(-)\n> \n> diff --git a/src/ipa/rpi/common/ipa_base.cpp b/src/ipa/rpi/common/ipa_base.cpp\n> index 14aba4500..f95a0f838 100644\n> --- a/src/ipa/rpi/common/ipa_base.cpp\n> +++ b/src/ipa/rpi/common/ipa_base.cpp\n> @@ -602,7 +602,7 @@ void IpaBase::setMode(const IPACameraSensorInfo &sensorInfo)\n>                         mode_.minLineLength = adjustedLineLength;\n>                 } else {\n>                         LOG(IPARPI, Error)\n> -                               << \"Sensor minimum line length of \" << pixelTime * mode_.width\n> +                               << \"Sensor minimum line length of \" << Duration(pixelTime * mode_.width)\n>                                 << \" (\" << 1us / pixelTime << \" MPix/s)\"\n>                                 << \" is below the minimum allowable ISP limit of \"\n>                                 << adjustedLineLength\n> -- \n> 2.52.0\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 C8D74C3226\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 28 Jan 2026 16:11:51 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id F07DA61FD8;\n\tWed, 28 Jan 2026 17:11:50 +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 C6D0A61FC9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 28 Jan 2026 17:11:49 +0100 (CET)","from monstersaurus.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 68B7DE70;\n\tWed, 28 Jan 2026 17: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=\"pSHFoNDl\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1769616672;\n\tbh=XZRwKcxmGXbX03RCUYy4L9/yAg6iaAKF3eAzJaT6ceo=;\n\th=In-Reply-To:References:Subject:From:To:Date:From;\n\tb=pSHFoNDlRobm0/mDX9ulycFq+hbj8+RTVbZfmzTvTHFalmjGtQHK6+PqMl7y4dSMA\n\tEsNaQ/MGvT1Q3n+4rxFjtC2wZB8QTY072/vM6XKojuAny7FaRFCF08GJSjeGQwW8ne\n\tKOqSgFnl3ad5gk01oo0seya3u7XV3UtJBh6oe1As=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20260115111630.1892890-2-barnabas.pocze@ideasonboard.com>","References":"<20260115111630.1892890-1-barnabas.pocze@ideasonboard.com>\n\t<20260115111630.1892890-2-barnabas.pocze@ideasonboard.com>","Subject":"Re: [PATCH v1 2/3] ipa: rpi: Fix printing of `utils::Duration`","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","To":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org,\n\tNaushir Patuck <naush@raspberrypi.com>, David Plowman\n\t<david.plowman@raspberrypi.com>, ","Date":"Wed, 28 Jan 2026 16:11:46 +0000","Message-ID":"<176961670651.3376561.12936505034155068006@ping.linuxembedded.co.uk>","User-Agent":"alot/0.9.1","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":38006,"web_url":"https://patchwork.libcamera.org/comment/38006/","msgid":"<CAEmqJPpOMbstdZBedhLK1ttY-JY_YXV-YZeOXB4uJbSk5ygDow@mail.gmail.com>","date":"2026-01-28T16:30:42","subject":"Re: [PATCH v1 2/3] ipa: rpi: Fix printing of `utils::Duration`","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"No objections from me\n\nReviewed-by: Naushir Patuck <naush@raspberrypi.com>\n\n\nOn Wed, 28 Jan 2026, 4:11 pm Kieran Bingham, <\nkieran.bingham@ideasonboard.com> wrote:\n\n> Naush, David,\n>\n> Any objections here - I'd like to get these ones merged as this series\n> fixes ADL/log string handling.\n>\n> --\n> Kieran\n>\n>\n> Quoting Barnabás Pőcze (2026-01-15 11:16:29)\n> > `utils::Duration` derives from `std::chrono::duration<...>`, but\n> multiplying\n> > it yields an `std::chrono::duration<...>`, not `Duration`. chrono\n> duration\n> > types only have `operator<<` in C++20 or later, so this usage should not\n> > compile. It only did so because the `operator<<` for `Duration` was in\n> > the `libcamera` namespace and `Duration` has an implicit constructor from\n> > any chrono duration type.\n> >\n> > This will cease to work when that operator is moved into the `utils`\n> namespace\n> > for ADL purposes. So fix it by making the cast to `Duration` explicit.\n> >\n> > Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n> > ---\n> >  src/ipa/rpi/common/ipa_base.cpp | 2 +-\n> >  1 file changed, 1 insertion(+), 1 deletion(-)\n> >\n> > diff --git a/src/ipa/rpi/common/ipa_base.cpp\n> b/src/ipa/rpi/common/ipa_base.cpp\n> > index 14aba4500..f95a0f838 100644\n> > --- a/src/ipa/rpi/common/ipa_base.cpp\n> > +++ b/src/ipa/rpi/common/ipa_base.cpp\n> > @@ -602,7 +602,7 @@ void IpaBase::setMode(const IPACameraSensorInfo\n> &sensorInfo)\n> >                         mode_.minLineLength = adjustedLineLength;\n> >                 } else {\n> >                         LOG(IPARPI, Error)\n> > -                               << \"Sensor minimum line length of \" <<\n> pixelTime * mode_.width\n> > +                               << \"Sensor minimum line length of \" <<\n> Duration(pixelTime * mode_.width)\n> >                                 << \" (\" << 1us / pixelTime << \" MPix/s)\"\n> >                                 << \" is below the minimum allowable ISP\n> limit of \"\n> >                                 << adjustedLineLength\n> > --\n> > 2.52.0\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 46DA3C3226\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 28 Jan 2026 16:30:56 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 045FB61FD5;\n\tWed, 28 Jan 2026 17:30:56 +0100 (CET)","from mail-vk1-xa32.google.com (mail-vk1-xa32.google.com\n\t[IPv6:2607:f8b0:4864:20::a32])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 8793061FC4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 28 Jan 2026 17:30:54 +0100 (CET)","by mail-vk1-xa32.google.com with SMTP id\n\t71dfb90a1353d-563646b5243so929e0c.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 28 Jan 2026 08:30:54 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=raspberrypi.com header.i=@raspberrypi.com\n\theader.b=\"TePNk1jK\"; dkim-atps=neutral","ARC-Seal":"i=1; a=rsa-sha256; t=1769617853; cv=none;\n\td=google.com; s=arc-20240605;\n\tb=YI+/A3DFe01y6LqOntYMnYG8VAIROXKXop3O1m5Am72utUweO99+IH5Q7luL0JUwyn\n\taf+KprND0US1Cg++2OmoIBaqh+a9yl4c9dsEQUYE9YIl+zQNo1ZoaC+gnGJw4UKRWcyD\n\toAzK26RPXrohBTP8YQBYkvh14hnmk9k/v1OMj3iBeiALEs5GwbC87worDcx1xdediNlp\n\tnp1cDV2CWp2WrxqdYBC13/0DJr34djB8Nvn2OJmMOnsB/lVTx9nvnMuDgdxt/71fcJDu\n\tuw8ypWKyNM7//6bjDrjxxXGNvoyKosIA8+wcxouAVMRDOJRXIgPV9Wa3oyIdyrf7hzqw\n\tI3vQ==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n\ts=arc-20240605; \n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:dkim-signature;\n\tbh=25cF4fRTBQlBTLwsDnBn+6jHhjLoRQpz7NxJIop2nA8=;\n\tfh=541BQ953k3RDamA3AoxHgnA0Fg8wF4qyuckEK8bgpFA=;\n\tb=Cab9IAwFEmqIkq7ZJPnea/SQUjsMOvSe+QQOo9ltZkgM5XRP5hKAm8xgLZ1XdzdFYy\n\tQ7LYCBWg4KsTi99RXwpGVYlGcY32f8SGtuyOzAxPr5tZosOha8ngwooVip6iQm30awVG\n\t2fAT4+WTvOipU+s4RLcxErRaRHDVRlsbXF5tTuy1GEmGlwHRxJX+aLw4DXRq2Kmuyhea\n\t9D+Gkeb2ngfijmt44ThuTpHn3C+VinSQV96LrIGjXbgCXJLn7oVNHQacYfj1pJavZCtm\n\td6moPHgfKhaNCZsjqpo/oeH690z+cRyyLIAysTe2v3tln59EGZQ8LCMbRuZN9crZSJEe\n\tMZrA==; darn=lists.libcamera.org","ARC-Authentication-Results":"i=1; mx.google.com; arc=none","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google; t=1769617853; x=1770222653;\n\tdarn=lists.libcamera.org; \n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:from:to:cc:subject:date:message-id:reply-to;\n\tbh=25cF4fRTBQlBTLwsDnBn+6jHhjLoRQpz7NxJIop2nA8=;\n\tb=TePNk1jK3DnpIKs97y3V0zN61Oo7VJhw/QVLj44DfoqSUwYN0m32SUGWOP9T4le6Cn\n\tboJTlGx28X3uiQRh1b5JL51b9JGZcWPCozr0RsZCTOdMZy6+hlFs6kzX8JT6dWKVE3i/\n\tjIpO7aLjUIK1eELMKEfiEcClO8fTMQppemjJsnxPtrlGBRbm2MCgs+wSEsic/+97w1pi\n\teRX/L/OEhG66aLVpGPJ2RqwO6h+KX+1sn5oIDHK67IWzE4Y8006/RuBdDTwc7SBzG1O+\n\tVH/YfunBWzdQNw9KPeWemf/0Tm4WYvThntbH69OopHMetztExvNcTBM7OPox2aKfi+dj\n\tcmKA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1769617853; x=1770222653;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=25cF4fRTBQlBTLwsDnBn+6jHhjLoRQpz7NxJIop2nA8=;\n\tb=FabkZ0+N46LAcgWV/ZW2YN66qDXV6b58oc3t4s/Mg1E5OyUlRTASzWl8J6BrCiLw4U\n\tqRrTq0pT5ltLJkbA6Uv9ab9aeOocC4tu3ATMBcu+76HnPs4xEHPHEl9wb1xnAPT7zGp4\n\tODAJ0jyflcsbn3CYWavXi5pmyYoj88Bs7Fsm3L0oK5V9qVYKZhRUWEMTV9UaY5rm9t25\n\t5lTU0GM3QpaNBUt9goW4JAuKWF8IicSNOQicIxRMxQ47T2xX2aTyDqjf+QtvmEGVuZN4\n\tdusdGt3/u8jwWXvwN3dhvckJS5RiO1N9lL5j/6mCAyYdDzMH60i7YUn8CnBokjyk/AKM\n\tmfbQ==","X-Forwarded-Encrypted":"i=1;\n\tAJvYcCUVvfWqSxUC8xuPwhfn16KsfdRH2B0gv+kiMDqnbbKDtyWRvIyjSrpCTWWBw+Jp8UX9mhAqPxE0lElBKWVaIzs=@lists.libcamera.org","X-Gm-Message-State":"AOJu0Ywh+l9E/7any/O5u4iAC0RQZScaJlbNQ0qzyEg3zqO83arEBAHk\n\tqMCPOqh6UDXodsz6OIhVfNU6skE+OfKju9vQDpGmpWh+vPXs4DIJT8W9yrTr2vDYFcLXfSGNOLk\n\thpA/a4ZkfAqf6dAgt39uWlKMEKGY3AtY+5wfEGM/Uhw==","X-Gm-Gg":"AZuq6aL6Z5yiXAu022YjRWqDo2ghzpY82Wt76+fwKk7YGW4uBeRntDRNH4BGtCwqYsq\n\tkyb+Xmg5RDpXQIPC1JB0Z+Y88VozyNNKHyM9EFSXA1zllT9fYC8z04AtfCTXf2DbNqR4JyoV6Az\n\tdq/0A8uM5WuQmn/B5mItvWIV69B3fl1P4kwCHWouDgImtXq/lyTBTD651HIJ/omjObtEA1+AHxU\n\tfFZ6syqwjeLqngWZ3HQ8JwBp9ZdfNB1SvJQnO+ERI03Ud2CDKGGyZwGjWU/KY49pxEvjORidQI2\n\t43/Qwyuaf63naNdfnzJ+kLiDpiesxHQnfYoRrGAR7i4OBdNcuajHIHrHPA==","X-Received":"by 2002:a05:6102:5121:b0:5db:2301:a9f8 with SMTP id\n\tada2fe7eead31-5f8cbc0a3a1mr192209137.3.1769617851032; Wed, 28 Jan 2026\n\t08:30:51 -0800 (PST)","MIME-Version":"1.0","References":"<20260115111630.1892890-1-barnabas.pocze@ideasonboard.com>\n\t<20260115111630.1892890-2-barnabas.pocze@ideasonboard.com>\n\t<176961670651.3376561.12936505034155068006@ping.linuxembedded.co.uk>","In-Reply-To":"<176961670651.3376561.12936505034155068006@ping.linuxembedded.co.uk>","From":"Naushir Patuck <naush@raspberrypi.com>","Date":"Wed, 28 Jan 2026 16:30:42 +0000","X-Gm-Features":"AZwV_QhbCpBtK-AhVgCcvhOeFQ90PEktTPrYQBRcbTan7yNRkOvT7AUPa7Ilk_8","Message-ID":"<CAEmqJPpOMbstdZBedhLK1ttY-JY_YXV-YZeOXB4uJbSk5ygDow@mail.gmail.com>","Subject":"Re: [PATCH v1 2/3] ipa: rpi: Fix printing of `utils::Duration`","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>,\n\tlibcamera devel <libcamera-devel@lists.libcamera.org>, David Plowman\n\t<david.plowman@raspberrypi.com>","Content-Type":"multipart/alternative; boundary=\"0000000000006641760649754342\"","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>"}}]