• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Creating Aggregate Devices programmatically
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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
  • Follow-Ups:
    • Re: Creating Aggregate Devices programmatically
      • From: Dave Addey <email@hidden>
References: 
 >Re: Creating Aggregate Devices programmatically (From: "B.J. Buchalter" <email@hidden>)
 >Re: Creating Aggregate Devices programmatically (From: Jeff Moore <email@hidden>)

  • Prev by Date: GetTailTime() and Digital Performer
  • Next by Date: Re: Creating Aggregate Devices programmatically
  • Previous by thread: Re: Creating Aggregate Devices programmatically
  • Next by thread: Re: Creating Aggregate Devices programmatically
  • Index(es):
    • Date
    • Thread