OSX: CoreAudio-API zum Festlegen der E / A-Pufferlänge?

Dies ist eine Fortsetzung einer früheren Frage:OSX CoreAudio: Erste inNumberFrames im Voraus - bei der Initialisierung?

Ich versuche herauszufinden, welche AudioUnit-API verwendet wird, um möglicherweise @ einzustelle inNumberFrames oderpreffered IO Buffer Duration eines Eingaberückrufs für ein einzelnes HAL audio co, mponent Instanz in OSX (kein Plug-In!). Ich verstehe zwar, dass es eine umfassende Dokumentation gibt, wie dies unter iOS erreicht werden kan AVAudioSession API, ich kann keine Dokumentation zum Festlegen dieser Werte in OSX finden oder herausfinden, unabhängig von der API. Das Web ist voll von Experten, aber widersprüchlichen Aussagen von "Es gibt eine Audio Unit API, um eine Abtastrate und eine bevorzugte Pufferdauer anzufordern ... ", bis"Du kannst definitiv die Anzahl der Frames bekommen, aber nur für den aktuellen Rückruf ... ".

ibt es eine Möglichkeit, das @ zumindest zu bekommen (und sich daran anzupassen inNumberFrames oder deraudio buffer length vom System angeboten, für die eingegebenen ausgewählten Abtastraten in OSX? Zum Beispiel für 44.1k und seine Multiples (dies scheint teilweise zu funktionieren) sowie für 48k und seine Multiples (dies scheint überhaupt nicht zu funktionieren), ich weiß nicht, wo der Hack ist, der das Anpassen des Puffers ermöglicht Länge zu diesen Werten)? Hier ist der Konsolendruck:

Available 7 Sample Rates
Available Sample Rate value : 8000.000000
Available Sample Rate value : 16000.000000
Available Sample Rate value : 32000.000000
Available Sample Rate value : 44100.000000
Available Sample Rate value : 48000.000000
Available Sample Rate value : 88200.000000
Available Sample Rate value : 96000.000000

.mSampleRate          =   48000.00
.mFormatID            = 1819304813
.mBytesPerPacket      = 8
.mFramesPerPacket     = 1
.mBytesPerFrame       = 8
.mChannelsPerFrame    = 2
.mBitsPerChannel      = 32
.mFormatFlags         = 9
_mFormatHumanReadable = kAudioFormatFlagIsFloat 
    kAudioFormatFlagIsPacked 
    kLinearPCMFormatFlagIsFloat 
    kLinearPCMFormatFlagIsPacked 
    kLinearPCMFormatFlagsSampleFractionShift 
    kAppleLosslessFormatFlag_16BitSourceData 
    kAppleLosslessFormatFlag_24BitSourceData 

expectedInNumberFrames = 512

Couldn't render in current context (Error -10863)

Der erwartete inNumberFrames wird vom System gelesen:

UInt32 expectedInNumberFrames = 0;
UInt32 propSize = sizeof(UInt32);
AudioUnitGetProperty(gInputUnitComponentInstance,
                     kAudioDevicePropertyBufferFrameSize,
                     kAudioUnitScope_Global,
                     0,
                     &expectedInNumberFrames,
                     &propSize);

ielen Dank im Voraus, dass Sie mich in die richtige Richtung gelenkt habe

Antworten auf die Frage(2)

Ihre Antwort auf die Frage