Каковы плюсы и минусы установки kAudioDevicePropertyBufferFrameSize в CoreAudio?

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

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


person paleozogt    schedule 23.02.2010    source источник
comment
Эта константа, похоже, не существует в iOS... есть идеи, как найти замену?   -  person abbood    schedule 31.10.2012


Ответы (2)


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

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

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

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

person paleozogt    schedule 28.02.2010

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

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

person lucius    schedule 28.02.2010