|
|
|
@ -296,16 +296,29 @@ function update() {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function start() {
|
|
|
|
|
function startContinuousUpdate() {
|
|
|
|
|
var next = null,
|
|
|
|
|
delay = 1000 / (_config.frequency || 60);
|
|
|
|
|
|
|
|
|
|
_stopped = false;
|
|
|
|
|
( function frame() {
|
|
|
|
|
(function frame(timestamp) {
|
|
|
|
|
next = next || timestamp;
|
|
|
|
|
if (!_stopped) {
|
|
|
|
|
update();
|
|
|
|
|
if (_onUIThread && _config.inputStream.type === "LiveStream") {
|
|
|
|
|
window.requestAnimFrame(frame);
|
|
|
|
|
if (timestamp >= next) {
|
|
|
|
|
next += delay;
|
|
|
|
|
update();
|
|
|
|
|
}
|
|
|
|
|
window.requestAnimFrame(frame);
|
|
|
|
|
}
|
|
|
|
|
}());
|
|
|
|
|
}(performance.now()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function start() {
|
|
|
|
|
if (_onUIThread && _config.inputStream.type === "LiveStream") {
|
|
|
|
|
startContinuousUpdate();
|
|
|
|
|
} else {
|
|
|
|
|
update();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function initWorker(cb) {
|
|
|
|
@ -360,23 +373,21 @@ function workerInterface(factory) {
|
|
|
|
|
var imageWrapper;
|
|
|
|
|
|
|
|
|
|
self.onmessage = function(e) {
|
|
|
|
|
setTimeout(function() {
|
|
|
|
|
if (e.data.cmd === 'init') {
|
|
|
|
|
var config = e.data.config;
|
|
|
|
|
config.numOfWorkers = 0;
|
|
|
|
|
imageWrapper = new Quagga.ImageWrapper({
|
|
|
|
|
x: e.data.size.x,
|
|
|
|
|
y: e.data.size.y
|
|
|
|
|
}, new Uint8Array(e.data.imageData));
|
|
|
|
|
Quagga.init(config, ready, imageWrapper);
|
|
|
|
|
Quagga.onProcessed(onProcessed);
|
|
|
|
|
} else if (e.data.cmd === 'process') {
|
|
|
|
|
imageWrapper.data = new Uint8Array(e.data.imageData);
|
|
|
|
|
Quagga.start();
|
|
|
|
|
} else if (e.data.cmd === 'setReaders') {
|
|
|
|
|
Quagga.setReaders(e.data.readers);
|
|
|
|
|
}
|
|
|
|
|
}, Quagga.getConfig().scanDelay || 0);
|
|
|
|
|
if (e.data.cmd === 'init') {
|
|
|
|
|
var config = e.data.config;
|
|
|
|
|
config.numOfWorkers = 0;
|
|
|
|
|
imageWrapper = new Quagga.ImageWrapper({
|
|
|
|
|
x: e.data.size.x,
|
|
|
|
|
y: e.data.size.y
|
|
|
|
|
}, new Uint8Array(e.data.imageData));
|
|
|
|
|
Quagga.init(config, ready, imageWrapper);
|
|
|
|
|
Quagga.onProcessed(onProcessed);
|
|
|
|
|
} else if (e.data.cmd === 'process') {
|
|
|
|
|
imageWrapper.data = new Uint8Array(e.data.imageData);
|
|
|
|
|
Quagga.start();
|
|
|
|
|
} else if (e.data.cmd === 'setReaders') {
|
|
|
|
|
Quagga.setReaders(e.data.readers);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
function onProcessed(result) {
|
|
|
|
@ -518,8 +529,5 @@ export default {
|
|
|
|
|
},
|
|
|
|
|
ImageWrapper: ImageWrapper,
|
|
|
|
|
ImageDebug: ImageDebug,
|
|
|
|
|
ResultCollector: ResultCollector,
|
|
|
|
|
getConfig: function getConfig() {
|
|
|
|
|
return _config;
|
|
|
|
|
}
|
|
|
|
|
ResultCollector: ResultCollector
|
|
|
|
|
};
|
|
|
|
|