Hi Joerg,
2010/3/11 Joerg-Cyril.Hoehle@t-systems.com:
Hi,
alas, even though mciavi contains lots of Critical Sections, it's not enough to protect against 2 threads calling Play and Close concurrently. I believe something entirely different would be needed: either a complete serialization of messages (like the OSS and ALSA drivers), or a concept of transactions.
That code sucks and as soon as possible I'm getting rid of it. Don't duplicate it please. It can be done without such a horrible ring buffer design, since there is really no reason to have a separate thread alive for audio. Using a winmm timer there would remove the need for that thread altogether, and as part of my sound rewrite I will write a new winmm driver that forwards to the new audio api, regardless of what that api might be. So rest of wine-devel, don't restart the flamewar in this thread. ;)
Cheers, Maarten