[Bug 29585] wineoss.drv audio renderer not on par with others

wine-bugs at winehq.org wine-bugs at winehq.org
Fri Apr 13 03:10:45 CDT 2012


--- Comment #51 from Jörg Höhle <hoehle at users.sourceforge.net> 2012-04-13 03:10:45 CDT ---
Chris, I don't understand parts of what you wrote. Could you please elaborate?
>In fact it existed in the data that was being written.
>It was doing this because the value from GetPosition was
>jumping ahead to exactly 10 dsound fragments beyond the dsound's saved value

>wineoss.drv should definitely not be reporting the position of
>an underrun event that has not happened yet.
Definitely.  But where/how do you diagnose this in wineoss?
Part of what I don't understand about what you write is what DSound is doing
wrong and what mmdevapi is doing wrong.

What I want:
1. Have mmdevapi produce sound values.
Here you patch is incorrect, because GetPosition should a priori not bump to
maximum when held_frames is zero.  That point is debatable and debated[*].

2. Have DSound deal with huge latencies.
>This delay was hovering around a little under 3-4 device fragments.
>That is about 7 dsound fragments.
What you write sounds to me as if DSound does not work well when the latency is
almost as large as its buffer.  I think this is a known bug in Wine's DSound,
that has become apparent since the switch to mmdevapi.  Former code used to lie
about latency.
Is what you mean point L in my list:

[*] I forgot where I wrote about this. Basically:
Contra: There could be 2 seconds worth of samples buffered within OSS, USB or
the remote desktop, they should drain slowly and normally. We need some tests
on native with such a setup.
Pro: The native mixer ticks every 10ms and its GetCurrentPadding slowly
decreases by deltas of 10ms.  All test results so far shows that GetPosition is
not far (less than ~40ms) behind GetCurrentPadding.  Therefore, when padding
decreases and reaches zero, position soon reaches max.  One bug is that Wine's
GetCurrentPadding does not behave that regularly.
IIRC there was a bug report where we observed and discussed GetPosition jumps
to maximum, but I can't find it now.
Bug #29472, comment #9 and bug #29531 are related.

Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.

More information about the wine-bugs mailing list