summaryrefslogtreecommitdiff
path: root/test/libtest/buffer_source.h
blob: 14b4770e8d8a90a98f15e1945c5261a4b5bff597 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 * Copyright (C) 2020, Google Inc.
 *
 * buffer_source.h - libcamera camera test helper to create FrameBuffers
 */
#ifndef __LIBCAMERA_BUFFER_SOURCE_TEST_H__
#define __LIBCAMERA_BUFFER_SOURCE_TEST_H__

#include <libcamera/stream.h>

#include "libcamera/internal/media_device.h"
#include "libcamera/internal/v4l2_videodevice.h"

using namespace libcamera;

class BufferSource
{
public:
	BufferSource();
	~BufferSource();

	int allocate(const StreamConfiguration &config);
	const std::vector<std::unique_ptr<FrameBuffer>> &buffers();

private:
	std::shared_ptr<MediaDevice> media_;
	std::vector<std::unique_ptr<FrameBuffer>> buffers_;
};

#endif /* __LIBCAMERA_BUFFER_SOURCE_TEST_H__ */
/* SPDX-License-Identifier: GPL-2.0-or-later */ /* * Copyright (C) 2019, Google Inc. * * viewfinder_qt.h - qcam - QPainter-based ViewFinder */ #ifndef __QCAM_VIEWFINDER_QT_H__ #define __QCAM_VIEWFINDER_QT_H__ #include <QIcon> #include <QImage> #include <QList> #include <QMutex> #include <QSize> #include <QWidget> #include <libcamera/buffer.h> #include <libcamera/formats.h> #include <libcamera/pixel_format.h> #include "format_converter.h" #include "viewfinder.h" class ViewFinderQt : public QWidget, public ViewFinder { Q_OBJECT public: ViewFinderQt(QWidget *parent); ~ViewFinderQt(); const QList<libcamera::PixelFormat> &nativeFormats() const override; int setFormat(const libcamera::PixelFormat &format, const QSize &size) override; void render(libcamera::FrameBuffer *buffer, MappedBuffer *map) override; void stop() override; QImage getCurrentImage() override; Q_SIGNALS: void renderComplete(libcamera::FrameBuffer *buffer); protected: void paintEvent(QPaintEvent *) override; QSize sizeHint() const override; private: FormatConverter converter_; libcamera::PixelFormat format_; QSize size_; /* Camera stopped icon */ QSize vfSize_; QIcon icon_; QPixmap pixmap_; /* Buffer and render image */ libcamera::FrameBuffer *buffer_; QImage image_; QMutex mutex_; /* Prevent concurrent access to image_ */ }; #endif /* __QCAM_VIEWFINDER_QT_H__ */