File indexing completed on 2025-01-19 03:57:06

0001 /*********************************************************
0002  * Copyright (C) 2020, Val Doroshchuk <valbok@gmail.com> *
0003  *                                                       *
0004  * This file is part of QtAVPlayer.                      *
0005  * Free Qt Media Player based on FFmpeg.                 *
0006  *********************************************************/
0007 
0008 #ifndef QAVVIDEOBUFFER_P_H
0009 #define QAVVIDEOBUFFER_P_H
0010 
0011 //
0012 //  W A R N I N G
0013 //  -------------
0014 //
0015 // This file is not part of the Qt API. It exists purely as an
0016 // implementation detail. This header file may change from version to
0017 // version without notice, or even be removed.
0018 //
0019 // We mean it.
0020 //
0021 
0022 #include <QtAVPlayer/qavvideoframe.h>
0023 #include <QVariant>
0024 
0025 QT_BEGIN_NAMESPACE
0026 
0027 class QRhi;
0028 class QAVVideoBuffer
0029 {
0030 public:
0031     QAVVideoBuffer() = default;
0032     explicit QAVVideoBuffer(const QAVVideoFrame &frame) : m_frame(frame) { }
0033     virtual ~QAVVideoBuffer() = default;
0034     const QAVVideoFrame &frame() const { return m_frame; }
0035 
0036     virtual QAVVideoFrame::MapData map() = 0;
0037     virtual QAVVideoFrame::HandleType handleType() const { return QAVVideoFrame::NoHandle; }
0038     virtual QVariant handle(QRhi */*rhi*/ = nullptr) const { return {}; }
0039 protected:
0040     QAVVideoFrame m_frame;
0041 };
0042 
0043 QT_END_NAMESPACE
0044 
0045 #endif