Require a test frame with D3D11VA

This commit is contained in:
Cameron Gutman 2022-04-26 23:04:31 -05:00
parent d3a542bac4
commit f732b1978e
2 changed files with 10 additions and 0 deletions

View File

@ -1002,6 +1002,15 @@ int D3D11VARenderer::getRendererAttributes()
return RENDERER_ATTRIBUTE_HDR_SUPPORT;
}
bool D3D11VARenderer::needsTestFrame()
{
// We can usually determine when D3D11VA will work based on which decoder GUIDs are supported,
// however there are some strange cases (Quadro P400 + Radeon HD 5570) where something goes
// horribly wrong and D3D11VideoDevice::CreateVideoDecoder() fails inside FFmpeg. We need to
// catch that case before we commit to using D3D11VA.
return true;
}
void D3D11VARenderer::lockContext(void *lock_ctx)
{
auto me = (D3D11VARenderer*)lock_ctx;

View File

@ -22,6 +22,7 @@ public:
virtual void notifyOverlayUpdated(Overlay::OverlayType) override;
virtual void setHdrMode(bool enabled) override;
virtual int getRendererAttributes() override;
virtual bool needsTestFrame() override;
private:
static void lockContext(void* lock_ctx);