http://bugs.winehq.org/show_bug.cgi?id=33045
--- Comment #9 from Andrew Eikum aeikum@codeweavers.com 2013-03-05 12:29:08 CST --- (In reply to comment #8)
Please investigate possible difference in behaviour between the last buffer in a queue and all other buffers before. E.g. 3 buffers -1/+1/0 and +1/-1/0. Why? Because the occasional GetPosition failures in our wave tests appear to solely occur when playing several headers and shortly before the buffer reaches the end (e.g. within the last 10ms). That lead me to believe that native does something special in that case. For instance, I've been wondering whether native may send out the last header's callback notification slightly ahead of time, to help some apps produce continuous sound.
In the (-1,+1,0) case, it always seems to stall on the last callback. (+1,-1,0) performs all three callbacks.
But if you switch them around
The results are ugly, as if native inconsistently applied rounding. It would be good if you had some of these tests on testbot, I could take it to w95 this week-end.
Sure thing: https://testbot.winehq.org/JobDetails.pl?Key=24619
This runs both (+1,-1) and (-1,+1). View the full logs to see the trace() statements.