Re: server plug-ins
Re: server plug-ins
- Subject: Re: server plug-ins
- From: Jeff Moore <email@hidden>
- Date: Wed, 27 Mar 2013 12:38:54 -0700
Getting stuff out of the kernel is good for a whole host of reasons some of which have little to do with audio per se. First and foremost, it makes the system more robust as a problematic driver is just going to take down coreaudiod rather than the entire system. This is probably the most important technical reason.
For the driver developer, not having to write kernel code makes the whole process easier. For example, you can debug your driver on the same machine you are building and editing the source code on it without needing to reboot every time you get a crash. Further, a driver is no longer limited by what APIs are available in the kernel. If the driver wants to use an AudioUnit or the AudioConverter or any one of the host of user-land APIs, they can.
The old user-land driver model did not put any kind of constraint on the driver's IO model. In fact, the old model forced the driver to be responsible for managing all the interaction with the client process and handling all mixing, etc. Aside from making the driver do a lot of work, this had the net effect of making those kind of devices islands as they couldn't be aggregated.
By putting some constraints on the model of the user-land driver, it became possible to better generalize them and integrate them with the rest of the IO engine in the HAL. Plus, the HAL can take care of much of the heavy lifting so that the driver itself can be a simpler thing.
I'm sure there are other benefits I'm missing, but that's a pretty good start.
--
Jeff Moore
Core Audio
Apple
On Mar 27, 2013, at 12:12 PM, Stéphane Letz <email@hidden> wrote:
>> Message: 2
>> Date: Tue, 26 Mar 2013 12:53:42 -0700
>> From: Jeff Moore <email@hidden>
>> To: CoreAudio API <email@hidden>
>> Subject: Re: Buffer size change property?
>> Message-ID: <email@hidden>
>> Content-Type: text/plain; charset=iso-8859-1
>>
>> This may not help you much, but the core model we use for keeping the IO machinery in sync with the hardware is the same mechanism we have always been using. So anything you might have learned from writing IOAudio-based drivers would be applicable here too. The server plug-ins are just the first time we've expressed this model in user-space.
>
> Any technical explanations of the reason behind moving this model in user-space ?
>
> Thanks.
>
> Stéphane Letz
_______________________________________________
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