Re: Developing a PCI Audio Driver
Re: Developing a PCI Audio Driver
- Subject: Re: Developing a PCI Audio Driver
- From: Matthew Xavier Mora <email@hidden>
- Date: Wed, 31 Jul 2002 17:58:36 -0700
At 3:40 PM -0700 7/31/02, Nathan Aschbacher wrote:
Is it possible to prevent the system's main CPU from pre-processing audio
data/signals so that this can be offloaded to a custom audio chip like the
EMU10k1 and subsequent generations? What I'm trying to do is determine the
possibility and the implementation of an accelerated audio driver for MacOS
X. The intention for this is to try and minimize the CPU load during the
playing of audio. Microsoft's DirectSound driver API offers the ability to
do this, where all audio output is offloaded to the sound processor instead
of running on the main CPU. Though previously impossible under OS 9, I was
hoping that a similar capability would be available in MacOS X's completely
rebuilt audio system. I suppose in simplest terms I'm trying to create a
driver for MacOS X that can accelerate CoreAudio just as a graphics card
vendor would build a driver to accelerate CoreGraphics. The problem is that
the hooks for graphics acceleration are evident and documented. No similar
system seems to be in place for Audio under MacOS X, or at least it's not
obvious.
After studying the IOAudioEngine documentation as well as the
IOAudioEngineUserClient docs and the Audio HAL I've found it difficult to
determine at what point the CPU actually starts to work with the audio data.
It seems like it's before the data ever reaches the Audio HAL which I guess
means that there's little hope of being able to remove that burden from the
CPU, but I was hoping someone would be able to direct me otherwise.
IOAudioFamily is responsible for mixing the audio streams before they
get to the driver. If you could override the mixing function you
could get each client's buffer and mix them and output that data
through your card. This would only work for clients that are using
your device. (ie if system beeps are still targeted for built in
hardware, then your card would not see this data).
In theory this could work though it has never been tried.
Good Luck,
Matt
_______________________________________________
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.