[PATCH 2/3] dxva2: Implement IDirectXVideoProcessorService::GetVideoProcessorCaps.

Derek Lesho dlesho at codeweavers.com
Mon Nov 1 06:59:33 CDT 2021


Signed-off-by: Derek Lesho <dlesho at codeweavers.com>
---
 dlls/dxva2/main.c | 21 +++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/dlls/dxva2/main.c b/dlls/dxva2/main.c
index ee11b1d4f84..33dc32644d1 100644
--- a/dlls/dxva2/main.c
+++ b/dlls/dxva2/main.c
@@ -458,9 +458,26 @@ static HRESULT WINAPI device_manager_processor_service_GetVideoProcessorCaps(
         IDirectXVideoProcessorService *iface, REFGUID deviceguid, const DXVA2_VideoDesc *video_desc,
         D3DFORMAT rt_format, DXVA2_VideoProcessorCaps *caps)
 {
-    FIXME("%p, %s, %p, %u, %p.\n", iface, debugstr_guid(deviceguid), video_desc, rt_format, caps);
+    TRACE("%p, %s, %p, %u, %p.\n", iface, debugstr_guid(deviceguid), video_desc, rt_format, caps);
 
-    return E_NOTIMPL;
+    if (!dxva_is_supported_stream_format(video_desc, deviceguid))
+        return E_NOTIMPL;
+
+    if (IsEqualGUID(deviceguid, &DXVA2_VideoProcSoftwareDevice))
+        caps->DeviceCaps = DXVA2_VPDev_SoftwareDevice;
+    else
+        caps->DeviceCaps = DXVA2_VPDev_HardwareDevice;
+    caps->InputPool = D3DPOOL_DEFAULT;
+    caps->NumForwardRefSamples = 0;
+    caps->NumBackwardRefSamples = 0;
+    caps->Reserved = 0;
+    caps->DeinterlaceTechnology = DXVA2_DeinterlaceTech_Unknown;
+    caps->ProcAmpControlCaps = DXVA2_ProcAmp_None;
+    caps->VideoProcessorOperations = DXVA2_VideoProcess_YUV2RGB | DXVA2_VideoProcess_StretchX | DXVA2_VideoProcess_StretchY;
+    caps->NoiseFilterTechnology = DXVA2_NoiseFilterTech_Unsupported;
+    caps->DetailFilterTechnology = DXVA2_DetailFilterTech_Unsupported;
+
+    return S_OK;
 }
 
 static HRESULT WINAPI device_manager_processor_service_GetProcAmpRange(
-- 
2.33.1




More information about the wine-devel mailing list