Clemens Ladisch <cladisch <at> fastmail.net> writes: > > Akio wrote: > > Right now, we are using a arm box with linux kernel 2.6.14 to > > develop a voip solution. After the rtp connection was > > connected at first 20 secs, there is no delay. As the timing passing > > by, the delay will going longer and longer. After 16 hours, the > > delay will up to 12 secs. > > If the sending and the receiving computers don't use the same clock, > there will be a small difference in the sample rate. You have to > measure this and adjust the data accordingly (by re-sampling or just > adding/dropping some samples). Thank you very much. I think the CPU power is so tight, there is no room to do that conversion. > > Because the alsa lib application can't detect any alsa device, > > I'd guess that either the device nodes in /dev/snd/ or the configuration > files in /use/share/alsa/ are missing. Could you can show me how to build the right structure to make alsa lib to work? May be this is the right way to void voice delay. > HTH > Clemens BTW, after many tests. I find the following combination that seems make the delay disappear in read direction, but in write direction, there will be some extra space been added. Right now, I find two points to suppress voice delay via the following method. 1. in sound/core/oss/pcm_oss.c, in snd_pcm_oss_read3(), mark the break branch which after snd_pcm_oss_capture_position_fixup(). the original code is like : ret = snd_pcm_oss_capture_position_fixup(); if (ret < 0) break; to the following one: ret = snd_pcm_oss_capture_position_fixup(); //if (ret < 0) // break; 2.in snd_pcm_oss_capture_position_fixup(), change the delay calculation method. from the original one: if (*delay <= (snd_pcm_sframes_t)runtime->buffer_size) break; frames = (*delay - runtime->buffer_size) + runtime->period_size - 1; frames /= runtime->period_size; frames *= runtime->period_size; to the following one: if (*delay <= (snd_pcm_sframes_t)runtime->period_size) break; frames = (((*delay + runtime->period_size - 1) / runtime->period_size)) * runtime->period_size; Does the modification will cause other side effect or not? How to solve the extra space in write space? Thanks in advance. Best Regards, Akio _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel