ogv
Advanced tools
Comparing version 1.1.2-alpha.6 to 1.1.2-alpha.7
@@ -56,3 +56,3 @@ /******/ (function(modules) { // webpackBootstrap | ||
var OGVCompat = __webpack_require__(1), | ||
OGVVersion = ("1.1.2-alpha.6-20160606155429-79e601f"); | ||
OGVVersion = ("1.1.2-alpha.7-20160621154405-08f4ceb"); | ||
@@ -59,0 +59,0 @@ if (window) { |
@@ -55,3 +55,3 @@ /******/ (function(modules) { // webpackBootstrap | ||
var OGVVersion = ("1.1.2-alpha.6-20160606155429-79e601f"); | ||
var OGVVersion = ("1.1.2-alpha.7-20160621154405-08f4ceb"); | ||
@@ -58,0 +58,0 @@ if (window) { |
@@ -250,3 +250,3 @@ /******/ (function(modules) { // webpackBootstrap | ||
var OGVVersion = ("1.1.2-alpha.6-20160606155429-79e601f"); | ||
var OGVVersion = ("1.1.2-alpha.7-20160621154405-08f4ceb"); | ||
@@ -389,9 +389,69 @@ (function() { | ||
var proxyClass = info.proxy, | ||
workerScript = info.worker; | ||
workerScript = info.worker, | ||
codecUrl = urlForScript(scriptMap[className]), | ||
workerUrl = urlForScript(workerScript), | ||
worker; | ||
var construct = function(options) { | ||
var worker = new Worker(urlForScript(workerScript)); | ||
return new proxyClass(worker, className, options); | ||
}; | ||
callback(construct); | ||
if (workerUrl.match(/^https?:|\/\//i)) { | ||
// Can't load workers natively cross-domain, but if CORS | ||
// is set up we can fetch the worker stub and the desired | ||
// class and load them from a blob. | ||
var getCodec, | ||
getWorker, | ||
codecResponse, | ||
workerResponse, | ||
codecLoaded = false, | ||
workerLoaded = false, | ||
blob; | ||
function completionCheck() { | ||
if ((codecLoaded == true) && (workerLoaded == true)) { | ||
try { | ||
blob = new Blob([codecResponse + " " + workerResponse], {type: 'application/javascript'}); | ||
} catch (e) { // Backwards-compatibility | ||
window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder; | ||
blob = new BlobBuilder(); | ||
blob.append(codecResponse + " " + workerResponse); | ||
blob = blob.getBlob(); | ||
} | ||
// Create the web worker | ||
worker = new Worker(URL.createObjectURL(blob)); | ||
callback(construct); | ||
} | ||
} | ||
// Load the codec | ||
getCodec = new XMLHttpRequest(); | ||
getCodec.open("GET", codecUrl, true); | ||
getCodec.onreadystatechange = function() { | ||
if(getCodec.readyState == 4 && getCodec.status == 200) { | ||
codecResponse = getCodec.responseText; | ||
// Update the codec response loaded flag | ||
codecLoaded = true; | ||
completionCheck(); | ||
} | ||
}; | ||
getCodec.send(); | ||
// Load the worker | ||
getWorker = new XMLHttpRequest(); | ||
getWorker.open("GET", workerUrl, true); | ||
getWorker.onreadystatechange = function() { | ||
if(getWorker.readyState == 4 && getWorker.status == 200) { | ||
workerResponse = getWorker.responseText; | ||
// Update the worker response loaded flag | ||
workerLoaded = true; | ||
completionCheck(); | ||
} | ||
}; | ||
getWorker.send(); | ||
} else { | ||
// Local URL; load it directly for simplicity. | ||
worker = new Worker(workerUrl); | ||
callback(construct); | ||
} | ||
} | ||
@@ -398,0 +458,0 @@ }; |
@@ -249,3 +249,3 @@ /******/ (function(modules) { // webpackBootstrap | ||
var OGVVersion = ("1.1.2-alpha.6-20160606155429-79e601f"); | ||
var OGVVersion = ("1.1.2-alpha.7-20160621154405-08f4ceb"); | ||
@@ -388,9 +388,69 @@ (function() { | ||
var proxyClass = info.proxy, | ||
workerScript = info.worker; | ||
workerScript = info.worker, | ||
codecUrl = urlForScript(scriptMap[className]), | ||
workerUrl = urlForScript(workerScript), | ||
worker; | ||
var construct = function(options) { | ||
var worker = new Worker(urlForScript(workerScript)); | ||
return new proxyClass(worker, className, options); | ||
}; | ||
callback(construct); | ||
if (workerUrl.match(/^https?:|\/\//i)) { | ||
// Can't load workers natively cross-domain, but if CORS | ||
// is set up we can fetch the worker stub and the desired | ||
// class and load them from a blob. | ||
var getCodec, | ||
getWorker, | ||
codecResponse, | ||
workerResponse, | ||
codecLoaded = false, | ||
workerLoaded = false, | ||
blob; | ||
function completionCheck() { | ||
if ((codecLoaded == true) && (workerLoaded == true)) { | ||
try { | ||
blob = new Blob([codecResponse + " " + workerResponse], {type: 'application/javascript'}); | ||
} catch (e) { // Backwards-compatibility | ||
window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder; | ||
blob = new BlobBuilder(); | ||
blob.append(codecResponse + " " + workerResponse); | ||
blob = blob.getBlob(); | ||
} | ||
// Create the web worker | ||
worker = new Worker(URL.createObjectURL(blob)); | ||
callback(construct); | ||
} | ||
} | ||
// Load the codec | ||
getCodec = new XMLHttpRequest(); | ||
getCodec.open("GET", codecUrl, true); | ||
getCodec.onreadystatechange = function() { | ||
if(getCodec.readyState == 4 && getCodec.status == 200) { | ||
codecResponse = getCodec.responseText; | ||
// Update the codec response loaded flag | ||
codecLoaded = true; | ||
completionCheck(); | ||
} | ||
}; | ||
getCodec.send(); | ||
// Load the worker | ||
getWorker = new XMLHttpRequest(); | ||
getWorker.open("GET", workerUrl, true); | ||
getWorker.onreadystatechange = function() { | ||
if(getWorker.readyState == 4 && getWorker.status == 200) { | ||
workerResponse = getWorker.responseText; | ||
// Update the worker response loaded flag | ||
workerLoaded = true; | ||
completionCheck(); | ||
} | ||
}; | ||
getWorker.send(); | ||
} else { | ||
// Local URL; load it directly for simplicity. | ||
worker = new Worker(workerUrl); | ||
callback(construct); | ||
} | ||
} | ||
@@ -397,0 +457,0 @@ }; |
@@ -10,2 +10,10 @@ ogv.js | ||
* 1.1.2-alpha.7 - 2016-06-21 | ||
* use cleaner audio buffer thresholds | ||
* report time spent on worker proxy thread posting | ||
* cleaned up order of ops in threading | ||
* enforce a/v sync during slow frame decodes as well as at draw time | ||
* use native object-fit when available, except on iOS | ||
* allow loading workers cross-domain, if CORS is set up for base dir | ||
* allow loading Flash audio shim cross-domain for IE 11 | ||
* 1.1.2-alpha.6 - 2016-06-06 | ||
@@ -216,3 +224,3 @@ * smoothed out CPU spikes from demuxer on slow machines (iPad 3) | ||
Further code modules are loaded at runtime, which must be available with their defined names together in a directory. Currently the files should be hosted same-origin to the web page that includes them, or the worker threads and Flash audio shim may not load correctly. | ||
Further code modules are loaded at runtime, which must be available with their defined names together in a directory. If the files are not hosted same-origin to the web page that includes them, you will need to set up appropriate CORS headers to allow loading of the worker JS modules. | ||
@@ -361,1 +369,3 @@ Dynamically loaded assets: | ||
[AudioFeeder](https://github.com/brion/audio-feeder)'s dynamicaudio.as and other Flash-related bits are based on code under BSD license, (c) 2010 Ben Firshman. | ||
See [AUTHORS.md](https://github.com/brion/ogv.js/blob/master/AUTHORS.md) and/or the git history for a list of contributors. |
{ | ||
"name": "ogv", | ||
"version": "1.1.2-alpha.6", | ||
"version": "1.1.2-alpha.7", | ||
"description": "JavaScript media player using Ogg/Vorbis/Theora/Opus/WebM libs compiled with Emscripten", | ||
@@ -51,3 +51,3 @@ "main": "index.js", | ||
"devDependencies": { | ||
"audio-feeder": "^0.4.2", | ||
"audio-feeder": "^0.4.5", | ||
"eslint": "^1.7.3", | ||
@@ -54,0 +54,0 @@ "file-loader": "^0.8.5", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
29834
369
2192594
24