[{"id":16740,"web_url":"https://patchwork.libcamera.org/comment/16740/","msgid":"<YI/W1KEP232DsUA8@bismarck.dyn.berto.se>","date":"2021-05-03T10:56:20","subject":"Re: [libcamera-devel] [PATCH v2 2/7] libcamera: ipu3: imgu: Filter\n\tBDS by height","submitter":{"id":5,"url":"https://patchwork.libcamera.org/api/people/5/","name":"Niklas Söderlund","email":"niklas.soderlund@ragnatech.se"},"content":"Hi Jacopo,\n\nThanks for your patch.\n\nOn 2021-05-03 11:27:00 +0200, Jacopo Mondi wrote:\n> Apply to calculateBDS() function the content of commit 243d134 (\"Fix\n> some bug for some resolutions\") from\n> https://github.com/intel/intel-ipu3-pipecfg.git.\n> \n> The calculated BDS sizes are filtered by height and not only by width\n> anymore.\n> \n> Tested-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>\n> Reviewed-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>\n> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n\nAcked-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n\n> ---\n>  src/libcamera/pipeline/ipu3/imgu.cpp | 20 +++++++++++++++-----\n>  1 file changed, 15 insertions(+), 5 deletions(-)\n> \n> diff --git a/src/libcamera/pipeline/ipu3/imgu.cpp b/src/libcamera/pipeline/ipu3/imgu.cpp\n> index 8373dc165a61..36fee31c1962 100644\n> --- a/src/libcamera/pipeline/ipu3/imgu.cpp\n> +++ b/src/libcamera/pipeline/ipu3/imgu.cpp\n> @@ -33,6 +33,7 @@ namespace {\n>   * at revision: 61e83f2f7606 (\"Add more information into README\")\n>   */\n>  \n> +static constexpr unsigned int FILTER_W = 4;\n>  static constexpr unsigned int FILTER_H = 4;\n>  \n>  static constexpr unsigned int IF_ALIGN_W = 2;\n> @@ -194,15 +195,20 @@ void calculateBDSHeight(ImgUDevice::Pipe *pipe, const Size &iif, const Size &gdc\n>  \n>  void calculateBDS(ImgUDevice::Pipe *pipe, const Size &iif, const Size &gdc, float bdsSF)\n>  {\n> -\tunsigned int minBDSWidth = gdc.width + FILTER_H * 2;\n> +\tunsigned int minBDSWidth = gdc.width + FILTER_W * 2;\n> +\tunsigned int minBDSHeight = gdc.height + FILTER_H * 2;\n>  \n>  \tfloat sf = bdsSF;\n>  \twhile (sf <= BDS_SF_MAX && sf >= BDS_SF_MIN) {\n>  \t\tfloat bdsWidth = static_cast<float>(iif.width) / sf;\n> +\t\tfloat bdsHeight = static_cast<float>(iif.height) / sf;\n>  \n> -\t\tif (std::fmod(bdsWidth, 1.0) == 0) {\n> +\t\tif (std::fmod(bdsWidth, 1.0) == 0 &&\n> +\t\t    std::fmod(bdsHeight, 1.0) == 0) {\n>  \t\t\tunsigned int bdsIntWidth = static_cast<unsigned int>(bdsWidth);\n> -\t\t\tif (!(bdsIntWidth % BDS_ALIGN_W) && bdsWidth >= minBDSWidth)\n> +\t\t\tunsigned int bdsIntHeight = static_cast<unsigned int>(bdsHeight);\n> +\t\t\tif (!(bdsIntWidth % BDS_ALIGN_W) && bdsWidth >= minBDSWidth &&\n> +\t\t\t    !(bdsIntHeight % BDS_ALIGN_H) && bdsHeight >= minBDSHeight)\n>  \t\t\t\tcalculateBDSHeight(pipe, iif, gdc, bdsIntWidth, sf);\n>  \t\t}\n>  \n> @@ -212,10 +218,14 @@ void calculateBDS(ImgUDevice::Pipe *pipe, const Size &iif, const Size &gdc, floa\n>  \tsf = bdsSF;\n>  \twhile (sf <= BDS_SF_MAX && sf >= BDS_SF_MIN) {\n>  \t\tfloat bdsWidth = static_cast<float>(iif.width) / sf;\n> +\t\tfloat bdsHeight = static_cast<float>(iif.height) / sf;\n>  \n> -\t\tif (std::fmod(bdsWidth, 1.0) == 0) {\n> +\t\tif (std::fmod(bdsWidth, 1.0) == 0 &&\n> +\t\t    std::fmod(bdsHeight, 1.0) == 0) {\n>  \t\t\tunsigned int bdsIntWidth = static_cast<unsigned int>(bdsWidth);\n> -\t\t\tif (!(bdsIntWidth % BDS_ALIGN_W) && bdsWidth >= minBDSWidth)\n> +\t\t\tunsigned int bdsIntHeight = static_cast<unsigned int>(bdsHeight);\n> +\t\t\tif (!(bdsIntWidth % BDS_ALIGN_W) && bdsWidth >= minBDSWidth &&\n> +\t\t\t    !(bdsIntHeight % BDS_ALIGN_H) && bdsHeight >= minBDSHeight)\n>  \t\t\t\tcalculateBDSHeight(pipe, iif, gdc, bdsIntWidth, sf);\n>  \t\t}\n>  \n> -- \n> 2.31.1\n> \n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","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 9FFE4BDE78\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  3 May 2021 10:56:23 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 60681688AE;\n\tMon,  3 May 2021 12:56:23 +0200 (CEST)","from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com\n\t[IPv6:2a00:1450:4864:20::62e])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 466C460511\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  3 May 2021 12:56:21 +0200 (CEST)","by mail-ej1-x62e.google.com with SMTP id y7so7167324ejj.9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 03 May 2021 03:56:21 -0700 (PDT)","from localhost (p54ac5521.dip0.t-ipconnect.de. [84.172.85.33])\n\tby smtp.gmail.com with ESMTPSA id\n\tdj17sm8910626edb.7.2021.05.03.03.56.20\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tMon, 03 May 2021 03:56:20 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=ragnatech-se.20150623.gappssmtp.com\n\theader.i=@ragnatech-se.20150623.gappssmtp.com\n\theader.b=\"B0GnrLo3\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=ragnatech-se.20150623.gappssmtp.com; s=20150623;\n\th=date:from:to:cc:subject:message-id:references:mime-version\n\t:content-disposition:content-transfer-encoding:in-reply-to;\n\tbh=C50IQBKhtsBrSvkeVxJxA3PRNKXS6JP7HWKib4vx9Rc=;\n\tb=B0GnrLo3Ll41WBEAI2t79BhAy+RD+KToGZgxU7ljgEIEJYnyAmL9EnT0mKtBzg3Nmq\n\tMyIujmD5tAdjKVy6dhyciDjHq3ONxdu9aw+biXZV+ieuDthKFJ0JyFzvHIpVDz8WxbQI\n\t/EOMWCfCTQtSwA83el8z+c98RJWjEF2RHRpqf3IFee7b3xxvddzd5TCJfkUN+LzscfaW\n\tuezUXbpx7v6qvhy4CWpU4u1F7f4gYUDXUpGgyq332z34Zs60H8lQy2e4ByBX5X4rQAj0\n\tbY5W0Dve7k5Q++3MbiJTWHJnydJhU1Mh4ewQ3qh9G71nHxhbW2KTk+fLfFBNd9pPv+yY\n\tm+5w==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:references\n\t:mime-version:content-disposition:content-transfer-encoding\n\t:in-reply-to;\n\tbh=C50IQBKhtsBrSvkeVxJxA3PRNKXS6JP7HWKib4vx9Rc=;\n\tb=ujMlR42N+hUeuo8h0xwTnAqd1OgtTTwc4PbTX7XCwvCZc8PIpSHIdxz0RIeTRWgiSu\n\tVY1NmGIEPytf9UPBKZuTspMSL8zmisu2kHMmlSQvvAdcSKQfsthUEMiixD4j6nn3yfMf\n\tOrmyRSklIXLU7vAVjaHov1GuR5r561Jy3WdhfatB5srDTQ9yYfeBaQ1U62s/4T5e1FW0\n\t2Z9AsWO6TratN8ZAtPR+k9qbWg05AV5w4SdgEyA/SSo9NJiShVgZfjOfJajFLwp16teg\n\tRQnkqjuBbyXFSAUI8QW9FzzIOXv1WJbQP8kg4phUrRgOovAVwSQSFM7bK+jE1YSePmmA\n\t92Xw==","X-Gm-Message-State":"AOAM532yY2xEEzVdLkeHEQzbAz1J7m0bfUxYBeC+eGVsVTLGsIPP93uZ\n\tgVKCBoEdTJrAE0fJ65JWCM+4bQ==","X-Google-Smtp-Source":"ABdhPJxV4c7m/eNCM6xs14OXNelJA5gtpl51jn+dhIZ2/NRmAouzMZhvxrBCTiVC4seE12ljvSk/EQ==","X-Received":"by 2002:a17:906:f9d7:: with SMTP id\n\tlj23mr4254254ejb.392.1620039381013; \n\tMon, 03 May 2021 03:56:21 -0700 (PDT)","Date":"Mon, 3 May 2021 12:56:20 +0200","From":"Niklas =?iso-8859-1?q?S=F6derlund?= <niklas.soderlund@ragnatech.se>","To":"Jacopo Mondi <jacopo@jmondi.org>","Message-ID":"<YI/W1KEP232DsUA8@bismarck.dyn.berto.se>","References":"<20210503092705.15562-1-jacopo@jmondi.org>\n\t<20210503092705.15562-3-jacopo@jmondi.org>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20210503092705.15562-3-jacopo@jmondi.org>","Subject":"Re: [libcamera-devel] [PATCH v2 2/7] libcamera: ipu3: imgu: Filter\n\tBDS by height","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","Content-Type":"text/plain; charset=\"iso-8859-1\"","Content-Transfer-Encoding":"quoted-printable","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":16784,"web_url":"https://patchwork.libcamera.org/comment/16784/","msgid":"<CAO5uPHO5u1qgR6Ss2xXYXFoBc6rn-5PJ=t=k-yVqswjzWVtQxA@mail.gmail.com>","date":"2021-05-06T05:40:54","subject":"Re: [libcamera-devel] [PATCH v2 2/7] libcamera: ipu3: imgu: Filter\n\tBDS by height","submitter":{"id":63,"url":"https://patchwork.libcamera.org/api/people/63/","name":"Hirokazu Honda","email":"hiroh@chromium.org"},"content":"Hi Jacopo, thank you for the patch,\n\nOn Mon, May 3, 2021 at 7:56 PM Niklas Söderlund <\nniklas.soderlund@ragnatech.se> wrote:\n\n> Hi Jacopo,\n>\n> Thanks for your patch.\n>\n> On 2021-05-03 11:27:00 +0200, Jacopo Mondi wrote:\n> > Apply to calculateBDS() function the content of commit 243d134 (\"Fix\n> > some bug for some resolutions\") from\n> > https://github.com/intel/intel-ipu3-pipecfg.git.\n> >\n> > The calculated BDS sizes are filtered by height and not only by width\n> > anymore.\n> >\n> > Tested-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>\n> > Reviewed-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>\n> > Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n>\n> Acked-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n>\n> > ---\n> >  src/libcamera/pipeline/ipu3/imgu.cpp | 20 +++++++++++++++-----\n> >  1 file changed, 15 insertions(+), 5 deletions(-)\n> >\n> > diff --git a/src/libcamera/pipeline/ipu3/imgu.cpp\n> b/src/libcamera/pipeline/ipu3/imgu.cpp\n> > index 8373dc165a61..36fee31c1962 100644\n> > --- a/src/libcamera/pipeline/ipu3/imgu.cpp\n> > +++ b/src/libcamera/pipeline/ipu3/imgu.cpp\n> > @@ -33,6 +33,7 @@ namespace {\n> >   * at revision: 61e83f2f7606 (\"Add more information into README\")\n> >   */\n> >\n> > +static constexpr unsigned int FILTER_W = 4;\n> >  static constexpr unsigned int FILTER_H = 4;\n> >\n\n\nWould you mind adding comments about these const variables in another patch?\nBy the way, static is unnecessary to the variables.\n\nReviewed-by: Hirokazu Honda <hiroh@chromium.org>\n\n>\n> >  static constexpr unsigned int IF_ALIGN_W = 2;\n> > @@ -194,15 +195,20 @@ void calculateBDSHeight(ImgUDevice::Pipe *pipe,\n> const Size &iif, const Size &gdc\n> >\n> >  void calculateBDS(ImgUDevice::Pipe *pipe, const Size &iif, const Size\n> &gdc, float bdsSF)\n> >  {\n> > -     unsigned int minBDSWidth = gdc.width + FILTER_H * 2;\n> > +     unsigned int minBDSWidth = gdc.width + FILTER_W * 2;\n> > +     unsigned int minBDSHeight = gdc.height + FILTER_H * 2;\n> >\n> >       float sf = bdsSF;\n> >       while (sf <= BDS_SF_MAX && sf >= BDS_SF_MIN) {\n> >               float bdsWidth = static_cast<float>(iif.width) / sf;\n> > +             float bdsHeight = static_cast<float>(iif.height) / sf;\n> >\n> > -             if (std::fmod(bdsWidth, 1.0) == 0) {\n> > +             if (std::fmod(bdsWidth, 1.0) == 0 &&\n> > +                 std::fmod(bdsHeight, 1.0) == 0) {\n> >                       unsigned int bdsIntWidth = static_cast<unsigned\n> int>(bdsWidth);\n> > -                     if (!(bdsIntWidth % BDS_ALIGN_W) && bdsWidth >=\n> minBDSWidth)\n> > +                     unsigned int bdsIntHeight = static_cast<unsigned\n> int>(bdsHeight);\n> > +                     if (!(bdsIntWidth % BDS_ALIGN_W) && bdsWidth >=\n> minBDSWidth &&\n> > +                         !(bdsIntHeight % BDS_ALIGN_H) && bdsHeight >=\n> minBDSHeight)\n> >                               calculateBDSHeight(pipe, iif, gdc,\n> bdsIntWidth, sf);\n> >               }\n> >\n> > @@ -212,10 +218,14 @@ void calculateBDS(ImgUDevice::Pipe *pipe, const\n> Size &iif, const Size &gdc, floa\n> >       sf = bdsSF;\n> >       while (sf <= BDS_SF_MAX && sf >= BDS_SF_MIN) {\n> >               float bdsWidth = static_cast<float>(iif.width) / sf;\n> > +             float bdsHeight = static_cast<float>(iif.height) / sf;\n> >\n> > -             if (std::fmod(bdsWidth, 1.0) == 0) {\n> > +             if (std::fmod(bdsWidth, 1.0) == 0 &&\n> > +                 std::fmod(bdsHeight, 1.0) == 0) {\n> >                       unsigned int bdsIntWidth = static_cast<unsigned\n> int>(bdsWidth);\n> > -                     if (!(bdsIntWidth % BDS_ALIGN_W) && bdsWidth >=\n> minBDSWidth)\n> > +                     unsigned int bdsIntHeight = static_cast<unsigned\n> int>(bdsHeight);\n> > +                     if (!(bdsIntWidth % BDS_ALIGN_W) && bdsWidth >=\n> minBDSWidth &&\n> > +                         !(bdsIntHeight % BDS_ALIGN_H) && bdsHeight >=\n> minBDSHeight)\n> >                               calculateBDSHeight(pipe, iif, gdc,\n> bdsIntWidth, sf);\n> >               }\n> >\n> > --\n> > 2.31.1\n> >\n> > _______________________________________________\n> > libcamera-devel mailing list\n> > libcamera-devel@lists.libcamera.org\n> > https://lists.libcamera.org/listinfo/libcamera-devel\n>\n> --\n> Regards,\n> Niklas Söderlund\n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel\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 3960ABDE7E\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  6 May 2021 05:41:08 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 85E166891A;\n\tThu,  6 May 2021 07:41:07 +0200 (CEST)","from mail-ed1-x530.google.com (mail-ed1-x530.google.com\n\t[IPv6:2a00:1450:4864:20::530])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 592DD688E5\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  6 May 2021 07:41:05 +0200 (CEST)","by mail-ed1-x530.google.com with SMTP id b17so4746443ede.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 05 May 2021 22:41:05 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=chromium.org header.i=@chromium.org\n\theader.b=\"TcwbIBwo\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org;\n\ts=google; \n\th=mime-version:references:in-reply-to:from:date:message-id:subject:to\n\t:cc; bh=xu3IhB6aoDcYbdj+uoZkWew2fGWyID3ZMJ4lPlHY4bg=;\n\tb=TcwbIBwoYe8IqlVJRtVGhxtLKAnn2UlfE9l/jFnNtTEU2fZGs5flgeBPV/F5MHdcNk\n\txeswMMPslNzlejQu6asJRuW9yfIe0xaCjU1p3VTnuUvKCt9KXPISnPsQqdsWWjpBfQUj\n\t4/KPfZ+5+3Uh29HJLulXUlPe9eFC4bcl5gLMc=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc;\n\tbh=xu3IhB6aoDcYbdj+uoZkWew2fGWyID3ZMJ4lPlHY4bg=;\n\tb=OWqqVpBk8nLxAA99ThaaBLfsIIC76gTsMXZM5LKjZ+Lhxt2KBxYDTFSmjidozrXOU4\n\tPjBzGUEBrZmYTqtDNHwpYW1gYiY0+ppMYAlo/esYG7/eGmyGwYuZZrDu2cTxJzYsscev\n\todHqyyWwHBJ3ChRO6er0g99vc4FG1OAkyWTAUT/OQ59cVvi6nN3jaf5KIaBu8brg2MSI\n\tGwl158jSi+VuPv9VFJax1lBxSGMkVsDKfcQg0+7D+NePUGDuVrwmPwfMRiOZa24Jv9hA\n\tAqj1Jkz08jLFUSpFz6QqIUrTwjmak+9NADwzWUcvecr9UWikeiAhHq81NdcFNXt8mM6s\n\t1kWQ==","X-Gm-Message-State":"AOAM530Wk1xW5x30IRwAekWuF4vWeXW+Kvmew5JBaLVy0SXtwyrLoCy7\n\tImW58trCoR6MKLgUwbTF1gr1GENJ/6s8zWlTfmSCyQ==","X-Google-Smtp-Source":"ABdhPJyp0y4hAVs3t2HUW2ZNhr/DEICg5cOW4ZpYpNUlXFJjJ13Px00380KUCHFcguM/fjsZE/cszb8/iYna51wbqbc=","X-Received":"by 2002:aa7:d8cb:: with SMTP id k11mr2958984eds.73.1620279665001;\n\tWed, 05 May 2021 22:41:05 -0700 (PDT)","MIME-Version":"1.0","References":"<20210503092705.15562-1-jacopo@jmondi.org>\n\t<20210503092705.15562-3-jacopo@jmondi.org>\n\t<YI/W1KEP232DsUA8@bismarck.dyn.berto.se>","In-Reply-To":"<YI/W1KEP232DsUA8@bismarck.dyn.berto.se>","From":"Hirokazu Honda <hiroh@chromium.org>","Date":"Thu, 6 May 2021 14:40:54 +0900","Message-ID":"<CAO5uPHO5u1qgR6Ss2xXYXFoBc6rn-5PJ=t=k-yVqswjzWVtQxA@mail.gmail.com>","To":"=?utf-8?q?Niklas_S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>","Subject":"Re: [libcamera-devel] [PATCH v2 2/7] libcamera: ipu3: imgu: Filter\n\tBDS by height","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 <libcamera-devel@lists.libcamera.org>","Content-Type":"multipart/mixed;\n\tboundary=\"===============2086340326103510012==\"","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]