On Tue Dec 9 21:38:37 2025 +0000, Brendan McGrath wrote:
Actually, it looks like Windows might wait for the `MEStreamStarted` event (as suppressing that is enough to halt the test program). @CharlottePabst FWIW - I'm hitting this issue too with my scrubbing work. Here's the work-around I have at the moment: https://gitlab.winehq.org/redmcg/wine/-/commit/c96938c642ceabe564487664816b2... Windows might have a lot more nuance. For example: it might wait for the `MEStreamStarted` event and then only subscribe to the sink(s) to which it connects at the end of the attached pipeline(s). Edit: Here's the relevant output from the new test: ``` 1465.043300|03640|sink_mock_QueueEvent: 305 (MEStreamSinkRequestSample) {00000000-0000-0000-0000-000000000000} (GUID_NULL) 0 <EMPTY> 1465.054398|04532|source_mock_BeginGetEvent: 1465.054679|04532|source_mock_QueueEvent: 205 (MENewStream) {00000000-0000-0000-0000-000000000000} (GUID_NULL) 0 00000216581C7A18 1465.054908|04532|source_mock_QueueEvent: 201 (MESourceStarted) {00000000-0000-0000-0000-000000000000} (GUID_NULL) 0 <EMPTY> 1465.055050|03640|source_mock_EndGetEvent: hr: 0, 205 (MENewStream) {00000000-0000-0000-0000-000000000000} (GUID_NULL) 0 00000216581C7A18 1465.055141|03640|stream_mock_BeginGetEvent: 1465.055216|03640|source_mock_BeginGetEvent: 1465.055282|03640|source_mock_EndGetEvent: hr: 0, 201 (MESourceStarted) {00000000-0000-0000-0000-000000000000} (GUID_NULL) 0 <EMPTY> 1465.055365|03640|source_mock_BeginGetEvent: ``` So it subscribes to the new stream immediately after the `MENewStream` event and likely waits for the `MEStreamStarted` event before subscribing to the sink(s). I'd rather we made it work as close as possible to how it should be. Deferring it until MEStreamStarted is not hard, but we need to carefully test when this happens in relation to other things, like MF_TOPOSTATUS_STARTED_SOURCE event or presentation clock handling.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/9716#note_125352