On Mon Dec 8 23:30:23 2025 +0000, Brendan McGrath wrote:
Is it clear that those are ordered steps, e.g. if you never send MENewStream does it ever start listening to the sink events? Seems to be. I suppressed the `MENewStream` event and the program just halted after the `source_mock_BeginGetEvent` call.
2064.717368|10700|sink_mock_QueueEvent: 305 (MEStreamSinkRequestSample) {00000000-0000-0000-0000-000000000000} (GUID_NULL) 0 <EMPTY> 2064.727559|10700|source_mock_BeginGetEvent: 2064.732447|01496|source_mock_QueueEvent: 201 (MESourceStarted) {00000000-0000-0000-0000-000000000000} (GUID_NULL) 0 0 (20) 2064.732690|10700|source_mock_EndGetEvent: hr: 0, 201 (MESourceStarted) {00000000-0000-0000-0000-000000000000} (GUID_NULL) 0 0 (20) 2064.732770|10700|source_mock_BeginGetEvent: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). -- https://gitlab.winehq.org/wine/wine/-/merge_requests/9716#note_125318