From 02001fecb0f578438bcfb27cc7496d721c6a18d1 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Tue, 19 May 2020 02:19:47 +0300 Subject: cam: Turn BufferWriter into a FrameSink MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Make the BufferWriter class inherit from FrameSink, and use the FrameSink API to manage it. This makes the code more generic, and will allow usage of other sinks. Signed-off-by: Laurent Pinchart Reviewed-by: Niklas Söderlund Reviewed-by: Kieran Bingham Reviewed-by: Umang Jain Reviewed-by: Paul Elder --- src/cam/buffer_writer.h | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'src/cam/buffer_writer.h') diff --git a/src/cam/buffer_writer.h b/src/cam/buffer_writer.h index 7626de42..32bb6ed5 100644 --- a/src/cam/buffer_writer.h +++ b/src/cam/buffer_writer.h @@ -10,20 +10,27 @@ #include #include -#include +#include -class BufferWriter +#include "frame_sink.h" + +class BufferWriter : public FrameSink { public: BufferWriter(const std::string &pattern = ""); ~BufferWriter(); - void mapBuffer(libcamera::FrameBuffer *buffer); + int configure(const libcamera::CameraConfiguration &config) override; + + void mapBuffer(libcamera::FrameBuffer *buffer) override; - int write(libcamera::FrameBuffer *buffer, - const std::string &streamName); + bool processRequest(libcamera::Request *request) override; private: + void writeBuffer(const libcamera::Stream *stream, + libcamera::FrameBuffer *buffer); + + std::map streamNames_; std::string pattern_; std::map> mappedBuffers_; }; -- cgit v1.2.1