3#ifndef QFFMPEGHWACCEL_D3D11_P_H
4#define QFFMPEGHWACCEL_D3D11_P_H
18#include <private/quniquehandle_p.h>
19#include <private/qcomptr_p.h>
33struct SharedTextureHandleTraits
36 static Type invalidValue() {
return nullptr; }
40using SharedTextureHandle = QUniqueHandle<SharedTextureHandleTraits>;
51class TextureBridge final
56 bool copyToSharedTex(ID3D11Device *dev, ID3D11DeviceContext *
ctx,
60 ComPtr<ID3D11Texture2D> copyFromSharedTex(
const ComPtr<ID3D11Device1> &dev,
61 const ComPtr<ID3D11DeviceContext> &
ctx);
64 bool ensureDestTex(
const ComPtr<ID3D11Device1> &dev);
65 bool ensureSrcTex(ID3D11Device *dev,
const ComPtr<ID3D11Texture2D> &tex,
const QSize &
frameSize);
66 bool isSrcInitialized(
const ID3D11Device *dev,
const ComPtr<ID3D11Texture2D> &tex,
const QSize &
frameSize)
const;
67 bool recreateSrc(ID3D11Device *dev,
const ComPtr<ID3D11Texture2D> &tex,
const QSize &
frameSize);
69 SharedTextureHandle m_sharedHandle{};
71 const UINT m_srcKey = 0;
72 ComPtr<ID3D11Texture2D> m_srcTex;
73 ComPtr<IDXGIKeyedMutex> m_srcMutex;
75 const UINT m_destKey = 1;
76 ComPtr<ID3D11Device1> m_destDevice;
77 ComPtr<ID3D11Texture2D> m_destTex;
78 ComPtr<IDXGIKeyedMutex> m_destMutex;
80 ComPtr<ID3D11Texture2D> m_outputTex;
83class D3D11TextureConverter :
public TextureConverterBackend
86 D3D11TextureConverter(
QRhi *rhi);
88 TextureSet *getTextures(AVFrame *
frame)
override;
90 static void SetupDecoderTextures(AVCodecContext *
s);
93 ComPtr<ID3D11Device1> m_rhiDevice;
94 ComPtr<ID3D11DeviceContext> m_rhiCtx;
95 TextureBridge m_bridge;
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
Combined button and popup list for selecting options.
GLuint64 GLenum void * handle
static constexpr QSize frameSize(const T &frame)