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