Dan Kegel wrote:
I had a new hang on yesterday's git under valgrind: err:wave:wodPlayer_WriteMaxFrags Error in writing wavehdr. Reason: Resource temporarily unavailable ... 1600 dup lines removed ... ALSA lib ../../../src/pcm/pcm.c:7228:(snd_pcm_recover) underrun occured
Good that I'm not alone. I had these specific two yesterday for the first time ever as well, without valgrind. I attributed it to "yet another flaky error in the audio drivers" -- I mean I don't entirely trust the audio drivers because winmm/tests/wave.c has shown flaky failures (WOD_PREPARED msg) for ages, without being driven by the MCI. IIRC, Wine did not hang as I waited long enough, but maybe I did ^C.
Facts: - The MCI play loop is still buggy w.r.t. sample size (witness the 333ms multiples) That could explain the underrun log that I've also seen (which I believe is a very recent log addition from Maarten). - winmm/wave.ok produces errors from time to time in test.winehq as well as on my machines.
Suppositions: - the broken MCI play loop causes the above errors, randomly. But we have nothing to prove that.
Well, I don't know where to look for the wave.ok intermittent failures (not in MCI), but my goal is to write a correct MCI play/record loop that will also be usable in mciavi32.
Oh well, another piece to the puzzle: using my interactive MCI shell, play 2 sounds in parallel [*]. *Sometimes* the second one manages to halt the first sound. I see no reason/code in MCI's waveaudio that can do that! The error must be elsewhere (-> wave or audio drivers).
[*] open long-sound.wav alias a open other.wav alias b play a from 0 play b from 0 Repeat play until a is interrupted (i.e. nothing is heard any more). The playloop appears to hang.
Regards, Jörg Höhle