summaryrefslogtreecommitdiff
path: root/src/ipa/vimc
diff options
context:
space:
mode:
Diffstat (limited to 'src/ipa/vimc')
-rw-r--r--src/ipa/vimc/data/meson.build3
-rw-r--r--src/ipa/vimc/meson.build2
-rw-r--r--src/ipa/vimc/vimc.cpp28
3 files changed, 26 insertions, 7 deletions
diff --git a/src/ipa/vimc/data/meson.build b/src/ipa/vimc/data/meson.build
index 42ec651c..628d6a29 100644
--- a/src/ipa/vimc/data/meson.build
+++ b/src/ipa/vimc/data/meson.build
@@ -5,4 +5,5 @@ conf_files = files([
])
install_data(conf_files,
- install_dir : ipa_data_dir / 'vimc')
+ install_dir : ipa_data_dir / 'vimc',
+ install_tag : 'runtime')
diff --git a/src/ipa/vimc/meson.build b/src/ipa/vimc/meson.build
index ecbeee13..264a2d9a 100644
--- a/src/ipa/vimc/meson.build
+++ b/src/ipa/vimc/meson.build
@@ -21,3 +21,5 @@ if ipa_sign_module
endif
subdir('data')
+
+ipa_names += ipa_name
diff --git a/src/ipa/vimc/vimc.cpp b/src/ipa/vimc/vimc.cpp
index 85afb279..ebd63fa6 100644
--- a/src/ipa/vimc/vimc.cpp
+++ b/src/ipa/vimc/vimc.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * ipa_vimc.cpp - Vimc Image Processing Algorithm module
+ * Vimc Image Processing Algorithm module
*/
#include <libcamera/ipa/vimc_ipa_interface.h>
@@ -31,7 +31,10 @@ public:
IPAVimc();
~IPAVimc();
- int init(const IPASettings &settings) override;
+ int init(const IPASettings &settings,
+ const ipa::vimc::IPAOperationCode code,
+ const Flags<ipa::vimc::TestFlag> inFlags,
+ Flags<ipa::vimc::TestFlag> *outFlags) override;
int start() override;
void stop() override;
@@ -66,7 +69,10 @@ IPAVimc::~IPAVimc()
::close(fd_);
}
-int IPAVimc::init(const IPASettings &settings)
+int IPAVimc::init(const IPASettings &settings,
+ const ipa::vimc::IPAOperationCode code,
+ const Flags<ipa::vimc::TestFlag> inFlags,
+ Flags<ipa::vimc::TestFlag> *outFlags)
{
trace(ipa::vimc::IPAOperationInit);
@@ -74,6 +80,15 @@ int IPAVimc::init(const IPASettings &settings)
<< "initializing vimc IPA with configuration file "
<< settings.configurationFile;
+ LOG(IPAVimc, Debug) << "Got opcode " << code;
+
+ LOG(IPAVimc, Debug)
+ << "Flag 2 was "
+ << (inFlags & ipa::vimc::TestFlag::Flag2 ? "" : "not ")
+ << "set";
+
+ *outFlags |= ipa::vimc::TestFlag::Flag1;
+
File conf(settings.configurationFile);
if (!conf.open(File::OpenModeFlag::ReadOnly)) {
LOG(IPAVimc, Error) << "Failed to open configuration file";
@@ -142,7 +157,8 @@ void IPAVimc::fillParamsBuffer([[maybe_unused]] uint32_t frame, uint32_t bufferI
return;
}
- paramsBufferReady.emit(bufferId);
+ Flags<ipa::vimc::TestFlag> flags;
+ paramsBufferReady.emit(bufferId, flags);
}
void IPAVimc::initTrace()
@@ -152,7 +168,7 @@ void IPAVimc::initTrace()
if (ret)
return;
- ret = ::open(ipa::vimc::VimcIPAFIFOPath.c_str(), O_WRONLY);
+ ret = ::open(ipa::vimc::VimcIPAFIFOPath.c_str(), O_WRONLY | O_CLOEXEC);
if (ret < 0) {
ret = errno;
LOG(IPAVimc, Error) << "Failed to open vimc IPA test FIFO: "
@@ -184,7 +200,7 @@ extern "C" {
const struct IPAModuleInfo ipaModuleInfo = {
IPA_MODULE_API_VERSION,
0,
- "PipelineHandlerVimc",
+ "vimc",
"vimc",
};