winmm: Fix notification when recording using MSACM.

Joerg-Cyril.Hoehle at t-systems.com Joerg-Cyril.Hoehle at t-systems.com
Fri Mar 15 09:06:51 CDT 2013


Hi,

Alexandre Julliard wrote:
>> To achieve this, we eliminate the tail call and turn it into a loop, 
>> which allows us to preserve the local state in the variable "last".
>Please do this as a proper loop, not with a goto.

In bug #33155 I explained that Wine's PullACMData needs a redesign
http://bugs.winehq.org/show_bug.cgi?id=33155

The core issue is the fundamental impedance mismatch between mmdevapi
capture and WinMM/ACM recording w.r.t. packet/headers sizes that
shows off depending on codec's block size.

I have no plans to fix that.  Any takers?

As a consequence, I won't spend time now refactoring the existing
misdesigned code into a set of nested loops -- still as misdesigned --
just to eliminate a goto.

So the choice was:

- Perform a tiny surgical change now, using a goto, with the benefit
  that 1:1 ACM codecs like µ-Law or A-Law would start working,
  while all others are left in the cold, waiting for a redesign.

- Leave as is, waiting for somebody to perform the redesign.
  Meanwhile, ACM recording doesn't work at all and the whole
  function could as well be replaced by a single FIXME line.

Regards,
	Jörg Höhle


More information about the wine-devel mailing list