Alsa: запись snd_pci_readi()
У меня есть специальный поток, который записывает аудио от Alsa через snd_pcm_readi()
, Запись происходит нормально в течение примерно 30 минут (каждый файл продолжительностью одна минута), после этого размер файла постепенно уменьшается, и в результате "чтение из аудиоинтерфейса не выполнено err = -32"
if ((err = snd_pcm_readi(capture_handle, buffer, buffer_frames)) != buffer_frames)
{
fprintf (stderr, "read from audio interface failed (%s)\n",err, snd_strerror (err));
audio_outbuf_size = (err * snd_pcm_format_width(AUDIO_FORMAT)/ 8 * 2);
}
Любая помощь осуществляется. Спасибо.
1 ответ
Чтобы уменьшить вероятность переполнения, увеличьте размер буфера. Для достижения наилучших результатов, сделайте его как можно больше.
Пока размер периода остается неизменным, задержка не изменится.