From: Bernhard Kölbl bkoelbl@codeweavers.com
Signed-off-by: Bernhard Kölbl bkoelbl@codeweavers.com --- dlls/mf/session.c | 2 ++ dlls/mf/tests/mf.c | 15 +++++++++++++++ 2 files changed, 17 insertions(+)
diff --git a/dlls/mf/session.c b/dlls/mf/session.c index 87af5b95eab..bd1dd123410 100644 --- a/dlls/mf/session.c +++ b/dlls/mf/session.c @@ -1119,6 +1119,8 @@ static void session_start(struct media_session *session, const GUID *time_format
break; } + else return session_command_complete_with_event(session, MESessionStarted, S_OK, NULL); + /* fallthrough; we're resuming from the current position */ case SESSION_STATE_STOPPED: /* Start request with no current topology. */ diff --git a/dlls/mf/tests/mf.c b/dlls/mf/tests/mf.c index a02f2859f91..c56e59fbc6c 100644 --- a/dlls/mf/tests/mf.c +++ b/dlls/mf/tests/mf.c @@ -7919,6 +7919,21 @@ static void test_media_session_seek(void)
compare_object_states(&actual_object_state_record, &expected_sample_request_and_delivery_records);
+ SET_EXPECT(test_media_sink_GetPresentationClock); + SET_EXPECT(test_media_sink_GetStreamSinkCount); + + PropVariantClear(&propvar); + hr = IMFMediaSession_Start(session, NULL, &propvar); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + + hr = wait_media_event(session, callback, MESessionStarted, 1000, &propvar); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + + todo_wine + CHECK_CALLED(test_media_sink_GetPresentationClock); + todo_wine + CHECK_CALLED(test_media_sink_GetStreamSinkCount); + memset(&actual_object_state_record, 0, sizeof(actual_object_state_record)); hr = IMFMediaSession_Pause(session); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);