blob: ebe283e4b9a254ecb705d5c9e452ef87eb19ce21 [file] [log] [blame]
var frameCount = 0;
self.addEventListener('message', function(e) {
const frameStream = e.data.stream;
const frameReader = frameStream.getReader();
const framesToRead = 20;
var closeStream = function() {
frameReader.releaseLock();
frameStream.cancel();
}
frameReader.read().then(function processFrame({done, value}) {
if(done) {
self.postMessage({ success: false, message: "Stream is ended before we could read enough frames" });
closeStream();
return;
}
if (value.codedWitdh == 0) {
self.postMessage({ success: false, message: "Video frame is invalid" });
closeStream();
value.close();
return;
}
value.close();
if(++frameCount == framesToRead) {
self.postMessage({ success: true, message: "Ran as expected" });
closeStream();
return;
}
frameReader.read().then(processFrame);
})
}, false);