[libcamera-devel] [PATCH v4 2/8] libcamera: ipa_module: add isOpenSource

Laurent Pinchart laurent.pinchart at ideasonboard.com
Fri Jul 12 08:26:56 CEST 2019


Hi Paul,

Thank you for the patch.

On Fri, Jul 12, 2019 at 03:50:41AM +0900, Paul Elder wrote:
> Add a method to IPAModule to check if the module is open source.
> This uses the license field of the member IPAModuleInfo.
> 
> Signed-off-by: Paul Elder <paul.elder at ideasonboard.com>
> ---
> New in v4
> 
>  src/libcamera/include/ipa_module.h |  2 ++
>  src/libcamera/ipa_module.cpp       | 23 +++++++++++++++++++++++
>  2 files changed, 25 insertions(+)
> 
> diff --git a/src/libcamera/include/ipa_module.h b/src/libcamera/include/ipa_module.h
> index b88ae5d..18e9223 100644
> --- a/src/libcamera/include/ipa_module.h
> +++ b/src/libcamera/include/ipa_module.h
> @@ -35,6 +35,8 @@ public:
>  	bool match(PipelineHandler *pipe,
>  		   uint32_t minVersion, uint32_t maxVersion) const;
>  
> +	bool isOpenSource() const;
> +
>  private:
>  	struct IPAModuleInfo info_;
>  
> diff --git a/src/libcamera/ipa_module.cpp b/src/libcamera/ipa_module.cpp
> index 9cead71..788915e 100644
> --- a/src/libcamera/ipa_module.cpp
> +++ b/src/libcamera/ipa_module.cpp
> @@ -7,6 +7,7 @@
>  
>  #include "ipa_module.h"
>  
> +#include <algorithm>
>  #include <dlfcn.h>
>  #include <elf.h>
>  #include <errno.h>
> @@ -469,4 +470,26 @@ bool IPAModule::match(PipelineHandler *pipe,
>  	       !strcmp(info_.pipelineName, pipe->name());
>  }
>  
> +/**
> + * \brief Verify if the IPA module is open source
> + *
> + * \sa IPAModuleInfo::license
> + */
> +bool IPAModule::isOpenSource() const
> +{
> +	static std::vector<const char *> osLicenses = {

std::array would be cheaper than std::vector. With that fixed,

Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

> +		"GPL-2.0-only",
> +		"GPL-2.0-or-later",
> +		"GPL-3.0-only",
> +		"GPL-3.0-or-later",
> +		"LGPL-2.1-only",
> +		"LGPL-2.1-or-later",
> +		"LGPL-3.0-only",
> +		"LGPL-3.0-or-later",
> +	};
> +
> +	return std::find(osLicenses.begin(), osLicenses.end(), info_.license)
> +	       != osLicenses.end();
> +}
> +
>  } /* namespace libcamera */

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list