diff options
Diffstat (limited to 'src/multimedia/platform/gstreamer/common/qgstvideobuffer_p.h')
-rw-r--r-- | src/multimedia/platform/gstreamer/common/qgstvideobuffer_p.h | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/multimedia/platform/gstreamer/common/qgstvideobuffer_p.h b/src/multimedia/platform/gstreamer/common/qgstvideobuffer_p.h index bcda66cf0..5f5899da3 100644 --- a/src/multimedia/platform/gstreamer/common/qgstvideobuffer_p.h +++ b/src/multimedia/platform/gstreamer/common/qgstvideobuffer_p.h @@ -63,10 +63,17 @@ QT_BEGIN_NAMESPACE class Q_MULTIMEDIA_EXPORT QGstVideoBuffer : public QAbstractVideoBuffer { public: - QGstVideoBuffer(GstBuffer *buffer, const GstVideoInfo &info); - QGstVideoBuffer(GstBuffer *buffer, const GstVideoInfo &info, - QVideoFrame::HandleType handleType, const QVariant &handle); + enum BufferFormat { + Memory, + GLTexture, + VideoGLTextureUploadMeta, + DMABuf + }; + QGstVideoBuffer(GstBuffer *buffer, const GstVideoInfo &info, QRhi *rhi, BufferFormat format); + QGstVideoBuffer(GstBuffer *buffer, const GstVideoInfo &info) + : QGstVideoBuffer(buffer, info, nullptr, Memory) + {} ~QGstVideoBuffer(); GstBuffer *buffer() const { return m_buffer; } @@ -75,8 +82,9 @@ public: MapData map(QVideoFrame::MapMode mode) override; void unmap() override; - QVariant handle() const override { return m_handle; } + quint64 textureHandle(int plane) const override; private: + BufferFormat bufferFormat = Memory; GstVideoInfo m_videoInfo; GstVideoFrame m_frame; GstBuffer *m_buffer = nullptr; |