MR !607 was trying to fix an issue with Life Is Strange Remastered, but
although it fixed some race conditions with presentation end, the issue
it was trying to fix is still there.
The game calls IMFMediaSession_Stop while the presentation is ending, expects
that command to quickly execute, interrupting the presentation end and
emitting a MESessionStopped event instead of the MESessionEnded.
Delaying the Stop command and emitting the MESessionEnded event breaks
the game assumptions and it crashes.
--
v3: mf: Discard end of presentation on IMFMediaSession_Stop.
mf/tests: Test IMFMediaSession_Stop command near presentation end.
mf/tests: Test Start / Pause / Stop IMFMEdiaSession events.
mf/tests: Split wait_media_event helper into wait_next_media_event.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1710
--
v3: include/msvcrt: Add __WINE_(ALLOC_SIZE|DEALLOC|MALLOC) attributes to _aligned_malloc functions.
include/msvcrt: Add __WINE_(DEALLOC|MALLOC) attributes to _strdup and _wcsdup.
msvcp140_atomic_wait: Don't use the reserved variable name 'environ'.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1686