FFmpeg: fall back to QWindowsD3D11VideoProcessor on D3D12/OpenGL


D3D11TextureConverter now converts NV12 D3D11VA frames to BGRA8 via
QWindowsD3D11VideoProcessor before importing them, when the sink's
QRhi can't take the frame's pixel format directly (D3D12 and OpenGL
can only import single-plane textures). VideoRenderer decides this
once per frame, before the QVideoFrame is built, since its
QVideoFrameFormat is fixed for the frame's lifetime;
QFFmpegVideoBuffer gained a pixel-format override for this, which
only affects texture import, not the underlying hw frame or its CPU
map() fallback. qEnsureThreadLocalRhi() also gained a QRhi::D3D12
fallback.

Full window-based D3D12/OpenGL playback was not verified end-to-end,
as this environment has no reliable way to observe the sink's QRhi
actually getting attached.

Change-Id: I2579482fa541d7fd99b67c81fa8f6e404d357acb
Reviewed-by: Nils Petter Skålerud <nils.petter.skalerud@qt.io>
commitac0390cb84c52a304db7509effb08797b56b2c0a
parentcf24ea7f20791a4f79ff9f2617b0826d50a1a539
authorTim Blechmann <tim.blechmann@qt.io>
committerTim Blechmann <tim.blechmann@qt.io>
commit timeWed, 14 Oct 2026 08:14:45 +0000