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
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.