File indexing completed on 2024-04-28 13:20:57
0001 /* 0002 SPDX-FileCopyrightText: 2022 Aleix Pol i Gonzalez <aleixpol@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 */ 0006 0007 #ifndef DMABUFHANDLER_H 0008 #define DMABUFHANDLER_H 0009 0010 #include "kpipewiredmabuf_export.h" 0011 #include "pipewiresourcestream.h" 0012 #include <QImage> 0013 #include <epoxy/egl.h> 0014 0015 class KPIPEWIREDMABUF_EXPORT DmaBufHandler 0016 { 0017 public: 0018 DmaBufHandler(); 0019 ~DmaBufHandler(); 0020 0021 bool downloadFrame(QImage &image, const PipeWireFrame &frame); 0022 0023 private: 0024 void setupEgl(); 0025 bool m_eglInitialized = false; 0026 qint32 m_drmFd = 0; // for GBM buffer mmap 0027 gbm_device *m_gbmDevice = nullptr; // for passed GBM buffer retrieval 0028 0029 struct EGLStruct { 0030 EGLDisplay display = EGL_NO_DISPLAY; 0031 EGLContext context = EGL_NO_CONTEXT; 0032 }; 0033 EGLStruct m_egl; 0034 }; 0035 0036 #endif // DMABUFHANDLER_H