Hello,
I have an issue to reduce playback/capture audio latency for AIC3106.
Now I'm using following strategy for initial of alsa backend driver in
user level application:
snd_pcm_hw_params_set_period_size(...,frame_size,...);
snd_pcm_hw_params_set_periods_min(...,&periodsp,...);
if(periodsp< user_nperiods)
periodsp = user_nperiods
snd_pcm_hw_params_set_periods_near(....,&periodsp,...);
snd_pcm_hw_set_buffer_size(...,frame_size*periodsp,....);
[...]
snd_pcm_sw_params_set_start_threshold(..., 0U);
snd_pcm_sw_params_set_stop_threshold(..., frame_size*periodsp);
if(playback)
{
availmin=frame_size*(periodsp-user_nperiods+1);
}else
{
availmin=frame_size;
}
snd_pcm_sw_params_set_avail_min(...,availmin)
[...]
On far end I hear an echo with delay about 1 second, I definitely know
that it is a playback/capture (acoustic echo), and delay is too much for
any AEC because of (as I think) low latency in alsa driver or
misunderstanding how it should be initialized. I already exclude other
delays (jitter delay, network delay)
My initial parameters: frame_size = 640, rate = 16000, user_nperiods =
2, but after calling snd_pcm_hw_params_set_periods_min I got minimum
periodsp = 16.
For these parameter buffer (16 buffers 40ms each) total length of buffer
is 0.64 sec.
My question is how could I reduce this latency? May be some improvements
which allow me to set up less then 16 buffers, or I did wrong
initialization or is there any another internal buffer which make such
long delay for echo?
Cheers,
Tim Karaldin
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel