• 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: IOAudioEngine::performFormatChange cannot be triggered by change of I/O Buffer Size
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: IOAudioEngine::performFormatChange cannot be triggered by change of I/O Buffer Size


  • Subject: Re: IOAudioEngine::performFormatChange cannot be triggered by change of I/O Buffer Size
  • From: Jeff Moore <email@hidden>
  • Date: Wed, 03 Dec 2008 22:49:11 -0800

That is more or less accurate. The thing to keep in mind here is that your driver can have many clients. Each client can have a different buffer size. This means that it probably isn't a good idea in general to base any decisions on any one client's actions.

On Dec 3, 2008, at 9:46 PM, David Tan wrote:

Hi Jeff,

Thanks for your guides!

I also found another reply from you and Bill to some guy’s similar question to me. I think I have general idea of this question.
Could you please review my understanding and let me any misunderstanding? Thanks!


While one user-space application is attempting to play music through my audio driver, Core Audio will cause the OS to call addClient().
Meanwhile the parameter “IOAudioClientBuffer* clientBuffer” will give me information of application’s buffer settings. Is that correct?


Best Regards,
David Tan,
Software Engineer,
Dextrys Co., Ltd.
From: coreaudio-api-bounces+david.tan=email@hidden [mailto:coreaudio-api-bounces+david.tan=email@hidden ] On Behalf Of Jeff Moore
Sent: Wednesday, December 03, 2008 4:42 AM
To: CoreAudio-API Mailing List
Subject: Re: IOAudioEngine::performFormatChange cannot be triggered by change of I/O Buffer Size



On Dec 2, 2008, at 12:22 AM, David Tan wrote:


On the device window of HALLab, there’re combo box of Nominal Sample Rate and IO Buffer Size.
While I change the selection of Nominal Sample Rate, I can get notification by IOAudioEngine::performFormatChange().
But it seems that change of IO Buffer Size cannot make it.


My question is: what’s the IO Buffer Size really means? Hardware or driver?

That is the duration in sample frames of the IO cycle that the application is requesting. It is wholly separate from the buffers in the driver and the hardware.


And If I want to be informed in the driver of its change, which method should I use.


About the only way you can monitor what buffer sizes the clients of your driver are using, is to override IOAudioStream::addClient and IOAudioStream::removeClient to observe as client buffers are registered and unregistered.




--

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
  • Prev by Date: kAudioDevicePropertyDeviceIsRunningSomewhere and 10.4
  • Next by Date: low-pass filter on the iphone
  • Previous by thread: kAudioDevicePropertyDeviceIsRunningSomewhere and 10.4
  • Next by thread: low-pass filter on the iphone
  • Index(es):
    • Date
    • Thread