libcamera: ipa_manager: Return an IPAProxy from createIPA()

In order to provide pipeline handlers with IPA-related helpers on top of
IPAInterface, return the IPAProxy instance from IPAManager::createIPA().
No change is required in the pipeline handlers as the IPAInterface that
was previously returned is implemented by an IPAProxy instance already.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Laurent Pinchart
2020-04-28 01:54:47 +03:00
parent 53d3f4152a
commit 26a4b03ed8
3 changed files with 13 additions and 12 deletions
+3 -3
View File
@@ -24,9 +24,9 @@ class IPAManager
public:
static IPAManager *instance();
std::unique_ptr<IPAInterface> createIPA(PipelineHandler *pipe,
uint32_t maxVersion,
uint32_t minVersion);
std::unique_ptr<IPAProxy> createIPA(PipelineHandler *pipe,
uint32_t maxVersion,
uint32_t minVersion);
private:
std::vector<IPAModule *> modules_;
+3 -2
View File
@@ -15,11 +15,12 @@
#include <sys/types.h>
#include <vector>
#include <ipa/ipa_interface.h>
#include <libcamera/controls.h>
#include <libcamera/object.h>
#include <libcamera/stream.h>
#include "ipa_proxy.h"
namespace libcamera {
class Camera;
@@ -46,7 +47,7 @@ public:
std::list<Request *> queuedRequests_;
ControlInfoMap controlInfo_;
ControlList properties_;
std::unique_ptr<IPAInterface> ipa_;
std::unique_ptr<IPAProxy> ipa_;
private:
CameraData(const CameraData &) = delete;
+7 -7
View File
@@ -247,17 +247,17 @@ unsigned int IPAManager::addDir(const char *libDir, unsigned int maxDepth)
}
/**
* \brief Create an IPA interface that matches a given pipeline handler
* \param[in] pipe The pipeline handler that wants a matching IPA interface
* \brief Create an IPA proxy that matches a given pipeline handler
* \param[in] pipe The pipeline handler that wants a matching IPA proxy
* \param[in] minVersion Minimum acceptable version of IPA module
* \param[in] maxVersion Maximum acceptable version of IPA module
*
* \return A newly created IPA interface, or nullptr if no matching
* IPA module is found or if the IPA interface fails to initialize
* \return A newly created IPA proxy, or nullptr if no matching IPA module is
* found or if the IPA proxy fails to initialize
*/
std::unique_ptr<IPAInterface> IPAManager::createIPA(PipelineHandler *pipe,
uint32_t maxVersion,
uint32_t minVersion)
std::unique_ptr<IPAProxy> IPAManager::createIPA(PipelineHandler *pipe,
uint32_t maxVersion,
uint32_t minVersion)
{
IPAModule *m = nullptr;