http://bugs.winehq.org/show_bug.cgi?id=21655
Summary: MacOS: broken mixing in dsound8 tests + assertion failure Product: Wine Version: 1.1.38 Platform: x86 OS/Version: Mac OS X 10.5 Status: UNCONFIRMED Severity: normal Priority: P2 Component: directx-dsound AssignedTo: wine-bugs@winehq.org ReportedBy: hoehle@users.sourceforge.net
Must set WINETEST_INTERACTIVE or use runtest -i to get this.
Ouch, my ears. OTOH, the interactive winmm/wave tests sound fine. More precisely, all primary buffers of the form Nx24x1|2 or Nx32x1|2 produce various forms of hissing or plain noise. ../../../tools/runtest -i -P wine -M dsound.dll -T ../../.. -p dsound_test.exe.so dsound8.c dsound8.c:624: Testing a primary buffer at 96000x32x2 with a secondary buffer at 11025x16x2 ds3d8.c:332: Playing 1 second 440Hz tone at 11025x16x2 Assertion failed: (ptr1 < buflen), function DSOUND_BufPtrDiff, file mixer.c, line 305. wine: Assertion failed at address 0x0007:0x91c09f95 (thread 0009), starting debugger... Abort trap
The wave tests report that 32bit width is unsupported. They also contain comment that 24bit width is not tested because ALSA has trouble with it. Yet dsound tests it?
First I suspected this to be another instance of the broken DSOUND_PrimarySetFormat known from bug #20056 or bug #19124. OTOH, what happens here is different: WaveOpen fails initially, then the MAPPER+ACM kicks in and accepts to convert 24 or 32bit PCM to 16 => WaveOpen succeeds. On Linux, the sound is far from correct too, but there's no crash.
With 24 or 32 bit tests outcomment in dsound8.c the only failure is: dsound8.c:624: Testing a primary buffer at 8000x16x2 with a secondary buffer at 11025x16x2 ds3d8.c:332: Playing 1 second 440Hz tone at 11025x16x2 ds3d8.c:517: Test failed: The sound played for 875 ms instead of 1000 ms (and 8kHz indeed sounds strange, while the other frequencies are much better).