mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-26 01:55:51 +03:00
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
|
@ -17,7 +17,10 @@
|
|||
#include <ipa/ipa_interface.h>
|
||||
#include <ipa/ipa_module_info.h>
|
||||
|
||||
#include "libipa/ipa_interface_wrapper.h"
|
||||
|
||||
#include "log.h"
|
||||
#include "utils.h"
|
||||
|
||||
namespace libcamera {
|
||||
|
||||
|
@ -108,9 +111,9 @@ const struct IPAModuleInfo ipaModuleInfo = {
|
|||
LICENSE,
|
||||
};
|
||||
|
||||
IPAInterface *ipaCreate()
|
||||
struct ipa_context *ipaCreate()
|
||||
{
|
||||
return new IPAVimc();
|
||||
return new IPAInterfaceWrapper(utils::make_unique<IPAVimc>());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue