Which SetCurrentMediaType in particular?
Specifically, it waits until IMFMediaTypeHandler::GetCurrentMediaType (on the handler associated with the sink) returns a non-null type. The code looks roughly like this: ``` PROPVARIANT pv = { 0 }; IMFMediaType *type = NULL; IMFMediaSession_Start(session, NULL, &pv); while (type == NULL) { IMFMediaTypeHandler_GetCurrentMediaType(sink->media_type_handler, &type); WaitForSingleObject(sample_ready, 1); } ResetEvent(sample_ready); IMFStreamSink_QueueEvent(&sink->iface, MEStreamSinkRequestSample, &NULLGUID, S_OK, NULL); if (WAIT_TIMEOUT == WaitForSingleObject(sample_ready, 1000)) fatal_failure(); ``` Yes, I know a lot of this is quite nonsensical. The code quality isn't great.
my first choice would be to drop requests like that.
Mine too, I've tried dropping the requests and it crashes the game as well because it now times out waiting for the requested sample. I'll write a test. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/9716#note_125095