[{"id":20553,"web_url":"https://patchwork.libcamera.org/comment/20553/","msgid":"<163533170027.1184428.12425995371142357930@Monstersaurus>","date":"2021-10-27T10:48:20","subject":"Re: [libcamera-devel] [PATCH v3 4/9] libcamera: bayer_format: Add\n\tPixelFormat conversion helpers to BayerFormat class","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Naushir Patuck (2021-10-27 10:27:58)\n> Add BayerFormat::toPixelFormat() and BayerFormat::fromPixelFormat() helper\n> functions to convert between BayerFormat and PixelFormat types.\n> \n> Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> Reviewed-by: David Plowman <david.plowman@raspberrypi.com>\n> ---\n>  include/libcamera/internal/bayer_format.h |  4 ++++\n>  src/libcamera/bayer_format.cpp            | 29 +++++++++++++++++++++++\n>  2 files changed, 33 insertions(+)\n> \n> diff --git a/include/libcamera/internal/bayer_format.h b/include/libcamera/internal/bayer_format.h\n> index 723382d4168d..ee96b9a86707 100644\n> --- a/include/libcamera/internal/bayer_format.h\n> +++ b/include/libcamera/internal/bayer_format.h\n> @@ -10,6 +10,8 @@\n>  #include <stdint.h>\n>  #include <string>\n>  \n> +#include <libcamera/pixel_format.h>\n> +\n>  #include \"libcamera/internal/v4l2_pixelformat.h\"\n>  \n>  namespace libcamera {\n> @@ -50,6 +52,8 @@ public:\n>  \n>         V4L2PixelFormat toV4L2PixelFormat() const;\n>         static BayerFormat fromV4L2PixelFormat(V4L2PixelFormat v4l2Format);\n> +       PixelFormat toPixelFormat() const;\n> +       static BayerFormat fromPixelFormat(PixelFormat format);\n>         BayerFormat transform(Transform t) const;\n>  \n>         Order order;\n> diff --git a/src/libcamera/bayer_format.cpp b/src/libcamera/bayer_format.cpp\n> index 94e2294d7f6c..1edd238829ce 100644\n> --- a/src/libcamera/bayer_format.cpp\n> +++ b/src/libcamera/bayer_format.cpp\n> @@ -305,6 +305,35 @@ BayerFormat BayerFormat::fromV4L2PixelFormat(V4L2PixelFormat v4l2Format)\n>         return BayerFormat();\n>  }\n>  \n> +/**\n> + * \\brief Convert a BayerFormat into the corresponding PixelFormat\n> + * \\return The PixelFormat corresponding to this BayerFormat\n> + */\n> +PixelFormat BayerFormat::toPixelFormat() const\n> +{\n> +       const auto it = bayerToFormat.find(*this);\n> +       if (it != bayerToFormat.end())\n> +               return it->second.pixelFormat;\n> +\n> +       return PixelFormat();\n> +}\n> +\n> +/**\n> + * \\brief Convert a PixelFormat into the corresponding BayerFormat\n> + * \\return The BayerFormat corresponding to this PixelFormat\n> + */\n> +BayerFormat BayerFormat::fromPixelFormat(PixelFormat format)\n> +{\n> +       auto it = std::find_if(bayerToFormat.begin(), bayerToFormat.end(),\n> +                              [format](const auto &i) {\n> +                                      return i.second.pixelFormat == format;\n> +                              });\n> +       if (it == bayerToFormat.end())\n> +               return BayerFormat{};\n> +\n> +       return it->first;\n\nI'm curious why you have used two styles in the two functions.\n\nBayerFormat::toPixelFormat is \n  if (it != end)\n     return it;\n  return Empty;\n\nwhile BayerFormat::fromPixelFormat is\n  if (it == end)\n     return Empty;\n\n  return it;\n\nIf there's no technical reason for this, I think keeping them both using\nthe same pattern would be more consistent, but ... they are both\nfunctional, so I don't see this as a blocker. (Personally I'd use the\nBayerFormat::toPixelFormat style on both)\n\nSo either way:\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n> +}\n> +\n>  /**\n>   * \\brief Apply a transform to this BayerFormat\n>   * \\param[in] t The transform to apply\n> -- \n> 2.25.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 93963BF415\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 27 Oct 2021 10:48:24 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id EA35A64882;\n\tWed, 27 Oct 2021 12:48:23 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 7289160123\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 27 Oct 2021 12:48:22 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 201E2596;\n\tWed, 27 Oct 2021 12:48: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=\"E49eMpf8\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1635331702;\n\tbh=nD8B/nMjhEngUZFYI/8KZIoBAb/REeU9/3bLSlntjsM=;\n\th=In-Reply-To:References:Subject:From:To:Date:From;\n\tb=E49eMpf8NYNw3oApGfkGL5r2TWrHO5pM9TKPR+sgosubZG4FHdv9E03WDOyIX+DZ0\n\tENlUeyp8lX3tepURXtzvPADMp70ExBh6t/71xQav7IQYcqEN59mlggkpRA9WujPVwh\n\txPXO6LZRoga+cW3MJXAxeGw6Li/UTDk/o2G/95Y8=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20211027092803.3671096-5-naush@raspberrypi.com>","References":"<20211027092803.3671096-1-naush@raspberrypi.com>\n\t<20211027092803.3671096-5-naush@raspberrypi.com>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","To":"Naushir Patuck <naush@raspberrypi.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Wed, 27 Oct 2021 11:48:20 +0100","Message-ID":"<163533170027.1184428.12425995371142357930@Monstersaurus>","User-Agent":"alot/0.9.1","Subject":"Re: [libcamera-devel] [PATCH v3 4/9] libcamera: bayer_format: Add\n\tPixelFormat conversion helpers to BayerFormat class","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":20557,"web_url":"https://patchwork.libcamera.org/comment/20557/","msgid":"<YXk8cRboK2ndiJ4b@pendragon.ideasonboard.com>","date":"2021-10-27T11:48:01","subject":"Re: [libcamera-devel] [PATCH v3 4/9] libcamera: bayer_format: Add\n\tPixelFormat conversion helpers to BayerFormat class","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Wed, Oct 27, 2021 at 11:48:20AM +0100, Kieran Bingham wrote:\n> Quoting Naushir Patuck (2021-10-27 10:27:58)\n> > Add BayerFormat::toPixelFormat() and BayerFormat::fromPixelFormat() helper\n> > functions to convert between BayerFormat and PixelFormat types.\n> > \n> > Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> > Reviewed-by: David Plowman <david.plowman@raspberrypi.com>\n> > ---\n> >  include/libcamera/internal/bayer_format.h |  4 ++++\n> >  src/libcamera/bayer_format.cpp            | 29 +++++++++++++++++++++++\n> >  2 files changed, 33 insertions(+)\n> > \n> > diff --git a/include/libcamera/internal/bayer_format.h b/include/libcamera/internal/bayer_format.h\n> > index 723382d4168d..ee96b9a86707 100644\n> > --- a/include/libcamera/internal/bayer_format.h\n> > +++ b/include/libcamera/internal/bayer_format.h\n> > @@ -10,6 +10,8 @@\n> >  #include <stdint.h>\n> >  #include <string>\n> >  \n> > +#include <libcamera/pixel_format.h>\n> > +\n> >  #include \"libcamera/internal/v4l2_pixelformat.h\"\n> >  \n> >  namespace libcamera {\n> > @@ -50,6 +52,8 @@ public:\n> >  \n> >         V4L2PixelFormat toV4L2PixelFormat() const;\n> >         static BayerFormat fromV4L2PixelFormat(V4L2PixelFormat v4l2Format);\n> > +       PixelFormat toPixelFormat() const;\n> > +       static BayerFormat fromPixelFormat(PixelFormat format);\n> >         BayerFormat transform(Transform t) const;\n> >  \n> >         Order order;\n> > diff --git a/src/libcamera/bayer_format.cpp b/src/libcamera/bayer_format.cpp\n> > index 94e2294d7f6c..1edd238829ce 100644\n> > --- a/src/libcamera/bayer_format.cpp\n> > +++ b/src/libcamera/bayer_format.cpp\n> > @@ -305,6 +305,35 @@ BayerFormat BayerFormat::fromV4L2PixelFormat(V4L2PixelFormat v4l2Format)\n> >         return BayerFormat();\n> >  }\n> >  \n> > +/**\n> > + * \\brief Convert a BayerFormat into the corresponding PixelFormat\n> > + * \\return The PixelFormat corresponding to this BayerFormat\n> > + */\n> > +PixelFormat BayerFormat::toPixelFormat() const\n> > +{\n> > +       const auto it = bayerToFormat.find(*this);\n> > +       if (it != bayerToFormat.end())\n> > +               return it->second.pixelFormat;\n> > +\n> > +       return PixelFormat();\n> > +}\n> > +\n> > +/**\n> > + * \\brief Convert a PixelFormat into the corresponding BayerFormat\n> > + * \\return The BayerFormat corresponding to this PixelFormat\n> > + */\n> > +BayerFormat BayerFormat::fromPixelFormat(PixelFormat format)\n> > +{\n> > +       auto it = std::find_if(bayerToFormat.begin(), bayerToFormat.end(),\n> > +                              [format](const auto &i) {\n> > +                                      return i.second.pixelFormat == format;\n> > +                              });\n> > +       if (it == bayerToFormat.end())\n> > +               return BayerFormat{};\n> > +\n> > +       return it->first;\n> \n> I'm curious why you have used two styles in the two functions.\n> \n> BayerFormat::toPixelFormat is \n>   if (it != end)\n>      return it;\n>   return Empty;\n> \n> while BayerFormat::fromPixelFormat is\n>   if (it == end)\n>      return Empty;\n> \n>   return it;\n> \n> If there's no technical reason for this, I think keeping them both using\n> the same pattern would be more consistent, but ... they are both\n> functional, so I don't see this as a blocker. (Personally I'd use the\n> BayerFormat::toPixelFormat style on both)\n\nFunny how personal preferences differ, I would have used the latter\n(a.k.a. return on error) style :-)\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n> So either way:\n> \n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> \n> > +}\n> > +\n> >  /**\n> >   * \\brief Apply a transform to this BayerFormat\n> >   * \\param[in] t The transform to apply","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 B91D0BDB1C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 27 Oct 2021 11:48:27 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 154C66487F;\n\tWed, 27 Oct 2021 13:48:27 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 9A50760123\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 27 Oct 2021 13:48:25 +0200 (CEST)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 03B5F596;\n\tWed, 27 Oct 2021 13:48:24 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"j6J/6vVu\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1635335305;\n\tbh=K9llZhqPXrKyAcPcQtroyZwRqQ9TmC9Z1r85qXGpyHA=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=j6J/6vVu/usy7K9rjd0bVdCIXypgcKwTb7baBIt67iNXEsl4OEyWAXviZzTIVidfP\n\tlykxJ1CKLF2u9LSv6RXfQ6xDuRhSCR/nsY3ZpAddMdBBXYGxL+sO/mfioLx1ziiO4N\n\tRE44wB39mVHZXNc8trnQamaUOFwXwvUQHx3F1aac=","Date":"Wed, 27 Oct 2021 14:48:01 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<YXk8cRboK2ndiJ4b@pendragon.ideasonboard.com>","References":"<20211027092803.3671096-1-naush@raspberrypi.com>\n\t<20211027092803.3671096-5-naush@raspberrypi.com>\n\t<163533170027.1184428.12425995371142357930@Monstersaurus>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<163533170027.1184428.12425995371142357930@Monstersaurus>","Subject":"Re: [libcamera-devel] [PATCH v3 4/9] libcamera: bayer_format: Add\n\tPixelFormat conversion helpers to BayerFormat class","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":20567,"web_url":"https://patchwork.libcamera.org/comment/20567/","msgid":"<CAEmqJPpoooPX51=+cTQ8pbZHU7j6v_-w11sEMq1-ayHzz8TREQ@mail.gmail.com>","date":"2021-10-27T12:34:28","subject":"Re: [libcamera-devel] [PATCH v3 4/9] libcamera: bayer_format: Add\n\tPixelFormat conversion helpers to BayerFormat class","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"Hi,\n\nOn Wed, 27 Oct 2021 at 12:48, Laurent Pinchart <\nlaurent.pinchart@ideasonboard.com> wrote:\n\n> On Wed, Oct 27, 2021 at 11:48:20AM +0100, Kieran Bingham wrote:\n> > Quoting Naushir Patuck (2021-10-27 10:27:58)\n> > > Add BayerFormat::toPixelFormat() and BayerFormat::fromPixelFormat()\n> helper\n> > > functions to convert between BayerFormat and PixelFormat types.\n> > >\n> > > Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> > > Reviewed-by: David Plowman <david.plowman@raspberrypi.com>\n> > > ---\n> > >  include/libcamera/internal/bayer_format.h |  4 ++++\n> > >  src/libcamera/bayer_format.cpp            | 29 +++++++++++++++++++++++\n> > >  2 files changed, 33 insertions(+)\n> > >\n> > > diff --git a/include/libcamera/internal/bayer_format.h\n> b/include/libcamera/internal/bayer_format.h\n> > > index 723382d4168d..ee96b9a86707 100644\n> > > --- a/include/libcamera/internal/bayer_format.h\n> > > +++ b/include/libcamera/internal/bayer_format.h\n> > > @@ -10,6 +10,8 @@\n> > >  #include <stdint.h>\n> > >  #include <string>\n> > >\n> > > +#include <libcamera/pixel_format.h>\n> > > +\n> > >  #include \"libcamera/internal/v4l2_pixelformat.h\"\n> > >\n> > >  namespace libcamera {\n> > > @@ -50,6 +52,8 @@ public:\n> > >\n> > >         V4L2PixelFormat toV4L2PixelFormat() const;\n> > >         static BayerFormat fromV4L2PixelFormat(V4L2PixelFormat\n> v4l2Format);\n> > > +       PixelFormat toPixelFormat() const;\n> > > +       static BayerFormat fromPixelFormat(PixelFormat format);\n> > >         BayerFormat transform(Transform t) const;\n> > >\n> > >         Order order;\n> > > diff --git a/src/libcamera/bayer_format.cpp\n> b/src/libcamera/bayer_format.cpp\n> > > index 94e2294d7f6c..1edd238829ce 100644\n> > > --- a/src/libcamera/bayer_format.cpp\n> > > +++ b/src/libcamera/bayer_format.cpp\n> > > @@ -305,6 +305,35 @@ BayerFormat\n> BayerFormat::fromV4L2PixelFormat(V4L2PixelFormat v4l2Format)\n> > >         return BayerFormat();\n> > >  }\n> > >\n> > > +/**\n> > > + * \\brief Convert a BayerFormat into the corresponding PixelFormat\n> > > + * \\return The PixelFormat corresponding to this BayerFormat\n> > > + */\n> > > +PixelFormat BayerFormat::toPixelFormat() const\n> > > +{\n> > > +       const auto it = bayerToFormat.find(*this);\n> > > +       if (it != bayerToFormat.end())\n> > > +               return it->second.pixelFormat;\n> > > +\n> > > +       return PixelFormat();\n> > > +}\n> > > +\n> > > +/**\n> > > + * \\brief Convert a PixelFormat into the corresponding BayerFormat\n> > > + * \\return The BayerFormat corresponding to this PixelFormat\n> > > + */\n> > > +BayerFormat BayerFormat::fromPixelFormat(PixelFormat format)\n> > > +{\n> > > +       auto it = std::find_if(bayerToFormat.begin(),\n> bayerToFormat.end(),\n> > > +                              [format](const auto &i) {\n> > > +                                      return i.second.pixelFormat ==\n> format;\n> > > +                              });\n> > > +       if (it == bayerToFormat.end())\n> > > +               return BayerFormat{};\n> > > +\n> > > +       return it->first;\n> >\n> > I'm curious why you have used two styles in the two functions.\n> >\n> > BayerFormat::toPixelFormat is\n> >   if (it != end)\n> >      return it;\n> >   return Empty;\n> >\n> > while BayerFormat::fromPixelFormat is\n> >   if (it == end)\n> >      return Empty;\n> >\n> >   return it;\n> >\n> > If there's no technical reason for this, I think keeping them both using\n> > the same pattern would be more consistent, but ... they are both\n> > functional, so I don't see this as a blocker. (Personally I'd use the\n> > BayerFormat::toPixelFormat style on both)\n>\n> Funny how personal preferences differ, I would have used the latter\n> (a.k.a. return on error) style :-)\n>\n\nI'll use the  BayerFormat::toPixelFormat style this time round as that\nmatches\nwhat the other functions in this file do.\n\nRegards,\nNaush\n\n\n> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n>\n> > So either way:\n> >\n> > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> >\n> > > +}\n> > > +\n> > >  /**\n> > >   * \\brief Apply a transform to this BayerFormat\n> > >   * \\param[in] t The transform to apply\n>\n> --\n> Regards,\n>\n> Laurent Pinchart\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 7E5E9BDB1C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 27 Oct 2021 12:34:48 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3FB9564881;\n\tWed, 27 Oct 2021 14:34:48 +0200 (CEST)","from mail-lf1-x129.google.com (mail-lf1-x129.google.com\n\t[IPv6:2a00:1450:4864:20::129])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 37BBF6486B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 27 Oct 2021 14:34:45 +0200 (CEST)","by mail-lf1-x129.google.com with SMTP id u21so5815668lff.8\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 27 Oct 2021 05:34:45 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=raspberrypi.com header.i=@raspberrypi.com\n\theader.b=\"lJrDK/fG\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=mime-version:references:in-reply-to:from:date:message-id:subject:to\n\t:cc; bh=31f4RJRlk53suNqnCO/u2HizxID2j916Pxny72xva2I=;\n\tb=lJrDK/fGUmZ08Rld65l2WbSP/2GDo00v0dXca7XV8Zyk8OxcrwCwWfuWBRRGNpYRYG\n\t0qVZJFmuXKoMK9K+6a+OFsabUQLa9QY1jWthVwXLaG6JKL7M1uPo1oHTZmV7TpzMUiVw\n\tr9c+DogWDlgq5i60TIKHkgWxTtdao9gSVnVKJCD2RHSGPZqtTrCsTW0hJYoVQFxFWtO0\n\t4i6Vp37mhlRm0OHZGZIkjyJxk+1GTKn19zMPjtG807uZbzex5wnr8IljTZxSRmkCqeOw\n\tvBHDdYrT/uBgwKDBCLxFs/ASTxlUV4Fw8Q73bdF47idaXadmbMFrHa22QcxWyHCbsCti\n\tJtWg==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc;\n\tbh=31f4RJRlk53suNqnCO/u2HizxID2j916Pxny72xva2I=;\n\tb=g9FMCDXp/niYoztlS4hsEQ67AqyQFrn55UJ58SMFNYPfz8P+mn9Lr1P/XGRvPQVloZ\n\t1nXlJHwFaTiRB4DTkLSkQj2/vWlf/9Ju4z/76NASBY7x3RIcNg8sOZ3Nj8ONHWg5psmf\n\tMqgdT+GmBW2nKHS+0AXRn8eo34OUyh43Sb8k9WZKZI/I3Q1t4EQDKjrijEBnNNtvRJSG\n\tAKkg8I4HWre5CZ97g5rXQjTdTjLomKlzwEs3LMjhYzG+P+rDP4q7c8HnLQXUl/eFOe7W\n\tH1yxeFjxLbDh3w1CksWJMiqw6k4O+an0kwW8b+Vob8ZCXDtrKnJGWFY4OhBUOGzaUHoS\n\tCu5g==","X-Gm-Message-State":"AOAM532pIln2h4eU621sTF97K4vFyjWbBFzVXZJR+9VGt55O30esmdXB\n\tsH2Bsk33IyqsvREzM3YFu7M7e46E8en6jOiQ9AGmAA==","X-Google-Smtp-Source":"ABdhPJzI2rlOSSIowXYrVGDhk8bX31roHu6/Uh0U/To0gxZ8j5YDSrYF6w8voV2hnrAURdgKuc1od6lndG7VTKWuvhc=","X-Received":"by 2002:a05:6512:39d1:: with SMTP id\n\tk17mr14657526lfu.79.1635338084661; \n\tWed, 27 Oct 2021 05:34:44 -0700 (PDT)","MIME-Version":"1.0","References":"<20211027092803.3671096-1-naush@raspberrypi.com>\n\t<20211027092803.3671096-5-naush@raspberrypi.com>\n\t<163533170027.1184428.12425995371142357930@Monstersaurus>\n\t<YXk8cRboK2ndiJ4b@pendragon.ideasonboard.com>","In-Reply-To":"<YXk8cRboK2ndiJ4b@pendragon.ideasonboard.com>","From":"Naushir Patuck <naush@raspberrypi.com>","Date":"Wed, 27 Oct 2021 13:34:28 +0100","Message-ID":"<CAEmqJPpoooPX51=+cTQ8pbZHU7j6v_-w11sEMq1-ayHzz8TREQ@mail.gmail.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Content-Type":"multipart/alternative; boundary=\"0000000000009fcd2b05cf54d12e\"","Subject":"Re: [libcamera-devel] [PATCH v3 4/9] libcamera: bayer_format: Add\n\tPixelFormat conversion helpers to BayerFormat class","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]