diff --git a/dlls/mf/evr.c b/dlls/mf/evr.c index 2ac85fab795..a5a39fe7786 100644 --- a/dlls/mf/evr.c +++ b/dlls/mf/evr.c @@ -91,9 +91,11 @@ static ULONG WINAPI video_renderer_sink_Release(IMFMediaSink *iface) static HRESULT WINAPI video_renderer_sink_GetCharacteristics(IMFMediaSink *iface, DWORD *flags) { - FIXME("%p, %p.\n", iface, flags); + TRACE("%p, %p.\n", iface, flags); - return E_NOTIMPL; + *flags = MEDIASINK_CLOCK_REQUIRED | MEDIASINK_CAN_PREROLL; + + return S_OK; } static HRESULT WINAPI video_renderer_sink_AddStreamSink(IMFMediaSink *iface, DWORD stream_sink_id, diff --git a/dlls/mf/tests/mf.c b/dlls/mf/tests/mf.c index 44d69a7a8cc..c274c3263d3 100644 --- a/dlls/mf/tests/mf.c +++ b/dlls/mf/tests/mf.c @@ -3253,12 +3253,10 @@ static void test_evr(void) hr = IMFActivate_ActivateObject(activate, &IID_IMFMediaSink, (void **)&sink); ok(hr == S_OK, "Failed to activate, hr %#x.\n", hr); - flags = 0; hr = IMFMediaSink_GetCharacteristics(sink, &flags); -todo_wine { ok(hr == S_OK, "Unexpected hr %#x.\n", hr); ok(flags == (MEDIASINK_CAN_PREROLL | MEDIASINK_CLOCK_REQUIRED), "Unexpected flags %#x.\n", flags); -} + hr = IMFMediaSink_QueryInterface(sink, &IID_IMFMediaSinkPreroll, (void **)&preroll); ok(hr == S_OK, "Unexpected hr %#x.\n", hr); IMFMediaSinkPreroll_Release(preroll);