On Tue Apr 2 22:21:52 2024 +0000, Nikolay Sivov wrote:
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. I see now that it's internal detail rather than something visible or testable, because one of the functions is to block at wait_on_sample(). So yes, maybe having a thread per stream is fine. On Windows the source is likely much lighter and returns samples quicker.
Yes, and I don't think we should make it more concurrent than it already is, we already have too many problems with that. Instead, it should be as light as it is on Windows and not decode samples.