http://bugs.winehq.org/show_bug.cgi?id=29714
Bug #: 29714 Summary: mmdevapi/capture test often fails on debian testing Product: Wine Version: 1.3.37 Platform: x86 OS/Version: Linux Status: NEW Keywords: download, regression Severity: normal Priority: P2 Component: mmdevapi AssignedTo: wine-bugs@winehq.org ReportedBy: austinenglish@gmail.com CC: hoehle@users.sourceforge.net Classification: Unclassified Regression SHA1: f24b31fcf2047e8b4d0d8b910c54c0815c54d1cf
Created attachment 38565 --> http://bugs.winehq.org/attachment.cgi?id=38565 +tid,+mmdevapi,+winmm,+driver,+midi,+dsound,+dmusic,+mci,+oss,+alsa,+coreaudio trace
austin@debian-buildbot:~/wine-git$ git bisect bad f24b31fcf2047e8b4d0d8b910c54c0815c54d1cf is the first bad commit commit f24b31fcf2047e8b4d0d8b910c54c0815c54d1cf Author: J��rg H��hle hoehle@users.sourceforge.net Date: Thu Jan 12 22:36:31 2012 +0100
mmdevapi/tests: Perform capture protocol tests in shared mode.
:040000 040000 8251887bab3583e1327626d8e7492e61fa5e0285 255d9de316fae3fc6fc5b26a87b771593858e8c6 M dlls
+tid,+mmdevapi,+winmm,+driver,+midi,+dsound,+dmusic,+mci,+oss,+alsa,+coreaudio trace attached.
http://bugs.winehq.org/show_bug.cgi?id=29714
Jörg Höhle hoehle@users.sourceforge.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords|download |source CC| |aeikum@codeweavers.com
--- Comment #1 from Jörg Höhle hoehle@users.sourceforge.net 2012-01-27 05:56:10 CST ---
capture.c:140: Test failed: GetNextPacketSize 0 vs. GCP 9
Likely that machine is fast and started capturing (very little) data.
Having GetCurrentPadding return values modulo PeriodSize is not the solution, unless GetBufferSize is a multiple of it (when full, it'll substract 480 each time from 23941 frames).
I think I'll make GetBufferSize always return a multiple of the buffer size, deviating from native behaviour in shared mode, rather than weakening this test (weaken the GetBufferSize test instead). MSDN does not guarantee exact buffer sizes.
However, I first want to test exclusive mode behaviour. Also there should be a test to see what happens with the last GetBuffer when emptying the buffer downward from 23941 frames (better do that when stopped).
BTW, according to this year's new definition, this is not a regression. http://www.winehq.org/pipermail/wine-devel/2012-January/093643.html
What I've done on MacOS is to let my test loop script know that e.g. winecoreaudio render will always return 3-4 failures where winealsa returns none. As I explained elsewhere, I don't know how to write meaningful tests that know that some things will fail with only one of OSS or MacOS or ALSA.
http://bugs.winehq.org/show_bug.cgi?id=29714
Raymond superquad.vortex2@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |superquad.vortex2@gmail.com
--- Comment #2 from Raymond superquad.vortex2@gmail.com 2012-02-03 20:06:37 CST ---
if mmdevapi expect 10ms and alsa-driver can only support 512 frames (i.e. 10.666 ms)
trace:alsa:AudioClient_IsFormatSupported returning: 00000000 trace:alsa:AudioClient_IsFormatSupported (0x126d08)->(ffffffff, 0x126988, (nil)) trace:alsa:AudioClient_GetBufferSize (0x126d08)->(0x32fc90) trace:alsa:AudioClient_GetStreamLatency (0x126d08)->(0x32fc50) trace:alsa:AudioClient_GetCurrentPadding (0x126d08)->(0x32fc90) trace:alsa:AudioClient_Start (0x126d08) trace:alsa:AudioClient_Stop (0x126d08) trace:alsa:AudioClient_Reset (0x126d08) trace:alsa:AudioClient_SetEventHandle (0x126d08)->(0x50) trace:alsa:AudioClient_GetService (0x126d08)->({93014887-242d-4068-8a15-cf5e93b90fe3}, 0x32fc94) trace:alsa:AudioClient_Initialize (0x126d08)->(3, 0, 4c4b40, 0, 0x126988, (null)) trace:alsa:AudioClient_Initialize (0x126d08)->(0, ffffffff, 4c4b40, 0, 0x126988, (null)) trace:alsa:AudioClient_Initialize Unknown flags: ffffffff trace:alsa:AudioClient_Initialize (0x126d08)->(0, 0, 4c4b40, 0, (nil), (null)) trace:alsa:AudioClient_Initialize (0x126d08)->(0, 40000, 4c1b06, 0, 0x126988, (null)) trace:alsa:dump_fmt wFormatTag: 0xfffe (WAVE_FORMAT_EXTENSIBLE) trace:alsa:dump_fmt nChannels: 2 trace:alsa:dump_fmt nSamplesPerSec: 48000 trace:alsa:dump_fmt nAvgBytesPerSec: 384000 trace:alsa:dump_fmt nBlockAlign: 8 trace:alsa:dump_fmt wBitsPerSample: 32 trace:alsa:dump_fmt cbSize: 22 trace:alsa:dump_fmt dwChannelMask: 00000003 trace:alsa:dump_fmt Samples: 0020 trace:alsa:dump_fmt SubFormat: {00000003-0000-0010-8000-00aa00389b71} trace:alsa:AudioClient_Initialize ALSA period: 512 frames trace:alsa:AudioClient_Initialize ALSA buffer: 2048 frames trace:alsa:AudioClient_Initialize MMDevice period: 480 frames trace:alsa:AudioClient_Initialize MMDevice buffer: 23941 frames trace:alsa:AudioClient_GetStreamLatency (0x126d08)->((nil)) trace:alsa:AudioClient_GetStreamLatency (0x126d08)->(0x32fc78) capture.c:558: Returned latency: 20.6667 ms trace:alsa:AudioClient_Initialize (0x126d08)->(0, 0, 4c4b40, 0, 0x126988, (null)) trace:alsa:AudioClient_SetEventHandle (0x126d08)->((nil)) trace:alsa:AudioClient_Start (0x126d08) trace:alsa:AudioClient_SetEventHandle (0x126d08)->(0x40) trace:alsa:AudioClient_Reset (0x126d08) warn:alsa:AudioClient_Reset snd_pcm_reset failed trace:alsa:AudioClient_Stop (0x126d08) trace:alsa:AudioClient_Start (0x126d08) trace:alsa:AudioClient_GetService (0x126d08)->({c8adbd64-e71e-48a0-a4de-185c395cd317}, 0x32fc94) trace:alsa:AudioClient_AddRef (0x126d08) Refcount now 2 trace:alsa:AudioCaptureClient_GetBuffer (0x126d08)->(0x32fc84, 0x32fc90, 0x32fc80, 0x32fc68, 0x32fc60) trace:alsa:AudioCaptureClient_GetNextPacketSize (0x126d08)->(0x32fc8c) trace:alsa:AudioCaptureClient_ReleaseBuffer (0x126d08)->(0) trace:alsa:AudioCaptureClient_GetNextPacketSize (0x126d08)->(0x32fc8c) trace:alsa:AudioClient_GetCurrentPadding (0x126d08)->(0x32fc88) trace:alsa:AudioClient_GetCurrentPadding pad: 508 capture.c:140: Test failed: GetNextPacketSize 0 vs. GCP 508 trace:alsa:AudioCaptureClient_GetNextPacketSize (0x126d08)->((nil)) trace:alsa:AudioCaptureClient_GetBuffer (0x126d08)->(0x32fc84, (nil), (nil), (nil), (nil)) trace:alsa:AudioCaptureClient_GetBuffer (0x126d08)->((nil), 0x32fc90, (nil), (nil), (nil)) trace:alsa:AudioCaptureClient_GetBuffer (0x126d08)->((nil), (nil), 0x32fc80, (nil), (nil)) trace:alsa:AudioCaptureClient_GetBuffer (0x126d08)->(0x32fc84, 0x32fc90, (nil), (nil), (nil)) trace:alsa:AudioClient_GetDevicePeriod (0x126d08)->(0x32fc58, (nil)) trace:alsa:AudioCaptureClient_GetBuffer (0x126d08)->(0x32fc84, 0x32fc90, 0x32fc80, 0x32fc68, 0x32fc60) capture.c:185: Wait'ed position 0 pad 508 flags 0, amount of frames locked: 480 trace:alsa:AudioCaptureClient_GetNextPacketSize (0x126d08)->(0x32fc8c) trace:alsa:AudioCaptureClient_ReleaseBuffer (0x126d08)->(480) trace:alsa:AudioCaptureClient_ReleaseBuffer (0x126d08)->(0) trace:alsa:AudioCaptureClient_GetNextPacketSize (0x126d08)->(0x32fc8c) trace:alsa:AudioCaptureClient_ReleaseBuffer (0x126d08)->(480) trace:alsa:AudioClient_GetCurrentPadding (0x126d08)->(0x32fc88) trace:alsa:AudioClient_GetCurrentPadding pad: 16741 trace:alsa:AudioCaptureClient_GetNextPacketSize (0x126d08)->(0x32fc8c) trace:alsa:AudioCaptureClient_GetBuffer (0x126d08)->(0x32fc84, 0x32fc90, 0x32fc80, 0x32fc68, 0x32fc60) trace:alsa:AudioCaptureClient_ReleaseBuffer (0x126d08)->(0) trace:alsa:AudioClient_GetCurrentPadding (0x126d08)->(0x32fc90) trace:alsa:AudioClient_GetCurrentPadding pad: 16741 trace:alsa:AudioCaptureClient_GetBuffer (0x126d08)->(0x32fc84, 0x32fc90, 0x32fc80, 0x32fc50, 0x32fc48) capture.c:243: Test failed: HPC after ReleaseBuffer(0) 52227891 vs. 52227665 capture.c:247: Sleep.1 position 480 pad 16741 flags 0, amount of frames locked: 480 trace:alsa:AudioCaptureClient_GetBuffer (0x126d08)->(0x32fc50, 0x32fc48, 0x32fc80, 0x32fc68, 0x32fc60) trace:alsa:AudioCaptureClient_ReleaseBuffer (0x126d08)->(481) trace:alsa:AudioCaptureClient_ReleaseBuffer (0x126d08)->(1) trace:alsa:AudioClient_Reset (0x126d08) trace:alsa:AudioCaptureClient_ReleaseBuffer (0x126d08)->(480) trace:alsa:AudioCaptureClient_ReleaseBuffer (0x126d08)->(480) trace:alsa:AudioClient_GetBufferSize (0x126d08)->(0x32fc8c) capture.c:291: GetBufferSize 23941 period size 480 warn:alsa:alsa_read_data Overflow of unread data warn:alsa:alsa_read_data Overflow of unread data warn:alsa:alsa_read_data Overflow of unread data warn:alsa:alsa_read_data Overflow of unread data warn:alsa:alsa_read_data Overflow of unread data warn:alsa:alsa_read_data Overflow of unread data warn:alsa:alsa_read_data Overflow of unread data warn:alsa:alsa_read_data Overflow of unread data warn:alsa:alsa_read_data Overflow of unread data warn:alsa:alsa_read_data Overflow of unread data warn:alsa:alsa_read_data Overflow of unread data warn:alsa:alsa_read_data Overflow of unread data warn:alsa:alsa_read_data Overflow of unread data warn:alsa:alsa_read_data Overflow of unread data warn:alsa:alsa_read_data Overflow of unread data warn:alsa:alsa_read_data Overflow of unread data warn:alsa:alsa_read_data Overflow of unread data warn:alsa:alsa_read_data Overflow of unread data warn:alsa:alsa_read_data Overflow of unread data warn:alsa:alsa_read_data Overflow of unread data warn:alsa:alsa_read_data Overflow of unread data warn:alsa:alsa_read_data Overflow of unread data warn:alsa:alsa_read_data Overflow of unread data trace:alsa:AudioClient_GetCurrentPadding (0x126d08)->(0x32fc88) trace:alsa:AudioClient_GetCurrentPadding pad: 23941 trace:alsa:AudioCaptureClient_GetBuffer (0x126d08)->(0x32fc84, 0x32fc90, 0x32fc80, 0x32fc68, 0x32fc60) capture.c:301: Overrun position 960 pad 23941 flags 0, amount of frames locked: 480 capture.c:306: Test failed: expect DISCONTINUITY 0 capture.c:312: Test failed: Position 960 gap 0 trace:alsa:AudioCaptureClient_ReleaseBuffer (0x126d08)->(480) trace:alsa:AudioClient_GetCurrentPadding (0x126d08)->(0x32fc88) trace:alsa:AudioClient_GetCurrentPadding pad: 23461 trace:alsa:AudioCaptureClient_GetBuffer (0x126d08)->(0x32fc84, 0x32fc90, 0x32fc80, 0x32fc68, 0x32fc60) capture.c:328: Cont'ed position 1440 pad 23461 flags 0, amount of frames locked: 480
capture: 246 tests executed (0 marked as todo, 4 failures), 0 skipped.
https://bugs.winehq.org/show_bug.cgi?id=29714
--- Comment #3 from Ken Sharp imwellcushtymelike@gmail.com --- Is this still an issue in Wine 1.7.45 or later?
https://bugs.winehq.org/show_bug.cgi?id=29714
--- Comment #4 from Austin English austinenglish@gmail.com --- (In reply to Ken Sharp from comment #3)
Is this still an issue in Wine 1.7.45 or later?
Yes: https://test.winehq.org/data/ae6efa469bfaecade30e160d195d607bdcdcc6ae/linux_... capture.c:141: Test failed: GetNextPacketSize 0 vs. GCP 4
https://bugs.winehq.org/show_bug.cgi?id=29714
joaopa jeremielapuree@yahoo.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jeremielapuree@yahoo.fr
--- Comment #5 from joaopa jeremielapuree@yahoo.fr --- Is still a bug in current wine(3.20)?
https://bugs.winehq.org/show_bug.cgi?id=29714
--- Comment #6 from Austin English austinenglish@gmail.com --- (In reply to joaopa from comment #5)
Is still a bug in current wine(3.20)?
I'm on different hardware/OS, but I can reproduce in 4.11 on gentoo: ../../../tools/runtest -q -P wine -T ../../.. -M mmdevapi.dll -p mmdevapi_test.exe.so capture && touch capture.ok capture.c:144: Test failed: GetNextPacketSize 0 vs. GCP 441 make: *** [Makefile:181: capture.ok] Error 1
https://bugs.winehq.org/show_bug.cgi?id=29714
François Gouget fgouget@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |testcase CC| |fgouget@codeweavers.com
https://bugs.winehq.org/show_bug.cgi?id=29714
--- Comment #7 from François Gouget fgouget@codeweavers.com --- I don't see any failure on the TestBot's debiant VM (Debian Testing). Is this still an issue?
See https://test.winehq.org/data/patterns.html#mmdevapi:capture
https://bugs.winehq.org/show_bug.cgi?id=29714
--- Comment #8 from Austin English austinenglish@gmail.com --- (In reply to François Gouget from comment #7)
I don't see any failure on the TestBot's debiant VM (Debian Testing). Is this still an issue?
See https://test.winehq.org/data/patterns.html#mmdevapi:capture
I just ran the tests in a loop; failed for me on try #269, with a previously known failure: capture.c:447: Returned periods: 10.0000 ms 3.0000 ms capture.c:459: pwfx: 00150810 capture.c:460: Tag: fffe capture.c:461: bits: 32 capture.c:462: chan: 2 capture.c:463: rate: 48000 capture.c:464: align: 8 capture.c:465: extra: 22 capture.c:470: Res: 32 capture.c:471: Mask: 3 capture.c:472: Alg: FLOAT 0448:fixme:pulse:AudioClient_Initialize Unknown flags: ffffffff capture.c:531: Returned latency: 20.0000 ms capture.c:155: Wait'ed position -1 pad 0 flags abadcafe, amount of frames locked: 0 capture.c:221: Sleep.1 position 0 pad 16320 flags 0, amount of frames locked: 480 capture.c:267: GetBufferSize 24000 period size 480 capture.c:278: Overrun position 960 pad 24000 flags 1, amount of frames locked: 480 capture.c:306: Cont'ed position 1440 pad 23520 flags 0, amount of frames locked: 480 capture.c:333: Restart position 2400 pad 23520 flags 1, amount of frames locked: 480 capture.c:340: Test marked flaky: Position 2400 expected 1920 capture.c:341: Test failed: flags 1 capture.c:364: Reset position -1 pad 0 flags abadcafe, amount of frames locked: 0 capture.c:381: Running position 25920 pad 9120 flags 0, amount of frames locked: 480 046c:capture: 243 tests executed (0 marked as todo, 1 as flaky, 1 failure), 0 skipped. austin@hyrule:~/wine-git/dlls/mmdevapi/tests/i386-windows$