diff options
Diffstat (limited to 'tests/auto/unit/mockbackend/qmockvideobuffer.h')
-rw-r--r-- | tests/auto/unit/mockbackend/qmockvideobuffer.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/auto/unit/mockbackend/qmockvideobuffer.h b/tests/auto/unit/mockbackend/qmockvideobuffer.h new file mode 100644 index 000000000..d09f93391 --- /dev/null +++ b/tests/auto/unit/mockbackend/qmockvideobuffer.h @@ -0,0 +1,38 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +#ifndef QMOCKVIDEOBUFFER_H +#define QMOCKVIDEOBUFFER_H + +#include "qimage.h" +#include "private/qabstractvideobuffer_p.h" + +class QMockVideoBuffer : public QAbstractVideoBuffer +{ +public: + QMockVideoBuffer(QImage image) : QAbstractVideoBuffer(QVideoFrame::NoHandle), m_image(image) { } + + MapData map(QVideoFrame::MapMode mode) override + { + MapData mapData; + if (m_mapMode == QVideoFrame::NotMapped && !m_image.isNull() + && mode != QVideoFrame::NotMapped) { + m_mapMode = mode; + + mapData.nPlanes = 1; + mapData.bytesPerLine[0] = m_image.bytesPerLine(); + mapData.data[0] = m_image.bits(); + mapData.size[0] = m_image.sizeInBytes(); + } + + return mapData; + } + + void unmap() override { m_mapMode = QVideoFrame::NotMapped; } + +private: + QVideoFrame::MapMode m_mapMode = QVideoFrame::NotMapped; + QImage m_image; +}; + +#endif // QMOCKVIDEOBUFFER_H |