f929a2890c
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 <laurent.pinchart@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Umang Jain <umang.jain@ideasonboard.com>
35 lines
729 B
C++
35 lines
729 B
C++
/* 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 <libcamera/base/signal.h>
|
|
|
|
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<libcamera::Request *> requestProcessed;
|
|
};
|
|
|
|
#endif /* __CAM_FRAME_SINK_H__ */
|