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
shader_set_function is inconsistent in whether it will cleanup the shader
before returning an error. Most of the callers of shader_set_function will do
the cleanup, which could double-free; but not all of them do, which means there
are also potential leaks. So make sure all callers do, and remove shader_cleanup
calls from shader_set_function.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8472
--
v11: cfgmgr32: Support fetching properties for device objects in Dev{GetObjects, CreateObjectQueryEx}.
cfgmgr32: Implement initial device enumeration for DevCreateObjectQuery.
cfgmgr32/test: Add tests for DevCreateObjectQuery.
cfgmgr32/tests: Add tests for fetching specific properties in DevGetObjects.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8478
--
v10: cfgmgr32: Support fetching properties for device objects in Dev{GetObjects, CreateObjectQueryEx}.
cfgmgr32: Implement initial device enumeration for DevCreateObjectQuery.
cfgmgr32/test: Add tests for DevCreateObjectQuery.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8478
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