From f929a2890ccc3d2cf9be0a73fadcc4c9c40ece79 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Tue, 19 May 2020 01:54:53 +0300 Subject: cam: Add FrameSink base class MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The FrameSink class serves as a base to implement components that consume frames. This allows handling frame sinks in a generic way, independent of their nature. The BufferWrite class will be ported to FrameSink in a second step. Signed-off-by: Laurent Pinchart Reviewed-by: Niklas Söderlund Reviewed-by: Paul Elder Reviewed-by: Kieran Bingham Reviewed-by: Umang Jain --- src/cam/frame_sink.h | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/cam/frame_sink.h (limited to 'src/cam/frame_sink.h') diff --git a/src/cam/frame_sink.h b/src/cam/frame_sink.h new file mode 100644 index 00000000..76e1fc30 --- /dev/null +++ b/src/cam/frame_sink.h @@ -0,0 +1,34 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * Copyright (C) 2021, Ideas on Board Oy + * + * frame_sink.h - Base Frame Sink Class + */ +#ifndef __CAM_FRAME_SINK_H__ +#define __CAM_FRAME_SINK_H__ + +#include + +namespace libcamera { +class CameraConfiguration; +class FrameBuffer; +class Request; +} /* namespace libcamera */ + +class FrameSink +{ +public: + virtual ~FrameSink(); + + virtual int configure(const libcamera::CameraConfiguration &config); + + virtual void mapBuffer(libcamera::FrameBuffer *buffer); + + virtual int start(); + virtual int stop(); + + virtual bool processRequest(libcamera::Request *request) = 0; + libcamera::Signal requestProcessed; +}; + +#endif /* __CAM_FRAME_SINK_H__ */ -- cgit v1.2.1