/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* * Copyright (C) 2023, Linaro Ltd * Copyright (C) 2023, Red Hat Inc. * * Authors: * Hans de Goede * * debayer.h - debayering base class */ #pragma once #include #include #include #include #include #include "libcamera/internal/software_isp/debayer_params.h" namespace libcamera { class FrameBuffer; LOG_DECLARE_CATEGORY(Debayer) class Debayer { public: virtual ~Debayer() = 0; virtual int configure(const StreamConfiguration &inputCfg, const std::vector> &outputCfgs) = 0; virtual std::vector formats(PixelFormat inputFormat) = 0; virtual std::tuple strideAndFrameSize(const PixelFormat &outputFormat, const Size &size) = 0; virtual void process(FrameBuffer *input, FrameBuffer *output, DebayerParams params) = 0; virtual SizeRange sizes(PixelFormat inputFormat, const Size &inputSize) = 0; Signal inputBufferReady; Signal outputBufferReady; private: virtual Size patternSize(PixelFormat inputFormat) = 0; }; } /* namespace libcamera */