On 11/20/2009 05:15 AM, David Knell wrote: > On Fri, 2009-11-20 at 00:15 +0800, Steve Underwood wrote: > > >> The audio path between kernel and user space is not stable with any >> current PC based telephony system. At some point in the day the odd >> chunk of data is lost here and there, whether you use asterisk, >> callweaver, yate or FS, with dahdi or sangoma. This is the key problem >> for user space echo cancellation. When the path hiccups, the EC goes >> crazy, and howls. So far kernel space EC has been the only way to keep >> the path length rock solid. >> > Why do you think this is? Getting data from kernel space to user space > isn't something which it's difficult to do reliably: the disk system > manages it. Even if data is being lost, buffer overruns can be dealt > with by using bigger buffers, or timestamping blocks of data on their > way in so that missing blocks can be detected. > Disk isn't audio. Audio is real time, and real time constraints are a harsh mistress. Big buffers are out of the question, due to latency. Some mitigation could be provided if you can detect where missing chunks occur and their exact size. Right now, the I/O schemes do not provide for that, and incorporating support would be tough. You'd need some out of band indication, like an ioctl or something, which would lead to more user space/kernel space exchanges, further increasing the problem.
Steve _______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org