From: Matt C. <mat...@cs...> - 2003-06-01 05:41:29
|
Excellent, I hope that you are planning to contribute this back to rdesktop :) On Fri, May 30, 2003 at 10:50:26PM +0800, jg...@ic... wrote: > Linux(RedHat 8.0) default just support PCM sound format, the data bitstream is big, > every packet is 32K(include some small network layer packet) and now my program have audible gap every four packet when playing sound ,but the data i recorded is integrity, > And as I now, the rdp client of windows use ADPCM sound format, it play sound fluently > > I am still addressing this problem. > maybe problem: 1) the bitstream is too big (PCM ), should use adpcm and decode it in software You could use the ADPCM implementation from sox for that. Another problem could be: if you write() the data synchronously (you don't use O_NONBLOCK) it could block for a while until there is enough space in the soundcard's buffer. With the soundcard driver on my laptop (ymfpci) its buffer is only 15612 bytes. Meanwhile, since rdesktop is not processing packets, the TCP buffers for the connection will fill up, and the sender will be prevented from sending any more. Perhaps this could cause stalls. You might need to buffer in rdesktop, or else use a separate thread or process for playback. Matt |