What I suspect happens is that winegstreamer is using a single thread pool for its queue. You can check if replacing it with e.g. MFAllocateWorkQueueEx(MF_MULTITHREADED_WORKQUEUE) gives the same result.
That's right, it sets up the queue with `MFAllocateWorkQueue` which calls `RtwqAllocateWorkQueue` with `RTWQ_STANDARD_WORKQUEUE` (which is min and max of 1 thread). I just tried modifying it to use `MF_MULTITHREADED_WORKQUEUE` and got following assertion failure: ``` ../src-wine/dlls/winegstreamer/wg_parser.c:412: wg_parser_stream_release_buffer: Assertion `stream->buffer' failed. ``` I suspect we don't do well with two threads in one stream (although we could probably fix that with a per stream CS/mutex). But otherwise I suspect it would produce the same result. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/5439#note_66745