3#ifndef QFFMPEGHWACCEL_VIDEOTOOLBOX_P_H
4#define QFFMPEGHWACCEL_VIDEOTOOLBOX_P_H
17#include <QtFFmpegMediaPluginImpl/private/qffmpeghwaccel_p.h>
21#include <QtCore/private/qcore_mac_p.h>
23#include <CoreVideo/CVBase.h>
25#include <CoreVideo/CVPixelBuffer.h>
26#include <CoreVideo/CVImageBuffer.h>
27#include <CoreVideo/CVMetalTexture.h>
28#include <CoreVideo/CVMetalTextureCache.h>
29#if defined(Q_OS_MACOS)
30#include <CoreVideo/CVOpenGLTextureCache.h>
31#elif defined(Q_OS_IOS)
32#include <CoreVideo/CVOpenGLESTextureCache.h>
37typedef struct CV_BRIDGED_TYPE(id)
38 __CVMetalTextureCache *CVMetalTextureCacheRef CV_SWIFT_NONSENDABLE;
47class VideoToolBoxTextureConverter :
public TextureConverterBackend
50 VideoToolBoxTextureConverter(QRhi *rhi);
51 ~VideoToolBoxTextureConverter();
52 QVideoFrameTexturesHandlesUPtr
53 createTextureHandles(AVFrame *frame, QVideoFrameTexturesHandlesUPtr oldHandles) override;
56 void freeTextureCaches();
58 QCFType<CVMetalTextureCacheRef> cvMetalTextureCache;
59#if defined(Q_OS_MACOS)
60 QCFType<CVOpenGLTextureCacheRef> cvOpenGLTextureCache;
61#elif defined(Q_OS_IOS)
62 QCFType<CVOpenGLESTextureCacheRef> cvOpenGLESTextureCache;