ipa: Switch to the plain C API
Switch IPA communication to the plain C API. As the IPAInterface class is easier to use for pipeline handlers than a plain C API, retain it and add an IPAContextWrapper that translate between the C++ and the C APIs. On the IPA module side usage of IPAInterface may be desired for IPAs implemented in C++ that want to link to libcamera. For those IPAs, a new IPAInterfaceWrapper helper class is introduced to wrap the IPAInterface implemented internally by the IPA module into an ipa_context, ipa_context_ops and ipa_callback_ops. Signed-off-by: Jacopo Mondi <jacopo@jmondi.org> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
This commit is contained in:
parent
bc9527de45
commit
132d99bc8f
17 changed files with 676 additions and 23 deletions
|
@ -19,6 +19,7 @@
|
|||
#include <libcamera/buffer.h>
|
||||
#include <libcamera/control_ids.h>
|
||||
#include <libcamera/request.h>
|
||||
#include <libipa/ipa_interface_wrapper.h>
|
||||
|
||||
#include "log.h"
|
||||
#include "utils.h"
|
||||
|
@ -247,9 +248,9 @@ const struct IPAModuleInfo ipaModuleInfo = {
|
|||
"LGPL-2.1-or-later",
|
||||
};
|
||||
|
||||
IPAInterface *ipaCreate()
|
||||
struct ipa_context *ipaCreate()
|
||||
{
|
||||
return new IPARkISP1();
|
||||
return new IPAInterfaceWrapper(utils::make_unique<IPARkISP1>());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue