[Shtoom] about patch dependencies

Zooko O'Whielacronx zooko at zooko.com
Thu Mar 17 17:24:08 CET 2005

I asked darcs which of the patches I've offered for inclusion in Shtoom 
are required for the clean application of the "rewrute of the 
microphone" patch.  It answered thusly:

I suggest we start at the oldest one.  If you, Anthony, will accept the 
"move some tests" patch, then do so first, else I will unroll that one 
and regenerate the other ones without that one.


Mon Feb 28 16:19:13 AST 2005  zooko at zooko.com
   * rewrite of the microphone -> encoder -> RTPstream channel
    * Microphone samples are asynchronously pushed up by the lower 
layers rather than being polled by the upper layers.  On Mac, the 
high-precision realtime thread is use
d to push microphone samples.  This fixes a bug with short reads and a 
bug with inaccurate polling.  On ALSA, there is a LoopingCall in the 
ALSA driver that polls at an
appropriate interval.
    * The encoder base class has a buffer to store up the appropriate 
bytes of microphone data to make up a media frame.  This buffer gets 
flushed when the audio device c
loses or reopens.
    * The audio device gets closed and reopened during important state 
transitions, namely call start and call end.  This fixes the "That 
jerk!" bug, in which you could s
ay "I have to call that jerk!" immediately before a call connected and 
then the jerk in question would hear you say it when he answered.
    * Remove some extremely detailed diags that measured the number of 
packets sent per second and the number of packets received per second.  
Those diags have served wel
l and are now retired.
    * The Mac audio loopback test is rewritten, and a bug involving 
closing the loopback test versus closing a phone call is fixed.
    * The discovery/selection of the appropriate audio device is done 
before the construction of the Phone object.  This makes the other 
platforms' initialization process
  parallel to the Mac initialization process, and also I prefer this 
approach.  (The other approach is that you construct the Phone object 
and then it discovers/selects t
he audio device itself.)

Mon Feb 28 12:37:54 AST 2005  zooko at zooko.com
   * fix bug: closing already closed ALSA device works now

Mon Feb 28 12:18:52 AST 2005  zooko at zooko.com
   * replace audiodevice.isClosed() with audiodevice.isOpen()
   It sometimes helps to reduce the number of logical nots.  Also I 
recently found a bug in which someone had reversed the sense of 

Fri Feb 25 17:03:25 AST 2005  zooko at zooko.com
   * new playout algorithm

Fri Feb 25 16:20:44 AST 2005  zooko at zooko.com
   * play ring.wav on incoming call and play ringback.wav on outgoing 

Fri Feb 25 14:48:46 AST 2005  zooko at zooko.com
   * fix alsa audio to do the "isClosed()" method properly

Fri Feb 25 15:55:58 AST 2005  zooko at zooko.com
   * fix bug in which the value of Mac audio isClosed() was reversed

Fri Feb 25 12:03:26 AST 2005  zooko at zooko.com
   * move some tests from test/ to livetest/

More information about the Shtoom mailing list