[{"id":31355,"web_url":"https://patchwork.libcamera.org/comment/31355/","msgid":"<172725549548.3726802.5497726576190898879@ping.linuxembedded.co.uk>","date":"2024-09-25T09:11:35","subject":"Re: [PATCH] libcamera: rkisp1: Eliminate hard-coded resizer limits","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Umang Jain (2024-09-24 08:13:41)\n> The resizer limits are dynamically queried in populateFormats() and\n> assigned to minResolution_ and maxResolution_. Therefore, initializing\n> these values in the constructor is unnecessary.\n> \n> This change allows us to remove the hard-coded max/min resolution limits\n> from RkISP1Path, simplifying its constructor further.\n> \n\nThis looks reasonable to me.\n\nI can see that the sizes are set correctly at PopulateFormats, and as\nthe types are a Size, there is no possibility of use of uninitialized\ndata, so this all looks good to me.\n\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>\n> ---\n>  src/libcamera/pipeline/rkisp1/rkisp1_path.cpp | 21 ++++++-------------\n>  src/libcamera/pipeline/rkisp1/rkisp1_path.h   |  3 +--\n>  2 files changed, 7 insertions(+), 17 deletions(-)\n> \n> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp b/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n> index c49017d1..8015c58c 100644\n> --- a/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n> +++ b/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n> @@ -54,11 +54,8 @@ const std::map<PixelFormat, uint32_t> formatToMediaBus = {\n>  \n>  } /* namespace */\n>  \n> -RkISP1Path::RkISP1Path(const char *name, const Span<const PixelFormat> &formats,\n> -                      const Size &minResolution, const Size &maxResolution)\n> -       : name_(name), running_(false), formats_(formats),\n> -         minResolution_(minResolution), maxResolution_(maxResolution),\n> -         link_(nullptr)\n> +RkISP1Path::RkISP1Path(const char *name, const Span<const PixelFormat> &formats)\n> +       : name_(name), running_(false), formats_(formats), link_(nullptr)\n>  {\n>  }\n>  \n> @@ -435,12 +432,10 @@ void RkISP1Path::stop()\n>  }\n>  \n>  /*\n> - * \\todo Remove the hardcoded resolutions and formats once all users will have\n> - * migrated to a recent enough kernel.\n> + * \\todo Remove the hardcoded formats once all users will have migrated to a\n> + * recent enough kernel.\n>   */\n>  namespace {\n> -constexpr Size RKISP1_RSZ_MP_SRC_MIN{ 32, 16 };\n> -constexpr Size RKISP1_RSZ_MP_SRC_MAX{ 4416, 3312 };\n>  constexpr std::array<PixelFormat, 18> RKISP1_RSZ_MP_FORMATS{\n>         formats::YUYV,\n>         formats::NV16,\n> @@ -462,8 +457,6 @@ constexpr std::array<PixelFormat, 18> RKISP1_RSZ_MP_FORMATS{\n>         formats::SRGGB12,\n>  };\n>  \n> -constexpr Size RKISP1_RSZ_SP_SRC_MIN{ 32, 16 };\n> -constexpr Size RKISP1_RSZ_SP_SRC_MAX{ 1920, 1920 };\n>  constexpr std::array<PixelFormat, 8> RKISP1_RSZ_SP_FORMATS{\n>         formats::YUYV,\n>         formats::NV16,\n> @@ -477,14 +470,12 @@ constexpr std::array<PixelFormat, 8> RKISP1_RSZ_SP_FORMATS{\n>  } /* namespace */\n>  \n>  RkISP1MainPath::RkISP1MainPath()\n> -       : RkISP1Path(\"main\", RKISP1_RSZ_MP_FORMATS,\n> -                    RKISP1_RSZ_MP_SRC_MIN, RKISP1_RSZ_MP_SRC_MAX)\n> +       : RkISP1Path(\"main\", RKISP1_RSZ_MP_FORMATS)\n>  {\n>  }\n>  \n>  RkISP1SelfPath::RkISP1SelfPath()\n> -       : RkISP1Path(\"self\", RKISP1_RSZ_SP_FORMATS,\n> -                    RKISP1_RSZ_SP_SRC_MIN, RKISP1_RSZ_SP_SRC_MAX)\n> +       : RkISP1Path(\"self\", RKISP1_RSZ_SP_FORMATS)\n>  {\n>  }\n>  \n> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1_path.h b/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n> index 08edefec..d33471e4 100644\n> --- a/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n> +++ b/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n> @@ -32,8 +32,7 @@ struct V4L2SubdeviceFormat;\n>  class RkISP1Path\n>  {\n>  public:\n> -       RkISP1Path(const char *name, const Span<const PixelFormat> &formats,\n> -                  const Size &minResolution, const Size &maxResolution);\n> +       RkISP1Path(const char *name, const Span<const PixelFormat> &formats);\n>  \n>         bool init(MediaDevice *media);\n>  \n> -- \n> 2.45.2\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 C10A6C0F1B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 25 Sep 2024 09:11:40 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id F40FF6350F;\n\tWed, 25 Sep 2024 11:11:39 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 03014634F4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 25 Sep 2024 11:11:38 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 5F1DD5B2;\n\tWed, 25 Sep 2024 11:10:11 +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=\"qyTlirdF\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1727255411;\n\tbh=uUaZUNUKeSwAWCC/n4nJIZOkJ6T2cFOt8VWpZaLywPE=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=qyTlirdFWnDHRwRR4JNxUlVdldb1qmNnm6iIqMKpLdF3zFRPqbx5IL1WOUD4SBTH+\n\tFz00Zd1WOQATxPVO3Wgkq4CP/UEYiSzh9XCkNAPOHvs0/Q5QuFsgyRwX1/8PaVYV6H\n\thSxqqAUidQOHpLs00IneoPHpVycKOYlrvSYnTHdo=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20240924071341.24424-1-umang.jain@ideasonboard.com>","References":"<20240924071341.24424-1-umang.jain@ideasonboard.com>","Subject":"Re: [PATCH] libcamera: rkisp1: Eliminate hard-coded resizer limits","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Umang Jain <umang.jain@ideasonboard.com>","To":"Umang Jain <umang.jain@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Wed, 25 Sep 2024 10:11:35 +0100","Message-ID":"<172725549548.3726802.5497726576190898879@ping.linuxembedded.co.uk>","User-Agent":"alot/0.10","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":31382,"web_url":"https://patchwork.libcamera.org/comment/31382/","msgid":"<wmjc6upxmdqb6hp2bn7widmk3yrkuhllnfvj3ksyhpfonrqujx@ucmnaq5gxkyk>","date":"2024-09-26T09:21:08","subject":"Re: [PATCH] libcamera: rkisp1: Eliminate hard-coded resizer limits","submitter":{"id":143,"url":"https://patchwork.libcamera.org/api/people/143/","name":"Jacopo Mondi","email":"jacopo.mondi@ideasonboard.com"},"content":"Hi Umang\n\nOn Tue, Sep 24, 2024 at 12:43:41PM GMT, Umang Jain wrote:\n> The resizer limits are dynamically queried in populateFormats() and\n\nIs this the resizer ?\n\nminResolution_ and maxResolution_ are populated from the list of\nformats from video_ and if I recall correctly RkISP1 has an explicit\nresizer entity, right ?\n\n> assigned to minResolution_ and maxResolution_. Therefore, initializing\n> these values in the constructor is unnecessary.\n>\n> This change allows us to remove the hard-coded max/min resolution limits\n> from RkISP1Path, simplifying its constructor further.\n>\n> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>\n> ---\n>  src/libcamera/pipeline/rkisp1/rkisp1_path.cpp | 21 ++++++-------------\n>  src/libcamera/pipeline/rkisp1/rkisp1_path.h   |  3 +--\n>  2 files changed, 7 insertions(+), 17 deletions(-)\n>\n> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp b/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n> index c49017d1..8015c58c 100644\n> --- a/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n> +++ b/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n> @@ -54,11 +54,8 @@ const std::map<PixelFormat, uint32_t> formatToMediaBus = {\n>\n>  } /* namespace */\n>\n> -RkISP1Path::RkISP1Path(const char *name, const Span<const PixelFormat> &formats,\n> -\t\t       const Size &minResolution, const Size &maxResolution)\n> -\t: name_(name), running_(false), formats_(formats),\n> -\t  minResolution_(minResolution), maxResolution_(maxResolution),\n> -\t  link_(nullptr)\n> +RkISP1Path::RkISP1Path(const char *name, const Span<const PixelFormat> &formats)\n> +\t: name_(name), running_(false), formats_(formats), link_(nullptr)\n>  {\n>  }\n>\n> @@ -435,12 +432,10 @@ void RkISP1Path::stop()\n>  }\n>\n>  /*\n> - * \\todo Remove the hardcoded resolutions and formats once all users will have\n> - * migrated to a recent enough kernel.\n> + * \\todo Remove the hardcoded formats once all users will have migrated to a\n> + * recent enough kernel.\n>   */\n>  namespace {\n> -constexpr Size RKISP1_RSZ_MP_SRC_MIN{ 32, 16 };\n> -constexpr Size RKISP1_RSZ_MP_SRC_MAX{ 4416, 3312 };\n>  constexpr std::array<PixelFormat, 18> RKISP1_RSZ_MP_FORMATS{\n>  \tformats::YUYV,\n>  \tformats::NV16,\n> @@ -462,8 +457,6 @@ constexpr std::array<PixelFormat, 18> RKISP1_RSZ_MP_FORMATS{\n>  \tformats::SRGGB12,\n>  };\n>\n> -constexpr Size RKISP1_RSZ_SP_SRC_MIN{ 32, 16 };\n> -constexpr Size RKISP1_RSZ_SP_SRC_MAX{ 1920, 1920 };\n>  constexpr std::array<PixelFormat, 8> RKISP1_RSZ_SP_FORMATS{\n>  \tformats::YUYV,\n>  \tformats::NV16,\n> @@ -477,14 +470,12 @@ constexpr std::array<PixelFormat, 8> RKISP1_RSZ_SP_FORMATS{\n>  } /* namespace */\n>\n>  RkISP1MainPath::RkISP1MainPath()\n> -\t: RkISP1Path(\"main\", RKISP1_RSZ_MP_FORMATS,\n> -\t\t     RKISP1_RSZ_MP_SRC_MIN, RKISP1_RSZ_MP_SRC_MAX)\n> +\t: RkISP1Path(\"main\", RKISP1_RSZ_MP_FORMATS)\n>  {\n>  }\n>\n>  RkISP1SelfPath::RkISP1SelfPath()\n> -\t: RkISP1Path(\"self\", RKISP1_RSZ_SP_FORMATS,\n> -\t\t     RKISP1_RSZ_SP_SRC_MIN, RKISP1_RSZ_SP_SRC_MAX)\n> +\t: RkISP1Path(\"self\", RKISP1_RSZ_SP_FORMATS)\n>  {\n>  }\n>\n> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1_path.h b/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n> index 08edefec..d33471e4 100644\n> --- a/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n> +++ b/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n> @@ -32,8 +32,7 @@ struct V4L2SubdeviceFormat;\n>  class RkISP1Path\n>  {\n>  public:\n> -\tRkISP1Path(const char *name, const Span<const PixelFormat> &formats,\n> -\t\t   const Size &minResolution, const Size &maxResolution);\n> +\tRkISP1Path(const char *name, const Span<const PixelFormat> &formats);\n\nHowever I think this is safe. minResolution_ and maxResolution_ are\npopulated at ::init() time and the class is not usable before that\nfunction has been called.\n\nReviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n\nThanks\n  j\n\n>\n>  \tbool init(MediaDevice *media);\n>\n> --\n> 2.45.2\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 68B2EC0F1B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 26 Sep 2024 09:21:15 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 433D263510;\n\tThu, 26 Sep 2024 11:21:14 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id CE75F634F2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 26 Sep 2024 11:21:12 +0200 (CEST)","from ideasonboard.com (mob-5-90-51-229.net.vodafone.it\n\t[5.90.51.229])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 7A47A8D4;\n\tThu, 26 Sep 2024 11:19:44 +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=\"aUUVyI1f\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1727342384;\n\tbh=z0aE6JSDIFxtFiefRPzuk6JIbWbP29ukD5ocKNIJqTI=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=aUUVyI1fiTZpztnLE9PVKAItsMETzERqhoTji6BERm4vAS7fy45kz0QxD1eSuXXk9\n\tzZ/yb++zNS932drUmkLOgtxODRLHe4OtMaToi+gs9H2y0s0iNL6N3Fdsx9tiHM5K+u\n\tXRpJGiny7Nvn+aocrM4hR7D/7FVdcarSJXGoZFhk=","Date":"Thu, 26 Sep 2024 11:21:08 +0200","From":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","To":"Umang Jain <umang.jain@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH] libcamera: rkisp1: Eliminate hard-coded resizer limits","Message-ID":"<wmjc6upxmdqb6hp2bn7widmk3yrkuhllnfvj3ksyhpfonrqujx@ucmnaq5gxkyk>","References":"<20240924071341.24424-1-umang.jain@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20240924071341.24424-1-umang.jain@ideasonboard.com>","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":31390,"web_url":"https://patchwork.libcamera.org/comment/31390/","msgid":"<c67a03aa-0b14-4323-acef-956696b4662d@ideasonboard.com>","date":"2024-09-26T10:04:58","subject":"Re: [PATCH] libcamera: rkisp1: Eliminate hard-coded resizer limits","submitter":{"id":86,"url":"https://patchwork.libcamera.org/api/people/86/","name":"Umang Jain","email":"umang.jain@ideasonboard.com"},"content":"Hi Jacopo\n\nOn 26/09/24 2:51 pm, Jacopo Mondi wrote:\n> Hi Umang\n>\n> On Tue, Sep 24, 2024 at 12:43:41PM GMT, Umang Jain wrote:\n>> The resizer limits are dynamically queried in populateFormats() and\n> Is this the resizer ?\n>\n> minResolution_ and maxResolution_ are populated from the list of\n> formats from video_ and if I recall correctly RkISP1 has an explicit\n> resizer entity, right ?\n\nAh yes, you are correct. I will need to update the commit message.\n\nThe minResolution_ and maxResolution_ are populated from \n(main|self)_path video nodes.\n\nI would go with:\n\n```\n     libcamera: rkisp1: Eliminate hard-coded resizer limits\n\n     The minResolution_ and maxResolution_ limits are dynamically queried\n     in populateFormats() from the RkISP1Path video node. Therefore,\n     initializing these limits with the resizer limits in the constructor is\n     unnecessary.\n\n     This change allows us to remove the hard-coded max/min resolution \nlimits\n     of the resizer from RkISP1Path, simplifying its constructor further.\n\n```\n>\n>> assigned to minResolution_ and maxResolution_. Therefore, initializing\n>> these values in the constructor is unnecessary.\n>>\n>> This change allows us to remove the hard-coded max/min resolution limits\n>> from RkISP1Path, simplifying its constructor further.\n>>\n>> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>\n>> ---\n>>   src/libcamera/pipeline/rkisp1/rkisp1_path.cpp | 21 ++++++-------------\n>>   src/libcamera/pipeline/rkisp1/rkisp1_path.h   |  3 +--\n>>   2 files changed, 7 insertions(+), 17 deletions(-)\n>>\n>> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp b/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n>> index c49017d1..8015c58c 100644\n>> --- a/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n>> +++ b/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n>> @@ -54,11 +54,8 @@ const std::map<PixelFormat, uint32_t> formatToMediaBus = {\n>>\n>>   } /* namespace */\n>>\n>> -RkISP1Path::RkISP1Path(const char *name, const Span<const PixelFormat> &formats,\n>> -\t\t       const Size &minResolution, const Size &maxResolution)\n>> -\t: name_(name), running_(false), formats_(formats),\n>> -\t  minResolution_(minResolution), maxResolution_(maxResolution),\n>> -\t  link_(nullptr)\n>> +RkISP1Path::RkISP1Path(const char *name, const Span<const PixelFormat> &formats)\n>> +\t: name_(name), running_(false), formats_(formats), link_(nullptr)\n>>   {\n>>   }\n>>\n>> @@ -435,12 +432,10 @@ void RkISP1Path::stop()\n>>   }\n>>\n>>   /*\n>> - * \\todo Remove the hardcoded resolutions and formats once all users will have\n>> - * migrated to a recent enough kernel.\n>> + * \\todo Remove the hardcoded formats once all users will have migrated to a\n>> + * recent enough kernel.\n>>    */\n>>   namespace {\n>> -constexpr Size RKISP1_RSZ_MP_SRC_MIN{ 32, 16 };\n>> -constexpr Size RKISP1_RSZ_MP_SRC_MAX{ 4416, 3312 };\n>>   constexpr std::array<PixelFormat, 18> RKISP1_RSZ_MP_FORMATS{\n>>   \tformats::YUYV,\n>>   \tformats::NV16,\n>> @@ -462,8 +457,6 @@ constexpr std::array<PixelFormat, 18> RKISP1_RSZ_MP_FORMATS{\n>>   \tformats::SRGGB12,\n>>   };\n>>\n>> -constexpr Size RKISP1_RSZ_SP_SRC_MIN{ 32, 16 };\n>> -constexpr Size RKISP1_RSZ_SP_SRC_MAX{ 1920, 1920 };\n>>   constexpr std::array<PixelFormat, 8> RKISP1_RSZ_SP_FORMATS{\n>>   \tformats::YUYV,\n>>   \tformats::NV16,\n>> @@ -477,14 +470,12 @@ constexpr std::array<PixelFormat, 8> RKISP1_RSZ_SP_FORMATS{\n>>   } /* namespace */\n>>\n>>   RkISP1MainPath::RkISP1MainPath()\n>> -\t: RkISP1Path(\"main\", RKISP1_RSZ_MP_FORMATS,\n>> -\t\t     RKISP1_RSZ_MP_SRC_MIN, RKISP1_RSZ_MP_SRC_MAX)\n>> +\t: RkISP1Path(\"main\", RKISP1_RSZ_MP_FORMATS)\n>>   {\n>>   }\n>>\n>>   RkISP1SelfPath::RkISP1SelfPath()\n>> -\t: RkISP1Path(\"self\", RKISP1_RSZ_SP_FORMATS,\n>> -\t\t     RKISP1_RSZ_SP_SRC_MIN, RKISP1_RSZ_SP_SRC_MAX)\n>> +\t: RkISP1Path(\"self\", RKISP1_RSZ_SP_FORMATS)\n>>   {\n>>   }\n>>\n>> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1_path.h b/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n>> index 08edefec..d33471e4 100644\n>> --- a/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n>> +++ b/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n>> @@ -32,8 +32,7 @@ struct V4L2SubdeviceFormat;\n>>   class RkISP1Path\n>>   {\n>>   public:\n>> -\tRkISP1Path(const char *name, const Span<const PixelFormat> &formats,\n>> -\t\t   const Size &minResolution, const Size &maxResolution);\n>> +\tRkISP1Path(const char *name, const Span<const PixelFormat> &formats);\n> However I think this is safe. minResolution_ and maxResolution_ are\n> populated at ::init() time and the class is not usable before that\n> function has been called.\n>\n> Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n>\n> Thanks\n>    j\n>\n>>   \tbool init(MediaDevice *media);\n>>\n>> --\n>> 2.45.2\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 E229CC3257\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 26 Sep 2024 10:05:05 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 0589263502;\n\tThu, 26 Sep 2024 12:05:05 +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 7FD42634F9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 26 Sep 2024 12:05:03 +0200 (CEST)","from [IPV6:2405:201:2015:f873:c173:4b:4a04:3a21] (unknown\n\t[IPv6:2405:201:2015:f873:c173:4b:4a04:3a21])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id CD264169;\n\tThu, 26 Sep 2024 12:03:34 +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=\"ixImxctL\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1727345015;\n\tbh=FZOITrwf1aDE7qEzFy2CGQMm0zPPf7BqTptMsOFS31U=;\n\th=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n\tb=ixImxctLw8GE8ybNcG1oP93oUtzu1OLZ4tvjyDqMYH9Xm+pZyIvPs6jtqhOjPrUR+\n\tzgtmDHopJYOst0hoGXFVK4XRyc56WxIXWsdxFZiK79a8oq7aPaKTcScKcfOcxzIn9g\n\tHgpy5X+pwxhe3YNLLpPPF9C/kY31SPWONTTLcLOI=","Message-ID":"<c67a03aa-0b14-4323-acef-956696b4662d@ideasonboard.com>","Date":"Thu, 26 Sep 2024 15:34:58 +0530","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH] libcamera: rkisp1: Eliminate hard-coded resizer limits","To":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","References":"<20240924071341.24424-1-umang.jain@ideasonboard.com>\n\t<wmjc6upxmdqb6hp2bn7widmk3yrkuhllnfvj3ksyhpfonrqujx@ucmnaq5gxkyk>","Content-Language":"en-US","From":"Umang Jain <umang.jain@ideasonboard.com>","In-Reply-To":"<wmjc6upxmdqb6hp2bn7widmk3yrkuhllnfvj3ksyhpfonrqujx@ucmnaq5gxkyk>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","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>"}}]