Message ID | 20250411123641.2144530-6-stefan.klug@ideasonboard.com |
---|---|
State | New |
Headers | show |
Series |
|
Related | show |
Quoting Stefan Klug (2025-04-11 13:36:33) > Add functions to check for empty parameter blocks. Modify the constructor > so that a parameter block constructed from an empty span stays empty. > > Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com> > > --- > > Changes in v2: > - Removed unrelated get() functions > --- > src/ipa/rkisp1/params.cpp | 3 +++ > src/ipa/rkisp1/params.h | 3 +++ > 2 files changed, 6 insertions(+) > > diff --git a/src/ipa/rkisp1/params.cpp b/src/ipa/rkisp1/params.cpp > index 4c0b051ce65d..b4a889e415fc 100644 > --- a/src/ipa/rkisp1/params.cpp > +++ b/src/ipa/rkisp1/params.cpp > @@ -82,6 +82,9 @@ RkISP1ParamsBlockBase::RkISP1ParamsBlockBase(RkISP1Params *params, BlockType typ > const Span<uint8_t> &data) > : params_(params), type_(type) > { > + if (data.empty()) > + return; > + > if (params_->format() == V4L2_META_FMT_RK_ISP1_EXT_PARAMS) { > header_ = data.subspan(0, sizeof(rkisp1_ext_params_block_header)); > data_ = data.subspan(sizeof(rkisp1_ext_params_block_header)); > diff --git a/src/ipa/rkisp1/params.h b/src/ipa/rkisp1/params.h > index 40450e34497a..04b06c2a6266 100644 > --- a/src/ipa/rkisp1/params.h > +++ b/src/ipa/rkisp1/params.h > @@ -89,6 +89,9 @@ public: > > void setEnabled(bool enabled); > > + bool isValid() const { return !data_.empty(); } > + explicit operator bool() const { return !data_.empty(); } I suppose bool could be implemented by referencing isValid() but both are equivalent... Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > + > private: > LIBCAMERA_DISABLE_COPY(RkISP1ParamsBlockBase) > > -- > 2.43.0 >
diff --git a/src/ipa/rkisp1/params.cpp b/src/ipa/rkisp1/params.cpp index 4c0b051ce65d..b4a889e415fc 100644 --- a/src/ipa/rkisp1/params.cpp +++ b/src/ipa/rkisp1/params.cpp @@ -82,6 +82,9 @@ RkISP1ParamsBlockBase::RkISP1ParamsBlockBase(RkISP1Params *params, BlockType typ const Span<uint8_t> &data) : params_(params), type_(type) { + if (data.empty()) + return; + if (params_->format() == V4L2_META_FMT_RK_ISP1_EXT_PARAMS) { header_ = data.subspan(0, sizeof(rkisp1_ext_params_block_header)); data_ = data.subspan(sizeof(rkisp1_ext_params_block_header)); diff --git a/src/ipa/rkisp1/params.h b/src/ipa/rkisp1/params.h index 40450e34497a..04b06c2a6266 100644 --- a/src/ipa/rkisp1/params.h +++ b/src/ipa/rkisp1/params.h @@ -89,6 +89,9 @@ public: void setEnabled(bool enabled); + bool isValid() const { return !data_.empty(); } + explicit operator bool() const { return !data_.empty(); } + private: LIBCAMERA_DISABLE_COPY(RkISP1ParamsBlockBase)
Add functions to check for empty parameter blocks. Modify the constructor so that a parameter block constructed from an empty span stays empty. Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com> --- Changes in v2: - Removed unrelated get() functions --- src/ipa/rkisp1/params.cpp | 3 +++ src/ipa/rkisp1/params.h | 3 +++ 2 files changed, 6 insertions(+)