[Bug 14717] resampled sound is horrible

wine-bugs at winehq.org wine-bugs at winehq.org
Mon Dec 12 08:04:40 CST 2011


http://bugs.winehq.org/show_bug.cgi?id=14717

Jörg Höhle <hoehle at users.sourceforge.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hoehle at users.sourceforge.ne
                   |                            |t

--- Comment #245 from Jörg Höhle <hoehle at users.sourceforge.net> 2011-12-12 08:04:40 CST ---
I'm not that familiar with the DSound API, but I'd like to know whether Wine
could come up with a scheme that allows its mixer to sit near mmdevapi, or use
some COM-based objects to access mixer functionality.
The point is, we don't know yet whether mmdevapi might not need a mixer and
resampler eventually.

Why does mmdevapi's GetMixFormat return floating point? Obviously because that
what the native mixer uses!

So I don't understand why in comment #243, Alexander asks for permission to use
FP.  That is obviously the right choice.  The output of anything that is going
to be mixed should be FP, then mixed (if HW has not enough channels) then
converted to 16bit (if HW doesn't grok FP, Intel audio looks like it does).

How comes that native's winmm capabilities claim support of all frequencies
since w7, even with cards that don't, whereas the same HW runding MS<Vista
returns "real" capabilities?  Because there must be a resampler somewhere
between winmm for w7 and mmdevapi! (winmm for w7 supposedly uses mmdevapi)

In Wine, this was solved incompatibly by requiring the audio back ends to
support all rates and formats, therefore using plughw (bug #27956) and having
IsFormatSupported constantly return S_OK, unlike native.

Perhaps Wine must implement AUDCLNT_STREAMFLAGS_RATEADJUST one day, what is it
going to do? (Read it and you'll see it's not a set_hw_params_rate).

I'd feel much better if there was a mixer that is shared both by DSound and
mmdevapi and a resampler that is used and shared by DSound, winmm, msacm and
mmdevapi. I don't see that as an impossible task, but then, I'm not familiar
with DSound (and weird constraints on the buffer implementation such as bug
#28748, comment #1 -- I wonder if apps do the same with mmdevapi's buffer?!?).

-- 
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