Re: what would cause QTSetComponentProperty to fail with a kAudioUnitErr_InvalidPropertyValue err?
Re: what would cause QTSetComponentProperty to fail with a kAudioUnitErr_InvalidPropertyValue err?
- Subject: Re: what would cause QTSetComponentProperty to fail with a kAudioUnitErr_InvalidPropertyValue err?
- From: Jeff Moore <email@hidden>
- Date: Thu, 22 Mar 2007 08:50:19 -0700
That might be correct, but it still is not the proper way to implement
the kind of audio driver Mr. Dautermann is describing. As I said in my
previous email, this kind of driver needs to be written in a two
parts. First, there needs to be a daemon that handles the actual
interaction with the hardware. Then the HAL plug-in and the vdig
component communicate with the daemon using shared memory and the IPC
API of your choice (I prefer Mach IPC using MIG).
The real practical outcome of trying to do it the way Mr. Dautermann
is describing is the multitude of bugs with applications that try to
use the device expecting it to work like every other device and the
incredible hate from users that the iSight driver and Digidesign's
first attempt at integrating the DAE into the HAL engendered. It
wasn't pretty and if memory serves, one of the primary APIs that had
big problems with those drivers at the time was QuickTime's Sequence
Grabber.
So the take away here is, take short cuts at your own peril!
On Mar 22, 2007, at 7:42 AM, Chandrasekhar Ramakrishnan wrote:
Am 20.03.2007 um 22:30 schrieb Michael Dautermann:
I'd love to be able to fully use HALLab for my validation tool, and
the plug-in seems to do all the right things at least on the Info
dialog (the main dialog) of HALLab.
In the big picture, audio data for the plug-in comes from a
Quicktime 'vdig' component I've written that gathers video and
audio streams from a USB device. Because this 'vdig' needs to be
running, I don't think I can easily use HALLab play-through to do
validation. I have to do it this way as a USB device can only be
exclusively opened by one process / app at a time (and 'vdig'
counts for one and 'audi' for another).
I have an AudioHardwarePlugIn that uses AudioUnits and thus the
component manager internally. This works fine.
The one tricky aspect was instantiating the components at the right
moment -- I couldn't do this in the Initialize() method because I
was encountering problems with reentrancy and the ComponentManager
when the app requesting the HAL plugin uses the AUHAL audio unit.
Moving the component instantiation to a later point in time solves
that.
--
Jeff Moore
Core Audio
Apple
_______________________________________________
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