Enable AV1 RFI on all decoders capable of HEVC RFI

This commit is contained in:
Cameron Gutman 2023-08-13 16:41:48 -05:00
parent 50255dd896
commit 1a2f1ed620
7 changed files with 15 additions and 6 deletions

View file

@ -59,7 +59,8 @@ bool CUDARenderer::isDirectRenderingSupported()
int CUDARenderer::getDecoderCapabilities() int CUDARenderer::getDecoderCapabilities()
{ {
return CAPABILITY_REFERENCE_FRAME_INVALIDATION_HEVC; return CAPABILITY_REFERENCE_FRAME_INVALIDATION_HEVC |
CAPABILITY_REFERENCE_FRAME_INVALIDATION_AV1;
} }
CUDAGLInteropHelper::CUDAGLInteropHelper(AVHWDeviceContext* context) CUDAGLInteropHelper::CUDAGLInteropHelper(AVHWDeviceContext* context)

View file

@ -1080,7 +1080,8 @@ int D3D11VARenderer::getRendererAttributes()
int D3D11VARenderer::getDecoderCapabilities() int D3D11VARenderer::getDecoderCapabilities()
{ {
return CAPABILITY_REFERENCE_FRAME_INVALIDATION_HEVC; return CAPABILITY_REFERENCE_FRAME_INVALIDATION_HEVC |
CAPABILITY_REFERENCE_FRAME_INVALIDATION_AV1;
} }
bool D3D11VARenderer::needsTestFrame() bool D3D11VARenderer::needsTestFrame()

View file

@ -1037,7 +1037,8 @@ int DXVA2Renderer::getDecoderColorspace()
int DXVA2Renderer::getDecoderCapabilities() int DXVA2Renderer::getDecoderCapabilities()
{ {
return CAPABILITY_REFERENCE_FRAME_INVALIDATION_HEVC; return CAPABILITY_REFERENCE_FRAME_INVALIDATION_HEVC |
CAPABILITY_REFERENCE_FRAME_INVALIDATION_AV1;
} }
void DXVA2Renderer::renderFrame(AVFrame *frame) void DXVA2Renderer::renderFrame(AVFrame *frame)

View file

@ -503,7 +503,8 @@ int VAAPIRenderer::getDecoderCapabilities()
int caps = 0; int caps = 0;
if (!m_HasRfiLatencyBug) { if (!m_HasRfiLatencyBug) {
caps |= CAPABILITY_REFERENCE_FRAME_INVALIDATION_HEVC; caps |= CAPABILITY_REFERENCE_FRAME_INVALIDATION_HEVC |
CAPABILITY_REFERENCE_FRAME_INVALIDATION_AV1;
} }
return caps; return caps;

View file

@ -439,7 +439,8 @@ int VDPAURenderer::getDecoderColorspace()
int VDPAURenderer::getDecoderCapabilities() int VDPAURenderer::getDecoderCapabilities()
{ {
return CAPABILITY_REFERENCE_FRAME_INVALIDATION_HEVC; return CAPABILITY_REFERENCE_FRAME_INVALIDATION_HEVC |
CAPABILITY_REFERENCE_FRAME_INVALIDATION_AV1;
} }
void VDPAURenderer::renderOverlay(VdpOutputSurface destination, Overlay::OverlayType type) void VDPAURenderer::renderOverlay(VdpOutputSurface destination, Overlay::OverlayType type)

View file

@ -590,7 +590,8 @@ public:
int getDecoderCapabilities() override int getDecoderCapabilities() override
{ {
return CAPABILITY_REFERENCE_FRAME_INVALIDATION_HEVC; return CAPABILITY_REFERENCE_FRAME_INVALIDATION_HEVC |
CAPABILITY_REFERENCE_FRAME_INVALIDATION_AV1;
} }
int getRendererAttributes() override int getRendererAttributes() override

View file

@ -115,6 +115,9 @@ int FFmpegVideoDecoder::getDecoderCapabilities()
// Enable HEVC RFI when using the FFmpeg software decoder // Enable HEVC RFI when using the FFmpeg software decoder
capabilities |= CAPABILITY_REFERENCE_FRAME_INVALIDATION_HEVC; capabilities |= CAPABILITY_REFERENCE_FRAME_INVALIDATION_HEVC;
// Enable AV1 RFI when using the libdav1d software decoder
capabilities |= CAPABILITY_REFERENCE_FRAME_INVALIDATION_AV1;
} }
else if (m_HwDecodeCfg == nullptr) { else if (m_HwDecodeCfg == nullptr) {
// We have a non-hwaccel hardware decoder. This will always // We have a non-hwaccel hardware decoder. This will always