winecoreaudio.drv: Improve underrun handling

Joerg-Cyril.Hoehle at t-systems.com Joerg-Cyril.Hoehle at t-systems.com
Mon Jan 30 11:52:36 CST 2012


Hi,

Andre Eikum wrote:
>>> +        sc = AudioQueueEnqueueBufferWithParameters(This->aqueue,
>>> +                This->public_buffer, 0, NULL, 0, 0, 0, NULL, 
>>> + &req_time, &start_time);
>> NULL=ASAP is exactly what we want.  We don't want ALSA/dmix behavior, 
>> where it'll silently skip over late frames in order to catch up (dunno 
>> if MacOSX does this but in my eyes that doesn't matter).
>The AudioQueue API does do this

What "this" do you mean exactly?
a) like dmix, silently skip over megabytes of submitted frames
   should they happen to be late w.r.t. wall time?
b) Play any submitted frames ASAP to the speaker?
   You said in #29585 that OSS4 does this.

What mmdevapi needs is b). It does not appear to care about underruns
and has no dmix-like notion of trying to catch up.


>What do you mean by it doesn't matter?
If req_time NULL means ASAP, which is what we need, then the
behaviour of req_time NOT NULL as either a or b does not matter,
because we should not call it that way.

Regards,
	Jörg Höhle


More information about the wine-devel mailing list