http://bugs.winehq.org/show_bug.cgi?id=14717
--- Comment #254 from Alexander E. Patrakov patrakov@gmail.com 2011-12-24 07:53:05 CST --- Created attachment 38100 --> http://bugs.winehq.org/attachment.cgi?id=38100 Andrew's patchset with the third patch reworked
I made some changes to Andrew's patch, in the part where convert() functions are replaced with get() and put().
First, to ensure that 8-, 16- and 24-bit audio can pass through unmodified if there is no resampling and no volume changes, I have changed all int <-> float conversion factors to be powers of two. Second, the 24-bit case was handled incorrectly. Third, the original code always rounded floating-point samples towards zero, I have changed this to a uniform staircase by using lrintf().
No other bugs are fixed. I.e., this patch still causes clicks.