Yuxuan Shui (@yshui) commented about dlls/mf/tests/mf.c:
- hr = IMFPresentationClock_Pause(clock);
- ok(hr == MF_E_INVALIDREQUEST, "Unexpected hr %#lx.\n", hr);
- ensure_no_events(event_generator, 100);
- hr = IMFPresentationClock_Start(clock, 0);
- ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- check_event(event_generator, MEStreamSinkStarted, 100);
- check_event(event_generator, MEStreamSinkRequestSample, 100);
- hr = IMFPresentationClock_Pause(clock);
- ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- check_event(event_generator, MEStreamSinkPaused, 100);
- hr = IMFMediaSinkPreroll_NotifyPreroll(sink_preroll, 10000000 / 60 * sample_count);
- ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- ensure_no_events(event_generator, 100);
this means there is currently a bug in media session, as it tries to preroll the evr again when restarting from a pause. but an evr that was prerolled won't generate `MEStreamSinkPrerolled` again.