http://bugs.winehq.org/show_bug.cgi?id=32297
Bug #: 32297 Summary: dwChannelMask, nAvgBytesPerSec and nBlockAlign handled incorrectly by mmdevapi drivers in IsFormatSupported. Product: Wine Version: unspecified Platform: x86 OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: mmdevapi AssignedTo: wine-bugs@winehq.org ReportedBy: m.b.lankhorst@gmail.com Classification: Unclassified
Created attachment 42628 --> http://bugs.winehq.org/attachment.cgi?id=42628 mmdevapi render test patch, passes on a win7 machine
Each driver currently handles IsFormatSupported in an inconsistent manner, so I did some tests against win7 to see what happens.
Attached testcase is the result, and currently fails on all drivers.
nAvgBytesPerSec and nAvgBytesPerSec seem to be ignored for WAVE_FORMAT_PCM, as I sort of expected, and gets an E_INVALIDARG for WAVE_FORMAT_EXTENSIBLE.
dwChannelMask seems to be ignored for shared mode, and strictly validated on exclusive mode.
http://bugs.winehq.org/show_bug.cgi?id=32297
Andrew Eikum aeikum@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |aeikum@codeweavers.com
http://bugs.winehq.org/show_bug.cgi?id=32297
Maarten Lankhorst m.b.lankhorst@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #42628|0 |1 is obsolete| |
--- Comment #1 from Maarten Lankhorst m.b.lankhorst@gmail.com 2012-11-26 13:50:31 CST --- Created attachment 42632 --> http://bugs.winehq.org/attachment.cgi?id=42632 updated test versions, more added
http://bugs.winehq.org/show_bug.cgi?id=32297
Maarten Lankhorst m.b.lankhorst@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Blocks| |32277
http://bugs.winehq.org/show_bug.cgi?id=32297
--- Comment #2 from Andrew Eikum aeikum@codeweavers.com 2012-11-29 12:23:28 CST --- Created attachment 42669 --> http://bugs.winehq.org/attachment.cgi?id=42669 IsFormatSupported improvements
Here's a tarball with patches to fix IsFormatSupported in the 3 drivers. The results from running the tests in attachment 42632 are below.
ALSA: render.c:511: Test failed: Exclusive IsFormatSupported with nAvgBytesPerSec=0 and nBlockAlign=0 returned 80070057 render.c:523: Test failed: Shared IsFormatSupported with nAvgBytesPerSec=0 and nBlockAlign=0 returned 00000001 0x11d690 render.c:542: Test failed: Exclusive IsFormatSupported with dwChannelMask=0x3ffff returned 00000000 render.c:612: Test failed: Shared IsFormatSupported with wBitsPerSample=256 returned 88890008 (nil)
OSS: render.c:511: Test failed: Exclusive IsFormatSupported with nAvgBytesPerSec=0 and nBlockAlign=0 returned 80070057 render.c:523: Test failed: Shared IsFormatSupported with nAvgBytesPerSec=0 and nBlockAlign=0 returned 00000001 0x11cf08 render.c:542: Test failed: Exclusive IsFormatSupported with dwChannelMask=0x3ffff returned 00000000 render.c:612: Test failed: Shared IsFormatSupported with wBitsPerSample=256 returned 88890008 (nil)
CoreAudio: render.c:511: Test failed: Exclusive IsFormatSupported with nAvgBytesPerSec=0 and nBlockAlign=0 returned 80070057 render.c:523: Test failed: Shared IsFormatSupported with nAvgBytesPerSec=0 and nBlockAlign=0 returned 00000001 0x1295f8 render.c:542: Test failed: Exclusive IsFormatSupported with dwChannelMask=0x3ffff returned 00000000 render.c:602: Test failed: Shared IsFormatSupported with SubFormat=-1 returned 00000001 0x1295f8 render.c:612: Test failed: Shared IsFormatSupported with wBitsPerSample=256 returned 00000001 0x1295f8
http://bugs.winehq.org/show_bug.cgi?id=32297
--- Comment #3 from Andrew Eikum aeikum@codeweavers.com 2012-12-04 14:49:20 CST --- Patches are in Wine.
commit dc0cef3d3b68ae10c80c13846265a9317eecdfd3 Author: Andrew Eikum aeikum@codeweavers.com Date: Mon Dec 3 10:28:11 2012 -0600
wineoss.drv: Improve IsFormatSupported handling.
commit af20740d07a3f29e3e6bb7d5175b45b75059eb3d Author: Andrew Eikum aeikum@codeweavers.com Date: Mon Dec 3 10:28:07 2012 -0600
winecoreaudio.drv: Improve IsFormatSupported handling.
commit e84f05bcbcbf2092b8c09f6440cc951b66285af1 Author: Andrew Eikum aeikum@codeweavers.com Date: Mon Dec 3 10:28:02 2012 -0600
winecoreaudio.drv: Convert some OSStatus errors to HRESULT.
commit 1d1aa7e8a14fe69aad145807d1f922b261a04b97 Author: Andrew Eikum aeikum@codeweavers.com Date: Mon Dec 3 10:27:56 2012 -0600
winealsa.drv: Improve IsFormatSupported handling.
http://bugs.winehq.org/show_bug.cgi?id=32297
--- Comment #4 from Andrew Eikum aeikum@codeweavers.com 2012-12-07 13:39:23 CST --- Would you consider this resolved, Maarten?
https://bugs.winehq.org/show_bug.cgi?id=32297
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #5 from Austin English austinenglish@gmail.com --- (In reply to Andrew Eikum from comment #4)
Would you consider this resolved, Maarten?
No reply, assuming yes.
https://bugs.winehq.org/show_bug.cgi?id=32297
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |dc0cef3d3b68ae10c80c1384626 | |5a9317eecdfd3
https://bugs.winehq.org/show_bug.cgi?id=32297
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #6 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 1.7.36.