libcamera: ipa_module: match IPA module with pipeline handler
Add a method to IPAModule to check if it matches with a given pipeline handler and pipeline version range. Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
@@ -13,6 +13,8 @@
|
||||
#include <libcamera/ipa/ipa_interface.h>
|
||||
#include <libcamera/ipa/ipa_module_info.h>
|
||||
|
||||
#include "pipeline_handler.h"
|
||||
|
||||
namespace libcamera {
|
||||
|
||||
class IPAModule
|
||||
@@ -29,6 +31,9 @@ public:
|
||||
|
||||
std::unique_ptr<IPAInterface> createInstance();
|
||||
|
||||
bool match(PipelineHandler *pipe,
|
||||
uint32_t minVersion, uint32_t maxVersion) const;
|
||||
|
||||
private:
|
||||
struct IPAModuleInfo info_;
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
#include <unistd.h>
|
||||
|
||||
#include "log.h"
|
||||
#include "pipeline_handler.h"
|
||||
|
||||
/**
|
||||
* \file ipa_module.h
|
||||
@@ -391,4 +392,23 @@ std::unique_ptr<IPAInterface> IPAModule::createInstance()
|
||||
return std::unique_ptr<IPAInterface>(ipaCreate_());
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Verify if the IPA module maches a given pipeline handler
|
||||
* \param[in] pipe Pipeline handler to match with
|
||||
* \param[in] minVersion Minimum acceptable version of IPA module
|
||||
* \param[in] maxVersion Maximum acceptable version of IPA module
|
||||
*
|
||||
* This method checks if this IPA module matches the \a pipe pipeline handler,
|
||||
* and the input version range.
|
||||
*
|
||||
* \return True if the pipeline handler matches the IPA module, or false otherwise
|
||||
*/
|
||||
bool IPAModule::match(PipelineHandler *pipe,
|
||||
uint32_t minVersion, uint32_t maxVersion) const
|
||||
{
|
||||
return info_.pipelineVersion >= minVersion &&
|
||||
info_.pipelineVersion <= maxVersion &&
|
||||
!strcmp(info_.pipelineName, pipe->name());
|
||||
}
|
||||
|
||||
} /* namespace libcamera */
|
||||
|
||||
Reference in New Issue
Block a user