[{"id":33939,"web_url":"https://patchwork.libcamera.org/comment/33939/","msgid":"<174456664747.3333606.2124800625812068112@ping.linuxembedded.co.uk>","date":"2025-04-13T17:50:47","subject":"Re: [PATCH v2 5/9] ipa: rkisp1: params: Check for empty parameters","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Stefan Klug (2025-04-11 13:36:33)\n> Add functions to check for empty parameter blocks. Modify the constructor\n> so that a parameter block constructed from an empty span stays empty.\n> \n> Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>\n> \n> ---\n> \n> Changes in v2:\n> - Removed unrelated get() functions\n> ---\n>  src/ipa/rkisp1/params.cpp | 3 +++\n>  src/ipa/rkisp1/params.h   | 3 +++\n>  2 files changed, 6 insertions(+)\n> \n> diff --git a/src/ipa/rkisp1/params.cpp b/src/ipa/rkisp1/params.cpp\n> index 4c0b051ce65d..b4a889e415fc 100644\n> --- a/src/ipa/rkisp1/params.cpp\n> +++ b/src/ipa/rkisp1/params.cpp\n> @@ -82,6 +82,9 @@ RkISP1ParamsBlockBase::RkISP1ParamsBlockBase(RkISP1Params *params, BlockType typ\n>                                              const Span<uint8_t> &data)\n>         : params_(params), type_(type)\n>  {\n> +       if (data.empty())\n> +               return;\n> +\n>         if (params_->format() == V4L2_META_FMT_RK_ISP1_EXT_PARAMS) {\n>                 header_ = data.subspan(0, sizeof(rkisp1_ext_params_block_header));\n>                 data_ = data.subspan(sizeof(rkisp1_ext_params_block_header));\n> diff --git a/src/ipa/rkisp1/params.h b/src/ipa/rkisp1/params.h\n> index 40450e34497a..04b06c2a6266 100644\n> --- a/src/ipa/rkisp1/params.h\n> +++ b/src/ipa/rkisp1/params.h\n> @@ -89,6 +89,9 @@ public:\n>  \n>         void setEnabled(bool enabled);\n>  \n> +       bool isValid() const { return !data_.empty(); }\n> +       explicit operator bool() const { return !data_.empty(); }\n\nI suppose bool could be implemented by referencing isValid() but both\nare equivalent...\n\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n> +\n>  private:\n>         LIBCAMERA_DISABLE_COPY(RkISP1ParamsBlockBase)\n>  \n> -- \n> 2.43.0\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 6D540C327D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSun, 13 Apr 2025 17:50:52 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B1C9F68ABA;\n\tSun, 13 Apr 2025 19:50:51 +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 80C4A68A99\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 13 Apr 2025 19:50:50 +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 70E0C520;\n\tSun, 13 Apr 2025 19:48:49 +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=\"H19EqWli\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1744566529;\n\tbh=I37z107jkCGNS2p+fhx4IQYziXpoy4KwMzbk4E1Nq5E=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=H19EqWliiuOKcX76j2PhSku6u2yWce161q84sbuBsrgkjB0xeNuj4Hc40vBACHjM2\n\tS3ikit4aqn4JgtJ2hAiHb5mxXuu1RCqQXVB5+Dy8w0bRZ8X3khdBZwAQ0H67ObOtu/\n\tmYsHV2tWgVNo6X0e8fiLtqncEybHgLfuNnWxilSI=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20250411123641.2144530-6-stefan.klug@ideasonboard.com>","References":"<20250411123641.2144530-1-stefan.klug@ideasonboard.com>\n\t<20250411123641.2144530-6-stefan.klug@ideasonboard.com>","Subject":"Re: [PATCH v2 5/9] ipa: rkisp1: params: Check for empty parameters","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Stefan Klug <stefan.klug@ideasonboard.com>","To":"Stefan Klug <stefan.klug@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Sun, 13 Apr 2025 18:50:47 +0100","Message-ID":"<174456664747.3333606.2124800625812068112@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":34188,"web_url":"https://patchwork.libcamera.org/comment/34188/","msgid":"<174699612091.7109.9369678284095056365@pyrite.rasen.tech>","date":"2025-05-11T20:42:00","subject":"Re: [PATCH v2 5/9] ipa: rkisp1: params: Check for empty parameters","submitter":{"id":17,"url":"https://patchwork.libcamera.org/api/people/17/","name":"Paul Elder","email":"paul.elder@ideasonboard.com"},"content":"Quoting Stefan Klug (2025-04-11 14:36:33)\n> Add functions to check for empty parameter blocks. Modify the constructor\n> so that a parameter block constructed from an empty span stays empty.\n> \n> Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>\n\nReviewed-by: Paul Elder <paul.elder@ideasonboard.com>\n\n> \n> ---\n> \n> Changes in v2:\n> - Removed unrelated get() functions\n> ---\n>  src/ipa/rkisp1/params.cpp | 3 +++\n>  src/ipa/rkisp1/params.h   | 3 +++\n>  2 files changed, 6 insertions(+)\n> \n> diff --git a/src/ipa/rkisp1/params.cpp b/src/ipa/rkisp1/params.cpp\n> index 4c0b051ce65d..b4a889e415fc 100644\n> --- a/src/ipa/rkisp1/params.cpp\n> +++ b/src/ipa/rkisp1/params.cpp\n> @@ -82,6 +82,9 @@ RkISP1ParamsBlockBase::RkISP1ParamsBlockBase(RkISP1Params *params, BlockType typ\n>                                              const Span<uint8_t> &data)\n>         : params_(params), type_(type)\n>  {\n> +       if (data.empty())\n> +               return;\n> +\n>         if (params_->format() == V4L2_META_FMT_RK_ISP1_EXT_PARAMS) {\n>                 header_ = data.subspan(0, sizeof(rkisp1_ext_params_block_header));\n>                 data_ = data.subspan(sizeof(rkisp1_ext_params_block_header));\n> diff --git a/src/ipa/rkisp1/params.h b/src/ipa/rkisp1/params.h\n> index 40450e34497a..04b06c2a6266 100644\n> --- a/src/ipa/rkisp1/params.h\n> +++ b/src/ipa/rkisp1/params.h\n> @@ -89,6 +89,9 @@ public:\n>  \n>         void setEnabled(bool enabled);\n>  \n> +       bool isValid() const { return !data_.empty(); }\n> +       explicit operator bool() const { return !data_.empty(); }\n> +\n>  private:\n>         LIBCAMERA_DISABLE_COPY(RkISP1ParamsBlockBase)\n>  \n> -- \n> 2.43.0\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 019B4C3226\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSun, 11 May 2025 20:42:06 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 1691168B69;\n\tSun, 11 May 2025 22:42:06 +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 1D6E968B60\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 11 May 2025 22:42:04 +0200 (CEST)","from pyrite.rasen.tech (unknown\n\t[IPv6:2001:861:3a80:3300:4f2f:8c2c:b3ef:17d4])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 7912EB63;\n\tSun, 11 May 2025 22:41:49 +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=\"v5CI6A6U\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1746996109;\n\tbh=+Iqkpp3iJ6FCyqduNAbruh2tZB8QVqnLkLhq0E6xp68=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=v5CI6A6UE/NIERAlqN8Yog8n1sAk3oMe1euJK7EE9MKXRI9IEMvkKEBQIS5R85Ecj\n\t6Mx7PDv9hXw2QuSOeMB13KunH+mzoFwgrlSN2/wIpgh7bhTnLPuVdMjarRxHnvTweP\n\tfZyNhwIZ3ufQA4W3vbyynLog3dAx/E9E46JRLtN4=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20250411123641.2144530-6-stefan.klug@ideasonboard.com>","References":"<20250411123641.2144530-1-stefan.klug@ideasonboard.com>\n\t<20250411123641.2144530-6-stefan.klug@ideasonboard.com>","Subject":"Re: [PATCH v2 5/9] ipa: rkisp1: params: Check for empty parameters","From":"Paul Elder <paul.elder@ideasonboard.com>","Cc":"Stefan Klug <stefan.klug@ideasonboard.com>","To":"Stefan Klug <stefan.klug@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Sun, 11 May 2025 22:42:00 +0200","Message-ID":"<174699612091.7109.9369678284095056365@pyrite.rasen.tech>","User-Agent":"alot/0.0.0","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>"}}]