!function webpackUniversalModuleDefinition(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.ogvjs=t():e.ogvjs=t()}(window,function(){return function(e){var t={};function __webpack_require__(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,__webpack_require__),r.l=!0,r.exports}return __webpack_require__.m=e,__webpack_require__.c=t,__webpack_require__.d=function(e,t,i){__webpack_require__.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},__webpack_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.t=function(e,t){if(1&t&&(e=__webpack_require__(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(__webpack_require__.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)__webpack_require__.d(i,r,function(t){return e[t]}.bind(null,r));return i},__webpack_require__.n=function(e){var t=e&&e.__esModule?function getDefault(){return e.default}:function getModuleExports(){return e};return __webpack_require__.d(t,"a",t),t},__webpack_require__.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=20)}([function(e,t){e.exports=function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t){function _defineProperties(e,t){for(var i=0;i=e?i():function(){var n=null;t._onAbort=function(e){n(),r(e)};var o=function checkBuffer(){t.offset>=e&&!t.eof&&(n(),i())},a=function checkDone(){n(),i()},s=function checkError(){n(),r(new Error("error streaming"))};n=function oncomplete(){t.buffering=!1,t.off("buffer",o),t.off("done",a),t.off("error",s),t._onAbort=null},t.buffering=!0,t.on("buffer",o),t.on("done",a),t.on("error",s)}()})}},{key:"initXHR",value:function initXHR(){(function get(e,t,i){null===e&&(e=Function.prototype);var r=Object.getOwnPropertyDescriptor(e,t);if(void 0===r){var n=Object.getPrototypeOf(e);return null===n?void 0:get(n,t,i)}if("value"in r)return r.value;var o=r.get;return void 0!==o?o.call(i):void 0})(DownloadBackend.prototype.__proto__||Object.getPrototypeOf(DownloadBackend.prototype),"initXHR",this).call(this)}},{key:"onXHRStart",value:function onXHRStart(){var e=this;this.xhr.addEventListener("progress",function(){return e.onXHRProgress()}),this.xhr.addEventListener("error",function(){return e.onXHRError()}),this.xhr.addEventListener("load",function(){return e.onXHRLoad()}),this.emit("open")}},{key:"onXHRProgress",value:function onXHRProgress(){throw new Error("abstract")}},{key:"onXHRError",value:function onXHRError(){this.emit("error")}},{key:"onXHRLoad",value:function onXHRLoad(){this.eof=!0,this.emit("done")}}]),DownloadBackend}();e.exports=o},function(e,t){var i,r,n=e.exports={};function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}function runTimeout(e){if(i===setTimeout)return setTimeout(e,0);if((i===defaultSetTimout||!i)&&setTimeout)return i=setTimeout,setTimeout(e,0);try{return i(e,0)}catch(t){try{return i.call(null,e,0)}catch(t){return i.call(this,e,0)}}}!function(){try{i="function"==typeof setTimeout?setTimeout:defaultSetTimout}catch(e){i=defaultSetTimout}try{r="function"==typeof clearTimeout?clearTimeout:defaultClearTimeout}catch(e){r=defaultClearTimeout}}();var o,a=[],s=!1,u=-1;function cleanUpNextTick(){s&&o&&(s=!1,o.length?a=o.concat(a):u=-1,a.length&&drainQueue())}function drainQueue(){if(!s){var e=runTimeout(cleanUpNextTick);s=!0;for(var t=a.length;t;){for(o=a,a=[];++u1)for(var i=1;i * @copyright 2015-2019 Brion Vibber * @license MIT-style */ function OGVProxyClass(e){return function(){function _class(t,i,r){var o=this;for(var a in(0,n.default)(this,_class),r=r||{},this.worker=t,this.transferables=function(){var e=new ArrayBuffer(1024),i=new Uint8Array(e);try{return t.postMessage({action:"transferTest",bytes:i},[e]),!e.byteLength}catch(e){return!1}}(),e)e.hasOwnProperty(a)&&(this[a]=e[a]);this.processingQueue=0,Object.defineProperty(this,"processing",{get:function get(){return this.processingQueue>0}}),this.messageCount=0,this.pendingCallbacks={},this.worker.addEventListener("message",function(e){o.handleMessage(e)}),this.proxy("construct",[i,r],function(){})}return(0,o.default)(_class,[{key:"proxy",value:function proxy(e,t,i){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];if(!this.worker)throw'Tried to call "'+e+'" method on closed proxy object';var n="callback-"+ ++this.messageCount+"-"+e;i&&(this.pendingCallbacks[n]=i);var o={action:e,callbackId:n,args:t||[]};this.processingQueue++,this.transferables?this.worker.postMessage(o,r):this.worker.postMessage(o)}},{key:"terminate",value:function terminate(){this.worker&&(this.worker.terminate(),this.worker=null,this.processingQueue=0,this.pendingCallbacks={})}},{key:"handleMessage",value:function handleMessage(e){if(this.processingQueue--,"callback"===e.data.action){var t=e.data,i=t.callbackId,r=t.args,n=this.pendingCallbacks[i];if(t.props)for(var o in t.props)t.props.hasOwnProperty(o)&&(this[o]=t.props[o]);n&&(delete this.pendingCallbacks[i],n.apply(this,r))}}}]),_class}()};t.default=a},function(e,t,i){"use strict";var r=i(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=r(i(1)),o=r(i(15)),a={MEDIA_ERR_ABORTED:1,MEDIA_ERR_NETWORK:2,MEDIA_ERR_DECODE:3,MEDIA_ERR_SRC_NOT_SUPPORTED:4},s=function OGVMediaError(e,t){(0,n.default)(this,OGVMediaError),this.code=e,this.message=t};(0,o.default)(s,a),(0,o.default)(s.prototype,a);var u=s;t.default=u},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function extend(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])};t.default=r},function(e,t,i){"use strict";var r=i(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=r(i(1));function split(e,t,i){var r=e.split(t,i).map(function(e){return function trim(e){return e.replace(/^\s+/,"").replace(/\s+$/,"")}(e)});if("number"==typeof i)for(;r.length=0&&i.splice(r,1)}},{key:"emit",value:function emit(e,t){(this._e[e]||[]).slice().forEach(function(e){return e(t)})}}]),TinyEvents}();e.exports=n},function(e,t,i){"use strict";var r=function(){function defineProperties(e,t){for(var i=0;i=200&&e.xhr.status<300?(e.length=getXHRLength(e.xhr),e.headers=function getXHRHeaders(e){var t={};return e.getAllResponseHeaders().split(/\r?\n/).forEach(function(e){var i=e.split(/:\s*/,2);i.length>1&&(t[i[0].toLowerCase()]=i[1])}),t}(e.xhr),e.onXHRStart()):(r(),i(new Error("HTTP error "+e.xhr.status)))}},o=function checkError(){r(),i(new Error("network error"))},a=function checkBackendOpen(){r(),t()};r=function oncomplete(){e.xhr.removeEventListener("readystatechange",n),e.xhr.removeEventListener("error",o),e.off("open",a),e._onAbort=null},e.initXHR(),e.xhr.addEventListener("readystatechange",n),e.xhr.addEventListener("error",o),e.on("open",a),e.xhr.send()})}},{key:"bufferToOffset",value:function bufferToOffset(e){return Promise.reject(new Error("abstract"))}},{key:"abort",value:function abort(){if(this.xhr.abort(),this._onAbort){var e=this._onAbort;this._onAbort=null;var t=new Error("Aborted");t.name="AbortError",e(t)}}},{key:"initXHR",value:function initXHR(){var e=this.url;this.cachever&&(e+="?buggy_cachever="+this.cachever),this.xhr.open("GET",e);var t=null;(this.offset||this.length)&&(t="bytes="+this.offset+"-"),this.length&&(t+=this.offset+this.length-1),null!==t&&this.xhr.setRequestHeader("Range",t)}},{key:"onXHRStart",value:function onXHRStart(){throw new Error("abstract")}}]),Backend}();e.exports=o},function(e,t,i){"use strict";var r=i(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=r(i(1)),o=r(i(2)),a=function(){function OGVTimeRanges(e){(0,n.default)(this,OGVTimeRanges),this._ranges=e,this.length=e.length}return(0,o.default)(OGVTimeRanges,[{key:"start",value:function start(e){if(e<0||e>this.length||e!==(0|e))throw new RangeError("Invalid index");return this._ranges[e][0]}},{key:"end",value:function end(e){if(e<0||e>this.length||e!==(0|e))throw new RangeError("Invalid index");return this._ranges[e][1]}}]),OGVTimeRanges}();t.default=a},function(e,t,i){"use strict";var r=i(0);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"OGVCompat",{enumerable:!0,get:function get(){return a.default}}),Object.defineProperty(t,"OGVLoader",{enumerable:!0,get:function get(){return s.default}}),Object.defineProperty(t,"OGVMediaError",{enumerable:!0,get:function get(){return u.default}}),Object.defineProperty(t,"OGVMediaType",{enumerable:!0,get:function get(){return d.default}}),Object.defineProperty(t,"OGVPlayer",{enumerable:!0,get:function get(){return c.default}}),Object.defineProperty(t,"OGVTimeRanges",{enumerable:!0,get:function get(){return f.default}}),t.OGVVersion=void 0;var n=r(i(4)),o=r(i(21)),a=r(i(22)),s=r(i(8)),u=r(i(14)),d=r(i(16)),c=r(i(31)),f=r(i(19));o.default.polyfill();t.OGVVersion="1.6.1-20190618150123-e65cc4a","object"===("undefined"==typeof window?"undefined":(0,n.default)(window))&&(window.OGVCompat=a.default,window.OGVLoader=s.default,window.OGVMediaError=u.default,window.OGVMediaType=d.default,window.OGVTimeRanges=f.default,window.OGVPlayer=c.default,window.OGVVersion="1.6.1-20190618150123-e65cc4a")},function(e,t,i){(function(t,i){ /*! * @overview es6-promise - a tiny implementation of Promises/A+. * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald) * @license Licensed under MIT license * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE * @version v4.2.5+7f2b526d */var r;r=function(){"use strict";function isFunction(e){return"function"==typeof e}var e=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)},r=0,n=void 0,o=void 0,a=function asap(e,t){l[r]=e,l[r+1]=t,2===(r+=2)&&(o?o(flush):h())},s="undefined"!=typeof window?window:void 0,u=s||{},d=u.MutationObserver||u.WebKitMutationObserver,c="undefined"==typeof self&&void 0!==t&&"[object process]"==={}.toString.call(t),f="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function useSetTimeout(){var e=setTimeout;return function(){return e(flush,1)}}var l=new Array(1e3);function flush(){for(var e=0;e1&&void 0!==arguments[1]?arguments[1]:{};this._log("fireEvent "+e);var i,r="function"==typeof Event;for(var n in r?i=new CustomEvent(e):(i=document.createEvent("Event")).initEvent(e,!1,!1),t)t.hasOwnProperty(n)&&(i[n]=t[n]);var o=this.dispatchEvent(i);!r&&"resize"===e&&this.onresize&&o&&this.onresize.call(this,i)}},{key:"_fireEventAsync",value:function _fireEventAsync(t){var i=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this._log("fireEventAsync "+t),e(function(){i._fireEvent(t,r)})}},{key:"_initAudioFeeder",value:function _initAudioFeeder(){var e=this,t=this._options,i={base:t.base||m.default.base,bufferSize:8192};t.audioContext&&(i.audioContext=t.audioContext),t.audioDestination&&(i.output=t.audioDestination),t.audioBackendFactory&&(i.backendFactory=t.audioBackendFactory);var r=this._audioFeeder=new _.default(i);r.init(this._audioInfo.channels,this._audioInfo.rate),this.onaudiofeedercreated&&this.onaudiofeedercreated(this._audioFeeder),r.bufferThreshold=1,r.volume=this.volume,r.muted=this.muted,r.tempo=this.playbackRate,r.onbufferlow=function(){e._log("onbufferlow"),e._stream&&(e._stream.buffering||e._stream.seeking)||e._pendingAudio||e._pingProcessing()},r.onstarved=function(){e._dataEnded?e._log("onstarved: appear to have reached end of audio"):(e._log("onstarved: halting audio due to starvation"),e._stopPlayback(),e._prebufferingAudio=!0),e._isProcessing()||e._pingProcessing(0)}}},{key:"_startPlayback",value:function _startPlayback(e){if(this._audioFeeder){this._audioFeeder.start();var t=this._audioFeeder.getPlaybackState();this._initialPlaybackPosition=t.playbackPosition}else this._initialPlaybackPosition=this._playbackRate*o()/1e3;void 0!==e&&(this._initialPlaybackOffset=e),this._prebufferingAudio=!1,this._log("continuing at "+this._initialPlaybackPosition+", "+this._initialPlaybackOffset)}},{key:"_stopPlayback",value:function _stopPlayback(){this._initialPlaybackOffset=this._getPlaybackTime(),this._log("pausing at "+this._initialPlaybackOffset),this._audioFeeder&&this._audioFeeder.stop()}},{key:"_getPlaybackTime",value:function _getPlaybackTime(e){return this._prebufferingAudio||this._paused?this._initialPlaybackOffset:(this._audioFeeder?(e=e||this._audioFeeder.getPlaybackState()).playbackPosition:this._playbackRate*o()/1e3)-this._initialPlaybackPosition+this._initialPlaybackOffset}},{key:"_stopVideo",value:function _stopVideo(){this._log("STOPPING"),this._state=P.INITIAL,this._seekState=E.NOT_SEEKING,this._started=!1,this._ended=!1,this._frameEndTimestamp=0,this._audioEndTimestamp=0,this._lastFrameDecodeTime=0,this._prebufferingAudio=!1,this._actionQueue.splice(0,this._actionQueue.length),this._stream&&(this._stream.abort(),this._stream=null,this._streamEnded=!1),this._codec&&(this._codec.close(),this._codec=null,this._pendingFrame=0,this._pendingAudio=0,this._dataEnded=!1),this._videoInfo=null,this._audioInfo=null,this._audioFeeder&&(this._audioFeeder.close(),this._audioFeeder=null),this._nextProcessingTimer&&(clearTimeout(this._nextProcessingTimer),this._nextProcessingTimer=null),this._nextFrameTimer&&(clearTimeout(this._nextFrameTimer),this._nextFrameTimer=null),this._frameSink&&(this._frameSink.clear(),this._frameSink=null),this._decodedFrames&&(this._decodedFrames=[]),this._pendingFrames&&(this._pendingFrames=[]),this._initialSeekTime=0,this._initialPlaybackPosition=0,this._initialPlaybackOffset=0,this._duration=null}},{key:"_doFrameComplete",value:function _doFrameComplete(){var t=this,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._startedPlaybackInDocument&&!document.body.contains(this)&&e(function(){t.stop()});var r=o(),a=r-this._lastFrameTimestamp,s=this._actualPerFrameTime-this._targetPerFrameTime;this._totalJitter+=Math.abs(s),this._playTime+=a;var u={cpuTime:this._lastFrameDecodeTime,drawingTime:this._drawingTime-this._lastFrameDrawingTime,bufferTime:this._bufferTime-this._lastFrameBufferTime,proxyTime:this._proxyTime-this._lastFrameProxyTime,demuxerTime:0,videoTime:0,audioTime:0,clockTime:this._actualPerFrameTime,late:i.dropped,dropped:i.dropped};function n(e){return Math.round(10*e)/10}this._codec&&(u.demuxerTime=this._codec.demuxerCpuTime-this._lastFrameDemuxerCpuTime,u.videoTime+=this._currentVideoCpuTime-this._lastFrameVideoCpuTime,u.audioTime+=this._codec.audioCpuTime-this._lastFrameAudioCpuTime),u.cpuTime+=u.demuxerTime,this._lastFrameDecodeTime=0,this._lastFrameTimestamp=r,this._codec?(this._lastFrameVideoCpuTime=this._currentVideoCpuTime,this._lastFrameAudioCpuTime=this._codec.audioCpuTime,this._lastFrameDemuxerCpuTime=this._codec.demuxerCpuTime):(this._lastFrameVideoCpuTime=0,this._lastFrameAudioCpuTime=0,this._lastFrameDemuxerCpuTime=0),this._lastFrameDrawingTime=this._drawingTime,this._lastFrameBufferTime=this._bufferTime,this._lastFrameProxyTime=this._proxyTime,this._log("drew frame "+i.frameEndTimestamp+": clock time "+n(a)+" (jitter "+n(s)+") cpu: "+n(u.cpuTime)+" (mux: "+n(u.demuxerTime)+" buf: "+n(u.bufferTime)+" draw: "+n(u.drawingTime)+" proxy: "+n(u.proxyTime)+") vid: "+n(u.videoTime)+" aud: "+n(u.audioTime)),this._fireEventAsync("framecallback",u),(!this._lastTimeUpdate||r-this._lastTimeUpdate>=this._timeUpdateInterval)&&(this._lastTimeUpdate=r,this._fireEventAsync("timeupdate"))}},{key:"_seekStream",value:function _seekStream(e){var t=this;this._stream.seeking&&this._stream.abort(),this._stream.buffering&&this._stream.abort(),this._streamEnded=!1,this._dataEnded=!1,this._ended=!1,this._stream.seek(e).then(function(){t._readBytesAndWait()}).catch(function(e){t._onStreamError(e)})}},{key:"_onStreamError",value:function _onStreamError(e){"AbortError"===e.name?this._log("i/o promise canceled; ignoring"):(this._log("i/o error: "+e),this._mediaError=new y.default(y.default.MEDIA_ERR_NETWORK,String(e)),this._state=P.ERROR,this._stopPlayback())}},{key:"_seek",value:function _seek(e,t){var i=this;if(this._log("requested seek to "+e+", mode "+t),this.readyState==this.HAVE_NOTHING)return this._log("not yet loaded; saving seek position for later"),void(this._initialSeekTime=e);if(this._stream&&!this._stream.seekable)throw new Error("Cannot seek a non-seekable stream");if(this._codec&&!this._codec.seekable)throw new Error("Cannot seek in a non-seekable file");var r=function prepForSeek(r){i._stream&&i._stream.buffering&&i._stream.abort(),i._stream&&i._stream.seeking&&i._stream.abort(),i._actionQueue.splice(0,i._actionQueue.length),i._stopPlayback(),i._prebufferingAudio=!1,i._audioFeeder&&i._audioFeeder.flush(),i._state=P.SEEKING,i._seekTargetTime=e,i._seekMode=t,i._codec?i._codec.flush(r):r()};r(function(){i._isProcessing()||i._pingProcessing(0)}),this._actionQueue.push(function(){r(function(){i._doSeek(e)})})}},{key:"_doSeek",value:function _doSeek(e){var t=this;this._streamEnded=!1,this._dataEnded=!1,this._ended=!1,this._state=P.SEEKING,this._seekTargetTime=e,this._lastSeekPosition=-1,this._decodedFrames=[],this._pendingFrames=[],this._pendingFrame=0,this._pendingAudio=0,this._didSeek=!1,this._codec.seekToKeypoint(e,function(i){if(i)return t._seekState=E.LINEAR_TO_TARGET,t._fireEventAsync("seeking"),t._didSeek?void 0:void t._pingProcessing();t._codec.getKeypointOffset(e,function(e){e>0?(t._seekState=E.LINEAR_TO_TARGET,t._seekStream(e)):(t._seekState=E.BISECT_TO_TARGET,t._startBisection(t._seekTargetTime)),t._fireEventAsync("seeking")})})}},{key:"_startBisection",value:function _startBisection(e){var t=this,i=Math.max(0,this._stream.length-65536);this._bisectTargetTime=e,this._seekBisector=new g.default({start:0,end:i,process:function process(e,i,r){return r!=t._lastSeekPosition&&(t._lastSeekPosition=r,t._codec.flush(function(){t._seekStream(r)}),!0)}}),this._seekBisector.start()}},{key:"_continueSeekedPlayback",value:function _continueSeekedPlayback(){var e=this;this._seekState=E.NOT_SEEKING,this._state=P.READY,this._frameEndTimestamp=this._codec.frameTimestamp,this._audioEndTimestamp=this._codec.audioTimestamp,this._codec.hasAudio?this._seekTargetTime=this._codec.audioTimestamp:this._seekTargetTime=this._codec.frameTimestamp,this._initialPlaybackOffset=this._seekTargetTime;var t=function finishedSeeking(){e._lastTimeUpdate=e._seekTargetTime,e._fireEventAsync("timeupdate"),e._fireEventAsync("seeked"),e._isProcessing()||e._pingProcessing()};if(this._codec.hasVideo&&this._decodedFrames.length){this._thumbnail&&(this.removeChild(this._thumbnail),this._thumbnail=null);var i=this._decodedFrames.shift();this._frameSink.drawFrame(i.yCbCrBuffer),t()}else{if(this._codec.hasVideo&&this._codec.frameReady)return this._codec.decodeFrame(function(i){i&&(e._thumbnail&&(e.removeChild(e._thumbnail),e._thumbnail=null),e._frameSink.drawFrame(e._codec.frameBuffer)),t()}),void this._codec.sync();t()}}},{key:"_doProcessLinearSeeking",value:function _doProcessLinearSeeking(){var e,t=this;if(e=this._codec.hasVideo?this._targetPerFrameTime/1e3:1/256,this._codec.hasVideo){if(this._pendingFrame)return;if(!this._codec.frameReady)return void this._codec.process(function(e){e?t._pingProcessing():t._streamEnded?(t._log("stream ended during linear seeking on video"),t._dataEnded=!0,t._continueSeekedPlayback()):t._readBytesAndWait()});if(this._seekMode===A.FAST&&this._codec.keyframeTimestamp==this._codec.frameTimestamp)return void this._continueSeekedPlayback();if(this._codec.frameTimestamp<=this._seekTargetTime){var i=this._codec.frameTimestamp;return this._pendingFrame++,this._pendingFrames.push({frameEndTimestamp:i}),this._decodedFrames.splice(0,this._decodedFrames.length),this._codec.decodeFrame(function(e){t._pendingFrame--,t._pendingFrames.shift(),t._decodedFrames.push({yCbCrBuffer:t._codec.frameBuffer,videoCpuTime:t._codec.videoCpuTime,frameEndTimestamp:i}),t._pingProcessing()}),void this._codec.sync()}if(!this._codec.hasAudio)return void this._continueSeekedPlayback()}if(this._codec.hasAudio){if(this._pendingAudio)return;return this._codec.audioReady?this._codec.audioTimestamp+ethis._bisectTargetTime?this._seekBisector.left()||(this._log("close enough (left)"),this._seekTargetTime=t,this._continueSeekedPlayback()):t+e/20?this._targetPerFrameTime=1e3/this._videoInfo.fps:this._targetPerFrameTime=16.667,this._canvas.width=this._videoInfo.displayWidth,this._canvas.height=this._videoInfo.displayHeight,OGVPlayer.styleManager.appendRule("."+this._instanceId,{width:this._videoInfo.displayWidth+"px",height:this._videoInfo.displayHeight+"px"}),OGVPlayer.updatePositionOnResize();var e={};void 0!==this._options.webGL&&(e.webGL=this._options.webGL),this._options.forceWebGL&&(e.webGL="required"),this._frameSink=h.default.attach(this._canvas,e)}},{key:"_doProcessing",value:function _doProcessing(){if(this._didSeek&&(this._didSeek=!1),this._nextProcessingTimer=null,this._isProcessing(),this._depth>0)throw new Error("REENTRANCY FAIL: doProcessing recursing unexpectedly");var e=0;do{if(this._needProcessing=!1,this._depth++,this._doProcessingLoop(),this._depth--,this._needProcessing&&this._isProcessing())throw new Error("REENTRANCY FAIL: waiting on input or codec but asked to keep processing");++e>500&&(this._log("stuck in processing loop; breaking with timer"),this._needProcessing=0,this._pingProcessing(0))}while(this._needProcessing)}},{key:"_doProcessingLoop",value:function _doProcessingLoop(){if(this._actionQueue.length)this._actionQueue.shift()();else if(this._state==P.INITIAL)this._doProcessInitial();else if(this._state==P.SEEKING_END)this._doProcessSeekingEnd();else if(this._state==P.LOADED)this._doProcessLoaded();else if(this._state==P.PRELOAD)this._doProcessPreload();else if(this._state==P.READY)this._doProcessReady();else if(this._state==P.SEEKING)this._doProcessSeeking();else if(this._state==P.PLAYING)this._doProcessPlay();else{if(this._state!=P.ERROR)throw new Error("Unexpected OGVPlayer state "+this._state);this._doProcessError()}}},{key:"_doProcessInitial",value:function _doProcessInitial(){var e=this;if(this._codec.loadedMetadata){if(!this._codec.hasVideo&&!this._codec.hasAudio)throw new Error("No audio or video found, something is wrong");this._codec.hasAudio&&(this._audioInfo=this._codec.audioFormat),this._codec.hasVideo&&(this._videoInfo=this._codec.videoFormat,this._setupVideo()),isNaN(this._codec.duration)||(this._duration=this._codec.duration),null===this._duration&&this._stream.seekable?(this._state=P.SEEKING_END,this._lastSeenTimestamp=-1,this._codec.flush(function(){e._seekStream(Math.max(0,e._stream.length-131072))})):(this._state=P.LOADED,this._pingProcessing())}else this._codec.process(function(t){if(t)e._pingProcessing();else{if(e._streamEnded)throw new Error("end of file before headers found");e._log("reading more cause we are out of data"),e._readBytesAndWait()}})}},{key:"_doProcessSeekingEnd",value:function _doProcessSeekingEnd(){var e=this;this._codec.frameReady?(this._log("saw frame with "+this._codec.frameTimestamp),this._lastSeenTimestamp=Math.max(this._lastSeenTimestamp,this._codec.frameTimestamp),this._codec.discardFrame(function(){e._pingProcessing()})):this._codec.audioReady?(this._log("saw audio with "+this._codec.audioTimestamp),this._lastSeenTimestamp=Math.max(this._lastSeenTimestamp,this._codec.audioTimestamp),this._codec.discardAudio(function(){e._pingProcessing()})):this._codec.process(function(t){t?e._pingProcessing():e._stream.eof?(e._log("seek-duration: we are at the end: "+e._lastSeenTimestamp),e._lastSeenTimestamp>0&&(e._duration=e._lastSeenTimestamp),e._state=P.LOADED,e._codec.flush(function(){e._streamEnded=!1,e._dataEnded=!1,e._seekStream(0)})):e._readBytesAndWait()})}},{key:"_doProcessLoaded",value:function _doProcessLoaded(){this._state=P.PRELOAD,this._fireEventAsync("loadedmetadata"),this._fireEventAsync("durationchange"),this._codec.hasVideo&&this._fireEventAsync("resize"),this._pingProcessing(0)}},{key:"_doProcessPreload",value:function _doProcessPreload(){var e=this;!this._codec.frameReady&&this._codec.hasVideo||!this._codec.audioReady&&this._codec.hasAudio?this._codec.process(function(t){t?e._pingProcessing():e._streamEnded?e._ended=!0:e._readBytesAndWait()}):(this._state=P.READY,this._fireEventAsync("loadeddata"),this._pingProcessing())}},{key:"_doProcessReady",value:function _doProcessReady(){var e=this;if(this._log("initial seek to "+this._initialSeekTime),this._initialSeekTime>0){var t=this._initialSeekTime;this._initialSeekTime=0,this._log("initial seek to "+t),this._doSeek(t)}else if(this._paused)this._log("paused while in ready");else{var i=function finishStartPlaying(){e._log("finishStartPlaying"),e._state=P.PLAYING,e._lastFrameTimestamp=o(),e._codec.hasAudio&&e._audioFeeder?e._prebufferingAudio=!0:e._startPlayback(),e._pingProcessing(0),e._fireEventAsync("play"),e._fireEventAsync("playing")};!this._codec.hasAudio||this._audioFeeder||this._muted?i():(this._initAudioFeeder(),this._audioFeeder.waitUntilReady(i))}}},{key:"_doProcessSeeking",value:function _doProcessSeeking(){if(this._seekState==E.NOT_SEEKING)throw new Error("seeking in invalid state (not seeking?)");if(this._seekState==E.BISECT_TO_TARGET)this._doProcessBisectionSeek();else if(this._seekState==E.BISECT_TO_KEYPOINT)this._doProcessBisectionSeek();else{if(this._seekState!=E.LINEAR_TO_TARGET)throw new Error("Invalid seek state "+this._seekState);this._doProcessLinearSeeking()}}},{key:"_doProcessPlay",value:function _doProcessPlay(){var e=this,t=this._codec;if(this._paused)this._log("paused during playback; stopping loop");else if((!t.hasAudio||t.audioReady||this._pendingAudio||this._dataEnded)&&(!t.hasVideo||t.frameReady||this._pendingFrame||this._decodedFrames.length||this._dataEnded)){var i,r,n,o=null,a=0,s=!1,u=0;if(t.hasAudio&&this._audioFeeder?(o=this._audioFeeder.getPlaybackState(),a=this._getPlaybackTime(o),s=this._dataEnded&&0==this._audioFeeder.durationBuffered,this._prebufferingAudio&&(this._audioFeeder.durationBuffered>=2*this._audioFeeder.bufferThreshold&&(!t.hasVideo||this._decodedFrames.length>=this._framePipelineDepth)||this._dataEnded)&&(this._log("prebuffering audio done; buffered to "+this._audioFeeder.durationBuffered),this._startPlayback(a),this._prebufferingAudio=!1),o.dropped!=this._droppedAudio&&this._log("dropped "+(o.dropped-this._droppedAudio)),o.delayed!=this._delayedAudio&&this._log("delayed "+(o.delayed-this._delayedAudio)),this._droppedAudio=o.dropped,this._delayedAudio=o.delayed,(i=this._audioFeeder.durationBuffered<=2*this._audioFeeder.bufferThreshold)&&(this._codec.audioReady?this._pendingAudio>=this._audioPipelineDepth&&(this._log("audio decode disabled: "+this._pendingAudio+" packets in flight"),i=!1):i=!1)):(a=this._getPlaybackTime(),i=this._codec.audioReady&&this._audioEndTimestamp0,n=this._pendingFrame+this._decodedFrames.length=d){for(var c=-1,f=0;f=0)for(;c-- >=0;){this._lateFrames++;var l=this._decodedFrames.shift();this._log("skipping already-decoded late frame at "+l.frameEndTimestamp),u=1e3*(l.frameEndTimestamp-a),this._frameEndTimestamp=l.frameEndTimestamp,this._actualPerFrameTime=this._targetPerFrameTime-u,this._framesProcessed++,l.dropped=!0,this._doFrameComplete(l)}var h=this._codec.nextKeyframeTimestamp,p=h-this._targetPerFrameTime/1e3*(this._framePipelineDepth+this._pendingFrame);if(h>=0&&h!=this._codec.frameTimestamp&&a>=p){this._log("skipping late frame at "+this._decodedFrames[0].frameEndTimestamp+" vs "+a+", expect to see keyframe at "+h);for(var _=0;_0&&(this._targetPerFrameTime=1e3*(this._codec.frameTimestamp-this._frameEndTimestamp)),this._totalFrameTime+=this._targetPerFrameTime,this._totalFrameCount++;var b=this._frameEndTimestamp=this._codec.frameTimestamp;this._pendingFrame++,this._pendingFrames.push({frameEndTimestamp:b});var T=this._pendingFrames,k=!1,w=this._time(function(){e._codec.decodeFrame(function(t){T===e._pendingFrames?(e._log("play loop callback: decoded frame"),e._pendingFrame--,e._pendingFrames.shift(),t?e._decodedFrames.push({yCbCrBuffer:e._codec.frameBuffer,videoCpuTime:e._codec.videoCpuTime,frameEndTimestamp:b}):e._log("Bad video packet or something"),e._codec.process(function(){e._isProcessing()||e._pingProcessing(k?void 0:0)})):e._log("play loop callback after flush, discarding")})});this._pendingFrame&&(k=!0,this._proxyTime+=w,this._pingProcessing(),this._dataEnded&&this._codec.sync())}else if(i){this._log("play loop: ready for audio; depth: "+this._pendingAudio),this._pendingAudio++;var P=this._codec.audioTimestamp,E=this._time(function(){e._codec.decodeAudio(function(t){if(e._pendingAudio--,e._log("play loop callback: decoded audio"),e._audioEndTimestamp=P,t){var i=e._codec.audioBuffer;if(i&&(e._bufferTime+=e._time(function(){e._audioFeeder&&e._audioFeeder.bufferData(i)}),!e._codec.hasVideo)){e._framesProcessed++;var r={frameEndTimestamp:e._audioEndTimestamp};e._doFrameComplete(r)}}e._isProcessing()||e._pingProcessing()})});this._pendingAudio&&(this._proxyTime+=E,this._codec.audioReady?this._pingProcessing():this._doProcessPlayDemux())}else if(r){this._log("play loop: ready to draw frame"),this._nextFrameTimer&&(clearTimeout(this._nextFrameTimer),this._nextFrameTimer=null),this._thumbnail&&(this.removeChild(this._thumbnail),this._thumbnail=null);var A=this._decodedFrames.shift();this._currentVideoCpuTime=A.videoCpuTime,this._drawingTime+=this._time(function(){e._frameSink.drawFrame(A.yCbCrBuffer)}),this._framesProcessed++,this._doFrameComplete(A),this._pingProcessing()}else if(!this._decodedFrames.length||this._nextFrameTimer||this._prebufferingAudio)if(this._dataEnded&&!(this._pendingAudio||this._pendingFrame||this._decodedFrames.length)){this._log("play loop: playback reached end of data "+[this._pendingAudio,this._pendingFrame,this._decodedFrames.length]);var x=0;this._codec.hasAudio&&this._audioFeeder&&(x=1e3*this._audioFeeder.durationBuffered),x>0?(this._log("play loop: ending pending "+x+" ms"),this._pingProcessing(Math.max(0,x))):(this._log("play loop: ENDING NOW: playback time "+this._getPlaybackTime()+"; frameEndTimestamp: "+this._frameEndTimestamp),this._stopPlayback(),this._prebufferingAudio=!1,this._initialPlaybackOffset=Math.max(this._audioEndTimestamp,this._frameEndTimestamp),this._ended=!0,this._paused=!0,this._fireEventAsync("pause"),this._fireEventAsync("ended"))}else this._prebufferingAudio&&(t.hasVideo&&!t.frameReady||t.hasAudio&&!t.audioReady)?(this._log("play loop: prebuffering demuxing"),this._doProcessPlayDemux()):this._log("play loop: waiting on async/timers");else{var O=u;this._log("play loop: setting a timer for drawing "+O),this._nextFrameTimer=setTimeout(function(){e._nextFrameTimer=null,e._pingProcessing()},O)}}else this._log("play loop: demuxing"),this._doProcessPlayDemux()}},{key:"_doProcessPlayDemux",value:function _doProcessPlayDemux(){var e=this,t=this._codec.frameReady,i=this._codec.audioReady;this._codec.process(function(r){e._codec.frameReady&&!t||e._codec.audioReady&&!i?(e._log("demuxer has packets"),e._pingProcessing()):r?(e._log("demuxer processing to find more packets"),e._pingProcessing()):(e._log("demuxer ran out of data"),e._streamEnded?(e._log("demuxer reached end of data stream"),e._dataEnded=!0,e._pingProcessing()):(e._log("demuxer loading more data"),e._readBytesAndWait()))})}},{key:"_doProcessError",value:function _doProcessError(){}},{key:"_isProcessing",value:function _isProcessing(){return this._stream&&(this._stream.buffering||this._stream.seeking)||this._codec&&this._codec.processing}},{key:"_readBytesAndWait",value:function _readBytesAndWait(){var e=this;if(this._stream.buffering||this._stream.seeking)this._log("readBytesAndWait during i/o");else{this._stream.read(32768).then(function(t){e._log("got input "+[t.byteLength]),t.byteLength&&e._actionQueue.push(function(){e._codec.receiveInput(t,function(){e._pingProcessing()})}),e._stream.eof&&(e._log("stream is at end!"),e._streamEnded=!0),e._isProcessing()||e._pingProcessing()}).catch(function(t){e._onStreamError(t)})}}},{key:"_pingProcessing",value:function _pingProcessing(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-1;if(this._stream&&this._stream.waiting)this._log("waiting on input");else{this._nextProcessingTimer&&(this._log("canceling old processing timer"),clearTimeout(this._nextProcessingTimer),this._nextProcessingTimer=null);t>-1/256?this._nextProcessingTimer=setTimeout(function(){e._pingProcessing()},t):this._depth?this._needProcessing=!0:this._doProcessing()}}},{key:"_startProcessingVideo",value:function _startProcessingVideo(e){var t=this;if(!this._started&&!this._codec){this._framesProcessed=0,this._bufferTime=0,this._drawingTime=0,this._proxyTime=0,this._started=!0,this._ended=!1;var i={base:this._options.base,worker:this._enableWorker,threading:this._enableThreading,wasm:this._enableWASM};this._options.memoryLimit&&!this._enableWASM&&(i.memoryLimit=this._options.memoryLimit),this._detectedType&&(i.type=this._detectedType),this._codec=new k.default(i),this._lastVideoCpuTime=0,this._lastAudioCpuTime=0,this._lastDemuxerCpuTime=0,this._lastBufferTime=0,this._lastDrawingTime=0,this._lastProxyTime=0,this._lastFrameVideoCpuTime=0,this._lastFrameAudioCpuTime=0,this._lastFrameDemuxerCpuTime=0,this._lastFrameBufferTime=0,this._lastFrameProxyTime=0,this._lastFrameDrawingTime=0,this._currentVideoCpuTime=0,this._codec.onseek=function(e){t._didSeek=!0,t._stream&&t._seekStream(e)},this._codec.init(function(){t._codec.receiveInput(e,function(){t._readBytesAndWait()})})}}},{key:"_loadCodec",value:function _loadCodec(e){var t=this;this._stream.read(1024).then(function(i){var r=new Uint8Array(i);r.length>4&&r[0]=="O".charCodeAt(0)&&r[1]=="g".charCodeAt(0)&&r[2]=="g".charCodeAt(0)&&r[3]=="S".charCodeAt(0)?t._detectedType="video/ogg":r.length>4&&26==r[0]&&69==r[1]&&223==r[2]&&163==r[3]?t._detectedType="video/webm":t._detectedType="video/ogg",e(i)})}},{key:"_prepForLoad",value:function _prepForLoad(e){var t=this;this._stopVideo();this._currentSrc="",this._loading=!0,this._actionQueue.push(function(){e&&"none"===t.preload?t._loading=!1:function doLoad(){t._options.stream?t._stream=t._options.stream:t._stream=new p.default({url:t.src,cacheSize:16777216,progressive:!1}),t._stream.load().then(function(){t._loading=!1,t._currentSrc=t.src,t._byteLength=t._stream.seekable?t._stream.length:0;var e=t._stream.headers["x-content-duration"];"string"==typeof e&&(t._duration=parseFloat(e)),t._loadCodec(function(e){t._startProcessingVideo(e)})}).catch(function(e){t._onStreamError(e)})}()}),this._pingProcessing(0)}},{key:"load",value:function load(){this._prepForLoad()}},{key:"canPlayType",value:function canPlayType(e){var t=new b.default(e);function checkTypes(e){if(t.codecs){var i=0,r=0;return t.codecs.forEach(function(t){e.indexOf(t)>=0?i++:r++}),0===i?"":r>0?"":"probably"}return"maybe"}return"ogg"!==t.minor||"audio"!==t.major&&"video"!==t.major&&"application"!==t.major?"webm"!==t.minor||"audio"!==t.major&&"video"!==t.major?"":checkTypes(["vorbis","opus","vp8","vp9"]):checkTypes(["vorbis","opus","theora"])}},{key:"play",value:function play(){this._muted||this._options.audioContext||OGVPlayer.initSharedAudioContext(),this._paused&&(this._startedPlaybackInDocument=document.body.contains(this),this._paused=!1,this._state==P.SEEKING||(this._started&&this._codec&&this._codec.loadedMetadata?(this._ended&&this._stream&&this._byteLength?(this._log(".play() starting over after end"),this._seek(0)):this._log(".play() while already started"),this._state=P.READY,this._isProcessing()||this._pingProcessing()):this._loading?this._log(".play() while loading"):(this._log(".play() before started"),this._stream||this.load())))}},{key:"getPlaybackStats",value:function getPlaybackStats(){return{targetPerFrameTime:this._targetPerFrameTime,framesProcessed:this._framesProcessed,videoBytes:this._codec?this._codec.videoBytes:0,audioBytes:this._codec?this._codec.audioBytes:0,playTime:this._playTime,demuxingTime:this._codec?this._codec.demuxerCpuTime-this._lastDemuxerCpuTime:0,videoDecodingTime:this._codec?this._codec.videoCpuTime-this._lastVideoCpuTime:0,audioDecodingTime:this._codec?this._codec.audioCpuTime-this._lastAudioCpuTime:0,bufferTime:this._bufferTime-this._lastBufferTime,drawingTime:this._drawingTime-this._lastDrawingTime,proxyTime:this._proxyTime-this._lastProxyTime,droppedAudio:this._droppedAudio,delayedAudio:this._delayedAudio,jitter:this._totalJitter/this._framesProcessed,lateFrames:this._lateFrames}}},{key:"resetPlaybackStats",value:function resetPlaybackStats(){this._framesProcessed=0,this._playTime=0,this._codec&&(this._lastDemuxerCpuTime=this._codec.demuxerCpuTime,this._lastVideoCpuTime=this._codec.videoCpuTime,this._lastAudioCpuTime=this._codec.audioCpuTime,this._codec.videoBytes=0,this._codec.audioBytes=0),this._lastBufferTime=this._bufferTime,this._lastDrawingTime=this._drawingTime,this._lastProxyTime=this._proxyTime,this._totalJitter=0,this._totalFrameTime=0,this._totalFrameCount=0}},{key:"getVideoFrameSink",value:function getVideoFrameSink(){return this._frameSink}},{key:"getCanvas",value:function getCanvas(){return this._canvas}},{key:"pause",value:function pause(){this._paused||(this._nextProcessingTimer&&(clearTimeout(this._nextProcessingTimer),this._nextProcessingTimer=null),this._stopPlayback(),this._prebufferingAudio=!1,this._paused=!0,this._fireEvent("pause"))}},{key:"stop",value:function stop(){this._stopVideo(),this._paused=!0}},{key:"fastSeek",value:function fastSeek(e){this._seek(+e,A.FAST)}}],[{key:"initSharedAudioContext",value:function initSharedAudioContext(){_.default.initSharedAudioContext()}}]),OGVPlayer}(OGVJSElement);if((0,v.default)(x,w),x.instanceCount=0,x.styleManager=new function StyleManager(){var e=document.createElement("style");e.type="text/css",e.textContent="ogvjs { display: inline-block; position: relative; -webkit-user-select: none; -webkit-tap-highlight-color: rgba(0,0,0,0); ",document.head.appendChild(e);var t=e.sheet;this.appendRule=function(e,i){var r=[];for(var n in i)i.hasOwnProperty(n)&&r.push(n+":"+i[n]);var o=e+"{"+r.join(";")+"}";t.insertRule(o,t.cssRules.length-1)}},x.supportsObjectFit="string"==typeof document.createElement("canvas").style.objectFit,x.supportsObjectFit&&navigator.userAgent.match(/iPhone|iPad|iPod Touch/)&&(x.supportsObjectFit=!1),x.supportsObjectFit&&navigator.userAgent.match(/Edge/)&&(x.supportsObjectFit=!1),x.supportsObjectFit)x.updatePositionOnResize=function(){};else{x.updatePositionOnResize=function(){function fixup(e,t,i){var r=e.offsetParent||e.parentNode,n=t/i;if(n>r.offsetWidth/r.offsetHeight){var o=r.offsetWidth/n,a=(r.offsetHeight-o)/2;e.style.width="100%",e.style.height=o+"px",e.style.marginLeft=0,e.style.marginRight=0,e.style.marginTop=a+"px",e.style.marginBottom=a+"px"}else{var s=r.offsetHeight*n,u=(r.offsetWidth-s)/2;e.style.width=s+"px",e.style.height="100%",e.style.marginLeft=u+"px",e.style.marginRight=u+"px",e.style.marginTop=0,e.style.marginBottom=0}}function queryOver(e,t){var i=document.querySelectorAll(e);Array.prototype.slice.call(i).forEach(t)}queryOver("ogvjs > canvas",function(e){fixup(e,e.width,e.height)}),queryOver("ogvjs > img",function(e){fixup(e,e.naturalWidth,e.naturalHeight)})};var O=function fullResizeVideo(){e(x.updatePositionOnResize)};window.addEventListener("resize",x.updatePositionOnResize),window.addEventListener("orientationchange",x.updatePositionOnResize),document.addEventListener("fullscreenchange",O),document.addEventListener("mozfullscreenchange",O),document.addEventListener("webkitfullscreenchange",O),document.addEventListener("MSFullscreenChange",O)}var S=x;t.default=S}).call(this,i(32).setImmediate)},function(e,t,i){(function(e){var r=void 0!==e&&e||"undefined"!=typeof self&&self||window,n=Function.prototype.apply;function Timeout(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new Timeout(n.call(setTimeout,r,arguments),clearTimeout)},t.setInterval=function(){return new Timeout(n.call(setInterval,r,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},Timeout.prototype.unref=Timeout.prototype.ref=function(){},Timeout.prototype.close=function(){this._clearFn.call(r,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout(function onTimeout(){e._onTimeout&&e._onTimeout()},t))},i(33),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,i(7))},function(e,t,i){(function(e,t){!function(e,i){"use strict";if(!e.setImmediate){var r,n=1,o={},a=!1,s=e.document,u=Object.getPrototypeOf&&Object.getPrototypeOf(e);u=u&&u.setTimeout?u:e,"[object process]"==={}.toString.call(e.process)?function installNextTickImplementation(){r=function(e){t.nextTick(function(){runIfPresent(e)})}}():!function canUsePostMessage(){if(e.postMessage&&!e.importScripts){var t=!0,i=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=i,t}}()?e.MessageChannel?function installMessageChannelImplementation(){var e=new MessageChannel;e.port1.onmessage=function(e){runIfPresent(e.data)},r=function(t){e.port2.postMessage(t)}}():s&&"onreadystatechange"in s.createElement("script")?function installReadyStateChangeImplementation(){var e=s.documentElement;r=function(t){var i=s.createElement("script");i.onreadystatechange=function(){runIfPresent(t),i.onreadystatechange=null,e.removeChild(i),i=null},e.appendChild(i)}}():function installSetTimeoutImplementation(){r=function(e){setTimeout(runIfPresent,0,e)}}():function installPostMessageImplementation(){var t="setImmediate$"+Math.random()+"$",i=function(i){i.source===e&&"string"==typeof i.data&&0===i.data.indexOf(t)&&runIfPresent(+i.data.slice(t.length))};e.addEventListener?e.addEventListener("message",i,!1):e.attachEvent("onmessage",i),r=function(i){e.postMessage(t+i,"*")}}(),u.setImmediate=function setImmediate(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),i=0;iRGB conversion * * @author Brion Vibber * @copyright 2014-2019 * @license MIT-style * * @param {YUVFrame} buffer - input frame buffer * @param {Uint8ClampedArray} output - array to draw RGBA into * Assumes that the output array already has alpha channel set to opaque. */e.exports={convertYCbCr:function convertYCbCr(e,i){var r=0|e.format.width,n=0|e.format.height,o=0|t(e.format.width/e.format.chromaWidth),a=0|t(e.format.height/e.format.chromaHeight),s=e.y.bytes,u=e.u.bytes,d=e.v.bytes,c=0|e.y.stride,f=0|e.u.stride,l=0|e.v.stride,h=r<<2,p=0,_=0,m=0,g=0,v=0,y=0,b=0,T=0,k=0,w=0,P=0,E=0,A=0,x=0,O=0,S=0,R=0,F=0;if(1==o&&1==a)for(b=0,T=h,F=0,S=0;S>8,i[b+1]=P-A>>8,i[b+2]=P+x>>8,b+=4,P=298*s[_++]|0,i[b]=P+E>>8,i[b+1]=P-A>>8,i[b+2]=P+x>>8,b+=4,P=298*s[m++]|0,i[T]=P+E>>8,i[T+1]=P-A>>8,i[T+2]=P+x>>8,T+=4,P=298*s[m++]|0,i[T]=P+E>>8,i[T+1]=P-A>>8,i[T+2]=P+x>>8,T+=4;b+=h,T+=h,F++}else for(y=0,S=0;S>a)*f|0,v=F*l|0,O=0;O>o)],E=(409*(w=0|d[v+R])|0)-57088|0,A=(100*k|0)+(208*w|0)-34816|0,x=(516*k|0)-70912|0,P=298*s[p++]|0,i[y]=P+E>>8,i[y+1]=P-A>>8,i[y+2]=P+x>>8,y+=4}}}()},function(e,t){!function(){"use strict"; /** * Convert a ratio into a bit-shift count; for instance a ratio of 2 * becomes a bit-shift of 1, while a ratio of 1 is a bit-shift of 0. * * @author Brion Vibber * @copyright 2016 * @license MIT-style * * @param {number} ratio - the integer ratio to convert. * @returns {number} - number of bits to shift to multiply/divide by the ratio. * @throws exception if given a non-power-of-two */e.exports=function depower(e){for(var t=0,i=e>>1;0!=i;)i>>=1,t++;if(e!==1<=0&&s>=e.length)return void t(null);var u=e._clampToLength(r.writeOffset+r.bytesWritable(n))-r.writeOffset;0===u?t(null):(d=e._backend=new o({url:e.url,offset:e._cache.writeOffset,length:u,cachever:e._cachever,progressive:e.progressive}),c=null,f=function checkOpen(){d!==e._backend?(c(),i(new Error("invalid state"))):(d.on("buffer",function(t){d===e._backend&&e._cache.write(t)}),d.on("done",function(){d===e._backend&&(-1===e.length&&(e.length=e._backend.offset+e._backend.bytesRead),e._backend=null)}),t(d))},l=function checkError(t){d!==e._backend?i(new Error("invalid state")):(e._backend=null,i(t))},c=function oncomplete(){d.off("open",f),d.off("error",l)},d.on("open",f),d.on("error",l),d.on("cachever",function(){e._cachever++}),d.load())}var d,c,f,l})}},{key:"_readAhead",value:function _readAhead(){var e=this;return new Promise(function(t,i){e._backend||e.eof?t():e._openBackend().then(function(){t()}).catch(function(e){i(e)})})}},{key:"seek",value:function seek(e){var t=this;return new Promise(function(i,r){if(!t.loaded||t.buffering||t.seeking)throw new Error("invalid state");if(e!==(0|e)||e<0)throw new Error("invalid input");if(t.length>=0&&e>t.length)throw new Error("seek past end of file");if(!t.seekable)throw new Error("seek on non-seekable stream");t._backend&&t.abort(),t._cache.seekRead(e),t._cache.seekWrite(e),t._readAhead().then(i).catch(r)})}},{key:"read",value:function read(e){var t=this;return this.buffer(e).then(function(e){return t.readSync(e)})}},{key:"readSync",value:function readSync(e){var t=this.bytesAvailable(e),i=new Uint8Array(t);if(this.readBytes(i)!==t)throw new Error("failed to read expected data");return i.buffer}},{key:"readBytes",value:function readBytes(e){if(!this.loaded||this.buffering||this.seeking)throw new Error("invalid state");if(!(e instanceof Uint8Array))throw new Error("invalid input");var t=this._cache.readBytes(e);return this._readAhead(),t}},{key:"buffer",value:function buffer(e){var t=this;return new Promise(function(i,r){if(!t.loaded||t.buffering||t.seeking)throw new Error("invalid state");if(e!==(0|e)||e<0)throw new Error("invalid input");var n=t._clampToLength(t.offset+e),o=n-t.offset,a=t.bytesAvailable(o);a>=o?i(a):(t.buffering=!0,t._openBackend().then(function(i){return i?i.bufferToOffset(n).then(function(){return t.buffering=!1,t.buffer(e)}):Promise.resolve(a)}).then(function(e){t.buffering=!1,i(e)}).catch(function(e){"AbortError"!==e.name&&(t.buffering=!1),r(e)}))})}},{key:"bytesAvailable",value:function bytesAvailable(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1/0;return this._cache.bytesReadable(e)}},{key:"abort",value:function abort(){this.loading&&(this.loading=!1),this.buffering&&(this.buffering=!1),this.seeking&&(this.seeking=!1),this._backend&&(this._backend.abort(),this._backend=null)}},{key:"getBufferedRanges",value:function getBufferedRanges(){return this._cache.ranges()}},{key:"_clampToLength",value:function _clampToLength(e){return this.length<0?e:Math.min(this.length,e)}}]),StreamFile}();e.exports=a},function(e,t,i){"use strict";e.exports=i(42)},function(e,t,i){"use strict";var r=function(){function defineProperties(e,t){for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:{}).cacheSize,t=void 0===e?0:e;!function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,CachePool);var i=new n({eof:!0});this.head=i,this.tail=i,this.readOffset=0,this.readCursor=i,this.writeOffset=0,this.writeCursor=i,this.cacheSize=t}return r(CachePool,[{key:"bytesReadable",value:function bytesReadable(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1/0,t=this.readOffset,i=this.readCursor.last(function(i){return!i.empty&&i.start<=t+e});return i?Math.min(e,i.end-t):0}},{key:"bytesWritable",value:function bytesWritable(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1/0,t=this.writeOffset,i=this.writeCursor;if(i.eof)return e;var r=i.last(function(i){return i.empty&&i.start<=t+e});return r?Math.min(e,r.end-t):0}},{key:"seekRead",value:function seekRead(e){var t=this.head.first(function(t){return t.contains(e)});if(!t)throw new Error("read seek out of range");this.readOffset=e,this.readCursor=t}},{key:"seekWrite",value:function seekWrite(e){var t=this.head.first(function(t){return t.contains(e)});if(!t)throw new Error("write seek out of range");this.writeOffset=e,this.writeCursor=t}},{key:"readBytes",value:function readBytes(e){for(var t=e.byteLength,i=this.bytesReadable(t),r=this.readOffset,n=r+i,o=r,a=this.readCursor;a&&!a.empty&&!(a.start>=n);a=a.next){var s=Math.min(n,a.end),u=e.subarray(o-r,s-r);a.readBytes(u,o,s),o=s}return this.readOffset=o,this.readCursor=this.readCursor.first(function(e){return e.contains(o)}),i}},{key:"write",value:function write(e){var t=this.bufferItem(e),i=this.writeCursor;if(!i.empty)throw new Error("write cursor not empty");if(!i.contains(t.end)&&i.end!==t.end)throw new Error("write cursor too small");i.startthis.readOffset+this.chunkSize)&&t.push(i));if(e>this.cacheSize){t.sort(function(e,t){return e.timestamp-t.timestamp});for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},t=e.buffer,i=void 0===t?void 0:t,r=e.string,n=void 0===r?void 0:r,o=e.start,a=void 0===o?0:o,s=e.end,u=void 0===s?a+(i?i.byteLength:n?n.length:0):s,d=e.prev,c=void 0===d?null:d,f=e.next,l=void 0===f?null:f,h=e.eof,p=void 0!==h&&h,_=e.empty,m=void 0===_?!(i||n):_,g=e.timestamp,v=void 0===g?Date.now():g;!function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,CacheItem),this.start=a,this.end=u,this.prev=c,this.next=l,this.eof=p,this.empty=m,this.timestamp=v,this.buffer=i,this.string=n,Object.defineProperty(this,"length",{get:function get(){return this.end-this.start}})}return r(CacheItem,[{key:"contains",value:function contains(e){return e>=this.start&&(e=e||t.eof)r();else{var o=e-t.offset;t.streamReader=new MSStreamReader,t.streamReader.onload=function(e){t.streamReader=null;var i=e.target.result;i.byteLength>0?(t.bytesRead+=i.byteLength,t.emit("buffer",i)):(t.eof=!0,t.emit("done")),r()},t.streamReader.onerror=function(){t.streamReader=null,t.stream=null,t.emit("error"),n(new Error("mystery error streaming"))},t._onAbort=function(e){t.streamReader.abort(),t.streamReader=null,t.stream=null,t.emit("error"),n(e)},t.streamReader.readAsArrayBuffer(i,o)}})})}},{key:"abort",value:function abort(){this.streamReader&&(this.streamReader.abort(),this.streamReader=null),this.stream&&(this.stream.msClose(),this.stream=null),n(MSStreamBackend.prototype.__proto__||Object.getPrototypeOf(MSStreamBackend.prototype),"abort",this).call(this)}}]),MSStreamBackend}();s.supported=function(){try{var e=new XMLHttpRequest;return e.open("GET","/robots.txt"),e.responseType=a,e.responseType===a}catch(e){return!1}},e.exports=s},function(e,t,i){"use strict";var r=function(){function defineProperties(e,t){for(var i=0;i0&&(this.bytesRead+=e.length,this.emit("buffer",e))}},{key:"onXHRLoad",value:function onXHRLoad(){this.onXHRProgress(),n(BinaryStringBackend.prototype.__proto__||Object.getPrototypeOf(BinaryStringBackend.prototype),"onXHRLoad",this).call(this)}}]),BinaryStringBackend}();a.supported=function(){try{return!!(new XMLHttpRequest).overrideMimeType}catch(e){return!1}},e.exports=a},function(e,t,i){"use strict";var r=function(){function defineProperties(e,t){for(var i=0;i0?n[n.length+t]:e[0]:e[t]},s=0;si&&(l=Math.SQRT1_2);for(var h=0;h=i&&(p=0);var _=e[p],m=new Float32Array(c);o(_,m,this._resampleLastSampleData?this._resampleLastSampleData[p]:void 0,l),a.push(m)}return this._resampleFractional=f,this._resampleLastSampleData=e,a},AudioFeeder.prototype.bufferData=function(e){if(!this._backend)throw"Invalid state: AudioFeeder cannot bufferData before init";var t=this._resample(e);t=this._tempoChanger.process(t),this._backend.appendBuffer(t)},AudioFeeder.prototype.getPlaybackState=function(){if(this._backend){var e=this._backend.getPlaybackState();return e.outputPlaybackPosition=e.playbackPosition,e.playbackPosition=this._tempoChanger.mapOutputToInputTime(e.outputPlaybackPosition),e}throw"Invalid state: AudioFeeder cannot getPlaybackState before init"},AudioFeeder.prototype.waitUntilReady=function(e){if(!this._backend)throw"Invalid state: AudioFeeder cannot waitUntilReady before init";this._backend.waitUntilReady(e)},AudioFeeder.prototype.start=function(){if(!this._backend)throw"Invalid state: AudioFeeder cannot start before init";this._backend.start()},AudioFeeder.prototype.stop=function(){if(!this._backend)throw"Invalid state: AudioFeeder cannot stop before init";this._backend.stop()},AudioFeeder.prototype.flush=function(){if(this._resampleFractional=0,this._resampleLastSampleData=void 0,!this._backend)throw"Invalid state: AudioFeeder cannot flush before init";this._tempoChanger.flush(this.durationBuffered),this._backend.flush()},AudioFeeder.prototype.close=function(){this._backend&&(this._backend.close(),this._backend=null)},AudioFeeder.prototype.onstarved=null,AudioFeeder.prototype.onbufferlow=null,AudioFeeder.isSupported=function(){return!!Float32Array&&(t.isSupported()||r.isSupported())},AudioFeeder.initSharedAudioContext=function(){return t.isSupported()?t.initSharedAudioContext():null},e.exports=AudioFeeder}()},function(e,t){ /** * @file Abstraction around a queue of audio buffers. * * @author Brion Vibber * @copyright (c) 2013-2016 Brion Vibber * @license MIT */ function BufferQueue(e,t){if(e<1||e!==Math.round(e))throw"Invalid channel count for BufferQueue";this.channels=e,this.bufferSize=t,this.flush()}BufferQueue.prototype.flush=function(){this._buffers=[],this._pendingBuffer=this.createBuffer(this.bufferSize),this._pendingPos=0},BufferQueue.prototype.sampleCount=function(){var e=0;return this._buffers.forEach(function(t){e+=t[0].length}),e},BufferQueue.prototype.createBuffer=function(e){for(var t=[],i=0;i=r)return e;for(var o=[],a=0;a * @copyright (c) 2013-2016 Brion Vibber * @license MIT */ !function(){var t=window.AudioContext||window.webkitAudioContext,r=i(1),n=i(3);function WebAudioBackend(e,t,i){var n=i.audioContext||WebAudioBackend.initSharedAudioContext();if(this._context=n,this.output=i.output||n.destination,this.rate=n.sampleRate,this.channels=2,i.bufferSize&&(this.bufferSize=0|i.bufferSize),this.bufferThreshold=2*this.bufferSize,this._bufferQueue=new r(this.channels,this.bufferSize),this._playbackTimeAtBufferTail=n.currentTime,this._queuedTime=0,this._delayedTime=0,this._dropped=0,this._liveBuffer=this._bufferQueue.createBuffer(this.bufferSize),n.createScriptProcessor)this._node=n.createScriptProcessor(this.bufferSize,0,this.channels);else{if(!n.createJavaScriptNode)throw new Error("Bad version of web audio API?");this._node=n.createJavaScriptNode(this.bufferSize,0,this.channels)}}WebAudioBackend.prototype.bufferSize=4096,WebAudioBackend.prototype.bufferThreshold=8192,WebAudioBackend.prototype._volume=1,Object.defineProperty(WebAudioBackend.prototype,"volume",{get:function getVolume(){return this._volume},set:function setVolume(e){this._volume=+e}}),WebAudioBackend.prototype._muted=!1,Object.defineProperty(WebAudioBackend.prototype,"muted",{get:function getMuted(){return this._muted},set:function setMuted(e){this._muted=!!e}}),WebAudioBackend.prototype._audioProcess=function(e){var t,i,r,o,a;a="number"==typeof e.playbackTime?e.playbackTime:this._context.currentTime+this.bufferSize/this.rate;var s=this._playbackTimeAtBufferTail;if(s0){var t=Math.round(e*this.rate),i=this._liveBuffer?this._liveBuffer[0].length:0;t>i?(this._bufferQueue.prependBuffer(this._liveBuffer),this._bufferQueue.prependBuffer(this._bufferQueue.createBuffer(t-i))):this._bufferQueue.prependBuffer(this._bufferQueue.trimBuffer(this._liveBuffer,i-t,t)),this._playbackTimeAtBufferTail-=e}this._node.onaudioprocess=null,this._node.disconnect()}},WebAudioBackend.prototype.flush=function(){this._bufferQueue.flush()},WebAudioBackend.prototype.close=function(){this.stop(),this._context=null},WebAudioBackend.prototype.onstarved=null,WebAudioBackend.prototype.onbufferlow=null,WebAudioBackend.isSupported=function(){return!!t},WebAudioBackend.sharedAudioContext=null,WebAudioBackend.initSharedAudioContext=function(){if(!WebAudioBackend.sharedAudioContext&&WebAudioBackend.isSupported()){var e,i=new t;if(i.createScriptProcessor)e=i.createScriptProcessor(1024,0,2);else{if(!i.createJavaScriptNode)throw new Error("Bad version of web audio API?");e=i.createJavaScriptNode(1024,0,2)}e.connect(i.destination),e.disconnect(),WebAudioBackend.sharedAudioContext=i}return WebAudioBackend.sharedAudioContext},e.exports=WebAudioBackend}()},function(e,t){e.exports=function(){if(void 0!==window.setImmediate)return window.setImmediate;if(window&&window.postMessage){var e=[];return window.addEventListener("message",function(t){if(t.source===window){var i=t.data;if("object"==typeof i&&i.nextTickBrowserPingMessage){var r=e.pop();r&&r()}}}),function(t){e.push(t),window.postMessage({nextTickBrowserPingMessage:!0},document.location.toString())}}return function(e){setTimeout(e,0)}}()},function(e,t,i){!function(){var t=i(5),r=i(3),n=function(e,i,n){var o={};"string"==typeof(n=n||{}).base&&(o.swf=n.base+"/"+t),n.bufferSize&&(this.bufferSize=0|n.bufferSize),this._flashaudio=new DynamicAudio(o),this._flashBuffer="",this._cachedFlashState=null,this._cachedFlashTime=0,this._cachedFlashInterval=185,this._waitUntilReadyQueue=[],this.onready=function(){for(this._flashaudio.flashElement.setBufferSize(this.bufferSize),this._flashaudio.flashElement.setBufferThreshold(this.bufferThreshold);this._waitUntilReadyQueue.length;){this._waitUntilReadyQueue.shift().apply(this)}},this.onlog=function(e){console.log("AudioFeeder FlashBackend: "+e)},this.bufferThreshold=2*this.bufferSize;var a={ready:"sync",log:"sync",starved:"sync",bufferlow:"async"};this._callbackName="AudioFeederFlashBackendCallback"+this._flashaudio.id;window[this._callbackName]=function(e){var t=a[e],i=this["on"+e];t&&i&&("async"===t?r(i.bind(this)):(i.apply(this,Array.prototype.slice.call(arguments,1)),this._flushFlashBuffer()))}.bind(this)};n.prototype.rate=44100,n.prototype.channels=2,n.prototype.bufferSize=4096,n.prototype._bufferThreshold=8192,Object.defineProperty(n.prototype,"bufferThreshold",{get:function getBufferThreshold(){return this._bufferThreshold},set:function setBufferThreshold(e){this._bufferThreshold=0|e,this.waitUntilReady(function(){this._flashaudio.flashElement.setBufferThreshold(this._bufferThreshold)}.bind(this))}}),n.prototype._volume=1,Object.defineProperty(n.prototype,"volume",{get:function getVolume(){return this._volume},set:function setVolume(e){this._volume=+e,this.waitUntilReady(this._flashVolumeUpdate.bind(this))}}),n.prototype._muted=!1,Object.defineProperty(n.prototype,"muted",{get:function getMuted(){return this._muted},set:function setMuted(e){this._muted=!!e,this.waitUntilReady(this._flashVolumeUpdate.bind(this))}}),n.prototype._paused=!0,n.prototype._flashVolumeUpdate=function(){this._flashaudio&&this._flashaudio.flashElement&&this._flashaudio.flashElement.setVolume&&this._flashaudio.flashElement.setVolume(this.muted?0:this.volume)},n.prototype._resampleFlash=function(e){for(var t=e[0].length,i=new Float32Array(2*t),r=e[0],n=this.channels>1?e[1]:r,o=0;o0&&(this._cachedFlashState=t.write(e),this._cachedFlashTime=Date.now())},n.prototype.appendBuffer=function(e){var t=this._resampleFlash(e);if(t.length>0){var i=function binaryString(e){for(var t=new Uint8Array(e),i=t.length,r="",n=0;n=8*this.bufferSize&&this._flushFlashBuffer()}},n.prototype.getPlaybackState=function(){if(this._flashaudio&&this._flashaudio.flashElement&&this._flashaudio.flashElement.write){var e,t=Date.now(),i=this._paused?0:t-this._cachedFlashTime;if(this._cachedFlashState&&i';this.flashWrapper.innerHTML=""+r+"",this.flashElement=document.getElementById(i)}},e.exports=n}()},function(e,t,i){e.exports=i.p+"dynamicaudio.swf?version=2c1ce3bfb7e6fa65c26d726a00017a94"},function(e,t,i){!function webpackUniversalModuleDefinition(t,i){e.exports=i()}(window,function(){return function(e){var t={};function __webpack_require__(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,__webpack_require__),r.l=!0,r.exports}return __webpack_require__.m=e,__webpack_require__.c=t,__webpack_require__.d=function(e,t,i){__webpack_require__.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},__webpack_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.t=function(e,t){if(1&t&&(e=__webpack_require__(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(__webpack_require__.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)__webpack_require__.d(i,r,function(t){return e[t]}.bind(null,r));return i},__webpack_require__.n=function(e){var t=e&&e.__esModule?function getDefault(){return e.default}:function getModuleExports(){return e};return __webpack_require__.d(t,"a",t),t},__webpack_require__.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=1)}([function(e,t){var i={float_array:function(e){return new Float32Array(e)},blit:function(e,t,i,r,n){i.set(e.subarray(t,t+n),r)}};e.exports=i},function(e,t,i){var r,n;r=i(0),n=i(2),e.exports=function(e){var t=(e=e||{}).sampleRate||44100,i=e.wsizeLog||11,o=e.tempo||1,a=(e.numChannels,Math.pow(2,50/1200)-1),s=1<>1),g=r.float_array(m),v=r.float_array(m),y=r.float_array(m),b=r.float_array(m),T=r.float_array(m),k=r.float_array(m),w=1+(m>>1),P=[0,0],E=[],A=[],x=[],O=[];for(_=0;_<2;_++)E.push(r.float_array(w)),A.push(r.float_array(w)),x.push(r.float_array(w)),O.push(r.float_array(m));var S=r.float_array(w),R=r.float_array(w),F=0,C=0,B=[{in_time:0,out_time:0,tempo:o}],D=0,V=0,M=1,I=0,L=0,G=0,j=0,W={mapOutputToInputTime:function(e){for(var t=B.length-1;e0;)t--;var i=B[t];return i.in_time+i.tempo*(e-i.out_time)},flush:function(e){I=0,P=[0,0],V=0,j=0,G=0;for(var t=0;t<2;t++)for(var i=0;i=0;)B.pop(),r--;B.push({in_time:F,out_time:C,tempo:o})}},getTempo:function(){return o},setTempo:function(e){l=h=d,e>=1?h=Math.round(l/e):l=Math.round(h*e),L=(1/e-1*h/l)*l,M=function(e,t){for(var i=e.length/t|0,r=0,n=0;ni&&(i=e[r]);var n=1e-8*i,o=1,s=1;for(t[0]=1,r=2;rn&&e[r]>e[r-1]&&e[r]>=e[r+1]){var d=r+(e[r-1]-e[r+1])/(2*(e[r-1]-2*e[r]+e[r+1]));d-t[o-1]>u?(t[o++]=d,s=r):e[r]>e[s]&&(t[o-1]=d,s=r)}}return o}(_,g),y=A[u],b=x[u];if(0!=e&&0!=v){var T=0;for(G=0;Gl[T]&&T!=f;)++T;var k=T;T>0&&j-l[T-1].1*_[Math.round(j)]){var F=N(t,i,j),C=h[k]+p[k]+U(F,j,h[k],l[k],o)-F;y[G]=F,b[G]=C,S[G]=Math.cos(C),R[G]=Math.sin(C)}else y[G]=N(t,i,j),b[G]=0,S[G]=1,R[G]=0}g[v]=2*s;var B=g[k=0],D=g[k+1],V=S[k],M=R[k];for(m=1;m=B&&m-B>D-m&&(B=g[++k],D=g[k+1],V=S[k],M=R[k]);var I=t[m]*V-i[m]*M,L=t[m]*M+i[m]*V;t[m]=I,i[m]=L}}else for(var G=0;Gn&&(n=Math.abs(2*u.m_re[t]));for(t=0;tn&&(n=Math.abs(u.m_re[t+h+e]+u.m_im[t]));for(t=s-h;tn&&(n=Math.abs(2*u.m_im[t]));var a=1/Math.floor(1*s/(2*h));for(o*n>a&&(o=a/n),t=0;t1){n=r.float_array(e[0].length);for(var a=1/e.length,u=0;u0){var p=j+G+i,_=[];for(u=0;uy&&(y=j);var b=r.float_array(y);r.blit(f,0,b,0,j);for(var T=0,k=j,w=0,P=0;;){var E=s+l-G;if(T+E>i){r.blit(n,T,c,G,i-T),G+=i-T,T=i;break}E<=0?G-=2*l:(r.blit(n,T,c,G,E),T+=E,G=s-l),P=H(),F+=2*l/t,C+=P/t,(w=k+P-y)<0&&(w=0),r.blit(f,0,b,k,P-w),k+=P}r.blit(f,P-w,f,0,w),j=w;var A=[];for(u=0;u>=1;i.m_revTgt[n]=a}i.twiddleRe=r.float_array(i.m_logN),i.twiddleIm=r.float_array(i.m_logN);for(var u=1,d=0;d>1,s=n>>1,u=n;if(e)for(var d=1/n,c=0;c>=1,s>>=1,u>>=1}for(var E,A,x=i.m_revTgt,O=0;OO&&(A=t[E=x[O]],t[E]=t[O],t[O]=A,A=r[E],r[E]=r[O],r[O]=A)};var f=t>>1;return i.unpack=function(e,r,n,o){e[0]=i.m_re[0],n[0]=i.m_im[0],r[0]=o[0]=0,e[f]=i.m_re[f],n[f]=i.m_im[f],r[f]=o[f]=0;for(var a=1;a0?o.push(f.subarray(0,f.length-Math.min(l,f.length))):o.push(f.subarray(Math.min(Math.abs(l),f.length),f.length))}}catch(e){s=!0,u=e}finally{try{a||null==c.return||c.return()}finally{if(s)throw u}}t.audioDecoder.audioBuffer=o}return i(e)})})}},{key:"discardFrame",value:function discardFrame(e){var t=this;this.demuxer.dequeueVideoPacket(function(i){t.videoBytes+=i.byteLength,e()})}},{key:"discardAudio",value:function discardAudio(e){var t=this;this.demuxer.dequeueAudioPacket(function(i,r){t.audioBytes+=i.byteLength,e()})}},{key:"flush",value:function flush(e){this.flushIter++,this.demuxer.flush(e)}},{key:"sync",value:function sync(){this.videoDecoder&&this.videoDecoder.sync()}},{key:"getKeypointOffset",value:function getKeypointOffset(e,t){this.demuxer.getKeypointOffset(e,t)}},{key:"seekToKeypoint",value:function seekToKeypoint(e,t){this.demuxer.seekToKeypoint(e,this.flushSafe(t))}},{key:"loadAudioCodec",value:function loadAudioCodec(e){var t=this;if(this.demuxer.audioCodec){var i=!!this.options.wasm,r={vorbis:i?"OGVDecoderAudioVorbisW":"OGVDecoderAudioVorbis",opus:i?"OGVDecoderAudioOpusW":"OGVDecoderAudioOpus"}[this.demuxer.audioCodec];this.processing=!0,a.default.loadClass(r,function(i){var r={};t.demuxer.audioFormat&&(r.audioFormat=t.demuxer.audioFormat),i(r).then(function(i){t.audioDecoder=i,i.init(function(){t.loadedAudioMetadata=i.loadedMetadata,t.processing=!1,e()})})},{worker:this.options.worker})}else e()}},{key:"loadVideoCodec",value:function loadVideoCodec(e){var t=this;if(this.demuxer.videoCodec){var i=!!this.options.wasm,r=!!this.options.threading,n={theora:i?"OGVDecoderVideoTheoraW":"OGVDecoderVideoTheora",vp8:i?r?"OGVDecoderVideoVP8MTW":"OGVDecoderVideoVP8W":"OGVDecoderVideoVP8",vp9:i?r?"OGVDecoderVideoVP9MTW":"OGVDecoderVideoVP9W":"OGVDecoderVideoVP9",av1:i?r?"OGVDecoderVideoAV1MTW":"OGVDecoderVideoAV1W":"OGVDecoderVideoAV1"}[this.demuxer.videoCodec];this.processing=!0,a.default.loadClass(n,function(i){var n={};t.demuxer.videoFormat&&(n.videoFormat=t.demuxer.videoFormat),t.options.memoryLimit&&(n.memoryLimit=t.options.memoryLimit),r&&delete window.ENVIRONMENT_IS_PTHREAD,i(n).then(function(i){t.videoDecoder=i,i.init(function(){t.loadedVideoMetadata=i.loadedMetadata,t.processing=!1,e()})})},{worker:this.options.worker&&!this.options.threading})}else e()}}]),OGVWrapperCodec}();t.default=s}])});