浏览代码

don't delay for packets that needs to be output immediately

Gil Pedersen 13 年之前
父节点
当前提交
092cc3cbf3
共有 1 个文件被更改,包括 6 次插入1 次删除
  1. 6 1
      lib/tssmooth.js

+ 6 - 1
lib/tssmooth.js

@@ -118,7 +118,12 @@ function outputBefore(stream, buffer, endTime, packetSize, cb) {
     stream.push(buffer.slice(index, Math.min(buffer.length, index+packetSize)));
     index += packetSize;
 
-    setTimeout((index < buffer.length) ? outputPacket: cb, Math.min(Math.max(0.95*packetTime/1000, 1), 50));
+    var done = (index < buffer.length) ? outputPacket: cb;
+    var delay = Math.min(Math.max((0.8*packetTime/1000)-1, 1), 50);
+    if (delay === 1)
+      process.nextTick(done);
+    else
+      setTimeout(done, delay);
   }
   outputPacket();
 }