Major mmdevapi and winmm audio bugs
Joerg-Cyril.Hoehle at t-systems.com
Joerg-Cyril.Hoehle at t-systems.com
Fri Feb 24 06:28:48 CST 2012
Hi,
instead of Wine Weekly News (WWN, any taker?) you get monthly audio news.
The surprising thing is: it looks like most audio bugs remaining in bugzilla
are from the pre-mmdevapi era and have not been updated since mid-2011.
- Using devices other than "default" (dmix or pulse):
#29294 no sound with ALSA loopback -- are they duplicates of each other
#28781 loopback to Jack -- or is one about DSound only?
We have are several issues about crackling sound:
- One definitely is caused by CreateTimerQueue which is not regular
enough or does not deliver 10ms, but 12ms callbacks. This is in
#28723 which includes a work-around in comment #130
That may affect the Solaris machine on test.winehq.org too.
- One is caused by a mmdevapi design error: the audio buffer we use is
simply too small, and Linux can't bear a regular 10ms rate.
Things got worse since the introduction of the Completely Fair Scheduler.
It can't even guarantee a regular 50ms one. There's a need for a much
larger buffer. That's why wine < 1.3.25 is giving steadier sound.
#29531 may be caused by this.
- Mac OS X 10.5.8 crackles constantly with dlls/mmdevapi/tests/render
I'd like somebody with 10.6 or .7 to perform the interactive test.
rm -f render.ok; WINETEST_INTERACTIVE=1 make render.ok
- Lastly, there's PulseAudio
#28856 among others
I don't understand why I couldn't find bugs in PA's bugzilla, so I wrote some:
- https://bugs.freedesktop.org/show_bug.cgi?id=46296
About the need to restart the PA server from time to time
- https://bugs.freedesktop.org/show_bug.cgi?id=46297
PA's huge buffering causes issues with winmm
- https://bugs.freedesktop.org/show_bug.cgi?id=46412
How to obtain PA's typical 44100 rate?
Feel free to contribute if you know apps outside Wine with similar issues.
Surprisingly, users have reported improvements in the latest
wine-1.4rcX even when nothing changed, but also mentioned updates on
the PA and alsa_plugins side. Perhaps that improved the situation.
I was pleased to see Wine's testsuite help find bugs in Pulse:
http://lists.freedesktop.org/archives/pulseaudio-discuss/2012-February/012825.html
There are issues not always associated with a bug entry:
- #29472 comment #12 DSound GetDevicePosition is not how it should be
- Check OSS4 with and without vmix #28056 #28790
- winmm handling huge latency (such as PA's) & when to send notifications
- Issues with microphone capture?
- DSound mixing and buffer sizes & padding vs. GetPosition
- Deal with intermittent errors from ALSA etc. in mmdevapi, winmm and dsound
- Device enumeration and PA preventing access to the underlying device
Is this known to cause no sound in an app (or only in our wave tests?)
- various missing trailing sound with DSound #21209
- #29369 strange issue involving PA and perhaps messaging
- misc. losing sound: #28319 #25164 #28770
- lead-out needed with dmix
- Use lock-less design to reduce contention, cf. #29531, comment #7
- multi-channel, 5:1 etc. in mmdevapi and DSound
- Bugs in the quartz or winegstreamer area that I don't have on my radar
Of course there are more bugs than this.
Regards,
Jörg Höhle
More information about the wine-devel
mailing list