http://bugs.winehq.org/show_bug.cgi?id=12349
--- Comment #4 from Maarten Lankhorst m.b.lankhorst@gmail.com 2008-04-04 06:00:43 --- I would rather change the stop condition, because it is more intuitive.
for (i = 0; i < len-1; i += 2) and for (i = 0; i < len-2; i += 4)
Mixing a single byte doesn't make sense if your shortest unit of data is 2 bytes long so I put len-2 instead of len-3. Nonetheless I have various checks that make sure samples are aligned with the amount of channels.
Nice catch. Can you submit the fixed version to the wine-patches mailing list?