@@ -16,6 +16,7 @@
#include <vector>
#include <libcamera/base/class.h>
+#include <libcamera/base/shared_fd.h>
#include <libcamera/base/signal.h>
#include <libcamera/geometry.h>
@@ -53,6 +54,9 @@ public:
virtual int queueBuffers(FrameBuffer *input,
const std::map<unsigned int, FrameBuffer *> &outputs) = 0;
+ /* A hack to pass the FD from Soft ISP to Soft IPA */
+ virtual const SharedFD &getStatsFD() = 0;
+
Signal<FrameBuffer *> inputBufferReady;
Signal<FrameBuffer *> outputBufferReady;
@@ -44,6 +44,8 @@ public:
int queueBuffers(FrameBuffer *input,
const std::map<unsigned int, FrameBuffer *> &outputs);
+ const SharedFD &getStatsFD() { return sharedStats_.fd(); }
+
void process(FrameBuffer *input, FrameBuffer *output);
private:
The shared memory for passing the statistics to the Soft IPA is allocated inside the Soft ISP. The FD of this memory needs to be passed to the IPA. Signed-off-by: Andrey Konovalov <andrey.konovalov@linaro.org> --- include/libcamera/internal/software_isp.h | 4 ++++ include/libcamera/internal/software_isp/swisp_linaro.h | 2 ++ 2 files changed, 6 insertions(+)