http://bugs.winehq.org/show_bug.cgi?id=14717
--- Comment #143 from Alexander E. Patrakov patrakov@gmail.com 2011-02-20 05:15:59 CST --- The split patch deserves exactly the same review as the non-split one. It is split mechanically, meaning that we can't figure out by bisection what broke OSS for Raymond. OTOH, it demonstrates that the new code is not complex at all and can be reviewed, well, as chunks of new code.
New review items that were found since the last attempt but also apply to the old patch:
1) I'd remove the $(RM) $< line from the Makefile. It causes mkfir to be recompiled during "make install".
2) The registry setting MaxShadowSize and the corresponding variables in dsound_main.c are still used. Thus, it seems that there are still two possible ways how the resampler code can be invoked: resampling in the mixer thread and resampling when an application supplies sound data. Are both tested by playing with the MaxShadowSize? Are you sure that having two ways still makes sense from the mathematical point of view given the possibility of rewinds of the secondary buffer?
IMHO, the default "resample not in mixer" approach worked before exactly because of the zero-order-hold resampler that has well-defined non-overlapping regions of the primary buffer affected by each secondary buffer sample.