OSX: CoreAudio API для установки длины буфера ввода-вывода?

Это продолжение предыдущего вопроса:OSX CoreAudio: получить inNumberFrames заранее - при инициализации?

Я пытаюсь выяснить, что будет API AudioUnit для возможной настройкиinNumberFrames или жепредпочтительная длительность буфера ввода-вывода входного обратного вызова для одногоHAL Audio Co, экземпляр компонента вOSX (не плагин!). Хотя я понимаю, что есть исчерпывающая документация о том, как этого можно добиться в iOS, с помощьюAVAudioSession API, я не могу ни найти, ни найти документацию по установке этих значений в OSX, какой бы API. Сеть полна экспертных, но противоречивых заявлений от "Существует Audio Unit API для запроса частоты дискретизации и предпочтительной длительности буфера ...", чтобы"Вы можете определенно получить количество кадров, но только для текущего обратного вызова ...».

Есть ли способ, по крайней мере, получить (и адаптироваться к)inNumberFrames илидлина аудио буфера предлагается системой для выбранных входных частот дискретизации в OSX? Например, для 44.1k и его кратных (это, кажется, работает частично), а также для 48k и его кратных (это, кажется, не работает вообще, я не знаю, где взлом, который позволяет адаптировать буфер ленивый к этим ценностям)? Вот распечатка консоли:

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)

Ожидаемый inNumberFrames считывается из системы:

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

Заранее спасибо за указание мне в правильном направлении!

Ответы на вопрос(1)

Ваш ответ на вопрос