Virtual driver problem
Virtual driver problem
- Subject: Virtual driver problem
- From: Robert Bielik <email@hidden>
- Date: Thu, 19 Jan 2012 14:34:37 +0100
Hmm... I've been thru this before, but now I don't know what to do. Story short, I have a virtual audio device (VAD kext) (output only) which I "pull" data from at 512 frames per call ( in a CA IOProc callback ). I use the CA output timestamps to provide the VAD with a stable clock (for the takeTimeStamp call), and this one is very accurate (~5 us stddev). But I get clicks whose frequency is related to the number of blocks in the IOAudioEngine implementation (I have 8 nominally). In clipOutputSamples I write to a ring buffer which is then read in the "pull" call.
I have the following peculiarities:
1. The clicks seize after about 12 seconds, as if the audio subsystem adapts
2. If I use mach_absolute_time() for the timestamp instead, the stddev is 10 times higher, but I get NO clicks at all. Why would this be better ?
3. There is NO change if I disable the "erase head", the clicks are still present
4. If I instead of inputting the data from the mixBuf (in clipOutputSamples), write a sinewave to the ring buffer, I hear NO clicks. This should mean that the ring buffer is OK. So the clicks must reside in the mixBuf input parameter, OR I have some misconception of how to interpret the firstSampleFrame/numSampleFrames parameters ?
Any ideas on what to do ?
Regards,
/Rob
Ps. The code is based on the AudioReflectorDriver example code, running on 10.6.7
_______________________________________________
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