3#include <QtCore/qglobal.h>
5#if defined(Q_OS_WIN) && defined(QGC_HAS_GST_D3D11_GPU_PATH)
12struct ID3D11Texture2D;
19 GstD3D11VideoBuffer(GstSample* sample,
const GstVideoInfo& videoInfo,
const QVideoFrameFormat& format);
20 ~GstD3D11VideoBuffer()
override;
22 QVideoFrameTexturesUPtr mapTextures(QRhi& rhi, QVideoFrameTexturesUPtr& oldTextures)
override;
25 const char*
storageTag()
const override {
return "D3D11"; }
28 static void resetCachedState() noexcept;
32 void resolvePlaneResources();
34 std::array<ID3D11Texture2D*,
GstHw::kMaxPlanes> _textures{};
35 int _resolvedCount = 0;
36 bool _resolved =
false;
Common base for GStreamer-backed QHwVideoBuffer subclasses.
virtual const char * storageTag() const
Human-readable GPU path identifier (e.g. "DMABuf"); string literal, safe from any thread.
virtual bool validatePlaneHandles() const
Streaming-thread sanity check on per-plane handles; failure routes to CPU memcpy.