Re: User-land driver for channel mapping
Re: User-land driver for channel mapping
- Subject: Re: User-land driver for channel mapping
- From: Dave Addey <email@hidden>
- Date: Tue, 08 Apr 2008 21:19:24 +0100
- Thread-topic: User-land driver for channel mapping
Title: Re: User-land driver for channel mapping
Hi Bill,
I completely agree! However...
Our application is a pro DJ app used primarily by mobile DJs, who perform at weddings, parties and so on most nights of the week. One of their biggest requirements is the ability to top up their music collections with the latest chart singles - which you’ll be happy to hear most of them do at the iTunes Store. We get feedback from a large proportion of our users that the ability to play Protected AAC files is of utmost importance to them as a result. And the only way we can continue to offer this feature is if we use QuickTime for audio playback.
So, we’ve stuck with QuickTime as our audio engine, and have managed to achieve most of the things we need via the improvements since QT 7 came along. Our reliance on using two slaved movies to output stereo audio to two pairs of channels on one device, or on two separate devices, is the only major headache with the QuickTime approach. This is especially true since bug #5615865 in Leopard means that users experience audio dropouts when loading a second track – something we have no way of working around, which is a big problem for us as more and more users move to Leopard.
In theory we could roll our own audio engine for unprotected files, and then use QuickTime and slaved movies for protected ones, but this gives us yet another permutation of code to manage and test. It’s also a big change from our current code base, and still wouldn’t work for protected files on Leopard.
The SampleHardwarePlugin approach, whilst not being the ideal way to do things, would enable us to continue to use QuickTime without the need to use two slaved movies – avoiding bug #5615865 on Leopard and improving application performance. We could then perform the channel routing within the plugin, and also hopefully use Aggregate Devices (which have never worked reliably for us with QuickTime and audio contexts).
Dave.
From: William Stewart <email@hidden>
Date: Tue, 8 Apr 2008 12:35:04 -0700
To: Dave Addey <email@hidden>
Cc: <email@hidden>
Subject: Re: User-land driver for channel mapping
On Apr 8, 2008, at 5:10 AM, Dave Addey wrote:
Hi all,
I'm developing a user-land driver based on the SampleHardwarePlugin code, to work around a limitation in QuickTime. (I'm aware this is a less-than-elegant solution.) However, I'm not sure of the best approach for audio sync, and I'm confused by AudioTimeStamps, so I thought I'd post a few questions.
Why I'm doing this:
There is currently no way for QuickTime to play one stereo movie to two different pairs of outputs on a multi-channel audio device whilst applying separate volume levels to the different channels. (Radar feature request #4145662.)
My current workaround is to play two copies of a movie instead, with their timebases slaved together by QuickTime. Whilst this works on Tiger, it currently causes serious audio dropouts on Leopard (Radar bug #5615865), and on both platforms it necessitates a higher processor load (nearly 2x the load of one movie) than should be necessary.
Dave,
It seems to me that you are really wanting some pretty customised control over audio behaviour, so why are using QT to do this? QT is not really designed to provide these kinds of feature sets, and typically apps that are doing more than just basic playback will create their own audio engines so that they can have a finer degree of control over their rendering behaviour than QT can provide?
Bill
_______________________________________________
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