@playkit-js/playkit-js
Version:
[](https://github.com/kaltura/playkit-js/actions/workflows/run_canary.yaml) [{"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("playkit",[],t):"object"==typeof exports?exports.playkit=t():(e.playkit=e.playkit||{},e.playkit.core=t())}(self,(function(){return function(){var e={9063:function(e,t,n){"use strict";n.d(t,{S:function(){return i}});var i={PRE:"preroll",MID:"midroll",POST:"postroll",OVERLAY:"overlay"}},4611:function(e,t,n){"use strict";n.d(t,{J:function(){return i}});var i={AD_CAN_SKIP:"adcanskip",AD_MANIFEST_LOADED:"admanifestloaded",AD_LOADED:"adloaded",AD_STARTED:"adstarted",AD_RESUMED:"adresumed",AD_PAUSED:"adpaused",AD_CLICKED:"adclicked",AD_SKIPPED:"adskipped",AD_COMPLETED:"adcompleted",AD_ERROR:"aderror",ADS_COMPLETED:"adscompleted",ALL_ADS_COMPLETED:"alladscompleted",AD_BREAK_START:"adbreakstart",AD_BREAK_END:"adbreakend",AD_FIRST_QUARTILE:"adfirstquartile",AD_MIDPOINT:"admidpoint",AD_THIRD_QUARTILE:"adthirdquartile",USER_CLOSED_AD:"userclosedad",AD_VOLUME_CHANGED:"advolumechanged",AD_MUTED:"admuted",AD_PROGRESS:"adprogress",AD_BUFFERING:"adbuffering",AD_WATERFALLING:"adwaterfalling",AD_WATERFALLING_FAILED:"adwaterfallingfailed",AD_AUTOPLAY_FAILED:"adautoplayfailed"}},8151:function(e,t,n){"use strict";n.d(t,{J:function(){return i}});var i={VAST:"vast",VMAP:"vmap"}},7237:function(e,t,n){"use strict";n.d(t,{J:function(){return i}});var i={WIDEVINE:"com.widevine.alpha",PLAYREADY:"com.microsoft.playready",FAIRPLAY:"com.apple.fairplay"}},1057:function(e,t,n){"use strict";n.d(t,{_:function(){return a}});var i=n(5671),r=n(3144),a=function(){function e(t){(0,i.Z)(this,e),this._name=t.getName(),this._getEngineDecorator=t.getEngineDecorator.bind(t)}return(0,r.Z)(e,[{key:"getEngineDecorator",value:function(e,t){return this._getEngineDecorator(e,t)}},{key:"getName",value:function(){return this._name}}]),e}()},4779:function(e,t,n){"use strict";n.d(t,{zv:function(){return w},Hl:function(){return C},co:function(){return D}});var i,r=n(5671),a=n(3144),o=n(4942),s=n(4358),u=n(7326),c=n(9340),l=n(2963),d=n(1120),h=n(8171),f=n(8987),A=n(4270),_=n(2114),v=n(2588),g=n(6462),p=n(375),y=n(4821),E=JSON.parse('{"$":"data:video/mp4;base64,AAAAHGZ0eXBpc29tAAACAGlzb21pc28ybXA0MQAAAAhmcmVlAAAC721kYXQhEAUgpBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3pwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcCEQBSCkG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADengAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAsJtb292AAAAbG12aGQAAAAAAAAAAAAAAAAAAAPoAAAALwABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAB7HRyYWsAAABcdGtoZAAAAAMAAAAAAAAAAAAAAAIAAAAAAAAALwAAAAAAAAAAAAAAAQEAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAACRlZHRzAAAAHGVsc3QAAAAAAAAAAQAAAC8AAAAAAAEAAAAAAWRtZGlhAAAAIG1kaGQAAAAAAAAAAAAAAAAAAKxEAAAIAFXEAAAAAAAtaGRscgAAAAAAAAAAc291bgAAAAAAAAAAAAAAAFNvdW5kSGFuZGxlcgAAAAEPbWluZgAAABBzbWhkAAAAAAAAAAAAAAAkZGluZgAAABxkcmVmAAAAAAAAAAEAAAAMdXJsIAAAAAEAAADTc3RibAAAAGdzdHNkAAAAAAAAAAEAAABXbXA0YQAAAAAAAAABAAAAAAAAAAAAAgAQAAAAAKxEAAAAAAAzZXNkcwAAAAADgICAIgACAASAgIAUQBUAAAAAAfQAAAHz+QWAgIACEhAGgICAAQIAAAAYc3R0cwAAAAAAAAABAAAAAgAABAAAAAAcc3RzYwAAAAAAAAABAAAAAQAAAAIAAAABAAAAHHN0c3oAAAAAAAAAAAAAAAIAAAFzAAABdAAAABRzdGNvAAAAAAAAAAEAAAAsAAAAYnVkdGEAAABabWV0YQAAAAAAAAAhaGRscgAAAAAAAAAAbWRpcmFwcGwAAAAAAAAAAAAAAAAtaWxzdAAAACWpdG9vAAAAHWRhdGEAAAABAAAAAExhdmY1Ni40MC4xMDE="}'),m=(i=function(){function e(){(0,r.Z)(this,e)}return(0,a.Z)(e,null,[{key:"runCapability",value:function(){e._capabilities.autoplay||"boolean"==typeof e._capabilities.autoplay&&"boolean"==typeof e._capabilities.mutedAutoPlay?e._playPromiseResult=Promise.resolve(e._capabilities):(e._vid||(e._vid=y.is.createElement("video"),e._vid.src=E.$,e._vid.setAttribute("playsinline","")),e._playPromiseResult=new Promise((function(t){e._setMuted(!1),e._getPlayPromise().then((function(){return t({autoplay:!0,mutedAutoPlay:!0})})).catch((function(){e._setMuted(!0),e._getPlayPromise().then((function(){return t({autoplay:!1,mutedAutoPlay:!0})})).catch((function(){return t({autoplay:!1,mutedAutoPlay:!1})}))}))})))}},{key:"getCapability",value:function(){return e._playPromiseResult.then((function(t){var n;return t.autoplay?n=Promise.resolve(t):(e.runCapability(),n=e._playPromiseResult),n.then((function(t){return y.c7.mergeDeep(t,e._capabilities)}))}))}},{key:"setCapabilities",value:function(t){e._logger.debug("Set player capabilities",t);var n=t.autoplay,i=t.mutedAutoPlay;"boolean"==typeof n&&(e._capabilities.autoplay=n),"boolean"==typeof i&&(e._capabilities.mutedAutoPlay=i)}},{key:"_getPlayPromise",value:function(){return e._vid.play()||e._forcePromiseReturnValue()}},{key:"_setMuted",value:function(t){t?(e._vid.muted=!0,e._vid.setAttribute("muted","")):(e._vid.muted=!1,e._vid.removeAttribute("muted"))}},{key:"_forcePromiseReturnValue",value:function(){return new Promise((function(t,n){e._vid.addEventListener(_.Rk.ERROR,(function(){n()}));var i=setTimeout((function(){e._logger.debug("Timeout ".concat(500," ms has been reached")),n()}),500);!0===e._vid.paused?(clearTimeout(i),n()):(clearTimeout(i),t())}))}}]),e}(),(0,o.Z)(i,"_logger",(0,s.ZP)("Html5AutoPlayCapability")),(0,o.Z)(i,"_capabilities",{}),i),T=n(962),k=n(9439);var b=function(e){(0,c.Z)(s,e);var t,n,i=(t=s,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,i=(0,d.Z)(t);if(n){var r=(0,d.Z)(this).constructor;e=Reflect.construct(i,arguments,r)}else e=i.apply(this,arguments);return(0,l.Z)(this,e)});function s(e,t,n){var a;return(0,r.Z)(this,s),a=i.call(this),(0,o.Z)((0,u.Z)(a),"_droppedFramesInterval",null),(0,o.Z)((0,u.Z)(a),"_lastDroppedFrames",0),(0,o.Z)((0,u.Z)(a),"_lastDecodedFrames",0),(0,o.Z)((0,u.Z)(a),"_lastTime",0),(0,o.Z)((0,u.Z)(a),"_currentBitrate",0),a._eventManager=new A.Q,a._mediaSourceAdapter=e,a._config=t,a._videoElement=n,a._mediaSourceAdapter.capabilities.fpsControl?(a._eventManager.listen(a._mediaSourceAdapter,_.nQ.FPS_DROP,(function(e){return a._triggerFPSDrop(e.payload.data)})),(0,l.Z)(a)):(-1===a._getDroppedAndDecodedFrames()[0]?s._logger.debug("Dropped frame watcher is not supported"):a._config.capLevelOnFPSDrop?(s._logger.debug("Initialized capLevelOnFPSDrop = true"),a._init()):s._logger.debug("Not Initialized"),a)}return(0,a.Z)(s,[{key:"_init",value:function(){var e=this;this._eventManager.listen(this._mediaSourceAdapter,_.nQ.VIDEO_TRACK_CHANGED,(function(t){return e._currentBitrate=t.payload.selectedVideoTrack.bandwidth})),this._droppedFramesInterval=setInterval((function(){return e._checkFPS()}),this._config.fpsDroppedFramesInterval)}},{key:"_triggerFPSDrop",value:function(e){this.dispatchEvent(new f.v(_.nQ.FPS_DROP,e))}},{key:"_getDroppedAndDecodedFrames",value:function(){if("function"==typeof this._videoElement.getVideoPlaybackQuality){var e=this._videoElement.getVideoPlaybackQuality();return[e.droppedVideoFrames,e.totalVideoFrames]}return"number"==typeof this._videoElement.webkitDroppedFrameCount&&"number"==typeof this._videoElement.webkitDecodedFrameCount?[this._videoElement.webkitDroppedFrameCount,this._videoElement.webkitDecodedFrameCount]:[-1,-1]}},{key:"_checkFPS",value:function(){var e=this._getDroppedAndDecodedFrames(),t=(0,k.Z)(e,2),n=t[0],i=t[1];try{var r=performance.now();if(i){if(this._lastTime){var a=r-this._lastTime,o=n-this._lastDroppedFrames,u=i-this._lastDecodedFrames,c=1e3*o/a;c>0&&(s._logger.debug("checkFPS : droppedFPS/decodedFPS:"+c/(1e3*u/a)),o>this._config.fpsDroppedMonitoringThreshold*u&&(this._mediaSourceAdapter.setMaxBitrate(this._currentBitrate-1),this._triggerFPSDrop({currentDropped:o,currentDecoded:u,totalDroppedFrames:c})))}this._lastTime=r,this._lastDroppedFrames=n,this._lastDecodedFrames=i}}catch(e){s._logger.error("Error occur while trying to check dropFrames: ",e)}}},{key:"destroy",value:function(){this._droppedFramesInterval&&clearInterval(this._droppedFramesInterval),this._droppedFramesInterval=null,this._eventManager.destroy()}}]),s}(h.H);(0,o.Z)(b,"_logger",(0,s.ZP)("droppedFramesWatcher"));var S=n(2069);var R=function(e){(0,c.Z)(s,e);var t,n,i=(t=s,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,i=(0,d.Z)(t);if(n){var r=(0,d.Z)(this).constructor;e=Reflect.construct(i,arguments,r)}else e=i.apply(this,arguments);return(0,l.Z)(this,e)});function s(e,t,n){var a;return(0,r.Z)(this,s),a=i.call(this),(0,o.Z)((0,u.Z)(a),"_reset",!1),(0,o.Z)((0,u.Z)(a),"_cachedUrls",[]),a._eventManager=new A.Q,a._canLoadMediaSourceAdapterPromise=Promise.resolve(),a._createVideoElement(n),a._init(e,t),a}return(0,a.Z)(s,[{key:"restore",value:function(e,t){this.reset(),this._init(e,t)}},{key:"reset",value:function(){var e=this;this._reset||(this._reset=!0,this._eventManager.removeAll(),this._droppedFramesWatcher&&(this._droppedFramesWatcher.destroy(),this._droppedFramesWatcher=void 0),this._canLoadMediaSourceAdapterPromise=new Promise((function(t,n){var i=e._mediaSourceAdapter?e._mediaSourceAdapter.destroy():Promise.resolve();e._el&&e._el.src?i.then((function(){y.is.setAttribute(e._el,"src",""),y.is.removeAttribute(e._el,"src"),t()}),n):i.then(t,n)})),this._mediaSourceAdapter=null)}},{key:"destroy",value:function(){this.detach(),this._el&&(this.pause(),y.is.removeAttribute(this._el,"src"),y.is.removeChild(this._el.parentNode,this._el)),this._eventManager.destroy(),v.Z.destroy(),this._droppedFramesWatcher&&(this._droppedFramesWatcher.destroy(),this._droppedFramesWatcher=void 0),this._mediaSourceAdapter&&(this._mediaSourceAdapter.setCachedUrls([]),this._mediaSourceAdapter.destroy(),this._mediaSourceAdapter=null)}},{key:"mediaSourceAdapter",get:function(){return this._mediaSourceAdapter}},{key:"id",get:function(){return s.id}},{key:"attachMediaSource",value:function(){this._mediaSourceAdapter&&this._mediaSourceAdapter.attachMediaSource()}},{key:"detachMediaSource",value:function(){this._mediaSourceAdapter&&this._mediaSourceAdapter.detachMediaSource()}},{key:"attach",value:function(){var e=this;Object.keys(_.Rk).forEach((function(t){[_.Rk.ERROR,_.Rk.WAITING].includes(_.Rk[t])||e._eventManager.listen(e._el,_.Rk[t],(function(){return e.dispatchEvent(new f.v(_.Rk[t]))}))})),this._eventManager.listen(this._el,_.Rk.ERROR,(function(){return e._handleVideoError()})),this._eventManager.listen(this._el,_.Rk.WAITING,(function(){return e._handleWaiting()})),this._handleMetadataTrackEvents(),this._eventManager.listen(this._el.textTracks,"addtrack",(function(t){g.PZ.isNativeTextTrack(t.track)&&e.dispatchEvent(new f.v(_.nQ.TEXT_TRACK_ADDED,{track:t.track}))}));var t=this._mediaSourceAdapter;t&&(this._eventManager.listen(t,_.nQ.VIDEO_TRACK_CHANGED,(function(t){return e.dispatchEvent(t)})),this._eventManager.listen(t,_.nQ.AUDIO_TRACK_CHANGED,(function(t){return e.dispatchEvent(t)})),this._eventManager.listen(t,_.nQ.TEXT_TRACK_CHANGED,(function(t){return e.dispatchEvent(t)})),this._eventManager.listen(t,_.nQ.IMAGE_TRACK_CHANGED,(function(t){return e.dispatchEvent(t)})),this._eventManager.listen(t,_.nQ.ABR_MODE_CHANGED,(function(t){return e.dispatchEvent(t)})),this._eventManager.listen(t,_.nQ.TEXT_CUE_CHANGED,(function(t){return e.dispatchEvent(t)})),this._eventManager.listen(t,_.nQ.TRACKS_CHANGED,(function(t){return e.dispatchEvent(t)})),this._eventManager.listen(t,_.nQ.FRAG_LOADED,(function(t){return e.dispatchEvent(t)})),this._eventManager.listen(t,_.nQ.DRM_LICENSE_LOADED,(function(t){return e.dispatchEvent(t)})),this._eventManager.listen(t,_.nQ.MANIFEST_LOADED,(function(t){return e.dispatchEvent(t)})),this._eventManager.listen(t,_.Rk.ERROR,(function(t){return e.dispatchEvent(t)})),this._eventManager.listen(t,_.Rk.TIME_UPDATE,(function(t){return e.dispatchEvent(t)})),this._eventManager.listen(t,_.Rk.PLAYING,(function(t){return e.dispatchEvent(t)})),this._eventManager.listen(t,_.Rk.WAITING,(function(t){return e.dispatchEvent(t)})),this._eventManager.listen(t,_.nQ.MEDIA_RECOVERED,(function(t){return e.dispatchEvent(t)})),this._eventManager.listen(t,_.nQ.TIMED_METADATA_ADDED,(function(t){return e.dispatchEvent(t)})),this._eventManager.listen(t,"hlsFragParsingMetadata",(function(t){return e.dispatchEvent(t)})),this._droppedFramesWatcher&&this._eventManager.listen(this._droppedFramesWatcher,_.nQ.FPS_DROP,(function(t){return e.dispatchEvent(t)})))}},{key:"detach",value:function(){var e=this;Object.keys(_.Rk).forEach((function(t){e._eventManager.unlisten(e._el,_.Rk[t])})),this._mediaSourceAdapter&&(this._eventManager.unlisten(this._mediaSourceAdapter,_.nQ.VIDEO_TRACK_CHANGED),this._eventManager.unlisten(this._mediaSourceAdapter,_.nQ.AUDIO_TRACK_CHANGED),this._eventManager.unlisten(this._mediaSourceAdapter,_.nQ.TEXT_TRACK_CHANGED),this._eventManager.unlisten(this._mediaSourceAdapter,_.nQ.TEXT_CUE_CHANGED))}},{key:"getVideoElement",value:function(){return this._el}},{key:"selectVideoTrack",value:function(e){this._mediaSourceAdapter&&this._mediaSourceAdapter.selectVideoTrack(e)}},{key:"selectAudioTrack",value:function(e){this._mediaSourceAdapter&&this._mediaSourceAdapter.selectAudioTrack(e)}},{key:"selectTextTrack",value:function(e){this._removeCueChangeListeners(),this._mediaSourceAdapter&&this._mediaSourceAdapter.selectTextTrack(e),this.resetAllCues(),this._addCueChangeListener()}},{key:"selectImageTrack",value:function(e){this._mediaSourceAdapter&&this._mediaSourceAdapter.selectImageTrack(e)}},{key:"hideTextTrack",value:function(){this._mediaSourceAdapter&&this._mediaSourceAdapter.hideTextTrack(),this._removeCueChangeListeners()}},{key:"enableAdaptiveBitrate",value:function(){this._mediaSourceAdapter&&this._mediaSourceAdapter.enableAdaptiveBitrate()}},{key:"isAdaptiveBitrateEnabled",value:function(){return!!this._mediaSourceAdapter&&this._mediaSourceAdapter.isAdaptiveBitrateEnabled()}},{key:"applyABRRestriction",value:function(e){if(this._mediaSourceAdapter)return this._mediaSourceAdapter.applyABRRestriction(e)}},{key:"seekToLiveEdge",value:function(){this._mediaSourceAdapter&&this._mediaSourceAdapter.seekToLiveEdge()}},{key:"isOnLiveEdge",value:function(){return!!this._mediaSourceAdapter&&this._mediaSourceAdapter.isOnLiveEdge()}},{key:"getStartTimeOfDvrWindow",value:function(){return this._mediaSourceAdapter?this._mediaSourceAdapter.getStartTimeOfDvrWindow():0}},{key:"isLive",value:function(){return!!this._mediaSourceAdapter&&this._mediaSourceAdapter.isLive()}},{key:"resetIfPlaybackEnded",value:function(){(Math.round(1e3*this._el.currentTime)>=Math.round(1e3*this._el.duration)||this._el.ended)&&(this._el.currentTime=0)}},{key:"play",value:function(){var e=this;S.Z.isSafari&&this.isInPictureInPicture&&!this.isLive()&&this.resetIfPlaybackEnded();var t=this._el.play();return t&&t.catch((function(t){return e.dispatchEvent(new f.v(_.nQ.PLAY_FAILED,{error:t}))})),t}},{key:"pause",value:function(){return this._el.pause()}},{key:"load",value:function(e){var t=this;return this._el.load(),this._canLoadMediaSourceAdapterPromise.then((function(){return t._mediaSourceAdapter?t._mediaSourceAdapter.load(e):Promise.resolve({})})).catch((function(e){return t.dispatchEvent(new f.v(_.Rk.ERROR,e)),Promise.reject(e)}))}},{key:"enterPictureInPicture",value:function(){var e=this;try{document.pictureInPictureEnabled&&"function"==typeof this._el.requestPictureInPicture&&!this._el.disablePictureInPicture?this._el.requestPictureInPicture().catch((function(t){e.dispatchEvent(new f.v(_.Rk.ERROR,new T.Z(T.Z.Severity.RECOVERABLE,T.Z.Category.PLAYER,T.Z.Code.ENTER_PICTURE_IN_PICTURE_FAILED,t)))})):"function"==typeof this._el.webkitSetPresentationMode&&(this._el.webkitSetPresentationMode("picture-in-picture"),setTimeout((function(){return e.dispatchEvent(new f.v(_.Rk.ENTER_PICTURE_IN_PICTURE))}),0))}catch(e){this.dispatchEvent(new f.v(_.Rk.ERROR,new T.Z(T.Z.Severity.RECOVERABLE,T.Z.Category.PLAYER,T.Z.Code.ENTER_PICTURE_IN_PICTURE_FAILED,e)))}}},{key:"exitPictureInPicture",value:function(){var e=this;try{document.pictureInPictureEnabled&&"function"==typeof document.exitPictureInPicture&&this._el===document.pictureInPictureElement?document.exitPictureInPicture().catch((function(t){e.dispatchEvent(new f.v(_.Rk.ERROR,new T.Z(T.Z.Severity.RECOVERABLE,T.Z.Category.PLAYER,T.Z.Code.EXIT_PICTURE_IN_PICTURE_FAILED,t)))})):"function"==typeof this._el.webkitSetPresentationMode&&this._el.webkitSetPresentationMode("inline")}catch(e){this.dispatchEvent(new f.v(_.Rk.ERROR,new T.Z(T.Z.Severity.RECOVERABLE,T.Z.Category.PLAYER,T.Z.Code.EXIT_PICTURE_IN_PICTURE_FAILED,e)))}}},{key:"isPictureInPictureSupported",value:function(){return"function"==typeof this._el.webkitSupportsPresentationMode?this._el.webkitSupportsPresentationMode("picture-in-picture"):!!document.pictureInPictureEnabled}},{key:"getThumbnail",value:function(e){return this._mediaSourceAdapter?this._mediaSourceAdapter.getThumbnail(e):null}},{key:"src",get:function(){return this._mediaSourceAdapter?this._mediaSourceAdapter.src:""},set:function(e){this._mediaSourceAdapter&&(this._mediaSourceAdapter.src=e)}},{key:"currentTime",get:function(){return this._el?this._el.currentTime:0},set:function(e){this._el&&(this._el.currentTime=e)}},{key:"duration",get:function(){return this._el.duration}},{key:"liveDuration",get:function(){return this._mediaSourceAdapter?this._mediaSourceAdapter.liveDuration:-1}},{key:"volume",get:function(){return this._el.volume},set:function(e){this._el.volume=e}},{key:"paused",get:function(){return this._el.paused}},{key:"seeking",get:function(){return this._el.seeking}},{key:"seekable",get:function(){return this._el.seekable}},{key:"played",get:function(){return this._el.played}},{key:"buffered",get:function(){return this._el.buffered}},{key:"muted",get:function(){return this._el.muted},set:function(e){this._el.muted=e}},{key:"defaultMuted",get:function(){return this._el.defaultMuted}},{key:"poster",get:function(){return this._el.poster},set:function(e){this._el.poster=e}},{key:"preload",get:function(){return this._el.preload},set:function(e){this._el.preload=e}},{key:"autoplay",get:function(){return this._el.autoplay},set:function(e){this._el.autoplay=e}},{key:"loop",get:function(){return this._el.loop},set:function(e){this._el.loop=e}},{key:"controls",get:function(){return this._el.controls},set:function(e){this._el.controls=e}},{key:"playbackRate",get:function(){return this._el.playbackRate},set:function(e){this._el.playbackRate=e}},{key:"defaultPlaybackRate",get:function(){return this._el.defaultPlaybackRate},set:function(e){this._el.defaultPlaybackRate=e}},{key:"ended",get:function(){return this._el.ended}},{key:"error",get:function(){return this._el.error}},{key:"networkState",get:function(){return this._el.networkState}},{key:"readyState",get:function(){return this._el.readyState}},{key:"videoHeight",get:function(){return this._el.videoHeight}},{key:"videoWidth",get:function(){return this._el.videoWidth}},{key:"playsinline",get:function(){return""===this._el.getAttribute("playsinline")},set:function(e){e?this._el.setAttribute("playsinline",""):this._el.removeAttribute("playsinline")}},{key:"crossOrigin",get:function(){return this._el.getAttribute("crossorigin")},set:function(e){"string"==typeof e?this._el.setAttribute("crossorigin",e):this._el.removeAttribute("crossorigin")}},{key:"playbackRates",get:function(){return s.PLAYBACK_RATES}},{key:"isInPictureInPicture",get:function(){return!!document.pictureInPictureElement&&null!==document.pictureInPictureElement&&this._el===document.pictureInPictureElement||!!this._el.webkitPresentationMode&&"picture-in-picture"===this._el.webkitPresentationMode}},{key:"_init",value:function(e,t){this._config=t,this._reset=!1,this._loadMediaSourceAdapter(e),this.attach()}},{key:"_createVideoElement",value:function(e){this._el=s.videoElementStore[e]||y.is.createElement("video"),this._el.id=y.RO.uniqueId(5),this._el.controls=!1}},{key:"_loadMediaSourceAdapter",value:function(e){this._mediaSourceAdapter=v.Z.getMediaSourceAdapter(this.getVideoElement(),e,this._config),this._mediaSourceAdapter&&(this._droppedFramesWatcher=new b(this._mediaSourceAdapter,this._config.abr,this._el),this._cachedUrls.length&&(this._mediaSourceAdapter.setCachedUrls(this._cachedUrls),this._cachedUrls=[]))}},{key:"_addCueChangeListener",value:function(){var e=this,t=Array.from(this._el.textTracks).find((function(e){return g.PZ.isNativeTextTrack(e)&&e.mode!==g.PZ.MODE.DISABLED}));t&&this._eventManager.listen(t,"cuechange",(function(t){return e._onCueChange(t)}))}},{key:"_removeCueChangeListeners",value:function(){var e=this;Array.from(this._el.textTracks).filter((function(e){return!g.PZ.isMetaDataTrack(e)})).forEach((function(t){e._eventManager.unlisten(t,"cuechange")}))}},{key:"_onCueChange",value:function(e){var t=e.currentTarget.activeCues,n=(0,g.z6)(t);this.dispatchEvent(new f.v(_.nQ.TEXT_CUE_CHANGED,{cues:n}))}},{key:"resetAllCues",value:function(){var e=Array.from(this._el.textTracks).find((function(e){return g.PZ.isNativeTextTrack(e)&&e.mode!==g.PZ.MODE.DISABLED}));if(e)for(var t=0;t<e.cues.length;t++)e.cues[t].hasBeenReset=!0}},{key:"_handleVideoError",value:function(){if(this._el.error){var e=this._el.error.code;if(e!==MediaError.MEDIA_ERR_ABORTED){var t=this._getMsExtendedError(),n=this._el.error.message;if(this._mediaSourceAdapter&&!this._mediaSourceAdapter.handleMediaError(this._el.error)){var i=new T.Z(T.Z.Severity.CRITICAL,T.Z.Category.MEDIA,T.Z.Code.VIDEO_ERROR,{code:e,extended:t,message:n});this.dispatchEvent(new f.v(_.Rk.ERROR,i))}}}}},{key:"_handleWaiting",value:function(){var e=this,t=!1;this._eventManager.listenOnce(this._el,_.Rk.PLAYING,(function(){return t=!0})),setTimeout((function(){t||e.dispatchEvent(new f.v(_.Rk.WAITING))}),200)}},{key:"_getMsExtendedError",value:function(){var e=this._el.error.msExtendedCode;return e&&(e<0&&(e+=Math.pow(2,32)),e=e.toString(16)),e}},{key:"_handleMetadataTrackEvents",value:function(){var e=this,t=function(t){t.mode=g.PZ.MODE.HIDDEN,e._eventManager.listen(t,"cuechange",(function(){var t=[];Array.from(e._el.textTracks).forEach((function(e){g.PZ.isMetaDataTrack(e)&&(t=t.concat((0,g.z6)(e.activeCues)))})),t=t.sort((function(e,t){return e.startTime-t.startTime})),e.dispatchEvent(new f.v(_.nQ.TIMED_METADATA,{cues:t})),e.dispatchEvent(new f.v(_.nQ.TIMED_METADATA_CHANGE,{cues:t.map((function(e){return(0,p.cP)(e)}))}))}))};Array.from(this._el.textTracks).forEach((function(e){g.PZ.isMetaDataTrack(e)&&t(e)})),this._eventManager.listen(this._el.textTracks,"addtrack",(function(e){g.PZ.isMetaDataTrack(e.track)&&t(e.track)})),this._eventManager.listen(this._el.textTracks,"change",(function(){Array.from(e._el.textTracks).forEach((function(e){g.PZ.isMetaDataTrack(e)&&e.mode!==g.PZ.MODE.HIDDEN&&(e.mode=g.PZ.MODE.HIDDEN)}))}))}},{key:"targetBuffer",get:function(){return this._mediaSourceAdapter?this._mediaSourceAdapter.targetBuffer:NaN}},{key:"availableBuffer",get:function(){var e=0;if(this.buffered)for(var t=0;t<this.buffered.length;t++)this.buffered.start(t)<=this._el.currentTime&&this._el.currentTime<=this.buffered.end(t)&&(e=this.buffered.end(t)-this._el.currentTime);return e}},{key:"addTextTrack",value:function(e,t,n){return this._el.addTextTrack(e,t,n)}},{key:"getNativeTextTracks",value:function(){return Array.from(this._el.textTracks)}},{key:"getDrmInfo",value:function(){return this._mediaSourceAdapter?this._mediaSourceAdapter.getDrmInfo():null}},{key:"setCachedUrls",value:function(e){this._cachedUrls=e,this._mediaSourceAdapter&&(this._mediaSourceAdapter.setCachedUrls(e),this._cachedUrls=[])}}],[{key:"isSupported",value:function(){try{var e=y.is.createElement("video");return e.volume=.5,!!e.canPlayType}catch(e){return!1}}},{key:"createEngine",value:function(e,t,n){return new this(e,t,n)}},{key:"canPlaySource",value:function(e,t,n){return v.Z.canPlaySource(e,t,n)}},{key:"runCapabilities",value:function(){s._capabilities.forEach((function(e){return e.runCapability()}))}},{key:"getCapabilities",value:function(){var e=[];return s._capabilities.forEach((function(t){return e.push(t.getCapability())})),Promise.all(e).then((function(e){var t={};return e.forEach((function(e){return Object.assign(t,e)})),(0,o.Z)({},s.id,t)}))}},{key:"setCapabilities",value:function(e){s._capabilities.forEach((function(t){return t.setCapabilities(e)}))}},{key:"prepareVideoElement",value:function(e){if(!s.videoElementStore[e]){s._logger.debug("Create the video element for playing ".concat(e));var t=y.is.createElement("video");s.videoElementStore[e]=t}s._logger.debug("Prepare the video element for playing ".concat(e)),s.videoElementStore[e].load()}}]),s}(h.H);(0,o.Z)(R,"_logger",(0,s.ZP)("Html5")),(0,o.Z)(R,"_capabilities",[m]),(0,o.Z)(R,"id","html5"),(0,o.Z)(R,"videoElementStore",{}),(0,o.Z)(R,"PLAYBACK_RATES",[.5,1,1.5,2]);var w=function(){function e(){(0,r.Z)(this,e)}return(0,a.Z)(e,null,[{key:"register",value:function(t,n){t&&!e._engineProviders[t]?(e._logger.debug("Engine <".concat(t,"> has been registered successfully")),e._engineProviders[t]=n):e._logger.debug("Engine <".concat(t,"> is already registered, do not register again"))}},{key:"unRegister",value:function(t){e._engineProviders[t]&&(e._logger.debug("Unregistered <".concat(t,"> Engine")),delete e._engineProviders[t])}},{key:"getEngines",value:function(){return Object.keys(e._engineProviders).map((function(t){return e._engineProviders[t]}))}},{key:"destroy",value:function(){e._engineProviders={}}}]),e}();(0,o.Z)(w,"_logger",(0,s.ZP)("EngineProvider")),(0,o.Z)(w,"_engineProviders",{}),R.isSupported()&&w.register(R.id,R);var C=w.register,D=w.unRegister},488:function(e,t,n){"use strict";n.d(t,{r:function(){return i}});var i={HTML5:"html5",FLASH:"flash",SILVERLIGHT:"silverlight",CAST:"cast",YOUTUBE:"youtube",IMAGE:"image",DOCUMENT:"document"}},6145:function(e,t,n){"use strict";n.d(t,{X:function(){return i}});var i={ANONYMOUS:"anonymous",USE_CREDENTIALS:"use-credentials"}},4651:function(e,t,n){"use strict";n.d(t,{Z:function(){return m}});var i,r=n(5671),a=n(3144),o=n(7326),s=n(9340),u=n(2963),c=n(1120),l=n(4942),d=n(8987),h=n(8171),f=n(962),A=n(2114),_=n(4358),v=n(4877),g=n(7812),p=n(6462),y=n(4270),E=n(2983);var m=function(e){(0,s.Z)(h,e);var t,n,i=(t=h,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,i=(0,c.Z)(t);if(n){var r=(0,c.Z)(this).constructor;e=Reflect.construct(i,arguments,r)}else e=i.apply(this,arguments);return(0,u.Z)(this,e)});function h(e,t){var n,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return(0,r.Z)(this,h),n=i.call(this),(0,l.Z)((0,o.Z)(n),"_capabilities",{fpsControl:!1}),n._videoElement=e,n._sourceObj=t,n._config=a,n._onDurationChanged=function(){n.isLive()&&n._videoElement.paused&&n._trigger(A.Rk.TIME_UPDATE)},n._eventManager=new y.Q,n._handleLiveTimeUpdate(),n}return(0,a.Z)(h,[{key:"destroy",value:function(){return this._sourceObj=void 0,this._config={},this.disableNativeTextTracks(),this._videoElement.removeEventListener(A.Rk.DURATION_CHANGE,this._onDurationChanged),this._eventManager.destroy(),Promise.resolve()}},{key:"_onTrackChanged",value:function(e){e instanceof v.Z?(h._logger.debug("Video track changed",e),this._trigger(A.nQ.VIDEO_TRACK_CHANGED,{selectedVideoTrack:e})):e instanceof g.ZP?(h._logger.debug("Audio track changed",e),this._trigger(A.nQ.AUDIO_TRACK_CHANGED,{selectedAudioTrack:e})):e instanceof p.ZP?(h._logger.debug("Text track changed",e),this._trigger(A.nQ.TEXT_TRACK_CHANGED,{selectedTextTrack:e})):e instanceof E.Z&&(h._logger.debug("Image track changed",e),this._trigger(A.nQ.IMAGE_TRACK_CHANGED,{selectedImageTrack:e}))}},{key:"_trigger",value:function(e,t){this.dispatchEvent(new d.v(e,t))}},{key:"applyTextTrackStyles",value:function(e,t,n,i){return h._throwNotImplementedError("applyTextTrackStyles")}},{key:"load",value:function(){return h._throwNotImplementedError("load")}},{key:"selectVideoTrack",value:function(e){return h._throwNotImplementedError("selectVideoTrack")}},{key:"selectAudioTrack",value:function(e){h._throwNotImplementedError("selectAudioTrack")}},{key:"selectTextTrack",value:function(e){h._throwNotImplementedError("selectTextTrack")}},{key:"selectImageTrack",value:function(e){}},{key:"hideTextTrack",value:function(){h._throwNotImplementedError("hideTextTrack")}},{key:"enableAdaptiveBitrate",value:function(){h._throwNotImplementedError("enableAdaptiveBitrate")}},{key:"isAdaptiveBitrateEnabled",value:function(){return h._throwNotImplementedError("isAdaptiveBitrateEnabled")}},{key:"applyABRRestriction",value:function(e){return h._throwNotImplementedError("applyABRRestriction")}},{key:"_getLiveEdge",value:function(){return h._throwNotImplementedError("_getLiveEdge")}},{key:"seekToLiveEdge",value:function(){h._throwNotImplementedError("seekToLiveEdge")}},{key:"isLive",value:function(){return h._throwNotImplementedError("isLive")}},{key:"isOnLiveEdge",value:function(){return 0===this.getSegmentDuration()||this.liveDuration-this._videoElement.currentTime<=2*this.getSegmentDuration()}},{key:"setMaxBitrate",value:function(e){}},{key:"attachMediaSource",value:function(){}},{key:"detachMediaSource",value:function(){}},{key:"_handleLiveTimeUpdate",value:function(){this._videoElement.addEventListener(A.Rk.DURATION_CHANGE,this._onDurationChanged)}},{key:"disableNativeTextTracks",value:function(){Array.from(this._videoElement.textTracks).forEach((function(e){p.ZP.isNativeTextTrack(e)&&!p.ZP.isExternalTrack(e)&&(e.mode=p.ZP.MODE.DISABLED)}))}},{key:"handleMediaError",value:function(e){return!1}},{key:"getStartTimeOfDvrWindow",value:function(){return h._throwNotImplementedError("getStartTimeOfDvrWindow")}},{key:"getThumbnail",value:function(e){return null}},{key:"getSegmentDuration",value:function(){return h._throwNotImplementedError("getSegmentDuration")}},{key:"liveDuration",get:function(){return h._throwNotImplementedError("liveDuration")}},{key:"src",get:function(){return this._loadPromise&&this._sourceObj?this._sourceObj.url:""},set:function(e){!this._loadPromise&&this._sourceObj&&(this._sourceObj.url=e)}},{key:"capabilities",get:function(){return this._capabilities}},{key:"targetBuffer",get:function(){return NaN}},{key:"getDrmInfo",value:function(){return null}},{key:"setCachedUrls",value:function(e){}}],[{key:"isSupported",value:function(){return!0}},{key:"isMSESupported",value:function(){var e=window.MediaSource||window.WebKitMediaSource;return!!e&&"function"==typeof e.isTypeSupported}},{key:"canPlayType",value:function(e,t){return h._throwNotImplementedError("static canPlayType")}},{key:"_throwNotImplementedError",value:function(e){throw new f.Z(f.Z.Severity.CRITICAL,f.Z.Category.PLAYER,f.Z.Code.RUNTIME_ERROR_METHOD_NOT_IMPLEMENTED,e)}}]),h}(h.H);i=m,(0,l.Z)(m,"id","BaseAdapter"),(0,l.Z)(m,"getLogger",_.ZP),(0,l.Z)(m,"_logger",i.getLogger(i.id))},2588:function(e,t,n){"use strict";n.d(t,{Z:function(){return U},L:function(){return B}});var i=n(5671),r=n(3144),a=n(4942),o=n(3433),s=n(7326),u=n(1752),c=n(9340),l=n(2963),d=n(1120),h=n(2114),f=n(4877),A=n(7812),_=n(6462),v=n(6975),g=n(4651);function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n<t;n++)i[n]=e[n];return i}var y,E=n(1177),m=n(4821),T=n(7237),k=n(4358),b=(0,k.ZP)("FairPlay"),S=function(){function e(){(0,i.Z)(this,e)}return(0,r.Z)(e,null,[{key:"isConfigured",value:function(e,t){return T.J.FAIRPLAY===t.keySystem&&!!e.find((function(e){return e.scheme===t.keySystem}))}},{key:"canPlayDrm",value:function(e){var t=e.some((function(e){return e.scheme===T.J.FAIRPLAY}))&&!!window.WebKitMediaKeys;return b.debug("Can play DRM scheme of: ".concat(T.J.FAIRPLAY," is ").concat(t.toString())),t}},{key:"setDrmPlayback",value:function(e,t){b.debug("Sets drm playback");var n=t.find((function(e){return e.scheme===T.J.FAIRPLAY}));n&&(e.licenseUrl=n.licenseUrl,e.certificate=n.certificate)}}]),e}(),R=n(2069),w=n(962),C=JSON.parse('{"heartbeatTimeout":30000}'),D=n(9439),I=n(4270),O="com.apple.fps.1_0",P={NEED_KEY:"webkitneedkey",KEY_MESSAGE:"webkitkeymessage",KEY_ADDED:"webkitkeyadded",KEY_ERROR:"webkitkeyerror"},x=function(){function e(t,n,r,o){var s=this;(0,i.Z)(this,e),(0,a.Z)(this,"_logger",(0,k.ZP)("FairPlayDrmHandler")),(0,a.Z)(this,"_retryLicenseRequest",4),(0,a.Z)(this,"_defaultConfig",{licenseUrl:"",certificate:"",network:{responseFilter:function(t,n){var i={};try{var r=new DataView(n.data),a=(new TextDecoder).decode(r).trim();i=JSON.parse(a)}catch(e){return void s._onError(w.Z.Code.BAD_FAIRPLAY_RESPONSE,{error:e,responseText:n.data})}var o=e._validateResponse(i);o.valid?n.data=e._base64DecodeUint8Array(i.ckc):s._onError(w.Z.Code.BAD_FAIRPLAY_RESPONSE,o)}}}),this._config=m.c7.mergeDeep({},this._defaultConfig,n),this._errorCallback=r,this._drmResponseCallback=o,this._videoElement=t,this._onWebkitNeedKeyHandler=function(e){return s._onWebkitNeedKey(e)},this._eventManager=new I.Q,this._eventManager.listen(this._videoElement,P.NEED_KEY,this._onWebkitNeedKeyHandler)}return(0,r.Z)(e,[{key:"_onWebkitNeedKey",value:function(t){var n=this;this._logger.debug("Webkit need key triggered");var i=t.target,r=t.initData,a=e._extractContentId(r,!!this._config.useKIDHeader),o=e._base64DecodeUint8Array(this._config.certificate);if(r=e._concatInitDataIdAndCertificate(r,a,o),!i.webkitKeys){var s=this._selectKeySystem();this._logger.debug("Sets media keys"),i.webkitSetMediaKeys(new WebKitMediaKeys(s))}i.webkitKeys||this._onError(w.Z.Code.COULD_NOT_CREATE_MEDIA_KEYS),this._logger.debug("Creates session"),this._keySession=i.webkitKeys.createSession("video/mp4",r),this._keySession||this._onError(w.Z.Code.COULD_NOT_CREATE_KEY_SESSION),this._keySession.contentId=a,this._eventManager.listen(this._keySession,P.KEY_MESSAGE,(function(e){return n._onWebkitKeyMessage(e)})),this._eventManager.listen(this._keySession,P.KEY_ADDED,(function(){return n._onWebkitKeyAdded()})),this._eventManager.listen(this._keySession,P.KEY_ERROR,(function(e){return n._onWebkitKeyError(e)}))}},{key:"getDrmInfo",value:function(){var e=this._config;return{certificate:e.certificate,licenseUrl:e.licenseUrl,scheme:T.J.FAIRPLAY}}},{key:"destroy",value:function(){this._eventManager.destroy(),this._keySession.close(),this._keySession=null}},{key:"_onWebkitKeyMessage",value:function(t){var n=this;this._logger.debug("Webkit key message triggered");var i=t.message,r=t.target,a=null==r?void 0:r.contentId,o=null!=a?btoa(a):"",s=new XMLHttpRequest;s.responseType="arraybuffer",this._eventManager.listenOnce(s,"load",(function(e){return n._licenseRequestLoaded(e)}));var u,c={url:this._config.licenseUrl,body:e._base64EncodeUint8Array(i),headers:this._config.useKIDHeader?{"X-Kaltura-InitData":o}:{}},l=this._config.network.requestFilter;if(l){this._logger.debug("Apply request filter");try{u=l(v.x.LICENSE,c)}catch(e){u=Promise.reject(e)}}(u=u||Promise.resolve(c)).then((function(e){s.open("POST",e.url,!0);var t=!0;e.headers&&Object.entries(e.headers).forEach((function(e){var n=(0,D.Z)(e,2),i=n[0],r=n[1];"string"==typeof r&&s.setRequestHeader(i,r),t&&(t="content-type"!==i.toLowerCase())})),"boolean"==typeof e.withCredentials&&(s.withCredentials=e.withCredentials),t&&s.setRequestHeader("Content-type","application/json"),n._logger.debug("Ready for license request"),s.onerror=function(){n._onError(w.Z.Code.LICENSE_REQUEST_FAILED,{status:s.status,responseText:s.responseText})},n._licenseRequestTime=Date.now(),s.send(e.body)})).catch((function(e){n._errorCallback(new w.Z(w.Z.Severity.CRITICAL,w.Z.Category.NETWORK,w.Z.Code.REQUEST_FILTER_ERROR,e)),n.destroy()}))}},{key:"_onWebkitKeyAdded",value:function(){this._logger.debug("Decryption key was added to session")}},{key:"_onWebkitKeyError",value:function(e){this._logger.error("A decryption key error was encountered",e),this._retryLicenseRequest<=0&&this._onError(w.Z.Code.LICENSE_REQUEST_FAILED,e.target.error),this._retryLicenseRequest--}},{key:"_licenseRequestLoaded",value:function(e){var t=this;this._logger.debug("License request loaded");var n=e.target;if(n.status>299)this._onError(w.Z.Code.LICENSE_REQUEST_FAILED,{status:n.status,error:n.responseText});else{if(this._drmResponseCallback){var i=Date.now()-this._licenseRequestTime;this._drmResponseCallback({licenseTime:i/1e3,scheme:T.J.FAIRPLAY})}var r,a=n.responseURL,o=n.response,s={url:a,originalUrl:this._config.licenseUrl,data:o,headers:m.eV.convertHeadersToDictionary(n.getAllResponseHeaders())};this._logger.debug("Apply response filter");try{r=this._config.network.responseFilter(v.x.LICENSE,s)}catch(e){r=Promise.reject(e)}(r=r||Promise.resolve(s)).then((function(e){t._keySession.update(e.data)})).catch((function(e){t._errorCallback(new w.Z(w.Z.Severity.CRITICAL,w.Z.Category.NETWORK,w.Z.Code.RESPONSE_FILTER_ERROR,e)),t.destroy()}))}}},{key:"_onError",value:function(e,t){this._errorCallback(new w.Z(w.Z.Severity.CRITICAL,w.Z.Category.DRM,e,t))}},{key:"_selectKeySystem",value:function(){var e=null;return WebKitMediaKeys.isTypeSupported(O,"video/mp4")?e=O:this._logger.warn("Key System not supported"),e}}],[{key:"_validateResponse",value:function(e){return e.message&&e.message.indexOf("error")>0||null===e.reference||500===e.status_code?{valid:!1,details:"internal server error"}:""===e.ckc?{valid:!1,details:"ckc is missing"}:{valid:!0}}},{key:"_extractContentId",value:function(t,n){if(n){var i=e._arrayToString(t);return i.slice(i.lastIndexOf("skd://")+6,i.length)}var r=document.createElement("a");return r.href=e._arrayToString(t),r.hostname}},{key:"_arrayToString",value:function(e){return String.fromCharCode.apply(null,new Uint16Array(e.buffer))}},{key:"_base64DecodeUint8Array",value:function(e){for(var t=window.atob(e),n=t.length,i=new Uint8Array(new ArrayBuffer(n)),r=0;r<n;r++)i[r]=t.charCodeAt(r);return i}},{key:"_concatInitDataIdAndCertificate",value:function(t,n,i){"string"==typeof n&&(n=e._stringToArray(n));var r=0,a=new ArrayBuffer(t.byteLength+4+n.byteLength+4+i.byteLength),o=new DataView(a);new Uint8Array(a,r,t.byteLength).set(t),r+=t.byteLength,o.setUint32(r,n.byteLength,!0),r+=4;var s=new Uint8Array(a,r,n.byteLength);return s.set(n),r+=s.byteLength,o.setUint32(r,i.byteLength,!0),r+=4,new Uint8Array(a,r,i.byteLength).set(i),new Uint8Array(a,0,a.byteLength)}},{key:"_stringToArray",value:function(e){for(var t=new ArrayBuffer(2*e.length),n=new Uint16Array(t),i=0,r=e.length;i<r;i++)n[i]=e.charCodeAt(i);return n}},{key:"_base64EncodeUint8Array",value:function(e){for(var t,n,i,r,a,o,s,u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",c="",l=0;l<e.length;)r=(t=e[l++])>>2,a=(3&t)<<4|(n=l<e.length?e[l++]:Number.NaN)>>4,o=(15&n)<<2|(i=l<e.length?e[l++]:Number.NaN)>>6,s=63&i,isNaN(n)?o=s=64:isNaN(i)&&(s=64),c+=u.charAt(r)+u.charAt(a)+u.charAt(o)+u.charAt(s);return c}}]),e}();function N(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return L(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?L(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var i=0,r=function(){};return{s:r,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw a}}}}function L(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n<t;n++)i[n]=e[n];return i}(0,a.Z)(x,"WebkitEvents",P),x.WebkitEvents=P;var M="playkit-native-text",Z=function(e){(0,c.Z)(y,e);var t,n,g=(t=y,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,i=(0,d.Z)(t);if(n){var r=(0,d.Z)(this).constructor;e=Reflect.construct(i,arguments,r)}else e=i.apply(this,arguments);return(0,l.Z)(this,e)});function y(e,t,n){var r;return(0,i.Z)(this,y),r=g.call(this,e,t,n),(0,a.Z)((0,s.Z)(r),"_lastTimeUpdate",0),(0,a.Z)((0,s.Z)(r),"_waitingEventTriggered",!1),(0,a.Z)((0,s.Z)(r),"_segmentDuration",0),(0,a.Z)((0,s.Z)(r),"_startTimeOfDvrWindow",0),(0,a.Z)((0,s.Z)(r),"_mediaErrorRecoveryAttempts",0),(0,a.Z)((0,s.Z)(r),"_lastTimeDetach",NaN),(0,a.Z)((0,s.Z)(r),"_startTimeAttach",NaN),(0,a.Z)((0,s.Z)(r),"_nativeTextTracksMap",{}),(0,a.Z)((0,s.Z)(r),"_captionsHidden",!1),y._logger.debug("Creating adapter"),r._config=m.c7.mergeDeep({},C,r._config),r._progressiveSources=n.progressiveSources,r._liveEdge=0,r._setStarTimeOfDvrWindowInterval(),r}return(0,r.Z)(y,[{key:"_dispatchErrorCallback",value:function(e){this._trigger(h.Rk.ERROR,e)}},{key:"_dispatchDRMLicenseLoaded",value:function(e){this._trigger(h.nQ.DRM_LICENSE_LOADED,e)}},{key:"_maybeSetDrmPlayback",value:function(){var e=this;if(y._drmProtocol&&this._sourceObj&&this._sourceObj.drmData){var t={licenseUrl:"",certificate:"",network:this._config.network,useKIDHeader:!!this._config.useKIDHeader};y._drmProtocol.setDrmPlayback(t,this._sourceObj.drmData),this._drmHandler=new x(this._videoElement,t,(function(t){return e._dispatchErrorCallback(t)}),(function(t){return e._dispatchDRMLicenseLoaded(t)}))}}},{key:"_setProgressiveSource",value:function(){var e=function(e,t,n){var i=null;if(n&&e){var r,a=[],o=1/0,s=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return p(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?p(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var i=0,r=function(){};return{s:r,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw a}}}}(e);try{for(s.s();!(r=s.n()).done;){var u=r.value,c=Math.abs(u.width-t);c<o?(o=c,a=[u]):c===o&&a.push(u)}}catch(e){s.e(e)}finally{s.f()}for(var l=t/n,d=a,h=1/0,f=0,A=a;f<A.length;f++){var _=A[f];if(_.height){var v=Math.abs(_.width/_.height-l);v<h?(h=v,d=[_]):v===h&&d.push(_)}}for(var g=0,y=0,E=d;y<E.length;y++){var m=E[y];(m.bandwidth>g||!m.bandwidth)&&(g=m.bandwidth||g,i=m)}}return i}(this._progressiveSources,this._videoElement.offsetWidth,this._videoElement.offsetHeight);e&&(this._sourceObj=e)}},{key:"_isProgressivePlayback",value:function(){return!!this._sourceObj&&y._progressiveMimeTypes.includes(this._sourceObj.mimetype.toLowerCase())}},{key:"load",value:function(e){var t=this;return this._maybeSetDrmPlayback(),this._loadPromise||(this._loadPromise=new Promise((function(n,i){t._lastTimeUpdate=e||0;var r="number"==typeof e?e:-1,a=t._startTimeAttach||r;t._loadPromiseReject=i,t._eventManager.listenOnce(t._videoElement,h.Rk.LOADED_DATA,(function(){return t._onLoadedData(n,a)})),t._eventManager.listenOnce(t._videoElement,h.Rk.PLAYING,(function(){return t._onPlaying(a)})),t._eventManager.listen(t._videoElement,h.Rk.TIME_UPDATE,(function(){return t._onTimeUpdate()})),t._eventManager.listen(t._videoElement,h.Rk.PLAY,(function(){return t._resetHeartbeatTimeout()})),t._eventManager.listen(t._videoElement,h.Rk.PAUSE,(function(){return t._clearHeartbeatTimeout()})),t._eventManager.listen(t._videoElement,h.Rk.ENDED,(function(){return t._clearHeartbeatTimeout()})),t._eventManager.listen(t._videoElement,h.Rk.ABORT,(function(){return t._clearHeartbeatTimeout()})),t._eventManager.listen(t._videoElement,h.Rk.SEEKED,(function(){return t._syncCurrentTime()})),t._eventManager.listen(t._videoElement,h.Rk.WAITING,(function(){return t._waitingEventTriggered=!0})),t._eventManager.listen(t._videoElement,h.Rk.PLAYING,(function(){return t._waitingEventTriggered=!1})),t._eventManager.listen(window,"focus",(function(){setTimeout((function(){R.Z.isIOS&&(t._videoElement.currentTime=t._videoElement.currentTime>.1?t._videoElement.currentTime-.1:0),t._syncCurrentTime()}),1e3)})),t._isProgressivePlayback()&&t._setProgressiveSource(),t._sourceObj&&t._sourceObj.url?t._setSrc().then((function(){t._trigger(h.nQ.ABR_MODE_CHANGED,{mode:t._isProgressivePlayback()?"manual":"auto"}),t._videoElement.load()})):t._videoElement.load()}))),this._loadPromise}},{key:"_handleDecodeError",value:function(e){var t=this;y._logger.debug("handleDecodeError",e);var n=this._videoElement.currentTime,i=this._getActivePKAudioTrack(),r=this._getActivePKTextTrack();this._videoElement.load(),this._eventManager.listenOnce(this._videoElement,h.Rk.PLAYING,(function(){t._mediaErrorRecoveryAttempts=0})),this._eventManager.listenOnce(this._videoElement,h.Rk.CAN_PLAY,(function(){y._logger.debug("CAN_PLAY"),t._videoElement.currentTime=n,t._videoElement.play(),t._videoElement.pause(),i&&t.selectAudioTrack(i),r?t.selectTextTrack(r):t.disableNativeTextTracks()}))}},{key:"handleMediaError",value:function(e){return this._loadPromiseReject?(this._loadPromiseReject(new w.Z(w.Z.Severity.CRITICAL,w.Z.Category.MEDIA,w.Z.Code.NATIVE_ADAPTER_LOAD_FAILED,e)),!0):!!(e&&e.code===MediaError.MEDIA_ERR_DECODE&&(this._mediaErrorRecoveryAttempts++,this._mediaErrorRecoveryAttempts<=3))&&(this._handleDecodeError(e),!0)}},{key:"attachMediaSource",value:function(){this._startTimeAttach=this._lastTimeDetach,this._lastTimeDetach=NaN}},{key:"detachMediaSource",value:function(){this._lastTimeDetach=this._videoElement.currentTime,this._videoElement&&this._videoElement.src&&(m.is.setAttribute(this._videoElement,"src",""),m.is.removeAttribute(this._videoElement,"src")),this._loadPromise=void 0}},{key:"_setSrc",value:function(){var e,t=this,n={url:this._sourceObj?this._sourceObj.url:"",body:null,headers:{}};if("function"==typeof m.c7.getPropertyPath(this._config,"network.requestFilter"))try{y._logger.debug("Apply request filter"),e=this._config.network.requestFilter(v.x.MANIFEST,n)}catch(t){e=Promise.reject(t)}return(e=e||Promise.resolve(n)).then((function(e){if(t._config.useSourceTag){var n,i=document.createElement("source"),r=(null===(n=t._sourceObj)||void 0===n?void 0:n.mimetype.toLowerCase())||"";if(i.setAttribute("src",e.url),i.setAttribute("type",r),t._config.useMediaOptionAttribute){var a={};if(t._config.mediaOptionAttribute&&(a=t._config.mediaOptionAttribute),t._config.abrEwmaDefaultEstimate){var o={start:t._config.abrEwmaDefaultEstimate};m.c7.createPropertyPath(a,"option.adaptiveStreaming.bps",o)}y._logger.debug("Setting mediaOption -",a);var s=encodeURI(JSON.stringify(a));i.setAttribute("type",r+";mediaOption="+s)}t._videoElement.appendChild(i)}else t._videoElement.src=e.url})).catch((function(e){t._trigger(h.Rk.ERROR,new w.Z(w.Z.Severity.CRITICAL,w.Z.Category.NETWORK,w.Z.Code.REQUEST_FILTER_ERROR,e))})),e}},{key:"_onPlaying",value:function(e){this.isLive()&&this._setStartTime(e)}},{key:"_onLoadedData",value:function(e,t){var n=this,i=function(){n._playerTracks=n._getParsedTracks(),n._addNativeAudioTrackChangeListener(),n._addNativeTextTrackChangeListener(),n._addNativeTextTrackAddedListener(),y._logger.debug("The source has been loaded successfully"),n._loadPromiseReject=void 0,e({tracks:n._playerTracks}),n.isLive()&&n._handleLiveDurationChange()};void 0!==t&&t>-1&&(this._videoElement.currentTime=t),this._videoElement.textTracks.length>0?i():this._eventManager.listenOnce(this._videoElement,h.Rk.CAN_PLAY,i.bind(this)),this._startTimeAttach=NaN}},{key:"_setStartTime",value:function(e){"number"==typeof e&&e>-1&&(this._videoElement.currentTime=e)}},{key:"_onTimeUpdate",value:function(){this._videoElement.paused||(this._videoElement.currentTime>this._lastTimeUpdate?(this._waitingEventTriggered&&(this._waitingEventTriggered=!1,this._trigger(h.Rk.PLAYING)),this._resetHeartbeatTimeout()):this._videoElement.currentTime<this._lastTimeUpdate?this._syncCurrentTime():(this._waitingEventTriggered=!0,this._trigger(h.Rk.WAITING))),this._handleVideoTracksChange()}},{key:"_syncCurrentTime",value:function(){this._lastTimeUpdate=this._videoElement.currentTime}},{key:"_resetHeartbeatTimeout",value:function(){var e=this;this._lastTimeUpdate=this._videoElement.currentTime,this._clearHeartbeatTimeout(),this._heartbeatTimeoutId=setTimeout((function(){e._clear