Explorar o código

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

Gil Pedersen %!s(int64=13) %!d(string=hai) anos
pai
achega
092cc3cbf3
Modificáronse 1 ficheiros con 6 adicións e 1 borrados
  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();
 }