!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=13)}([function(e,t){e.exports=function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}},function(e,t){var i;i=function(){return this}();try{i=i||new Function("return this")()}catch(e){"object"==typeof window&&(i=window)}e.exports=i},function(e,t,i){"use strict";var r=i(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(i(17)),n=r(i(18)),s=r(i(19));const a={audio:{proxy:o.default,worker:"ogv-worker-audio.js"},video:{proxy:n.default,worker:"ogv-worker-video.js"}},u={OGVDecoderAudioOpus:"audio",OGVDecoderAudioOpusW:"audio",OGVDecoderAudioVorbis:"audio",OGVDecoderAudioVorbisW:"audio",OGVDecoderVideoTheora:"video",OGVDecoderVideoTheoraW:"video",OGVDecoderVideoVP8:"video",OGVDecoderVideoVP8W:"video",OGVDecoderVideoVP9:"video",OGVDecoderVideoVP9W:"video",OGVDecoderVideoAV1:"video",OGVDecoderVideoAV1W:"video"};var d=new class OGVLoaderWeb extends s.default{constructor(){super(),this.scriptStatus={},this.scriptCallbacks={}}getGlobal(){return window}defaultBase(){let e,t,i=document.querySelectorAll("script"),r=/^(?:|(.*)\/)ogv(?:-support|-es2017)?\.js(?:\?|#|$)/;for(let o=0;o{let i=this.scriptCallbacks[e];delete this.scriptCallbacks[e],this.scriptStatus[e]="done",i.forEach(e=>{e()})};i.addEventListener("load",r),i.addEventListener("error",r),i.src=e,document.querySelector("head").appendChild(i)}}workerProxy(e,t){let i=u[e],r=a[i];if(!r)throw new Error("Requested worker for class with no proxy: "+e);let o,n=r.proxy,s=r.worker,d=this.urlForScript(this.scriptForClass(e)),h=this.urlForScript(s);var c=function construct(t){return new n(o,e,t)};if(h.match(/^https?:|\/\//i)){var l,f,_,p,m,g=!1,y=!1;function completionCheck(){if(1==g&&1==y){try{m=new Blob([_+" "+p],{type:"application/javascript"})}catch(e){window.BlobBuilder=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,(m=new BlobBuilder).append(_+" "+p),m=m.getBlob()}o=new Worker(URL.createObjectURL(m)),t(function(e){return Promise.resolve(new c(e))})}}(l=new XMLHttpRequest).open("GET",d,!0),l.onreadystatechange=function(){4==l.readyState&&200==l.status&&(_=l.responseText,g=!0,completionCheck())},l.send(),(f=new XMLHttpRequest).open("GET",h,!0),f.onreadystatechange=function(){4==f.readyState&&200==f.status&&(p=f.responseText,y=!0,completionCheck())},f.send()}else o=new Worker(h),t(function(e){return Promise.resolve(new c(e))})}};t.default=d},function(e,t){!function(){"use strict";function FrameSink(e,t){throw new Error("abstract")}FrameSink.prototype.drawFrame=function(e){throw new Error("abstract")},FrameSink.prototype.clear=function(){throw new Error("abstract")},e.exports=FrameSink}()},function(e,t,i){"use strict";var r=function(){function defineProperties(e,t){for(var i=0;i=e?i():function(){var o=null;t._onAbort=function(e){o(),r(e)};var n=function checkBuffer(){t.offset>=e&&!t.eof&&(o(),i())},s=function checkDone(){o(),i()},a=function checkError(){o(),r(new Error("error streaming"))};o=function oncomplete(){t.buffering=!1,t.off("buffer",n),t.off("done",s),t.off("error",a),t._onAbort=null},t.buffering=!0,t.on("buffer",n),t.on("done",s),t.on("error",a)}()})}},{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 o=Object.getPrototypeOf(e);return null===o?void 0:get(o,t,i)}if("value"in r)return r.value;var n=r.get;return void 0!==n?n.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=n},function(e,t){var i,r,o=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 n,s=[],a=!1,u=-1;function cleanUpNextTick(){a&&n&&(a=!1,n.length?s=n.concat(s):u=-1,s.length&&drainQueue())}function drainQueue(){if(!a){var e=runTimeout(cleanUpNextTick);a=!0;for(var t=s.length;t;){for(n=s,s=[];++u1)for(var i=1;i * @copyright 2015-2019 Brion Vibber * @license MIT-style */ function OGVProxyClass(e){return class{constructor(t,i,r){r=r||{},this.worker=t,this.transferables=function(){let e=new ArrayBuffer(1024),i=new Uint8Array(e);try{return t.postMessage({action:"transferTest",bytes:i},[e]),!e.byteLength}catch(e){return!1}}();for(let t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);this.processingQueue=0,Object.defineProperty(this,"processing",{get:function get(){return this.processingQueue>0}}),this.messageCount=0,this.pendingCallbacks={},this.worker.addEventListener("message",e=>{this.handleMessage(e)}),this.proxy("construct",[i,r],()=>{})}proxy(e,t,i){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];if(!this.worker)throw'Tried to call "'+e+'" method on closed proxy object';let o="callback-"+ ++this.messageCount+"-"+e;i&&(this.pendingCallbacks[o]=i);let n={action:e,callbackId:o,args:t||[]};this.processingQueue++,this.transferables?this.worker.postMessage(n,r):this.worker.postMessage(n)}terminate(){this.worker&&(this.worker.terminate(),this.worker=null,this.processingQueue=0,this.pendingCallbacks={})}handleMessage(e){if(this.processingQueue--,"callback"!==e.data.action)return;let t=e.data,i=t.callbackId,r=t.args,o=this.pendingCallbacks[i];if(t.props)for(let e in t.props)t.props.hasOwnProperty(e)&&(this[e]=t.props[e]);o&&(delete this.pendingCallbacks[i],o.apply(this,r))}}};t.default=r},function(e,t,i){"use strict";var r=i(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(i(8));const n={MEDIA_ERR_ABORTED:1,MEDIA_ERR_NETWORK:2,MEDIA_ERR_DECODE:3,MEDIA_ERR_SRC_NOT_SUPPORTED:4};class OGVMediaError{constructor(e,t){this.code=e,this.message=t}}(0,o.default)(OGVMediaError,n),(0,o.default)(OGVMediaError.prototype,n);var s=OGVMediaError;t.default=s},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function extend(e,t){for(let i in t)t.hasOwnProperty(i)&&(e[i]=t[i])};t.default=r},function(e,t,i){"use strict";function split(e,t,i){let r=e.split(t,i).map(e=>(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=o},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)))}},n=function checkError(){r(),i(new Error("network error"))},s=function checkBackendOpen(){r(),t()};r=function oncomplete(){e.xhr.removeEventListener("readystatechange",o),e.xhr.removeEventListener("error",n),e.off("open",s),e._onAbort=null},e.initXHR(),e.xhr.addEventListener("readystatechange",o),e.xhr.addEventListener("error",n),e.on("open",s),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=n},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=class OGVTimeRanges{constructor(e){this._ranges=e,this.length=e.length}start(e){if(e<0||e>this.length||e!==(0|e))throw new RangeError("Invalid index");return this._ranges[e][0]}end(e){if(e<0||e>this.length||e!==(0|e))throw new RangeError("Invalid index");return this._ranges[e][1]}};t.default=r},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 n.default}}),Object.defineProperty(t,"OGVLoader",{enumerable:!0,get:function get(){return s.default}}),Object.defineProperty(t,"OGVMediaError",{enumerable:!0,get:function get(){return a.default}}),Object.defineProperty(t,"OGVMediaType",{enumerable:!0,get:function get(){return u.default}}),Object.defineProperty(t,"OGVPlayer",{enumerable:!0,get:function get(){return d.default}}),Object.defineProperty(t,"OGVTimeRanges",{enumerable:!0,get:function get(){return h.default}}),t.OGVVersion=void 0;var o=r(i(14)),n=r(i(15)),s=r(i(2)),a=r(i(7)),u=r(i(9)),d=r(i(21)),h=r(i(12));o.default.polyfill();t.OGVVersion="1.6.1-20190618150123-e65cc4a","object"==typeof window&&(window.OGVCompat=n.default,window.OGVLoader=s.default,window.OGVMediaError=a.default,window.OGVMediaType=u.default,window.OGVTimeRanges=h.default,window.OGVPlayer=d.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,o=void 0,n=void 0,s=function asap(e,t){l[r]=e,l[r+1]=t,2===(r+=2)&&(n?n(flush):f())},a="undefined"!=typeof window?window:void 0,u=a||{},d=u.MutationObserver||u.WebKitMutationObserver,h="undefined"==typeof self&&void 0!==t&&"[object process]"==={}.toString.call(t),c="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;e{e.match(i)&&(t=!0)}),t}isSlow(){return this.benchmark.slow}isTooSlow(){return this.benchmark.tooSlow}supported(e){return"OGVDecoder"===e?this.hasTypedArrays()&&!this.isBlacklisted(navigator.userAgent):"OGVPlayer"===e&&(this.supported("OGVDecoder")&&this.hasAudio()&&!this.isTooSlow())}};t.default=n},function(e,t,i){"use strict";e.exports=function BogoSlow(){var e,t=this;e=window.performance&&window.performance.now?function timer(){return window.performance.now()}:function timer(){return Date.now()};var i=null;Object.defineProperty(t,"speed",{get:function get(){return null===i&&function run(){var t=0,r=e();!function fibonacci(e){return t++,e<2?e:fibonacci(e-2)+fibonacci(e-1)}(30);var o=e()-r;i=t/o}(),i}}),Object.defineProperty(t,"slowCutoff",{get:function get(){return 5e4}}),Object.defineProperty(t,"tooSlowCutoff",{get:function get(){return 0}}),Object.defineProperty(t,"slow",{get:function get(){return t.speed{})}};t.default=n},function(e,t,i){"use strict";var r=i(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(i(20));const n="1.6.1-20190618150123-e65cc4a",s={OGVDemuxerOgg:"ogv-demuxer-ogg.js",OGVDemuxerOggW:"ogv-demuxer-ogg-wasm.js",OGVDemuxerWebM:"ogv-demuxer-webm.js",OGVDemuxerWebMW:"ogv-demuxer-webm-wasm.js",OGVDecoderAudioOpus:"ogv-decoder-audio-opus.js",OGVDecoderAudioOpusW:"ogv-decoder-audio-opus-wasm.js",OGVDecoderAudioVorbis:"ogv-decoder-audio-vorbis.js",OGVDecoderAudioVorbisW:"ogv-decoder-audio-vorbis-wasm.js",OGVDecoderVideoTheora:"ogv-decoder-video-theora.js",OGVDecoderVideoTheoraW:"ogv-decoder-video-theora-wasm.js",OGVDecoderVideoVP8:"ogv-decoder-video-vp8.js",OGVDecoderVideoVP8W:"ogv-decoder-video-vp8-wasm.js",OGVDecoderVideoVP8MTW:"ogv-decoder-video-vp8-mt-wasm.js",OGVDecoderVideoVP9:"ogv-decoder-video-vp9.js",OGVDecoderVideoVP9W:"ogv-decoder-video-vp9-wasm.js",OGVDecoderVideoVP9MTW:"ogv-decoder-video-vp9-mt-wasm.js",OGVDecoderVideoAV1:"ogv-decoder-video-av1.js",OGVDecoderVideoAV1W:"ogv-decoder-video-av1-wasm.js",OGVDecoderVideoAV1MTW:"ogv-decoder-video-av1-mt-wasm.js"};var a=class OGVLoaderBase{constructor(){this.base=this.defaultBase()}defaultBase(){}wasmSupported(){return o.default.wasmSupported()}scriptForClass(e){return s[e]}urlForClass(e){let t=this.scriptForClass(e);if(t)return this.urlForScript(t);throw new Error("asked for URL for unknown class "+e)}urlForScript(e){if(e){let t=this.base;return void 0===t?t="":t+="/",t+e+"?version="+encodeURIComponent(n)}throw new Error("asked for URL for unknown script "+e)}loadClass(e,t,i){i=i||{};let r=this.getGlobal(),o=this.urlForClass(e),s=t=>((t=t||{}).locateFile=(e=>"data:"===e.slice(0,5)?e:this.urlForScript(e)),t.mainScriptUrlOrBlob=this.scriptForClass(e)+"?version="+encodeURIComponent(n),r[e](t));"function"==typeof r[e]?t(s):this.loadScript(o,()=>{t(s)})}};t.default=a},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=new class WebAssemblyChecker{constructor(){this.tested=!1,this.testResult=void 0}wasmSupported(){if(!this.tested){try{"object"==typeof WebAssembly?this.testResult=function testSafariWebAssemblyBug(){let e=new Uint8Array([0,97,115,109,1,0,0,0,1,6,1,96,1,127,1,127,3,2,1,0,5,3,1,0,1,7,8,1,4,116,101,115,116,0,0,10,16,1,14,0,32,0,65,1,54,2,0,32,0,40,2,0,11]),t=new WebAssembly.Module(e);return 0!==new WebAssembly.Instance(t,{}).exports.test(4)}():this.testResult=!1}catch(e){console.log("Exception while testing WebAssembly",e),this.testResult=!1}this.tested=!0}return this.testResult}};t.default=r},function(e,t,i){"use strict";(function(e){var r=i(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(i(24)),s=r(i(30)),a=r(i(39)),u=(r(i(40)),r(i(2))),d=r(i(41)),h=r(i(8)),c=r(i(7)),l=r(i(9)),f=r(i(12)),_=r(i(42));const p={NETWORK_EMPTY:0,NETWORK_IDLE:1,NETWORK_LOADING:2,NETWORK_NO_SOURCE:3,HAVE_NOTHING:0,HAVE_METADATA:1,HAVE_CURRENT_DATA:2,HAVE_FUTURE_DATA:3,HAVE_ENOUGH_DATA:4},m={INITIAL:"INITIAL",SEEKING_END:"SEEKING_END",LOADED:"LOADED",PRELOAD:"PRELOAD",READY:"READY",PLAYING:"PLAYING",SEEKING:"SEEKING",ENDED:"ENDED",ERROR:"ERROR"},g={NOT_SEEKING:"NOT_SEEKING",BISECT_TO_TARGET:"BISECT_TO_TARGET",BISECT_TO_KEYPOINT:"BISECT_TO_KEYPOINT",LINEAR_TO_TARGET:"LINEAR_TO_TARGET"},y={EXACT:"exact",FAST:"fast"};let b;function OGVJSElement(){let e=document.createElement("ogvjs");return Object.setPrototypeOf?Object.setPrototypeOf(e,Object.getPrototypeOf(this)):e.__proto__=this.__proto__,e}b="undefined"==typeof performance||void 0===typeof performance.now?Date.now:performance.now.bind(performance),OGVJSElement.prototype=Object.create(HTMLElement.prototype,{});class OGVPlayer extends OGVJSElement{constructor(e){super(),(e=e||{}).base=e.base||u.default.base,this._options=e,this._instanceId="ogvjs"+ ++OGVPlayer.instanceCount,void 0!==e.worker?this._enableWorker=!!e.worker:this._enableWorker=!!window.Worker,void 0!==e.wasm?this._enableWASM=!!e.wasm:this._enableWASM=u.default.wasmSupported(),this._enableThreading=!!e.threading,this._state=m.INITIAL,this._seekState=g.NOT_SEEKING,this._detectedType=null,this._canvas=document.createElement("canvas"),this._frameSink=null,this.className=this._instanceId,(0,h.default)(this,p),this._canvas.style.position="absolute",this._canvas.style.top="0",this._canvas.style.left="0",this._canvas.style.width="100%",this._canvas.style.height="100%",this._canvas.style.objectFit="contain",this.appendChild(this._canvas),this._startTime=b(),this._codec=null,this._audioInfo=null,this._videoInfo=null,this._actionQueue=[],this._audioFeeder=null,this._muted=!1,this._initialPlaybackPosition=0,this._initialPlaybackOffset=0,this._prebufferingAudio=!1,this._initialSeekTime=0,this._currentSrc="",this._streamEnded=!1,this._mediaError=null,this._dataEnded=!1,this._byteLength=0,this._duration=null,this._lastSeenTimestamp=null,this._nextProcessingTimer,this._nextFrameTimer=null,this._loading=!1,this._started=!1,this._paused=!0,this._ended=!1,this._startedPlaybackInDocument=!1,this._stream=void 0,this._framesProcessed=0,this._targetPerFrameTime=1e3/60,this._actualPerFrameTime=0,this._totalFrameTime=0,this._totalFrameCount=0,this._playTime=0,this._bufferTime=0,this._drawingTime=0,this._proxyTime=0,this._totalJitter=0,this._droppedAudio=0,this._delayedAudio=0,this._lateFrames=0,this._poster="",this._thumbnail=null,this._frameEndTimestamp=0,this._audioEndTimestamp=0,this._decodedFrames=[],this._pendingFrames=[],this._lastFrameDecodeTime=0,this._lastFrameVideoCpuTime=0,this._lastFrameAudioCpuTime=0,this._lastFrameDemuxerCpuTime=0,this._lastFrameDrawingTime=0,this._lastFrameBufferTime=0,this._lastFrameProxyTime=0,this._lastVideoCpuTime=0,this._lastAudioCpuTime=0,this._lastDemuxerCpuTime=0,this._lastBufferTime=0,this._lastProxyTime=0,this._lastDrawingTime=0,this._lastFrameTimestamp=0,this._currentVideoCpuTime=0,this._lastTimeUpdate=0,this._timeUpdateInterval=250,this._seekTargetTime=0,this._bisectTargetTime=0,this._seekMode=null,this._lastSeekPosition=null,this._seekBisector=null,this._didSeek=null,this._depth=0,this._needProcessing=!1,this._pendingFrame=0,this._pendingAudio=0,this._framePipelineDepth=8,this._frameParallelism=this._enableThreading?Math.min(8,navigator.hardwareConcurrency)||1:0,this._audioPipelineDepth=12,this._videoInfo=null,this._audioInfo=null,this._width=0,this._height=0,this._volume=1,this._playbackRate=1,Object.defineProperties(this,{src:{get:function getSrc(){return this.getAttribute("src")||""},set:function setSrc(e){this.setAttribute("src",e),this._loading=!1,this._prepForLoad("interactive")}},buffered:{get:function getBuffered(){let e;return e=this._stream&&this._byteLength&&this._duration?this._stream.getBufferedRanges().map(e=>e.map(e=>e/this._stream.length*this._duration)):[[0,0]],new f.default(e)}},seekable:{get:function getSeekable(){return this.duration<1/0&&this._stream&&this._stream.seekable&&this._codec&&this._codec.seekable?new f.default([[0,this._duration]]):new f.default([])}},currentTime:{get:function getCurrentTime(){return this._state==m.SEEKING?this._seekTargetTime:this._codec?this._state!=m.PLAYING||this._paused?this._initialPlaybackOffset:this._getPlaybackTime():this._initialSeekTime},set:function setCurrentTime(e){this._seek(e,y.EXACT)}},duration:{get:function getDuration(){return this._codec&&this._codec.loadedMetadata?null!==this._duration?this._duration:1/0:NaN}},paused:{get:function getPaused(){return this._paused}},ended:{get:function getEnded(){return this._ended}},seeking:{get:function getSeeking(){return this._state==m.SEEKING}},muted:{get:function getMuted(){return this._muted},set:function setMuted(e){this._muted=e,this._audioFeeder?this._audioFeeder.muted=this._muted:this._started&&!this._muted&&this._codec&&this._codec.hasAudio&&(this._log("unmuting: switching from timer to audio clock"),this._initAudioFeeder(),this._startPlayback(this._audioEndTimestamp)),this._fireEventAsync("volumechange")}},poster:{get:function getPoster(){return this._poster},set:function setPoster(e){if(this._poster=e,!this._started){this._thumbnail&&this.removeChild(this._thumbnail);let e=new Image;e.src=this._poster,e.className="ogvjs-poster",e.style.position="absolute",e.style.top="0",e.style.left="0",e.style.width="100%",e.style.height="100%",e.style.objectFit="contain",e.style.visibility="hidden",e.addEventListener("load",()=>{this._thumbnail===e&&(OGVPlayer.styleManager.appendRule("."+this._instanceId,{width:e.naturalWidth+"px",height:e.naturalHeight+"px"}),OGVPlayer.updatePositionOnResize(),e.style.visibility="visible")}),this._thumbnail=e,this.appendChild(e)}}},videoWidth:{get:function getVideoWidth(){return this._videoInfo?this._videoInfo.displayWidth:0}},videoHeight:{get:function getVideoHeight(){return this._videoInfo?this._videoInfo.displayHeight:0}},ogvjsVideoFrameRate:{get:function getOgvJsVideoFrameRate(){return this._videoInfo?0==this._videoInfo.fps?this._totalFrameCount/(this._totalFrameTime/1e3):this._videoInfo.fps:0}},ogvjsAudioChannels:{get:function getOgvJsAudioChannels(){return this._audioInfo?this._audioInfo.channels:0}},ogvjsAudioSampleRate:{get:function getOgvJsAudioChannels(){return this._audioInfo?this._audioInfo.rate:0}},width:{get:function getWidth(){return this._width},set:function setWidth(e){this._width=parseInt(e,10),this.style.width=this._width+"px",OGVPlayer.updatePositionOnResize()}},height:{get:function getHeight(){return this._height},set:function setHeight(e){this._height=parseInt(e,10),this.style.height=this._height+"px",OGVPlayer.updatePositionOnResize()}},autoplay:{get:function getAutoplay(){return!1},set:function setAutoplay(e){}},controls:{get:function getControls(){return!1},set:function setControls(e){}},loop:{get:function getLoop(){return!1},set:function setLoop(e){}},crossOrigin:{get:function getCrossOrigin(){return null},set:function setCrossOrigin(e){}},currentSrc:{get:function getCurrentSrc(){return this._currentSrc}},defaultMuted:{get:function getDefaultMuted(){return!1}},defaultPlaybackRate:{get:function getDefaultPlaybackRate(){return 1}},error:{get:function getError(){return this._state===m.ERROR?this._mediaError?this._mediaError:new c.default("unknown error occurred in media procesing"):null}},preload:{get:function getPreload(){return this.getAttribute("preload")||""},set:function setPreload(e){this.setAttribute("preload",e)}},readyState:{get:function getReadyState(){return this._stream&&this._codec&&this._codec.loadedMetadata?OGVPlayer.HAVE_ENOUGH_DATA:OGVPlayer.HAVE_NOTHING}},networkState:{get:function getNetworkState(){return this._stream?this._stream.waiting?OGVPlayer.NETWORK_LOADING:OGVPlayer.NETWORK_IDLE:this.readyState==OGVPlayer.HAVE_NOTHING?OGVPlayer.NETWORK_EMPTY:OGVPlayer.NETWORK_NO_SOURCE}},playbackRate:{get:function getPlaybackRate(){return this._playbackRate},set:function setPlaybackRate(e){var t=Number(e)||1;this._audioFeeder?this._audioFeeder.tempo=t:this._paused||(this._initialPlaybackOffset=this._getPlaybackTime(),this._initialPlaybackPosition=t*b()/1e3),this._playbackRate=t,this._fireEventAsync("ratechange")}},played:{get:function getPlayed(){return new f.default([[0,this.currentTime]])}},volume:{get:function getVolume(){return this._volume},set:function setVolume(e){this._volume=+e,this._audioFeeder&&(this._audioFeeder.volume=this._volume),this._fireEventAsync("volumechange")}}}),this.onframecallback=null,this.onloadstate=null,this.onprogress=null,this.onsuspend=null,this.onabort=null,this.onemptied=null,this.onstalled=null,this.onloadedmetadata=null,this.onloadeddata=null,this.oncanplay=null,this.oncanplaythrough=null,this.onplaying=null,this.onwaiting=null,this.onseeking=null,this.onseeked=null,this.onended=null,this.ondurationchange=null,this.ontimeupdate=null,this.onplay=null,this.onpause=null,this.onratechange=null,this.onresize=null,this.onvolumechange=null,this.onaudiofeedercreated=null}_time(e){let t=b();e();let i=b()-t;return this._lastFrameDecodeTime+=i,i}_log(e){let t=this._options;if(t.debug){let i=b()-this._startTime;t.debugFilter&&!e.match(t.debugFilter)||console.log("["+Math.round(10*i)/10+"ms] "+e)}}_fireEvent(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this._log("fireEvent "+e);let i,r="function"==typeof Event;r?i=new CustomEvent(e):(i=document.createEvent("Event")).initEvent(e,!1,!1);for(let e in t)t.hasOwnProperty(e)&&(i[e]=t[e]);let o=this.dispatchEvent(i);!r&&"resize"===e&&this.onresize&&o&&this.onresize.call(this,i)}_fireEventAsync(t){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this._log("fireEventAsync "+t),e(()=>{this._fireEvent(t,i)})}static initSharedAudioContext(){a.default.initSharedAudioContext()}_initAudioFeeder(){let e=this._options,t={base:e.base||u.default.base,bufferSize:8192};e.audioContext&&(t.audioContext=e.audioContext),e.audioDestination&&(t.output=e.audioDestination),e.audioBackendFactory&&(t.backendFactory=e.audioBackendFactory);let i=this._audioFeeder=new a.default(t);i.init(this._audioInfo.channels,this._audioInfo.rate),this.onaudiofeedercreated&&this.onaudiofeedercreated(this._audioFeeder),i.bufferThreshold=1,i.volume=this.volume,i.muted=this.muted,i.tempo=this.playbackRate,i.onbufferlow=(()=>{this._log("onbufferlow"),this._stream&&(this._stream.buffering||this._stream.seeking)||this._pendingAudio||this._pingProcessing()}),i.onstarved=(()=>{this._dataEnded?this._log("onstarved: appear to have reached end of audio"):(this._log("onstarved: halting audio due to starvation"),this._stopPlayback(),this._prebufferingAudio=!0),this._isProcessing()||this._pingProcessing(0)})}_startPlayback(e){if(this._audioFeeder){this._audioFeeder.start();let e=this._audioFeeder.getPlaybackState();this._initialPlaybackPosition=e.playbackPosition}else this._initialPlaybackPosition=this._playbackRate*b()/1e3;void 0!==e&&(this._initialPlaybackOffset=e),this._prebufferingAudio=!1,this._log("continuing at "+this._initialPlaybackPosition+", "+this._initialPlaybackOffset)}_stopPlayback(){this._initialPlaybackOffset=this._getPlaybackTime(),this._log("pausing at "+this._initialPlaybackOffset),this._audioFeeder&&this._audioFeeder.stop()}_getPlaybackTime(e){if(this._prebufferingAudio||this._paused)return this._initialPlaybackOffset;{let t;return(t=this._audioFeeder?(e=e||this._audioFeeder.getPlaybackState()).playbackPosition:this._playbackRate*b()/1e3)-this._initialPlaybackPosition+this._initialPlaybackOffset}}_stopVideo(){this._log("STOPPING"),this._state=m.INITIAL,this._seekState=g.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}_doFrameComplete(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._startedPlaybackInDocument&&!document.body.contains(this)&&e(()=>{this.stop()});let i=b(),r=i-this._lastFrameTimestamp,o=this._actualPerFrameTime-this._targetPerFrameTime;this._totalJitter+=Math.abs(o),this._playTime+=r;let s={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:t.dropped,dropped:t.dropped};function n(e){return Math.round(10*e)/10}this._codec&&(s.demuxerTime=this._codec.demuxerCpuTime-this._lastFrameDemuxerCpuTime,s.videoTime+=this._currentVideoCpuTime-this._lastFrameVideoCpuTime,s.audioTime+=this._codec.audioCpuTime-this._lastFrameAudioCpuTime),s.cpuTime+=s.demuxerTime,this._lastFrameDecodeTime=0,this._lastFrameTimestamp=i,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 "+t.frameEndTimestamp+": clock time "+n(r)+" (jitter "+n(o)+") cpu: "+n(s.cpuTime)+" (mux: "+n(s.demuxerTime)+" buf: "+n(s.bufferTime)+" draw: "+n(s.drawingTime)+" proxy: "+n(s.proxyTime)+") vid: "+n(s.videoTime)+" aud: "+n(s.audioTime)),this._fireEventAsync("framecallback",s),(!this._lastTimeUpdate||i-this._lastTimeUpdate>=this._timeUpdateInterval)&&(this._lastTimeUpdate=i,this._fireEventAsync("timeupdate"))}_seekStream(e){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(()=>{this._readBytesAndWait()}).catch(e=>{this._onStreamError(e)})}_onStreamError(e){"AbortError"===e.name?this._log("i/o promise canceled; ignoring"):(this._log("i/o error: "+e),this._mediaError=new c.default(c.default.MEDIA_ERR_NETWORK,String(e)),this._state=m.ERROR,this._stopPlayback())}_seek(e,t){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");let i=i=>{this._stream&&this._stream.buffering&&this._stream.abort(),this._stream&&this._stream.seeking&&this._stream.abort(),this._actionQueue.splice(0,this._actionQueue.length),this._stopPlayback(),this._prebufferingAudio=!1,this._audioFeeder&&this._audioFeeder.flush(),this._state=m.SEEKING,this._seekTargetTime=e,this._seekMode=t,this._codec?this._codec.flush(i):i()};i(()=>{this._isProcessing()||this._pingProcessing(0)}),this._actionQueue.push(()=>{i(()=>{this._doSeek(e)})})}_doSeek(e){this._streamEnded=!1,this._dataEnded=!1,this._ended=!1,this._state=m.SEEKING,this._seekTargetTime=e,this._lastSeekPosition=-1,this._decodedFrames=[],this._pendingFrames=[],this._pendingFrame=0,this._pendingAudio=0,this._didSeek=!1,this._codec.seekToKeypoint(e,t=>{if(t)return this._seekState=g.LINEAR_TO_TARGET,this._fireEventAsync("seeking"),this._didSeek?void 0:void this._pingProcessing();this._codec.getKeypointOffset(e,e=>{e>0?(this._seekState=g.LINEAR_TO_TARGET,this._seekStream(e)):(this._seekState=g.BISECT_TO_TARGET,this._startBisection(this._seekTargetTime)),this._fireEventAsync("seeking")})})}_startBisection(e){let t=Math.max(0,this._stream.length-65536);this._bisectTargetTime=e,this._seekBisector=new d.default({start:0,end:t,process:(e,t,i)=>i!=this._lastSeekPosition&&(this._lastSeekPosition=i,this._codec.flush(()=>{this._seekStream(i)}),!0)}),this._seekBisector.start()}_continueSeekedPlayback(){this._seekState=g.NOT_SEEKING,this._state=m.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;let e=()=>{this._lastTimeUpdate=this._seekTargetTime,this._fireEventAsync("timeupdate"),this._fireEventAsync("seeked"),this._isProcessing()||this._pingProcessing()};if(this._codec.hasVideo&&this._decodedFrames.length){this._thumbnail&&(this.removeChild(this._thumbnail),this._thumbnail=null);let t=this._decodedFrames.shift();this._frameSink.drawFrame(t.yCbCrBuffer),e()}else{if(this._codec.hasVideo&&this._codec.frameReady)return this._codec.decodeFrame(t=>{t&&(this._thumbnail&&(this.removeChild(this._thumbnail),this._thumbnail=null),this._frameSink.drawFrame(this._codec.frameBuffer)),e()}),void this._codec.sync();e()}}_doProcessLinearSeeking(){let e;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(e=>{e?this._pingProcessing():this._streamEnded?(this._log("stream ended during linear seeking on video"),this._dataEnded=!0,this._continueSeekedPlayback()):this._readBytesAndWait()});if(this._seekMode===y.FAST&&this._codec.keyframeTimestamp==this._codec.frameTimestamp)return void this._continueSeekedPlayback();if(this._codec.frameTimestamp<=this._seekTargetTime){let e=this._codec.frameTimestamp;return this._pendingFrame++,this._pendingFrames.push({frameEndTimestamp:e}),this._decodedFrames.splice(0,this._decodedFrames.length),this._codec.decodeFrame(t=>{this._pendingFrame--,this._pendingFrames.shift(),this._decodedFrames.push({yCbCrBuffer:this._codec.frameBuffer,videoCpuTime:this._codec.videoCpuTime,frameEndTimestamp:e}),this._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+e{this._pingProcessing()}):void this._continueSeekedPlayback():void this._codec.process(e=>{e?this._pingProcessing():this._streamEnded?(this._log("stream ended during linear seeking on audio"),this._dataEnded=!0,this._continueSeekedPlayback()):this._readBytesAndWait()})}}_doProcessBisectionSeek(){let e,t;if(this._codec.hasVideo)t=this._codec.frameTimestamp,e=this._targetPerFrameTime/1e3;else{if(!this._codec.hasAudio)throw new Error("Invalid seek state; no audio or video track available");t=this._codec.audioTimestamp,e=1/256}t<0?this._codec.process(e=>{if(e)this._pingProcessing();else if(this._streamEnded){if(this._log("stream ended during bisection seek"),!this._seekBisector.right())throw this._log("failed going back"),new Error("not sure what to do")}else this._readBytesAndWait()}):t-e/2>this._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();let e={};void 0!==this._options.webGL&&(e.webGL=this._options.webGL),this._options.forceWebGL&&(e.webGL="required"),this._frameSink=o.default.attach(this._canvas,e)}_doProcessing(){if(this._didSeek&&(this._didSeek=!1),this._nextProcessingTimer=null,this._isProcessing(),this._depth>0)throw new Error("REENTRANCY FAIL: doProcessing recursing unexpectedly");let 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)}_doProcessingLoop(){if(this._actionQueue.length){this._actionQueue.shift()()}else if(this._state==m.INITIAL)this._doProcessInitial();else if(this._state==m.SEEKING_END)this._doProcessSeekingEnd();else if(this._state==m.LOADED)this._doProcessLoaded();else if(this._state==m.PRELOAD)this._doProcessPreload();else if(this._state==m.READY)this._doProcessReady();else if(this._state==m.SEEKING)this._doProcessSeeking();else if(this._state==m.PLAYING)this._doProcessPlay();else{if(this._state!=m.ERROR)throw new Error("Unexpected OGVPlayer state "+this._state);this._doProcessError()}}_doProcessInitial(){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=m.SEEKING_END,this._lastSeenTimestamp=-1,this._codec.flush(()=>{this._seekStream(Math.max(0,this._stream.length-131072))})):(this._state=m.LOADED,this._pingProcessing())}else this._codec.process(e=>{if(e)this._pingProcessing();else{if(this._streamEnded)throw new Error("end of file before headers found");this._log("reading more cause we are out of data"),this._readBytesAndWait()}})}_doProcessSeekingEnd(){this._codec.frameReady?(this._log("saw frame with "+this._codec.frameTimestamp),this._lastSeenTimestamp=Math.max(this._lastSeenTimestamp,this._codec.frameTimestamp),this._codec.discardFrame(()=>{this._pingProcessing()})):this._codec.audioReady?(this._log("saw audio with "+this._codec.audioTimestamp),this._lastSeenTimestamp=Math.max(this._lastSeenTimestamp,this._codec.audioTimestamp),this._codec.discardAudio(()=>{this._pingProcessing()})):this._codec.process(e=>{e?this._pingProcessing():this._stream.eof?(this._log("seek-duration: we are at the end: "+this._lastSeenTimestamp),this._lastSeenTimestamp>0&&(this._duration=this._lastSeenTimestamp),this._state=m.LOADED,this._codec.flush(()=>{this._streamEnded=!1,this._dataEnded=!1,this._seekStream(0)})):this._readBytesAndWait()})}_doProcessLoaded(){this._state=m.PRELOAD,this._fireEventAsync("loadedmetadata"),this._fireEventAsync("durationchange"),this._codec.hasVideo&&this._fireEventAsync("resize"),this._pingProcessing(0)}_doProcessPreload(){!this._codec.frameReady&&this._codec.hasVideo||!this._codec.audioReady&&this._codec.hasAudio?this._codec.process(e=>{e?this._pingProcessing():this._streamEnded?this._ended=!0:this._readBytesAndWait()}):(this._state=m.READY,this._fireEventAsync("loadeddata"),this._pingProcessing())}_doProcessReady(){if(this._log("initial seek to "+this._initialSeekTime),this._initialSeekTime>0){let e=this._initialSeekTime;this._initialSeekTime=0,this._log("initial seek to "+e),this._doSeek(e)}else if(this._paused)this._log("paused while in ready");else{let e=()=>{this._log("finishStartPlaying"),this._state=m.PLAYING,this._lastFrameTimestamp=b(),this._codec.hasAudio&&this._audioFeeder?this._prebufferingAudio=!0:this._startPlayback(),this._pingProcessing(0),this._fireEventAsync("play"),this._fireEventAsync("playing")};!this._codec.hasAudio||this._audioFeeder||this._muted?e():(this._initAudioFeeder(),this._audioFeeder.waitUntilReady(e))}}_doProcessSeeking(){if(this._seekState==g.NOT_SEEKING)throw new Error("seeking in invalid state (not seeking?)");if(this._seekState==g.BISECT_TO_TARGET)this._doProcessBisectionSeek();else if(this._seekState==g.BISECT_TO_KEYPOINT)this._doProcessBisectionSeek();else{if(this._seekState!=g.LINEAR_TO_TARGET)throw new Error("Invalid seek state "+this._seekState);this._doProcessLinearSeeking()}}_doProcessPlay(){let e=this._codec;if(this._paused)this._log("paused during playback; stopping loop");else if((!e.hasAudio||e.audioReady||this._pendingAudio||this._dataEnded)&&(!e.hasVideo||e.frameReady||this._pendingFrame||this._decodedFrames.length||this._dataEnded)){var t,i,r,o=null,n=0,s=!1,a=0;if(e.hasAudio&&this._audioFeeder?(o=this._audioFeeder.getPlaybackState(),n=this._getPlaybackTime(o),s=this._dataEnded&&0==this._audioFeeder.durationBuffered,this._prebufferingAudio&&(this._audioFeeder.durationBuffered>=2*this._audioFeeder.bufferThreshold&&(!e.hasVideo||this._decodedFrames.length>=this._framePipelineDepth)||this._dataEnded)&&(this._log("prebuffering audio done; buffered to "+this._audioFeeder.durationBuffered),this._startPlayback(n),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,(t=this._audioFeeder.durationBuffered<=2*this._audioFeeder.bufferThreshold)&&(this._codec.audioReady?this._pendingAudio>=this._audioPipelineDepth&&(this._log("audio decode disabled: "+this._pendingAudio+" packets in flight"),t=!1):t=!1)):(n=this._getPlaybackTime(),t=this._codec.audioReady&&this._audioEndTimestamp0,r=this._pendingFrame+this._decodedFrames.length=e){let e=-1;for(let t=0;t=0)for(;e-- >=0;){this._lateFrames++;let e=this._decodedFrames.shift();this._log("skipping already-decoded late frame at "+e.frameEndTimestamp),a=1e3*(e.frameEndTimestamp-n),this._frameEndTimestamp=e.frameEndTimestamp,this._actualPerFrameTime=this._targetPerFrameTime-a,this._framesProcessed++,e.dropped=!0,this._doFrameComplete(e)}let t=this._codec.nextKeyframeTimestamp,i=t-this._targetPerFrameTime/1e3*(this._framePipelineDepth+this._pendingFrame);if(t>=0&&t!=this._codec.frameTimestamp&&n>=i){this._log("skipping late frame at "+this._decodedFrames[0].frameEndTimestamp+" vs "+n+", expect to see keyframe at "+t);for(let e=0;e{}),this._framesProcessed++,this._doFrameComplete(e)}return void(this._isProcessing()||this._pingProcessing())}}else i&&a<=4||(i=!1)}if(r){this._log("play loop: ready to decode frame; thread depth: "+this._pendingFrame+", have buffered: "+this._decodedFrames.length),0==this._videoInfo.fps&&this._codec.frameTimestamp-this._frameEndTimestamp>0&&(this._targetPerFrameTime=1e3*(this._codec.frameTimestamp-this._frameEndTimestamp)),this._totalFrameTime+=this._targetPerFrameTime,this._totalFrameCount++;let e=this._frameEndTimestamp=this._codec.frameTimestamp;this._pendingFrame++,this._pendingFrames.push({frameEndTimestamp:e});let t=this._pendingFrames,i=!1,r=this._time(()=>{this._codec.decodeFrame(r=>{t===this._pendingFrames?(this._log("play loop callback: decoded frame"),this._pendingFrame--,this._pendingFrames.shift(),r?this._decodedFrames.push({yCbCrBuffer:this._codec.frameBuffer,videoCpuTime:this._codec.videoCpuTime,frameEndTimestamp:e}):this._log("Bad video packet or something"),this._codec.process(()=>{this._isProcessing()||this._pingProcessing(i?void 0:0)})):this._log("play loop callback after flush, discarding")})});this._pendingFrame&&(i=!0,this._proxyTime+=r,this._pingProcessing(),this._dataEnded&&this._codec.sync())}else if(t){this._log("play loop: ready for audio; depth: "+this._pendingAudio),this._pendingAudio++;let e=this._codec.audioTimestamp,t=this._time(()=>{this._codec.decodeAudio(t=>{if(this._pendingAudio--,this._log("play loop callback: decoded audio"),this._audioEndTimestamp=e,t){let e=this._codec.audioBuffer;if(e&&(this._bufferTime+=this._time(()=>{this._audioFeeder&&this._audioFeeder.bufferData(e)}),!this._codec.hasVideo)){this._framesProcessed++;let e={frameEndTimestamp:this._audioEndTimestamp};this._doFrameComplete(e)}}this._isProcessing()||this._pingProcessing()})});this._pendingAudio&&(this._proxyTime+=t,this._codec.audioReady?this._pingProcessing():this._doProcessPlayDemux())}else if(i){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);let e=this._decodedFrames.shift();this._currentVideoCpuTime=e.videoCpuTime,this._drawingTime+=this._time(()=>{this._frameSink.drawFrame(e.yCbCrBuffer)}),this._framesProcessed++,this._doFrameComplete(e),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]);let e=0;this._codec.hasAudio&&this._audioFeeder&&(e=1e3*this._audioFeeder.durationBuffered),e>0?(this._log("play loop: ending pending "+e+" ms"),this._pingProcessing(Math.max(0,e))):(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&&(e.hasVideo&&!e.frameReady||e.hasAudio&&!e.audioReady)?(this._log("play loop: prebuffering demuxing"),this._doProcessPlayDemux()):this._log("play loop: waiting on async/timers");else{let e=a;this._log("play loop: setting a timer for drawing "+e),this._nextFrameTimer=setTimeout(()=>{this._nextFrameTimer=null,this._pingProcessing()},e)}}else this._log("play loop: demuxing"),this._doProcessPlayDemux()}_doProcessPlayDemux(){let e=this._codec.frameReady,t=this._codec.audioReady;this._codec.process(i=>{this._codec.frameReady&&!e||this._codec.audioReady&&!t?(this._log("demuxer has packets"),this._pingProcessing()):i?(this._log("demuxer processing to find more packets"),this._pingProcessing()):(this._log("demuxer ran out of data"),this._streamEnded?(this._log("demuxer reached end of data stream"),this._dataEnded=!0,this._pingProcessing()):(this._log("demuxer loading more data"),this._readBytesAndWait()))})}_doProcessError(){}_isProcessing(){return this._stream&&(this._stream.buffering||this._stream.seeking)||this._codec&&this._codec.processing}_readBytesAndWait(){if(this._stream.buffering||this._stream.seeking)return void this._log("readBytesAndWait during i/o");this._stream.read(32768).then(e=>{this._log("got input "+[e.byteLength]),e.byteLength&&this._actionQueue.push(()=>{this._codec.receiveInput(e,()=>{this._pingProcessing()})}),this._stream.eof&&(this._log("stream is at end!"),this._streamEnded=!0),this._isProcessing()||this._pingProcessing()}).catch(e=>{this._onStreamError(e)})}_pingProcessing(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-1;if(this._stream&&this._stream.waiting)return void this._log("waiting on input");this._nextProcessingTimer&&(this._log("canceling old processing timer"),clearTimeout(this._nextProcessingTimer),this._nextProcessingTimer=null);e>-1/256?this._nextProcessingTimer=setTimeout(()=>{this._pingProcessing()},e):this._depth?this._needProcessing=!0:this._doProcessing()}_startProcessingVideo(e){if(this._started||this._codec)return;this._framesProcessed=0,this._bufferTime=0,this._drawingTime=0,this._proxyTime=0,this._started=!0,this._ended=!1;let t={base:this._options.base,worker:this._enableWorker,threading:this._enableThreading,wasm:this._enableWASM};this._options.memoryLimit&&!this._enableWASM&&(t.memoryLimit=this._options.memoryLimit),this._detectedType&&(t.type=this._detectedType),this._codec=new _.default(t),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=(e=>{this._didSeek=!0,this._stream&&this._seekStream(e)}),this._codec.init(()=>{this._codec.receiveInput(e,()=>{this._readBytesAndWait()})})}_loadCodec(e){this._stream.read(1024).then(t=>{let i=new Uint8Array(t);i.length>4&&i[0]=="O".charCodeAt(0)&&i[1]=="g".charCodeAt(0)&&i[2]=="g".charCodeAt(0)&&i[3]=="S".charCodeAt(0)?this._detectedType="video/ogg":i.length>4&&26==i[0]&&69==i[1]&&223==i[2]&&163==i[3]?this._detectedType="video/webm":this._detectedType="video/ogg",e(t)})}_prepForLoad(e){this._stopVideo();let t=()=>{this._options.stream?this._stream=this._options.stream:this._stream=new s.default({url:this.src,cacheSize:16777216,progressive:!1}),this._stream.load().then(()=>{this._loading=!1,this._currentSrc=this.src,this._byteLength=this._stream.seekable?this._stream.length:0;let e=this._stream.headers["x-content-duration"];"string"==typeof e&&(this._duration=parseFloat(e)),this._loadCodec(e=>{this._startProcessingVideo(e)})}).catch(e=>{this._onStreamError(e)})};this._currentSrc="",this._loading=!0,this._actionQueue.push(()=>{e&&"none"===this.preload?this._loading=!1:t()}),this._pingProcessing(0)}load(){this._prepForLoad()}canPlayType(e){let t=new l.default(e);function checkTypes(e){if(t.codecs){let i=0,r=0;return t.codecs.forEach(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"])}play(){this._muted||this._options.audioContext||OGVPlayer.initSharedAudioContext(),this._paused&&(this._startedPlaybackInDocument=document.body.contains(this),this._paused=!1,this._state==m.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=m.READY,this._isProcessing()||this._pingProcessing()):this._loading?this._log(".play() while loading"):(this._log(".play() before started"),this._stream||this.load())))}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}}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}getVideoFrameSink(){return this._frameSink}getCanvas(){return this._canvas}pause(){this._paused||(this._nextProcessingTimer&&(clearTimeout(this._nextProcessingTimer),this._nextProcessingTimer=null),this._stopPlayback(),this._prebufferingAudio=!1,this._paused=!0,this._fireEvent("pause"))}stop(){this._stopVideo(),this._paused=!0}fastSeek(e){this._seek(+e,y.FAST)}}if((0,h.default)(OGVPlayer,p),OGVPlayer.instanceCount=0,OGVPlayer.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 o in i)i.hasOwnProperty(o)&&r.push(o+":"+i[o]);var n=e+"{"+r.join(";")+"}";t.insertRule(n,t.cssRules.length-1)}},OGVPlayer.supportsObjectFit="string"==typeof document.createElement("canvas").style.objectFit,OGVPlayer.supportsObjectFit&&navigator.userAgent.match(/iPhone|iPad|iPod Touch/)&&(OGVPlayer.supportsObjectFit=!1),OGVPlayer.supportsObjectFit&&navigator.userAgent.match(/Edge/)&&(OGVPlayer.supportsObjectFit=!1),OGVPlayer.supportsObjectFit)OGVPlayer.updatePositionOnResize=function(){};else{OGVPlayer.updatePositionOnResize=function(){function fixup(e,t,i){var r=e.offsetParent||e.parentNode,o=t/i;if(o>r.offsetWidth/r.offsetHeight){var n=r.offsetWidth/o,s=(r.offsetHeight-n)/2;e.style.width="100%",e.style.height=n+"px",e.style.marginLeft=0,e.style.marginRight=0,e.style.marginTop=s+"px",e.style.marginBottom=s+"px"}else{var a=r.offsetHeight*o,u=(r.offsetWidth-a)/2;e.style.width=a+"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 v=function fullResizeVideo(){e(OGVPlayer.updatePositionOnResize)};window.addEventListener("resize",OGVPlayer.updatePositionOnResize),window.addEventListener("orientationchange",OGVPlayer.updatePositionOnResize),document.addEventListener("fullscreenchange",v),document.addEventListener("mozfullscreenchange",v),document.addEventListener("webkitfullscreenchange",v),document.addEventListener("MSFullscreenChange",v)}var T=OGVPlayer;t.default=T}).call(this,i(22).setImmediate)},function(e,t,i){(function(e){var r=void 0!==e&&e||"undefined"!=typeof self&&self||window,o=Function.prototype.apply;function Timeout(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new Timeout(o.call(setTimeout,r,arguments),clearTimeout)},t.setInterval=function(){return new Timeout(o.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(23),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(1))},function(e,t,i){(function(e,t){!function(e,i){"use strict";if(!e.setImmediate){var r,o=1,n={},s=!1,a=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)}}():a&&"onreadystatechange"in a.createElement("script")?function installReadyStateChangeImplementation(){var e=a.documentElement;r=function(t){var i=a.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,o=0|e.format.height,n=0|t(e.format.width/e.format.chromaWidth),s=0|t(e.format.height/e.format.chromaHeight),a=e.y.bytes,u=e.u.bytes,d=e.v.bytes,h=0|e.y.stride,c=0|e.u.stride,l=0|e.v.stride,f=r<<2,_=0,p=0,m=0,g=0,y=0,b=0,v=0,T=0,w=0,k=0,E=0,P=0,A=0,x=0,O=0,R=0,S=0,F=0;if(1==n&&1==s)for(v=0,T=f,F=0,R=0;R>8,i[v+1]=E-A>>8,i[v+2]=E+x>>8,v+=4,E=298*a[p++]|0,i[v]=E+P>>8,i[v+1]=E-A>>8,i[v+2]=E+x>>8,v+=4,E=298*a[m++]|0,i[T]=E+P>>8,i[T+1]=E-A>>8,i[T+2]=E+x>>8,T+=4,E=298*a[m++]|0,i[T]=E+P>>8,i[T+1]=E-A>>8,i[T+2]=E+x>>8,T+=4;v+=f,T+=f,F++}else for(b=0,R=0;R>s)*c|0,y=F*l|0,O=0;O>n)],P=(409*(k=0|d[y+S])|0)-57088|0,A=(100*w|0)+(208*k|0)-34816|0,x=(516*w|0)-70912|0,E=298*a[_++]|0,i[b]=E+P>>8,i[b+1]=E-A>>8,i[b+2]=E+x>>8,b+=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&&a>=e.length)return void t(null);var u=e._clampToLength(r.writeOffset+r.bytesWritable(o))-r.writeOffset;0===u?t(null):(d=e._backend=new n({url:e.url,offset:e._cache.writeOffset,length:u,cachever:e._cachever,progressive:e.progressive}),h=null,c=function checkOpen(){d!==e._backend?(h(),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))},h=function oncomplete(){d.off("open",c),d.off("error",l)},d.on("open",c),d.on("error",l),d.on("cachever",function(){e._cachever++}),d.load())}var d,h,c,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 o=t._clampToLength(t.offset+e),n=o-t.offset,s=t.bytesAvailable(n);s>=n?i(s):(t.buffering=!0,t._openBackend().then(function(i){return i?i.bufferToOffset(o).then(function(){return t.buffering=!1,t.buffer(e)}):Promise.resolve(s)}).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=s},function(e,t,i){"use strict";e.exports=i(32)},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 o({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,o=r+i,n=r,s=this.readCursor;s&&!s.empty&&!(s.start>=o);s=s.next){var a=Math.min(o,s.end),u=e.subarray(n-r,a-r);s.readBytes(u,n,a),n=a}return this.readOffset=n,this.readCursor=this.readCursor.first(function(e){return e.contains(n)}),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,o=void 0===r?void 0:r,n=e.start,s=void 0===n?0:n,a=e.end,u=void 0===a?s+(i?i.byteLength:o?o.length:0):a,d=e.prev,h=void 0===d?null:d,c=e.next,l=void 0===c?null:c,f=e.eof,_=void 0!==f&&f,p=e.empty,m=void 0===p?!(i||o):p,g=e.timestamp,y=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=s,this.end=u,this.prev=h,this.next=l,this.eof=_,this.empty=m,this.timestamp=y,this.buffer=i,this.string=o,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 n=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"),o(new Error("mystery error streaming"))},t._onAbort=function(e){t.streamReader.abort(),t.streamReader=null,t.stream=null,t.emit("error"),o(e)},t.streamReader.readAsArrayBuffer(i,n)}})})}},{key:"abort",value:function abort(){this.streamReader&&(this.streamReader.abort(),this.streamReader=null),this.stream&&(this.stream.msClose(),this.stream=null),o(MSStreamBackend.prototype.__proto__||Object.getPrototypeOf(MSStreamBackend.prototype),"abort",this).call(this)}}]),MSStreamBackend}();a.supported=function(){try{var e=new XMLHttpRequest;return e.open("GET","/robots.txt"),e.responseType=s,e.responseType===s}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&&(this.bytesRead+=e.length,this.emit("buffer",e))}},{key:"onXHRLoad",value:function onXHRLoad(){this.onXHRProgress(),o(BinaryStringBackend.prototype.__proto__||Object.getPrototypeOf(BinaryStringBackend.prototype),"onXHRLoad",this).call(this)}}]),BinaryStringBackend}();s.supported=function(){try{return!!(new XMLHttpRequest).overrideMimeType}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?o[o.length+t]:e[0]:e[t]},a=0;ai&&(l=Math.SQRT1_2);for(var f=0;f=i&&(_=0);var p=e[_],m=new Float32Array(h);n(p,m,this._resampleLastSampleData?this._resampleLastSampleData[_]:void 0,l),s.push(m)}return this._resampleFractional=c,this._resampleLastSampleData=e,s},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 n=[],s=0;s * @copyright (c) 2013-2016 Brion Vibber * @license MIT */ !function(){var t=window.AudioContext||window.webkitAudioContext,r=i(1),o=i(3);function WebAudioBackend(e,t,i){var o=i.audioContext||WebAudioBackend.initSharedAudioContext();if(this._context=o,this.output=i.output||o.destination,this.rate=o.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=o.currentTime,this._queuedTime=0,this._delayedTime=0,this._dropped=0,this._liveBuffer=this._bufferQueue.createBuffer(this.bufferSize),o.createScriptProcessor)this._node=o.createScriptProcessor(this.bufferSize,0,this.channels);else{if(!o.createJavaScriptNode)throw new Error("Bad version of web audio API?");this._node=o.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,n,s;s="number"==typeof e.playbackTime?e.playbackTime:this._context.currentTime+this.bufferSize/this.rate;var a=this._playbackTimeAtBufferTail;if(a0){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),o=function(e,i,o){var n={};"string"==typeof(o=o||{}).base&&(n.swf=o.base+"/"+t),o.bufferSize&&(this.bufferSize=0|o.bufferSize),this._flashaudio=new DynamicAudio(n),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 s={ready:"sync",log:"sync",starved:"sync",bufferlow:"async"};this._callbackName="AudioFeederFlashBackendCallback"+this._flashaudio.id;window[this._callbackName]=function(e){var t=s[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)};o.prototype.rate=44100,o.prototype.channels=2,o.prototype.bufferSize=4096,o.prototype._bufferThreshold=8192,Object.defineProperty(o.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))}}),o.prototype._volume=1,Object.defineProperty(o.prototype,"volume",{get:function getVolume(){return this._volume},set:function setVolume(e){this._volume=+e,this.waitUntilReady(this._flashVolumeUpdate.bind(this))}}),o.prototype._muted=!1,Object.defineProperty(o.prototype,"muted",{get:function getMuted(){return this._muted},set:function setMuted(e){this._muted=!!e,this.waitUntilReady(this._flashVolumeUpdate.bind(this))}}),o.prototype._paused=!0,o.prototype._flashVolumeUpdate=function(){this._flashaudio&&this._flashaudio.flashElement&&this._flashaudio.flashElement.setVolume&&this._flashaudio.flashElement.setVolume(this.muted?0:this.volume)},o.prototype._resampleFlash=function(e){for(var t=e[0].length,i=new Float32Array(2*t),r=e[0],o=this.channels>1?e[1]:r,n=0;n0&&(this._cachedFlashState=t.write(e),this._cachedFlashTime=Date.now())},o.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="",o=0;o=8*this.bufferSize&&this._flushFlashBuffer()}},o.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=o}()},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,o){i.set(e.subarray(t,t+o),r)}};e.exports=i},function(e,t,i){var r,o;r=i(0),o=i(2),e.exports=function(e){var t=(e=e||{}).sampleRate||44100,i=e.wsizeLog||11,n=e.tempo||1,s=(e.numChannels,Math.pow(2,50/1200)-1),a=1<>1),g=r.float_array(m),y=r.float_array(m),b=r.float_array(m),v=r.float_array(m),T=r.float_array(m),w=r.float_array(m),k=1+(m>>1),E=[0,0],P=[],A=[],x=[],O=[];for(p=0;p<2;p++)P.push(r.float_array(k)),A.push(r.float_array(k)),x.push(r.float_array(k)),O.push(r.float_array(m));var R=r.float_array(k),S=r.float_array(k),F=0,C=0,B=[{in_time:0,out_time:0,tempo:n}],D=0,M=0,I=1,V=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){V=0,E=[0,0],M=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:n})}},getTempo:function(){return n},setTempo:function(e){l=f=d,e>=1?f=Math.round(l/e):l=Math.round(f*e),L=(1/e-1*f/l)*l,I=function(e,t){for(var i=e.length/t|0,r=0,o=0;oi&&(i=e[r]);var o=1e-8*i,n=1,a=1;for(t[0]=1,r=2;ro&&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[n-1]>u?(t[n++]=d,a=r):e[r]>e[a]&&(t[n-1]=d,a=r)}}return n}(p,g),b=A[u],v=x[u];if(0!=e&&0!=y){var T=0;for(G=0;Gl[T]&&T!=c;)++T;var w=T;T>0&&j-l[T-1].1*p[Math.round(j)]){var F=N(t,i,j),C=f[w]+_[w]+U(F,j,f[w],l[w],n)-F;b[G]=F,v[G]=C,R[G]=Math.cos(C),S[G]=Math.sin(C)}else b[G]=N(t,i,j),v[G]=0,R[G]=1,S[G]=0}g[y]=2*a;var B=g[w=0],D=g[w+1],M=R[w],I=S[w];for(m=1;m=B&&m-B>D-m&&(B=g[++w],D=g[w+1],M=R[w],I=S[w]);var V=t[m]*M-i[m]*I,L=t[m]*I+i[m]*M;t[m]=V,i[m]=L}}else for(var G=0;Go&&(o=Math.abs(2*u.m_re[t]));for(t=0;to&&(o=Math.abs(u.m_re[t+f+e]+u.m_im[t]));for(t=a-f;to&&(o=Math.abs(2*u.m_im[t]));var s=1/Math.floor(1*a/(2*f));for(n*o>s&&(n=s/o),t=0;t1){o=r.float_array(e[0].length);for(var s=1/e.length,u=0;u0){var _=j+G+i,p=[];for(u=0;ub&&(b=j);var v=r.float_array(b);r.blit(c,0,v,0,j);for(var T=0,w=j,k=0,E=0;;){var P=a+l-G;if(T+P>i){r.blit(o,T,h,G,i-T),G+=i-T,T=i;break}P<=0?G-=2*l:(r.blit(o,T,h,G,P),T+=P,G=a-l),E=H(),F+=2*l/t,C+=E/t,(k=w+E-b)<0&&(k=0),r.blit(c,0,v,w,E-k),w+=E}r.blit(c,E-k,c,0,k),j=k;var A=[];for(u=0;u>=1;i.m_revTgt[o]=s}i.twiddleRe=r.float_array(i.m_logN),i.twiddleIm=r.float_array(i.m_logN);for(var u=1,d=0;d>1,a=o>>1,u=o;if(e)for(var d=1/o,h=0;h>=1,a>>=1,u>>=1}for(var P,A,x=i.m_revTgt,O=0;OO&&(A=t[P=x[O]],t[P]=t[O],t[O]=A,A=r[P],r[P]=r[O],r[O]=A)};var c=t>>1;return i.unpack=function(e,r,o,n){e[0]=i.m_re[0],o[0]=i.m_im[0],r[0]=n[0]=0,e[c]=i.m_re[c],o[c]=i.m_im[c],r[c]=n[c]=0;for(var s=1;s * @copyright 2015-2019 Brion Vibber * @license MIT-style */var n=class OGVWrapperCodec{constructor(e){return this.options=e||{},this.demuxer=null,this.videoDecoder=null,this.audioDecoder=null,this.flushIter=0,this.loadedMetadata=!1,this.processing=!1,Object.defineProperties(this,{duration:{get:function get(){return this.loadedMetadata?this.demuxer.duration:NaN}},hasAudio:{get:function get(){return this.loadedMetadata&&!!this.audioDecoder}},audioReady:{get:function get(){return this.hasAudio&&this.demuxer.audioReady}},audioTimestamp:{get:function get(){return this.demuxer.audioTimestamp}},audioFormat:{get:function get(){return this.hasAudio?this.audioDecoder.audioFormat:null}},audioBuffer:{get:function get(){return this.hasAudio?this.audioDecoder.audioBuffer:null}},hasVideo:{get:function get(){return this.loadedMetadata&&!!this.videoDecoder}},frameReady:{get:function get(){return this.hasVideo&&this.demuxer.frameReady}},frameTimestamp:{get:function get(){return this.demuxer.frameTimestamp}},keyframeTimestamp:{get:function get(){return this.demuxer.keyframeTimestamp}},nextKeyframeTimestamp:{get:function get(){return this.demuxer.nextKeyframeTimestamp}},videoFormat:{get:function get(){return this.hasVideo?this.videoDecoder.videoFormat:null}},frameBuffer:{get:function get(){return this.hasVideo?this.videoDecoder.frameBuffer:null}},seekable:{get:function get(){return this.demuxer.seekable}},demuxerCpuTime:{get:function get(){return this.demuxer?this.demuxer.cpuTime:0}},audioCpuTime:{get:function get(){return this.audioDecoder?this.audioDecoder.cpuTime:0}},videoCpuTime:{get:function get(){return this.videoDecoder?this.videoDecoder.cpuTime:0}}}),this.loadedDemuxerMetadata=!1,this.loadedAudioMetadata=!1,this.loadedVideoMetadata=!1,this.loadedAllMetadata=!1,this.onseek=null,this.videoBytes=0,this.audioBytes=0,this}flushSafe(e){let t=this.flushIter;return i=>{this.flushIter<=t&&e(i)}}init(e){let t;this.processing=!0,t="video/webm"===this.options.type||"audio/webm"===this.options.type?this.options.wasm?"OGVDemuxerWebMW":"OGVDemuxerWebM":this.options.wasm?"OGVDemuxerOggW":"OGVDemuxerOgg",o.default.loadClass(t,t=>{t().then(t=>{this.demuxer=t,t.onseek=(e=>{this.onseek&&this.onseek(e)}),t.init(()=>{this.processing=!1,e()})})})}close(){this.demuxer&&(this.demuxer.close(),this.demuxer=null),this.videoDecoder&&(this.videoDecoder.close(),this.videoDecoder=null),this.audioDecoder&&(this.audioDecoder.close(),this.audioDecoder=null)}receiveInput(e,t){this.demuxer.receiveInput(e,t)}process(e){if(this.processing)throw new Error("reentrancy fail on OGVWrapperCodec.process");this.processing=!0;let t=t=>{this.processing=!1,e(t)},i=()=>{this.demuxer.process(t)};this.demuxer.loadedMetadata&&!this.loadedDemuxerMetadata?this.loadAudioCodec(()=>{this.loadVideoCodec(()=>{this.loadedDemuxerMetadata=!0,this.loadedAudioMetadata=!this.audioDecoder,this.loadedVideoMetadata=!this.videoDecoder,this.loadedAllMetadata=this.loadedAudioMetadata&&this.loadedVideoMetadata,t(!0)})}):this.loadedDemuxerMetadata&&!this.loadedAudioMetadata?this.audioDecoder.loadedMetadata?(this.loadedAudioMetadata=!0,this.loadedAllMetadata=this.loadedAudioMetadata&&this.loadedVideoMetadata,t(!0)):this.demuxer.audioReady?this.demuxer.dequeueAudioPacket((e,i)=>{this.audioBytes+=e.byteLength,this.audioDecoder.processHeader(e,e=>{t(!0)})}):i():this.loadedAudioMetadata&&!this.loadedVideoMetadata?this.videoDecoder.loadedMetadata?(this.loadedVideoMetadata=!0,this.loadedAllMetadata=this.loadedAudioMetadata&&this.loadedVideoMetadata,t(!0)):this.demuxer.frameReady?(this.processing=!0,this.demuxer.dequeueVideoPacket(e=>{this.videoBytes+=e.byteLength,this.videoDecoder.processHeader(e,()=>{t(!0)})})):i():this.loadedVideoMetadata&&!this.loadedMetadata&&this.loadedAllMetadata?(this.loadedMetadata=!0,t(!0)):!this.loadedMetadata||this.hasAudio&&!this.demuxer.audioReady||this.hasVideo&&!this.demuxer.frameReady?i():t(!0)}decodeFrame(e){let t=this.flushSafe(e),i=this.frameTimestamp,r=this.keyframeTimestamp;this.demuxer.dequeueVideoPacket(e=>{this.videoBytes+=e.byteLength,this.videoDecoder.processFrame(e,e=>{let o=this.videoDecoder.frameBuffer;o&&(o.timestamp=i,o.keyframeTimestamp=r),t(e)})})}decodeAudio(e){let t=this.flushSafe(e);this.demuxer.dequeueAudioPacket((e,i)=>{this.audioBytes+=e.byteLength,this.audioDecoder.processAudio(e,e=>{if(i){let e=this.audioDecoder.audioBuffer,t=[];for(let r of e){let e=Math.round(i*this.audioFormat.rate/1e9);e>0?t.push(r.subarray(0,r.length-Math.min(e,r.length))):t.push(r.subarray(Math.min(Math.abs(e),r.length),r.length))}this.audioDecoder.audioBuffer=t}return t(e)})})}discardFrame(e){this.demuxer.dequeueVideoPacket(t=>{this.videoBytes+=t.byteLength,e()})}discardAudio(e){this.demuxer.dequeueAudioPacket((t,i)=>{this.audioBytes+=t.byteLength,e()})}flush(e){this.flushIter++,this.demuxer.flush(e)}sync(){this.videoDecoder&&this.videoDecoder.sync()}getKeypointOffset(e,t){this.demuxer.getKeypointOffset(e,t)}seekToKeypoint(e,t){this.demuxer.seekToKeypoint(e,this.flushSafe(t))}loadAudioCodec(e){if(this.demuxer.audioCodec){let t=!!this.options.wasm,i={vorbis:t?"OGVDecoderAudioVorbisW":"OGVDecoderAudioVorbis",opus:t?"OGVDecoderAudioOpusW":"OGVDecoderAudioOpus"}[this.demuxer.audioCodec];this.processing=!0,o.default.loadClass(i,t=>{let i={};this.demuxer.audioFormat&&(i.audioFormat=this.demuxer.audioFormat),t(i).then(t=>{this.audioDecoder=t,t.init(()=>{this.loadedAudioMetadata=t.loadedMetadata,this.processing=!1,e()})})},{worker:this.options.worker})}else e()}loadVideoCodec(e){if(this.demuxer.videoCodec){let t=!!this.options.wasm,i=!!this.options.threading,r={theora:t?"OGVDecoderVideoTheoraW":"OGVDecoderVideoTheora",vp8:t?i?"OGVDecoderVideoVP8MTW":"OGVDecoderVideoVP8W":"OGVDecoderVideoVP8",vp9:t?i?"OGVDecoderVideoVP9MTW":"OGVDecoderVideoVP9W":"OGVDecoderVideoVP9",av1:t?i?"OGVDecoderVideoAV1MTW":"OGVDecoderVideoAV1W":"OGVDecoderVideoAV1"}[this.demuxer.videoCodec];this.processing=!0,o.default.loadClass(r,t=>{let r={};this.demuxer.videoFormat&&(r.videoFormat=this.demuxer.videoFormat),this.options.memoryLimit&&(r.memoryLimit=this.options.memoryLimit),i&&delete window.ENVIRONMENT_IS_PTHREAD,t(r).then(t=>{this.videoDecoder=t,t.init(()=>{this.loadedVideoMetadata=t.loadedMetadata,this.processing=!1,e()})})},{worker:this.options.worker&&!this.options.threading})}else e()}};t.default=n}])});