Получение размера следующего записываемого фрагмента (плагино-зависимая функция)
#include <sys/asoundlib.h>int snd_pcm_plugin_update_src( snd_pcm_t *handle,snd_pcm_channel_setup_t *setup,int currlevel );
libasound
Функция snd_pcm_plugin_update_src() возвращает размер следующего фрагмента, требуемый для snd_pcm_plugin_write().
Если используется режим SND_SRC_MODE_ACTUAL
или SND_SRC_MODE_ASYNC
(см. snd_pcm_plugin_set_src_mode()), следует вызвать snd_pcm_plugin_update_src() после каждого последующего вызова snd_pcm_plugin_write().
За буферизацию соответствующего объема данных для недопущения опустошения буфера (underflow) при записи несет ответственность клиент. Он должен определить степень заполнения буфера в процентах (количество сэмплов у клиента, деленное на общий размер буфера). Плагин преобразования частоты дискретизации в libasound настраивает частоту для поддержания точного отслеживания целевых показателей (в процентах), установленных данной функцией.
ЗОСРВ «Нейтрино»
Следует убедиться, что плагино-зависимые и независимые вызовы не смешиваются в приложении. В противном случае поведение будет непредсказуемым.
snd_pcm_plugin_src_max_frag(), snd_pcm_plugin_set_src_mode()
Предыдущий раздел: Библиотека libasound