libcamera: ipa_manager: implement class for managing IPA modules

IPAManager is a class that will search in given directories for IPA
modules, and will load them into a list. It also provides an interface
for pipeline handlers to acquire an IPA.

A meson build file for the IPAs is added, which also specifies a
hard-coded path for where to load the IPAs from in the installation
directory. More paths can be specified with the environment variable
LIBCAMERA_IPA_MODULE_PATH, with the same syntax as the regular PATH
environment variable. Make the test framework set this environment
variable.

Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
Paul Elder 2019-06-03 13:19:44 -04:00
parent 42c9b4bad4
commit 7fa98a4cdd
6 changed files with 200 additions and 0 deletions

View file

@ -5,6 +5,8 @@
* test.cpp - libcamera test base class
*/
#include <stdlib.h>
#include "test.h"
Test::Test()
@ -19,6 +21,10 @@ int Test::execute()
{
int ret;
ret = setenv("LIBCAMERA_IPA_MODULE_PATH", "src/ipa", 1);
if (ret)
return errno;
ret = init();
if (ret)
return ret;