Well it sort of isn't. With the old code, the GetPlayingPts() would not directly react to a change in sampleratio. Thus, all accumulated error  following the last choice, would accumulate once again. Thus even thou we have adjusted for something by changing the sample rate. The error will remain due to an inherent delay in the control loop.

After the drop of the outputptsqueue, the inherent delay is much lower, which should lead to a more stable system. However, the same thing applies. We calculate an average of the error over 2 seconds. So even thou we correct for part of the error after 2 seconds have passed by, we will have accumulated error in our average routine, that have already been corrected for.

Had we averaged over 2 seconds. Adjusted for 2 seconds. Then started a new average over 2 seconds it have not been a problem. But now we Average over 2 seconds, Restart average routine, Begin Adjusting, 2 seconds pass, and we look at the average error again.