Tengo un dispositivo de audioconferencia que tiene un micrófono y un altavoz. Tanto el micrófono como el altavoz tienen la misma frecuencia de muestreo establecida por snd_pcm_hw_params_set_rate_near()
digamos 8000 Hz. ¿Necesito configurar el tamaño del período y la cantidad de períodos para que sean iguales para ambos (para que dos dispositivos de este tipo se comuniquen entre sí)?
¿O puedo elegir un período/tamaño de período diferente para el altavoz que el configurado para el micrófono? ¿Cómo decido qué período y qué tamaño de período utilizar?
estoy usando snd_pcm_hw_params_set_period_size_near()
y snd_pcm_hw_params_set_periods_near()
API para establecer el tamaño del período y el período tanto para el altavoz como para el micrófono.
(Soy nuevo en ALSA).
Los tamaños de período y de búfer admitidos dependen del controlador, pero si se trata del mismo dispositivo, es probable que los dispositivos de reproducción y captura admitan los mismos parámetros.
La necesidad de que los parámetros sean los mismos depende de cómo su aplicación acceda a estos dispositivos. En lo que respecta al conductor, estos dispositivos funcionan de forma independiente.
Los tamaños de búfer/período a usar dependen de cómo desea equilibrar la latencia, el uso de energía y la seguridad de exceso/insuficiencia. La latencia es directamente proporcional al tamaño del búfer en los dispositivos de reproducción o al tamaño del período en los dispositivos de captura. El uso de energía aumenta ligeramente en períodos más cortos. La seguridad de Xrun aumenta con buffers más grandes y un poco con períodos más cortos.