Hi,
One MS-Windows machine passes all the attached tests, proving that MS-Windows ignores nBlockAlign and nAvgBytesPerSec. It would be helpful to get confirmation from more machines. Please build with the attached patch, execute it in interactive mode set WINETEST_INTERACTIVE=1 winetest.exe wave and listen to the sound and especially the pauses.
OTOH, Wine fails at least one test: - One waveOutGetPosition test in WAVE_MAPPER fails. - My recently accepted patches (for OSS and CoreAudio) do something forbidden, that the test was written to reveal: they fix broken values in the WAVEFORMAT description, because both winmm and dsound depend on their correctness. But Wine should not touch user-supplied data. That is a todo_wine until dsound learns how to live with broken input. I'll add todo_wine before submitting these tests as a patch.
Try this out with <= 1.1.29 (test with WINETEST_INTERACTIVE=1 make test) and you'll hear how Wine's winmm incorrectly computes the duration of the sound when given inconsistent format descriptions, causing silence where none should be, because MS-Windows does not care about BlockAlign and AvgBytesPerSec. With the upcoming 1.1.30, this will be corrected for OSS and CoreAudio, but not yet with the WAVE_MAPPER (ALSA is still broken).
Regards, Jörg Höhle