As discussed in !8402. @cmccarthy what do you think of this? I think queueing an event right before shutting down the queue is enough to get the media session notified? It won't get the actual event but it will be able to see the MF_E_SHUTDOWN error after calling `EndGetEvent`?
--
v2: include: Remove now unnecessary IMFMediaShutdownNotify interface.
mf/session: Remove now unnecessary IMFMediaShutdownNotify.
winegstreamer: Remove now unnecessary IMFMediaShutdownNotify.
mf/session: Handle an optional MEError event from sources on shutdown.
winegstreamer: Queue an event before shutting down the event queues.
mfsrcsnk: Queue an event before shutting down the event queues.
mfplat/tests: Add more tests for event queue shutdown.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8415
This should fix some spurious test failure in `test_media_session_Close`, as sometimes the source shutdown happens quickly enough and changes the session state to SESSION_STATE_STOPPED, causing the later Close command to succeed when it consistently returns E_SHUTDOWN on Windows.
--
v6: mf/session: Simplify the media session shutdown event handling.
mf/session: Introduce a SESSION_FLAG_SOURCE_SHUTDOWN presentation flag.
mf/session: Replace SESSION_FLAG_END_OF_PRESENTATION with dedicated states.
mf/session: Replace SESSION_FLAG_FINALIZE_SINKS with dedicated states.
mf/session: Remove unnecessary SESSION_FLAG_PENDING_COMMAND flag.
mf/session: Move internal states to a separate command_state enum.
mf/session: Clarify internal states from session states separation.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8402