mfplay: Implement UpdateVideo().

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Nikolay Sivov 2022-02-14 14:49:11 +03:00 committed by Alexandre Julliard
parent c8c40e9734
commit 8b9cc79c2c
2 changed files with 16 additions and 5 deletions

View File

@ -1524,9 +1524,23 @@ static HRESULT WINAPI media_player_GetVideoWindow(IMFPMediaPlayer *iface, HWND *
static HRESULT WINAPI media_player_UpdateVideo(IMFPMediaPlayer *iface) static HRESULT WINAPI media_player_UpdateVideo(IMFPMediaPlayer *iface)
{ {
FIXME("%p.\n", iface); struct media_player *player = impl_from_IMFPMediaPlayer(iface);
IMFVideoDisplayControl *display_control;
HRESULT hr;
RECT rect;
return E_NOTIMPL; TRACE("%p.\n", iface);
if (SUCCEEDED(hr = media_player_get_display_control(player, &display_control)))
{
if (GetClientRect(player->output_window, &rect))
hr = IMFVideoDisplayControl_SetVideoPosition(display_control, NULL, &rect);
if (SUCCEEDED(hr))
hr = IMFVideoDisplayControl_RepaintVideo(display_control);
IMFVideoDisplayControl_Release(display_control);
}
return hr;
} }
static HRESULT WINAPI media_player_SetBorderColor(IMFPMediaPlayer *iface, COLORREF color) static HRESULT WINAPI media_player_SetBorderColor(IMFPMediaPlayer *iface, COLORREF color)

View File

@ -203,7 +203,6 @@ static void test_shutdown(void)
ok(hr == MF_E_SHUTDOWN, "Unexpected hr %#lx.\n", hr); ok(hr == MF_E_SHUTDOWN, "Unexpected hr %#lx.\n", hr);
hr = IMFPMediaPlayer_UpdateVideo(player); hr = IMFPMediaPlayer_UpdateVideo(player);
todo_wine
ok(hr == MF_E_SHUTDOWN, "Unexpected hr %#lx.\n", hr); ok(hr == MF_E_SHUTDOWN, "Unexpected hr %#lx.\n", hr);
hr = IMFPMediaPlayer_CreateMediaItemFromURL(player, L"url", TRUE, 0, &item); hr = IMFPMediaPlayer_CreateMediaItemFromURL(player, L"url", TRUE, 0, &item);
@ -316,7 +315,6 @@ static void test_video_control(void)
ok(hr == MF_E_INVALIDREQUEST, "Unexpected hr %#lx.\n", hr); ok(hr == MF_E_INVALIDREQUEST, "Unexpected hr %#lx.\n", hr);
hr = IMFPMediaPlayer_UpdateVideo(player); hr = IMFPMediaPlayer_UpdateVideo(player);
todo_wine
ok(hr == MF_E_INVALIDREQUEST, "Unexpected hr %#lx.\n", hr); ok(hr == MF_E_INVALIDREQUEST, "Unexpected hr %#lx.\n", hr);
IMFPMediaPlayer_Release(player); IMFPMediaPlayer_Release(player);
@ -356,7 +354,6 @@ static void test_video_control(void)
ok(hr == MF_E_INVALIDREQUEST, "Unexpected hr %#lx.\n", hr); ok(hr == MF_E_INVALIDREQUEST, "Unexpected hr %#lx.\n", hr);
hr = IMFPMediaPlayer_UpdateVideo(player); hr = IMFPMediaPlayer_UpdateVideo(player);
todo_wine
ok(hr == MF_E_INVALIDREQUEST, "Unexpected hr %#lx.\n", hr); ok(hr == MF_E_INVALIDREQUEST, "Unexpected hr %#lx.\n", hr);
IMFPMediaPlayer_Release(player); IMFPMediaPlayer_Release(player);