https://bugs.winehq.org/show_bug.cgi?id=50779
--- Comment #3 from Rafał Mużyło galtgendo@o2.pl --- (below is just me thinking out loud)
So, initially as I began examining this problem, I suspected it was a matter of a change in code that introduced a leak of gstreamer objects. While it still seems explicit refs after gst_element_get_static_pad are mistakes, this doesn't seem to the case.
Now, after finally noticing 'winegstreamer: Manage our own streaming thread' commit, I'm trying to approach it from a different angle.
It would seem threads themselves are being leaked, more exactly they aren't terminated properly and end up waiting forever. Though AFAICT it's something racy - it seems to be tied to playback being terminated early, but doesn't seem to on every single such event (at this point I wouldn't be surprised if internal disk caching played a role).
By 'terminated early', I mean the leak *seems* to happen when a scene change occurs faster than a sound effect is either played or fully read. That is I suspect it happens most often when a sound effect that's tied to loading a save that seems to be slightly longer than the ones usually used in RPGMaker VXAce is being terminated early once the load is finished. Other case seem to be another ogg file with the sound effect for the cursor movement - as it's played on every key press in such menus, it might be that every once in awhile it's being cut short by its next instance. Again, leak doesn't happen every time.
The engine notes in its docs (googleable) that it applies some 'filtering' if the same sound effect is being played in a very short period...whatever that's supposed to mean in this context.