Nikolay Sivov (@nsivov) commented about dlls/mf/clock.c:
+ struct presentation_clock *clock = impl_from_IMFPresentationClock((IMFPresentationClock*)context); + struct clock_timer *timer; + LONGLONG time, systime; + + if (clock->time_source && + SUCCEEDED(IMFPresentationTimeSource_GetCorrelatedTime(clock->time_source, 0, &time, &systime))) + { + EnterCriticalSection(&clock->cs); + while ( (timer = presentation_clock_next_timer(clock, time)) ) + { + list_remove(&timer->entry); + MFInvokeCallback(timer->result); + IUnknown_Release(&timer->IUnknown_iface); + } + LeaveCriticalSection(&clock->cs); + } This does not look safe, in terms of "time_source".
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/10095#note_130247