Re: AudioQueue latency problem
Re: AudioQueue latency problem
- Subject: Re: AudioQueue latency problem
- From: Mark's Studio <email@hidden>
- Date: Mon, 10 Mar 2008 15:59:39 +0100
No i don't use the AudioQueue, i have 1 thread that reads data from
the network and decodes it into a ringbuffer,
and then the output unit just reads from the ringbuffer in the
callback, and if there is not any data in the ringbuffer
just give the callback an empty buffer, this way the output callback
can be started before any data is coming in,
and it will also work as very basic error correction if the ringbuffer
runs dry.
I think there is a ringbuffer in the PublicUtility folder.
I did not spend that much time with the AudioQueue, but i think if low
latency is a must, it's better to have full control over things.
On 10/03/2008, at 12.20, Stefan Agamanolis wrote:
Hi there,
Thanks for your response...
So am I to take it that you are not using AudioQueue at all? I'm not
sure how to gain access to this ringbuffer - I haven't read anything
about it in the AudioQueue documentation. But it sounds like a more
direct access like this is just what I need.
Still curious if this is all possible within the AudioQueue domain....
-Stefan Agamanolis
On 10 Mar 2008, at 09:37, Mark's Studio wrote:
I tried to do the same thing, and had similar problems with the
AudioQueue,
i ended up just copying the received data from the network into a
ringbuffer
and use the ringbuffer in the output unit callback,
this works very well, the latency on the LAN is less that 50ms (i
have not measured it)
with this approach you get complete control over latency.
On 10/03/2008, at 00.58, Stefan Agamanolis wrote:
Hello,
I have written a super-simple 'audio conference' program in C that
uses AudioQueue to record linear PCM audio, send it over the
network, and play it back on a different computer.
The problem is latency -- even though I set the AudioQueue buffer
size equivalent to 1/20th of a second of audio, my AudioQueue
callbacks are getting called in spurts every second or so, so I
don't get to touch the audio coming in from the microphone until
quite long after it was spoken.
This periodic spurt of callbacks is also happening in the
simplified case of just recording to a file, or playing back from
a file.
It's as if the layer under AudioQueue is using a much longer buffer.
For the heck of it, I tried using AudioDeviceSetProperty() to set
kAudioDevicePropertyBufferSize to something very low, and this did
not help.
Is there something I have missed or is AudioQueue not the right
interface to use for this kind of low-latency application? Any
suggestions?
Thanks so much to anyone who can help!
-Stefan Agamanolis
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
Peter Mark
Mark's Recording Studio A/S
Lundeskovsvej 3
2900 Hellerup
Denmark
Tel: +45 35366078 Fax: +45 35366038
www.marks-studio.dk
email@hidden
Peter Mark
Mark's Recording Studio A/S
Lundeskovsvej 3
2900 Hellerup
Denmark
Tel: +45 35366078 Fax: +45 35366038
www.marks-studio.dk
email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden