Re: Synchronization problem in 10.2
Re: Synchronization problem in 10.2
- Subject: Re: Synchronization problem in 10.2
- From: Michel <email@hidden>
- Date: Thu, 3 Oct 2002 23:53:24 +0100
On Thursday 03 October 2002 22:23, Mark Cookson wrote:
>
You almost certainly need a buffer given to setSampleBuffer larger than
>
512 samples because most HAL clients use a buffer of that size, which
>
means that there is no room for the erase head or your DMA hardware to
>
read from. I'm sure the HAL would force a smaller buffer size on the
>
clients, but I doubt that they really want to be working in buffers of
>
128 samples or less.
>
>
IOAudioFamily is responsible for mixing the incoming streams of audio
>
from each instance of the HAL. In my experience it is quite reliable
>
in doing that. Are you overriding any of the more obscure
>
IOAudioEngine or IOAudioStream functions? Like the ones dealing with
>
the erase head or mixer? I can't think of a reason why two clients
>
wouldn't work as well as one client.
The buffer size is limited due to IOMallocContiguous. I don't have a choice.
the bigger I allocate, the more chance there is for it to return addresses I
can't use.
What is "special" about what is happening in my driver is that I publish 8
channels to the IOAudioStream, but I have a different DMA setup. and I do the
black magic in clipOutputSample/convertInputSamples by completely ignoring
the buffer I had passed to the stream, and using instead the DMA one for
source/destination.
Thats the only way I found for masquerate the DMA layout. It works pretty
well, save from the mixing issues.
_______________________________________________
coreaudio-api mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/coreaudio-api
Do not post admin requests to the list. They will be ignored.