Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Handling of QVideoFrame with GLTextureHandle handle type



  • MacOS with Qt 5.9.1.
    I'm using QMediaPlayer to play local video files. My implementation of QAbstractVideoSurface is set as QMediaPlayer VideoOutput and "present" slot fires only once with (QVideoFrame::handleType() == QAbstractVideoBuffer::GLTextureHandle). How can I change handle type to have access to fame buffer and operate with it's each byte or how can I get openGL texture data to work with it? I found on forum this link, but I still can't get data from GPU memory. Maybe I just need to bind correct context to work with, because this call returns 0:

    QOpenGLContext::currentContext()
    

    On windows the same implementation returns "NoHandle" handle type and fires "present" slot for every new frame.
    Application instantiates QGuiApplication (QMediaPlayer crashed on "void setVideoOutput(QAbstractVideoSurface *surface)" call with QCoreApplication) and works with glfw OpenGL context, but there is no any Qt windows.


Log in to reply