Quellcode durchsuchen

use built-in readable-stream implementation when available (ie. recent version of node)

Gil Pedersen vor 13 Jahren
Ursprung
Commit
f54aa25f07
3 geänderte Dateien mit 29 neuen und 10 gelöschten Zeilen
  1. 11 3
      lib/reader.js
  2. 8 2
      lib/tsblast.js
  3. 10 5
      lib/tssmooth.js

+ 11 - 3
lib/reader.js

@@ -6,9 +6,17 @@ var util = require('util'),
 
 var async = require('async'),
     http = require('http-get'),
-    debug = require('debug')('hls:reader'),
-    Readable = require('readable-stream'),
-    Transform = require('readable-stream/transform');
+    debug = require('debug')('hls:reader');
+
+try {
+  var Readable = require('stream').Readable,
+      Transform = require('stream').Transform;
+  assert(Readable);
+  assert(Transform);
+} catch (e) {
+  var Readable = require('readable-stream'),
+      Transform = require('readable-stream/transform');
+}
 
 var m3u8 = require('./m3u8');
 

+ 8 - 2
lib/tsblast.js

@@ -2,8 +2,14 @@ var dgram = require('dgram'),
     util = require('util'),
     assert = require('assert');
 
-var async = require('async'),
-    Writable = require('readable-stream/writable');
+var async = require('async');
+
+try {
+  var Writable = require('stream').Writable;
+  assert(Writable);
+} catch (e) {
+  var Writable = require('readable-stream/writable');
+}
 
 module.exports = tsblast;
 exports.TsBlast = TsBlast;

+ 10 - 5
lib/tssmooth.js

@@ -1,8 +1,14 @@
 var util = require('util'),
     assert = require('assert');
 
-var async = require('async'),
-    Transform = require('readable-stream/transform');
+var async = require('async');
+
+try {
+  var Transform = require('stream').Transform;
+  assert(Transform);
+} catch (e) {
+  var Transform = require('readable-stream/transform');
+}
 
 // In Transport Streams the intended rate is determined by the values of the PCR fields and the number of Transport Stream bytes between them. (ISO-13818-1 D.0.9)
 
@@ -32,7 +38,6 @@ function parsePCR(buffer, index) {
 
 function TsSmooth(options) {
   var self = this;
-//  stream.Transform.call(this, {bufferSize:188*7, highWaterMark:64*1024});
   this.options = options || {};
 
   // the buffer is only used for partial TS packets ()< 188 bytes)
@@ -90,11 +95,11 @@ function TsSmooth(options) {
     return pcrtime;
   }
 
-  stream.Transform.call(this);
+  Transform.call(this);
 
   return this;
 }
-util.inherits(TsSmooth, stream.Transform);
+util.inherits(TsSmooth, Transform);
 
 function utime() {
   var t = process.hrtime(); // based on CLOCK_MONOTONIC, and thus accommodates local drift (but apparently not suspend)