[{"id":31473,"web_url":"https://patchwork.libcamera.org/comment/31473/","msgid":"<r3VXNfvPT3dS1HS8_w-LgMsRnlRRfhbjnpV7RDF2CIvNA56VqFr6iBi8e6YqjE6XjQxV-xOWe3oS4bQqSDBnA_1eww1_EsuT7JfabBJEypI=@protonmail.com>","date":"2024-09-30T22:50:30","subject":"Re: [PATCH v9 2/5] libcamera: geometry: Add two-point Rectangle\n\tconstructor","submitter":{"id":133,"url":"https://patchwork.libcamera.org/api/people/133/","name":"Pőcze Barnabás","email":"pobrn@protonmail.com"},"content":"Hi\n\n\n2024. szeptember 30., hétfő 21:59 keltezéssel, Jacopo Mondi <jacopo.mondi@ideasonboard.com> írta:\n\n> From: Yudhistira Erlandinata <yerlandinata@chromium.org>\n> \n> Add a constructor to the Rectangle class that accepts two points.\n> \n> The constructed Rectangle spans all the space between the two given\n> points.\n> \n> Signed-off-by: Yudhistira Erlandinata <yerlandinata@chromium.org>\n> Co-developed-by: Harvey Yang <chenghaoyang@chromium.org>\n> Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n> Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n> ---\n>  include/libcamera/geometry.h |  7 +++++\n>  src/libcamera/geometry.cpp   | 58 ++++++++++++++++++++++++++++++++++++\n>  test/geometry.cpp            | 14 +++++++++\n>  3 files changed, 79 insertions(+)\n> \n> diff --git a/include/libcamera/geometry.h b/include/libcamera/geometry.h\n> index 3e6f0f5d7fab..2cc25f1facd9 100644\n> --- a/include/libcamera/geometry.h\n> +++ b/include/libcamera/geometry.h\n> @@ -262,6 +262,13 @@ public:\n>  \t{\n>  \t}\n> \n> +\tconstexpr Rectangle(const Point &point1, const Point &point2)\n> +\t\t: Rectangle(std::min(point1.x, point2.x), std::min(point1.y, point2.y),\n> +\t\t\t    std::max(point1.x, point2.x) - std::min(point1.x, point2.x),\n> +\t\t\t    std::max(point1.y, point2.y) - std::min(point1.y, point2.y))\n\nThe subtraction can lead to under/overflow. I believe simply casting to\n`unsigned` avoids that, e.g.:\n\n  unsigned(std::max(point1.x, point2.x)) - unsigned(std::min(point1.x, point2.x))\n\nAlthough I don't foresee it causing any issues, since the fix is easy,\nI think it's worth doing.\n\n\nRegards,\nBarnabás Pőcze\n\n> +\t{\n> +\t}\n> +\n>  \tint x;\n>  \tint y;\n>  \tunsigned int width;\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 205D7C0F1B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 30 Sep 2024 22:50:39 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 08D4763512;\n\tTue,  1 Oct 2024 00:50:38 +0200 (CEST)","from mail-40134.protonmail.ch (mail-40134.protonmail.ch\n\t[185.70.40.134])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E84056350B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  1 Oct 2024 00:50:35 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=protonmail.com header.i=@protonmail.com\n\theader.b=\"yBOi5pVP\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;\n\ts=protonmail3; t=1727736635; x=1727995835;\n\tbh=gnVs99/o/PaASxMWclvDNzQV8MdPBDrugkYhHQMDXyA=;\n\th=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:\n\tFeedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:\n\tMessage-ID:BIMI-Selector;\n\tb=yBOi5pVPlMr6qpiqe8UYFYRkpakaeVKJWyI27sa4kL2qXjaAnCmwYrvyTv9KJ0X9u\n\tpEkgZz46TX8QlVj00ppDo3VALMEv0S5c7dxF4YtVbNifHY7q6UaA4DFiI7CYe9IeE4\n\tFJctuVlU4Ouli/9gYurecfz/2J9qIwycC9PqHuL0fkKYaCrK8gXDmuoyp0B6KaJ38n\n\tQVBg9f2X6wDKq7alecOv6khaMG3fnJft3GeRw2nOOakyPgbIMoGIMFxc87+MW4ztzM\n\tlCj3mhpYei71leHa1r+1bOJO1aqXQnz6osPxk0O4ZRM1wnZFneShZyoa3W1ZjzXCC5\n\t9H1+fyoZBzKkg==","Date":"Mon, 30 Sep 2024 22:50:30 +0000","To":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","From":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <pobrn@protonmail.com>","Cc":"libcamera-devel@lists.libcamera.org,\n\tHarvey Yang <chenghaoyang@google.com>, \n\tYudhistira Erlandinata <yerlandinata@chromium.org>,\n\tHarvey Yang <chenghaoyang@chromium.org>","Subject":"Re: [PATCH v9 2/5] libcamera: geometry: Add two-point Rectangle\n\tconstructor","Message-ID":"<r3VXNfvPT3dS1HS8_w-LgMsRnlRRfhbjnpV7RDF2CIvNA56VqFr6iBi8e6YqjE6XjQxV-xOWe3oS4bQqSDBnA_1eww1_EsuT7JfabBJEypI=@protonmail.com>","In-Reply-To":"<20240930195915.152187-3-jacopo.mondi@ideasonboard.com>","References":"<20240930195915.152187-1-jacopo.mondi@ideasonboard.com>\n\t<20240930195915.152187-3-jacopo.mondi@ideasonboard.com>","Feedback-ID":"20568564:user:proton","X-Pm-Message-ID":"e3d905407c0c606e504ac09ca73507890823da59","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Transfer-Encoding":"quoted-printable","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":31479,"web_url":"https://patchwork.libcamera.org/comment/31479/","msgid":"<CAEB1ahtMBh-AN77q65JAmh_ZZs2hT-nFe4saytYEQV=MS3_Spw@mail.gmail.com>","date":"2024-10-01T06:43:20","subject":"Re: [PATCH v9 2/5] libcamera: geometry: Add two-point Rectangle\n\tconstructor","submitter":{"id":117,"url":"https://patchwork.libcamera.org/api/people/117/","name":"Cheng-Hao Yang","email":"chenghaoyang@chromium.org"},"content":"Thank you Jacopo for the rebase and fix.\n\nOn Tue, Oct 1, 2024 at 3:59 AM Jacopo Mondi\n<jacopo.mondi@ideasonboard.com> wrote:\n>\n> From: Yudhistira Erlandinata <yerlandinata@chromium.org>\n>\n> Add a constructor to the Rectangle class that accepts two points.\n>\n> The constructed Rectangle spans all the space between the two given\n> points.\n>\n> Signed-off-by: Yudhistira Erlandinata <yerlandinata@chromium.org>\n> Co-developed-by: Harvey Yang <chenghaoyang@chromium.org>\n> Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n> Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n> ---\n>  include/libcamera/geometry.h |  7 +++++\n>  src/libcamera/geometry.cpp   | 58 ++++++++++++++++++++++++++++++++++++\n>  test/geometry.cpp            | 14 +++++++++\n>  3 files changed, 79 insertions(+)\n>\n> diff --git a/include/libcamera/geometry.h b/include/libcamera/geometry.h\n> index 3e6f0f5d7fab..2cc25f1facd9 100644\n> --- a/include/libcamera/geometry.h\n> +++ b/include/libcamera/geometry.h\n> @@ -262,6 +262,13 @@ public:\n>         {\n>         }\n>\n> +       constexpr Rectangle(const Point &point1, const Point &point2)\n> +               : Rectangle(std::min(point1.x, point2.x), std::min(point1.y, point2.y),\n> +                           std::max(point1.x, point2.x) - std::min(point1.x, point2.x),\n> +                           std::max(point1.y, point2.y) - std::min(point1.y, point2.y))\n> +       {\n> +       }\n> +\n>         int x;\n>         int y;\n>         unsigned int width;\n> diff --git a/src/libcamera/geometry.cpp b/src/libcamera/geometry.cpp\n> index 6eb432e5d803..5e5e72e15d67 100644\n> --- a/src/libcamera/geometry.cpp\n> +++ b/src/libcamera/geometry.cpp\n> @@ -715,6 +715,64 @@ std::ostream &operator<<(std::ostream &out, const SizeRange &sr)\n>   * \\param[in] size The desired Rectangle size\n>   */\n>\n> +/**\n> + * \\fn Rectangle::Rectangle(const Point &point1, const Point &point2)\n> + * \\brief Construct a Rectangle with the two given points\n> + * \\param[in] point1 One of corners of the rectangle\n> + * \\param[in] point2 The opposite diagonal corner point of \\a point1\n> + *\n> + * Contruct a rectangle that spans the space between two given points. The\n> + * position of the two given points is not relevant for the rectangle's\n> + * contruction.\n> + *\n> + * \\verbatim\n> +\n> +  p1 = point1\n> +  p2 = point2\n> +\n> +          ^\n> +          |\n> +          |      ----------------p2\n> +          |     |                 |\n> +          |     |                 |\n> +          |     p1----------------\n> +          |\n> +          o------------------------------->\n> +         (0,0)\n> +\n> +          ^\n> +          |\n> +          |     p1----------------\n> +          |     |                 |\n> +          |     |                 |\n> +          |      ----------------p2\n> +          |\n> +          o------------------------------->\n> +         (0,0)\n> +\n> +          ^\n> +          |\n> +          |      ----------------p1\n> +          |     |                 |\n> +          |     |                 |\n> +          |     p2----------------\n> +          |\n> +          o------------------------------->\n> +         (0,0)\n> +\n> +          ^\n> +          |\n> +          |     p2----------------\n> +          |     |                 |\n> +          |     |                 |\n> +          |      ----------------p1\n> +          |\n> +          o------------------------------->\n> +         (0,0)\n> +\n> +   \\endverbatim\n> + */\n> +\n>  /**\n>   * \\var Rectangle::x\n>   * \\brief The horizontal coordinate of the rectangle's top-left corner\n> diff --git a/test/geometry.cpp b/test/geometry.cpp\n> index 64169206ad16..5760fa3c885a 100644\n> --- a/test/geometry.cpp\n> +++ b/test/geometry.cpp\n> @@ -481,6 +481,20 @@ protected:\n>                         return TestFail;\n>                 }\n>\n> +               Point topLeft(3, 3);\n> +               Point bottomRight(30, 30);\n> +               Point topRight(30, 3);\n> +               Point bottomLeft(3, 30);\n\nSorry, I think I did it wrong in v8:\nMaybe we should swap the points of topRight and bottomLeft.\n\nOtherwise LGTM.\n\nReviewed-by: Harvey Yang <chenghaoyang@chromium.org>\n\nBR,\nHarvey\n\n> +               Rectangle rect1(topLeft, bottomRight);\n> +               Rectangle rect2(topRight, bottomLeft);\n> +               Rectangle rect3(bottomRight, topLeft);\n> +               Rectangle rect4(bottomLeft, topRight);\n> +\n> +               if (rect1 != rect2 || rect1 != rect3 || rect1 != rect4) {\n> +                       cout << \"Point-to-point construction failed\" << endl;\n> +                       return TestFail;\n> +               }\n> +\n>                 return TestPass;\n>         }\n>  };\n> --\n> 2.46.1\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 39D22C3257\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  1 Oct 2024 06:43:35 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id C44D063512;\n\tTue,  1 Oct 2024 08:43:33 +0200 (CEST)","from mail-lj1-x22d.google.com (mail-lj1-x22d.google.com\n\t[IPv6:2a00:1450:4864:20::22d])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 6A7CA62C91\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  1 Oct 2024 08:43:32 +0200 (CEST)","by mail-lj1-x22d.google.com with SMTP id\n\t38308e7fff4ca-2fabfc06de3so28426211fa.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 30 Sep 2024 23:43:32 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=chromium.org header.i=@chromium.org\n\theader.b=\"FtNu/qJR\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=chromium.org; s=google; t=1727765011; x=1728369811;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:cc:to:subject:message-id:date:from\n\t:in-reply-to:references:mime-version:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=/JCDdvmgvCFfSGcVO48jzvFUYqEhS9Y4AzQndGfSrRQ=;\n\tb=FtNu/qJR+ez4JdRvk20Uj5r367yGkL+1xlToHa6i0lDBYuh9hGTOX7PIGtjRKYwq8h\n\tBfP+q7CvM2GoOUzRCrEkrM9qLdBy6+mLfUSgsK5xk1Z+oqC2d/Nsi6IpPF3YoaorkEx7\n\tSO5aPs8qfbFk+G3S9egCuZey9+H8h4Kwmb7jk=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1727765011; x=1728369811;\n\th=content-transfer-encoding:cc:to:subject:message-id:date:from\n\t:in-reply-to:references:mime-version:x-gm-message-state:from:to:cc\n\t:subject:date:message-id:reply-to;\n\tbh=/JCDdvmgvCFfSGcVO48jzvFUYqEhS9Y4AzQndGfSrRQ=;\n\tb=amFMLu5jMzrYO92+xCHdE+W74C89hR5BWIrV+Zq8xTBR3vUgNGtw8PdVgUqtWNu1pG\n\tQMiFFxd09Mv5V7rdQ7zxvBNp/DLw5u9CxYuSHS2KbbgOmyzsZWk+kosq1WJPiBzlFPk0\n\tjaEf2yEx3JFpOtKFCiKqNkaKr2vjNGBli3JbxrV6kl9ZryamIgYYhOr4axTdvtub0xk1\n\tb179Sd+Z66fbG8ZqF0D+P0DQMjnWUhxhS6KJU0wyd5p9mY1FqykCTnAJSfaS4rinb+gb\n\tO3uSuUOXIFGNKlvh+vKt5ySQCJPWQaH9PEmPikwJaI4z3/QoGp9tD9BZo9TMQOQVnaBh\n\t5Y/A==","X-Gm-Message-State":"AOJu0YzgRcuMQeva3Mw4JIHm4ZL0A8JyD1V3O7ksyyycZbyGR29iwIgM\n\t7ecYFA93kW/DMWX0Phnn8vaGukoGsuju5+49qs/rswrbNmaArbdSrfU9sRn1/hdI9MqboHB88mv\n\tWnMRxCI/q5HJSzK0u1W3BrqdOBsotsZeHDEae","X-Google-Smtp-Source":"AGHT+IH44RtpEPev/aGvDo+nrGSnGuxARxrQe9U0aSDgm4rAyXUG17PmGdbYec2looQ4qgAitlW56eP5DL4/RdE/ddk=","X-Received":"by 2002:a05:651c:2225:b0:2fa:cd30:8dfa with SMTP id\n\t38308e7fff4ca-2facd308fddmr38221711fa.44.1727765011188;\n\tMon, 30 Sep 2024 23:43:31 -0700 (PDT)","MIME-Version":"1.0","References":"<20240930195915.152187-1-jacopo.mondi@ideasonboard.com>\n\t<20240930195915.152187-3-jacopo.mondi@ideasonboard.com>","In-Reply-To":"<20240930195915.152187-3-jacopo.mondi@ideasonboard.com>","From":"Cheng-Hao Yang <chenghaoyang@chromium.org>","Date":"Tue, 1 Oct 2024 14:43:20 +0800","Message-ID":"<CAEB1ahtMBh-AN77q65JAmh_ZZs2hT-nFe4saytYEQV=MS3_Spw@mail.gmail.com>","Subject":"Re: [PATCH v9 2/5] libcamera: geometry: Add two-point Rectangle\n\tconstructor","To":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org,\n\tHarvey Yang <chenghaoyang@google.com>, \n\tYudhistira Erlandinata <yerlandinata@chromium.org>","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","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":31486,"web_url":"https://patchwork.libcamera.org/comment/31486/","msgid":"<qp624xtiwrpqzlqwqs244fqnyp6okicpwhzrygdtn3twv3hx74@z5sxk5hpevj3>","date":"2024-10-01T07:50:17","subject":"Re: [PATCH v9 2/5] libcamera: geometry: Add two-point Rectangle\n\tconstructor","submitter":{"id":143,"url":"https://patchwork.libcamera.org/api/people/143/","name":"Jacopo Mondi","email":"jacopo.mondi@ideasonboard.com"},"content":"Hi Barnabás\n\nOn Mon, Sep 30, 2024 at 10:50:30PM GMT, Barnabás Pőcze wrote:\n> Hi\n>\n>\n> 2024. szeptember 30., hétfő 21:59 keltezéssel, Jacopo Mondi <jacopo.mondi@ideasonboard.com> írta:\n>\n> > From: Yudhistira Erlandinata <yerlandinata@chromium.org>\n> >\n> > Add a constructor to the Rectangle class that accepts two points.\n> >\n> > The constructed Rectangle spans all the space between the two given\n> > points.\n> >\n> > Signed-off-by: Yudhistira Erlandinata <yerlandinata@chromium.org>\n> > Co-developed-by: Harvey Yang <chenghaoyang@chromium.org>\n> > Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n> > Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n> > ---\n> >  include/libcamera/geometry.h |  7 +++++\n> >  src/libcamera/geometry.cpp   | 58 ++++++++++++++++++++++++++++++++++++\n> >  test/geometry.cpp            | 14 +++++++++\n> >  3 files changed, 79 insertions(+)\n> >\n> > diff --git a/include/libcamera/geometry.h b/include/libcamera/geometry.h\n> > index 3e6f0f5d7fab..2cc25f1facd9 100644\n> > --- a/include/libcamera/geometry.h\n> > +++ b/include/libcamera/geometry.h\n> > @@ -262,6 +262,13 @@ public:\n> >  \t{\n> >  \t}\n> >\n> > +\tconstexpr Rectangle(const Point &point1, const Point &point2)\n> > +\t\t: Rectangle(std::min(point1.x, point2.x), std::min(point1.y, point2.y),\n> > +\t\t\t    std::max(point1.x, point2.x) - std::min(point1.x, point2.x),\n> > +\t\t\t    std::max(point1.y, point2.y) - std::min(point1.y, point2.y))\n>\n> The subtraction can lead to under/overflow. I believe simply casting to\n> `unsigned` avoids that, e.g.:\n>\n>   unsigned(std::max(point1.x, point2.x)) - unsigned(std::min(point1.x, point2.x))\n>\n> Although I don't foresee it causing any issues, since the fix is easy,\n> I think it's worth doing.\n\nIs this because we're subtracting two signed values and assign the\nresult to an unsigned ?\n\nIt shouldn't be an issue, but better safe than sorry, so I'll happily\ntake your suggestion in.\n\nThanks\n  j\n\n>\n>\n> Regards,\n> Barnabás Pőcze\n>\n> > +\t{\n> > +\t}\n> > +\n> >  \tint x;\n> >  \tint y;\n> >  \tunsigned int width;\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 AD298C3257\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  1 Oct 2024 07:50:27 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 9B4C963516;\n\tTue,  1 Oct 2024 09:50:26 +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 600356350E\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  1 Oct 2024 09:50:24 +0200 (CEST)","from ideasonboard.com (unknown [5.179.150.95])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 6B015669;\n\tTue,  1 Oct 2024 09:48:52 +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=\"jgX9dSWw\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1727768932;\n\tbh=oflKcxzZrealNTob7fUT4/yQTm0pPQaZ38Hc8rXFmHY=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=jgX9dSWwZyBlcrPoDAXotJH4nkkSjlAvb33eIqq1VTgjIO77mpS8zrzLOtg8KCJvX\n\tiX+v3UO2Nz6G0OBY3EdCCZrj/B77GNi6Z+D6bw44wvJgzBoiUlOjOrWq3k99P2zXaM\n\tenLyYCViEgzaNjC/esEpdZtLhtdfLoBDAcmTj0/8=","Date":"Tue, 1 Oct 2024 09:50:17 +0200","From":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","To":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <pobrn@protonmail.com>","Cc":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>, \n\tlibcamera-devel@lists.libcamera.org,\n\tHarvey Yang <chenghaoyang@google.com>, \n\tYudhistira Erlandinata <yerlandinata@chromium.org>,\n\tHarvey Yang <chenghaoyang@chromium.org>","Subject":"Re: [PATCH v9 2/5] libcamera: geometry: Add two-point Rectangle\n\tconstructor","Message-ID":"<qp624xtiwrpqzlqwqs244fqnyp6okicpwhzrygdtn3twv3hx74@z5sxk5hpevj3>","References":"<20240930195915.152187-1-jacopo.mondi@ideasonboard.com>\n\t<20240930195915.152187-3-jacopo.mondi@ideasonboard.com>\n\t<r3VXNfvPT3dS1HS8_w-LgMsRnlRRfhbjnpV7RDF2CIvNA56VqFr6iBi8e6YqjE6XjQxV-xOWe3oS4bQqSDBnA_1eww1_EsuT7JfabBJEypI=@protonmail.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<r3VXNfvPT3dS1HS8_w-LgMsRnlRRfhbjnpV7RDF2CIvNA56VqFr6iBi8e6YqjE6XjQxV-xOWe3oS4bQqSDBnA_1eww1_EsuT7JfabBJEypI=@protonmail.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":31488,"web_url":"https://patchwork.libcamera.org/comment/31488/","msgid":"<rz47ql37wzvjinhgujzkk7ywllsrzgzyfkvnvc7t2wf352dtol@qjc7uvgrmelb>","date":"2024-10-01T07:55:50","subject":"Re: [PATCH v9 2/5] libcamera: geometry: Add two-point Rectangle\n\tconstructor","submitter":{"id":143,"url":"https://patchwork.libcamera.org/api/people/143/","name":"Jacopo Mondi","email":"jacopo.mondi@ideasonboard.com"},"content":"Hi Harvey\n\nOn Tue, Oct 01, 2024 at 02:43:20PM GMT, Cheng-Hao Yang wrote:\n> Thank you Jacopo for the rebase and fix.\n>\n> On Tue, Oct 1, 2024 at 3:59 AM Jacopo Mondi\n> <jacopo.mondi@ideasonboard.com> wrote:\n> >\n> > From: Yudhistira Erlandinata <yerlandinata@chromium.org>\n> >\n> > Add a constructor to the Rectangle class that accepts two points.\n> >\n> > The constructed Rectangle spans all the space between the two given\n> > points.\n> >\n> > Signed-off-by: Yudhistira Erlandinata <yerlandinata@chromium.org>\n> > Co-developed-by: Harvey Yang <chenghaoyang@chromium.org>\n> > Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n> > Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n> > ---\n> >  include/libcamera/geometry.h |  7 +++++\n> >  src/libcamera/geometry.cpp   | 58 ++++++++++++++++++++++++++++++++++++\n> >  test/geometry.cpp            | 14 +++++++++\n> >  3 files changed, 79 insertions(+)\n> >\n> > diff --git a/include/libcamera/geometry.h b/include/libcamera/geometry.h\n> > index 3e6f0f5d7fab..2cc25f1facd9 100644\n> > --- a/include/libcamera/geometry.h\n> > +++ b/include/libcamera/geometry.h\n> > @@ -262,6 +262,13 @@ public:\n> >         {\n> >         }\n> >\n> > +       constexpr Rectangle(const Point &point1, const Point &point2)\n> > +               : Rectangle(std::min(point1.x, point2.x), std::min(point1.y, point2.y),\n> > +                           std::max(point1.x, point2.x) - std::min(point1.x, point2.x),\n> > +                           std::max(point1.y, point2.y) - std::min(point1.y, point2.y))\n> > +       {\n> > +       }\n> > +\n> >         int x;\n> >         int y;\n> >         unsigned int width;\n> > diff --git a/src/libcamera/geometry.cpp b/src/libcamera/geometry.cpp\n> > index 6eb432e5d803..5e5e72e15d67 100644\n> > --- a/src/libcamera/geometry.cpp\n> > +++ b/src/libcamera/geometry.cpp\n> > @@ -715,6 +715,64 @@ std::ostream &operator<<(std::ostream &out, const SizeRange &sr)\n> >   * \\param[in] size The desired Rectangle size\n> >   */\n> >\n> > +/**\n> > + * \\fn Rectangle::Rectangle(const Point &point1, const Point &point2)\n> > + * \\brief Construct a Rectangle with the two given points\n> > + * \\param[in] point1 One of corners of the rectangle\n> > + * \\param[in] point2 The opposite diagonal corner point of \\a point1\n> > + *\n> > + * Contruct a rectangle that spans the space between two given points. The\n> > + * position of the two given points is not relevant for the rectangle's\n> > + * contruction.\n> > + *\n> > + * \\verbatim\n> > +\n> > +  p1 = point1\n> > +  p2 = point2\n> > +\n> > +          ^\n> > +          |\n> > +          |      ----------------p2\n> > +          |     |                 |\n> > +          |     |                 |\n> > +          |     p1----------------\n> > +          |\n> > +          o------------------------------->\n> > +         (0,0)\n> > +\n> > +          ^\n> > +          |\n> > +          |     p1----------------\n> > +          |     |                 |\n> > +          |     |                 |\n> > +          |      ----------------p2\n> > +          |\n> > +          o------------------------------->\n> > +         (0,0)\n> > +\n> > +          ^\n> > +          |\n> > +          |      ----------------p1\n> > +          |     |                 |\n> > +          |     |                 |\n> > +          |     p2----------------\n> > +          |\n> > +          o------------------------------->\n> > +         (0,0)\n> > +\n> > +          ^\n> > +          |\n> > +          |     p2----------------\n> > +          |     |                 |\n> > +          |     |                 |\n> > +          |      ----------------p1\n> > +          |\n> > +          o------------------------------->\n> > +         (0,0)\n> > +\n> > +   \\endverbatim\n> > + */\n> > +\n> >  /**\n> >   * \\var Rectangle::x\n> >   * \\brief The horizontal coordinate of the rectangle's top-left corner\n> > diff --git a/test/geometry.cpp b/test/geometry.cpp\n> > index 64169206ad16..5760fa3c885a 100644\n> > --- a/test/geometry.cpp\n> > +++ b/test/geometry.cpp\n> > @@ -481,6 +481,20 @@ protected:\n> >                         return TestFail;\n> >                 }\n> >\n> > +               Point topLeft(3, 3);\n> > +               Point bottomRight(30, 30);\n> > +               Point topRight(30, 3);\n> > +               Point bottomLeft(3, 30);\n>\n> Sorry, I think I did it wrong in v8:\n> Maybe we should swap the points of topRight and bottomLeft.\n\nI don't think it's an issue, the \"visual\" naming again depends on the\nreference system orientation, doesn't it ?\n\n\n\n -------------------------------------->\n |\n |     TL                      TR\n |\n |\n |\n |\n |\n |\n |     BL                       BR\n |\n |\n V\n\n\n ^\n |\n |     BL                      BR\n |\n |\n |\n |\n |\n |\n |     TL                       TR\n |\n |\n -------------------------------------->\n\nAs long as they're opposite points, I think it's fine!\n\n>\n> Otherwise LGTM.\n>\n> Reviewed-by: Harvey Yang <chenghaoyang@chromium.org>\n\nThanks\n  j\n\n>\n> BR,\n> Harvey\n>\n> > +               Rectangle rect1(topLeft, bottomRight);\n> > +               Rectangle rect2(topRight, bottomLeft);\n> > +               Rectangle rect3(bottomRight, topLeft);\n> > +               Rectangle rect4(bottomLeft, topRight);\n> > +\n> > +               if (rect1 != rect2 || rect1 != rect3 || rect1 != rect4) {\n> > +                       cout << \"Point-to-point construction failed\" << endl;\n> > +                       return TestFail;\n> > +               }\n> > +\n> >                 return TestPass;\n> >         }\n> >  };\n> > --\n> > 2.46.1\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 471EBBD80A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  1 Oct 2024 07:55:57 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D2FC063515;\n\tTue,  1 Oct 2024 09:55:55 +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 534226350E\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  1 Oct 2024 09:55:54 +0200 (CEST)","from ideasonboard.com (unknown [5.179.150.95])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 3B172669;\n\tTue,  1 Oct 2024 09:54:22 +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=\"AcCEA9UQ\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1727769262;\n\tbh=HHj+29FjcLJXBxlct/PjHaH+h3sEy0g+hIVo+YiP5Nc=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=AcCEA9UQv3OwMT8NZcR1ydVLE+gREMKqqYwk58JbJuj3CxGvwbBdOSTN/SNCSqXvz\n\tqRnITyoACKkzxegOh26QUu8wY9XEhcqdiA7+0SCIcZlylTPJb1/OB1C7h0T+lgeQXf\n\tF1dP9uiz8QazGrwW6x6rBVZq/rPgq3gK1jmp8XvA=","Date":"Tue, 1 Oct 2024 09:55:50 +0200","From":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","To":"Cheng-Hao Yang <chenghaoyang@chromium.org>","Cc":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>, \n\tlibcamera-devel@lists.libcamera.org,\n\tHarvey Yang <chenghaoyang@google.com>, \n\tYudhistira Erlandinata <yerlandinata@chromium.org>","Subject":"Re: [PATCH v9 2/5] libcamera: geometry: Add two-point Rectangle\n\tconstructor","Message-ID":"<rz47ql37wzvjinhgujzkk7ywllsrzgzyfkvnvc7t2wf352dtol@qjc7uvgrmelb>","References":"<20240930195915.152187-1-jacopo.mondi@ideasonboard.com>\n\t<20240930195915.152187-3-jacopo.mondi@ideasonboard.com>\n\t<CAEB1ahtMBh-AN77q65JAmh_ZZs2hT-nFe4saytYEQV=MS3_Spw@mail.gmail.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<CAEB1ahtMBh-AN77q65JAmh_ZZs2hT-nFe4saytYEQV=MS3_Spw@mail.gmail.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":31489,"web_url":"https://patchwork.libcamera.org/comment/31489/","msgid":"<CAEB1ahvwA_svnj1ufi+HKNY0FSN2hbpo_PX2Ac69fdHgX5zodg@mail.gmail.com>","date":"2024-10-01T08:17:57","subject":"Re: [PATCH v9 2/5] libcamera: geometry: Add two-point Rectangle\n\tconstructor","submitter":{"id":117,"url":"https://patchwork.libcamera.org/api/people/117/","name":"Cheng-Hao Yang","email":"chenghaoyang@chromium.org"},"content":"On Tue, Oct 1, 2024 at 3:55 PM Jacopo Mondi\n<jacopo.mondi@ideasonboard.com> wrote:\n>\n> Hi Harvey\n>\n> On Tue, Oct 01, 2024 at 02:43:20PM GMT, Cheng-Hao Yang wrote:\n> > Thank you Jacopo for the rebase and fix.\n> >\n> > On Tue, Oct 1, 2024 at 3:59 AM Jacopo Mondi\n> > <jacopo.mondi@ideasonboard.com> wrote:\n> > >\n> > > From: Yudhistira Erlandinata <yerlandinata@chromium.org>\n> > >\n> > > Add a constructor to the Rectangle class that accepts two points.\n> > >\n> > > The constructed Rectangle spans all the space between the two given\n> > > points.\n> > >\n> > > Signed-off-by: Yudhistira Erlandinata <yerlandinata@chromium.org>\n> > > Co-developed-by: Harvey Yang <chenghaoyang@chromium.org>\n> > > Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n> > > Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n> > > ---\n> > >  include/libcamera/geometry.h |  7 +++++\n> > >  src/libcamera/geometry.cpp   | 58 ++++++++++++++++++++++++++++++++++++\n> > >  test/geometry.cpp            | 14 +++++++++\n> > >  3 files changed, 79 insertions(+)\n> > >\n> > > diff --git a/include/libcamera/geometry.h b/include/libcamera/geometry.h\n> > > index 3e6f0f5d7fab..2cc25f1facd9 100644\n> > > --- a/include/libcamera/geometry.h\n> > > +++ b/include/libcamera/geometry.h\n> > > @@ -262,6 +262,13 @@ public:\n> > >         {\n> > >         }\n> > >\n> > > +       constexpr Rectangle(const Point &point1, const Point &point2)\n> > > +               : Rectangle(std::min(point1.x, point2.x), std::min(point1.y, point2.y),\n> > > +                           std::max(point1.x, point2.x) - std::min(point1.x, point2.x),\n> > > +                           std::max(point1.y, point2.y) - std::min(point1.y, point2.y))\n> > > +       {\n> > > +       }\n> > > +\n> > >         int x;\n> > >         int y;\n> > >         unsigned int width;\n> > > diff --git a/src/libcamera/geometry.cpp b/src/libcamera/geometry.cpp\n> > > index 6eb432e5d803..5e5e72e15d67 100644\n> > > --- a/src/libcamera/geometry.cpp\n> > > +++ b/src/libcamera/geometry.cpp\n> > > @@ -715,6 +715,64 @@ std::ostream &operator<<(std::ostream &out, const SizeRange &sr)\n> > >   * \\param[in] size The desired Rectangle size\n> > >   */\n> > >\n> > > +/**\n> > > + * \\fn Rectangle::Rectangle(const Point &point1, const Point &point2)\n> > > + * \\brief Construct a Rectangle with the two given points\n> > > + * \\param[in] point1 One of corners of the rectangle\n> > > + * \\param[in] point2 The opposite diagonal corner point of \\a point1\n> > > + *\n> > > + * Contruct a rectangle that spans the space between two given points. The\n> > > + * position of the two given points is not relevant for the rectangle's\n> > > + * contruction.\n> > > + *\n> > > + * \\verbatim\n> > > +\n> > > +  p1 = point1\n> > > +  p2 = point2\n> > > +\n> > > +          ^\n> > > +          |\n> > > +          |      ----------------p2\n> > > +          |     |                 |\n> > > +          |     |                 |\n> > > +          |     p1----------------\n> > > +          |\n> > > +          o------------------------------->\n> > > +         (0,0)\n> > > +\n> > > +          ^\n> > > +          |\n> > > +          |     p1----------------\n> > > +          |     |                 |\n> > > +          |     |                 |\n> > > +          |      ----------------p2\n> > > +          |\n> > > +          o------------------------------->\n> > > +         (0,0)\n> > > +\n> > > +          ^\n> > > +          |\n> > > +          |      ----------------p1\n> > > +          |     |                 |\n> > > +          |     |                 |\n> > > +          |     p2----------------\n> > > +          |\n> > > +          o------------------------------->\n> > > +         (0,0)\n> > > +\n> > > +          ^\n> > > +          |\n> > > +          |     p2----------------\n> > > +          |     |                 |\n> > > +          |     |                 |\n> > > +          |      ----------------p1\n> > > +          |\n> > > +          o------------------------------->\n> > > +         (0,0)\n> > > +\n> > > +   \\endverbatim\n> > > + */\n> > > +\n> > >  /**\n> > >   * \\var Rectangle::x\n> > >   * \\brief The horizontal coordinate of the rectangle's top-left corner\n> > > diff --git a/test/geometry.cpp b/test/geometry.cpp\n> > > index 64169206ad16..5760fa3c885a 100644\n> > > --- a/test/geometry.cpp\n> > > +++ b/test/geometry.cpp\n> > > @@ -481,6 +481,20 @@ protected:\n> > >                         return TestFail;\n> > >                 }\n> > >\n> > > +               Point topLeft(3, 3);\n> > > +               Point bottomRight(30, 30);\n> > > +               Point topRight(30, 3);\n> > > +               Point bottomLeft(3, 30);\n> >\n> > Sorry, I think I did it wrong in v8:\n> > Maybe we should swap the points of topRight and bottomLeft.\n>\n> I don't think it's an issue, the \"visual\" naming again depends on the\n> reference system orientation, doesn't it ?\n\nAh right, and the naming should fit better with the first example below.\nThanks!\nStill LGTM.\n\nBR,\nHarvey\n\n>\n>\n>\n>  -------------------------------------->\n>  |\n>  |     TL                      TR\n>  |\n>  |\n>  |\n>  |\n>  |\n>  |\n>  |     BL                       BR\n>  |\n>  |\n>  V\n>\n>\n>  ^\n>  |\n>  |     BL                      BR\n>  |\n>  |\n>  |\n>  |\n>  |\n>  |\n>  |     TL                       TR\n>  |\n>  |\n>  -------------------------------------->\n>\n> As long as they're opposite points, I think it's fine!\n>\n> >\n> > Otherwise LGTM.\n> >\n> > Reviewed-by: Harvey Yang <chenghaoyang@chromium.org>\n>\n> Thanks\n>   j\n>\n> >\n> > BR,\n> > Harvey\n> >\n> > > +               Rectangle rect1(topLeft, bottomRight);\n> > > +               Rectangle rect2(topRight, bottomLeft);\n> > > +               Rectangle rect3(bottomRight, topLeft);\n> > > +               Rectangle rect4(bottomLeft, topRight);\n> > > +\n> > > +               if (rect1 != rect2 || rect1 != rect3 || rect1 != rect4) {\n> > > +                       cout << \"Point-to-point construction failed\" << endl;\n> > > +                       return TestFail;\n> > > +               }\n> > > +\n> > >                 return TestPass;\n> > >         }\n> > >  };\n> > > --\n> > > 2.46.1\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 4A8C7C3257\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  1 Oct 2024 08:18:13 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3633F6350E;\n\tTue,  1 Oct 2024 10:18:12 +0200 (CEST)","from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com\n\t[IPv6:2a00:1450:4864:20::22e])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 672F460553\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  1 Oct 2024 10:18:09 +0200 (CEST)","by mail-lj1-x22e.google.com with SMTP id\n\t38308e7fff4ca-2fad15b3eeeso15901661fa.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 01 Oct 2024 01:18:09 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=chromium.org header.i=@chromium.org\n\theader.b=\"Dup+K8Rg\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=chromium.org; s=google; t=1727770688; x=1728375488;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:cc:to:subject:message-id:date:from\n\t:in-reply-to:references:mime-version:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=s1w0O40NYARNz9cYCJrhLOTvBKR2i79oWs7UW+l8SDE=;\n\tb=Dup+K8RgxX35sFP6M6pk16vHY8ql+ymU/rm/TvTTITapEXzccC7p4eQFXA56Aspknu\n\tbe6HZVWBjVs8rjqkvZnvLzV2Jg/SEm8JCGdXC6jX25U++DvHoiRwpMlRo0SSpR+ZLHxF\n\tGpmVgtkdKh96RkXmB9RH477O8qVNY41ZZFJZw=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1727770688; x=1728375488;\n\th=content-transfer-encoding:cc:to:subject:message-id:date:from\n\t:in-reply-to:references:mime-version:x-gm-message-state:from:to:cc\n\t:subject:date:message-id:reply-to;\n\tbh=s1w0O40NYARNz9cYCJrhLOTvBKR2i79oWs7UW+l8SDE=;\n\tb=tnXodC1cPn06kEybj0HcwZtwbdbqtGRk2xy3+vinPD341jaqEg8DXimyAoTW2kIf08\n\tlozJl342bR4FWfudN14gnbzNJPFFMQ42cYDXXmH+OWwVR4D5zRY63onKkxWyqj9bKW/Q\n\t4BUKqBnhmzpuEr3M5YKYyuTYKlcqq4pD/cnAVZqZmwvp/Hm5mDCXrG/7cfBfErs5Qf4n\n\tjcgH++lp5w1JcoJFI88DOwNDp4VJC6enLHtdfKqoI76o/c9ckeHX6jWXWD9GS7PAs7j1\n\tSXh557YQtNxJzvdSFHL02BgyTbA4p90BNz1SZuSbuvY/Xfg/TrZd2+kV++uyOnQi9dy8\n\tjE8g==","X-Gm-Message-State":"AOJu0Yx89G8JWv/RhVr1oS+bHZYvABHxUUk7QNcP23g7Fenpsy88J1Nv\n\tRIAN8RDErwqt9YrcyN9Ru2k2FlFqiXzlgPFvkTInDc2dMBwBK6TTIjP1AiSKqrofwhsJjKBfwcm\n\t2/gPHkynInqvbHutBjJwxjDwHLFudj5slWioZ","X-Google-Smtp-Source":"AGHT+IFyLveVylrOdROjUrNpNBmzevatf4WtmbTLztEz2katP4m6TVEt+poW7ctA8h+vPgq7C89ohwRV5sx8mLAC+r0=","X-Received":"by 2002:a05:651c:1548:b0:2fa:d978:a6a2 with SMTP id\n\t38308e7fff4ca-2fad978aae2mr9088181fa.27.1727770688305;\n\tTue, 01 Oct 2024 01:18:08 -0700 (PDT)","MIME-Version":"1.0","References":"<20240930195915.152187-1-jacopo.mondi@ideasonboard.com>\n\t<20240930195915.152187-3-jacopo.mondi@ideasonboard.com>\n\t<CAEB1ahtMBh-AN77q65JAmh_ZZs2hT-nFe4saytYEQV=MS3_Spw@mail.gmail.com>\n\t<rz47ql37wzvjinhgujzkk7ywllsrzgzyfkvnvc7t2wf352dtol@qjc7uvgrmelb>","In-Reply-To":"<rz47ql37wzvjinhgujzkk7ywllsrzgzyfkvnvc7t2wf352dtol@qjc7uvgrmelb>","From":"Cheng-Hao Yang <chenghaoyang@chromium.org>","Date":"Tue, 1 Oct 2024 16:17:57 +0800","Message-ID":"<CAEB1ahvwA_svnj1ufi+HKNY0FSN2hbpo_PX2Ac69fdHgX5zodg@mail.gmail.com>","Subject":"Re: [PATCH v9 2/5] libcamera: geometry: Add two-point Rectangle\n\tconstructor","To":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org,\n\tHarvey Yang <chenghaoyang@google.com>, \n\tYudhistira Erlandinata <yerlandinata@chromium.org>","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","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":31504,"web_url":"https://patchwork.libcamera.org/comment/31504/","msgid":"<VDSGSiXFrVIcbpFTco2zWU8Xpd3rDMAavdRd5WRG239Pi24lmpwaqtAwA055BY3KsSRB6qP-yLZDPzEf12ht8qwQiMd0ywvNVfBaHBrY-O8=@protonmail.com>","date":"2024-10-01T15:31:00","subject":"Re: [PATCH v9 2/5] libcamera: geometry: Add two-point Rectangle\n\tconstructor","submitter":{"id":133,"url":"https://patchwork.libcamera.org/api/people/133/","name":"Pőcze Barnabás","email":"pobrn@protonmail.com"},"content":"Hi\n\n\n2024. október 1., kedd 9:50 keltezéssel, Jacopo Mondi <jacopo.mondi@ideasonboard.com> írta:\n\n> Hi Barnabás\n> \n> On Mon, Sep 30, 2024 at 10:50:30PM GMT, Barnabás Pőcze wrote:\n> > Hi\n> >\n> >\n> > 2024. szeptember 30., hétfő 21:59 keltezéssel, Jacopo Mondi <jacopo.mondi@ideasonboard.com> írta:\n> >\n> > > From: Yudhistira Erlandinata <yerlandinata@chromium.org>\n> > >\n> > > Add a constructor to the Rectangle class that accepts two points.\n> > >\n> > > The constructed Rectangle spans all the space between the two given\n> > > points.\n> > >\n> > > Signed-off-by: Yudhistira Erlandinata <yerlandinata@chromium.org>\n> > > Co-developed-by: Harvey Yang <chenghaoyang@chromium.org>\n> > > Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n> > > Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n> > > ---\n> > >  include/libcamera/geometry.h |  7 +++++\n> > >  src/libcamera/geometry.cpp   | 58 ++++++++++++++++++++++++++++++++++++\n> > >  test/geometry.cpp            | 14 +++++++++\n> > >  3 files changed, 79 insertions(+)\n> > >\n> > > diff --git a/include/libcamera/geometry.h b/include/libcamera/geometry.h\n> > > index 3e6f0f5d7fab..2cc25f1facd9 100644\n> > > --- a/include/libcamera/geometry.h\n> > > +++ b/include/libcamera/geometry.h\n> > > @@ -262,6 +262,13 @@ public:\n> > >  \t{\n> > >  \t}\n> > >\n> > > +\tconstexpr Rectangle(const Point &point1, const Point &point2)\n> > > +\t\t: Rectangle(std::min(point1.x, point2.x), std::min(point1.y, point2.y),\n> > > +\t\t\t    std::max(point1.x, point2.x) - std::min(point1.x, point2.x),\n> > > +\t\t\t    std::max(point1.y, point2.y) - std::min(point1.y, point2.y))\n> >\n> > The subtraction can lead to under/overflow. I believe simply casting to\n> > `unsigned` avoids that, e.g.:\n> >\n> >   unsigned(std::max(point1.x, point2.x)) - unsigned(std::min(point1.x, point2.x))\n> >\n> > Although I don't foresee it causing any issues, since the fix is easy,\n> > I think it's worth doing.\n> \n> Is this because we're subtracting two signed values and assign the\n> result to an unsigned ?\n\nSimply subtracting two signed integers can be problematic. E.g.\n\n  std::numeric_limits<int>::max() - std::numeric_limits<int>::min()\n\nThe result is not representable as an `int`. But after casting to `unsigned`,\nthe subtraction is valid, and result is `std::numeric_limits<unsigned>::max()`\nas expected.\n\n\nRegards,\nBarnabás Pőcze\n\n\n> \n> It shouldn't be an issue, but better safe than sorry, so I'll happily\n> take your suggestion in.\n> \n> Thanks\n>   j\n> \n> >\n> >\n> > Regards,\n> > Barnabás Pőcze\n> >\n> > > +\t{\n> > > +\t}\n> > > +\n> > >  \tint x;\n> > >  \tint y;\n> > >  \tunsigned int width;\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 21BA5C3257\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  1 Oct 2024 15:31:09 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id C2A6C6351F;\n\tTue,  1 Oct 2024 17:31:07 +0200 (CEST)","from mail-4322.protonmail.ch (mail-4322.protonmail.ch\n\t[185.70.43.22])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 032B060553\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  1 Oct 2024 17:31:05 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=protonmail.com header.i=@protonmail.com\n\theader.b=\"nJKZOqQ0\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;\n\ts=protonmail3; t=1727796665; x=1728055865;\n\tbh=X+iP/7UDivPlSGeXtPWpS5SGzLzFwtxReBJT5MhkiLQ=;\n\th=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:\n\tFeedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:\n\tMessage-ID:BIMI-Selector;\n\tb=nJKZOqQ0Ly/9RkNVaWPc4UqUKvcpdcWiU/g0rlUP+Zs67Hv1FY/TmxeYvzlqFOQ1u\n\tbzDF0w/M5xwG8gujJSyjZP2B0aAL58Ex9YzSchPsY09N+G/GOMYBFowdHXe8gucOpZ\n\tNEsBTtKDN0pyCsAvqunSnOgRGlmAzCZVBI2XGwf1OP1J6R6BCFwzZMK3wQ88KvzfXH\n\t7dQdHN8GNZaPW33d2/ZRflGHisbATXw8lPilq2IX4O/6pFlkxKRA0YXd5q0XD4ekLr\n\twdtfTEz3eb6iNX2CyqcWPXtCr1CMvhiNPk9otFf98CEvrUeAZwftcyfCsWgTG+MFPS\n\tPS+pUAxr8ydlw==","Date":"Tue, 01 Oct 2024 15:31:00 +0000","To":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","From":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <pobrn@protonmail.com>","Cc":"libcamera-devel@lists.libcamera.org,\n\tHarvey Yang <chenghaoyang@google.com>, \n\tYudhistira Erlandinata <yerlandinata@chromium.org>,\n\tHarvey Yang <chenghaoyang@chromium.org>","Subject":"Re: [PATCH v9 2/5] libcamera: geometry: Add two-point Rectangle\n\tconstructor","Message-ID":"<VDSGSiXFrVIcbpFTco2zWU8Xpd3rDMAavdRd5WRG239Pi24lmpwaqtAwA055BY3KsSRB6qP-yLZDPzEf12ht8qwQiMd0ywvNVfBaHBrY-O8=@protonmail.com>","In-Reply-To":"<qp624xtiwrpqzlqwqs244fqnyp6okicpwhzrygdtn3twv3hx74@z5sxk5hpevj3>","References":"<20240930195915.152187-1-jacopo.mondi@ideasonboard.com>\n\t<20240930195915.152187-3-jacopo.mondi@ideasonboard.com>\n\t<r3VXNfvPT3dS1HS8_w-LgMsRnlRRfhbjnpV7RDF2CIvNA56VqFr6iBi8e6YqjE6XjQxV-xOWe3oS4bQqSDBnA_1eww1_EsuT7JfabBJEypI=@protonmail.com>\n\t<qp624xtiwrpqzlqwqs244fqnyp6okicpwhzrygdtn3twv3hx74@z5sxk5hpevj3>","Feedback-ID":"20568564:user:proton","X-Pm-Message-ID":"4146a177aa47dbd180d635072eac3b703462f8e8","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Transfer-Encoding":"quoted-printable","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":31508,"web_url":"https://patchwork.libcamera.org/comment/31508/","msgid":"<20241001180842.GD6117@pendragon.ideasonboard.com>","date":"2024-10-01T18:08:42","subject":"Re: [PATCH v9 2/5] libcamera: geometry: Add two-point Rectangle\n\tconstructor","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Mon, Sep 30, 2024 at 09:59:10PM +0200, Jacopo Mondi wrote:\n> From: Yudhistira Erlandinata <yerlandinata@chromium.org>\n> \n> Add a constructor to the Rectangle class that accepts two points.\n> \n> The constructed Rectangle spans all the space between the two given\n> points.\n> \n> Signed-off-by: Yudhistira Erlandinata <yerlandinata@chromium.org>\n> Co-developed-by: Harvey Yang <chenghaoyang@chromium.org>\n> Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n> Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n> ---\n>  include/libcamera/geometry.h |  7 +++++\n>  src/libcamera/geometry.cpp   | 58 ++++++++++++++++++++++++++++++++++++\n>  test/geometry.cpp            | 14 +++++++++\n>  3 files changed, 79 insertions(+)\n> \n> diff --git a/include/libcamera/geometry.h b/include/libcamera/geometry.h\n> index 3e6f0f5d7fab..2cc25f1facd9 100644\n> --- a/include/libcamera/geometry.h\n> +++ b/include/libcamera/geometry.h\n> @@ -262,6 +262,13 @@ public:\n>  \t{\n>  \t}\n>  \n> +\tconstexpr Rectangle(const Point &point1, const Point &point2)\n> +\t\t: Rectangle(std::min(point1.x, point2.x), std::min(point1.y, point2.y),\n> +\t\t\t    std::max(point1.x, point2.x) - std::min(point1.x, point2.x),\n> +\t\t\t    std::max(point1.y, point2.y) - std::min(point1.y, point2.y))\n> +\t{\n> +\t}\n> +\n>  \tint x;\n>  \tint y;\n>  \tunsigned int width;\n> diff --git a/src/libcamera/geometry.cpp b/src/libcamera/geometry.cpp\n> index 6eb432e5d803..5e5e72e15d67 100644\n> --- a/src/libcamera/geometry.cpp\n> +++ b/src/libcamera/geometry.cpp\n> @@ -715,6 +715,64 @@ std::ostream &operator<<(std::ostream &out, const SizeRange &sr)\n>   * \\param[in] size The desired Rectangle size\n>   */\n>  \n> +/**\n> + * \\fn Rectangle::Rectangle(const Point &point1, const Point &point2)\n> + * \\brief Construct a Rectangle with the two given points\n> + * \\param[in] point1 One of corners of the rectangle\n> + * \\param[in] point2 The opposite diagonal corner point of \\a point1\n> + *\n> + * Contruct a rectangle that spans the space between two given points. The\n> + * position of the two given points is not relevant for the rectangle's\n> + * contruction.\n> + *\n> + * \\verbatim\n> +\n> +  p1 = point1\n> +  p2 = point2\n> +\n> +          ^\n> +          |\n> +          |      ----------------p2\n> +          |     |                 |\n> +          |     |                 |\n> +          |     p1----------------\n> +          |\n> +          o------------------------------->\n> +         (0,0)\n> +\n> +          ^\n> +          |\n> +          |     p1----------------\n> +          |     |                 |\n> +          |     |                 |\n> +          |      ----------------p2\n> +          |\n> +          o------------------------------->\n> +         (0,0)\n> +\n> +          ^\n> +          |\n> +          |      ----------------p1\n> +          |     |                 |\n> +          |     |                 |\n> +          |     p2----------------\n> +          |\n> +          o------------------------------->\n> +         (0,0)\n> +\n> +          ^\n> +          |\n> +          |     p2----------------\n> +          |     |                 |\n> +          |     |                 |\n> +          |      ----------------p1\n> +          |\n> +          o------------------------------->\n> +         (0,0)\n> +\n> +   \\endverbatim\n> + */\n\nFollowing the comment on 1/5, I think this is also unnecessarily\ncomplicated.\n\n/**\n * \\fn Rectangle::Rectangle(const Point &point1, const Point &point2)\n * \\brief Construct a Rectangle from two opposite corners\n * \\param[in] point1 One of the corners of the rectangle\n * \\param[in] point2 The corner opposite to \\a point1\n */\n\n> +\n>  /**\n>   * \\var Rectangle::x\n>   * \\brief The horizontal coordinate of the rectangle's top-left corner\n> diff --git a/test/geometry.cpp b/test/geometry.cpp\n> index 64169206ad16..5760fa3c885a 100644\n> --- a/test/geometry.cpp\n> +++ b/test/geometry.cpp\n> @@ -481,6 +481,20 @@ protected:\n>  \t\t\treturn TestFail;\n>  \t\t}\n>  \n> +\t\tPoint topLeft(3, 3);\n> +\t\tPoint bottomRight(30, 30);\n> +\t\tPoint topRight(30, 3);\n> +\t\tPoint bottomLeft(3, 30);\n> +\t\tRectangle rect1(topLeft, bottomRight);\n> +\t\tRectangle rect2(topRight, bottomLeft);\n> +\t\tRectangle rect3(bottomRight, topLeft);\n> +\t\tRectangle rect4(bottomLeft, topRight);\n> +\n> +\t\tif (rect1 != rect2 || rect1 != rect3 || rect1 != rect4) {\n> +\t\t\tcout << \"Point-to-point construction failed\" << endl;\n> +\t\t\treturn TestFail;\n> +\t\t}\n> +\n>  \t\treturn TestPass;\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 572A8C3257\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  1 Oct 2024 18:08:47 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 071DB63528;\n\tTue,  1 Oct 2024 20:08:47 +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 07BBD63512\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  1 Oct 2024 20:08:45 +0200 (CEST)","from pendragon.ideasonboard.com (81-175-209-231.bb.dnainternet.fi\n\t[81.175.209.231])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id BF08C514;\n\tTue,  1 Oct 2024 20:07:12 +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=\"AKlYKgdG\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1727806033;\n\tbh=onThbJnG7DdytADK3FMhKjX94bQ14n+MdBRalJuliwg=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=AKlYKgdG1G6g4NhE9S7Lb4ZB4rAypc7es5YjoUU0GRb4JVW5hTCdFy8+aBsM0IKqd\n\tgjIFN61I8Tr8cNVtRvao/wJGHYw6BZF0W6+nSdrMVm2B0hXfVTU5vUdd5h9Yv9SyeI\n\tRcPXeVjpUUBB5ix+iFilhORSCp/VSl2YKqsm1SZY=","Date":"Tue, 1 Oct 2024 21:08:42 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org,\n\tHarvey Yang <chenghaoyang@google.com>, \n\tYudhistira Erlandinata <yerlandinata@chromium.org>,\n\tHarvey Yang <chenghaoyang@chromium.org>","Subject":"Re: [PATCH v9 2/5] libcamera: geometry: Add two-point Rectangle\n\tconstructor","Message-ID":"<20241001180842.GD6117@pendragon.ideasonboard.com>","References":"<20240930195915.152187-1-jacopo.mondi@ideasonboard.com>\n\t<20240930195915.152187-3-jacopo.mondi@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20240930195915.152187-3-jacopo.mondi@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>"}}]