[0.4.7][WDMAUD.DRV][MMIXER] Improve AC97 driver from rapps by defining USE_MMIXER_LIB
authorJoachim Henze <Joachim.Henze@reactos.org>
Mon, 14 Nov 2022 17:23:07 +0000 (18:23 +0100)
committerJoachim Henze <Joachim.Henze@reactos.org>
Mon, 14 Nov 2022 17:23:07 +0000 (18:23 +0100)
commit6903ddbe4c37506f83f4bc29619acaaa3986d372
treeddd0f7d75c9e9e675c897fcc58625b839a58d924
parenta4f921f21ebe01353a7d6e79e5a9ab8961fa3197
[0.4.7][WDMAUD.DRV][MMIXER] Improve AC97 driver from rapps by defining USE_MMIXER_LIB

By taking alternative code-paths in WdmAud and bypassing Sysaudio.

This is a squashed backport of:
0.4.15-dev-791-g 6d7ebc20481a587bd19e8a8049317113071b0817 the USE_MMIXER_LIB which gives the best results when paired with those 2 previous patches:
0.4.15-dev-765-g b8e936a57b4770e133772cf2dd66f30671a1524b CORE-17214 (#3148) wdmaud-racecondition-fix and
0.4.15-dev-796-g a27f0debca4c0fe8cd916d2406124f9d30ae5dbe CORE-17276 winmm:mixer-testbot-crash-fix

Defining USE_MMIXER_LIB will fix/improve:
- the test execution times of "GCCLin_x86 on Test VBox" will be dramatically improve (iirc by ~10-15min)
- CORE-8726/CORE-9986/CORE-16564 AC97 driver from rapps will work in the same session that the driver is installed, not a single reboot is needed anymore
- CORE-13202 Unhandled exception from wdmaud.drv when recording sound in Scratch 1.4 leads to app-crash (gets fixed even for older builds that did not receive 0.4.15-dev-2794-g 81f8bce yet)
- CORE-13488 A deadlock in "DiabloII" character selection screen and "The Lion King II"
- CORE-9981 "DosBox + Commander Keen6" almost 100% fixed, DosBox + Commander Keen6 properly plays music instead of garbled output,
            same improvement for "ScummVM 2.0 with Monkey Island 2"

The playback is not yet *entirely* perfect, still a few hiccups now and then, but by orders of magnitude better than before.

Most of the above mentioned issues were a regression of SVN r44721 == 4b9731d0db1a4868c0759c8f43cde24f4be7ae8a

Defining USE_MMIXER_LIB will also have some negative aspects:
- CORE-17277 crash of dsound:duplex on "GCCLin_x86 on Test VBox" gets unhidden on the bot, but was proven to be broken even beforehand already. The driver beforehand was just not found and the tests were skipped therefore.
- CORE-17278 crash of dsound:capture on "GCCLin_x86 on Test VBox" gets unhidden on the bot, but was proven to be broken even beforehand already. The driver beforehand was just not found and the tests were skipped therefore.
- CORE-17744 Fox Audio Player 0.10.2 can not longer play an mp3 file with 22kHz, WMM audio output
- It may also have a negative impact for CORE-17285 "Realtek HD Audio" but Oleg Dubinsky accepted to tolerate that and aims to approach it differently. We resolved that as WontFix therefore.
dll/win32/wdmaud.drv/mmixer.c
dll/win32/wdmaud.drv/wdmaud.c
sdk/lib/drivers/sound/mmixer/sup.c