В CoreAudio, каковы плюсы / минусы установки kAudioDevicePropertyBufferFrameSize? - PullRequest
3 голосов
/ 23 февраля 2010

При записи с микрофона в CoreAudio для чего нужен kAudioDevicePropertyBufferFrameSize? документы говорят, что это "A UInt32 whose value indicates the number of frames in the IO buffers". Однако это не дает никаких указаний на то, почему вы хотели бы установить его.

Свойство kAudioDevicePropertyBufferFrameSizeRange дает вам допустимый минимум и максимум для размера буферного кадра. Замедляет ли установка размера буферного кадра на максимум? Когда вы захотите установить для него значение, отличное от значения по умолчанию?

Ответы [ 2 ]

3 голосов
/ 28 февраля 2010

Вот что они сказали в списке CoreAudio :

Приложение, которое ищет низкий задержка IO должна установить это значение как маленький, как он может идти в ногу с.

С другой стороны, приложения, которые не имеют большие требования взаимодействия или другие причины низкой задержки могут увеличьте это значение, чтобы позволить данным быть разбитым на куски и уменьшить количество раз в секунду IOProc вызывается. Обратите внимание, что это не обязательно понижать общее нагрузка на систему. По факту, увеличение размера буфера ввода-вывода может иметь противоположное влияние, как буферы больше, что делает их намного меньше скорее всего поместится в кеши, а что нет который действительно может подорвать производительность.

В конце дня значение Приложение выбирает его размер IO действительно то, что зависит от приложения и что он делает.

1 голос
/ 28 февраля 2010

Обычно вы оставляете его по умолчанию, но вы можете изменить размер буфера, если в цепочке обработки есть AudioUnit, который ожидает или оптимизирован для определенного размера буфера.

Кроме того, как правило, больший размер буфера приводит к увеличению задержки между записью и воспроизведением, в то время как меньший размер буфера увеличивает загрузку ЦП каждого записываемого канала.

...