Re: Creating Aggregate Devices programmatically
Re: Creating Aggregate Devices programmatically
- Subject: Re: Creating Aggregate Devices programmatically
- From: Greg Chapman <email@hidden>
- Date: Mon, 1 Aug 2005 15:17:03 -0700
QuickTime would be perfectly happy with this solution (start the
device yourself, way early). As Jeff says, QuickTime has some issues
with devices that have non-trivial start-up delay, but all of those
issues should go away if you do this.
Greg
On Aug 1, 2005, at 2:16 PM, Jeff Moore wrote:
Theoretically, you could do this, presuming you were in charge of
how the device is used. Unfortunately, this seems to not be the
case since the device is being used in conjunction with a QT
AudioContext. As such, QT is in control of when to start and stop
the device. As has been shown, QT has a few issues with devices
that have non-trivial start-up delay.
On Aug 1, 2005, at 1:28 PM, B.J. Buchalter wrote:
on 8/1/05 3:06 PM, Jeff Moore at email@hidden wrote:
Another (and perhaps most important) problem I have encountered is
that when
I play a QuickTime movie (with two tracks, in this case) through
the
(working, public) aggregate device, there is a 1 to 2 sec delay
before the
movie starts playing, during which time nothing happens.
Prerolling the
movie removes this delay, but still takes 1 - 2 sec to do the
prerolling.
(This is on a Dual 2Ghz G5, 3.5Gb memory, OS 10.4.2).
Unfortunately, this
makes responsive starting of movies very tricky when responding to
user
interaction for triggering playback. Is this just the nature of
aggregate
devices, or is there anything I can do to reduce this time?
This is expected and can't be avoided. Due to their nature,
aggregate
devices need to ensure that the clocks on the sub-devices have
settled out and are reasonably accurate. This takes a few time
stamps
from each sub-device, which can be a second or two depending on the
devices in use. There is nothing you can do to change this.
Couldn't he start the aggregate device after he creates it and
simply keep
it running so that it is always "pre-warmed" by the time QT starts
running?
The synchronization only happens when the aggregate is started; if
it is
already running when QT start talking to it it should be
instantaneous (just
like playing after QT has started device during the pre-roll). The
device
start would be asynchronous and ostensibly could take place during
the rest
of the start up of the app so by the time the user clicked play on
something, everything would be synched and happy...
BR,
B.J. Buchalter
Metric Halo
5 Donovan Drive
Hopewell Junction, NY 12533 USA
tel +1 845 223-6112
fax +1 603 250-2451
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
40apple.com
This email sent to email@hidden
--
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
_______________________________________________
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