Назад | Перейти на главную страницу

Захват звука в Linux со скоростью 20 мс прерывистый

В настоящее время я работаю над встроенным видеосервером Linux. Когда я развернул приложение на досках, которые мы планируем использовать для производства, я заметил, что звук был шумным.

Я обнаружил, что при захвате звука предполагается захват 640 байтов данных (16 кГц, 1 канал, с шириной 16 бит @ 20 мс на буфер). Однако независимо от того, как я беру данные, он всегда возвращает 682 байта, что, если предположить, что я достиг частоты дискретизации, 21,3 мс данных.

Я подумал, ладно, может это просто проблема alsa, поэтому попробовал pulse ... та же проблема. Затем я попытался использовать захват PTLib прямо со звуковой карты ... та же проблема. Я знаю, что код правильный (поэтому вопрос здесь, а не о переполнении стека). Что я должен искать, чтобы решить эту проблему?

Мне должно быть ровно 20 мс данных для передачи в поток rtp для целей буфера джиттера. Любые идеи?

Звуковая карта представляет собой интегрированный 6-канальный аудиокодек Realtek ALC888 HD.

Для меня это похоже на проблему с оборудованием / микросхемой. Это будет не первый случай, когда оборудование не соответствует паспорту. Я бы уточнил у кодировщиков драйверов.