valbok / QtAVPlayer

Free and open-source Qt Media Player library based on FFmpeg, for Linux, Windows, macOS, iOS and Android.
MIT License
296 stars 60 forks source link

Fix QAbstractVideoBuffer interface for Qt 6.7.2+ #490

Closed OgreTransporter closed 2 months ago

OgreTransporter commented 2 months ago

QAbstractVideoBuffer has changed from

    virtual QVideoFrame::MapMode mapMode() const = 0;
    virtual MapData map(QVideoFrame::MapMode mode) = 0;
    virtual void unmap() = 0;

    virtual std::unique_ptr<QVideoFrameTextures> mapTextures(QRhi *) { return {}; }
    virtual quint64 textureHandle(int /*plane*/) const { return 0; }

    virtual QMatrix4x4 externalTextureMatrix() const { return {}; }

    virtual QByteArray underlyingByteArray(int /*plane*/) const { return {}; }

in version 6.7.1 (https://github.com/qt/qtmultimedia/blob/6.7.1/src/multimedia/video/qabstractvideobuffer_p.h) to

    virtual MapData map(QVideoFrame::MapMode mode) = 0;
    virtual void unmap() = 0;

    virtual std::unique_ptr<QVideoFrameTextures> mapTextures(QRhi *) { return {}; }
    virtual quint64 textureHandle(QRhi *, int /*plane*/) const { return 0; }

    virtual QMatrix4x4 externalTextureMatrix() const { return {}; }

in version 6.7.2 (https://github.com/qt/qtmultimedia/blob/6.7.2/src/multimedia/video/qabstractvideobuffer_p.h)