evr/presenter: Expose all interfaces for MR_VIDEO_RENDER_SERVICE.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Nikolay Sivov 2020-11-16 17:50:23 +03:00 committed by Alexandre Julliard
parent c7ce8d5a52
commit 26aae271bb
2 changed files with 9 additions and 14 deletions

View File

@ -1254,18 +1254,7 @@ static HRESULT WINAPI video_presenter_getservice_GetService(IMFGetService *iface
return IDirect3DDeviceManager9_QueryInterface(presenter->device_manager, riid, obj);
if (IsEqualGUID(&MR_VIDEO_RENDER_SERVICE, service))
{
if (IsEqualIID(riid, &IID_IMFVideoDisplayControl) ||
IsEqualIID(riid, &IID_IMFVideoPositionMapper))
{
return IMFVideoPresenter_QueryInterface(&presenter->IMFVideoPresenter_iface, riid, obj);
}
else
{
FIXME("Unsupported interface %s.\n", debugstr_guid(riid));
return E_NOTIMPL;
}
}
return IMFVideoPresenter_QueryInterface(&presenter->IMFVideoPresenter_iface, riid, obj);
FIXME("Unimplemented service %s.\n", debugstr_guid(service));

View File

@ -1150,8 +1150,14 @@ static void test_default_presenter(void)
check_interface(presenter, &IID_IMFQualityAdvise, TRUE);
check_service_interface(presenter, &MR_VIDEO_RENDER_SERVICE, &IID_IMFVideoPositionMapper, TRUE);
check_service_interface(presenter, &MR_VIDEO_RENDER_SERVICE, &IID_IMFVideoDisplayControl, TRUE);
todo_wine check_service_interface(presenter, &MR_VIDEO_RENDER_SERVICE, &IID_IMFVideoPresenter, TRUE);
todo_wine check_service_interface(presenter, &MR_VIDEO_RENDER_SERVICE, &IID_IMFClockStateSink, TRUE);
check_service_interface(presenter, &MR_VIDEO_RENDER_SERVICE, &IID_IMFVideoPresenter, TRUE);
check_service_interface(presenter, &MR_VIDEO_RENDER_SERVICE, &IID_IMFClockStateSink, TRUE);
check_service_interface(presenter, &MR_VIDEO_RENDER_SERVICE, &IID_IMFTopologyServiceLookupClient, TRUE);
check_service_interface(presenter, &MR_VIDEO_RENDER_SERVICE, &IID_IQualProp, TRUE);
check_service_interface(presenter, &MR_VIDEO_RENDER_SERVICE, &IID_IMFRateSupport, TRUE);
check_service_interface(presenter, &MR_VIDEO_RENDER_SERVICE, &IID_IMFGetService, TRUE);
check_service_interface(presenter, &MR_VIDEO_RENDER_SERVICE, &IID_IMFVideoDeviceID, TRUE);
check_service_interface(presenter, &MR_VIDEO_RENDER_SERVICE, &IID_IMFQualityAdvise, TRUE);
check_service_interface(presenter, &MR_VIDEO_ACCELERATION_SERVICE, &IID_IDirect3DDeviceManager9, TRUE);
hr = IMFVideoPresenter_QueryInterface(presenter, &IID_IMFVideoDeviceID, (void **)&deviceid);