• 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: Writing a private device driver
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Writing a private device driver


  • Subject: Re: Writing a private device driver
  • From: Jeremy Bernstein <email@hidden>
  • Date: Tue, 27 Dec 2005 21:11:05 +0100

Jeff -

Thanks very much for your response. I wonder if you meant "Audio Extraction APIs" when you wrote "AudioContext APIs" -- simply because I can't find any documentation for the latter. In any case, I think you're right -- writing a driver is really overkill for the task at hand. I am hoping I can avoid it...

Thanks
jb

Am 27.12.2005 um 21:02 schrieb email@hidden:

Date: Tue, 27 Dec 2005 09:40:11 -0800
From: Jeff Moore <email@hidden>
Subject: Re: Writing a private device driver
To: CoreAudio API <email@hidden>
Message-ID: <email@hidden>
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed


On Dec 26, 2005, at 10:12 AM, Jeremy Bernstein wrote:

Hello coreaudio-api -

I am trying to adapt the Phantom Audio Device driver to a specific
project. I am admittedly a newbie in the CoreAudio realm, although
I've been working with the QuickTime API for several years.

The first thing you should do is to switch over to the newer AudioReflectorDriver sample in our recent SDK. It is a very updated version of the PhantomAudioDriver, including new blit routines.

Ideally, I would like to be able to instantiate a variable number
of private, independent audio "devices" to facilitate communication
between 2 parts of my software (I need to stream audio out of a
QuickTime movie and into a more general audio signal processing
environment). I am more or less clear about how the basic
functionality needs to be implemented, thanks to the example
project, but:

You really ought to look at the AudioContext APIs in QT7. They let you create a means to patch into the QT data stream as you will. I have heard of other developers doing this to implement what you describe. Creating a device driver in the kernel to solve this is like swatting a fly with a sledge hammer.

The AudioContext APIs are beyond the scope of this list. You will
need to pose your questions about them on the QT lists.

- I can't determine if it is possible to create a "private" audio
device driver: that is, I don't want users to be able to use these
audio devices. As far as I can tell, I _have_ to create a virtual
device driver in order to use SetMovieAudioContext() for what I
need to do, but I'd like this private mechanism to remain private.

There's no such thing as a private device driver. You cannot implement such a thing using an IOAudio based driver.

- I can't determine if it is possible to load multiple instances of
a driver on the fly. That is, I would prefer to instantiate and
initialize 1 (x-channel) stream for each request, rather than
assigning a hard upper limit by extending the AudioEngines array,
or by setting IOAudioStreamNumChannels to some fixed value.
Ideally, I would like to reload my device driver and create a new
instance of it.

It is possible to do this, but it isn't easy. Basically, IOKit drivers are instantiated when something they match appears on the system. You'd need to find a way to cause the matching to happen without using real hardware.

Alternately, you could create a private call to your driver that
tells it to instantiate more instances of itself.

Both topics are really beyond the scope of this list.

If any of this sounds interesting or possible, I'd love to know. If
any of it sounds completely impossible, but gets you thinking about
alternative solutions, I'd love to know that, too...

I think you are totally barking up the wrong tree on this. As I said, the QT AudioContext APIs were created at least in part for your purpose and you should look at that as the starting point of your solution.

--

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
  • Follow-Ups:
    • Re: Writing a private device driver
      • From: Jeff Moore <email@hidden>
  • Prev by Date: Re: Writing a private device driver
  • Next by Date: AudioUnit FormatConverter
  • Previous by thread: Re: Writing a private device driver
  • Next by thread: Re: Writing a private device driver
  • Index(es):
    • Date
    • Thread