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:
committed by
Laurent Pinchart
parent
bc9527de45
commit
132d99bc8f
@@ -72,9 +72,9 @@ int main(int argc, char **argv)
|
||||
}
|
||||
socket.readyRead.connect(&readyRead);
|
||||
|
||||
std::unique_ptr<IPAInterface> ipa = ipam->createInstance();
|
||||
if (!ipa) {
|
||||
LOG(IPAProxyLinuxWorker, Error) << "Failed to create IPA interface";
|
||||
struct ipa_context *ipac = ipam->createContext();
|
||||
if (!ipac) {
|
||||
LOG(IPAProxyLinuxWorker, Error) << "Failed to create IPA context";
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
@@ -85,5 +85,7 @@ int main(int argc, char **argv)
|
||||
while (1)
|
||||
dispatcher->processEvents();
|
||||
|
||||
ipac->ops->destroy(ipac);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user