On Mon, Jan 30, 2012 at 11:03:52AM +0100, Joerg-Cyril.Hoehle@t-systems.com wrote:
sc = AudioQueueEnqueueBufferWithParameters(This->aqueue,
This->public_buffer, 0, NULL, 0, 0, 0, NULL, &req_time, &start_time);
I advise against setting req_time. This can only fragilize the system. What if req_time is miscomputed or there's a delay? 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, and that's the behavior I was trying to work around. See bug 29602. Other options like AudioQueueReset() or AudioQueueFlush() don't seem to do what we want, so this is the best solution I found. What do you mean by it doesn't matter?
if(list_count(...) == 0)
I once wrote a patch to turn such a pattern into if(list_empty(...))
Oops, I forgot that existed. I'll fix that in the next version.
Andrew