-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
44 lines (37 loc) · 1.11 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
(function () {
"use strict";
var JPEG_HEADER_BUF,
JPEG_HEADER_STRING,
JpgStreamer;
JPEG_HEADER_BUF = new Buffer([0xFF, 0xD8, 0xFF]);
JPEG_HEADER_STRING = JPEG_HEADER_BUF.toString('binary');
JpgStreamer = (function () {
function JpgStreamer(subprocess, cb) {
var self = this
;
this.cb = cb;
this.acc = '';
subprocess.stdout.on('data', function(data) {
self.acc += data.toString('binary');
self.acc = self.searchForJpg(self.acc, self.cb);
});
}
JpgStreamer.prototype.searchForJpg = function(dataString, cb) {
var files
, loc
, jpgFile
;
loc = dataString.indexOf(JPEG_HEADER_STRING, 1);
if (loc === -1) {
return dataString;
}
files = dataString.split(JPEG_HEADER_STRING);
jpgFile = new Buffer(JPEG_HEADER_STRING + files[0] + files[1], 'binary');
this.newestImage = jpgFile;
cb(null, jpgFile);
return this.searchForJpg(JPEG_HEADER_STRING + files.slice(2).join(JPEG_HEADER_STRING), cb);
};
return JpgStreamer;
})();
module.exports = JpgStreamer;
}());