shaka-player 4.13.1 → 4.13.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONTRIBUTORS +1 -0
- package/dist/deps.js +1 -1
- package/dist/locales.js +34 -34
- package/dist/shaka-player.compiled.debug.js +353 -345
- package/dist/shaka-player.compiled.debug.map +3 -3
- package/dist/shaka-player.compiled.js +1413 -1408
- package/dist/shaka-player.compiled.map +3 -3
- package/dist/shaka-player.ui.debug.js +350 -342
- package/dist/shaka-player.ui.debug.map +3 -3
- package/dist/shaka-player.ui.js +1630 -1624
- package/dist/shaka-player.ui.map +3 -3
- package/eslint.config.mjs +14 -1
- package/lib/cast/cast_proxy.js +48 -10
- package/lib/debug/log.js +16 -17
- package/lib/hls/hls_parser.js +27 -1
- package/lib/media/media_source_engine.js +124 -120
- package/lib/media/preload_manager.js +10 -5
- package/lib/media/region_observer.js +9 -8
- package/lib/media/region_timeline.js +10 -8
- package/lib/media/streaming_engine.js +25 -9
- package/lib/player.js +87 -38
- package/lib/text/cue.js +6 -2
- package/lib/text/ui_text_displayer.js +25 -4
- package/lib/util/platform.js +24 -3
- package/lib/util/stream_utils.js +13 -0
- package/package.json +1 -1
- package/project-words.txt +1 -0
- package/ui/ad_statistics_button.js +2 -0
- package/ui/statistics_button.js +3 -1
|
@@ -147,11 +147,11 @@ shaka.util.FakeEvent.EventName={AbrStatusChanged:"abrstatuschanged",Adaptation:"
|
|
|
147
147
|
Loading:"loading",ManifestParsed:"manifestparsed",ManifestUpdated:"manifestupdated",MediaQualityChanged:"mediaqualitychanged",MediaSourceRecovered:"mediasourcerecovered",Metadata:"metadata",Midpoint:"midpoint",NoSpatialVideoInfoEvent:"nospatialvideoinfo",OnStateChange:"onstatechange",RateChange:"ratechange",SegmentAppended:"segmentappended",SessionDataEvent:"sessiondata",SpatialVideoInfoEvent:"spatialvideoinfo",StallDetected:"stalldetected",Started:"started",StateChanged:"statechanged",Streaming:"streaming",
|
|
148
148
|
TextChanged:"textchanged",TextTrackVisibility:"texttrackvisibility",ThirdQuartile:"thirdquartile",TimelineRegionAdded:"timelineregionadded",TimelineRegionEnter:"timelineregionenter",TimelineRegionExit:"timelineregionexit",TracksChanged:"trackschanged",Unloading:"unloading",VariantChanged:"variantchanged"};shaka.log=function(){};shaka.log.alwaysError=function(){};shaka.log.alwaysWarn=function(){};shaka.log.warnOnce=function(a){var b=$jscomp.getRestArguments.apply(1,arguments);shaka.log.oneTimeWarningIssued_.has(a)||(shaka.log.oneTimeWarningIssued_.add(a),shaka.log.alwaysWarn.apply(shaka.log,$jscomp.arrayFromIterable(b)))};shaka.log.error=function(){};shaka.log.warning=function(){};shaka.log.info=function(){};shaka.log.debug=function(){};shaka.log.v1=function(){};shaka.log.v2=function(){};
|
|
149
149
|
shaka.log.Level={NONE:0,ERROR:1,WARNING:2,INFO:3,DEBUG:4,V1:5,V2:6};shaka.log.MAX_LOG_LEVEL=4;shaka.log.oneTimeWarningIssued_=new Set;
|
|
150
|
-
|
|
151
|
-
return console.
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
(shaka.log.
|
|
150
|
+
window.console&&(shaka.log.logMap_=(new Map).set(shaka.log.Level.ERROR,function(){var a=$jscomp.getRestArguments.apply(0,arguments);return console.error.apply(console,$jscomp.arrayFromIterable(a))}).set(shaka.log.Level.WARNING,function(){var a=$jscomp.getRestArguments.apply(0,arguments);return console.warn.apply(console,$jscomp.arrayFromIterable(a))}).set(shaka.log.Level.INFO,function(){var a=$jscomp.getRestArguments.apply(0,arguments);return console.info.apply(console,$jscomp.arrayFromIterable(a))}).set(shaka.log.Level.DEBUG,
|
|
151
|
+
function(){var a=$jscomp.getRestArguments.apply(0,arguments);return console.log.apply(console,$jscomp.arrayFromIterable(a))}).set(shaka.log.Level.V1,function(){var a=$jscomp.getRestArguments.apply(0,arguments);return console.debug.apply(console,$jscomp.arrayFromIterable(a))}).set(shaka.log.Level.V2,function(){var a=$jscomp.getRestArguments.apply(0,arguments);return console.debug.apply(console,$jscomp.arrayFromIterable(a))}),shaka.log.alwaysWarn=function(){var a=$jscomp.getRestArguments.apply(0,arguments);
|
|
152
|
+
return console.warn.apply(console,$jscomp.arrayFromIterable(a))},shaka.log.alwaysError=function(){var a=$jscomp.getRestArguments.apply(0,arguments);return console.error.apply(console,$jscomp.arrayFromIterable(a))},goog.DEBUG?(goog.exportSymbol("shaka.log",shaka.log),shaka.log.setLevel=function(a){var b=function(c){return c<=a?(goog.asserts.assert(shaka.log.logMap_.has(c),"Unexpected log level"),shaka.log.logMap_.get(c)):function(){}};shaka.log.currentLevel=a;shaka.log.error=b(shaka.log.Level.ERROR);
|
|
153
|
+
shaka.log.warning=b(shaka.log.Level.WARNING);shaka.log.info=b(shaka.log.Level.INFO);shaka.log.debug=b(shaka.log.Level.DEBUG);shaka.log.v1=b(shaka.log.Level.V1);shaka.log.v2=b(shaka.log.Level.V2)},shaka.log.setLevel(shaka.log.MAX_LOG_LEVEL)):(shaka.log.MAX_LOG_LEVEL>=shaka.log.Level.ERROR&&(shaka.log.error=shaka.log.logMap_.get(shaka.log.Level.ERROR)),shaka.log.MAX_LOG_LEVEL>=shaka.log.Level.WARNING&&(shaka.log.warning=shaka.log.logMap_.get(shaka.log.Level.WARNING)),shaka.log.MAX_LOG_LEVEL>=shaka.log.Level.INFO&&
|
|
154
|
+
(shaka.log.info=shaka.log.logMap_.get(shaka.log.Level.INFO)),shaka.log.MAX_LOG_LEVEL>=shaka.log.Level.DEBUG&&(shaka.log.debug=shaka.log.logMap_.get(shaka.log.Level.DEBUG)),shaka.log.MAX_LOG_LEVEL>=shaka.log.Level.V1&&(shaka.log.v1=shaka.log.logMap_.get(shaka.log.Level.V1)),shaka.log.MAX_LOG_LEVEL>=shaka.log.Level.V2&&(shaka.log.v2=shaka.log.logMap_.get(shaka.log.Level.V2))));shaka.util.IReleasable=function(){};shaka.util.IReleasable.prototype.release=function(){};shaka.util.MultiMap=function(){this.map_=new Map};shaka.util.MultiMap.prototype.push=function(a,b){this.map_.has(a)?this.map_.get(a).push(b):this.map_.set(a,[b])};shaka.util.MultiMap.prototype.get=function(a){return this.map_.has(a)?this.map_.get(a).slice():null};shaka.util.MultiMap.prototype.getAll=function(){for(var a=[],b=$jscomp.makeIterator(this.map_.values()),c=b.next();!c.done;c=b.next())a.push.apply(a,$jscomp.arrayFromIterable(c.value));return a};
|
|
155
155
|
shaka.util.MultiMap.prototype.remove=function(a,b){if(this.map_.has(a)){var c=this.map_.get(a).filter(function(d){return d!=b});this.map_.set(a,c);c.length||this.map_.delete(a)}};shaka.util.MultiMap.prototype.clear=function(){this.map_.clear()};shaka.util.MultiMap.prototype.forEach=function(a){this.map_.forEach(function(b,c){a(c,b)})};shaka.util.MultiMap.prototype.size=function(){return this.map_.size};shaka.util.MultiMap.prototype.keys=function(){return Array.from(this.map_.keys())};shaka.util.FakeEventTarget=function(){this.listeners_=new shaka.util.MultiMap;this.dispatchTarget=this};shaka.util.FakeEventTarget.prototype.addEventListener=function(a,b,c){this.listeners_&&this.listeners_.push(a,b)};shaka.util.FakeEventTarget.prototype.listenToAllEvents=function(a){this.addEventListener(shaka.util.FakeEventTarget.ALL_EVENTS_,a)};shaka.util.FakeEventTarget.prototype.removeEventListener=function(a,b,c){this.listeners_&&this.listeners_.remove(a,b)};
|
|
156
156
|
shaka.util.FakeEventTarget.prototype.dispatchEvent=function(a){goog.asserts.assert(a instanceof shaka.util.FakeEvent,"FakeEventTarget can only dispatch FakeEvents!");if(!this.listeners_)return!0;var b=this.listeners_.get(a.type)||[],c=this.listeners_.get(shaka.util.FakeEventTarget.ALL_EVENTS_);c&&(b=b.concat(c));b=$jscomp.makeIterator(b);for(c=b.next();!c.done;c=b.next()){c=c.value;a.target=this.dispatchTarget;a.currentTarget=this.dispatchTarget;try{c.handleEvent?c.handleEvent(a):c.call(this,a)}catch(d){shaka.log.error("Uncaught exception in event handler",
|
|
157
157
|
d,d?d.message:null,d?d.stack:null)}if(a.stopped)break}return a.defaultPrevented};shaka.util.FakeEventTarget.prototype.release=function(){this.listeners_=null};shaka.util.FakeEventTarget.ALL_EVENTS_="All";shaka.util.Iterables=function(){};shaka.util.Iterables.map=function(a,b){var c=[];a=$jscomp.makeIterator(a);for(var d=a.next();!d.done;d=a.next())c.push(b(d.value));return c};shaka.util.Iterables.every=function(a,b){a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next())if(!b(c.value))return!1;return!0};shaka.util.Iterables.some=function(a,b){a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next())if(b(c.value))return!0;return!1};
|
|
@@ -211,15 +211,16 @@ shaka.util.Platform.isTizen4=function(){return shaka.util.Platform.userAgentCont
|
|
|
211
211
|
shaka.util.Platform.isWebOS4=function(){return shaka.util.Platform.isWebOS()&&53===shaka.util.Platform.chromeVersion()};shaka.util.Platform.isWebOS5=function(){return shaka.util.Platform.isWebOS()&&68===shaka.util.Platform.chromeVersion()};shaka.util.Platform.isWebOS6=function(){return shaka.util.Platform.isWebOS()&&79===shaka.util.Platform.chromeVersion()};shaka.util.Platform.isChromecast=function(){return shaka.util.Platform.userAgentContains_("CrKey")};
|
|
212
212
|
shaka.util.Platform.isAndroidCastDevice=function(){var a=shaka.util.Platform;return a.isChromecast()&&a.isAndroid()};shaka.util.Platform.isFuchsiaCastDevice=function(){var a=shaka.util.Platform;return a.isChromecast()&&a.isFuchsia()};shaka.util.Platform.chromeVersion=function(){if(!shaka.util.Platform.isChrome())return null;var a=navigator.userAgent.match(/Chrome\/(\d+)/);return a?parseInt(a[1],10):null};
|
|
213
213
|
shaka.util.Platform.isChrome=function(){return shaka.util.Platform.userAgentContains_("Chrome")&&!shaka.util.Platform.isLegacyEdge()};shaka.util.Platform.isFirefox=function(){return shaka.util.Platform.userAgentContains_("Firefox")};
|
|
214
|
-
shaka.util.Platform.isApple=function(){return!!navigator.vendor&&navigator.vendor.includes("Apple")&&!shaka.util.Platform.isTizen()&&!shaka.util.Platform.isEOS()&&!shaka.util.Platform.isAPL()&&!shaka.util.Platform.
|
|
215
|
-
shaka.util.Platform.
|
|
216
|
-
shaka.util.Platform.isAmazonFireTV=function(){return shaka.util.Platform.userAgentContains_("AFT")};shaka.util.Platform.isComcastX1=function(){return shaka.util.Platform.userAgentContains_("WPE")};shaka.util.Platform.isZenterio=function(){return shaka.util.Platform.userAgentContains_("DT_STB_BCM")};
|
|
217
|
-
shaka.util.Platform.safariVersion=function(){if(!shaka.util.Platform.isApple())return null;var a=navigator.userAgent.match(/Version\/(\d+)/);return a?parseInt(a[1],10):(a=navigator.userAgent.match(/OS (\d+)(?:_\d+)?/))?parseInt(a[1],10):null};shaka.util.Platform.isSafari=function(){return!!shaka.util.Platform.safariVersion()};
|
|
218
|
-
shaka.util.Platform.
|
|
214
|
+
shaka.util.Platform.isApple=function(){return!!navigator.vendor&&navigator.vendor.includes("Apple")&&!shaka.util.Platform.isTizen()&&!shaka.util.Platform.isEOS()&&!shaka.util.Platform.isAPL()&&!shaka.util.Platform.isAPP()&&!shaka.util.Platform.isVirginMedia()&&!shaka.util.Platform.isOrange()&&!shaka.util.Platform.isPS4()&&!shaka.util.Platform.isAmazonFireTV()&&!shaka.util.Platform.isComcastX1()&&!shaka.util.Platform.isZenterio()&&!shaka.util.Platform.isSkyQ()&&!shaka.util.Platform.isMultiChoice()};
|
|
215
|
+
shaka.util.Platform.isPS5=function(){return shaka.util.Platform.userAgentContains_("PlayStation 5")};shaka.util.Platform.isPS4=function(){return shaka.util.Platform.userAgentContains_("PlayStation 4")};shaka.util.Platform.isHisense=function(){return shaka.util.Platform.userAgentContains_("Hisense")||shaka.util.Platform.userAgentContains_("VIDAA")};shaka.util.Platform.isVirginMedia=function(){return shaka.util.Platform.userAgentContains_("VirginMedia")};shaka.util.Platform.isOrange=function(){return shaka.util.Platform.userAgentContains_("SOPOpenBrowser")};
|
|
216
|
+
shaka.util.Platform.isSkyQ=function(){return shaka.util.Platform.userAgentContains_("Sky_STB")};shaka.util.Platform.isAmazonFireTV=function(){return shaka.util.Platform.userAgentContains_("AFT")};shaka.util.Platform.isComcastX1=function(){return shaka.util.Platform.userAgentContains_("WPE")};shaka.util.Platform.isZenterio=function(){return shaka.util.Platform.userAgentContains_("DT_STB_BCM")};
|
|
217
|
+
shaka.util.Platform.isMultiChoice=function(){return shaka.util.Platform.userAgentContains_("MDMP1001S")||shaka.util.Platform.userAgentContains_("PS5525IMC")};shaka.util.Platform.safariVersion=function(){if(!shaka.util.Platform.isApple())return null;var a=navigator.userAgent.match(/Version\/(\d+)/);return a?parseInt(a[1],10):(a=navigator.userAgent.match(/OS (\d+)(?:_\d+)?/))?parseInt(a[1],10):null};shaka.util.Platform.isSafari=function(){return!!shaka.util.Platform.safariVersion()};
|
|
218
|
+
shaka.util.Platform.isEOS=function(){return shaka.util.Platform.userAgentContains_("PC=EOS")};shaka.util.Platform.isAPL=function(){return shaka.util.Platform.userAgentContains_("PC=APL")};shaka.util.Platform.isAPP=function(){return shaka.util.Platform.userAgentContains_("PC=APPSTB")};shaka.util.Platform.isMobile=function(){return/(?:iPhone|iPad|iPod|Android)/.test(navigator.userAgent)?!0:shaka.util.Platform.isApple()&&1<navigator.maxTouchPoints};
|
|
219
|
+
shaka.util.Platform.isMac=function(){return navigator.userAgentData&&navigator.userAgentData.platform?"macos"==navigator.userAgentData.platform.toLowerCase():navigator.platform?navigator.platform.toLowerCase().includes("mac"):!1};shaka.util.Platform.isVisionOS=function(){return shaka.util.Platform.isMac()&&"xr"in navigator?!0:!1};
|
|
219
220
|
shaka.util.Platform.isWindows=function(){return navigator.userAgentData&&navigator.userAgentData.platform?"windows"==navigator.userAgentData.platform.toLowerCase():navigator.platform?navigator.platform.toLowerCase().includes("win32"):!1};shaka.util.Platform.isAndroid=function(){return shaka.util.Platform.userAgentContains_("Android")};shaka.util.Platform.isFuchsia=function(){return shaka.util.Platform.userAgentContains_("Fuchsia")};
|
|
220
|
-
shaka.util.Platform.isSmartTV=function(){var a=shaka.util.Platform;return a.isTizen()||a.isWebOS()||a.isXboxOne()||a.isPS4()||a.isPS5()||a.isAmazonFireTV()||a.isEOS()||a.isAPL()||a.isVirginMedia()||a.isOrange()||a.isComcastX1()||a.isChromecast()||a.isHisense()||a.isZenterio()?!0:!1};shaka.util.Platform.userAgentContains_=function(a){return(navigator.userAgent||"").includes(a)};
|
|
221
|
+
shaka.util.Platform.isSmartTV=function(){var a=shaka.util.Platform;return a.isTizen()||a.isWebOS()||a.isXboxOne()||a.isPS4()||a.isPS5()||a.isAmazonFireTV()||a.isEOS()||a.isAPL()||a.isVirginMedia()||a.isOrange()||a.isComcastX1()||a.isChromecast()||a.isHisense()||a.isZenterio()||a.isAPP()||a.isMultiChoice()?!0:!1};shaka.util.Platform.userAgentContains_=function(a){return(navigator.userAgent||"").includes(a)};
|
|
221
222
|
shaka.util.Platform.anyMediaElement=function(){var a=shaka.util.Platform;if(a.cachedMediaElement_)return a.cachedMediaElement_;a.cacheExpirationTimer_||(a.cacheExpirationTimer_=new shaka.util.Timer(function(){a.cachedMediaElement_=null}));a.cachedMediaElement_=document.getElementsByTagName("video")[0]||document.getElementsByTagName("audio")[0];a.cachedMediaElement_||(a.cachedMediaElement_=document.createElement("video"));a.cacheExpirationTimer_.tickAfter(1);return a.cachedMediaElement_};
|
|
222
|
-
shaka.util.Platform.requiresEncryptionInfoInAllInitSegments=function(a){var b=shaka.util.Platform;a=shaka.drm.DrmUtils.isPlayReadyKeySystem(a);return b.isTizen()||b.isXboxOne()||b.isOrange()||b.isEdge()&&b.isWindows()&&a};shaka.util.Platform.requiresEC3InitSegments=function(){return shaka.util.Platform.isTizen3()};shaka.util.Platform.supportsSequenceMode=function(){var a=shaka.util.Platform;return a.isTizen3()||a.isTizen2()||a.isWebOS3()||a.isPS4()?!1:!0};
|
|
223
|
+
shaka.util.Platform.requiresEncryptionInfoInAllInitSegments=function(a){var b=shaka.util.Platform;a=shaka.drm.DrmUtils.isPlayReadyKeySystem(a);return b.isTizen()||b.isXboxOne()||b.isOrange()||b.isEdge()&&b.isWindows()&&a};shaka.util.Platform.requiresEC3InitSegments=function(){return shaka.util.Platform.isTizen3()};shaka.util.Platform.supportsSequenceMode=function(){var a=shaka.util.Platform;return a.isTizen3()||a.isTizen2()||a.isWebOS3()||a.isPS4()||a.isPS5()?!1:!0};
|
|
223
224
|
shaka.util.Platform.supportsSmoothCodecSwitching=function(){var a=shaka.util.Platform;return a.isTizen()||a.isPS4()||a.isPS5()||a.isWebOS6()||a.isChromecast()&&!a.isAndroidCastDevice()&&!a.isFuchsiaCastDevice()||a.isWindows()&&a.isEdge()?!1:!0};shaka.util.Platform.isSeekingSlow=function(){var a=shaka.util.Platform;return a.isChromecast()&&!a.isAndroidCastDevice()?!0:!1};shaka.util.Platform.isMediaKeysPolyfilled=function(a){return a===window.shakaMediaKeysPolyfill};
|
|
224
225
|
shaka.util.Platform.detectMaxHardwareResolution=function(){var a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t;return $jscomp.asyncExecutePromiseGeneratorProgram(function(u){switch(u.nextAddress){case 1:a=shaka.util.Platform;b={width:Infinity,height:Infinity};if(a.isChromecast()){p=window.cast&&cast.__platform__&&cast.__platform__.canDisplayType;b.width=1280;b.height=720;u.setCatchFinallyBlocks(14);if(!(q=p)){u.jumpTo(16);break}return u.yield(cast.__platform__.canDisplayType('video/mp4; codecs="avc1.640028"; width=3840; height=2160'),
|
|
225
226
|
17)}if(a.isTizen()){b.width=1920;b.height=1080;try{webapis.systeminfo&&webapis.systeminfo.getMaxVideoResolution?(c=webapis.systeminfo.getMaxVideoResolution(),b.width=c.width,b.height=c.height):webapis.productinfo.is8KPanelSupported&&webapis.productinfo.is8KPanelSupported()?(b.width=7680,b.height=4320):webapis.productinfo.isUdPanelSupported&&webapis.productinfo.isUdPanelSupported()&&(b.width=3840,b.height=2160)}catch(w){shaka.log.alwaysWarn("Tizen: Error detecting screen size, default screen size 1920x1080.")}u.jumpTo(3);
|
|
@@ -355,9 +356,9 @@ a.insert("tr",new Map([["AD_DURATION","Reklam s\u00fcresi"],["AD_PROGRESS","[AD_
|
|
|
355
356
|
["ENTER_LOOP_MODE","\u5faa\u74b0\u64ad\u653e\u76ee\u524d\u7684\u5f71\u7247"],["ENTER_PICTURE_IN_PICTURE","\u9032\u5165\u5b50\u6bcd\u756b\u9762"],["EXIT_FULL_SCREEN","\u9000\u51fa\u5168\u87a2\u5e55\u6a21\u5f0f"],["EXIT_LOOP_MODE","\u505c\u6b62\u5faa\u74b0\u64ad\u653e\u76ee\u524d\u7684\u5f71\u7247"],["EXIT_PICTURE_IN_PICTURE","\u96e2\u958b\u5b50\u6bcd\u756b\u9762"],["FAST_FORWARD","\u5feb\u8f49"],["FULL_SCREEN","\u5168\u87a2\u5e55"],["LANGUAGE","\u8a9e\u8a00"],["LIVE","\u76f4\u64ad"],["LOOP","\u5faa\u74b0\u64ad\u653e"],
|
|
356
357
|
["MORE_SETTINGS","\u986f\u793a\u66f4\u591a\u8a2d\u5b9a"],["MULTIPLE_LANGUAGES","\u591a\u7a2e\u8a9e\u8a00"],["MUTE","\u975c\u97f3"],["NOT_APPLICABLE","\u4e0d\u9069\u7528"],["OFF","\u95dc\u9589"],["ON","\u958b\u555f"],["PAUSE","\u66ab\u505c"],["PICTURE_IN_PICTURE","\u5b50\u6bcd\u756b\u9762"],["PLAY","\u64ad\u653e"],["PLAYBACK_RATE","\u64ad\u653e\u901f\u5ea6"],["QUALITY","\u97f3\u8cea"],["RECENTER_VR","\u91cd\u65b0\u7f6e\u4e2d"],["REPLAY","\u91cd\u64ad"],["RESOLUTION","\u89e3\u6790\u5ea6"],["REWIND",
|
|
357
358
|
"\u5012\u8f49"],["SEEK","\u641c\u5c0b"],["SKIP_AD","\u7565\u904e\u5ee3\u544a"],["SKIP_TO_LIVE","\u8df3\u81f3\u5f53\u524d\u76f4\u64ad"],["STATISTICS","\u7d71\u8a08\u8cc7\u6599"],["SUBTITLE_FORCED","\u5f37\u5236\u986f\u793a"],["SURROUND","\u74b0\u5834\u97f3\u6548"],["TOGGLE_STEREOSCOPIC","\u5207\u63db\u7acb\u9ad4\u5f71\u50cf"],["UNDETERMINED_LANGUAGE","\u4e0d\u660e"],["UNMUTE","\u53d6\u6d88\u975c\u97f3"],["UNRECOGNIZED_LANGUAGE","\u7121\u6cd5\u8fa8\u8b58"],["VOLUME","\u97f3\u91cf"]]))};
|
|
358
|
-
shaka.ui.Locales.Ids={
|
|
359
|
-
|
|
360
|
-
|
|
359
|
+
shaka.ui.Locales.Ids={ENTER_PICTURE_IN_PICTURE:"ENTER_PICTURE_IN_PICTURE",QUALITY:"QUALITY",AD_DURATION:"AD_DURATION",AIRPLAY:"AIRPLAY",DOWNLOAD_VIDEO_FRAME:"DOWNLOAD_VIDEO_FRAME",EXIT_PICTURE_IN_PICTURE:"EXIT_PICTURE_IN_PICTURE",BACK:"BACK",MORE_SETTINGS:"MORE_SETTINGS",LANGUAGE:"LANGUAGE",ON:"ON",MULTIPLE_LANGUAGES:"MULTIPLE_LANGUAGES",LIVE:"LIVE",CAPTIONS:"CAPTIONS",NOT_APPLICABLE:"NOT_APPLICABLE",FAST_FORWARD:"FAST_FORWARD",LOOP:"LOOP",UNRECOGNIZED_LANGUAGE:"UNRECOGNIZED_LANGUAGE",FULL_SCREEN:"FULL_SCREEN",
|
|
360
|
+
SKIP_AD:"SKIP_AD",ENTER_LOOP_MODE:"ENTER_LOOP_MODE",UNDETERMINED_LANGUAGE:"UNDETERMINED_LANGUAGE",CAST:"CAST",TOGGLE_STEREOSCOPIC:"TOGGLE_STEREOSCOPIC",UNMUTE:"UNMUTE",EXIT_FULL_SCREEN:"EXIT_FULL_SCREEN",REWIND:"REWIND",REPLAY:"REPLAY",VOLUME:"VOLUME",CHAPTERS:"CHAPTERS",RECENTER_VR:"RECENTER_VR",OFF:"OFF",EXIT_LOOP_MODE:"EXIT_LOOP_MODE",PLAY:"PLAY",RESOLUTION:"RESOLUTION",AD_STATISTICS:"AD_STATISTICS",AD_PROGRESS:"AD_PROGRESS",PLAYBACK_RATE:"PLAYBACK_RATE",SUBTITLE_FORCED:"SUBTITLE_FORCED",AD_TIME:"AD_TIME",
|
|
361
|
+
PICTURE_IN_PICTURE:"PICTURE_IN_PICTURE",STATISTICS:"STATISTICS",MUTE:"MUTE",SURROUND:"SURROUND",PAUSE:"PAUSE",SEEK:"SEEK",AUTO_QUALITY:"AUTO_QUALITY",SKIP_TO_LIVE:"SKIP_TO_LIVE"};shaka.abr={};shaka.abr.Ewma=function(a){goog.asserts.assert(0<a,"expected halfLife to be positive");this.alpha_=Math.exp(Math.log(.5)/a);this.totalWeight_=this.estimate_=0};shaka.abr.Ewma.prototype.updateAlpha=function(a){goog.asserts.assert(0<a,"expected halfLife to be positive");this.alpha_=Math.exp(Math.log(.5)/a)};shaka.abr.Ewma.prototype.sample=function(a,b){var c=Math.pow(this.alpha_,a);b=b*(1-c)+c*this.estimate_;isNaN(b)||(this.estimate_=b,this.totalWeight_+=a)};
|
|
361
362
|
shaka.abr.Ewma.prototype.getEstimate=function(){return this.estimate_/(1-Math.pow(this.alpha_,this.totalWeight_))};shaka.abr.EwmaBandwidthEstimator=function(){this.fast_=new shaka.abr.Ewma(2);this.slow_=new shaka.abr.Ewma(5);this.bytesSampled_=0;this.minTotalBytes_=128E3;this.minBytes_=16E3};shaka.abr.EwmaBandwidthEstimator.prototype.configure=function(a){this.minTotalBytes_=a.minTotalBytes;this.minBytes_=a.minBytes;this.fast_.updateAlpha(a.fastHalfLife);this.slow_.updateAlpha(a.slowHalfLife)};
|
|
362
363
|
shaka.abr.EwmaBandwidthEstimator.prototype.sample=function(a,b){if(!(b<this.minBytes_)){var c=8E3*b/a;a/=1E3;this.bytesSampled_+=b;this.fast_.sample(a,c);this.slow_.sample(a,c)}};shaka.abr.EwmaBandwidthEstimator.prototype.getBandwidthEstimate=function(a){return this.bytesSampled_<this.minTotalBytes_?a:Math.min(this.fast_.getEstimate(),this.slow_.getEstimate())};shaka.abr.EwmaBandwidthEstimator.prototype.hasGoodEstimate=function(){return this.bytesSampled_>=this.minTotalBytes_};shaka.util.EventManager=function(){this.bindingMap_=new shaka.util.MultiMap};shaka.util.EventManager.prototype.release=function(){this.removeAll();this.bindingMap_=null};shaka.util.EventManager.prototype.listen=function(a,b,c,d){this.bindingMap_&&(a=new shaka.util.EventManager.Binding_(a,b,c,d),this.bindingMap_.push(b,a))};shaka.util.EventManager.prototype.listenOnce=function(a,b,c,d){var e=this,f=function(g){e.unlisten(a,b,f);c(g)};this.listen(a,b,f,d)};
|
|
363
364
|
shaka.util.EventManager.prototype.unlisten=function(a,b,c){if(this.bindingMap_){var d=this.bindingMap_.get(b)||[];d=$jscomp.makeIterator(d);for(var e=d.next();!e.done;e=d.next())e=e.value,e.target!=a||c!=e.listener&&c||(e.unlisten(),this.bindingMap_.remove(b,e))}};shaka.util.EventManager.prototype.removeAll=function(){if(this.bindingMap_){var a=this.bindingMap_.getAll();a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next())b.value.unlisten();this.bindingMap_.clear()}};
|
|
@@ -413,7 +414,8 @@ shaka.util.TXml.txmlNodeToDomElement=function(a){var b=shaka.util.TXml,c="",d=a.
|
|
|
413
414
|
shaka.util.TXml.cloneNode=function(a){if(!a)return null;var b={tagName:a.tagName,attributes:shaka.util.ObjectUtils.shallowCloneObject(a.attributes),children:[],parent:null};a=$jscomp.makeIterator(a.children);for(var c=a.next();!c.done;c=a.next())c=c.value,"string"===typeof c?b.children.push(c):(c=shaka.util.TXml.cloneNode(c),c.parent=b,b.children.push(c));return b};shaka.util.TXml.uriToNameSpace_=new Map;shaka.util.TXml.nameSpaceToUri_=new Map;shaka.text.Cue=function(a,b,c){var d=shaka.text.Cue;this.startTime=a;this.endTime=b;this.payload=c;this.region=new shaka.text.CueRegion;this.position=null;this.positionAlign=d.positionAlign.AUTO;this.size=0;this.textAlign=d.textAlign.CENTER;this.direction=d.direction.HORIZONTAL_LEFT_TO_RIGHT;this.writingMode=d.writingMode.HORIZONTAL_TOP_TO_BOTTOM;this.lineInterpretation=d.lineInterpretation.LINE_NUMBER;this.line=null;this.lineHeight="";this.lineAlign=d.lineAlign.START;this.displayAlign=d.displayAlign.AFTER;
|
|
414
415
|
this.fontSize=this.border=this.backgroundImage=this.backgroundColor=this.color="";this.fontWeight=d.fontWeight.NORMAL;this.fontStyle=d.fontStyle.NORMAL;this.linePadding=this.letterSpacing=this.fontFamily="";this.opacity=1;this.textCombineUpright="";this.textDecoration=[];this.textStrokeWidth=this.textStrokeColor=this.textShadow="";this.wrapLine=!0;this.id="";this.nestedCues=[];this.lineBreak=this.isContainer=!1;this.rubyTag=null;this.cellResolution={columns:32,rows:15}};
|
|
415
416
|
shaka.text.Cue.lineBreak=function(a,b){a=new shaka.text.Cue(a,b,"");a.lineBreak=!0;return a};shaka.text.Cue.prototype.clone=function(){var a=new shaka.text.Cue(0,0,""),b;for(b in this)a[b]=this[b],a[b]&&a[b].constructor==Array&&(a[b]=a[b].slice());return a};
|
|
416
|
-
shaka.text.Cue.equal=function(a,b){if(a.
|
|
417
|
+
shaka.text.Cue.equal=function(a,b){if(a.payload!=b.payload||!(.001>Math.abs(a.startTime-b.startTime)&&.001>Math.abs(a.endTime-b.endTime)))return!1;for(var c in a)if("startTime"!=c&&"endTime"!=c&&"payload"!=c)if("nestedCues"==c){if(!shaka.util.ArrayUtils.equal(a.nestedCues,b.nestedCues,shaka.text.Cue.equal))return!1}else if("region"==c||"cellResolution"==c)for(var d in a[c]){if(a[c][d]!=b[c][d])return!1}else if(Array.isArray(a[c])){if(!shaka.util.ArrayUtils.equal(a[c],b[c]))return!1}else if(a[c]!=
|
|
418
|
+
b[c])return!1;return!0};
|
|
417
419
|
shaka.text.Cue.parseCuePayload=function(a,b){b=void 0===b?new Map:b;var c=shaka.util.StringUtils,d=shaka.util.TXml,e=a.payload;if(e.includes("<")){0===b.size&&shaka.text.Cue.addDefaultTextColor(b);e=shaka.text.Cue.replaceKaraokeStylePayload_(e);e=shaka.text.Cue.replaceVoiceStylePayload_(e);e=shaka.text.Cue.escapeInvalidChevrons_(e);a.payload="";try{var f=d.parseXmlString("<span>"+e+"</span>","span")}catch(g){shaka.log.warning("cue parse fail: ",g)}if(f)if(f=f.children,1!=f.length||d.isNode(f[0]))for(c=
|
|
418
420
|
$jscomp.makeIterator(f),d=c.next();!d.done;d=c.next())shaka.text.Cue.generateCueFromElement_(d.value,a,b);else a.payload=c.htmlUnescape(e);else shaka.log.warning("The cue's markup could not be parsed: ",e),a.payload=c.htmlUnescape(e)}else a.payload=c.htmlUnescape(e)};
|
|
419
421
|
shaka.text.Cue.addDefaultTextColor=function(a){for(var b=$jscomp.makeIterator(Object.entries(shaka.text.Cue.defaultTextColor)),c=b.next();!c.done;c=b.next()){var d=$jscomp.makeIterator(c.value);c=d.next().value;d=d.next().value;var e=new shaka.text.Cue(0,0,"");e.color=d;a.set("."+c,e)}b=$jscomp.makeIterator(Object.entries(shaka.text.Cue.defaultTextBackgroundColor));for(c=b.next();!c.done;c=b.next())d=$jscomp.makeIterator(c.value),c=d.next().value,d=d.next().value,e=new shaka.text.Cue(0,0,""),e.backgroundColor=
|
|
@@ -460,7 +462,7 @@ shaka.text.TextEngine.prototype.getNumberOfClosedCaptionChannels=function(){retu
|
|
|
460
462
|
goog.exportProperty(shaka.text.TextEngine,"unregisterParser",shaka.text.TextEngine.unregisterParser);goog.exportProperty(shaka.text.TextEngine,"registerParser",shaka.text.TextEngine.registerParser);shaka.text.TextEngine.parserMap_=new Map;shaka.util.Functional=function(){};shaka.util.Functional.createFallbackPromiseChain=function(a,b){return a.reduce(function(c,d){return c.catch(function(){return b(d)})},Promise.reject())};shaka.util.Functional.collapseArrays=function(a,b){return a.concat(b)};shaka.util.Functional.ignored=function(){};shaka.util.Functional.noop=function(){};shaka.util.Functional.isNotNull=function(a){return null!=a};
|
|
461
463
|
shaka.util.Functional.promiseWithTimeout=function(a,b){return Promise.race([b,new Promise(function(c,d){(new shaka.util.Timer(d)).tickAfter(a)})])};shaka.util.StreamUtils=function(){};
|
|
462
464
|
shaka.util.StreamUtils.chooseCodecsAndFilterManifest=function(a,b,c,d,e){var f=shaka.util.StreamUtils,g=shaka.util.MimeUtils;if(e.length){var h=a.textStreams;e=$jscomp.makeIterator(e);for(var k=e.next(),l={};!k.done;l={textFormat:void 0},k=e.next())if(l.textFormat=k.value,k=h.filter(function(u){return function(w){return w.codecs.startsWith(u.textFormat)||w.mimeType.startsWith(u.textFormat)?!0:!1}}(l)),k.length){h=k;break}a.textStreams=h}h=a.variants;if(b.length||c.length)h=f.choosePreferredCodecs(h,
|
|
463
|
-
b,c);if(d.length){b=new shaka.util.MultiMap;c=$jscomp.makeIterator(h);for(f=c.next();!f.done;f=c.next())f=f.value,b.push(String(f.video.width||0),f);var m=[];b.forEach(function(u,w){u=0;var v=[];w=$jscomp.makeIterator(w);for(var x=w.next(),y={};!x.done;y={variant$jscomp$3:void 0},x=w.next())y.variant$jscomp$3=x.value,x=d.filter(function(
|
|
465
|
+
b,c);if(d.length){b=new shaka.util.MultiMap;c=$jscomp.makeIterator(h);for(f=c.next();!f.done;f=c.next())f=f.value,b.push(String(f.video.width||0),f);var m=[];b.forEach(function(u,w){u=0;var v=[];w=$jscomp.makeIterator(w);for(var x=w.next(),y={};!x.done;y={variant$jscomp$3:void 0},x=w.next())y.variant$jscomp$3=x.value,x=d.filter(function(B){return function(A){return B.variant$jscomp$3.decodingInfos[0][A]}}(y)).length,x>u?(u=x,v=[y.variant$jscomp$3]):x==u&&v.push(y.variant$jscomp$3);m.push.apply(m,
|
|
464
466
|
$jscomp.arrayFromIterable(v))});h=m}c=new Set;b=new Set;f=$jscomp.makeIterator(h);for(h=f.next();!h.done;h=f.next())h=h.value,h.audio&&c.add(h.audio),h.video&&b.add(h.video);f=Array.from(c).sort(function(u,w){return u.bandwidth-w.bandwidth});var n=[];c=new Map;f=$jscomp.makeIterator(f);for(h=f.next();!h.done;h=f.next()){h=h.value;e=h.language+(h.channelsCount||0)+(h.audioSamplingRate||0)+h.roles.join(",")+h.label+h.groupId+h.fastSwitching;k=c.get(e)||[];if(k.length){l=k[k.length-1];var p=g.getNormalizedCodec(l.codecs),
|
|
465
467
|
q=g.getNormalizedCodec(h.codecs);p!=q||h.bandwidth&&l.bandwidth&&!(h.bandwidth>l.bandwidth)||(k.push(h),n.push(h.id))}else k.push(h),n.push(h.id);c.set(e,k)}var r={vp8:1,avc:1,"dovi-avc":.95,vp9:.9,vp09:.9,hevc:.85,"dovi-hevc":.8,"dovi-p5":.75,av01:.7,"dovi-av1":.65,vvc:.6};f=Array.from(b).sort(function(u,w){if(!u.bandwidth||!w.bandwidth||u.bandwidth==w.bandwidth){if(u.codecs&&w.codecs&&u.codecs!=w.codecs&&u.width==w.width){var v=g.getNormalizedCodec(u.codecs),x=g.getNormalizedCodec(w.codecs);if(v!=
|
|
466
468
|
x)return(r[v]||1)-(r[x]||1)}return u.width-w.width}return u.bandwidth-w.bandwidth});b=shaka.media.Capabilities.isChangeTypeSupported();var t=[];c=new Map;f=$jscomp.makeIterator(f);for(h=f.next();!h.done;h=f.next()){h=h.value;e=Math.round(h.frameRate||0)+(h.hdr||"")+h.fastSwitching;k=c.get(e)||[];if(k.length){l=k[k.length-1];if(!b&&(p=g.getNormalizedCodec(l.codecs),q=g.getNormalizedCodec(h.codecs),p!==q))continue;h.width>l.width||h.height>l.height?(k.push(h),t.push(h.id)):h.width==l.width&&h.height==
|
|
@@ -482,9 +484,9 @@ q&&(n.cache.set(n.cacheKey,q),e=c(e,q))}}(k)));return m.yield(Promise.all(f),2)}
|
|
|
482
484
|
shaka.util.StreamUtils.checkEachDecodingConfigCombination_=function(a){var b=[""];a.video&&(b=shaka.util.MimeUtils.getCodecs(a.video.contentType).split(","));var c=[""];a.audio&&(c=shaka.util.MimeUtils.getCodecs(a.audio.contentType).split(","));var d=[];b=$jscomp.makeIterator(b);for(var e=b.next();!e.done;e=b.next()){e=e.value;for(var f=$jscomp.makeIterator(c),g=f.next(),h={};!g.done;h={copy$jscomp$1:void 0},g=f.next()){g=g.value;h.copy$jscomp$1=shaka.util.ObjectUtils.cloneObject(a);if(a.video){var k=
|
|
483
485
|
shaka.util.MimeUtils.getBasicType(h.copy$jscomp$1.video.contentType);h.copy$jscomp$1.video.contentType=shaka.util.MimeUtils.getFullType(k,e)}a.audio&&(k=shaka.util.MimeUtils.getBasicType(h.copy$jscomp$1.audio.contentType),h.copy$jscomp$1.audio.contentType=shaka.util.MimeUtils.getFullType(k,g));d.push(new Promise(function(l){return function(m,n){shaka.util.Functional.promiseWithTimeout(1,navigator.mediaCapabilities.decodingInfo(l.copy$jscomp$1)).then(function(p){m(p)}).catch(n)}}(h)))}}return Promise.all(d).catch(function(l){shaka.log.info("MediaCapabilities.decodingInfo() failed.",
|
|
484
486
|
JSON.stringify(a),l);return null})};
|
|
485
|
-
shaka.util.StreamUtils.getDecodingInfosForVariants=function(a,b,c,d){var e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,A
|
|
487
|
+
shaka.util.StreamUtils.getDecodingInfosForVariants=function(a,b,c,d){var e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,B,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(z){switch(z.nextAddress){case 1:if(e=a.some(function(C){return C.decodingInfos.length}))return shaka.log.debug("Already got the variants' decodingInfo."),z.return();f=$jscomp.makeIterator(d);g=f.next();h={};case 2:if(g.done){z.jumpTo(4);break}h.preferredKeySystem=g.value;k=!1;l=$jscomp.makeIterator(a);m=l.next();case 5:if(m.done){z.jumpTo(7);
|
|
486
488
|
break}n=m.value;p=shaka.util.StreamUtils.getDecodingConfigs_(n,b,c).filter(function(C){return function(D){D=D[0];return(D.keySystemConfiguration&&D.keySystemConfiguration.keySystem)===C.preferredKeySystem}}(h));q=$jscomp.makeIterator(p);r=q.next();case 8:if(r.done){z.jumpTo(10);break}t=r.value;return z.yield(shaka.util.StreamUtils.getDecodingInfosForVariant_(n,t),9);case 9:r=q.next();z.jumpTo(8);break;case 10:n.decodingInfos.length&&(k=!0);m=l.next();z.jumpTo(5);break;case 7:if(k)return z.return();
|
|
487
|
-
h={preferredKeySystem:void 0};g=f.next();z.jumpTo(2);break;case 4:u=$jscomp.makeIterator(a),w=u.next();case 12:if(w.done){z.jumpTo(0);break}v=w.value;x=shaka.util.StreamUtils.getDecodingConfigs_(v,b,c).filter(function(C){C=C[0];C=C.keySystemConfiguration&&C.keySystemConfiguration.keySystem;return!C||!d.includes(C)});y=$jscomp.makeIterator(x);
|
|
489
|
+
h={preferredKeySystem:void 0};g=f.next();z.jumpTo(2);break;case 4:u=$jscomp.makeIterator(a),w=u.next();case 12:if(w.done){z.jumpTo(0);break}v=w.value;x=shaka.util.StreamUtils.getDecodingConfigs_(v,b,c).filter(function(C){C=C[0];C=C.keySystemConfiguration&&C.keySystemConfiguration.keySystem;return!C||!d.includes(C)});y=$jscomp.makeIterator(x);B=y.next();case 15:if(B.done){w=u.next();z.jumpTo(12);break}A=B.value;return z.yield(shaka.util.StreamUtils.getDecodingInfosForVariant_(v,A),16);case 16:B=y.next(),
|
|
488
490
|
z.jumpTo(15)}})};
|
|
489
491
|
shaka.util.StreamUtils.getDecodingConfigs_=function(a,b,c){var d=a.audio,e=a.video,f=shaka.util.ManifestParserUtils.ContentType,g=shaka.util.ManifestParserUtils,h=shaka.util.MimeUtils,k=shaka.util.StreamUtils,l=[],m=[];if(e)for(var n=$jscomp.makeIterator(e.fullMimeTypes),p=n.next();!p.done;p=n.next()){p=p.value;var q=h.getCodecs(p);if(q.includes(",")&&!d){var r=q.split(","),t=h.getBasicType(p);q=g.guessCodecs(f.VIDEO,r);r=g.guessCodecs(f.AUDIO,r);r=k.getCorrectAudioCodecs(r,t);t=h.getFullOrConvertedType(t,
|
|
490
492
|
r,f.AUDIO);m.push({contentType:t,channels:2,bitrate:a.bandwidth||1,samplerate:1,spatialRendering:!1})}q=k.getCorrectVideoCodecs(q);p={contentType:h.getFullOrConvertedType(h.getBasicType(p),q,f.VIDEO),width:e.width||64,height:e.height||64,bitrate:e.bandwidth||a.bandwidth||1,framerate:e.frameRate||1};if(e.hdr)switch(e.hdr){case "SDR":p.transferFunction="srgb";break;case "PQ":p.transferFunction="pq";break;case "HLG":p.transferFunction="hlg"}e.colorGamut&&(p.colorGamut=e.colorGamut);l.push(p)}if(d)for(g=
|
|
@@ -501,10 +503,11 @@ shaka.util.StreamUtils.filterManifestByCurrentVariant=function(a,b){var c=shaka.
|
|
|
501
503
|
shaka.util.StreamUtils.filterImageStreams_=function(a){var b,c,d,e,f,g,h,k;return $jscomp.asyncExecutePromiseGeneratorProgram(function(l){switch(l.nextAddress){case 1:b=[],c=$jscomp.makeIterator(a.imageStreams),d=c.next();case 2:if(d.done){l.jumpTo(4);break}e=d.value;f=e.mimeType;"application/mp4"==f&&"mjpg"==e.codecs&&(f="image/jpg");if(shaka.util.StreamUtils.supportedImageMimeTypes_.has(f)){l.jumpTo(5);break}g=shaka.util.StreamUtils.minImage_.get(f);if(!g){shaka.util.StreamUtils.supportedImageMimeTypes_.set(f,
|
|
502
504
|
!1);l.jumpTo(5);break}return l.yield(shaka.util.StreamUtils.isImageSupported_(g),7);case 7:h=l.yieldResult,shaka.util.StreamUtils.supportedImageMimeTypes_.set(f,h);case 5:(k=shaka.util.StreamUtils.supportedImageMimeTypes_.get(f))?b.push(e):shaka.log.debug("Dropping image stream. Is not supported by the platform.",e);d=c.next();l.jumpTo(2);break;case 4:a.imageStreams=b,l.jumpToEnd()}})};
|
|
503
505
|
shaka.util.StreamUtils.isImageSupported_=function(a){return new Promise(function(b){var c=new Image;c.src=a;"decode"in c?c.decode().then(function(){b(!0)}).catch(function(){b(!1)}):c.onload=c.onerror=function(){b(2===c.height)}})};shaka.util.StreamUtils.areStreamsCompatible_=function(a,b){return a.mimeType!=b.mimeType||a.codecs.split(".")[0]!=b.codecs.split(".")[0]?!1:!0};
|
|
504
|
-
shaka.util.StreamUtils.variantToTrack=function(a){var b=a.audio,
|
|
505
|
-
active:!1,type:"variant",bandwidth:a.bandwidth,language:a.language,label:null,kind:
|
|
506
|
-
originalAudioId:null,originalTextId:null,originalImageId:null,accessibilityPurpose:null,originalLanguage:null};
|
|
507
|
-
|
|
506
|
+
shaka.util.StreamUtils.variantToTrack=function(a){var b=shaka.util.ManifestParserUtils,c=shaka.util.ManifestParserUtils.ContentType,d=a.audio,e=a.video,f=d?d.mimeType:null,g=e?e.mimeType:null,h=d?d.codecs:null,k=e?e.codecs:null,l=[];k&&l.push(k);h&&l.push(h);var m=[];e&&m.push(e.mimeType);d&&m.push(d.mimeType);m=m[0]||null;var n=[];d&&n.push(d.kind);e&&n.push(e.kind);n=n[0]||null;var p=new Set;if(d)for(var q=$jscomp.makeIterator(d.roles),r=q.next();!r.done;r=q.next())p.add(r.value);if(e)for(q=$jscomp.makeIterator(e.roles),
|
|
507
|
+
r=q.next();!r.done;r=q.next())p.add(r.value);a={id:a.id,active:!1,type:"variant",bandwidth:a.bandwidth,language:a.language,label:null,kind:n,width:null,height:null,frameRate:null,pixelAspectRatio:null,hdr:null,colorGamut:null,videoLayout:null,mimeType:m,audioMimeType:f,videoMimeType:g,codecs:l.join(", "),audioCodec:h,videoCodec:k,primary:a.primary,roles:Array.from(p),audioRoles:null,forced:!1,videoId:null,audioId:null,channelsCount:null,audioSamplingRate:null,spatialAudio:!1,tilesLayout:null,audioBandwidth:null,
|
|
508
|
+
videoBandwidth:null,originalVideoId:null,originalAudioId:null,originalTextId:null,originalImageId:null,accessibilityPurpose:null,originalLanguage:null};if(e&&(a.videoId=e.id,a.originalVideoId=e.originalId,a.width=e.width||null,a.height=e.height||null,a.frameRate=e.frameRate||null,a.pixelAspectRatio=e.pixelAspectRatio||null,a.videoBandwidth=e.bandwidth||null,a.hdr=e.hdr||null,a.colorGamut=e.colorGamut||null,a.videoLayout=e.videoLayout||null,k.includes(","))){a.channelsCount=e.channelsCount;a.audioSamplingRate=
|
|
509
|
+
e.audioSamplingRate;a.spatialAudio=e.spatialAudio;a.originalLanguage=e.originalLanguage;a.audioMimeType=g;e=k.split(",");try{a.videoCodec=b.guessCodecs(c.VIDEO,e),a.audioCodec=b.guessCodecs(c.AUDIO,e)}catch(t){}}d&&(a.audioId=d.id,a.originalAudioId=d.originalId,a.channelsCount=d.channelsCount,a.audioSamplingRate=d.audioSamplingRate,a.audioBandwidth=d.bandwidth||null,a.spatialAudio=d.spatialAudio,a.label=d.label,a.audioRoles=d.roles,a.accessibilityPurpose=d.accessibilityPurpose,a.originalLanguage=
|
|
510
|
+
d.originalLanguage);return a};
|
|
508
511
|
shaka.util.StreamUtils.textStreamToTrack=function(a){return{id:a.id,active:!1,type:shaka.util.ManifestParserUtils.ContentType.TEXT,bandwidth:0,language:a.language,label:a.label,kind:a.kind||null,width:null,height:null,frameRate:null,pixelAspectRatio:null,hdr:null,colorGamut:null,videoLayout:null,mimeType:a.mimeType,audioMimeType:null,videoMimeType:null,codecs:a.codecs||null,audioCodec:null,videoCodec:null,primary:a.primary,roles:a.roles,audioRoles:null,forced:a.forced,videoId:null,audioId:null,channelsCount:null,
|
|
509
512
|
audioSamplingRate:null,spatialAudio:!1,tilesLayout:null,audioBandwidth:null,videoBandwidth:null,originalVideoId:null,originalAudioId:null,originalTextId:a.originalId,originalImageId:null,accessibilityPurpose:a.accessibilityPurpose,originalLanguage:a.originalLanguage}};
|
|
510
513
|
shaka.util.StreamUtils.imageStreamToTrack=function(a){var b=shaka.util.ManifestParserUtils.ContentType,c=a.width||null,d=a.height||null,e=null;a.segmentIndex&&(e=a.segmentIndex.earliestReference());var f=a.tilesLayout;e&&(f=e.getTilesLayout()||f);f&&null!=c&&(c/=Number(f.split("x")[0]));f&&null!=d&&(d/=Number(f.split("x")[1]));return{id:a.id,active:!1,type:b.IMAGE,bandwidth:a.bandwidth||0,language:"",label:null,kind:null,width:c,height:d,frameRate:null,pixelAspectRatio:null,hdr:null,colorGamut:null,
|
|
@@ -571,8 +574,8 @@ shaka.net.NetworkingEngine.prototype.filterRequest_=function(a,b,c){var d=shaka.
|
|
|
571
574
|
shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.REQUEST_FILTER_ERROR,h);})};shaka.net.NetworkingEngine.prototype.makeRequestWithRetry_=function(a,b,c,d){var e=new shaka.net.Backoff(b.retryParameters,!1);return this.send_(a,b,c,e,0,null,d)};
|
|
572
575
|
shaka.net.NetworkingEngine.prototype.send_=function(a,b,c,d,e,f,g){var h=this;this.forceHTTP_&&(b.uris[e]=b.uris[e].replace("https://","http://"));this.forceHTTPS_&&(b.uris[e]=b.uris[e].replace("http://","https://"));if(0<e&&this.onRetry_)this.onRetry_(a,c,b.uris[e],b.uris[e-1]);var k=new goog.Uri(b.uris[e]),l=k.getScheme(),m=!1;l||(l=shaka.net.NetworkingEngine.getLocationProtocol_(),goog.asserts.assert(":"==l[l.length-1],"location.protocol expected to end with a colon!"),l=l.slice(0,-1),k.setScheme(l),
|
|
573
576
|
b.uris[e]=k.toString());l=l.toLowerCase();var n=(l=shaka.net.NetworkingEngine.schemes_.get(l))?l.plugin:null;if(!n)return shaka.util.AbortableOperation.failed(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.UNSUPPORTED_SCHEME,k));var p=l.progressSupport;(k=this.hostCommonAccessTokenMap_.get(k.getDomain()))&&(b.headers[shaka.net.NetworkingEngine.CommonAccessTokenHeaderName_]=k);var q=null,r=null,t=!1,u=!1,w;return shaka.util.AbortableOperation.notAbortable(d.attempt()).chain(function(){if(h.destroyed_)return shaka.util.AbortableOperation.aborted();
|
|
574
|
-
w=Date.now();var v=shaka.net.NetworkingEngine.RequestType.SEGMENT,x=0;b.requestStartTime=Date.now();var y=n(b.uris[e],b,a,function(z,C,D){q&&q.stop();r&&r.tickAfter(
|
|
575
|
-
|
|
577
|
+
w=Date.now();var v=shaka.net.NetworkingEngine.RequestType.SEGMENT,x=0;b.requestStartTime=Date.now();var y=n(b.uris[e],b,a,function(z,C,D){q&&q.stop();r&&r.tickAfter(A/1E3);if(h.onProgressUpdated_&&a==v){x++;b.packetNumber=x;var E=h.allowSwitch_(c);h.onProgressUpdated_(z,C,E,b);m=!0;g.setBytes(D)}},function(z){u=!0;b.timeToFirstByte=Date.now()-b.requestStartTime;if(h.onHeadersReceived_)h.onHeadersReceived_(z,b,a)},{minBytesForProgressEvents:h.minBytesForProgressEvents_});if(!p)return y;var B=b.retryParameters.connectionTimeout;
|
|
578
|
+
B&&(q=new shaka.util.Timer(function(){t=!0;y.abort()}),q.tickAfter(B/1E3));var A=b.retryParameters.stallTimeout;A&&(r=new shaka.util.Timer(function(){t=!0;y.abort()}));return y}).chain(function(v){q&&q.stop();r&&r.stop();void 0==v.timeMs&&(v.timeMs=Date.now()-w);var x=v.headers[shaka.net.NetworkingEngine.CommonAccessTokenHeaderName_];if(x){var y=new goog.Uri(v.uri);h.hostCommonAccessTokenMap_.set(y.getDomain(),x)}x={response:v,gotProgress:m};if(!u&&h.onHeadersReceived_)h.onHeadersReceived_(v.headers,
|
|
576
579
|
b,a);if(h.onDownloadCompleted_)h.onDownloadCompleted_(b,v);return x},function(v){q&&q.stop();r&&r.stop();if(h.onDownloadFailed_){var x=null,y=0;v instanceof shaka.util.Error&&(x=v,v.code==shaka.util.Error.Code.BAD_HTTP_STATUS&&(y=v.data[1]));h.onDownloadFailed_(b,x,y,t)}if(h.destroyed_)return shaka.util.AbortableOperation.aborted();t&&(v=new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.TIMEOUT,b.uris[e],a));if(v instanceof shaka.util.Error){if(v.code==
|
|
577
580
|
shaka.util.Error.Code.OPERATION_ABORTED)throw v;if(v.code==shaka.util.Error.Code.ATTEMPTS_EXHAUSTED)throw goog.asserts.assert(f,"Should have last error"),f;if(v.severity==shaka.util.Error.Severity.RECOVERABLE)return x=(new Map).set("error",v),x=new shaka.util.FakeEvent("retry",x),h.dispatchEvent(x),e=(e+1)%b.uris.length,h.send_(a,b,c,d,e,v,g)}throw v;})};
|
|
578
581
|
shaka.net.NetworkingEngine.prototype.filterResponse_=function(a,b,c){for(var d=shaka.util.AbortableOperation.completed(void 0),e=$jscomp.makeIterator(this.responseFilters_),f=e.next(),g={};!f.done;g={responseFilter:void 0},f=e.next())g.responseFilter=f.value,d=d.chain(function(h){return function(){var k=b.response;k.data&&(k.data=shaka.util.BufferUtils.toArrayBuffer(k.data));return(0,h.responseFilter)(a,k,c)}}(g));return d.chain(function(){return b},function(h){var k=shaka.util.Error.Severity.CRITICAL;
|
|
@@ -621,11 +624,11 @@ shaka.drm.DrmEngine.prototype.configure=function(a,b){this.config_=a;b&&(this.is
|
|
|
621
624
|
shaka.drm.DrmEngine.prototype.initForPlayback=function(a,b){this.storedPersistentSessions_=new Map;b=$jscomp.makeIterator(b);for(var c=b.next();!c.done;c=b.next())this.storedPersistentSessions_.set(c.value,{initData:null,initDataType:null});b=$jscomp.makeIterator(this.config_.persistentSessionsMetadata);for(c=b.next();!c.done;c=b.next())c=c.value,this.storedPersistentSessions_.set(c.sessionId,{initData:c.initData,initDataType:c.initDataType});this.usePersistentLicenses_=0<this.storedPersistentSessions_.size;
|
|
622
625
|
return this.init_(a)};
|
|
623
626
|
shaka.drm.DrmEngine.prototype.initForRemoval=function(a,b,c,d,e){var f=new Map;d={audioCapabilities:d,videoCapabilities:e,distinctiveIdentifier:"optional",persistentState:"required",sessionTypes:["persistent-license"],label:a};d.drmInfos=[{keySystem:a,licenseServerUri:b,distinctiveIdentifierRequired:!1,persistentStateRequired:!0,audioRobustness:"",videoRobustness:"",serverCertificate:c,serverCertificateUri:"",initData:null,keyIds:null}];f.set(a,d);return this.queryMediaKeys_(f,[])};
|
|
624
|
-
shaka.drm.DrmEngine.prototype.init_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y;return $jscomp.asyncExecutePromiseGeneratorProgram(function(
|
|
625
|
-
d));e=new Set;f=$jscomp.makeIterator(a);for(g=f.next();!g.done;g=f.next())for(h=g.value,k=b.getVariantDrmInfos_(h),l=$jscomp.makeIterator(k),m=l.next();!m.done;m=l.next())n=m.value,e.add(n);p=$jscomp.makeIterator(e);for(q=p.next();!q.done;q=p.next())r=q.value,shaka.drm.DrmEngine.fillInDrmInfoDefaults_(r,shaka.util.MapUtils.asMap(b.config_.servers),shaka.util.MapUtils.asMap(b.config_.advanced||{}),b.config_.keySystemsMapping);t=function(
|
|
626
|
-
|
|
627
|
-
D,(
|
|
628
|
-
x=c||Object.keys(b.config_.servers).length;if(!x)return b.initialized_=!0,
|
|
627
|
+
shaka.drm.DrmEngine.prototype.init_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y;return $jscomp.asyncExecutePromiseGeneratorProgram(function(B){if(1==B.nextAddress){goog.asserts.assert(b.config_,"DrmEngine configure() must be called before init()!");shaka.drm.DrmEngine.configureClearKey(b.config_.clearKeys,a);c=a.some(function(A){return A.video&&A.video.drmInfos.length||A.audio&&A.audio.drmInfos.length?!0:!1});c||(d=shaka.util.MapUtils.asMap(b.config_.servers),shaka.drm.DrmEngine.replaceDrmInfo_(a,
|
|
628
|
+
d));e=new Set;f=$jscomp.makeIterator(a);for(g=f.next();!g.done;g=f.next())for(h=g.value,k=b.getVariantDrmInfos_(h),l=$jscomp.makeIterator(k),m=l.next();!m.done;m=l.next())n=m.value,e.add(n);p=$jscomp.makeIterator(e);for(q=p.next();!q.done;q=p.next())r=q.value,shaka.drm.DrmEngine.fillInDrmInfoDefaults_(r,shaka.util.MapUtils.asMap(b.config_.servers),shaka.util.MapUtils.asMap(b.config_.advanced||{}),b.config_.keySystemsMapping);t=function(A,z){var C=[];A=$jscomp.makeIterator(A);for(var D=A.next();!D.done;D=
|
|
629
|
+
A.next()){D=D.value;var E=D[z]||b.config_.advanced&&b.config_.advanced[D.keySystem]&&b.config_.advanced[D.keySystem][z]||"";""==E&&shaka.drm.DrmUtils.isWidevineKeySystem(D.keySystem)&&("audioRobustness"==z?E=[b.config_.defaultAudioRobustnessForWidevine]:"videoRobustness"==z&&(E=[b.config_.defaultVideoRobustnessForWidevine]));if("string"===typeof E)C.push(D);else if(Array.isArray(E)){0===E.length&&(E=[""]);E=$jscomp.makeIterator(E);for(var H=E.next();!H.done;H=E.next()){var I={};C.push(Object.assign({},
|
|
630
|
+
D,(I[z]=H.value,I)))}}}return C};u=$jscomp.makeIterator(a);for(w=u.next();!w.done;w=u.next())v=w.value,v.video&&(v.video.drmInfos=t(v.video.drmInfos,"videoRobustness"),v.video.drmInfos=t(v.video.drmInfos,"audioRobustness")),v.audio&&(v.audio.drmInfos=t(v.audio.drmInfos,"videoRobustness"),v.audio.drmInfos=t(v.audio.drmInfos,"audioRobustness"));return B.yield(shaka.util.StreamUtils.getDecodingInfosForVariants(a,b.usePersistentLicenses_,b.srcEquals_,b.config_.preferredKeySystems),2)}b.destroyer_.ensureNotDestroyed();
|
|
631
|
+
x=c||Object.keys(b.config_.servers).length;if(!x)return b.initialized_=!0,B.return(Promise.resolve());y=b.queryMediaKeys_(void 0,a);return B.return(c?y:y.catch(function(){}))})};
|
|
629
632
|
shaka.drm.DrmEngine.prototype.attachMediaKeys_=function(){var a=this,b;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){switch(c.nextAddress){case 1:if(a.video_.mediaKeys)return c.return();if(!a.mediaKeysAttached_){c.jumpTo(2);break}return c.yield(a.mediaKeysAttached_,3);case 3:return a.destroyer_.ensureNotDestroyed(),c.return();case 2:return c.setCatchFinallyBlocks(4),a.mediaKeysAttached_=a.video_.setMediaKeys(a.mediaKeys_),c.yield(a.mediaKeysAttached_,6);case 6:c.leaveTryBlock(5);
|
|
630
633
|
break;case 4:b=c.enterCatchBlock(),goog.asserts.assert(b instanceof Error,"Wrong error type!"),a.onError_(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.FAILED_TO_ATTACH_TO_VIDEO,b.message));case 5:a.destroyer_.ensureNotDestroyed(),c.jumpToEnd()}})};
|
|
631
634
|
shaka.drm.DrmEngine.prototype.onEncryptedEvent_=function(a){var b=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){if(1==c.nextAddress)return c.yield(b.attachMediaKeys_(),2);b.newInitData(a.initDataType,shaka.util.BufferUtils.toUint8(a.initData));c.jumpToEnd()})};
|
|
@@ -655,7 +658,7 @@ e=c.next();for(d={};!e.done;d={preferredKeySystem$jscomp$1:void 0},e=c.next()){d
|
|
|
655
658
|
e.next()){f=$jscomp.makeIterator(f.value.decodingInfos);for(var g=f.next();!g.done;g=f.next())if(g=g.value,g.supported&&g.keySystemAccess){var h=g.keySystemAccess.keySystem,k=b.get(h);!k&&this.config_.keySystemsMapping[h]&&(k=b.get(this.config_.keySystemsMapping[h]));h=$jscomp.makeIterator(k);for(k=h.next();!k.done;k=h.next())if(!!k.value.licenseServerUri==d)return g.keySystemAccess}}return null};
|
|
656
659
|
shaka.drm.DrmEngine.prototype.getKeySystemAccessByConfigs_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x;return $jscomp.asyncExecutePromiseGeneratorProgram(function(y){switch(y.nextAddress){case 1:if(1==a.size&&a.has(""))throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.NO_RECOGNIZED_KEY_SYSTEMS);d=$jscomp.makeIterator(a.values());for(e=d.next();!e.done;e=d.next())f=e.value,0==f.audioCapabilities.length&&delete f.audioCapabilities,
|
|
657
660
|
0==f.videoCapabilities.length&&delete f.videoCapabilities;g=$jscomp.makeIterator(b.config_.preferredKeySystems);h=g.next();case 2:if(h.done){y.jumpTo(4);break}k=h.value;if(!a.has(k)){y.jumpTo(3);break}l=a.get(k);y.setCatchFinallyBlocks(6);return y.yield(navigator.requestMediaKeySystemAccess(k,[l]),8);case 8:return c=y.yieldResult,y.return(c);case 6:m=y.enterCatchBlock(),shaka.log.v2("Requesting",k,"failed with config",l,m);case 7:b.destroyer_.ensureNotDestroyed();case 3:h=g.next();y.jumpTo(2);break;
|
|
658
|
-
case 4:n=$jscomp.makeIterator([!0,!1]),p=n.next();case 9:if(p.done){y.jumpTo(11);break}q=p.value;r=$jscomp.makeIterator(a.keys());t=r.next();case 12:if(t.done){p=n.next();y.jumpTo(9);break}u=t.value;w=a.get(u);v=w.drmInfos.some(function(
|
|
661
|
+
case 4:n=$jscomp.makeIterator([!0,!1]),p=n.next();case 9:if(p.done){y.jumpTo(11);break}q=p.value;r=$jscomp.makeIterator(a.keys());t=r.next();case 12:if(t.done){p=n.next();y.jumpTo(9);break}u=t.value;w=a.get(u);v=w.drmInfos.some(function(B){return!!B.licenseServerUri});if(v!=q){y.jumpTo(13);break}y.setCatchFinallyBlocks(15);return y.yield(navigator.requestMediaKeySystemAccess(u,[w]),17);case 17:return c=y.yieldResult,y.return(c);case 15:x=y.enterCatchBlock(),shaka.log.v2("Requesting",u,"failed with config",
|
|
659
662
|
w,x);case 16:b.destroyer_.ensureNotDestroyed();case 13:t=r.next();y.jumpTo(12);break;case 11:return y.return(c)}})};shaka.drm.DrmEngine.prototype.checkSessionsLoaded_=function(){this.areAllSessionsLoaded_()&&this.allSessionsLoaded_.resolve()};shaka.drm.DrmEngine.prototype.setLoadSessionTimeoutTimer_=function(a){var b=this;(new shaka.util.Timer(function(){a.loaded=!0;b.checkSessionsLoaded_()})).tickAfter(shaka.drm.DrmEngine.SESSION_LOAD_TIMEOUT_)};
|
|
660
663
|
shaka.drm.DrmEngine.prototype.loadOfflineSession_=function(a,b){var c=this,d,e,f,g,h,k,l;return $jscomp.asyncExecutePromiseGeneratorProgram(function(m){switch(m.nextAddress){case 1:try{shaka.log.v1("Attempting to load an offline session",a),d=c.mediaKeys_.createSession("persistent-license")}catch(n){return e=new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.FAILED_TO_CREATE_SESSION,n.message),c.onError_(e),m.return(Promise.reject(e))}c.eventManager_.listen(d,
|
|
661
664
|
"message",function(n){return c.onSessionMessage_(n)});c.eventManager_.listen(d,"keystatuseschange",function(n){return c.onKeyStatusesChange_(n)});f={initData:b.initData,initDataType:b.initDataType,loaded:!1,oldExpiration:Infinity,updatePromise:null,type:"persistent-license"};c.activeSessions_.set(d,f);m.setCatchFinallyBlocks(2);return m.yield(d.load(a),4);case 4:return g=m.yieldResult,c.destroyer_.ensureNotDestroyed(),shaka.log.v2("Loaded offline session",a,g),g||(c.activeSessions_.delete(d),h=c.config_.persistentSessionOnlinePlayback?
|
|
@@ -678,17 +681,17 @@ shaka.drm.DrmEngine.prototype.unpackPlayReadyRequest_=function(a){var b=shaka.ut
|
|
|
678
681
|
shaka.drm.DrmEngine.prototype.onKeyStatusesChange_=function(a){var b=this;a=a.target;shaka.log.v2("Key status changed for session",a.sessionId);var c=this.activeSessions_.get(a),d=!1;a.keyStatuses.forEach(function(f,g){if("string"==typeof g){var h=g;g=f;f=h}if(shaka.drm.DrmUtils.isPlayReadyKeySystem(b.currentDrmInfo_.keySystem)&&16==g.byteLength&&(shaka.util.Platform.isEdge()||shaka.util.Platform.isPS4())){h=shaka.util.BufferUtils.toDataView(g);var k=h.getUint32(0,!0),l=h.getUint16(4,!0),m=h.getUint16(6,
|
|
679
682
|
!0);h.setUint32(0,k,!1);h.setUint16(4,l,!1);h.setUint16(6,m,!1)}"status-pending"!=f&&(c.loaded=!0);c||goog.asserts.assert("usable"!=f,"Usable keys found in closed session");"expired"==f&&(d=!0);g=shaka.util.Uint8ArrayUtils.toHex(g).slice(0,32);b.keyStatusByKeyId_.set(g,f)});var e=a.expiration-Date.now();(0>e||d&&1E3>e)&&c&&!c.updatePromise&&(shaka.log.debug("Session has expired",a.sessionId),this.activeSessions_.delete(a),this.closeSession_(a));this.areAllSessionsLoaded_()&&(this.allSessionsLoaded_.resolve(),
|
|
680
683
|
this.keyStatusTimer_.tickAfter(shaka.drm.DrmEngine.KEY_STATUS_BATCH_TIME))};shaka.drm.DrmEngine.prototype.processKeyStatusChanges_=function(){var a=this.keyStatusByKeyId_,b=this.announcedKeyStatusByKeyId_;b.clear();a.forEach(function(c,d){return b.set(d,c)});a=Array.from(b.values());if(a.length&&a.every(function(c){return"expired"==c}))this.onError_(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.EXPIRED));this.playerInterface_.onKeyStatus(shaka.util.MapUtils.asObject(b))};
|
|
681
|
-
shaka.drm.DrmEngine.probeSupport=function(){var a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,A,
|
|
682
|
-
c=$jscomp.makeIterator(a);for(d=c.next();!d.done;d=c.next())e=d.value,b[e]=null;return
|
|
683
|
-
{contentType:'audio/webm; codecs="opus"'}];n={videoCapabilities:l,audioCapabilities:m,initDataTypes:["cenc","sinf","skd","keyids"]};p=[null,"cenc","cbcs","cbcs-1-9"];q=new Map;r=function(N,
|
|
684
|
-
|
|
685
|
-
!
|
|
686
|
-
t=function(N,
|
|
687
|
-
"required";
|
|
688
|
-
width:640,height:480,bitrate:1,framerate:1},audio:{contentType:m[0].contentType,channels:2,bitrate:1,samplerate:1},keySystemConfiguration:{keySystem:N,video:{encryptionScheme:
|
|
689
|
-
N,
|
|
690
|
-
(shaka.util.Platform.isWindows()||shaka.util.Platform.isMac())?!1:!0};
|
|
691
|
-
"",M)));return
|
|
684
|
+
shaka.drm.DrmEngine.probeSupport=function(){var a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,B,A,z,C,D,E,H,I,G,L,K,F,M;return $jscomp.asyncExecutePromiseGeneratorProgram(function(J){if(1==J.nextAddress){a="org.w3.clearkey com.widevine.alpha com.widevine.alpha.experiment com.microsoft.playready com.microsoft.playready.hardware com.microsoft.playready.recommendation com.chromecast.playready com.apple.fps.1_0 com.apple.fps com.huawei.wiseplay".split(" ");if(!shaka.drm.DrmUtils.isBrowserSupported()){b={};
|
|
685
|
+
c=$jscomp.makeIterator(a);for(d=c.next();!d.done;d=c.next())e=d.value,b[e]=null;return J.return(b)}f="1.0 1.1 1.2 1.3 1.4 2.0 2.1 2.2 2.3".split(" ");g=["SW_SECURE_CRYPTO","SW_SECURE_DECODE","HW_SECURE_CRYPTO","HW_SECURE_DECODE","HW_SECURE_ALL"];h=["150","2000","3000"];k={"com.widevine.alpha":g,"com.widevine.alpha.experiment":g,"com.microsoft.playready.recommendation":h};l=[{contentType:'video/mp4; codecs="avc1.42E01E"'},{contentType:'video/webm; codecs="vp8"'}];m=[{contentType:'audio/mp4; codecs="mp4a.40.2"'},
|
|
686
|
+
{contentType:'audio/webm; codecs="opus"'}];n={videoCapabilities:l,audioCapabilities:m,initDataTypes:["cenc","sinf","skd","keyids"]};p=[null,"cenc","cbcs","cbcs-1-9"];q=new Map;r=function(N,P){var O,W,Q,S,V,R,T,X,Y,U,ba,aa,Z;return $jscomp.asyncExecutePromiseGeneratorProgram(function(ca){switch(ca.nextAddress){case 1:return ca.setCatchFinallyBlocks(2),ca.yield(P.createMediaKeys(),4);case 4:O=ca.yieldResult;ca.leaveTryBlock(3);break;case 2:return ca.enterCatchBlock(),ca.return();case 3:Q=(W=P.getConfiguration().sessionTypes)?
|
|
687
|
+
W.includes("persistent-license"):!1;shaka.util.Platform.isTizen3()&&(Q=!1);S=P.getConfiguration().videoCapabilities;V=P.getConfiguration().audioCapabilities;R={persistentState:Q,encryptionSchemes:[],videoRobustnessLevels:[],audioRobustnessLevels:[],minHdcpVersions:[]};q.has(N)&&q.get(N)?R=q.get(N):q.set(N,R);(T=S[0].encryptionScheme)&&!R.encryptionSchemes.includes(T)&&R.encryptionSchemes.push(T);(X=S[0].robustness)&&!R.videoRobustnessLevels.includes(X)&&R.videoRobustnessLevels.push(X);(Y=V[0].robustness)&&
|
|
688
|
+
!R.audioRobustnessLevels.includes(Y)&&R.audioRobustnessLevels.push(Y);if("getStatusForPolicy"in O){U=[];ba=$jscomp.makeIterator(f);aa=ba.next();for(Z={};!aa.done;Z={hdcpVersion:void 0},aa=ba.next())Z.hdcpVersion=aa.value,R.minHdcpVersions.includes(Z.hdcpVersion)||U.push(O.getStatusForPolicy({minHdcpVersion:Z.hdcpVersion}).then(function(ea){return function(fa){"usable"!=fa||R.minHdcpVersions.includes(ea.hdcpVersion)||R.minHdcpVersions.push(ea.hdcpVersion)}}(Z)));return ca.yield(Promise.all(U),0)}ca.jumpTo(0)}})};
|
|
689
|
+
t=function(N,P,O,W){var Q,S,V,R,T,X,Y,U,ba,aa;return $jscomp.asyncExecutePromiseGeneratorProgram(function(Z){switch(Z.nextAddress){case 1:Z.setCatchFinallyBlocks(2);Q=shaka.util.ObjectUtils.cloneObject(n);S=$jscomp.makeIterator(Q.videoCapabilities);for(V=S.next();!V.done;V=S.next())R=V.value,R.encryptionScheme=P,R.robustness=O;T=$jscomp.makeIterator(Q.audioCapabilities);for(X=T.next();!X.done;X=T.next())Y=X.value,Y.encryptionScheme=P,Y.robustness=W;U=shaka.util.ObjectUtils.cloneObject(Q);U.persistentState=
|
|
690
|
+
"required";U.sessionTypes=["persistent-license"];ba=[U,Q];return Z.yield(shaka.util.Functional.promiseWithTimeout(1,navigator.requestMediaKeySystemAccess(N,ba)),4);case 4:return aa=Z.yieldResult,Z.yield(r(N,aa),5);case 5:Z.leaveTryBlock(0);break;case 2:Z.enterCatchBlock(),Z.jumpToEnd()}})};u=function(N,P,O,W){var Q,S,V,R;return $jscomp.asyncExecutePromiseGeneratorProgram(function(T){switch(T.nextAddress){case 1:return T.setCatchFinallyBlocks(2),Q={type:"media-source",video:{contentType:l[0].contentType,
|
|
691
|
+
width:640,height:480,bitrate:1,framerate:1},audio:{contentType:m[0].contentType,channels:2,bitrate:1,samplerate:1},keySystemConfiguration:{keySystem:N,video:{encryptionScheme:P,robustness:O},audio:{encryptionScheme:P,robustness:W}}},T.yield(shaka.util.Functional.promiseWithTimeout(1,navigator.mediaCapabilities.decodingInfo(Q)),4);case 4:return S=T.yieldResult,V=S.keySystemAccess,T.yield(r(N,V),5);case 5:T.leaveTryBlock(0);break;case 2:R=T.enterCatchBlock(),shaka.log.v2("Failed to probe support for",
|
|
692
|
+
N,R),T.jumpToEnd()}})};w=$jscomp.makeIterator(a);for(v=w.next();!v.done;v=w.next())x=v.value,q.set(x,null);y=function(N){return shaka.drm.DrmUtils.isClearKeySystem(N)&&shaka.util.Platform.isSafari()||shaka.drm.DrmUtils.isFairPlayKeySystem(N)&&shaka.util.Platform.isWindows()||shaka.drm.DrmUtils.isPlayReadyKeySystem(N)&&(shaka.util.Platform.isMac()||shaka.util.Platform.isApple())||shaka.drm.DrmUtils.isPlayReadyKeySystem(N)&&shaka.util.Platform.isFirefox()||shaka.drm.DrmUtils.isWisePlayKeySystem(N)&&
|
|
693
|
+
(shaka.util.Platform.isWindows()||shaka.util.Platform.isMac())?!1:!0};B=[];A=$jscomp.makeIterator(p);for(z=A.next();!z.done;z=A.next())for(C=z.value,D=$jscomp.makeIterator(a),E=D.next();!E.done;E=D.next())H=E.value,y(H)&&(B.push(t(H,C,"","")),B.push(u(H,C,"","")));I=$jscomp.makeIterator(a);for(G=I.next();!G.done;G=I.next())for(L=G.value,K=$jscomp.makeIterator(k[L]||[]),F=K.next();!F.done;F=K.next())M=F.value,y(L)&&(B.push(t(L,null,M,"")),B.push(t(L,null,"",M)),B.push(u(L,null,M,"")),B.push(u(L,null,
|
|
694
|
+
"",M)));return J.yield(Promise.all(B),2)}return J.return(shaka.util.MapUtils.asObject(q))})};shaka.drm.DrmEngine.prototype.onPlay_=function(){for(var a=$jscomp.makeIterator(this.mediaKeyMessageEvents_),b=a.next();!b.done;b=a.next())this.sendLicenseRequest_(b.value);this.initialRequestsSent_=!0;this.mediaKeyMessageEvents_=[]};
|
|
692
695
|
shaka.drm.DrmEngine.prototype.closeSession_=function(a){return $jscomp.asyncExecutePromiseGeneratorProgram(function(b){if(1==b.nextAddress)return b.setCatchFinallyBlocks(2),b.yield(shaka.util.Functional.promiseWithTimeout(shaka.drm.DrmEngine.CLOSE_TIMEOUT_,Promise.all([a.close().catch(function(){}),a.closed])),4);if(2!=b.nextAddress)return b.leaveTryBlock(0);b.enterCatchBlock();shaka.log.warning("Timeout waiting for session close");b.jumpToEnd()})};
|
|
693
696
|
shaka.drm.DrmEngine.prototype.closeOpenSessions_=function(){var a=this,b;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){b=Array.from(a.activeSessions_.entries());a.activeSessions_.clear();return c.yield(Promise.all(b.map(function(d){d=$jscomp.makeIterator(d);var e=d.next().value,f=d.next().value,g;return $jscomp.asyncExecutePromiseGeneratorProgram(function(h){if(1==h.nextAddress){h.setCatchFinallyBlocks(2);if(!a.initializedForStorage_&&!a.storedPersistentSessions_.has(e.sessionId)&&
|
|
694
697
|
"persistent-license"===f.type&&!a.config_.persistentSessionOnlinePlayback)return shaka.log.v1("Removing session",e.sessionId),h.yield(e.remove(),5);shaka.log.v1("Closing session",e.sessionId,f);return h.yield(a.closeSession_(e),5)}if(2!=h.nextAddress)return h.leaveTryBlock(0);g=h.enterCatchBlock();shaka.log.error("Failed to close or remove the session",g);h.jumpToEnd()})})),0)})};
|
|
@@ -844,9 +847,9 @@ shaka.util.TsParser.prototype.getVideoInfo=function(){return"hvc"==this.videoCod
|
|
|
844
847
|
shaka.util.TsParser.prototype.getAvcInfo_=function(){var a=shaka.util.TsParser,b={height:null,width:null,codec:null,frameRate:null},c=this.getVideoNalus();if(!c.length)return b;c=c.find(function(q){return q.type==a.H264_NALU_TYPE_SPS_});if(!c)return b;c=new shaka.util.ExpGolomb(c.data);var d=c.readUnsignedByte(),e=c.readUnsignedByte(),f=c.readUnsignedByte();c.skipExpGolomb();if(a.PROFILES_WITH_OPTIONAL_SPS_DATA_.includes(d)){var g=c.readUnsignedExpGolomb();3===g&&c.skipBits(1);c.skipExpGolomb();c.skipExpGolomb();
|
|
845
848
|
c.skipBits(1);if(c.readBoolean()){g=3!==g?8:12;for(var h=0;h<g;h++)c.readBoolean()&&(6>h?c.skipScalingList(16):c.skipScalingList(64))}}c.skipExpGolomb();g=c.readUnsignedExpGolomb();if(0===g)c.readUnsignedExpGolomb();else if(1===g)for(c.skipBits(1),c.skipExpGolomb(),c.skipExpGolomb(),g=c.readUnsignedExpGolomb(),h=0;h<g;h++)c.skipExpGolomb();c.skipExpGolomb();c.skipBits(1);g=c.readUnsignedExpGolomb();h=c.readUnsignedExpGolomb();var k=c.readBits(1);0===k&&c.skipBits(1);c.skipBits(1);var l=0,m=0,n=0,
|
|
846
849
|
p=0;c.readBoolean()&&(l=c.readUnsignedExpGolomb(),m=c.readUnsignedExpGolomb(),n=c.readUnsignedExpGolomb(),p=c.readUnsignedExpGolomb());b.height=String((2-k)*(h+1)*16-2*n-2*p);b.width=String(16*(g+1)-2*l-2*m);b.codec="avc1."+this.byteToHex_(d)+this.byteToHex_(e)+this.byteToHex_(f);b.frameRate=this.getFrameRate_();return b};
|
|
847
|
-
shaka.util.TsParser.prototype.getHvcInfo_=function(){var a=shaka.util.TsParser,b={height:null,width:null,codec:null,frameRate:null},c=this.getVideoNalus();if(!c.length)return b;c=c.find(function(
|
|
850
|
+
shaka.util.TsParser.prototype.getHvcInfo_=function(){var a=shaka.util.TsParser,b={height:null,width:null,codec:null,frameRate:null},c=this.getVideoNalus();if(!c.length)return b;c=c.find(function(B){return B.type==a.H265_NALU_TYPE_SPS_});if(!c)return b;var d=new shaka.util.ExpGolomb(c.fullData,!0);d.readUnsignedByte();d.readUnsignedByte();d.readBits(4);var e=d.readBits(3);d.readBoolean();var f=d.readBits(2),g=d.readBits(1),h=d.readBits(5),k=d.readBits(32);c=d.readUnsignedByte();for(var l=d.readUnsignedByte(),
|
|
848
851
|
m=d.readUnsignedByte(),n=d.readUnsignedByte(),p=d.readUnsignedByte(),q=d.readUnsignedByte(),r=d.readUnsignedByte(),t=[],u=[],w=0;w<e;w++)t.push(d.readBoolean()),u.push(d.readBoolean());if(0<e)for(w=e;8>w;w++)d.readBits(2);for(w=0;w<e;w++)t[w]&&d.readBits(88),u[w]&&d.readUnsignedByte();d.readUnsignedExpGolomb();e=d.readUnsignedExpGolomb();3==e&&d.readBits(1);t=d.readUnsignedExpGolomb();u=d.readUnsignedExpGolomb();var v=w=0,x=0,y=0;d.readBoolean()&&(w+=d.readUnsignedExpGolomb(),v+=d.readUnsignedExpGolomb(),
|
|
849
|
-
x+=d.readUnsignedExpGolomb(),y+=d.readUnsignedExpGolomb());b.width=String(t-(w+v)*(1===e||2===e?2:1));b.height=String(u-(x+y)*(1===e?2:1));d=["","A","B","C"][f];k=function(
|
|
852
|
+
x+=d.readUnsignedExpGolomb(),y+=d.readUnsignedExpGolomb());b.width=String(t-(w+v)*(1===e||2===e?2:1));b.height=String(u-(x+y)*(1===e?2:1));d=["","A","B","C"][f];k=function(B){for(var A=0,z=0;32>z;z++)A|=(B>>z&1)<<31-z;return A>>>0}(k);g=1==g?"H":"L";h="hvc1"+("."+d+h)+("."+k.toString(16).toUpperCase());h+="."+g+r;q&&(h+="."+q.toString(16).toUpperCase());p&&(h+="."+p.toString(16).toUpperCase());n&&(h+="."+n.toString(16).toUpperCase());m&&(h+="."+m.toString(16).toUpperCase());l&&(h+="."+l.toString(16).toUpperCase());
|
|
850
853
|
c&&(h+="."+c.toString(16).toUpperCase());b.codec=h;b.frameRate=this.getFrameRate_();return b};shaka.util.TsParser.prototype.getOpusMetadata=function(){return this.opusMetadata_};shaka.util.TsParser.prototype.byteToHex_=function(a){return("0"+a.toString(16).toUpperCase()).slice(-2)};shaka.util.TsParser.prototype.handleRollover_=function(a,b){var c=1;for(a>b&&(c=-1);4294967296<Math.abs(b-a);)a+=8589934592*c;return a};
|
|
851
854
|
shaka.util.TsParser.probe=function(a){a=shaka.util.TsParser.syncOffset(a);if(0>a)return!1;0<a&&shaka.log.warning("MPEG2-TS detected but first sync word found @ offset "+a+", junk ahead ?");return!0};shaka.util.TsParser.syncOffset=function(a){for(var b=shaka.util.TsParser.PacketLength_,c=Math.min(1E3,a.length-3*b),d=0;d<c;){if(71==a[d]&&71==a[d+b]&&71==a[d+2*b])return d;d++}return-1};goog.exportSymbol("shaka.util.TsParser",shaka.util.TsParser);goog.exportProperty(shaka.util.TsParser,"syncOffset",shaka.util.TsParser.syncOffset);
|
|
852
855
|
goog.exportProperty(shaka.util.TsParser,"probe",shaka.util.TsParser.probe);goog.exportProperty(shaka.util.TsParser.prototype,"getVideoInfo",shaka.util.TsParser.prototype.getVideoInfo);goog.exportProperty(shaka.util.TsParser.prototype,"getVideoResolution",shaka.util.TsParser.prototype.getVideoResolution);goog.exportProperty(shaka.util.TsParser.prototype,"getVideoNalus",shaka.util.TsParser.prototype.getVideoNalus);goog.exportProperty(shaka.util.TsParser.prototype,"getCodecs",shaka.util.TsParser.prototype.getCodecs);
|
|
@@ -857,10 +860,10 @@ shaka.lcevc.Dec.prototype.create_=function(){this.isSupported_()&&!this.dec_&&th
|
|
|
857
860
|
shaka.lcevc.Dec.prototype.isSupported_=function(){"undefined"===typeof libDPIModule&&shaka.log.alwaysWarn("Could not find LCEVC Library dependencies on this page");if("undefined"!==typeof LCEVCdec)this.lcevcLib_=LCEVCdec;else if("undefined"!==typeof LcevcDil)this.lcevcLib_=LcevcDil,this.toBeDeprecated_=!0,shaka.Deprecate.deprecateFeature(5,"LcevcDil","lcevc_dil.js is deprecated, please use lcevc_dec.js instead");else return shaka.log.alwaysWarn("Could not find LCEVC Library on this page"),!1;if("undefined"===
|
|
858
861
|
typeof this.lcevcLib_.SupportObject)return shaka.log.alwaysWarn("Could not find LCEVC Library on this page"),!1;this.lcevcLib_.SupportObject.SupportStatus||shaka.log.alwaysWarn(this.lcevcLib_.SupportObject.SupportError);return"undefined"!==typeof this.lcevcLib_&&"undefined"!==typeof libDPIModule&&this.canvas_ instanceof HTMLCanvasElement&&this.lcevcLib_.SupportObject.SupportStatus};
|
|
859
862
|
shaka.lcevc.Dec.prototype.updateVariant=function(a,b){var c=shaka.lcevc.Dec.ContainerFormat.MPEG2_TS,d=shaka.lcevc.Dec.StreamingFormat.OTHER;switch(a.mimeType){case "video/webm":c=shaka.lcevc.Dec.ContainerFormat.WEBM;break;case "video/mp4":c=shaka.lcevc.Dec.ContainerFormat.MP4}switch(b){case "DASH":d=shaka.lcevc.Dec.StreamingFormat.DASH;break;case "HLS":d=shaka.lcevc.Dec.StreamingFormat.HLS}this.dec_&&(this.variantId_=a.id,this.dec_.setLevelSwitching(a.id,!0),this.dec_.setContainerFormat(c),this.toBeDeprecated_||
|
|
860
|
-
this.dec_.setStreamingFormat(d))};goog.exportSymbol("shaka.lcevc.Dec",shaka.lcevc.Dec);goog.exportProperty(shaka.lcevc.Dec.prototype,"release",shaka.lcevc.Dec.prototype.release);shaka.lcevc.Dec.ContainerFormat={MPEG2_TS:0,WEBM:1,MP4:2};shaka.lcevc.Dec.StreamingFormat={HLS:0,DASH:1,OTHER:-1};shaka.media.MediaSourceEngine=function(a,b,c,d){var e=this;this.video_=a;this.playerInterface_=c;this.config_=null;this.textDisplayer_=b;this.sourceBuffers_=
|
|
861
|
-
!0;this.usingRemotePlayback_=!1;this.secondarySource_=this.source_=null;this.mediaSource_=this.createMediaSource(this.mediaSourceOpen_);this.reloadingMediaSource_=!1;this.destroyer_=new shaka.util.Destroyer(function(){return e.doDestroy_()});this.sequenceMode_=!1;this.manifestType_=shaka.media.ManifestParser.UNKNOWN;this.attemptTimestampOffsetCalculation_=this.ignoreManifestTimestampsInSegmentsMode_=!1;this.textSequenceModeOffset_=new shaka.util.PublicPromise;this.needSplitMuxedContent_
|
|
862
|
-
null;this.tsParsers_=
|
|
863
|
-
"disconnected"!=e.video_.remote.state}),this.eventManager_.listen(this.video_.remote,"disconnect",function(){e.usingRemotePlayback_="disconnected"!=e.video_.remote.state}))};
|
|
863
|
+
this.dec_.setStreamingFormat(d))};goog.exportSymbol("shaka.lcevc.Dec",shaka.lcevc.Dec);goog.exportProperty(shaka.lcevc.Dec.prototype,"release",shaka.lcevc.Dec.prototype.release);shaka.lcevc.Dec.ContainerFormat={MPEG2_TS:0,WEBM:1,MP4:2};shaka.lcevc.Dec.StreamingFormat={HLS:0,DASH:1,OTHER:-1};shaka.media.MediaSourceEngine=function(a,b,c,d){var e=this;this.video_=a;this.playerInterface_=c;this.config_=null;this.textDisplayer_=b;this.sourceBuffers_=new Map;this.sourceBufferTypes_=new Map;this.expectedEncryption_=new Map;this.textEngine_=null;this.segmentRelativeVttTiming_=!1;this.lcevcDec_=d||null;this.queues_=new Map;this.eventManager_=new shaka.util.EventManager;this.transmuxers_=new Map;this.captionParser_=null;this.mediaSourceOpen_=new shaka.util.PublicPromise;this.url_="";this.playbackHasBegun_=
|
|
864
|
+
!1;this.streamingAllowed_=!0;this.usingRemotePlayback_=!1;this.secondarySource_=this.source_=null;this.mediaSource_=this.createMediaSource(this.mediaSourceOpen_);this.reloadingMediaSource_=!1;this.destroyer_=new shaka.util.Destroyer(function(){return e.doDestroy_()});this.sequenceMode_=!1;this.manifestType_=shaka.media.ManifestParser.UNKNOWN;this.attemptTimestampOffsetCalculation_=this.ignoreManifestTimestampsInSegmentsMode_=!1;this.textSequenceModeOffset_=new shaka.util.PublicPromise;this.needSplitMuxedContent_=
|
|
865
|
+
!1;this.lastDuration_=null;this.tsParsers_=new Map;this.firstAudioReferenceStartTime_=this.firstAudioTimestamp_=this.firstVideoReferenceStartTime_=this.firstVideoTimestamp_=null;this.audioCompensation_=new shaka.util.PublicPromise;this.video_.remote&&(this.usingRemotePlayback_="disconnected"!=this.video_.remote.state,this.eventManager_.listen(this.video_.remote,"connect",function(){e.usingRemotePlayback_="disconnected"!=e.video_.remote.state}),this.eventManager_.listen(this.video_.remote,"connecting",
|
|
866
|
+
function(){e.usingRemotePlayback_="disconnected"!=e.video_.remote.state}),this.eventManager_.listen(this.video_.remote,"disconnect",function(){e.usingRemotePlayback_="disconnected"!=e.video_.remote.state}))};
|
|
864
867
|
shaka.media.MediaSourceEngine.prototype.createMediaSource=function(a){var b=this;this.streamingAllowed_=!0;if(window.ManagedMediaSource){this.secondarySource_||(this.video_.disableRemotePlayback=!0);var c=new ManagedMediaSource;this.eventManager_.listen(c,"startstreaming",function(){shaka.log.info("MMS startstreaming");b.streamingAllowed_=!0});this.eventManager_.listen(c,"endstreaming",function(){shaka.log.info("MMS endstreaming");b.streamingAllowed_=!1})}else c=new MediaSource;this.eventManager_.listenOnce(c,
|
|
865
868
|
"sourceopen",function(){return b.onSourceOpen_(a)});this.eventManager_.listenOnce(this.video_,"playing",function(){b.playbackHasBegun_=!0});this.url_=shaka.media.MediaSourceEngine.createObjectURL(c);this.video_.removeAttribute("src");this.source_&&this.video_.removeChild(this.source_);this.secondarySource_&&this.video_.removeChild(this.secondarySource_);this.source_=shaka.util.Dom.createSourceElement(this.url_);this.video_.appendChild(this.source_);this.secondarySource_&&this.video_.appendChild(this.secondarySource_);
|
|
866
869
|
this.video_.load();return c};shaka.media.MediaSourceEngine.prototype.addSecondarySource=function(a,b){this.video_&&window.ManagedMediaSource&&this.mediaSource_?(this.secondarySource_&&this.video_.removeChild(this.secondarySource_),this.secondarySource_=shaka.util.Dom.createSourceElement(a,b),this.video_.appendChild(this.secondarySource_),this.video_.disableRemotePlayback=!1):shaka.log.warning("Secondary source is used only with ManagedMediaSource")};
|
|
@@ -870,39 +873,40 @@ for(k=h.next();!k.done;k=h.next())if(l=k.value,m=l.mimeType||a.mimeType||"",n=l.
|
|
|
870
873
|
return u.return(!0)})};
|
|
871
874
|
shaka.media.MediaSourceEngine.probeSupport=function(){var a='video/mp4; codecs="avc1.42E01E",video/mp4; codecs="avc3.42E01E",video/mp4; codecs="hev1.1.6.L93.90",video/mp4; codecs="hvc1.1.6.L93.90",video/mp4; codecs="hev1.2.4.L153.B0"; eotf="smpte2084",video/mp4; codecs="hvc1.2.4.L153.B0"; eotf="smpte2084",video/mp4; codecs="vp9",video/mp4; codecs="vp09.00.10.08",video/mp4; codecs="av01.0.01M.08",video/mp4; codecs="dvh1.05.01",video/mp4; codecs="dvh1.20.01",audio/mp4; codecs="mp4a.40.2",audio/mp4; codecs="ac-3",audio/mp4; codecs="ec-3",audio/mp4; codecs="ac-4.02.01.01",audio/mp4; codecs="opus",audio/mp4; codecs="flac",audio/mp4; codecs="dtsc",audio/mp4; codecs="dtse",audio/mp4; codecs="dtsx",video/webm; codecs="vp8",video/webm; codecs="vp9",video/webm; codecs="vp09.00.10.08",audio/webm; codecs="vorbis",audio/webm; codecs="opus",video/mp2t; codecs="avc1.42E01E",video/mp2t; codecs="avc3.42E01E",video/mp2t; codecs="hvc1.1.6.L93.90",video/mp2t; codecs="mp4a.40.2",video/mp2t; codecs="ac-3",video/mp2t; codecs="ec-3",text/vtt,application/mp4; codecs="wvtt",application/ttml+xml,application/mp4; codecs="stpp"'.split(",").concat($jscomp.arrayFromIterable(shaka.util.MimeUtils.RAW_FORMATS)),b=
|
|
872
875
|
{};a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next()){c=c.value;shaka.text.TextEngine.isTypeSupported(c)?b[c]=!0:shaka.util.Platform.supportsMediaSource()?b[c]=shaka.media.Capabilities.isTypeSupported(c)||shaka.transmuxer.TransmuxerEngine.isSupported(c):b[c]=shaka.util.Platform.supportsMediaType(c);var d=c.split(";")[0];b[d]=b[d]||b[c]}return b};shaka.media.MediaSourceEngine.prototype.destroy=function(){return this.destroyer_.destroy()};
|
|
873
|
-
shaka.media.MediaSourceEngine.prototype.doDestroy_=function(){var a=this,b,c,d,e,f,g,h,k,l,m;return $jscomp.asyncExecutePromiseGeneratorProgram(function(
|
|
874
|
-
2)}
|
|
875
|
-
a.queues_
|
|
876
|
+
shaka.media.MediaSourceEngine.prototype.doDestroy_=function(){var a=this,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,B,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(z){if(1==z.nextAddress){b=shaka.util.Functional;c=[];d=$jscomp.makeIterator(a.queues_);for(e=d.next();!e.done;e=d.next())for(f=e.value,g=$jscomp.makeIterator(f),h=g.next().value,k=g.next().value,l=k[0],m=h,a.queues_.set(m,k.slice(0,1)),l&&c.push(l.p.catch(b.noop)),n=$jscomp.makeIterator(k.slice(1)),p=n.next();!p.done;p=n.next())q=
|
|
877
|
+
p.value,q.p.reject(shaka.util.Destroyer.destroyedError());a.textEngine_&&c.push(a.textEngine_.destroy());return z.yield(Promise.all(c),2)}r=$jscomp.makeIterator(a.transmuxers_.values());for(t=r.next();!t.done;t=r.next())u=t.value,u.destroy();a.eventManager_&&(a.eventManager_.release(),a.eventManager_=null);a.video_&&a.secondarySource_&&a.video_.removeChild(a.secondarySource_);a.video_&&a.source_&&(a.video_.removeChild(a.source_),a.video_.load(),a.video_.disableRemotePlayback=!1);a.video_=null;a.source_=
|
|
878
|
+
null;a.secondarySource_=null;a.config_=null;a.mediaSource_=null;a.textEngine_=null;a.textDisplayer_=null;a.sourceBuffers_.clear();a.expectedEncryption_.clear();a.transmuxers_.clear();a.captionParser_=null;if(goog.DEBUG)for(w=$jscomp.makeIterator(a.queues_),v=w.next();!v.done;v=w.next())x=v.value,y=$jscomp.makeIterator(x),B=y.next().value,A=y.next().value,goog.asserts.assert(0==A.length,B+" queue should be empty after destroy!");a.queues_.clear();a.lcevcDec_=null;a.tsParsers_.clear();a.playerInterface_=
|
|
879
|
+
null;z.jumpToEnd()})};shaka.media.MediaSourceEngine.prototype.open=function(){return this.mediaSourceOpen_};
|
|
876
880
|
shaka.media.MediaSourceEngine.prototype.init=function(a,b,c,d){b=void 0===b?!1:b;c=void 0===c?shaka.media.ManifestParser.UNKNOWN:c;d=void 0===d?!1:d;var e=this,f,g,h,k,l,m;return $jscomp.asyncExecutePromiseGeneratorProgram(function(n){switch(n.nextAddress){case 1:return f=shaka.util.ManifestParserUtils.ContentType,n.yield(e.mediaSourceOpen_,2);case 2:if(!e.ended()&&!e.closed()){n.jumpTo(3);break}shaka.log.alwaysError("Expected MediaSource to be open during init(); reopening the media source.");e.mediaSourceOpen_=
|
|
877
|
-
new shaka.util.PublicPromise;e.mediaSource_=e.createMediaSource(e.mediaSourceOpen_);return n.yield(e.mediaSourceOpen_,3);case 3:e.sequenceMode_=b,e.manifestType_=c,e.ignoreManifestTimestampsInSegmentsMode_=d,e.attemptTimestampOffsetCalculation_=!e.sequenceMode_&&e.manifestType_==shaka.media.ManifestParser.HLS&&!e.ignoreManifestTimestampsInSegmentsMode_,e.tsParsers_
|
|
878
|
-
e.audioCompensation_=new shaka.util.PublicPromise,g=$jscomp.makeIterator(a.keys()),h=g.next();case 5:if(h.done){n.jumpTo(7);break}k=h.value;l=a.get(k);return n.yield(e.initSourceBuffer_(k,l,l.codecs),8);case 8:e.needSplitMuxedContent_?(e.queues_
|
|
881
|
+
new shaka.util.PublicPromise;e.mediaSource_=e.createMediaSource(e.mediaSourceOpen_);return n.yield(e.mediaSourceOpen_,3);case 3:e.sequenceMode_=b,e.manifestType_=c,e.ignoreManifestTimestampsInSegmentsMode_=d,e.attemptTimestampOffsetCalculation_=!e.sequenceMode_&&e.manifestType_==shaka.media.ManifestParser.HLS&&!e.ignoreManifestTimestampsInSegmentsMode_,e.tsParsers_.clear(),e.firstVideoTimestamp_=null,e.firstVideoReferenceStartTime_=null,e.firstAudioTimestamp_=null,e.firstAudioReferenceStartTime_=
|
|
882
|
+
null,e.audioCompensation_=new shaka.util.PublicPromise,g=$jscomp.makeIterator(a.keys()),h=g.next();case 5:if(h.done){n.jumpTo(7);break}k=h.value;l=a.get(k);return n.yield(e.initSourceBuffer_(k,l,l.codecs),8);case 8:e.needSplitMuxedContent_?(e.queues_.set(f.AUDIO,[]),e.queues_.set(f.VIDEO,[])):e.queues_.set(k,[]);h=g.next();n.jumpTo(5);break;case 7:(m=a.get(f.AUDIO))&&m.isAudioMuxedInVideo&&(e.needSplitMuxedContent_=!0),n.jumpToEnd()}})};
|
|
879
883
|
shaka.media.MediaSourceEngine.prototype.initSourceBuffer_=function(a,b,c){var d=this,e,f,g,h,k,l,m,n,p,q,r,t;return $jscomp.asyncExecutePromiseGeneratorProgram(function(u){switch(u.nextAddress){case 1:return e=shaka.util.ManifestParserUtils.ContentType,f=goog.asserts,g=f.assert,u.yield(shaka.media.MediaSourceEngine.isStreamSupported(b,a),2);case 2:g.call(f,u.yieldResult,"Type negotiation should happen before MediaSourceEngine.init!");a==e.AUDIO&&c&&(c=shaka.util.StreamUtils.getCorrectAudioCodecs(c,
|
|
880
884
|
b.mimeType));h=shaka.util.MimeUtils.getFullType(b.mimeType,c);if(a==e.TEXT){d.reinitText(h,d.sequenceMode_,b.external);u.jumpTo(0);break}k=d.config_.forceTransmux;if(!shaka.media.Capabilities.isTypeSupported(h)||!d.sequenceMode_&&shaka.util.MimeUtils.RAW_FORMATS.includes(h))k=!0;l=shaka.util.MimeUtils.getFullTypeWithAllCodecs(b.mimeType,c);if(!k){u.jumpTo(4);break}m=shaka.util.ManifestParserUtils.guessCodecsSafe(e.AUDIO,(c||"").split(","));n=shaka.util.ManifestParserUtils.guessCodecsSafe(e.VIDEO,
|
|
881
|
-
(c||"").split(","));if(!m||!n){u.jumpTo(5);break}d.needSplitMuxedContent_=!0;return u.yield(d.initSourceBuffer_(e.AUDIO,b,m),6);case 6:return u.yield(d.initSourceBuffer_(e.VIDEO,b,n),7);case 7:return u.return();case 5:if(p=shaka.transmuxer.TransmuxerEngine.findTransmuxer(l))q=p(),d.transmuxers_
|
|
882
|
-
shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.MEDIA_SOURCE_OPERATION_THREW,w,"The mediaSource_ status was "+d.mediaSource_.readyState+" expected 'open'",null);}d.sequenceMode_&&(t.mode=shaka.media.MediaSourceEngine.SourceBufferMode_.SEQUENCE);d.eventManager_.listen(t,"error",function(){return d.onError_(a)});d.eventManager_.listen(t,"updateend",function(){return d.onUpdateEnd_(a)});d.sourceBuffers_
|
|
885
|
+
(c||"").split(","));if(!m||!n){u.jumpTo(5);break}d.needSplitMuxedContent_=!0;return u.yield(d.initSourceBuffer_(e.AUDIO,b,m),6);case 6:return u.yield(d.initSourceBuffer_(e.VIDEO,b,n),7);case 7:return u.return();case 5:if(p=shaka.transmuxer.TransmuxerEngine.findTransmuxer(l))q=p(),d.transmuxers_.set(a,q),h=q.convertCodecs(a,l);case 4:r=d.addExtraFeaturesToMimeType_(h);d.destroyer_.ensureNotDestroyed();try{t=d.mediaSource_.addSourceBuffer(r)}catch(w){throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
886
|
+
shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.MEDIA_SOURCE_OPERATION_THREW,w,"The mediaSource_ status was "+d.mediaSource_.readyState+" expected 'open'",null);}d.sequenceMode_&&(t.mode=shaka.media.MediaSourceEngine.SourceBufferMode_.SEQUENCE);d.eventManager_.listen(t,"error",function(){return d.onError_(a)});d.eventManager_.listen(t,"updateend",function(){return d.onUpdateEnd_(a)});d.sourceBuffers_.set(a,t);d.sourceBufferTypes_.set(a,h);d.expectedEncryption_.set(a,!!b.drmInfos.length);u.jumpToEnd()}})};
|
|
883
887
|
shaka.media.MediaSourceEngine.prototype.configure=function(a){this.config_=a;this.textEngine_&&this.textEngine_.setModifyCueCallback(a.modifyCueCallback)};shaka.media.MediaSourceEngine.prototype.isStreamingAllowed=function(){return this.streamingAllowed_&&!this.usingRemotePlayback_&&!this.reloadingMediaSource_};
|
|
884
888
|
shaka.media.MediaSourceEngine.prototype.reinitText=function(a,b,c){this.textEngine_||(this.textEngine_=new shaka.text.TextEngine(this.textDisplayer_),this.textEngine_.setModifyCueCallback(this.config_.modifyCueCallback));this.textEngine_.initParser(a,b,c||this.segmentRelativeVttTiming_,this.manifestType_)};shaka.media.MediaSourceEngine.prototype.ended=function(){return this.reloadingMediaSource_?!1:this.mediaSource_?"ended"==this.mediaSource_.readyState:!0};
|
|
885
|
-
shaka.media.MediaSourceEngine.prototype.closed=function(){return this.reloadingMediaSource_?!1:this.mediaSource_?"closed"==this.mediaSource_.readyState:!0};shaka.media.MediaSourceEngine.prototype.bufferStart=function(a){return
|
|
886
|
-
shaka.media.MediaSourceEngine.prototype.bufferEnd=function(a){return
|
|
889
|
+
shaka.media.MediaSourceEngine.prototype.closed=function(){return this.reloadingMediaSource_?!1:this.mediaSource_?"closed"==this.mediaSource_.readyState:!0};shaka.media.MediaSourceEngine.prototype.bufferStart=function(a){return this.sourceBuffers_.size?a==shaka.util.ManifestParserUtils.ContentType.TEXT?this.textEngine_.bufferStart():shaka.media.TimeRangesUtils.bufferStart(this.getBuffered_(a)):null};
|
|
890
|
+
shaka.media.MediaSourceEngine.prototype.bufferEnd=function(a){return this.sourceBuffers_.size?a==shaka.util.ManifestParserUtils.ContentType.TEXT?this.textEngine_.bufferEnd():shaka.media.TimeRangesUtils.bufferEnd(this.getBuffered_(a)):null};shaka.media.MediaSourceEngine.prototype.isBuffered=function(a,b){if(a==shaka.util.ManifestParserUtils.ContentType.TEXT)return this.textEngine_.isBuffered(b);a=this.getBuffered_(a);return shaka.media.TimeRangesUtils.isBuffered(a,b)};
|
|
887
891
|
shaka.media.MediaSourceEngine.prototype.bufferedAheadOf=function(a,b){if(a==shaka.util.ManifestParserUtils.ContentType.TEXT)return this.textEngine_.bufferedAheadOf(b);a=this.getBuffered_(a);return shaka.media.TimeRangesUtils.bufferedAheadOf(a,b)};
|
|
888
892
|
shaka.media.MediaSourceEngine.prototype.getBufferedInfo=function(){var a=shaka.util.ManifestParserUtils.ContentType,b=shaka.media.TimeRangesUtils;a={total:this.reloadingMediaSource_?[]:b.getBufferedInfo(this.video_.buffered),audio:b.getBufferedInfo(this.getBuffered_(a.AUDIO)),video:b.getBufferedInfo(this.getBuffered_(a.VIDEO)),text:[]};if(this.textEngine_){b=this.textEngine_.bufferStart();var c=this.textEngine_.bufferEnd();null!=b&&null!=c&&a.text.push({start:b,end:c})}return a};
|
|
889
|
-
shaka.media.MediaSourceEngine.prototype.getBuffered_=function(a){if(this.reloadingMediaSource_||this.usingRemotePlayback_)return null;try{return this.sourceBuffers_
|
|
893
|
+
shaka.media.MediaSourceEngine.prototype.getBuffered_=function(a){if(this.reloadingMediaSource_||this.usingRemotePlayback_)return null;try{return this.sourceBuffers_.get(a).buffered}catch(b){return this.sourceBuffers_.has(a)&&shaka.log.error("failed to get buffered range for "+a,b),null}};shaka.media.MediaSourceEngine.prototype.getCaptionParser=function(a){return new shaka.media.ClosedCaptionParser(a)};
|
|
890
894
|
shaka.media.MediaSourceEngine.prototype.getTimestampAndDispatchMetadata=function(a,b,c,d,e){var f=this,g=null,h=[],k=shaka.util.BufferUtils.toUint8(b);if(shaka.util.MimeUtils.RAW_FORMATS.includes(e))b=shaka.util.Id3Utils.getID3Frames(k),b.length&&c&&((a=b.find(function(q){return"com.apple.streaming.transportStreamTimestamp"===q.description}))&&(g=Math.round(a.data)/1E3),this.playerInterface_.onMetadata([{cueTime:c.startTime,data:k,frames:b,dts:c.startTime,pts:c.startTime}],0,c.endTime));else if(e.includes("/mp4")&&
|
|
891
895
|
c&&c.initSegmentReference&&c.initSegmentReference.timescale){var l=c.initSegmentReference.timescale;if(!isNaN(l)){var m=null!=d.emsgSchemeIdUris&&0<d.emsgSchemeIdUris.length||this.config_.dispatchAllEmsgBoxes;k=shaka.util.Mp4Parser;var n=0,p=!1;a=new k;m&&a.fullBox("emsg",function(q){return f.parseEMSG_(c,d.emsgSchemeIdUris,q)});a.fullBox("prft",function(q){return f.parsePrft_(l,q)}).box("moof",k.children).box("traf",k.children).fullBox("tfdt",function(q){p||(goog.asserts.assert(0==q.version||1==
|
|
892
|
-
q.version,"TFDT version can only be 0 or 1"),n=shaka.util.Mp4BoxParsers.parseTFDTInaccurate(q.reader,q.version).baseMediaDecodeTime/l,p=!0,m||q.parser.stop())}).parse(b,!0);p&&0==c.timestampOffset&&(g=n)}}else e.includes("/mp4")||e.includes("/webm")||!shaka.util.TsParser.probe(k)||(this.tsParsers_
|
|
896
|
+
q.version,"TFDT version can only be 0 or 1"),n=shaka.util.Mp4BoxParsers.parseTFDTInaccurate(q.reader,q.version).baseMediaDecodeTime/l,p=!0,m||q.parser.stop())}).parse(b,!0);p&&0==c.timestampOffset&&(g=n)}}else e.includes("/mp4")||e.includes("/webm")||!shaka.util.TsParser.probe(k)||(this.tsParsers_.has(a)?this.tsParsers_.get(a).clearData():this.tsParsers_.set(a,new shaka.util.TsParser),h=this.tsParsers_.get(a).parse(k),b=h.getStartTime(a),null!=b&&(g=b),h=h.getMetadata());return{timestamp:g,metadata:h}};
|
|
893
897
|
shaka.media.MediaSourceEngine.prototype.parseEMSG_=function(a,b,c){if(0===c.version){var d=c.reader.readTerminatedString();var e=c.reader.readTerminatedString();var f=c.reader.readUint32();var g=c.reader.readUint32();var h=c.reader.readUint32();var k=c.reader.readUint32();var l=a.startTime+g/f}else f=c.reader.readUint32(),l=c.reader.readUint64()/f+a.timestampOffset,g=l-a.startTime,h=c.reader.readUint32(),k=c.reader.readUint32(),d=c.reader.readTerminatedString(),e=c.reader.readTerminatedString();a=
|
|
894
898
|
c.reader.readBytes(c.reader.getLength()-c.reader.getPosition());if(b&&b.includes(d)||this.config_.dispatchAllEmsgBoxes)if("urn:mpeg:dash:event:2012"==d)this.playerInterface_.onManifestUpdate();else if(b=l+h/f,k={startTime:l,endTime:b,schemeIdUri:d,value:e,timescale:f,presentationTimeDelta:g,eventDuration:h,id:k,messageData:a},f=shaka.util.FakeEvent.EventName.Emsg,k=(new Map).set("detail",k),f=new shaka.util.FakeEvent(f,k),f.cancelable=!0,this.playerInterface_.onEvent(f),!f.defaultPrevented&&("https://aomedia.org/emsg/ID3"==
|
|
895
899
|
d||"https://developer.apple.com/streaming/emsg-id3"==d)&&(d=shaka.util.Id3Utils.getID3Frames(a),d.length))this.playerInterface_.onMetadata([{cueTime:l,data:a,frames:d,dts:l,pts:l}],0,b)};
|
|
896
900
|
shaka.media.MediaSourceEngine.prototype.parsePrft_=function(a,b){goog.asserts.assert(0==b.version||1==b.version,"PRFT version can only be 0 or 1");b=shaka.util.Mp4BoxParsers.parsePRFTInaccurate(b.reader,b.version);var c=this.convertNtp_(b.ntpTimestamp);b={wallClockTime:c,programStartDate:new Date(c-b.mediaTime/a*1E3)};a=shaka.util.FakeEvent.EventName.Prft;b=(new Map).set("detail",b);a=new shaka.util.FakeEvent(a,b);this.playerInterface_.onEvent(a)};
|
|
897
901
|
shaka.media.MediaSourceEngine.prototype.convertNtp_=function(a){var b=new Date(Date.UTC(1900,0,1,0,0,0));return(new Date(b.getTime()+a)).getTime()};
|
|
898
|
-
shaka.media.MediaSourceEngine.prototype.appendBuffer=function(a,b,c,d,e,f,g,h,k){f=void 0===f?!1:f;g=void 0===g?!1:g;h=void 0===h?!1:h;k=void 0===k?!1:k;var l=this,m,n,p,q,r,t,u,w,v,x,y,A,
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
null==l.firstAudioTimestamp_&&a==m.AUDIO&&(l.firstAudioTimestamp_=t,l.firstAudioReferenceStartTime_=c.startTime,null!=l.firstVideoTimestamp_&&(v=0,l.firstVideoReferenceStartTime_==l.firstAudioReferenceStartTime_&&(v=l.firstVideoTimestamp_-l.firstAudioTimestamp_),l.audioCompensation_.resolve(v))),x=t,y=shaka.util.MimeUtils.RAW_FORMATS,!l.sequenceMode_&&y.includes(l.sourceBufferTypes_
|
|
902
|
-
(l.enqueueOperation_(a,function(){return l.abort_(a)},null),l.enqueueOperation_(a,function(){return l.setTimestampOffset_(a,p)},null))),(z=a==m.VIDEO||!(m.VIDEO
|
|
903
|
-
D.length&&l.textEngine_.storeAndAppendClosedCaptions(D,c.startTime,c.endTime,p)):l.captionParser_.init(b,g));if(!l.transmuxers_
|
|
904
|
-
a!=m.AUDIO||!l.sourceBuffers_
|
|
905
|
-
L=shaka.media.TimeRangesUtils.computeAddedRange(
|
|
902
|
+
shaka.media.MediaSourceEngine.prototype.appendBuffer=function(a,b,c,d,e,f,g,h,k){f=void 0===f?!1:f;g=void 0===g?!1:g;h=void 0===h?!1:h;k=void 0===k?!1:k;var l=this,m,n,p,q,r,t,u,w,v,x,y,B,A,z,C,D,E,H,I,G,L,K,F,M;return $jscomp.asyncExecutePromiseGeneratorProgram(function(J){switch(J.nextAddress){case 1:m=shaka.util.ManifestParserUtils.ContentType;if(a!=m.TEXT){J.jumpTo(2);break}if(l.manifestType_!=shaka.media.ManifestParser.HLS){J.jumpTo(3);break}return J.yield(l.textSequenceModeOffset_,4);case 4:n=
|
|
903
|
+
J.yieldResult,l.textEngine_.setTimestampOffset(n);case 3:return J.yield(l.textEngine_.appendBuffer(b,c?c.startTime:null,c?c.endTime:null,c?c.getUris()[0]:null),5);case 5:return J.return();case 2:if(k||!l.needSplitMuxedContent_){J.jumpTo(6);break}return J.yield(l.appendBuffer(m.AUDIO,b,c,d,e,f,g,h,!0),7);case 7:return J.yield(l.appendBuffer(m.VIDEO,b,c,d,e,f,g,h,!0),8);case 8:return J.return();case 6:if(!l.sourceBuffers_.has(a))return shaka.log.warning("Attempted to restore a non-existent source buffer"),
|
|
904
|
+
J.return();p=l.sourceBuffers_.get(a).timestampOffset;q=l.sourceBufferTypes_.get(a);l.transmuxers_.has(a)&&(q=l.transmuxers_.get(a).getOriginalMimeType());if(c&&(r=l.getTimestampAndDispatchMetadata(a,b,c,d,q),t=r.timestamp,u=r.metadata,null!=t&&(null==l.firstVideoTimestamp_&&a==m.VIDEO&&(l.firstVideoTimestamp_=t,l.firstVideoReferenceStartTime_=c.startTime,null!=l.firstAudioTimestamp_&&(w=0,l.firstVideoReferenceStartTime_==l.firstAudioReferenceStartTime_&&(w=l.firstVideoTimestamp_-l.firstAudioTimestamp_),
|
|
905
|
+
l.audioCompensation_.resolve(w))),null==l.firstAudioTimestamp_&&a==m.AUDIO&&(l.firstAudioTimestamp_=t,l.firstAudioReferenceStartTime_=c.startTime,null!=l.firstVideoTimestamp_&&(v=0,l.firstVideoReferenceStartTime_==l.firstAudioReferenceStartTime_&&(v=l.firstVideoTimestamp_-l.firstAudioTimestamp_),l.audioCompensation_.resolve(v))),x=t,y=shaka.util.MimeUtils.RAW_FORMATS,!l.sequenceMode_&&y.includes(l.sourceBufferTypes_.get(a))&&(x=0),B=c.startTime-x,A=Math.abs(p-B),(.001<=A||f||g)&&(!h||0<B||!p)&&(p=
|
|
906
|
+
B,l.attemptTimestampOffsetCalculation_&&(l.enqueueOperation_(a,function(){return l.abort_(a)},null),l.enqueueOperation_(a,function(){return l.setTimestampOffset_(a,p)},null))),(z=a==m.VIDEO||!l.sourceBuffers_.has(m.VIDEO))&&l.textSequenceModeOffset_.resolve(p)),u.length))l.playerInterface_.onMetadata(u,p,c?c.endTime:null);e&&a==m.VIDEO&&(l.textEngine_||l.reinitText(shaka.util.MimeUtils.CEA608_CLOSED_CAPTION_MIMETYPE,l.sequenceMode_,!1),l.captionParser_||(C=q.split(";",1)[0],l.captionParser_=l.getCaptionParser(C)),
|
|
907
|
+
c?(D=l.captionParser_.parseFrom(b),D.length&&l.textEngine_.storeAndAppendClosedCaptions(D,c.startTime,c.endTime,p)):l.captionParser_.init(b,g));if(!l.transmuxers_.has(a)){J.jumpTo(9);break}return J.yield(l.transmuxers_.get(a).transmux(b,d,c,l.mediaSource_.duration,a),10);case 10:b=J.yieldResult;case 9:b=l.workAroundBrokenPlatforms_(b,c?c.startTime:null,a,c?c.getUris()[0]:null);if(!c||!l.sequenceMode_||a==m.TEXT){J.jumpTo(11);break}if(!f&&!g){J.jumpTo(11);break}E=c.startTime;if(l.manifestType_!=shaka.media.ManifestParser.HLS||
|
|
908
|
+
l.needSplitMuxedContent_||a!=m.AUDIO||!l.sourceBuffers_.has(m.VIDEO)){J.jumpTo(13);break}return J.yield(l.audioCompensation_,14);case 14:H=J.yieldResult,.1<Math.abs(H)&&(E-=H);case 13:l.enqueueOperation_(a,function(){return l.abort_(a)},null),l.enqueueOperation_(a,function(){return l.setTimestampOffset_(a,E)},null);case 11:return I=null,J.yield(l.enqueueOperation_(a,function(){goog.DEBUG&&c&&!c.isPreload()&&!h&&(I=l.getBuffered_(a));l.append_(a,b,p)},c?c.getUris()[0]:null),15);case 15:goog.DEBUG&&
|
|
909
|
+
c&&!c.isPreload()&&!h&&(G=l.getBuffered_(a),L=shaka.media.TimeRangesUtils.computeAddedRange(I,G))&&(K=c.endTime-c.startTime,F=L.end-L.start,M=Math.abs(L.end-c.endTime),.1<K&&(M>K/2||.03<Math.abs(K-F))&&shaka.log.error("Possible encoding problem detected!","Unexpected buffered range for reference",c,"from URIs",c.getUris(),"should be",{start:c.startTime,end:c.endTime},"but got",L)),J.jumpToEnd()}})};
|
|
906
910
|
shaka.media.MediaSourceEngine.prototype.setSelectedClosedCaptionId=function(a){var b=this.bufferEnd(shaka.util.ManifestParserUtils.ContentType.VIDEO)||0;this.textEngine_.setSelectedClosedCaptionId(a,b)};shaka.media.MediaSourceEngine.prototype.clearSelectedClosedCaptionId=function(){this.textEngine_&&this.textEngine_.setSelectedClosedCaptionId("",0)};
|
|
907
911
|
shaka.media.MediaSourceEngine.prototype.remove=function(a,b,c){var d=this,e;return $jscomp.asyncExecutePromiseGeneratorProgram(function(f){return 1==f.nextAddress?(e=shaka.util.ManifestParserUtils.ContentType,a==e.TEXT?f.yield(d.textEngine_.remove(b,c),0):f.yield(d.enqueueOperation_(a,function(){return d.remove_(a,b,c)},null),4)):d.needSplitMuxedContent_?f.yield(d.enqueueOperation_(e.AUDIO,function(){return d.remove_(e.AUDIO,b,c)},null),0):f.jumpTo(0)})};
|
|
908
912
|
shaka.media.MediaSourceEngine.prototype.clear=function(a){var b=this,c;return $jscomp.asyncExecutePromiseGeneratorProgram(function(d){return 1==d.nextAddress?(c=shaka.util.ManifestParserUtils.ContentType,a==c.TEXT?b.textEngine_?d.yield(b.textEngine_.remove(0,Infinity),0):d.return():d.yield(b.enqueueOperation_(a,function(){return b.remove_(a,0,b.mediaSource_.duration)},null),4)):b.needSplitMuxedContent_?d.yield(b.enqueueOperation_(c.AUDIO,function(){return b.remove_(c.AUDIO,0,b.mediaSource_.duration)},
|
|
@@ -914,35 +918,36 @@ null));return m.length?p.yield(Promise.all(m),0):p.jumpTo(0)})};
|
|
|
914
918
|
shaka.media.MediaSourceEngine.prototype.resync=function(a,b){var c=this,d,e;return $jscomp.asyncExecutePromiseGeneratorProgram(function(f){if(1==f.nextAddress){d=shaka.util.ManifestParserUtils.ContentType;if(a==d.TEXT)return f.return();a==d.VIDEO&&(c.textSequenceModeOffset_=new shaka.util.PublicPromise);if(!c.sequenceMode_||(e=c.bufferEnd(a))&&.1>Math.abs(e-b))return f.return();c.enqueueOperation_(a,function(){return c.abort_(a)},null);c.needSplitMuxedContent_&&c.enqueueOperation_(d.AUDIO,function(){return c.abort_(d.AUDIO)},
|
|
915
919
|
null);return f.yield(c.enqueueOperation_(a,function(){return c.setTimestampOffset_(a,b)},null),2)}return c.needSplitMuxedContent_?f.yield(c.enqueueOperation_(d.AUDIO,function(){return c.setTimestampOffset_(d.AUDIO,b)},null),0):f.jumpTo(0)})};
|
|
916
920
|
shaka.media.MediaSourceEngine.prototype.endOfStream=function(a){var b=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){return c.yield(b.enqueueBlockingOperation_(function(){b.ended()||b.closed()||(a?b.mediaSource_.endOfStream(a):b.mediaSource_.endOfStream())}),0)})};
|
|
917
|
-
shaka.media.MediaSourceEngine.prototype.setDuration=function(a){var b=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){return c.yield(b.enqueueBlockingOperation_(function(){if(a<b.mediaSource_.duration)for(var d
|
|
921
|
+
shaka.media.MediaSourceEngine.prototype.setDuration=function(a){var b=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){return c.yield(b.enqueueBlockingOperation_(function(){if(a<b.mediaSource_.duration)for(var d=$jscomp.makeIterator(b.sourceBuffers_.keys()),e=d.next();!e.done;e=d.next()){e=e.value;var f={start:function(){},p:new shaka.util.PublicPromise,uri:null};b.queues_.get(e).unshift(f)}b.mediaSource_.duration=a;b.lastDuration_=a}),0)})};
|
|
922
|
+
shaka.media.MediaSourceEngine.prototype.getDuration=function(){return this.mediaSource_.duration};
|
|
918
923
|
shaka.media.MediaSourceEngine.prototype.setLiveSeekableRange=function(a,b){var c=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(d){goog.asserts.assert("setLiveSeekableRange"in c.mediaSource_,"Using setLiveSeekableRange on not supported platform");return c.ended()||c.closed()?d.return():d.yield(c.enqueueBlockingOperation_(function(){c.ended()||c.closed()||c.mediaSource_.setLiveSeekableRange(a,b)}),0)})};
|
|
919
924
|
shaka.media.MediaSourceEngine.prototype.clearLiveSeekableRange=function(){var a=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(b){goog.asserts.assert("clearLiveSeekableRange"in a.mediaSource_,"Using clearLiveSeekableRange on not supported platform");return a.ended()||a.closed()?b.return():b.yield(a.enqueueBlockingOperation_(function(){a.ended()||a.closed()||a.mediaSource_.clearLiveSeekableRange()}),0)})};
|
|
920
|
-
shaka.media.MediaSourceEngine.prototype.append_=function(a,b,c){a==shaka.util.ManifestParserUtils.ContentType.VIDEO&&this.lcevcDec_&&this.lcevcDec_.appendBuffer(b,c);this.sourceBuffers_
|
|
921
|
-
shaka.media.MediaSourceEngine.prototype.abort_=function(a){var b=this.sourceBuffers_
|
|
922
|
-
shaka.media.MediaSourceEngine.prototype.setTimestampOffset_=function(a,b){0>b&&(b+=.001);this.sourceBuffers_
|
|
923
|
-
shaka.media.MediaSourceEngine.prototype.onError_=function(a){var b=this.queues_
|
|
924
|
-
shaka.media.MediaSourceEngine.prototype.onUpdateEnd_=function(a){if(!this.reloadingMediaSource_){var b=this.queues_
|
|
925
|
-
shaka.media.MediaSourceEngine.prototype.enqueueOperation_=function(a,b,c){this.destroyer_.ensureNotDestroyed();b={start:b,p:new shaka.util.PublicPromise,uri:c};this.queues_
|
|
926
|
-
shaka.media.MediaSourceEngine.prototype.enqueueBlockingOperation_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x;return $jscomp.asyncExecutePromiseGeneratorProgram(function(
|
|
927
|
-
b.queues_
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
shaka.media.MediaSourceEngine.prototype.startOperation_=function(a){var b=this.queues_
|
|
931
|
-
this.popFromQueue_(a)}};shaka.media.MediaSourceEngine.prototype.getTextDisplayer=function(){goog.asserts.assert(this.textDisplayer_,"TextDisplayer should only be null when this is destroyed");return this.textDisplayer_};shaka.media.MediaSourceEngine.prototype.setTextDisplayer=function(a){this.textDisplayer_=a;this.textEngine_&&this.textEngine_.setDisplayer(a)};shaka.media.MediaSourceEngine.prototype.setSegmentRelativeVttTiming=function(a){this.segmentRelativeVttTiming_=a};
|
|
932
|
-
shaka.media.MediaSourceEngine.prototype.workAroundBrokenPlatforms_=function(a,b,c,d){var e=shaka.util.Platform;b=null==b;var f=this.expectedEncryption_
|
|
933
|
-
"mp4"==shaka.util.MimeUtils.getContainerType(this.sourceBufferTypes_
|
|
934
|
-
shaka.media.MediaSourceEngine.prototype.change_=function(a,b,c){a===shaka.util.ManifestParserUtils.ContentType.TEXT
|
|
935
|
-
this.onUpdateEnd_(a)
|
|
936
|
-
shaka.media.MediaSourceEngine.prototype.reset_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x;return $jscomp.asyncExecutePromiseGeneratorProgram(function(
|
|
937
|
-
for(h
|
|
938
|
-
|
|
939
|
-
|
|
925
|
+
shaka.media.MediaSourceEngine.prototype.append_=function(a,b,c){a==shaka.util.ManifestParserUtils.ContentType.VIDEO&&this.lcevcDec_&&this.lcevcDec_.appendBuffer(b,c);this.sourceBuffers_.get(a).appendBuffer(b)};shaka.media.MediaSourceEngine.prototype.remove_=function(a,b,c){if(c<=b)this.onUpdateEnd_(a);else this.sourceBuffers_.get(a).remove(b,c)};
|
|
926
|
+
shaka.media.MediaSourceEngine.prototype.abort_=function(a){var b=this.sourceBuffers_.get(a),c=b.appendWindowStart,d=b.appendWindowEnd;b.abort();b.appendWindowStart=c;b.appendWindowEnd=d;this.onUpdateEnd_(a)};shaka.media.MediaSourceEngine.prototype.flush_=function(a){goog.asserts.assert(0==this.video_.buffered.length,"MediaSourceEngine.flush_ should only be used after clearing all data!");this.video_.currentTime-=.001;this.onUpdateEnd_(a)};
|
|
927
|
+
shaka.media.MediaSourceEngine.prototype.setTimestampOffset_=function(a,b){0>b&&(b+=.001);this.sourceBuffers_.get(a).timestampOffset=b;this.onUpdateEnd_(a)};shaka.media.MediaSourceEngine.prototype.setAppendWindow_=function(a,b,c){var d=this.sourceBuffers_.get(a);d.appendWindowStart=0;d.appendWindowEnd=c;d.appendWindowStart=b;this.onUpdateEnd_(a)};
|
|
928
|
+
shaka.media.MediaSourceEngine.prototype.onError_=function(a){var b=this.queues_.get(a)[0];goog.asserts.assert(b,"Spurious error event!");goog.asserts.assert(!this.sourceBuffers_.get(a).updating,"SourceBuffer should not be updating on error!");b.p.reject(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.MEDIA_SOURCE_OPERATION_FAILED,this.video_.error?this.video_.error.code:0,b.uri))};
|
|
929
|
+
shaka.media.MediaSourceEngine.prototype.onUpdateEnd_=function(a){if(!this.reloadingMediaSource_){var b=this.queues_.get(a)[0];goog.asserts.assert(b,"Spurious updateend event!");b&&(goog.asserts.assert(!this.sourceBuffers_.get(a).updating,"SourceBuffer should not be updating on updateend!"),b.p.resolve(),this.popFromQueue_(a))}};
|
|
930
|
+
shaka.media.MediaSourceEngine.prototype.enqueueOperation_=function(a,b,c){this.destroyer_.ensureNotDestroyed();b={start:b,p:new shaka.util.PublicPromise,uri:c};this.queues_.get(a).push(b);1==this.queues_.get(a).length&&this.startOperation_(a);return b.p};
|
|
931
|
+
shaka.media.MediaSourceEngine.prototype.enqueueBlockingOperation_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,B;return $jscomp.asyncExecutePromiseGeneratorProgram(function(A){switch(A.nextAddress){case 1:b.destroyer_.ensureNotDestroyed();c=[];d=Array.from(b.sourceBuffers_.keys());e=$jscomp.makeIterator(d);f=e.next();for(g={};!f.done;g={ready:void 0},f=e.next())h=f.value,g.ready=new shaka.util.PublicPromise,k={start:function(z){return function(){return z.ready.resolve()}}(g),p:g.ready,
|
|
932
|
+
uri:null},l=b.queues_.get(h),l.push(k),c.push(g.ready),1==l.length&&k.start();A.setCatchFinallyBlocks(2);return A.yield(Promise.all(c),4);case 4:A.leaveTryBlock(3);break;case 2:m=A.enterCatchBlock();goog.asserts.assert(b.destroyer_.destroyed(),"Should be destroyed by now");if(goog.DEBUG)for(n=$jscomp.makeIterator(d),p=n.next();!p.done;p=n.next())q=p.value,r=b.queues_.get(q),r.length&&(goog.asserts.assert(1==r.length,"Should be at most one item in queue!"),goog.asserts.assert(c.includes(r[0].p),"The item in queue should be one of our waiters!"),
|
|
933
|
+
r.shift());throw m;case 3:if(goog.DEBUG)for(t=$jscomp.makeIterator(d),u=t.next();!u.done;u=t.next())w=u.value,goog.asserts.assert(0==b.sourceBuffers_.get(w).updating,"SourceBuffers should not be updating after a blocking op!");A.setCatchFinallyBlocks(5,6);return A.yield(a(),6);case 6:A.enterFinallyBlock();v=$jscomp.makeIterator(d);for(x=v.next();!x.done;x=v.next())y=x.value,b.popFromQueue_(y);A.leaveFinallyBlock(0);break;case 5:throw B=A.enterCatchBlock(),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
934
|
+
shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.MEDIA_SOURCE_OPERATION_THREW,B,b.video_.error||"No error in the media element",null);}})};shaka.media.MediaSourceEngine.prototype.popFromQueue_=function(a){goog.asserts.assert(this.queues_.has(a),"Queue should exist");this.queues_.get(a).shift();this.startOperation_(a)};
|
|
935
|
+
shaka.media.MediaSourceEngine.prototype.startOperation_=function(a){var b=this.queues_.get(a)[0];if(b)try{b.start()}catch(c){"QuotaExceededError"==c.name?b.p.reject(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.QUOTA_EXCEEDED_ERROR,a)):b.p.reject(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.MEDIA_SOURCE_OPERATION_THREW,c,this.video_.error||"No error in the media element",
|
|
936
|
+
b.uri)),this.popFromQueue_(a)}};shaka.media.MediaSourceEngine.prototype.getTextDisplayer=function(){goog.asserts.assert(this.textDisplayer_,"TextDisplayer should only be null when this is destroyed");return this.textDisplayer_};shaka.media.MediaSourceEngine.prototype.setTextDisplayer=function(a){this.textDisplayer_=a;this.textEngine_&&this.textEngine_.setDisplayer(a)};shaka.media.MediaSourceEngine.prototype.setSegmentRelativeVttTiming=function(a){this.segmentRelativeVttTiming_=a};
|
|
937
|
+
shaka.media.MediaSourceEngine.prototype.workAroundBrokenPlatforms_=function(a,b,c,d){var e=shaka.util.Platform;b=null==b;var f=this.expectedEncryption_.get(c),g=this.playerInterface_.getKeySystem();this.config_.insertFakeEncryptionInInit&&b&&f&&e.requiresEncryptionInfoInAllInitSegments(g)&&"mp4"==shaka.util.MimeUtils.getContainerType(this.sourceBufferTypes_.get(c))&&(shaka.log.debug("Forcing fake encryption information in init segment."),a=shaka.media.ContentWorkarounds.fakeEncryption(a,d));b&&e.requiresEC3InitSegments()&&
|
|
938
|
+
"mp4"==shaka.util.MimeUtils.getContainerType(this.sourceBufferTypes_.get(c))&&(shaka.log.debug("Forcing fake EC-3 information in init segment."),a=shaka.media.ContentWorkarounds.fakeEC3(a));return a};
|
|
939
|
+
shaka.media.MediaSourceEngine.prototype.change_=function(a,b,c){if(a===shaka.util.ManifestParserUtils.ContentType.TEXT)shaka.log.debug("Change not supported for "+a);else{var d=this.sourceBufferTypes_.get(a);shaka.log.debug("Change Type: "+d+" -> "+b);shaka.media.Capabilities.isChangeTypeSupported()?(this.transmuxers_.has(a)&&(this.transmuxers_.get(a).destroy(),this.transmuxers_.delete(a)),c&&this.transmuxers_.set(a,c),c=this.addExtraFeaturesToMimeType_(b),this.sourceBuffers_.get(a).changeType(c),
|
|
940
|
+
this.sourceBufferTypes_.set(a,b)):shaka.log.debug("Change Type not supported");this.onUpdateEnd_(a)}};shaka.media.MediaSourceEngine.prototype.changeType=function(a,b,c){var d=this;return this.enqueueOperation_(a,function(){return d.change_(a,b,c)},null)};
|
|
941
|
+
shaka.media.MediaSourceEngine.prototype.reset_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,B,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(z){switch(z.nextAddress){case 1:c=shaka.util.ManifestParserUtils.ContentType;b.reloadingMediaSource_=!0;b.needSplitMuxedContent_=!1;d=b.video_.currentTime;e=b.video_.autoplay;f=b.video_.paused;b.playbackHasBegun_&&(b.video_.autoplay=!1);z.setFinallyBlock(2);b.eventManager_.removeAll();g=$jscomp.makeIterator(b.transmuxers_.values());
|
|
942
|
+
for(h=g.next();!h.done;h=g.next())k=h.value,k.destroy();l=$jscomp.makeIterator(b.sourceBuffers_.values());for(m=l.next();!m.done;m=l.next()){n=m.value;try{b.mediaSource_.removeSourceBuffer(n)}catch(C){shaka.log.debug("Exception on removeSourceBuffer",C)}}b.transmuxers_.clear();b.sourceBuffers_.clear();p=b.mediaSource_.duration;b.mediaSourceOpen_=new shaka.util.PublicPromise;b.mediaSource_=b.createMediaSource(b.mediaSourceOpen_);return z.yield(b.mediaSourceOpen_,4);case 4:!isNaN(p)&&p?b.mediaSource_.duration=
|
|
943
|
+
p:!isNaN(b.lastDuration_)&&b.lastDuration_&&(b.mediaSource_.duration=b.lastDuration_),q=new shaka.util.PublicPromise,r=b.mediaSource_.sourceBuffers,t=a.size,u=0,w=function(){u++;u===t&&(q.resolve(),b.eventManager_.unlisten(r,"addsourcebuffer",w))},b.eventManager_.listen(r,"addsourcebuffer",w),v=$jscomp.makeIterator(a.keys()),x=v.next();case 5:if(x.done)return(A=a.get(c.AUDIO))&&A.isAudioMuxedInVideo&&(b.needSplitMuxedContent_=!0),b.needSplitMuxedContent_&&!b.queues_.has(c.AUDIO)&&b.queues_.set(c.AUDIO,
|
|
944
|
+
[]),b.video_.currentTime=d,z.yield(q,2);y=x.value;B=a.get(y);return z.yield(b.initSourceBuffer_(y,B,B.codecs),6);case 6:x=v.next();z.jumpTo(5);break;case 2:z.enterFinallyBlock(),b.reloadingMediaSource_=!1,b.destroyer_.ensureNotDestroyed(),b.eventManager_.listenOnce(b.video_,"canplaythrough",function(){b.destroyer_.destroyed()||(b.video_.autoplay=e,f||b.video_.play())}),z.leaveFinallyBlock(0)}})};shaka.media.MediaSourceEngine.prototype.reset=function(a){var b=this;return this.enqueueBlockingOperation_(function(){return b.reset_(a)})};
|
|
940
945
|
shaka.media.MediaSourceEngine.prototype.getRealInfo_=function(a,b,c){var d=shaka.util.ManifestParserUtils.ContentType,e=shaka.util.MimeUtils,f=!1,g=shaka.util.ManifestParserUtils.guessCodecsSafe(d.AUDIO,(c||"").split(",")),h=shaka.util.ManifestParserUtils.guessCodecsSafe(d.VIDEO,(c||"").split(",")),k=h;a==d.AUDIO&&(k=g);k||(k=c);c=shaka.util.MimeUtils.getFullType(b,k);var l=this.config_.forceTransmux;if(!shaka.media.Capabilities.isTypeSupported(c)||!this.sequenceMode_&&shaka.util.MimeUtils.RAW_FORMATS.includes(c))l=
|
|
941
946
|
!0;d=shaka.transmuxer.TransmuxerEngine;if(l&&(b=shaka.util.MimeUtils.getFullTypeWithAllCodecs(b,k),k=d.findTransmuxer(b))){var m=k();g&&h&&(f=!0);c=m.convertCodecs(a,b)}a=e.getNormalizedCodec(e.getCodecs(c));e=e.getBasicType(c);return{transmuxer:m,transmuxerMuxed:f,basicType:e,codec:a,mimeType:c}};
|
|
942
|
-
shaka.media.MediaSourceEngine.prototype.codecSwitchIfNecessary_=function(a,b,c,d){var e=this,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x;return $jscomp.asyncExecutePromiseGeneratorProgram(function(y){if(1==y.nextAddress){f=shaka.util.ManifestParserUtils.ContentType;if(a==f.TEXT)return y.return(!1);g=shaka.util.MimeUtils;h=g.getNormalizedCodec(g.getCodecs(e.sourceBufferTypes_
|
|
943
|
-
t=!0;n&&(u=e.getRealInfo_(f.AUDIO,b,c),w=g.getNormalizedCodec(g.getCodecs(e.sourceBufferTypes_
|
|
944
|
-
m.destroy()),y.return(!1);x=!0;if(e.needSplitMuxedContent_||n&&m&&!e.transmuxers_
|
|
945
|
-
shaka.media.MediaSourceEngine.prototype.isCodecSwitchNecessary_=function(a,b,c){if(a==shaka.util.ManifestParserUtils.ContentType.TEXT)return!1;var d=shaka.util.MimeUtils,e=d.getNormalizedCodec(d.getCodecs(this.sourceBufferTypes_
|
|
947
|
+
shaka.media.MediaSourceEngine.prototype.codecSwitchIfNecessary_=function(a,b,c,d){var e=this,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x;return $jscomp.asyncExecutePromiseGeneratorProgram(function(y){if(1==y.nextAddress){f=shaka.util.ManifestParserUtils.ContentType;if(a==f.TEXT)return y.return(!1);g=shaka.util.MimeUtils;h=g.getNormalizedCodec(g.getCodecs(e.sourceBufferTypes_.get(a)));k=g.getBasicType(e.sourceBufferTypes_.get(a));l=e.getRealInfo_(a,b,c);m=l.transmuxer;n=l.transmuxerMuxed;p=l.basicType;q=l.codec;
|
|
948
|
+
r=l.mimeType;t=!0;n&&(u=e.getRealInfo_(f.AUDIO,b,c),w=g.getNormalizedCodec(g.getCodecs(e.sourceBufferTypes_.get(f.AUDIO))),v=g.getBasicType(e.sourceBufferTypes_.get(f.AUDIO)),t=w==u.codec&&v==u.basicType,u.transmuxer&&u.transmuxer.destroy());if(h===q&&k===p&&t)return e.transmuxers_.has(a)&&!m?(e.transmuxers_.get(a).destroy(),e.transmuxers_.delete(a)):!e.transmuxers_.has(a)&&m?e.transmuxers_.set(a,m):m&&(e.transmuxers_.has(a)&&e.transmuxers_.get(a).transmux!=m.transmux?(e.transmuxers_.get(a).destroy(),
|
|
949
|
+
e.transmuxers_.delete(a),e.transmuxers_.set(a,m)):m.destroy()),y.return(!1);x=!0;if(e.needSplitMuxedContent_||n&&m&&!e.transmuxers_.has(a))x=!1;if(x&&e.config_.codecSwitchingStrategy===shaka.config.CodecSwitchingStrategy.SMOOTH&&shaka.media.Capabilities.isChangeTypeSupported())return y.yield(e.changeType(a,r,m),3);m&&m.destroy();return y.yield(e.reset(d),3)}return y.return(!0)})};
|
|
950
|
+
shaka.media.MediaSourceEngine.prototype.isCodecSwitchNecessary_=function(a,b,c){if(a==shaka.util.ManifestParserUtils.ContentType.TEXT)return!1;var d=shaka.util.MimeUtils,e=d.getNormalizedCodec(d.getCodecs(this.sourceBufferTypes_.get(a))),f=d.getBasicType(this.sourceBufferTypes_.get(a)),g=shaka.util.MimeUtils.getFullType(b,c),h=this.config_.forceTransmux;if(!shaka.media.Capabilities.isTypeSupported(g)||!this.sequenceMode_&&shaka.util.MimeUtils.RAW_FORMATS.includes(g))h=!0;b=shaka.util.MimeUtils.getFullTypeWithAllCodecs(b,
|
|
946
951
|
c);c=shaka.transmuxer.TransmuxerEngine;h&&(h=c.findTransmuxer(b))&&(h=h(),g=h.convertCodecs(a,b),h.destroy());a=d.getNormalizedCodec(d.getCodecs(g));d=d.getBasicType(g);return e!==a||f!==d};shaka.media.MediaSourceEngine.prototype.isResetMediaSourceNecessary=function(a,b,c){return this.isCodecSwitchNecessary_(a,b,c)?this.config_.codecSwitchingStrategy!==shaka.config.CodecSwitchingStrategy.SMOOTH||!shaka.media.Capabilities.isChangeTypeSupported()||this.needSplitMuxedContent_:!1};
|
|
947
952
|
shaka.media.MediaSourceEngine.prototype.updateLcevcDec=function(a){this.lcevcDec_=a};shaka.media.MediaSourceEngine.prototype.addExtraFeaturesToMimeType_=function(a){var b=this.config_.addExtraFeaturesToSourceBuffer(a);a+=b;shaka.log.debug("Using full mime type",a);return a};shaka.media.MediaSourceEngine.createObjectURL=window.URL.createObjectURL;shaka.media.MediaSourceEngine.SourceBufferMode_={SEQUENCE:"sequence",SEGMENTS:"segments"};shaka.media.PresentationTimeline=function(a,b,c){this.presentationStartTime_=a;this.presentationDelay_=b;this.segmentAvailabilityDuration_=this.duration_=Infinity;this.maxSegmentDuration_=1;this.maxSegmentEndTime_=this.minSegmentStartTime_=null;this.clockOffset_=0;this.static_=!0;this.isLive2VodTransition_=!1;this.userSeekStart_=0;this.autoCorrectDrift_=void 0===c?!0:c;this.availabilityTimeOffset_=0;this.startTimeLocked_=!1;this.initialProgramDateTime_=a};
|
|
948
953
|
shaka.media.PresentationTimeline.prototype.getDuration=function(){return this.duration_};shaka.media.PresentationTimeline.prototype.getMaxSegmentDuration=function(){return this.maxSegmentDuration_};shaka.media.PresentationTimeline.prototype.setPresentationStartTime=function(a){goog.asserts.assert(0<=a,"presentationStartTime must be >= 0");this.presentationStartTime_=a};
|
|
@@ -1053,7 +1058,7 @@ shaka.media.QualityObserver.prototype.purgeQualityChangePositions_=function(a){v
|
|
|
1053
1058
|
shaka.media.QualityObserver.createQualityInfo=function(a){var b={bandwidth:a.bandwidth||0,audioSamplingRate:null,codecs:a.codecs,contentType:a.type,frameRate:null,height:null,mimeType:a.mimeType,channelsCount:null,pixelAspectRatio:null,width:null,label:null,roles:a.roles,language:null};a.type==shaka.util.ManifestParserUtils.ContentType.VIDEO&&(b.frameRate=a.frameRate||null,b.height=a.height||null,b.pixelAspectRatio=a.pixelAspectRatio||null,b.width=a.width||null);a.type==shaka.util.ManifestParserUtils.ContentType.AUDIO&&
|
|
1054
1059
|
(b.audioSamplingRate=a.audioSamplingRate,b.channelsCount=a.channelsCount,b.label=a.label||null,b.language=a.language);return b};shaka.media.RegionTimeline=function(a){shaka.util.FakeEventTarget.call(this);var b=this;this.regions_=new Set;this.getSeekRange_=a;this.filterTimer_=(new shaka.util.Timer(function(){b.filterBySeekRange_()})).tickEvery(shaka.media.RegionTimeline.REGION_FILTER_INTERVAL)};$jscomp.inherits(shaka.media.RegionTimeline,shaka.util.FakeEventTarget);shaka.media.RegionTimeline.prototype.release=function(){this.regions_.clear();this.filterTimer_.stop();shaka.util.FakeEventTarget.prototype.release.call(this)};
|
|
1055
1060
|
shaka.media.RegionTimeline.prototype.addRegion=function(a){null==this.findSimilarRegion_(a)&&(this.regions_.add(a),a=new shaka.util.FakeEvent("regionadd",new Map([["region",a]])),this.dispatchEvent(a))};shaka.media.RegionTimeline.prototype.filterBySeekRange_=function(){for(var a=this.getSeekRange_(),b=$jscomp.makeIterator(this.regions_),c=b.next();!c.done;c=b.next())c=c.value,c.endTime<a.start&&(this.regions_.delete(c),c=new shaka.util.FakeEvent("regionremove",new Map([["region",c]])),this.dispatchEvent(c))};
|
|
1056
|
-
shaka.media.RegionTimeline.prototype.findSimilarRegion_=function(a){for(var b=$jscomp.makeIterator(this.regions_),c=b.next();!c.done;c=b.next())if(c=c.value,c.schemeIdUri==a.schemeIdUri&&c.id==a.id
|
|
1061
|
+
shaka.media.RegionTimeline.prototype.findSimilarRegion_=function(a){for(var b=$jscomp.makeIterator(this.regions_),c=b.next();!c.done;c=b.next())if(c=c.value,c.schemeIdUri==a.schemeIdUri&&c.id==a.id&&.1>Math.abs(c.startTime-a.startTime)&&.1>Math.abs(c.endTime-a.endTime))return c;return null};shaka.media.RegionTimeline.prototype.regions=function(){return this.regions_};shaka.media.RegionTimeline.REGION_FILTER_INTERVAL=2;shaka.media.SegmentPrefetch=function(a,b,c,d){this.prefetchLimit_=a;this.stream_=b;this.fetchDispatcher_=c;this.segmentPrefetchMap_=new Map;this.initSegmentPrefetchMap_=new Map;this.iterator_=null;this.reverse_=d};shaka.media.SegmentPrefetch.prototype.replaceFetchDispatcher=function(a){this.fetchDispatcher_=a;for(var b=$jscomp.makeIterator(this.segmentPrefetchMap_.values()),c=b.next();!c.done;c=b.next())c.value.replaceFetchDispatcher(a)};
|
|
1057
1062
|
shaka.media.SegmentPrefetch.prototype.prefetchSegmentsByTime=function(a,b){b=void 0===b?!1:b;goog.asserts.assert(0<this.prefetchLimit_,"SegmentPrefetch can not be used when prefetchLimit <= 0.");var c=shaka.media.SegmentPrefetch.logPrefix_(this.stream_);if(!this.stream_.segmentIndex)return shaka.log.debug(c,"missing segmentIndex"),Promise.resolve();this.iterator_||(this.iterator_=this.stream_.segmentIndex.getIteratorForTime(a,!0,this.reverse_));if(!this.iterator_)return shaka.log.debug(c,"missing iterator"),
|
|
1058
1063
|
Promise.resolve();b&&this.iterator_.next();for(a=[];this.segmentPrefetchMap_.size<this.prefetchLimit_;){b=this.iterator_.next().value;if(!b)break;c=!0;b.isPreload()&&null!=b.endByte&&(c=!1);b.getStatus()==shaka.media.SegmentReference.Status.MISSING&&(c=!1);b.getSegmentData()&&(c=!1);c&&b.initSegmentReference&&a.push(this.prefetchInitSegment(b.initSegmentReference));c&&!this.segmentPrefetchMap_.has(b)&&(c=new shaka.media.SegmentPrefetchOperation(this.fetchDispatcher_),a.push(c.dispatchFetch(b,this.stream_)),
|
|
1059
1064
|
this.segmentPrefetchMap_.set(b,c))}this.clearInitSegments_();return Promise.all(a)};
|
|
@@ -1079,7 +1084,7 @@ m=shaka.util.Mp4BoxParsers.parseMDHD(z.reader,z.version).language}).box("minf",d
|
|
|
1079
1084
|
x).box("hvc1",x).box("dva1",x).box("dvav",x).box("dvh1",x).box("dvhe",x).box("vp09",x).box("av01",x).box("avcC",function(z){var C=w||"";switch(w){case "dvav":C="avc3";break;case "dva1":C="avc1"}z=shaka.util.Mp4BoxParsers.parseAVCC(C,z.reader,z.name);g.push(z.codec);k=!0}).box("hvcC",function(z){var C=w||"";switch(w){case "dvh1":C="hvc1";break;case "dvhe":C="hev1"}z=shaka.util.Mp4BoxParsers.parseHVCC(C,z.reader,z.name);g.push(z.codec);k=!0}).box("dvcC",function(z){var C=w||"";switch(w){case "hvc1":C=
|
|
1080
1085
|
"dvh1";break;case "hev1":C="dvhe";break;case "avc1":C="dva1";break;case "avc3":C="dvav";break;case "av01":C="dav1"}z=shaka.util.Mp4BoxParsers.parseDVCC(C,z.reader,z.name);g.push(z.codec);k=!0}).box("dvvC",function(z){var C=w||"";switch(w){case "hvc1":C="dvh1";break;case "hev1":C="dvhe";break;case "avc1":C="dva1";break;case "avc3":C="dvav";break;case "av01":C="dav1"}z=shaka.util.Mp4BoxParsers.parseDVVC(C,z.reader,z.name);g.push(z.codec);k=!0}).fullBox("vpcC",function(z){z=shaka.util.Mp4BoxParsers.parseVPCC(w||
|
|
1081
1086
|
"",z.reader,z.name);g.push(z.codec);k=!0}).box("av1C",function(z){var C=w||"";switch(w){case "dav1":C="av01"}z=shaka.util.Mp4BoxParsers.parseAV1C(C,z.reader,z.name);g.push(z.codec);k=!0}).box("enca",d.audioSampleEntry).box("encv",d.visualSampleEntry).box("sinf",d.children).box("frma",function(z){z=shaka.util.Mp4BoxParsers.parseFRMA(z.reader).codec;l(z)}).box("colr",function(z){g=g.map(function(E){return E.startsWith("av01.")?shaka.util.Mp4BoxParsers.updateAV1CodecWithCOLRBox(E,z.reader):E});var C=
|
|
1082
|
-
shaka.util.Mp4BoxParsers.parseCOLR(z.reader),D=C.colorGamut;t=C.videoRange;u=D}).parse(a||b,!0);if(!f.length&&!g.length)return null;v=h&&!k;x=new Map;if(k&&!c){c=new shaka.media.ClosedCaptionParser("video/mp4");a&&c.init(a);try{c.parseFrom(b);for(var y=$jscomp.makeIterator(c.getStreams()),
|
|
1087
|
+
shaka.util.Mp4BoxParsers.parseCOLR(z.reader),D=C.colorGamut;t=C.videoRange;u=D}).parse(a||b,!0);if(!f.length&&!g.length)return null;v=h&&!k;x=new Map;if(k&&!c){c=new shaka.media.ClosedCaptionParser("video/mp4");a&&c.init(a);try{c.parseFrom(b);for(var y=$jscomp.makeIterator(c.getStreams()),B=y.next();!B.done;B=y.next()){var A=B.value;x.set(A,A)}}catch(z){shaka.log.debug("Error detecting CC streams",z)}c.reset()}a=f.concat(g);return{type:v?"audio":"video",mimeType:v?"audio/mp4":"video/mp4",codecs:e.codecsFiltering(a).join(", "),
|
|
1083
1088
|
language:m,height:n,width:p,channelCount:q,sampleRate:r,closedCaptions:x,videoRange:t,colorGamut:u,frameRate:null}};shaka.media.SegmentUtils.codecsFiltering=function(a){var b=shaka.util.ManifestParserUtils.ContentType,c=shaka.util.ManifestParserUtils,d=shaka.media.SegmentUtils;a=d.filterDuplicateCodecs_(a);var e=c.guessAllCodecsSafe(b.AUDIO,a),f=c.guessAllCodecsSafe(b.VIDEO,a);b=c.guessAllCodecsSafe(b.TEXT,a);d=d.chooseBetterCodecs_(f);d=e.concat(d).concat(b);return a.length&&!d.length?a:d};
|
|
1084
1089
|
shaka.media.SegmentUtils.filterDuplicateCodecs_=function(a){var b=new Set,c=[];a=$jscomp.makeIterator(a);for(var d=a.next();!d.done;d=a.next()){d=d.value;var e=shaka.util.MimeUtils.getCodecBase(d);b.has(e)?shaka.log.debug("Ignoring duplicate codec"):(c.push(d),b.add(e))}return c};
|
|
1085
1090
|
shaka.media.SegmentUtils.chooseBetterCodecs_=function(a){if(1>=a.length)return a;var b=a.find(function(c){return c.startsWith("dvav.")||c.startsWith("dva1.")||c.startsWith("dvh1.")||c.startsWith("dvhe.")||c.startsWith("dav1.")||c.startsWith("dvc1.")||c.startsWith("dvi1.")});return b?shaka.media.Capabilities.isTypeSupported('video/mp4; codecs="'+b+'"')?[b]:a.filter(function(c){return c!=b}):a};
|
|
@@ -1131,41 +1136,41 @@ if(a.clearingBuffer)return l.return();a.updateTimer=null;if(!a.waitingToClearBuf
|
|
|
1131
1136
|
l.yield(b.handleStreamingError_(a,e),8);case 8:return l.return();case 6:if(d!=a.stream)return d.closeSegmentIndex&&(goog.asserts.assert(!a.stream.segmentIndex,"mediaState.stream should not have segmentIndex yet."),d.closeSegmentIndex()),a.performingUpdate||a.updateTimer||b.scheduleUpdate_(a,0),l.return();case 4:l.setCatchFinallyBlocks(9);f=b.update_(a);null!=f&&(b.scheduleUpdate_(a,f),a.hasError=!1);l.leaveTryBlock(10);break;case 9:return g=l.enterCatchBlock(),l.yield(b.handleStreamingError_(a,g),
|
|
1132
1137
|
11);case 11:return l.return();case 10:h=Array.from(b.mediaStates_.values());if(!b.startupComplete_||!h.every(function(m){return m.endOfStream})){l.jumpTo(0);break}shaka.log.v1(c,"calling endOfStream()...");return l.yield(b.playerInterface_.mediaSourceEngine.endOfStream(),13);case 13:b.destroyer_.ensureNotDestroyed(),k=b.playerInterface_.mediaSourceEngine.getDuration(),0!=k&&k<b.manifest_.presentationTimeline.getDuration()&&b.manifest_.presentationTimeline.setDuration(k),l.jumpToEnd()}})};
|
|
1133
1138
|
shaka.media.StreamingEngine.prototype.update_=function(a){goog.asserts.assert(this.manifest_,"manifest_ should not be null");goog.asserts.assert(this.config_,"config_ should not be null");var b=shaka.util.ManifestParserUtils.ContentType;if(shaka.media.StreamingEngine.isEmbeddedText_(a))return this.playerInterface_.mediaSourceEngine.setSelectedClosedCaptionId(a.stream.originalId||""),null;a.type==b.TEXT&&this.playerInterface_.mediaSourceEngine.clearSelectedClosedCaptionId();if(a.stream.isAudioMuxedInVideo)return null;
|
|
1134
|
-
if(!this.playerInterface_.mediaSourceEngine.isStreamingAllowed()&&a.type!=b.TEXT)return
|
|
1135
|
-
d);shaka.log.v2(
|
|
1136
|
-
a.endOfStream=!1;if(
|
|
1137
|
-
|
|
1139
|
+
var c=this.config_.updateIntervalSeconds/Math.max(1,Math.abs(this.playerInterface_.getPlaybackRate()));if(!this.playerInterface_.mediaSourceEngine.isStreamingAllowed()&&a.type!=b.TEXT)return c/2;var d=shaka.media.StreamingEngine.logPrefix_(a),e=this.playerInterface_.getPresentationTime();if(a.type===b.AUDIO)for(var f=$jscomp.makeIterator(this.audioPrefetchMap_.keys()),g=f.next();!g.done;g=f.next())g=this.audioPrefetchMap_.get(g.value),g.evict(e,!0),g.prefetchSegmentsByTime(e);f=this.getTimeNeeded_(a,
|
|
1140
|
+
e);shaka.log.v2(d,"timeNeeded="+f);var h=this.playerInterface_.mediaSourceEngine.bufferedAheadOf(a.type,e);shaka.log.v2(d,"update_:","presentationTime="+e,"bufferedAhead="+h);var k=Math.max(1,Math.max(this.config_.rebufferingGoal,this.config_.bufferingGoal)*this.bufferingScale_),l=this.manifest_.presentationTimeline.getDuration()-f;g=this.playerInterface_.mediaSourceEngine.bufferEnd(a.type);if(1E-6>l&&g)return shaka.log.debug(d,"buffered to end of presentation"),a.endOfStream=!0,a.type==b.VIDEO&&
|
|
1141
|
+
(a=this.mediaStates_.get(b.TEXT))&&shaka.media.StreamingEngine.isEmbeddedText_(a)&&(a.endOfStream=!0),null;a.endOfStream=!1;if(h>=k)return shaka.log.v2(d,"buffering goal met"),c/2;h=!a.segmentIterator;b=this.getSegmentReferenceNeeded_(a,e,g);if(!b)return c;g=!1;h&&a.adaptation&&(g=!0,a.adaptation=!1);h=Infinity;k=Array.from(this.mediaStates_.values());k=$jscomp.makeIterator(k);for(l=k.next();!l.done;l=k.next())l=l.value,shaka.media.StreamingEngine.isEmbeddedText_(l)||l.segmentIterator&&!l.segmentIterator.current()||
|
|
1142
|
+
(l=this.getTimeNeeded_(l,e),h=Math.min(h,l));k=this.manifest_.presentationTimeline.getMaxSegmentDuration()*shaka.media.StreamingEngine.MAX_RUN_AHEAD_SEGMENTS_;if(f>=h+k)return shaka.log.v2(d,"waiting for other streams to buffer"),c;a.segmentPrefetch&&a.segmentIterator&&!this.audioPrefetchMap_.has(a.stream)&&(a.segmentPrefetch.evict(b.startTime),a.segmentPrefetch.prefetchSegmentsByTime(b.startTime));this.fetchAndAppend_(a,e,b,g).catch(function(){});return null};
|
|
1138
1143
|
shaka.media.StreamingEngine.prototype.getTimeNeeded_=function(a,b){return a.lastSegmentReference?a.lastSegmentReference.endTime:b};
|
|
1139
1144
|
shaka.media.StreamingEngine.prototype.getSegmentReferenceNeeded_=function(a,b,c){var d=shaka.media.StreamingEngine.logPrefix_(a);goog.asserts.assert(a.stream.segmentIndex,"segment index should have been generated already");if(a.segmentIterator)return a.segmentIterator.current();if(a.lastSegmentReference||c)return b=a.lastSegmentReference?a.lastSegmentReference.endTime:c,goog.asserts.assert(null!=b,"Should have a time to search"),shaka.log.v1(d,"looking up segment from new stream endTime:",b),c=0>
|
|
1140
1145
|
this.playerInterface_.getPlaybackRate(),a.stream.segmentIndex&&(a.segmentIterator=a.stream.segmentIndex.getIteratorForTime(b,!1,c)),a=a.segmentIterator&&a.segmentIterator.next().value,null==a&&shaka.log.warning(d,"cannot find segment","endTime:",b),a;c=this.manifest_.sequenceMode?0:this.config_.inaccurateManifestTolerance;var e=Math.max(b-c,0);shaka.log.v1(d,"looking up segment","lookupTime:",e,"presentationTime:",b);var f=0>this.playerInterface_.getPlaybackRate(),g=null;c&&(a.stream.segmentIndex&&
|
|
1141
1146
|
(a.segmentIterator=a.stream.segmentIndex.getIteratorForTime(e,!1,f)),g=a.segmentIterator&&a.segmentIterator.next().value);g||(a.stream.segmentIndex&&(a.segmentIterator=a.stream.segmentIndex.getIteratorForTime(b,!1,f)),g=a.segmentIterator&&a.segmentIterator.next().value);null==g&&shaka.log.warning(d,"cannot find segment","lookupTime:",e,"presentationTime:",b);return g};
|
|
1142
|
-
shaka.media.StreamingEngine.prototype.fetchAndAppend_=function(a,b,c,d){var e=this,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,A,
|
|
1143
|
-
if(c.getStatus()==shaka.media.SegmentReference.Status.MISSING)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.SEGMENT_MISSING);return
|
|
1144
|
-
shaka.media.ManifestParser.HLS||c.hasByterangeOptimization()))return t=new Uint8Array(0),w=u=!1,x=function(
|
|
1145
|
-
t=t.subarray(
|
|
1146
|
-
e.destroyer_.ensureNotDestroyed();return a.waitingToClearBuffer?(shaka.log.info(h,"waitingToClearBuffer, skip append"),a.performingUpdate=!1,e.scheduleUpdate_(a,0),
|
|
1147
|
-
k,c,y,!1,d),10);case 10:a.segmentPrefetch&&a.segmentIterator&&a.segmentPrefetch.prefetchSegmentsByTime(c.startTime,!0);case 6:e.destroyer_.ensureNotDestroyed();if(e.fatalError_)return
|
|
1148
|
-
a.stream);e.scheduleUpdate_(a,0);
|
|
1149
|
-
"Text stream failed to download. Proceeding without it."):shaka.log.warning(h,"Text stream failed to parse. Proceeding without it."),e.mediaStates_.delete(f.TEXT),
|
|
1150
|
-
|
|
1147
|
+
shaka.media.StreamingEngine.prototype.fetchAndAppend_=function(a,b,c,d){var e=this,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,B,A,z,C,D;return $jscomp.asyncExecutePromiseGeneratorProgram(function(E){switch(E.nextAddress){case 1:f=shaka.util.ManifestParserUtils.ContentType;g=shaka.media.StreamingEngine;h=g.logPrefix_(a);shaka.log.v1(h,"fetchAndAppend_:","presentationTime="+b,"reference.startTime="+c.startTime,"reference.endTime="+c.endTime);k=a.stream;l=a.segmentIterator;a.performingUpdate=!0;E.setCatchFinallyBlocks(2);
|
|
1148
|
+
if(c.getStatus()==shaka.media.SegmentReference.Status.MISSING)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.SEGMENT_MISSING);return E.yield(e.initSourceBuffer_(a,c,d),4);case 4:e.destroyer_.ensureNotDestroyed();if(e.fatalError_)return E.return();shaka.log.v2(h,"fetching segment");m="video/mp4"==k.mimeType||"audio/mp4"==k.mimeType;n=window.ReadableStream;if((p=e.config_.lowLatencyMode&&e.manifest_.isLowLatency)&&n&&m&&(e.manifest_.type!=
|
|
1149
|
+
shaka.media.ManifestParser.HLS||c.hasByterangeOptimization()))return t=new Uint8Array(0),w=u=!1,x=function(H){var I,G,L,K;return $jscomp.asyncExecutePromiseGeneratorProgram(function(F){switch(F.nextAddress){case 1:if(u)return F.return();w=!0;e.destroyer_.ensureNotDestroyed();if(e.fatalError_)return F.return();F.setCatchFinallyBlocks(2);t=e.concatArray_(t,H);I=!1;G=0;(new shaka.util.Mp4Parser).box("mdat",function(M){G=M.size+M.start;I=!0}).parse(t,!1,!0);if(!I){F.jumpTo(4);break}L=t.subarray(0,G);
|
|
1150
|
+
t=t.subarray(G);return F.yield(e.append_(a,b,k,c,L,!0,d),5);case 5:a.segmentPrefetch&&a.segmentIterator&&a.segmentPrefetch.prefetchSegmentsByTime(c.startTime,!0);case 4:F.leaveTryBlock(0);break;case 2:v=K=F.enterCatchBlock(),F.jumpToEnd()}})},E.yield(e.fetch_(a,c,x),9);p&&!n&&shaka.log.warning("Low latency streaming mode is enabled, but ReadableStream is not supported by the browser.");q=e.fetch_(a,c);return E.yield(q,7);case 7:r=E.yieldResult;e.destroyer_.ensureNotDestroyed();if(e.fatalError_)return E.return();
|
|
1151
|
+
e.destroyer_.ensureNotDestroyed();return a.waitingToClearBuffer?(shaka.log.info(h,"waitingToClearBuffer, skip append"),a.performingUpdate=!1,e.scheduleUpdate_(a,0),E.return()):E.yield(e.append_(a,b,k,c,r,!1,d),6);case 9:y=E.yieldResult;if(v)throw v;if(w){E.jumpTo(10);break}u=!0;e.destroyer_.ensureNotDestroyed();return e.fatalError_?E.return():a.waitingToClearBuffer?(shaka.log.info(h,"waitingToClearBuffer, skip append"),a.performingUpdate=!1,e.scheduleUpdate_(a,0),E.return()):E.yield(e.append_(a,b,
|
|
1152
|
+
k,c,y,!1,d),10);case 10:a.segmentPrefetch&&a.segmentIterator&&a.segmentPrefetch.prefetchSegmentsByTime(c.startTime,!0);case 6:e.destroyer_.ensureNotDestroyed();if(e.fatalError_)return E.return();a.lastSegmentReference=c;B=l.next().value;shaka.log.v2(h,"advancing to next segment",B);a.performingUpdate=!1;a.recovering=!1;A=e.playerInterface_.mediaSourceEngine.getBufferedInfo();z=A[a.type];shaka.log.v1(h,"finished fetch and append",JSON.stringify(z));if(!a.waitingToClearBuffer)if(C=null,a.type===f.VIDEO?
|
|
1153
|
+
C=e.mediaStates_.get(f.AUDIO):a.type===f.AUDIO&&(C=e.mediaStates_.get(f.VIDEO)),C&&C.type==f.AUDIO)e.playerInterface_.onSegmentAppended(c,a.stream,C.stream.isAudioMuxedInVideo);else e.playerInterface_.onSegmentAppended(c,a.stream,a.stream.codecs.includes(","));e.scheduleUpdate_(a,0);E.leaveTryBlock(0);break;case 2:D=E.enterCatchBlock();e.destroyer_.ensureNotDestroyed(D);if(e.fatalError_)return E.return();goog.asserts.assert(D instanceof shaka.util.Error,"Should only receive a Shaka error");a.performingUpdate=
|
|
1154
|
+
!1;if(D.code==shaka.util.Error.Code.OPERATION_ABORTED)a.performingUpdate=!1,e.cancelUpdate_(a),e.scheduleUpdate_(a,0),E.jumpTo(0);else if(a.type==f.TEXT&&e.config_.ignoreTextStreamFailures)D.code==shaka.util.Error.Code.BAD_HTTP_STATUS?shaka.log.warning(h,"Text stream failed to download. Proceeding without it."):shaka.log.warning(h,"Text stream failed to parse. Proceeding without it."),e.mediaStates_.delete(f.TEXT),E.jumpTo(0);else{if(D.code==shaka.util.Error.Code.QUOTA_EXCEEDED_ERROR)return E.yield(e.handleQuotaExceeded_(a,
|
|
1155
|
+
D),0);shaka.log.error(h,"failed fetch and append: code="+D.code);a.hasError=!0;D.category==shaka.util.Error.Category.NETWORK&&a.segmentPrefetch&&a.segmentPrefetch.removeReference(c);D.severity=shaka.util.Error.Severity.CRITICAL;return E.yield(e.handleStreamingError_(a,D),0)}}})};
|
|
1151
1156
|
shaka.media.StreamingEngine.prototype.retry=function(a){if(this.destroyer_.destroyed())return shaka.log.error("Unable to retry after StreamingEngine is destroyed!"),!1;if(this.fatalError_)return shaka.log.error("Unable to retry after StreamingEngine encountered a fatal error!"),!1;for(var b=$jscomp.makeIterator(this.mediaStates_.values()),c=b.next();!c.done;c=b.next()){c=c.value;var d=shaka.media.StreamingEngine.logPrefix_(c);!c.hasError||c.performingUpdate||c.updateTimer||(shaka.log.info(d,"Retrying after failure..."),
|
|
1152
1157
|
c.hasError=!1,this.scheduleUpdate_(c,a))}return!0};shaka.media.StreamingEngine.prototype.concatArray_=function(a,b){var c=new Uint8Array(a.length+b.length);c.set(a);c.set(b,a.length);return c};
|
|
1153
1158
|
shaka.media.StreamingEngine.prototype.handleQuotaExceeded_=function(a,b){var c=this,d,e,f,g,h,k,l,m;return $jscomp.asyncExecutePromiseGeneratorProgram(function(n){if(1==n.nextAddress){d=shaka.media.StreamingEngine.logPrefix_(a);e=Array.from(c.mediaStates_.values());if(f=e.some(function(p){return p!=a&&p.recovering}))return shaka.log.debug(d,"MediaSource threw QuotaExceededError:","waiting for another stream to recover..."),n.jumpTo(2);(g=c.getDisabledTime_(b))&&shaka.log.debug(d,"Disabling stream due to quota",
|
|
1154
1159
|
b);if(h=c.playerInterface_.disableStream(a.stream,g))return n.return();k=Math.round(100*c.bufferingScale_);if(20<k)c.bufferingScale_-=.2;else if(4<k)c.bufferingScale_-=.04;else return shaka.log.error(d,"MediaSource threw QuotaExceededError too many times"),a.hasError=!0,c.fatalError_=!0,c.playerInterface_.onError(b),n.return();l=Math.round(100*c.bufferingScale_);shaka.log.warning(d,"MediaSource threw QuotaExceededError:","reducing buffering goals by "+(100-l)+"%");a.recovering=!0;m=c.playerInterface_.getPresentationTime();
|
|
1155
1160
|
return n.yield(c.evict_(a,m),2)}c.scheduleUpdate_(a,4);n.jumpToEnd()})};
|
|
1156
|
-
shaka.media.StreamingEngine.prototype.initSourceBuffer_=function(a,b,c){var d=this,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,A
|
|
1161
|
+
shaka.media.StreamingEngine.prototype.initSourceBuffer_=function(a,b,c){var d=this,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,B,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(z){switch(z.nextAddress){case 1:e=shaka.util.ManifestParserUtils.ContentType;f=shaka.util.MimeUtils;g=shaka.media.StreamingEngine;h=g.logPrefix_(a);k=null==a.lastSegmentReference;l=[];m=Math.max(0,Math.max(b.appendWindowStart,d.playRangeStart_)-g.APPEND_WINDOW_START_FUDGE_);n=Math.min(b.appendWindowEnd,d.playRangeEnd_)+
|
|
1157
1162
|
g.APPEND_WINDOW_END_FUDGE_;goog.asserts.assert(b.startTime<=n,h+" segment should start before append window end");p=b.codecs||a.stream.codecs;q=f.getCodecBase(p);r=f.getBasicType(b.mimeType||a.stream.mimeType);t=b.timestampOffset;if(t==a.lastTimestampOffset&&m==a.lastAppendWindowStart&&n==a.lastAppendWindowEnd&&q==a.lastCodecs&&r==a.lastMimeType){z.jumpTo(2);break}shaka.log.v1(h,"setting timestamp offset to "+t);shaka.log.v1(h,"setting append window start to "+m);shaka.log.v1(h,"setting append window end to "+
|
|
1158
1163
|
n);u=a.lastCodecs&&a.lastMimeType&&d.playerInterface_.mediaSourceEngine.isResetMediaSourceNecessary(a.type,r,p);if(!u){z.jumpTo(3);break}w=null;a.type===e.VIDEO?w=d.mediaStates_.get(e.AUDIO):a.type===e.AUDIO&&(w=d.mediaStates_.get(e.VIDEO));if(!w){z.jumpTo(3);break}return z.yield(d.abortOperations_(w).catch(function(){}),5);case 5:w.lastInitSegmentReference=null,w.lastAppendWindowStart=null,w.lastAppendWindowEnd=null,d.forceClearBuffer_(w);case 3:return z.yield(d.setProperties_(a,t,m,n,b,q,r),2);
|
|
1159
|
-
case 2:return shaka.media.InitSegmentReference.equal(b.initSegmentReference,a.lastInitSegmentReference)||(a.lastInitSegmentReference=b.initSegmentReference,b.isIndependent()&&b.initSegmentReference&&(shaka.log.v1(h,"fetching init segment"),v=d.fetch_(a,b.initSegmentReference),x=function(){var C,D,E,
|
|
1160
|
-
D=null,E=new Map,
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
c),6);case 6:M.leaveTryBlock(0);break;case 2:throw F=M.enterCatchBlock(),a.lastInitSegmentReference=null,F;}})},y=b.startTime,k&&(
|
|
1164
|
+
case 2:return shaka.media.InitSegmentReference.equal(b.initSegmentReference,a.lastInitSegmentReference)||(a.lastInitSegmentReference=b.initSegmentReference,b.isIndependent()&&b.initSegmentReference&&(shaka.log.v1(h,"fetching init segment"),v=d.fetch_(a,b.initSegmentReference),x=function(){var C,D,E,H,I,G,L,K,F;return $jscomp.asyncExecutePromiseGeneratorProgram(function(M){switch(M.nextAddress){case 1:return M.setCatchFinallyBlocks(2),M.yield(v,4);case 4:return C=M.yieldResult,d.destroyer_.ensureNotDestroyed(),
|
|
1165
|
+
D=null,E=new Map,H={projection:null,hfov:null},I=new shaka.util.Mp4Parser,G=shaka.util.Mp4Parser,L=shaka.util.Mp4BoxParsers,I.box("moov",G.children).box("trak",G.children).box("mdia",G.children).fullBox("mdhd",function(J){goog.asserts.assert(null!=J.version,"MDHD is a full box and should have a valid version.");D=L.parseMDHD(J.reader,J.version).timescale}).box("hdlr",function(J){switch(L.parseHDLR(J.reader).handlerType){case "soun":E.set(e.AUDIO,D);break;case "vide":E.set(e.VIDEO,D)}D=null}).box("minf",
|
|
1166
|
+
G.children).box("stbl",G.children).fullBox("stsd",G.sampleDescription).box("encv",G.visualSampleEntry).box("avc1",G.visualSampleEntry).box("avc3",G.visualSampleEntry).box("hev1",G.visualSampleEntry).box("hvc1",G.visualSampleEntry).box("dvav",G.visualSampleEntry).box("dva1",G.visualSampleEntry).box("dvh1",G.visualSampleEntry).box("dvhe",G.visualSampleEntry).box("dvc1",G.visualSampleEntry).box("dvi1",G.visualSampleEntry).box("vexu",G.children).box("proj",G.children).fullBox("prji",function(J){J=L.parsePRJI(J.reader);
|
|
1167
|
+
H.projection=J.projection}).box("hfov",function(J){J=L.parseHFOV(J.reader);H.hfov=J.hfov}).parse(C),d.updateSpatialVideoInfo_(H),E.has(a.type)?b.initSegmentReference.timescale=E.get(a.type):null!=D&&(b.initSegmentReference.timescale=D),shaka.log.v1(h,"appending init segment"),K=a.stream.closedCaptions&&0<a.stream.closedCaptions.size,M.yield(d.playerInterface_.beforeAppendSegment(a.type,C),5);case 5:return M.yield(d.playerInterface_.mediaSourceEngine.appendBuffer(a.type,C,null,a.stream,K,a.seeked,
|
|
1168
|
+
c),6);case 6:M.leaveTryBlock(0);break;case 2:throw F=M.enterCatchBlock(),a.lastInitSegmentReference=null,F;}})},y=b.startTime,k&&(B=d.playerInterface_.mediaSourceEngine.bufferEnd(a.type),null!=B&&(y=B)),d.playerInterface_.onInitSegmentAppended(y,b.initSegmentReference),l.push(x()))),A=a.lastSegmentReference?a.lastSegmentReference.discontinuitySequence:null,b.discontinuitySequence!=A&&l.push(d.playerInterface_.mediaSourceEngine.resync(a.type,b.startTime)),z.yield(Promise.all(l),0)}})};
|
|
1164
1169
|
shaka.media.StreamingEngine.prototype.setProperties_=function(a,b,c,d,e,f,g){var h=this,k,l,m,n;return $jscomp.asyncExecutePromiseGeneratorProgram(function(p){if(1==p.nextAddress)return k=shaka.util.ManifestParserUtils.ContentType,l=new Map,h.currentVariant_.audio&&l.set(k.AUDIO,h.currentVariant_.audio),h.currentVariant_.video&&l.set(k.VIDEO,h.currentVariant_.video),p.setCatchFinallyBlocks(2),a.lastAppendWindowStart=c,a.lastAppendWindowEnd=d,f&&(a.lastCodecs=f),g&&(a.lastMimeType=g),a.lastTimestampOffset=
|
|
1165
1170
|
b,m=h.manifest_.sequenceMode||h.manifest_.type==shaka.media.ManifestParser.HLS,p.yield(h.playerInterface_.mediaSourceEngine.setStreamProperties(a.type,b,c,d,m,e.mimeType||a.stream.mimeType,e.codecs||a.stream.codecs,l),4);if(2!=p.nextAddress)return p.leaveTryBlock(0);n=p.enterCatchBlock();a.lastAppendWindowStart=null;a.lastAppendWindowEnd=null;a.lastCodecs=null;a.lastMimeType=null;a.lastTimestampOffset=null;throw n;})};
|
|
1166
1171
|
shaka.media.StreamingEngine.prototype.append_=function(a,b,c,d,e,f,g){f=void 0===f?!1:f;g=void 0===g?!1:g;var h=this,k,l,m,n,p,q,r;return $jscomp.asyncExecutePromiseGeneratorProgram(function(t){switch(t.nextAddress){case 1:return k=shaka.media.StreamingEngine.logPrefix_(a),l=c.closedCaptions&&0<c.closedCaptions.size,h.config_.shouldFixTimestampOffset&&(n="video/mp4"==c.mimeType||"audio/mp4"==c.mimeType,p=null,d.initSegmentReference&&(p=d.initSegmentReference.timescale),(q=n&&p&&c.type===shaka.util.ManifestParserUtils.ContentType.VIDEO&&
|
|
1167
|
-
h.manifest_.type==shaka.media.ManifestParser.DASH)&&(m=new shaka.util.Mp4Parser),q&&m.box("moof",shaka.util.Mp4Parser.children).box("traf",shaka.util.Mp4Parser.children).fullBox("tfdt",function(u){var w,v,x,y,A
|
|
1168
|
-
typeof p,"Should be an number!");x=-v/p;y=Number(a.lastTimestampOffset)||0;if(!(y<x))return z.jumpTo(0);
|
|
1172
|
+
h.manifest_.type==shaka.media.ManifestParser.DASH)&&(m=new shaka.util.Mp4Parser),q&&m.box("moof",shaka.util.Mp4Parser.children).box("traf",shaka.util.Mp4Parser.children).fullBox("tfdt",function(u){var w,v,x,y,B,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(z){goog.asserts.assert(null!=u.version,"TFDT is a full box and should have a valid version.");w=shaka.util.Mp4BoxParsers.parseTFDTInaccurate(u.reader,u.version);v=w.baseMediaDecodeTime;if(!v)return z.return();goog.asserts.assert("number"==
|
|
1173
|
+
typeof p,"Should be an number!");x=-v/p;y=Number(a.lastTimestampOffset)||0;if(!(y<x))return z.jumpTo(0);B=a.lastAppendWindowStart;A=a.lastAppendWindowEnd;goog.asserts.assert("number"==typeof B,"Should be an number!");goog.asserts.assert("number"==typeof A,"Should be an number!");return z.yield(h.setProperties_(a,x,B,A,d),0)})}),q&&m.parse(e,!1,f)),t.yield(h.evict_(a,b),2);case 2:return h.destroyer_.ensureNotDestroyed(),r=a.seeked,a.seeked=!1,t.yield(h.playerInterface_.beforeAppendSegment(a.type,e),
|
|
1169
1174
|
3);case 3:return t.yield(h.playerInterface_.mediaSourceEngine.appendBuffer(a.type,e,d,c,l,r,g,f),4);case 4:h.destroyer_.ensureNotDestroyed(),shaka.log.v2(k,"appended media segment"),t.jumpToEnd()}})};
|
|
1170
1175
|
shaka.media.StreamingEngine.prototype.evict_=function(a,b){var c=this,d,e,f,g,h,k;return $jscomp.asyncExecutePromiseGeneratorProgram(function(l){if(1==l.nextAddress){d=a.stream.segmentIndex;d instanceof shaka.media.MetaSegmentIndex&&d.evict(c.manifest_.presentationTimeline.getSegmentAvailabilityStart());e=shaka.media.StreamingEngine.logPrefix_(a);shaka.log.v2(e,"checking buffer length");f=Math.max(c.config_.bufferBehind*c.bufferingScale_,c.manifest_.presentationTimeline.getMaxSegmentDuration());g=
|
|
1171
1176
|
c.playerInterface_.mediaSourceEngine.bufferStart(a.type);if(null==g)return c.lastTextMediaStateBeforeUnload_==a&&(c.lastTextMediaStateBeforeUnload_=null),shaka.log.v2(e,"buffer behind okay because nothing buffered:","presentationTime="+b,"bufferBehind="+f),l.return();h=b-g;k=h-f;if(k<=c.config_.evictionGoal)return shaka.log.v2(e,"buffer behind okay:","presentationTime="+b,"bufferedBehind="+h,"bufferBehind="+f,"evictionGoal="+c.config_.evictionGoal,"underflow="+Math.abs(k)),l.return();shaka.log.v1(e,
|
|
@@ -1313,14 +1318,15 @@ goog.exportProperty(shaka.text.SimpleTextDisplayer.prototype,"setTextLanguage",s
|
|
|
1313
1318
|
goog.exportProperty(shaka.text.SimpleTextDisplayer.prototype,"append",shaka.text.SimpleTextDisplayer.prototype.append);goog.exportProperty(shaka.text.SimpleTextDisplayer.prototype,"remove",shaka.text.SimpleTextDisplayer.prototype.remove);goog.exportProperty(shaka.text.SimpleTextDisplayer.prototype,"configure",shaka.text.SimpleTextDisplayer.prototype.configure);shaka.text.StubTextDisplayer=function(){};shaka.text.StubTextDisplayer.prototype.configure=function(a){};shaka.text.StubTextDisplayer.prototype.remove=function(a,b){};shaka.text.StubTextDisplayer.prototype.append=function(a){};shaka.text.StubTextDisplayer.prototype.destroy=function(){};shaka.text.StubTextDisplayer.prototype.isTextVisible=function(){return!1};shaka.text.StubTextDisplayer.prototype.setTextVisibility=function(a){};shaka.text.StubTextDisplayer.prototype.setTextLanguage=function(a){};
|
|
1314
1319
|
shaka.text.StubTextDisplayer.prototype.enableTextDisplayer=function(){};goog.exportSymbol("shaka.text.StubTextDisplayer",shaka.text.StubTextDisplayer);goog.exportProperty(shaka.text.StubTextDisplayer.prototype,"enableTextDisplayer",shaka.text.StubTextDisplayer.prototype.enableTextDisplayer);goog.exportProperty(shaka.text.StubTextDisplayer.prototype,"setTextLanguage",shaka.text.StubTextDisplayer.prototype.setTextLanguage);
|
|
1315
1320
|
goog.exportProperty(shaka.text.StubTextDisplayer.prototype,"setTextVisibility",shaka.text.StubTextDisplayer.prototype.setTextVisibility);goog.exportProperty(shaka.text.StubTextDisplayer.prototype,"isTextVisible",shaka.text.StubTextDisplayer.prototype.isTextVisible);goog.exportProperty(shaka.text.StubTextDisplayer.prototype,"destroy",shaka.text.StubTextDisplayer.prototype.destroy);goog.exportProperty(shaka.text.StubTextDisplayer.prototype,"append",shaka.text.StubTextDisplayer.prototype.append);
|
|
1316
|
-
goog.exportProperty(shaka.text.StubTextDisplayer.prototype,"remove",shaka.text.StubTextDisplayer.prototype.remove);goog.exportProperty(shaka.text.StubTextDisplayer.prototype,"configure",shaka.text.StubTextDisplayer.prototype.configure);shaka.text.UITextDisplayer=function(a,b){var c=this;goog.asserts.assert(b,"videoContainer should be valid.");document.fullscreenEnabled||shaka.log.alwaysWarn("Using UITextDisplayer in a browser without Fullscreen API support causes subtitles to not be rendered in fullscreen");this.isTextVisible_=!1;this.cues_=[];this.video_=a;this.videoContainer_=b;this.aspectRatio_=null;this.textContainer_=shaka.util.Dom.createHTMLElement("div");this.textContainer_.classList.add("shaka-text-container");
|
|
1317
|
-
"center";this.textContainer_.style.display="flex";this.textContainer_.style.flexDirection="column";this.textContainer_.style.alignItems="center";this.textContainer_.style.justifyContent="flex-end";this.videoContainer_.appendChild(this.textContainer_);this.captionsTimer_=
|
|
1318
|
-
this.eventManager_.listen(this.video_,"seeking",function(){c.updateCaptions_(!0)});this.eventManager_.listen(this.video_,"resize",function(){var d=c.video_,e=d.videoWidth;d=d.videoHeight;c.aspectRatio_=e&&d?e/d:null});this.resizeObserver_=null;"ResizeObserver"in window&&(this.resizeObserver_=new ResizeObserver(function(){c.updateCaptions_(!0)}),this.resizeObserver_.observe(this.textContainer_));
|
|
1319
|
-
shaka.text.UITextDisplayer.prototype.configure=function(a){this.
|
|
1321
|
+
goog.exportProperty(shaka.text.StubTextDisplayer.prototype,"remove",shaka.text.StubTextDisplayer.prototype.remove);goog.exportProperty(shaka.text.StubTextDisplayer.prototype,"configure",shaka.text.StubTextDisplayer.prototype.configure);shaka.text.UITextDisplayer=function(a,b){var c=this;goog.asserts.assert(b,"videoContainer should be valid.");document.fullscreenEnabled||shaka.log.alwaysWarn("Using UITextDisplayer in a browser without Fullscreen API support causes subtitles to not be rendered in fullscreen");this.isTextVisible_=!1;this.cues_=[];this.video_=a;this.videoContainer_=b;this.config_=this.aspectRatio_=null;this.textContainer_=shaka.util.Dom.createHTMLElement("div");this.textContainer_.classList.add("shaka-text-container");
|
|
1322
|
+
this.textContainer_.style.textAlign="center";this.textContainer_.style.display="flex";this.textContainer_.style.flexDirection="column";this.textContainer_.style.alignItems="center";this.textContainer_.style.justifyContent="flex-end";this.videoContainer_.appendChild(this.textContainer_);this.captionsTimer_=new shaka.util.Timer(function(){c.video_.paused||c.updateCaptions_()});this.configureCaptionsTimer_();this.currentCuesMap_=new Map;this.eventManager_=new shaka.util.EventManager;this.eventManager_.listen(document,
|
|
1323
|
+
"fullscreenchange",function(){c.updateCaptions_(!0)});this.eventManager_.listen(this.video_,"seeking",function(){c.updateCaptions_(!0)});this.eventManager_.listen(this.video_,"ratechange",function(){c.configureCaptionsTimer_()});this.eventManager_.listen(this.video_,"resize",function(){var d=c.video_,e=d.videoWidth;d=d.videoHeight;c.aspectRatio_=e&&d?e/d:null});this.resizeObserver_=null;"ResizeObserver"in window&&(this.resizeObserver_=new ResizeObserver(function(){c.updateCaptions_(!0)}),this.resizeObserver_.observe(this.textContainer_));
|
|
1324
|
+
this.regionElements_=new Map};shaka.text.UITextDisplayer.prototype.configure=function(a){this.config_=a;this.configureCaptionsTimer_()};
|
|
1320
1325
|
shaka.text.UITextDisplayer.prototype.append=function(a){var b=[].concat($jscomp.arrayFromIterable(this.cues_));a=$jscomp.makeIterator(shaka.text.Utils.removeDuplicates(a));for(var c=a.next(),d={};!c.done;d={cue$jscomp$22:void 0},c=a.next())d.cue$jscomp$22=c.value,b.some(function(e){return function(f){return shaka.text.Cue.equal(f,e.cue$jscomp$22)}}(d))||this.cues_.push(d.cue$jscomp$22);this.updateCaptions_()};
|
|
1321
|
-
shaka.text.UITextDisplayer.prototype.destroy=function(){if(!this.textContainer_)return Promise.resolve();this.videoContainer_.removeChild(this.textContainer_);this.textContainer_=null;this.isTextVisible_=!1;this.cues_=[];this.captionsTimer_&&this.captionsTimer_.stop();this.currentCuesMap_.clear();this.eventManager_&&(this.eventManager_.release(),this.eventManager_=null);this.resizeObserver_&&(this.resizeObserver_.disconnect(),this.resizeObserver_=null);return Promise.resolve()};
|
|
1326
|
+
shaka.text.UITextDisplayer.prototype.destroy=function(){if(!this.textContainer_)return Promise.resolve();this.videoContainer_.removeChild(this.textContainer_);this.textContainer_=null;this.isTextVisible_=!1;this.cues_=[];this.captionsTimer_&&(this.captionsTimer_.stop(),this.captionsTimer_=null);this.currentCuesMap_.clear();this.eventManager_&&(this.eventManager_.release(),this.eventManager_=null);this.resizeObserver_&&(this.resizeObserver_.disconnect(),this.resizeObserver_=null);return Promise.resolve()};
|
|
1322
1327
|
shaka.text.UITextDisplayer.prototype.remove=function(a,b){if(!this.textContainer_)return!1;var c=this.cues_.length;this.cues_=this.cues_.filter(function(d){return d.startTime<a||d.endTime>=b});this.updateCaptions_(c>this.cues_.length);return!0};shaka.text.UITextDisplayer.prototype.isTextVisible=function(){return this.isTextVisible_};shaka.text.UITextDisplayer.prototype.setTextVisibility=function(a){this.isTextVisible_=a;this.updateCaptions_(!0)};
|
|
1323
|
-
shaka.text.UITextDisplayer.prototype.setTextLanguage=function(a){a&&"und"!=a?this.textContainer_.setAttribute("lang",a):this.textContainer_.setAttribute("lang","")};shaka.text.UITextDisplayer.prototype.enableTextDisplayer=function(){};shaka.text.UITextDisplayer.prototype.
|
|
1328
|
+
shaka.text.UITextDisplayer.prototype.setTextLanguage=function(a){a&&"und"!=a?this.textContainer_.setAttribute("lang",a):this.textContainer_.setAttribute("lang","")};shaka.text.UITextDisplayer.prototype.enableTextDisplayer=function(){};shaka.text.UITextDisplayer.prototype.configureCaptionsTimer_=function(){this.captionsTimer_&&this.captionsTimer_.tickEvery((this.config_?this.config_.captionsUpdatePeriod:.25)/Math.max(1,Math.abs(this.video_.playbackRate)))};
|
|
1329
|
+
shaka.text.UITextDisplayer.prototype.isElementUnderTextContainer_=function(a){for(;null!=a;){if(a==this.textContainer_)return!0;a=a.parentElement}return!1};
|
|
1324
1330
|
shaka.text.UITextDisplayer.prototype.updateCuesRecursive_=function(a,b,c,d){var e=!1,f=[],g=[];a=$jscomp.makeIterator(a);for(var h=a.next();!h.done;h=a.next()){h=h.value;d.push(h);var k=this.currentCuesMap_.get(h),l=h.startTime<=c&&h.endTime>c,m=k?k.wrapper:null;k&&(f.push(k.cueElement),k.regionElement&&f.push(k.regionElement),l||(e=!0,this.currentCuesMap_.delete(h),k=null));l&&(g.push(h),k?this.isElementUnderTextContainer_(m)||(e=!0):(this.createCue_(h,d),k=this.currentCuesMap_.get(h),m=k.wrapper,
|
|
1325
1331
|
e=!0));0<h.nestedCues.length&&m&&this.updateCuesRecursive_(h.nestedCues,m,c,d);k=d.pop();goog.asserts.assert(k==h,"Parent cues should be kept in order")}if(e){c=$jscomp.makeIterator(f);for(d=c.next();!d.done;d=c.next())d=d.value,d.parentElement&&d.parentElement.removeChild(d);g.sort(function(n,p){return n.startTime!=p.startTime?n.startTime-p.startTime:n.endTime-p.endTime});g=$jscomp.makeIterator(g);for(c=g.next();!c.done;c=g.next())c=this.currentCuesMap_.get(c.value),goog.asserts.assert(c,"cueRegistry should exist."),
|
|
1326
1332
|
c.regionElement?(c.regionElement.contains(b)&&c.regionElement.removeChild(b),b.appendChild(c.regionElement),c.regionElement.appendChild(c.cueElement)):b.appendChild(c.cueElement)}};
|
|
@@ -1436,15 +1442,15 @@ shaka.Player.prototype.preload=function(a,b,c){b=void 0===b?null:b;var d=this,e;
|
|
|
1436
1442
|
shaka.Player.prototype.destroyAllPreloads=function(){var a=this,b,c,d,e;return $jscomp.asyncExecutePromiseGeneratorProgram(function(f){b=[];c=$jscomp.makeIterator(a.createdPreloadManagers_);for(d=c.next();!d.done;d=c.next())e=d.value,e.isDestroyed()||b.push(e.destroy());a.createdPreloadManagers_=[];return f.yield(Promise.all(b),0)})};
|
|
1437
1443
|
shaka.Player.prototype.preloadInner_=function(a,b,c,d){d=void 0===d?!1:d;var e=this,f,g,h,k;return $jscomp.asyncExecutePromiseGeneratorProgram(function(l){if(1==l.nextAddress)return goog.asserts.assert(e.networkingEngine_,"Should have a net engine!"),goog.asserts.assert(e.config_,"Config must not be null!"),c?l.jumpTo(2):l.yield(e.guessMimeType_(a),3);2!=l.nextAddress&&(c=l.yieldResult);if(f=e.shouldUseSrcEquals_(a,c))return l.return(null);g=!1;h=!0;d&&(e.abrManager_&&e.abrManagerFactory_==e.config_.abrFactory&&
|
|
1438
1444
|
(h=!1),e.video_&&"AUDIO"===e.video_.nodeName&&(g=!0));k=e.makePreloadManager_(a,b,c||null,!d,g,h);k=d?k.then(function(m){m.markIsLoad();return m}):k.then(function(m){e.createdPreloadManagers_.push(m);return m});return l.return(k)})};
|
|
1439
|
-
shaka.Player.prototype.makePreloadManager_=function(a,b,c,d,e,f){d=void 0===d?!0:d;e=void 0===e?!1:e;f=void 0===f?!0:f;var g=this,h,k,l,m,n,p,q,r,t,u,w,v,x,y;return $jscomp.asyncExecutePromiseGeneratorProgram(function(
|
|
1440
|
-
null:h},m=function(){return l()?l().getConfiguration():g.config_},Infinity!=g.maxHwRes_.width||Infinity!=g.maxHwRes_.height||g.config_.ignoreHardwareResolution?
|
|
1441
|
-
D.nextAddress)return D.yield(p.filterManifest(
|
|
1442
|
-
isLowLatencyMode:function(){return m().streaming.lowLatencyMode},updateDuration:function(){g.streamingEngine_&&h.hasBeenAttached()&&g.streamingEngine_.updateDuration()},newDrmInfo:function(
|
|
1443
|
-
getBandwidthEstimate:function(){return g.abrManager_.getBandwidthEstimate()},onMetadata:function(
|
|
1444
|
-
function(
|
|
1445
|
-
goog.asserts.assert(g.video_,"Must have video"),g.adManager_.onDASHInterstitialMetadata(g,g.video_,z))})});t=null;k.streaming.observeQualityChanges&&(t=new shaka.media.QualityObserver(function(){return g.getBufferedInfo()}),t.addEventListener("qualitychange",function(
|
|
1446
|
-
function(){g.onKeyStatus_(
|
|
1447
|
-
x=function(){return g.createDrmEngine(w)};y={config:k,manifestPlayerInterface:q,regionTimeline:r,qualityObserver:t,createDrmEngine:x,manifestFilterer:p,networkingEngine:v,allowPrefetch:d,allowMakeAbrManager:f};h=new shaka.media.PreloadManager(a,c,b,y);return
|
|
1445
|
+
shaka.Player.prototype.makePreloadManager_=function(a,b,c,d,e,f){d=void 0===d?!0:d;e=void 0===e?!1:e;f=void 0===f?!0:f;var g=this,h,k,l,m,n,p,q,r,t,u,w,v,x,y;return $jscomp.asyncExecutePromiseGeneratorProgram(function(B){if(1==B.nextAddress)return goog.asserts.assert(g.networkingEngine_,"Must have net engine"),h=null,k=shaka.util.ObjectUtils.cloneObject(g.config_),e&&(k.manifest.disableVideo=!0),l=function(){goog.asserts.assert(h,"Must have preload manager");return h.hasBeenAttached()&&h.isDestroyed()?
|
|
1446
|
+
null:h},m=function(){return l()?l().getConfiguration():g.config_},Infinity!=g.maxHwRes_.width||Infinity!=g.maxHwRes_.height||g.config_.ignoreHardwareResolution?B.jumpTo(2):B.yield(shaka.util.Platform.detectMaxHardwareResolution(),3);2!=B.nextAddress&&(n=B.yieldResult,g.maxHwRes_.width=n.width,g.maxHwRes_.height=n.height);p=new shaka.media.ManifestFilterer(k,g.maxHwRes_,null);q={networkingEngine:g.networkingEngine_,filter:function(A){var z,C;return $jscomp.asyncExecutePromiseGeneratorProgram(function(D){if(1==
|
|
1447
|
+
D.nextAddress)return D.yield(p.filterManifest(A),2);if(4!=D.nextAddress){z=D.yieldResult;if(!z)return D.jumpTo(0);C=shaka.Player.makeEvent_(shaka.util.FakeEvent.EventName.TracksChanged);return D.yield(Promise.resolve(),4)}h.dispatchEvent(C);D.jumpToEnd()})},makeTextStreamsForClosedCaptions:function(A){return g.makeTextStreamsForClosedCaptions_(A)},onTimelineRegionAdded:function(A){h.getRegionTimeline().addRegion(A)},onEvent:function(A){return h.dispatchEvent(A)},onError:function(A){return h.onError(A)},
|
|
1448
|
+
isLowLatencyMode:function(){return m().streaming.lowLatencyMode},updateDuration:function(){g.streamingEngine_&&h.hasBeenAttached()&&g.streamingEngine_.updateDuration()},newDrmInfo:function(A){var z=h.getDrmEngine(),C=z?z.getDrmInfo():null;C&&z.getMediaKeys()&&p.processDrmInfos(C.keySystem,A)},onManifestUpdated:function(){var A=shaka.util.FakeEvent.EventName.ManifestUpdated,z=(new Map).set("isLive",g.isLive());h.dispatchEvent(shaka.Player.makeEvent_(A,z));h.addQueuedOperation(!1,function(){if(g.adManager_)g.adManager_.onManifestUpdated(g.isLive())})},
|
|
1449
|
+
getBandwidthEstimate:function(){return g.abrManager_.getBandwidthEstimate()},onMetadata:function(A,z,C,D){var E=A;"com.apple.hls.interstitial"==A&&(E="com.apple.quicktime.HLS",A={startTime:z,endTime:C,values:D},g.adManager_&&(goog.asserts.assert(g.video_,"Must have video"),g.adManager_.onHLSInterstitialMetadata(g,g.video_,A)));D=$jscomp.makeIterator(D);A=D.next();for(var H={};!A.done;H={payload$jscomp$6:void 0},A=D.next())H.payload$jscomp$6=A.value,"ID"!=H.payload$jscomp$6.name&&h.addQueuedOperation(!1,
|
|
1450
|
+
function(I){return function(){g.dispatchMetadataEvent_(z,C,E,I.payload$jscomp$6)}}(H))},disableStream:function(A){return g.disableStream(A,g.config_.streaming.maxDisabledTime)},addFont:function(A,z){return g.addFont(A,z)}};r=new shaka.media.RegionTimeline(function(){return g.seekRange()});r.addEventListener("regionadd",function(A){var z=A.region;g.onRegionEvent_(shaka.util.FakeEvent.EventName.TimelineRegionAdded,z,h);h.addQueuedOperation(!1,function(){g.adManager_&&(g.adManager_.onDashTimedMetadata(z),
|
|
1451
|
+
goog.asserts.assert(g.video_,"Must have video"),g.adManager_.onDASHInterstitialMetadata(g,g.video_,z))})});t=null;k.streaming.observeQualityChanges&&(t=new shaka.media.QualityObserver(function(){return g.getBufferedInfo()}),t.addEventListener("qualitychange",function(A){g.onMediaQualityChange_(A.quality,A.position)}),t.addEventListener("audiotrackchange",function(A){g.onMediaQualityChange_(A.quality,A.position,!0)}));u=!0;w={netEngine:g.networkingEngine_,onError:function(A){return h.onError(A)},onKeyStatus:function(A){h.addQueuedOperation(!0,
|
|
1452
|
+
function(){g.onKeyStatus_(A)})},onExpirationUpdated:function(A,z){var C=shaka.Player.makeEvent_(shaka.util.FakeEvent.EventName.ExpirationUpdated);h.dispatchEvent(C);if((C=h.getParser())&&C.onExpirationUpdated)C.onExpirationUpdated(A,z)},onEvent:function(A){h.dispatchEvent(A);A.type==shaka.util.FakeEvent.EventName.DrmSessionUpdate&&u&&(u=!1,A=Date.now()/1E3-h.getStartTimeOfDRM(),(g.stats_||h.getStats()).setDrmTime(A),g.lcevcDec_&&g.lcevcDec_.hideCanvas())}};v=g.createNetworkingEngine(l);g.networkingEngine_.copyFiltersInto(v);
|
|
1453
|
+
x=function(){return g.createDrmEngine(w)};y={config:k,manifestPlayerInterface:q,regionTimeline:r,qualityObserver:t,createDrmEngine:x,manifestFilterer:p,networkingEngine:v,allowPrefetch:d,allowMakeAbrManager:f};h=new shaka.media.PreloadManager(a,c,b,y);return B.return(h)})};
|
|
1448
1454
|
shaka.Player.prototype.guessMimeType_=function(a){var b=this,c,d;return $jscomp.asyncExecutePromiseGeneratorProgram(function(e){if(1==e.nextAddress)return goog.asserts.assert(b.networkingEngine_,"Should have a net engine!"),c=b.config_.manifest.retryParameters,e.yield(shaka.net.NetworkingUtils.getMimeType(a,b.networkingEngine_,c),2);d=e.yieldResult;"application/x-mpegurl"==d&&shaka.util.Platform.isApple()&&(d="application/vnd.apple.mpegurl");return e.return(d)})};
|
|
1449
1455
|
shaka.Player.prototype.shouldUseSrcEquals_=function(a,b){a=shaka.util.Platform;var c=shaka.util.MimeUtils;if(!a.supportsMediaSource())return!0;if(b){var d=""!=(this.video_||a.anyMediaElement()).canPlayType(b);if(!d)return!1;var e=shaka.media.ManifestParser.isSupported(b);if(!e)return!0;goog.asserts.assert(d&&e,"Both native and MSE playback should be possible!");if(c.isHlsType(b))return a.isApple()&&(this.config_.drm.servers["com.apple.fps"]||this.config_.drm.servers["com.apple.fps.1_0"])?this.config_.streaming.useNativeHlsForFairPlay:
|
|
1450
1456
|
this.config_.streaming.preferNativeHls;if(c.isDashType(b))return this.config_.streaming.preferNativeDash}return!1};shaka.Player.prototype.createTextDisplayer_=function(){var a=this.config_.textDisplayFactory;a!==this.lastTextFactory_&&(this.textDisplayer_=a(),this.textDisplayer_.configure?this.textDisplayer_.configure(this.config_.textDisplayer):shaka.Deprecate.deprecateFeature(5,"Text displayer w/ configure",'Text displayer should have a "configure" method!'),this.lastTextFactory_=a,this.textDisplayer_.setTextVisibility(this.isTextVisible_))};
|
|
@@ -1455,16 +1461,16 @@ shaka.Player.prototype.addBasicMediaListeners_=function(a,b){var c=this,d=functi
|
|
|
1455
1461
|
this.loadEventManager_.listen(a.remote,"disconnect",function(){return $jscomp.asyncExecutePromiseGeneratorProgram(function(e){if(1==e.nextAddress)return c.streamingEngine_&&"disconnected"==a.remote.state?e.yield(c.streamingEngine_.resetMediaSource(),2):e.jumpTo(2);c.onTracksChanged_();e.jumpToEnd()})}));a.audioTracks&&(this.loadEventManager_.listen(a.audioTracks,"addtrack",function(){return c.onTracksChanged_()}),this.loadEventManager_.listen(a.audioTracks,"removetrack",function(){return c.onTracksChanged_()}),
|
|
1456
1462
|
this.loadEventManager_.listen(a.audioTracks,"change",function(){return c.onTracksChanged_()}));a.textTracks&&(this.loadEventManager_.listen(a.textTracks,"addtrack",function(e){if(e.track)switch(e=e.track,goog.asserts.assert(e instanceof TextTrack,"Wrong track type!"),e.kind){case "metadata":c.processTimedMetadataSrcEquals_(e);break;case "chapters":c.activateChaptersTrack_(e);break;default:c.onTracksChanged_()}}),this.loadEventManager_.listen(a.textTracks,"removetrack",function(){return c.onTracksChanged_()}),
|
|
1457
1463
|
this.loadEventManager_.listen(a.textTracks,"change",function(){return c.onTracksChanged_()}));"none"!=a.preload&&this.loadEventManager_.listenOnce(a,"loadedmetadata",function(){var e=Date.now()/1E3-b;c.stats_.setLoadLatency(e)})};
|
|
1458
|
-
shaka.Player.prototype.loadInner_=function(a,b,c){var d=this,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,A,
|
|
1459
|
-
e=d.video_,d.playRateController_=new shaka.media.PlayRateController({getRate:function(){return e.playbackRate},getDefaultRate:function(){return e.defaultPlaybackRate},setRate:function(
|
|
1460
|
-
d.config_.playRangeStart,d.config_.playRangeEnd),d.abrManager_.init(function(
|
|
1464
|
+
shaka.Player.prototype.loadInner_=function(a,b,c){var d=this,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,B,A,z,C,D;return $jscomp.asyncExecutePromiseGeneratorProgram(function(E){switch(E.nextAddress){case 1:goog.asserts.assert(d.video_,"We should have a media element by now."),goog.asserts.assert(d.manifest_,"The manifest should already be parsed."),goog.asserts.assert(d.assetUri_,"We should have an asset uri by now."),goog.asserts.assert(d.abrManager_,"We should have an abr manager by now."),d.makeStateChangeEvent_("load"),
|
|
1465
|
+
e=d.video_,d.playRateController_=new shaka.media.PlayRateController({getRate:function(){return e.playbackRate},getDefaultRate:function(){return e.defaultPlaybackRate},setRate:function(H){e.playbackRate=H},movePlayhead:function(H){e.currentTime+=H}}),d.addBasicMediaListeners_(e,a),d.setupLcevc_(d.config_),d.currentTextLanguage_=d.config_.preferredTextLanguage,d.currentTextRole_=d.config_.preferredTextRole,d.currentTextForced_=d.config_.preferForcedSubs,shaka.Player.applyPlayRange_(d.manifest_.presentationTimeline,
|
|
1466
|
+
d.config_.playRangeStart,d.config_.playRangeEnd),d.abrManager_.init(function(H,I,G){return d.switch_(H,I,G)}),d.abrManager_.setMediaElement(e),d.abrManager_.setCmsdManager(d.cmsdManager_),d.streamingEngine_=d.createStreamingEngine(),d.streamingEngine_.configure(d.config_.streaming),d.loadMode_=shaka.Player.LoadMode.MEDIA_SOURCE,d.dispatchEvent(shaka.Player.makeEvent_(shaka.util.FakeEvent.EventName.Streaming)),f=b;case 2:h=d.streamingEngine_.getCurrentVariant();h||f||(f=d.chooseVariant_(),goog.asserts.assert(f,
|
|
1461
1467
|
"Must choose an initial variant!"));k=[];g=h||f;l=$jscomp.makeIterator([g.video,g.audio]);for(m=l.next();!m.done;m=l.next())(n=m.value)&&!n.segmentIndex&&k.push(n.createSegmentIndex());if(!(0<k.length)){E.jumpTo(4);break}return E.yield(Promise.all(k),4);case 4:if(!g||0!=g.disabledUntilTime){E.jumpTo(2);break}if(d.parser_&&d.parser_.onInitialVariantChosen)d.parser_.onInitialVariantChosen(g);d.manifest_.isLowLatency&&(d.config_.streaming.lowLatencyMode?d.configure(d.lowLatencyConfig_):shaka.log.alwaysWarn("Low-latency live stream detected, but low-latency streaming mode is not enabled in Shaka Player. Set streaming.lowLatencyMode configuration to true, and see https://bit.ly/3clctcj for details."));
|
|
1462
|
-
d.cmcdManager_&&(d.cmcdManager_.setLowLatency(d.manifest_.isLowLatency&&d.config_.streaming.lowLatencyMode),d.cmcdManager_.setStartTimeOfLoad(1E3*a));shaka.Player.applyPlayRange_(d.manifest_.presentationTimeline,d.config_.playRangeStart,d.config_.playRangeEnd);d.streamingEngine_.applyPlayRange(d.config_.playRangeStart,d.config_.playRangeEnd);p=function(
|
|
1468
|
+
d.cmcdManager_&&(d.cmcdManager_.setLowLatency(d.manifest_.isLowLatency&&d.config_.streaming.lowLatencyMode),d.cmcdManager_.setStartTimeOfLoad(1E3*a));shaka.Player.applyPlayRange_(d.manifest_.presentationTimeline,d.config_.playRangeStart,d.config_.playRangeEnd);d.streamingEngine_.applyPlayRange(d.config_.playRangeStart,d.config_.playRangeEnd);p=function(H){d.playhead_=d.createPlayhead(H);d.playheadObservers_=d.createPlayheadObserversForMSE_(H);d.startBufferManagement_(e,d.config_.streaming.rebufferingGoal)};
|
|
1463
1469
|
d.config_.streaming.startAtSegmentBoundary||(q=d.startTime_,null==q&&d.manifest_.startTime&&(q=d.manifest_.startTime),p(q));if(h){E.jumpTo(7);break}goog.asserts.assert(f,"Must have chosen an initial variant!");if(!d.config_.streaming.startAtSegmentBoundary){E.jumpTo(8);break}r=d.manifest_.presentationTimeline;t=d.startTime_||d.video_.currentTime;null==d.startTime_&&d.manifest_.startTime&&(t=d.manifest_.startTime);u=r.getSeekRangeStart();w=r.getSeekRangeEnd();t<u?t=u:t>w&&(t=w);return E.yield(d.adjustStartTime_(f,
|
|
1464
|
-
t),9);case 9:v=E.yieldResult,p(v);case 8:d.switchVariant_(f,!0,!1,0);case 7:return d.playhead_.ready(),x=d.getTextTracks().find(function(
|
|
1465
|
-
|
|
1466
|
-
d.loadEventManager_.listen(e,"timeupdate",C),d.onVideoProgress_(),d.manifest_.nextUrl&&(0<d.config_.streaming.preloadNextUrlWindow&&(D=function(){var
|
|
1467
|
-
4)}d.preloadNextUrl_=
|
|
1470
|
+
t),9);case 9:v=E.yieldResult,p(v);case 8:d.switchVariant_(f,!0,!1,0);case 7:return d.playhead_.ready(),x=d.getTextTracks().find(function(H){return H.active}),x||((y=d.chooseTextStream_())&&d.addTextStreamToSwitchHistory_(y,!0),f&&d.setInitialTextState_(f,y),y&&d.shouldStreamText_()&&(d.streamingEngine_.switchTextStream(y),d.setTextDisplayerLanguage_())),E.yield(d.streamingEngine_.start(c),10);case 10:d.config_.abr.enabled&&(d.abrManager_.enable(),d.onAbrStatusChanged_());d.onTracksChanged_();d.updateAbrManagerVariants_();
|
|
1471
|
+
B=d.manifest_.variants.some(function(H){return H.primary});d.config_.preferredAudioLanguage||B||shaka.log.warning("No preferred audio language set. We have chosen an arbitrary language initially");if((A=d.isLive())&&(d.config_.streaming.liveSync&&d.config_.streaming.liveSync.enabled||d.manifest_.serviceDescription||d.config_.streaming.liveSync.panicMode)||d.config_.streaming.vodDynamicPlaybackRate)z=function(){return d.onTimeUpdate_()},d.loadEventManager_.listen(e,"timeupdate",z);A||(C=function(){return d.onVideoProgress_()},
|
|
1472
|
+
d.loadEventManager_.listen(e,"timeupdate",C),d.onVideoProgress_(),d.manifest_.nextUrl&&(0<d.config_.streaming.preloadNextUrlWindow&&(D=function(){var H;return $jscomp.asyncExecutePromiseGeneratorProgram(function(I){if(1==I.nextAddress){H=d.seekRange().end-d.video_.currentTime;if(isNaN(H)||!(H<=d.config_.streaming.preloadNextUrlWindow))return I.jumpTo(0);d.loadEventManager_.unlisten(e,"timeupdate",D);goog.asserts.assert(d.manifest_.nextUrl,"this.manifest_.nextUrl should be valid.");return I.yield(d.preload(d.manifest_.nextUrl),
|
|
1473
|
+
4)}d.preloadNextUrl_=I.yieldResult;I.jumpToEnd()})},d.loadEventManager_.listen(e,"timeupdate",D)),d.loadEventManager_.listen(e,"ended",function(){d.load(d.preloadNextUrl_||d.manifest_.nextUrl)})));if(d.adManager_)d.adManager_.onManifestUpdated(A);d.fullyLoaded_=!0;E.jumpToEnd()}})};
|
|
1468
1474
|
shaka.Player.prototype.initializeSrcEqualsDrmInner_=function(a){var b=this,c,d,e,f,g;return $jscomp.asyncExecutePromiseGeneratorProgram(function(h){return 1==h.nextAddress?(c=shaka.util.ManifestParserUtils.ContentType,goog.asserts.assert(b.networkingEngine_,"|onInitializeSrcEqualsDrm_| should never be called after |destroy|"),goog.asserts.assert(b.config_,"|onInitializeSrcEqualsDrm_| should never be called after |destroy|"),d=Date.now()/1E3,e=!0,b.drmEngine_=b.createDrmEngine({netEngine:b.networkingEngine_,
|
|
1469
1475
|
onError:function(k){b.onError_(k)},onKeyStatus:function(k){},onExpirationUpdated:function(k,l){k=shaka.Player.makeEvent_(shaka.util.FakeEvent.EventName.ExpirationUpdated);b.dispatchEvent(k)},onEvent:function(k){b.dispatchEvent(k);k.type==shaka.util.FakeEvent.EventName.DrmSessionUpdate&&e&&(e=!1,k=Date.now()/1E3-d,b.stats_.setDrmTime(k))}}),b.drmEngine_.configure(b.config_.drm),f={id:0,language:"und",disabledUntilTime:0,primary:!1,audio:null,video:null,bandwidth:100,allowedByApplication:!0,allowedByKeySystem:!0,
|
|
1470
1476
|
decodingInfos:[]},g={id:0,originalId:null,groupId:null,createSegmentIndex:function(){return Promise.resolve()},segmentIndex:null,mimeType:a?shaka.util.MimeUtils.getBasicType(a):"",codecs:a?shaka.util.MimeUtils.getCodecs(a):"",encrypted:!0,drmInfos:[],keyIds:new Set,language:"und",originalLanguage:null,label:null,type:c.VIDEO,primary:!1,trickModeVideo:null,emsgSchemeIdUris:null,roles:[],forced:!1,channelsCount:null,audioSamplingRate:null,spatialAudio:!1,closedCaptions:null,accessibilityPurpose:null,
|
|
@@ -1474,9 +1480,9 @@ c.playRateController_=new shaka.media.PlayRateController({getRate:function(){ret
|
|
|
1474
1480
|
w.mode});u&&(u.mode="hidden")},c.loadEventManager_.listen(d,"enterpictureinpicture",function(){return g()}),c.loadEventManager_.listen(d,"leavepictureinpicture",function(){return h()}),d.remote?(c.loadEventManager_.listen(d.remote,"connect",function(){return h()}),c.loadEventManager_.listen(d.remote,"connecting",function(){return h()}),c.loadEventManager_.listen(d.remote,"disconnect",function(){return h()})):"webkitCurrentPlaybackTargetIsWireless"in d&&c.loadEventManager_.listen(d,"webkitcurrentplaybacktargetiswirelesschanged",
|
|
1475
1481
|
function(){return h()}),k=d,k.webkitSupportsFullscreen&&c.loadEventManager_.listen(k,"webkitpresentationmodechanged",function(){"inline"!=k.webkitPresentationMode?g():h()}));c.addBasicMediaListeners_(d,a);l=c.cmcdManager_.appendSrcData(c.assetUri_,b);!l.includes("#t=")&&(0<c.config_.playRangeStart||isFinite(c.config_.playRangeEnd))&&(l+="#t=",0<c.config_.playRangeStart&&(l+=c.config_.playRangeStart),isFinite(c.config_.playRangeEnd)&&(l+=","+c.config_.playRangeEnd));if(!c.mediaSourceEngine_){t.jumpTo(2);
|
|
1476
1482
|
break}return t.yield(c.mediaSourceEngine_.destroy(),3);case 3:c.mediaSourceEngine_=null;case 2:return shaka.util.Dom.removeAllChildren(d),d.src=l,(shaka.util.Platform.isTizen()||shaka.util.Platform.isWebOS())&&d.load(),"none"!=d.preload&&!d.autoplay&&shaka.util.MimeUtils.isHlsType(b)&&shaka.util.Platform.safariVersion()&&d.load(),c.loadMode_=shaka.Player.LoadMode.SRC_EQUALS,c.dispatchEvent(shaka.Player.makeEvent_(shaka.util.FakeEvent.EventName.Streaming)),m=new shaka.util.PublicPromise,shaka.util.MediaReadyState.waitForReadyState(d,
|
|
1477
|
-
HTMLMediaElement.HAVE_METADATA,c.loadEventManager_,function(){c.playhead_.ready();m.resolve()}),shaka.util.MediaReadyState.waitForReadyState(d,HTMLMediaElement.HAVE_CURRENT_DATA,c.loadEventManager_,function(){var u,w,v,x,y;return $jscomp.asyncExecutePromiseGeneratorProgram(function(
|
|
1478
|
-
|
|
1479
|
-
(w?(y.mode="disabled",shaka.log.alwaysWarn("Found more than one enabled text track, disabling it",y)):(c.enableNativeTrack_(y),w=!0));c.setupPreferredTextOnSrc_();
|
|
1483
|
+
HTMLMediaElement.HAVE_METADATA,c.loadEventManager_,function(){c.playhead_.ready();m.resolve()}),shaka.util.MediaReadyState.waitForReadyState(d,HTMLMediaElement.HAVE_CURRENT_DATA,c.loadEventManager_,function(){var u,w,v,x,y;return $jscomp.asyncExecutePromiseGeneratorProgram(function(B){if(1==B.nextAddress)return c.setupPreferredAudioOnSrc_(),u=c.getFilteredTextTracks_(),u.find(function(A){return"disabled"!=A.mode})?(0<u.length&&(c.isTextVisible_=!0,c.textDisplayer_.setTextVisibility(!0)),B.jumpTo(2)):
|
|
1484
|
+
B.yield(new Promise(function(A){c.loadEventManager_.listenOnce(d.textTracks,"change",A);(new shaka.util.Timer(A)).tickAfter(1)}),2);if(e)return B.return();c.getFilteredTextTracks_().length&&(c.textDisplayer_.enableTextDisplayer?c.textDisplayer_.enableTextDisplayer():shaka.Deprecate.deprecateFeature(5,"Text displayer w/ enableTextDisplayer",'Text displayer should have a "enableTextDisplayer" method!'));w=!1;v=$jscomp.makeIterator(u);for(x=v.next();!x.done;x=v.next())y=x.value,"disabled"!==y.mode&&
|
|
1485
|
+
(w?(y.mode="disabled",shaka.log.alwaysWarn("Found more than one enabled text track, disabling it",y)):(c.enableNativeTrack_(y),w=!0));c.setupPreferredTextOnSrc_();B.jumpToEnd()})}),d.error?m.reject(c.videoErrorToShakaError_()):"none"==d.preload&&(shaka.log.alwaysWarn('With <video preload="none">, the browser will not load anything until play() is called. We are unable to measure load latency in a meaningful way, and we cannot provide track info yet. Please do not use preload="none" with Shaka Player.'),
|
|
1480
1486
|
m.resolve()),c.loadEventManager_.listenOnce(d,"error",function(){m.reject(c.videoErrorToShakaError_())}),t.yield(shaka.util.Functional.promiseWithTimeout(c.config_.streaming.loadTimeout,m),4);case 4:if((n=c.isLive())&&(c.config_.streaming.liveSync&&c.config_.streaming.liveSync.enabled||c.config_.streaming.liveSync.panicMode)||c.config_.streaming.vodDynamicPlaybackRate)p=function(){return c.onTimeUpdate_()},c.loadEventManager_.listen(d,"timeupdate",p);n||(q=function(){return c.onVideoProgress_()},
|
|
1481
1487
|
c.loadEventManager_.listen(d,"timeupdate",q),c.onVideoProgress_());c.adManager_&&(c.adManager_.onManifestUpdated(n),n&&(r=c.seekRange().end,c.loadEventManager_.listen(d,"progress",function(){var u=c.seekRange().end;r!=u&&(c.adManager_.onManifestUpdated(c.isLive()),r=u)})));c.fullyLoaded_=!0;t.jumpToEnd()}})};shaka.Player.prototype.setupPreferredAudioOnSrc_=function(){var a=this.config_.preferredAudioLanguage;""!=a&&this.selectAudioLanguage(a,this.config_.preferredVariantRole)};
|
|
1482
1488
|
shaka.Player.prototype.setupPreferredTextOnSrc_=function(){var a=this.config_.preferredTextLanguage;""!=a&&this.selectTextLanguage(a,this.config_.preferredTextRole,this.config_.preferForcedSubs)};
|
|
@@ -1500,7 +1506,7 @@ this.bufferObserver_.update(b,a)&&this.updateBufferState_()};shaka.Player.protot
|
|
|
1500
1506
|
shaka.Player.prototype.createCmcd_=function(){var a=this;return new shaka.util.CmcdManager({getBandwidthEstimate:function(){return a.abrManager_?a.abrManager_.getBandwidthEstimate():NaN},getBufferedInfo:function(){return a.getBufferedInfo()},getCurrentTime:function(){return a.video_?a.video_.currentTime:0},getPlaybackRate:function(){return a.getPlaybackRate()},getNetworkingEngine:function(){return a.getNetworkingEngine()},getVariantTracks:function(){return a.getVariantTracks()},isLive:function(){return a.isLive()},
|
|
1501
1507
|
getLiveLatency:function(){return a.getLiveLatency()}},this.config_.cmcd)};shaka.Player.prototype.createCmsd_=function(){return new shaka.util.CmsdManager(this.config_.cmsd)};
|
|
1502
1508
|
shaka.Player.prototype.createStreamingEngine=function(){var a=this;goog.asserts.assert(this.abrManager_&&this.mediaSourceEngine_&&this.manifest_,"Must not be destroyed");return new shaka.media.StreamingEngine(this.manifest_,{getPresentationTime:function(){return a.playhead_?a.playhead_.getTime():0},getBandwidthEstimate:function(){return a.abrManager_.getBandwidthEstimate()},getPlaybackRate:function(){return a.getPlaybackRate()},mediaSourceEngine:this.mediaSourceEngine_,netEngine:this.networkingEngine_,
|
|
1503
|
-
onError:function(b){return a.onError_(b)},onEvent:function(b){return a.dispatchEvent(b)},onSegmentAppended:function(b,c){a.onSegmentAppended_(b.startTime,b.endTime,c.type,
|
|
1509
|
+
onError:function(b){return a.onError_(b)},onEvent:function(b){return a.dispatchEvent(b)},onSegmentAppended:function(b,c,d){a.onSegmentAppended_(b.startTime,b.endTime,c.type,d)},onInitSegmentAppended:function(b,c){(c=c.getMediaQuality())&&a.qualityObserver_&&a.qualityObserver_.addMediaQualityChange(c,b)},beforeAppendSegment:function(b,c){return a.drmEngine_.parseInbandPssh(b,c)},disableStream:function(b,c){return a.disableStream(b,c)}})};
|
|
1504
1510
|
shaka.Player.prototype.configure=function(a,b){var c=shaka.util.Platform;goog.asserts.assert(this.config_,"Config must not be null!");goog.asserts.assert("object"==typeof a||2==arguments.length,"String configs should have values!");2==arguments.length&&"string"==typeof a&&(a=shaka.util.ConfigUtils.convertToConfigObject(a,b));goog.asserts.assert("object"==typeof a,"Should be an object!");a.streaming&&"forceTransmuxTS"in a.streaming&&(shaka.Deprecate.deprecateFeature(5,"streaming.forceTransmuxTS configuration",
|
|
1505
1511
|
"Please Use mediaSource.forceTransmux instead."),a.mediaSource.mediaSource=a.streaming.forceTransmuxTS,delete a.streaming.forceTransmuxTS);a.streaming&&"forceTransmux"in a.streaming&&(shaka.Deprecate.deprecateFeature(5,"streaming.forceTransmux configuration","Please Use mediaSource.forceTransmux instead."),a.mediaSource.mediaSource=a.streaming.forceTransmux,delete a.streaming.forceTransmux);a.streaming&&"useNativeHlsOnSafari"in a.streaming&&(shaka.Deprecate.deprecateFeature(5,"streaming.useNativeHlsOnSafari configuration",
|
|
1506
1512
|
"Please Use streaming.useNativeHlsForFairPlay or streaming.preferNativeHls instead."),a.streaming.preferNativeHls=a.streaming.useNativeHlsOnSafari&&c.isApple(),delete a.streaming.useNativeHlsOnSafari);a.streaming&&"boolean"==typeof a.streaming.liveSync&&(shaka.Deprecate.deprecateFeature(5,"streaming.liveSync","Please Use streaming.liveSync.enabled instead."),c=a.streaming.liveSync,a.streaming.liveSync={},a.streaming.liveSync.enabled=c);if(a.streaming&&!(a.streaming.liveSync&&"targetLatency"in a.streaming.liveSync)&&
|
|
@@ -1531,8 +1537,7 @@ shaka.Player.prototype.seekRange=function(){if(this.manifest_&&!this.isRemotePla
|
|
|
1531
1537
|
1),c);return{start:b,end:a}}return{start:0,end:0}};shaka.Player.prototype.goToLive=function(){this.isLive()?this.video_.currentTime=this.seekRange().end:shaka.log.warning("goToLive is for live streams!")};shaka.Player.prototype.isFullyLoaded=function(){return this.fullyLoaded_};shaka.Player.prototype.keySystem=function(){return shaka.drm.DrmUtils.keySystem(this.drmInfo())};shaka.Player.prototype.drmInfo=function(){return this.drmEngine_?this.drmEngine_.getDrmInfo():null};
|
|
1532
1538
|
shaka.Player.prototype.getDrmEngine=function(){return this.drmEngine_};shaka.Player.prototype.getExpiration=function(){return this.drmEngine_?this.drmEngine_.getExpiration():Infinity};shaka.Player.prototype.getActiveSessionsMetadata=function(){return this.drmEngine_?this.drmEngine_.getActiveSessionsMetadata():[]};shaka.Player.prototype.getKeyStatuses=function(){return this.drmEngine_?this.drmEngine_.getKeyStatuses():{}};
|
|
1533
1539
|
shaka.Player.prototype.isBuffering=function(){var a=shaka.media.BufferingObserver.State;return this.bufferObserver_?this.bufferObserver_.getState()==a.STARVING:!1};shaka.Player.prototype.getPlaybackRate=function(){return this.video_?this.playRateController_?this.playRateController_.getRealRate():1:0};
|
|
1534
|
-
shaka.Player.prototype.trickPlay=function(a,b){
|
|
1535
|
-
function(){var d=c.video_.currentTime,e=c.seekRange(),f=c.config_.streaming.safeSeekOffset;0<a?Math.floor(d)>=Math.floor(e.end)&&c.cancelTrickPlay():Math.floor(d)<=Math.floor(e.start+f)&&c.cancelTrickPlay()}))};
|
|
1540
|
+
shaka.Player.prototype.trickPlay=function(a,b){b=void 0===b?!0:b;goog.asserts.assert(0!=a,"Should never set a trick play rate of 0!");0==a?shaka.log.alwaysWarn("A trick play rate of 0 is unsupported!"):(this.playRateController_.set(a),this.loadMode_==shaka.Player.LoadMode.MEDIA_SOURCE&&(this.abrManager_.playbackRateChanged(a),this.streamingEngine_.setTrickPlay(b&&1<Math.abs(a))),this.setupTrickPlayEventListeners_(a))};
|
|
1536
1541
|
shaka.Player.prototype.cancelTrickPlay=function(){var a=this.playRateController_.getDefaultRate();this.loadMode_==shaka.Player.LoadMode.SRC_EQUALS&&this.playRateController_.set(a);this.loadMode_==shaka.Player.LoadMode.MEDIA_SOURCE&&(this.playRateController_.set(a),this.abrManager_.playbackRateChanged(a),this.streamingEngine_.setTrickPlay(!1));this.trickPlayEventManager_.removeAll()};
|
|
1537
1542
|
shaka.Player.prototype.getVariantTracks=function(){if(this.manifest_&&!this.isRemotePlayback()){for(var a=this.streamingEngine_?this.streamingEngine_.getCurrentVariant():null,b=[],c=0,d=$jscomp.makeIterator(this.manifest_.variants),e=d.next();!e.done;e=d.next())if(e=e.value,shaka.util.StreamUtils.isPlayable(e)){var f=shaka.util.StreamUtils.variantToTrack(e);f.active=e==a;f.active||1==c||null==a||e.video!=a.video||e.audio!=a.audio||(f.active=!0);f.active&&c++;b.push(f)}goog.asserts.assert(1>=c,"It should only have one active track");
|
|
1538
1543
|
return b}return this.video_&&this.video_.audioTracks?Array.from(this.video_.audioTracks).map(function(g){return shaka.util.StreamUtils.html5AudioTrackToTrack(g)}):[]};
|
|
@@ -1541,8 +1546,8 @@ shaka.Player.prototype.getImageTracks=function(){var a=shaka.util.StreamUtils,b=
|
|
|
1541
1546
|
shaka.Player.prototype.getAllThumbnails=function(a){var b=this,c,d,e,f;return $jscomp.asyncExecutePromiseGeneratorProgram(function(g){if(1==g.nextAddress){if(b.loadMode_!=shaka.Player.LoadMode.MEDIA_SOURCE&&b.loadMode_!=shaka.Player.LoadMode.SRC_EQUALS)return g.return(null);c=b.externalSrcEqualsThumbnailsStreams_;b.manifest_&&(c=b.manifest_.imageStreams);return(d=c.find(function(h){return h.id==a}))?d.segmentIndex?g.jumpTo(2):g.yield(d.createSegmentIndex(),2):g.return(null)}if(4!=g.nextAddress)return e=
|
|
1542
1547
|
[],d.segmentIndex.forEachTopLevelReference(function(h){var k=b.parseTilesLayout_(h.getTilesLayout()||d.tilesLayout);if(k){k=k.rows*k.columns;for(var l=h.trueEndTime-h.startTime,m=0;m<k;m++)e.push(b.getThumbnails(a,h.startTime+l*m/k))}}),g.yield(Promise.all(e),4);f=g.yieldResult;return g.return(f.filter(function(h){return h}))})};
|
|
1543
1548
|
shaka.Player.prototype.parseTilesLayout_=function(a){if(!a)return null;var b=/(\d+)x(\d+)/.exec(a);if(!b)return shaka.log.warning("Tiles layout does not contain a valid format (columns x rows)"),null;a=parseInt(b[1],10);b=parseInt(b[2],10);return{columns:a,rows:b}};
|
|
1544
|
-
shaka.Player.prototype.getThumbnails=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y;return $jscomp.asyncExecutePromiseGeneratorProgram(function(
|
|
1545
|
-
e.segmentIndex.find(b);if(null==f)return
|
|
1549
|
+
shaka.Player.prototype.getThumbnails=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y;return $jscomp.asyncExecutePromiseGeneratorProgram(function(B){if(1==B.nextAddress){if(c.loadMode_!=shaka.Player.LoadMode.MEDIA_SOURCE&&c.loadMode_!=shaka.Player.LoadMode.SRC_EQUALS)return B.return(null);d=c.externalSrcEqualsThumbnailsStreams_;c.manifest_&&(d=c.manifest_.imageStreams);return(e=d.find(function(A){return A.id==a}))?e.segmentIndex?B.jumpTo(2):B.yield(e.createSegmentIndex(),2):B.return(null)}f=
|
|
1550
|
+
e.segmentIndex.find(b);if(null==f)return B.return(null);g=e.segmentIndex.get(f);h=c.parseTilesLayout_(g.getTilesLayout()||e.tilesLayout);if(!h)return B.return(null);k=e.width||0;l=e.height||0;m=k/h.columns;n=l/h.rows;p=h.columns*h.rows;q=g.trueEndTime-g.startTime;r=g.getTileDuration()||q/p;t=g.startTime;w=u=0;1<p&&(v=Math.floor((b-g.startTime)/r),t=g.startTime+v*r,u=v%h.columns*m,w=Math.floor(v/h.columns)*n);x=!1;if(y=g.getThumbnailSprite())x=!0,n=y.height,u=y.positionX,w=y.positionY,m=y.width;return B.return({segment:g,
|
|
1546
1551
|
imageHeight:l,imageWidth:k,height:n,positionX:u,positionY:w,startTime:t,duration:r,uris:g.getUris(),width:m,sprite:x})})};
|
|
1547
1552
|
shaka.Player.prototype.selectTextTrack=function(a){var b=this,c=function(){var d=b.manifest_.textStreams.find(function(e){return e.id==a.id});d?d==b.streamingEngine_.getCurrentTextStream()?shaka.log.debug("Text track already selected."):(b.addTextStreamToSwitchHistory_(d,!1),b.streamingEngine_.switchTextStream(d),b.onTextChanged_(),b.setTextDisplayerLanguage_(),b.currentTextLanguage_=d.language):b.isRemotePlayback()||shaka.log.error("No stream with id",a.id)};if(this.manifest_&&this.playhead_&&(c(),
|
|
1548
1553
|
!this.isRemotePlayback()))return;(function(){if(b.video_&&b.video_.textTracks){var d=b.getFilteredTextTracks_(),e=d.find(function(f){return"disabled"!==f.mode});(d=d.find(function(f){return shaka.util.StreamUtils.html5TrackId(f)===a.id}))?(e!==d&&(e&&(e.mode="disabled",b.loadEventManager_.unlisten(e,"cuechange"),b.textDisplayer_.remove(0,Infinity)),d&&b.enableNativeTrack_(d)),b.onTextChanged_(),b.setTextDisplayerLanguage_()):shaka.log.error("No track with id",a.id)}})()};
|
|
@@ -1569,24 +1574,24 @@ null):new Date(b.getTime()+1E3*a);shaka.log.warning("No way to get playhead time
|
|
|
1569
1574
|
shaka.Player.prototype.getPresentationStartTimeAsDate=function(){if(this.manifest_&&!this.isRemotePlayback()){var a=this.manifest_.presentationTimeline;a=a.getInitialProgramDateTime()||a.getPresentationStartTime();goog.asserts.assert(null!=a,"Presentation start time should not be null!");return new Date(1E3*a)}if(this.video_&&this.video_.getStartDate)return a=this.video_.getStartDate(),isNaN(a.getTime())?(shaka.log.warning("EXT-X-PROGRAM-DATETIME required to get presentation start time as Date!"),
|
|
1570
1575
|
null):a;shaka.log.warning("No way to get presentation start time as Date!");return null};shaka.Player.prototype.getSegmentAvailabilityDuration=function(){if(!this.isLive())return shaka.log.warning("getSegmentAvailabilityDuration is for live streams!"),null;if(this.manifest_)return this.manifest_.presentationTimeline.getSegmentAvailabilityDuration();shaka.log.warning("No way to get segment segment availability duration!");return null};
|
|
1571
1576
|
shaka.Player.prototype.getBufferedInfo=function(){if(this.loadMode_==shaka.Player.LoadMode.MEDIA_SOURCE)return this.mediaSourceEngine_.getBufferedInfo();var a={total:[],audio:[],video:[],text:[]};this.loadMode_==shaka.Player.LoadMode.SRC_EQUALS&&(a.total=shaka.media.TimeRangesUtils.getBufferedInfo(this.video_.buffered));return a};
|
|
1572
|
-
shaka.Player.prototype.getLiveLatency=function(){if(!this.video_)return null;var a=this.getPresentationStartTimeAsDate().getTime()+1E3*this.video_.currentTime;return Date.now()-a};
|
|
1577
|
+
shaka.Player.prototype.getLiveLatency=function(){if(!this.video_||!this.video_.currentTime)return null;var a=this.getPresentationStartTimeAsDate().getTime()+1E3*this.video_.currentTime;return Math.floor(Date.now()-a)};
|
|
1573
1578
|
shaka.Player.prototype.getStats=function(){if(this.loadMode_!=shaka.Player.LoadMode.MEDIA_SOURCE&&this.loadMode_!=shaka.Player.LoadMode.SRC_EQUALS)return shaka.util.Stats.getEmptyBlob();this.updateStateHistory_();goog.asserts.assert(this.video_,"If we have stats, we should have video_");var a=this.video_,b=a.currentTime/a.duration;isNaN(b)||this.isLive()||this.stats_.setCompletionPercent(Math.round(100*b));this.playhead_&&(this.stats_.setGapsJumped(this.playhead_.getGapsJumped()),this.stats_.setStallsDetected(this.playhead_.getStallsDetected()));
|
|
1574
1579
|
a.getVideoPlaybackQuality&&(b=a.getVideoPlaybackQuality(),this.stats_.setDroppedFrames(Number(b.droppedVideoFrames),Number(b.totalVideoFrames)),this.stats_.setCorruptedFrames(Number(b.corruptedVideoFrames)));b=this.drmEngine_?this.drmEngine_.getLicenseTime():NaN;this.stats_.setLicenseTime(b);if(this.loadMode_==shaka.Player.LoadMode.MEDIA_SOURCE){b=this.streamingEngine_.getCurrentVariant();var c=this.streamingEngine_.getCurrentTextStream();if(b){var d=this.playRateController_?this.playRateController_.getRealRate():
|
|
1575
1580
|
1,e=d*b.bandwidth;c&&c.bandwidth&&(e+=d*c.bandwidth);this.stats_.setCurrentStreamBandwidth(e)}b&&b.video&&this.stats_.setResolution(b.video.width||NaN,b.video.height||NaN);this.isLive()&&(b=this.getLiveLatency()||0,this.stats_.setLiveLatency(b/1E3));this.manifest_&&(this.stats_.setManifestPeriodCount(this.manifest_.periodCount),this.stats_.setManifestGapCount(this.manifest_.gapCount),this.manifest_.presentationTimeline&&(b=this.manifest_.presentationTimeline.getMaxSegmentDuration(),this.stats_.setMaxSegmentDuration(b)));
|
|
1576
1581
|
b=this.abrManager_.getBandwidthEstimate();this.stats_.setBandwidthEstimate(b)}this.loadMode_==shaka.Player.LoadMode.SRC_EQUALS&&(this.stats_.addBytesDownloaded(NaN),this.stats_.setResolution(a.videoWidth||NaN,a.videoHeight||NaN));return this.stats_.getBlob()};
|
|
1577
|
-
shaka.Player.prototype.addTextTrackAsync=function(a,b,c,d,e,f,g){g=void 0===g?!1:g;var h=this,k,l,m,n,p,q,r,t,u,w,v,x,y,
|
|
1578
|
-
"subtitles"!=c&&"captions"!=c&&shaka.log.alwaysWarn("Using a kind value different of `subtitles` or `captions` can cause unwanted issues.");if(d){
|
|
1579
|
-
n.find(function(z){return l.normalize(z.language)==m&&z.label==(f||"")&&z.kind==c}))return h.onTracksChanged_(),
|
|
1580
|
-
t)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.CANNOT_ADD_EXTERNAL_TEXT_TO_LIVE_STREAM);if(!k.length){
|
|
1582
|
+
shaka.Player.prototype.addTextTrackAsync=function(a,b,c,d,e,f,g){g=void 0===g?!1:g;var h=this,k,l,m,n,p,q,r,t,u,w,v,x,y,B;return $jscomp.asyncExecutePromiseGeneratorProgram(function(A){switch(A.nextAddress){case 1:if(h.loadMode_!=shaka.Player.LoadMode.MEDIA_SOURCE&&h.loadMode_!=shaka.Player.LoadMode.SRC_EQUALS)throw shaka.log.error("Must call load() and wait for it to resolve before adding text tracks."),new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.CONTENT_NOT_LOADED);
|
|
1583
|
+
"subtitles"!=c&&"captions"!=c&&shaka.log.alwaysWarn("Using a kind value different of `subtitles` or `captions` can cause unwanted issues.");if(d){A.jumpTo(2);break}return A.yield(h.getTextMimetype_(a),3);case 3:d=A.yieldResult;case 2:k=[];h.adManager_&&(k=h.adManager_.getCuePoints());if(h.loadMode_!=shaka.Player.LoadMode.SRC_EQUALS){A.jumpTo(4);break}g&&(c="forced");return A.yield(h.addSrcTrackElement_(a,b,c,d,f||"",k),5);case 5:l=shaka.util.LanguageUtils;m=l.normalize(b);n=h.getTextTracks();if(p=
|
|
1584
|
+
n.find(function(z){return l.normalize(z.language)==m&&z.label==(f||"")&&z.kind==c}))return h.onTracksChanged_(),A.return(p);shaka.log.error("Cannot add this text when loaded with src=");throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.CANNOT_ADD_EXTERNAL_TEXT_TO_SRC_EQUALS);case 4:q=shaka.util.ManifestParserUtils.ContentType;r=h.seekRange();t=r.end-r.start;h.manifest_&&(t=h.manifest_.presentationTimeline.getDuration());if(Infinity==
|
|
1585
|
+
t)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.CANNOT_ADD_EXTERNAL_TEXT_TO_LIVE_STREAM);if(!k.length){A.jumpTo(6);break}goog.asserts.assert(h.networkingEngine_,"Need networking engine.");return A.yield(h.getTextData_(a,h.networkingEngine_,h.config_.streaming.retryParameters),7);case 7:u=A.yieldResult,w=h.convertToWebVTT_(u,d,k),v=new Blob([w],{type:"text/vtt"}),a=shaka.media.MediaSourceEngine.createObjectURL(v),d="text/vtt";
|
|
1581
1586
|
case 6:x={id:h.nextExternalStreamId_++,originalId:null,groupId:null,createSegmentIndex:function(){return Promise.resolve()},segmentIndex:shaka.media.SegmentIndex.forSingleSegment(0,t,[a]),mimeType:d||"",codecs:e||"",kind:c,encrypted:!1,drmInfos:[],keyIds:new Set,language:b,originalLanguage:b,label:f||null,type:q.TEXT,primary:!1,trickModeVideo:null,emsgSchemeIdUris:null,roles:[],forced:!!g,channelsCount:null,audioSamplingRate:null,spatialAudio:!1,closedCaptions:null,accessibilityPurpose:null,external:!0,
|
|
1582
|
-
fastSwitching:!1,fullMimeTypes:new Set([shaka.util.MimeUtils.getFullType(d||"",e||"")]),isAudioMuxedInVideo:!1};y=shaka.util.MimeUtils.getFullType(x.mimeType,x.codecs);
|
|
1583
|
-
shaka.Player.prototype.addThumbnailsTrack=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y;return $jscomp.asyncExecutePromiseGeneratorProgram(function(
|
|
1584
|
-
if(b){
|
|
1585
|
-
shaka.util.Error.Code.CANNOT_ADD_EXTERNAL_THUMBNAILS_TO_LIVE_STREAM);goog.asserts.assert(c.networkingEngine_,"Need networking engine.");return
|
|
1586
|
-
n=k.parseMedia(m,l,a,[]);p=[];q=$jscomp.makeIterator(n);r=q.next();for(t={};!r.done;t={uris$jscomp$5:void 0,cue$jscomp$39:void 0},r=q.next())t.cue$jscomp$39=r.value,t.uris$jscomp$5=null,u=function(
|
|
1587
|
-
(v=t.cue$jscomp$39.payload.split("#xywh=")[1].split(","),4===v.length&&w.setThumbnailSprite({height:parseInt(v[3],10),positionX:parseInt(v[0],10),positionY:parseInt(v[1],10),width:parseInt(v[2],10)})),p.push(w);x=b;if(!p.length){
|
|
1587
|
+
fastSwitching:!1,fullMimeTypes:new Set([shaka.util.MimeUtils.getFullType(d||"",e||"")]),isAudioMuxedInVideo:!1};y=shaka.util.MimeUtils.getFullType(x.mimeType,x.codecs);B=shaka.text.TextEngine.isTypeSupported(y);if(!B)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.MISSING_TEXT_PLUGIN,d);h.manifest_.textStreams.push(x);h.onTracksChanged_();return A.return(shaka.util.StreamUtils.textStreamToTrack(x))}})};
|
|
1588
|
+
shaka.Player.prototype.addThumbnailsTrack=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y;return $jscomp.asyncExecutePromiseGeneratorProgram(function(B){switch(B.nextAddress){case 1:if(c.loadMode_!=shaka.Player.LoadMode.MEDIA_SOURCE&&c.loadMode_!=shaka.Player.LoadMode.SRC_EQUALS)throw shaka.log.error("Must call load() and wait for it to resolve before adding image tracks."),new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.CONTENT_NOT_LOADED);
|
|
1589
|
+
if(b){B.jumpTo(2);break}return B.yield(c.getTextMimetype_(a),3);case 3:b=B.yieldResult;case 2:if("text/vtt"!=b)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.UNSUPPORTED_EXTERNAL_THUMBNAILS_URI,a);d=shaka.util.ManifestParserUtils.ContentType;e=c.seekRange();f=e.end-e.start;c.manifest_&&(f=c.manifest_.presentationTimeline.getDuration());if(Infinity==f)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.MANIFEST,
|
|
1590
|
+
shaka.util.Error.Code.CANNOT_ADD_EXTERNAL_THUMBNAILS_TO_LIVE_STREAM);goog.asserts.assert(c.networkingEngine_,"Need networking engine.");return B.yield(c.getTextData_(a,c.networkingEngine_,c.config_.streaming.retryParameters),4);case 4:g=B.yieldResult;h=shaka.text.TextEngine.findParser(b);if(!h)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.MISSING_TEXT_PLUGIN,b);k=h();l={periodStart:0,segmentStart:0,segmentEnd:f,vttOffset:0};m=shaka.util.BufferUtils.toUint8(g);
|
|
1591
|
+
n=k.parseMedia(m,l,a,[]);p=[];q=$jscomp.makeIterator(n);r=q.next();for(t={};!r.done;t={uris$jscomp$5:void 0,cue$jscomp$39:void 0},r=q.next())t.cue$jscomp$39=r.value,t.uris$jscomp$5=null,u=function(A){return function(){null==A.uris$jscomp$5&&(A.uris$jscomp$5=shaka.util.ManifestParserUtils.resolveUris([a],[A.cue$jscomp$39.payload]));return A.uris$jscomp$5||[]}}(t),w=new shaka.media.SegmentReference(t.cue$jscomp$39.startTime,t.cue$jscomp$39.endTime,u,0,null,null,0,0,Infinity),t.cue$jscomp$39.payload.includes("#xywh")&&
|
|
1592
|
+
(v=t.cue$jscomp$39.payload.split("#xywh=")[1].split(","),4===v.length&&w.setThumbnailSprite({height:parseInt(v[3],10),positionX:parseInt(v[0],10),positionY:parseInt(v[1],10),width:parseInt(v[2],10)})),p.push(w);x=b;if(!p.length){B.jumpTo(5);break}return B.yield(shaka.net.NetworkingUtils.getMimeType(p[0].getUris()[0],c.networkingEngine_,c.config_.manifest.retryParameters),6);case 6:x=B.yieldResult;case 5:return y={id:c.nextExternalStreamId_++,originalId:null,groupId:null,createSegmentIndex:function(){return Promise.resolve()},
|
|
1588
1593
|
segmentIndex:new shaka.media.SegmentIndex(p),mimeType:x||"",codecs:"",kind:"",encrypted:!1,drmInfos:[],keyIds:new Set,language:"und",originalLanguage:null,label:null,type:d.IMAGE,primary:!1,trickModeVideo:null,emsgSchemeIdUris:null,roles:[],forced:!1,channelsCount:null,audioSamplingRate:null,spatialAudio:!1,closedCaptions:null,tilesLayout:"1x1",accessibilityPurpose:null,external:!0,fastSwitching:!1,fullMimeTypes:new Set([shaka.util.MimeUtils.getFullType(x||"","")]),isAudioMuxedInVideo:!1},c.loadMode_==
|
|
1589
|
-
shaka.Player.LoadMode.SRC_EQUALS?c.externalSrcEqualsThumbnailsStreams_.push(y):c.manifest_.imageStreams.push(y),c.onTracksChanged_(),
|
|
1594
|
+
shaka.Player.LoadMode.SRC_EQUALS?c.externalSrcEqualsThumbnailsStreams_.push(y):c.manifest_.imageStreams.push(y),c.onTracksChanged_(),B.return(shaka.util.StreamUtils.imageStreamToTrack(y))}})};
|
|
1590
1595
|
shaka.Player.prototype.addChaptersTrack=function(a,b,c){var d=this,e,f,g,h;return $jscomp.asyncExecutePromiseGeneratorProgram(function(k){switch(k.nextAddress){case 1:if(d.loadMode_!=shaka.Player.LoadMode.MEDIA_SOURCE&&d.loadMode_!=shaka.Player.LoadMode.SRC_EQUALS)throw shaka.log.error("Must call load() and wait for it to resolve before adding chapters tracks."),new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.CONTENT_NOT_LOADED);if(c){k.jumpTo(2);
|
|
1591
1596
|
break}return k.yield(d.getTextMimetype_(a),3);case 3:c=k.yieldResult;case 2:return e=[],d.adManager_&&(e=d.adManager_.getCuePoints()),k.yield(d.addSrcTrackElement_(a,b,"chapters",c,"",e),4);case 4:f=k.yieldResult;g=d.getChaptersTracks();h=g.find(function(l){return l.language==b});if(!h){k.jumpTo(5);break}return k.yield(new Promise(function(l,m){d.loadEventManager_.listenOnce(f,"load",l);d.loadEventManager_.listenOnce(f,"error",function(n){m(new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,
|
|
1592
1597
|
shaka.util.Error.Category.TEXT,shaka.util.Error.Code.CHAPTERS_TRACK_FAILED))})}),6);case 6:return d.onTracksChanged_(),k.return(h);case 5:throw shaka.log.error("Cannot add this text when loaded with src="),new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.CANNOT_ADD_EXTERNAL_TEXT_TO_SRC_EQUALS);}})};
|
|
@@ -1610,7 +1615,8 @@ shaka.Player.prototype.adjustStartTime_=function(a,b){var c,d,e,f,g;return $jsco
|
|
|
1610
1615
|
"Segment should start before target time!");return q.return(p)})},h.yield(e(c,b),2);if(3!=h.nextAddress)return f=h.yieldResult,h.yield(e(d,b),3);g=h.yieldResult;return null!=g&&null!=f?h.return(Math.max(g,f)):null!=g?h.return(g):null!=f?h.return(f):h.return(b)})};
|
|
1611
1616
|
shaka.Player.prototype.updateBufferState_=function(){var a=this.isBuffering();shaka.log.v2("Player changing buffering state to",a);if(this.stats_&&this.bufferObserver_&&this.playhead_){0==this.config_.streaming.rebufferingGoal?this.playRateController_.setBuffering(!1):this.playRateController_.setBuffering(a);this.cmcdManager_&&this.cmcdManager_.setBuffering(a);this.updateStateHistory_();var b=this.config_.streaming.liveSync.dynamicTargetLatency.maxAttempts;if(this.config_.streaming.liveSync.dynamicTargetLatency.enabled&&
|
|
1612
1617
|
a&&this.rebufferingCount_<b){b=this.config_.streaming.liveSync.dynamicTargetLatency.maxLatency;var c=this.config_.streaming.liveSync.targetLatencyTolerance,d=this.config_.streaming.liveSync.dynamicTargetLatency.rebufferIncrement;this.currentTargetLatency_&&(this.currentTargetLatency_=Math.min(this.currentTargetLatency_+ ++this.rebufferingCount_*d,b-c))}}b=shaka.util.FakeEvent.EventName.Buffering;a=(new Map).set("buffering",a);this.dispatchEvent(shaka.Player.makeEvent_(b,a))};
|
|
1613
|
-
shaka.Player.prototype.onRateChange_=function(){var a=this.video_.playbackRate;0!=a&&(this.playRateController_&&this.playRateController_.set(a),a=shaka.Player.makeEvent_(shaka.util.FakeEvent.EventName.RateChange),this.dispatchEvent(a))};
|
|
1618
|
+
shaka.Player.prototype.onRateChange_=function(){var a=this.video_.playbackRate;0!=a&&(this.playRateController_&&(this.playRateController_.set(a),this.loadMode_==shaka.Player.LoadMode.MEDIA_SOURCE&&this.abrManager_.playbackRateChanged(a),this.setupTrickPlayEventListeners_(a)),a=shaka.Player.makeEvent_(shaka.util.FakeEvent.EventName.RateChange),this.dispatchEvent(a))};
|
|
1619
|
+
shaka.Player.prototype.setupTrickPlayEventListeners_=function(a){var b=this;this.trickPlayEventManager_.removeAll();this.isLive()&&this.trickPlayEventManager_.listen(this.video_,"timeupdate",function(){var c=b.video_.currentTime,d=b.seekRange(),e=b.config_.streaming.safeSeekOffset;0<a?Math.floor(c)>=Math.floor(d.end)&&b.cancelTrickPlay():Math.floor(c)<=Math.floor(d.start+e)&&b.cancelTrickPlay()})};
|
|
1614
1620
|
shaka.Player.prototype.updateStateHistory_=function(){if(this.stats_&&this.bufferObserver_){var a=shaka.media.BufferingObserver.State,b=this.stats_.getStateHistory(),c="playing";this.bufferObserver_.getState()==a.STARVING?c="buffering":this.isEnded()?c="ended":this.video_.paused&&(c="paused");b.update(c)&&(a=shaka.util.FakeEvent.EventName.StateChanged,c=(new Map).set("newstate",c),this.dispatchEvent(shaka.Player.makeEvent_(a,c)))}};
|
|
1615
1621
|
shaka.Player.prototype.onTimeUpdate_=function(){var a=this.video_.playbackRate,b=this.isLive();if(this.config_.streaming.vodDynamicPlaybackRate&&!b){var c=this.config_.streaming.vodDynamicPlaybackRateLowBufferRate,d=this.getBufferFullness(),e=this.config_.streaming.vodDynamicPlaybackRateBufferRatio;d<=e?a!=c&&(shaka.log.debug("Buffer fullness ratio ("+d+") is less than the vodDynamicPlaybackRateBufferRatio ("+e+"). Updating playbackRate to "+c),this.trickPlay(c,!1)):1==d&&a!==this.playRateController_.getDefaultRate()&&
|
|
1616
1622
|
(shaka.log.debug("Buffer is full. Cancel trick play."),this.cancelTrickPlay())}if(b&&(b=this.seekRange(),Number.isFinite(b.end)&&!(this.video_.currentTime<b.start||this.video_.paused))){c=this.config_.streaming.liveSync.targetLatencyTolerance;d=this.config_.streaming.liveSync.dynamicTargetLatency.enabled;e=this.config_.streaming.liveSync.dynamicTargetLatency.stabilityThreshold;if(this.config_.streaming.liveSync&&this.config_.streaming.liveSync.enabled){var f=this.config_.streaming.liveSync.targetLatency;
|
|
@@ -1651,10 +1657,10 @@ shaka.util.FakeEvent.EventName.MediaQualityChanged,b))};
|
|
|
1651
1657
|
shaka.Player.prototype.videoErrorToShakaError_=function(a){a=void 0===a?!0:a;goog.asserts.assert(this.video_.error,"Video error expected, but missing!");if(!this.video_.error)return a?new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.VIDEO_ERROR):null;var b=this.video_.error.code;if(!a&&1==b)return null;if(a=this.video_.error.msExtendedCode)0>a&&(a+=Math.pow(2,32)),a=a.toString(16);return new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
1652
1658
|
shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.VIDEO_ERROR,b,a,this.video_.error.message)};shaka.Player.prototype.onVideoError_=function(a){if(a=this.videoErrorToShakaError_(!1))this.onError_(a)};
|
|
1653
1659
|
shaka.Player.prototype.onKeyStatus_=function(a){goog.asserts.assert(this.streamingEngine_,"Cannot be called in src= mode");var b=shaka.Player.makeEvent_(shaka.util.FakeEvent.EventName.KeyStatusChanged);this.dispatchEvent(b);var c=Object.keys(a);0==c.length&&shaka.log.warning("Got a key status event without any key statuses, so we don't know the real key statuses. If we don't have all the keys, you'll need to set restrictions so we don't select those tracks.");1==c.length&&""==c[0]&&(c=["00"],a={"00":a[""]});
|
|
1654
|
-
(b=1==c.length&&"00"==c[0])&&shaka.log.warning("Got a synthetic key status event, so we don't know the real key statuses. If we don't have all the keys, you'll need to set restrictions so we don't select those tracks.");var d=shaka.media.ManifestFilterer.restrictedStatuses,e=!1;goog.asserts.assert(this.drmEngine_,"drmEngine should be non-null here.");if(c.length){c
|
|
1655
|
-
g=$jscomp.makeIterator(
|
|
1656
|
-
(
|
|
1657
|
-
shaka.Player.applyPlayRange_=function(a,b,c){0<b&&(a.isLive()?shaka.log.warning("|playRangeStart| has been configured for live content. Ignoring the setting."):a.setUserSeekStart(b));b=a.getDuration();c<b&&(a.isLive()?shaka.log.warning("|playRangeEnd| has been configured for live content. Ignoring the setting."):a.setDuration(c))};
|
|
1660
|
+
(b=1==c.length&&"00"==c[0])&&shaka.log.warning("Got a synthetic key status event, so we don't know the real key statuses. If we don't have all the keys, you'll need to set restrictions so we don't select those tracks.");var d=shaka.media.ManifestFilterer.restrictedStatuses,e=!1;goog.asserts.assert(this.drmEngine_,"drmEngine should be non-null here.");if(c.length){c=this.keySystem();for(var f=shaka.util.MapUtils.asMap(this.config_.drm.clearKeys),g=$jscomp.makeIterator(this.manifest_.variants),h=g.next();!h.done;h=
|
|
1661
|
+
g.next()){h=h.value;var k=shaka.util.StreamUtils.getVariantStreams(h);k=$jscomp.makeIterator(k);for(var l=k.next();!l.done;l=k.next()){var m=l.value;l=h.allowedByKeySystem;if(m.keyIds.size)if(m.drmInfos.length&&!f.size){m=$jscomp.makeIterator(m.drmInfos);for(var n=m.next();!n.done;n=m.next())if(n=n.value,n.keyIds.size&&n.keySystem==c){h.allowedByKeySystem=!0;n=$jscomp.makeIterator(n.keyIds);for(var p=n.next();!p.done;p=n.next())if(p=p.value,(p=a[b?"00":p])||this.drmEngine_.hasManifestInitData())h.allowedByKeySystem=
|
|
1662
|
+
h.allowedByKeySystem&&!!p&&!d.includes(p)}}else for(h.allowedByKeySystem=!0,m=$jscomp.makeIterator(m.keyIds),n=m.next();!n.done;n=m.next())if(n=n.value,(n=a[b?"00":n])||this.drmEngine_.hasManifestInitData())h.allowedByKeySystem=h.allowedByKeySystem&&!!n&&!d.includes(n);l!=h.allowedByKeySystem&&(e=!0)}}}if(e&&(this.onTracksChanged_(),!this.updateAbrManagerVariants_()))return;(a=this.streamingEngine_.getCurrentVariant())&&!a.allowedByKeySystem&&(shaka.log.debug("Choosing new streams after key status changed"),
|
|
1663
|
+
this.chooseVariantAndSwitch_())};shaka.Player.prototype.shouldStreamText_=function(){return this.config_.streaming.alwaysStreamText||this.isTextTrackVisible()};shaka.Player.applyPlayRange_=function(a,b,c){0<b&&(a.isLive()?shaka.log.warning("|playRangeStart| has been configured for live content. Ignoring the setting."):a.setUserSeekStart(b));b=a.getDuration();c<b&&(a.isLive()?shaka.log.warning("|playRangeEnd| has been configured for live content. Ignoring the setting."):a.setDuration(c))};
|
|
1658
1664
|
shaka.Player.prototype.delayDispatchEvent_=function(a){var b=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){if(1==c.nextAddress)return c.yield(Promise.resolve(),2);b.loadMode_!=shaka.Player.LoadMode.DESTROYED&&b.dispatchEvent(a);c.jumpToEnd()})};shaka.Player.getLanguagesFrom_=function(a){var b=new Set;a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next())c=c.value,c.language?b.add(shaka.util.LanguageUtils.normalize(c.language)):b.add("und");return b};
|
|
1659
1665
|
shaka.Player.getLanguageAndRolesFrom_=function(a){var b=new Map,c=new Map;a=$jscomp.makeIterator(a);for(var d=a.next();!d.done;d=a.next()){d=d.value;var e="und",f=[];d.language&&(e=shaka.util.LanguageUtils.normalize(d.language));(f="variant"==d.type?d.audioRoles:d.roles)&&f.length||(f=[""]);b.has(e)||b.set(e,new Set);f=$jscomp.makeIterator(f);for(var g=f.next();!g.done;g=f.next())g=g.value,b.get(e).add(g),d.label&&(c.has(e)||c.set(e,new Map),c.get(e).set(g,d.label))}var h=[];b.forEach(function(k,
|
|
1660
1666
|
l){k=$jscomp.makeIterator(k);for(var m=k.next();!m.done;m=k.next()){m=m.value;var n=null;c.has(l)&&c.get(l).has(m)&&(n=c.get(l).get(m));h.push({language:l,role:m,label:n})}});return h};
|
|
@@ -1677,7 +1683,7 @@ goog.exportProperty(shaka.Player.prototype,"getNonDefaultConfiguration",shaka.Pl
|
|
|
1677
1683
|
goog.exportProperty(shaka.Player.prototype,"configure",shaka.Player.prototype.configure);goog.exportProperty(shaka.Player.prototype,"releaseAllMutexes",shaka.Player.prototype.releaseAllMutexes);goog.exportProperty(shaka.Player.prototype,"destroyAllPreloads",shaka.Player.prototype.destroyAllPreloads);goog.exportProperty(shaka.Player.prototype,"preload",shaka.Player.prototype.preload);goog.exportProperty(shaka.Player.prototype,"detachAndSavePreload",shaka.Player.prototype.detachAndSavePreload);
|
|
1678
1684
|
goog.exportProperty(shaka.Player.prototype,"unloadAndSavePreload",shaka.Player.prototype.unloadAndSavePreload);goog.exportProperty(shaka.Player.prototype,"load",shaka.Player.prototype.load);goog.exportProperty(shaka.Player.prototype,"updateStartTime",shaka.Player.prototype.updateStartTime);goog.exportProperty(shaka.Player.prototype,"unload",shaka.Player.prototype.unload);goog.exportProperty(shaka.Player.prototype,"detach",shaka.Player.prototype.detach);
|
|
1679
1685
|
goog.exportProperty(shaka.Player.prototype,"attachCanvas",shaka.Player.prototype.attachCanvas);goog.exportProperty(shaka.Player.prototype,"attach",shaka.Player.prototype.attach);goog.exportProperty(shaka.Player,"probeSupport",shaka.Player.probeSupport);goog.exportProperty(shaka.Player,"isBrowserSupported",shaka.Player.isBrowserSupported);goog.exportProperty(shaka.Player,"setAdManagerFactory",shaka.Player.setAdManagerFactory);goog.exportProperty(shaka.Player,"registerSupportPlugin",shaka.Player.registerSupportPlugin);
|
|
1680
|
-
goog.exportProperty(shaka.Player.prototype,"destroy",shaka.Player.prototype.destroy);shaka.Player.LoadMode={DESTROYED:0,NOT_LOADED:1,MEDIA_SOURCE:2,SRC_EQUALS:3};goog.exportProperty(shaka.Player,"LoadMode",shaka.Player.LoadMode);shaka.Player.TYPICAL_BUFFERING_THRESHOLD_=.5;shaka.Player.version="v4.13.
|
|
1686
|
+
goog.exportProperty(shaka.Player.prototype,"destroy",shaka.Player.prototype.destroy);shaka.Player.LoadMode={DESTROYED:0,NOT_LOADED:1,MEDIA_SOURCE:2,SRC_EQUALS:3};goog.exportProperty(shaka.Player,"LoadMode",shaka.Player.LoadMode);shaka.Player.TYPICAL_BUFFERING_THRESHOLD_=.5;shaka.Player.version="v4.13.2-debug";goog.exportProperty(shaka.Player,"version",shaka.Player.version);shaka.Deprecate.init(shaka.Player.version);shaka.Player.supportPlugins_=new Map;shaka.Player.adManagerFactory_=null;
|
|
1681
1687
|
shaka.Player.TextTrackLabel="Shaka Player TextTrack";shaka.ads={};shaka.ads.AdsStats=function(){this.loadTimes_=[];this.errors_=this.skipped_=this.playedCompletely_=this.started_=0};shaka.ads.AdsStats.prototype.addLoadTime=function(a){this.loadTimes_.push(a)};shaka.ads.AdsStats.prototype.incrementStarted=function(){this.started_++};shaka.ads.AdsStats.prototype.incrementPlayedCompletely=function(){this.playedCompletely_++};shaka.ads.AdsStats.prototype.incrementSkipped=function(){this.skipped_++};shaka.ads.AdsStats.prototype.incrementErrors=function(){this.errors_++};
|
|
1682
1688
|
shaka.ads.AdsStats.prototype.getAverageLoadTime_=function(){return this.loadTimes_.length?this.loadTimes_.reduce(function(a,b){return a+b},0)/this.loadTimes_.length:0};shaka.ads.AdsStats.prototype.getBlob=function(){return{loadTimes:this.loadTimes_,averageLoadTime:this.getAverageLoadTime_(),started:this.started_,playedCompletely:this.playedCompletely_,skipped:this.skipped_,errors:this.errors_}};shaka.ads.ClientSideAd=function(a,b,c){var d=this;this.ad_=a;this.manager_=b;this.video_=c;this.isPaused_=!1;this.volume_=this.manager_.getVolume();this.eventManager_=new shaka.util.EventManager;this.eventManager_.listen(this.manager_,google.ima.AdEvent.Type.PAUSED,function(){d.isPaused_=!0});this.eventManager_.listen(this.manager_,google.ima.AdEvent.Type.RESUMED,function(){d.isPaused_=!1})};shaka.ads.ClientSideAd.prototype.needsSkipUI=function(){return!1};
|
|
1683
1689
|
shaka.ads.ClientSideAd.prototype.isClientRendering=function(){return!0};shaka.ads.ClientSideAd.prototype.isUsingAnotherMediaElement=function(){return!0};shaka.ads.ClientSideAd.prototype.getDuration=function(){return this.ad_.getDuration()};shaka.ads.ClientSideAd.prototype.getMinSuggestedDuration=function(){return this.ad_.getMinSuggestedDuration()};shaka.ads.ClientSideAd.prototype.getRemainingTime=function(){return this.manager_.getRemainingTime()};shaka.ads.ClientSideAd.prototype.isPaused=function(){return this.isPaused_};
|
|
@@ -1792,23 +1798,23 @@ shaka.ads.InterstitialAdManager.prototype.setupStaticAd_=function(a,b,c,d){var e
|
|
|
1792
1798
|
c-d);p?(e.adEventManager_.removeAll(),e.setupAd_(p,b,++c,Date.now(),d)):e.playingAd_=!1},l=new shaka.ads.InterstitialStaticAd(a,b,c);this.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_STARTED,(new Map).set("ad",l)));"iframe"==g?h.src=a.uri:(h.src=a.uri,h.onerror=function(p){e.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_ERROR,(new Map).set("originalEvent",p)));k()});l=f.viewport;var m=f.topLeft;f=f.size;0==l.x&&0==l.y?(h.width=a.overlay.size.x,h.height=a.overlay.size.y,h.style.bottom=
|
|
1793
1799
|
"10%",h.style.left="0",h.style.right="0",h.style.width="100%",a.overlay.size.y||"iframe"!=g||(h.style.height="auto")):(h.style.height=f.y/l.y*100+"%",h.style.left=m.x/l.x*100+"%",h.style.top=m.y/l.y*100+"%",h.style.width=f.x/l.x*100+"%");this.adContainer_.appendChild(h);var n=Date.now();this.playoutLimitTimer_&&this.playoutLimitTimer_.stop();this.playoutLimitTimer_=new shaka.util.Timer(function(){a.playoutLimit&&(Date.now()-n)/1E3>a.playoutLimit?(e.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_COMPLETE)),
|
|
1794
1800
|
k()):a.endTime&&e.baseVideo_.currentTime>a.endTime?(e.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_COMPLETE)),k()):e.baseVideo_.currentTime<a.startTime&&(e.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_SKIPPED)),k())});a.playoutLimit&&!a.endTime?this.playoutLimitTimer_.tickAfter(a.playoutLimit):a.endTime&&this.playoutLimitTimer_.tickEvery(.025)};
|
|
1795
|
-
shaka.ads.InterstitialAdManager.prototype.setupVideoAd_=function(a,b,c,d,e){var f=this,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,A
|
|
1801
|
+
shaka.ads.InterstitialAdManager.prototype.setupVideoAd_=function(a,b,c,d,e){var f=this,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,B,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(z){switch(z.nextAddress){case 1:goog.asserts.assert(f.video_,"Must have video");g=Date.now();f.playingAd_=!0;if(!f.usingBaseVideo_||1!=c){z.jumpTo(2);break}f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_CONTENT_PAUSE_REQUESTED,(new Map).set("saveLivePosition",!0)));h=new shaka.util.PublicPromise;k=function(C){return $jscomp.asyncExecutePromiseGeneratorProgram(function(D){if(1==
|
|
1796
1802
|
D.nextAddress)return"detach"!=C.state?D.jumpTo(0):shaka.util.Platform.isSmartTV()?D.yield(new Promise(function(E){return(new shaka.util.Timer(E)).tickAfter(.1)}),3):D.jumpTo(3);h.resolve();f.adEventManager_.unlisten(f.basePlayer_,"onstatechange",k);D.jumpToEnd()})};f.adEventManager_.listen(f.basePlayer_,"onstatechange",k);return z.yield(h,2);case 2:f.usingBaseVideo_||(f.video_.style.display="",a.overlay?(f.video_.loop=a.loop,l=a.overlay.viewport,m=a.overlay.topLeft,n=a.overlay.size,f.video_.style.height=
|
|
1797
1803
|
n.y/l.y*100+"%",f.video_.style.left=m.x/l.x*100+"%",f.video_.style.top=m.y/l.y*100+"%",f.video_.style.width=n.x/l.x*100+"%"):(f.baseVideo_.pause(),null!=a.resumeOffset&&0!=a.resumeOffset&&(f.baseVideo_.currentTime+=a.resumeOffset),f.video_.loop=!1,f.video_.style.height="100%",f.video_.style.left="0",f.video_.style.top="0",f.video_.style.width="100%"));p=!1;q=function(){if(!f.usingBaseVideo_&&!a.overlay&&null==a.resumeOffset)if(a.timelineRange&&a.endTime&&Infinity!=a.endTime)f.baseVideo_.currentTime!=
|
|
1798
|
-
a.endTime&&(f.baseVideo_.currentTime=a.endTime);else{var C=Date.now();f.baseVideo_.currentTime+=(C-d)/1E3;d=C}};r=function(C){var D,E;return $jscomp.asyncExecutePromiseGeneratorProgram(function(
|
|
1799
|
-
a.post&&(f.lastTime_=null,f.lastPlayedAd_=null);return f.usingBaseVideo_?
|
|
1800
|
-
!1,f.usingBaseVideo_?f.cuepointsChanged_():(f.video_.style.display="none",q(),f.baseVideo_.ended||f.baseVideo_.play()));f.determineIfUsingBaseVideo_();D&&(f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_STOPPED)),f.adEventManager_.removeAll(),f.setupAd_(D,b,++c,d,e));
|
|
1804
|
+
a.endTime&&(f.baseVideo_.currentTime=a.endTime);else{var C=Date.now();f.baseVideo_.currentTime+=(C-d)/1E3;d=C}};r=function(C){var D,E;return $jscomp.asyncExecutePromiseGeneratorProgram(function(H){if(1==H.nextAddress){q();D=f.getCurrentInterstitial_(a.pre,c-e);if(C&&a.groupId)for(;D&&D.groupId==a.groupId;)c++,D=f.getCurrentInterstitial_(a.pre,c-e);f.playoutLimitTimer_&&(!a.groupId||D&&D.groupId!=a.groupId)&&(f.playoutLimitTimer_.stop(),f.playoutLimitTimer_=null);if(D&&!D.overlay)return H.jumpTo(2);
|
|
1805
|
+
a.post&&(f.lastTime_=null,f.lastPlayedAd_=null);return f.usingBaseVideo_?H.yield(f.player_.detach(),4):H.yield(f.player_.unload(),4)}2!=H.nextAddress&&(f.usingBaseVideo_&&(E=a.resumeOffset,null==E&&(E=a.timelineRange&&a.endTime&&Infinity!=a.endTime?a.endTime-(f.lastTime_||0):(Date.now()-d)/1E3),f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_CONTENT_RESUME_REQUESTED,(new Map).set("offset",E)))),f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_STOPPED)),f.adEventManager_.removeAll(),f.playingAd_=
|
|
1806
|
+
!1,f.usingBaseVideo_?f.cuepointsChanged_():(f.video_.style.display="none",q(),f.baseVideo_.ended||f.baseVideo_.play()));f.determineIfUsingBaseVideo_();D&&(f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_STOPPED)),f.adEventManager_.removeAll(),f.setupAd_(D,b,++c,d,e));H.jumpToEnd()})};t=function(C){return $jscomp.asyncExecutePromiseGeneratorProgram(function(D){if(p)return D.return();p=!0;f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_ERROR,(new Map).set("originalEvent",C)));return D.yield(r(!1),
|
|
1801
1807
|
0)})};u=function(){return $jscomp.asyncExecutePromiseGeneratorProgram(function(C){if(1==C.nextAddress){if(p)return C.return();p=!0;return C.yield(r(!1),2)}f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_COMPLETE));C.jumpToEnd()})};f.lastOnSkip_=function(){return $jscomp.asyncExecutePromiseGeneratorProgram(function(C){if(p)return C.return();p=!0;f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_SKIPPED));return C.yield(r(!0),0)})};w=new shaka.ads.InterstitialAd(f.video_,a,f.lastOnSkip_,
|
|
1802
1808
|
b,c,!f.usingBaseVideo_);f.usingBaseVideo_||(w.setMuted(f.baseVideo_.muted),w.setVolume(f.baseVideo_.volume));f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_STARTED,(new Map).set("ad",w)));if(v=w.canSkipNow())f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_SKIP_STATE_CHANGED));f.adEventManager_.listenOnce(f.player_,"error",t);f.adEventManager_.listen(f.video_,"timeupdate",function(){if(f.video_.duration){var C=w.canSkipNow();if(v!=C&&0<w.getRemainingTime()&&0<w.getDuration())f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_SKIP_STATE_CHANGED));
|
|
1803
1809
|
v=C}});f.adEventManager_.listenOnce(f.player_,"firstquartile",function(){q();f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_FIRST_QUARTILE))});f.adEventManager_.listenOnce(f.player_,"midpoint",function(){q();f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_MIDPOINT))});f.adEventManager_.listenOnce(f.player_,"thirdquartile",function(){q();f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_THIRD_QUARTILE))});f.adEventManager_.listenOnce(f.player_,"complete",u);f.adEventManager_.listen(f.video_,
|
|
1804
1810
|
"play",function(){f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_RESUMED))});f.adEventManager_.listen(f.video_,"pause",function(){var C=f.player_.getConfiguration();if(f.video_.currentTime>=C.playRangeEnd)u();else f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_PAUSED))});f.adEventManager_.listen(f.video_,"volumechange",function(){if(f.video_.muted)f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_MUTED));else f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_VOLUME_CHANGED))});
|
|
1805
1811
|
z.setCatchFinallyBlocks(4);f.updatePlayerConfig_();a.startTime&&a.endTime&&Infinity!=a.endTime&&a.startTime!=a.endTime&&(x=a.endTime-a.startTime,0<x&&f.player_.configure("playRangeEnd",x));a.playoutLimit&&!f.playoutLimitTimer_&&(f.playoutLimitTimer_=(new shaka.util.Timer(function(){f.lastOnSkip_()})).tickAfter(a.playoutLimit),f.player_.configure("playRangeEnd",a.playoutLimit));return z.yield(f.player_.attach(f.video_),6);case 6:return f.preloadManagerInterstitials_.has(a)?z.yield(f.preloadManagerInterstitials_.get(a),
|
|
1806
|
-
10):z.yield(f.player_.load(a.uri,null,a.mimeType||void 0),8);case 10:return y=z.yieldResult,f.preloadManagerInterstitials_.delete(a),y?z.yield(f.player_.load(y),8):z.yield(f.player_.load(a.uri,null,a.mimeType||void 0),8);case 8:
|
|
1807
|
-
shaka.ads.InterstitialAdManager.prototype.getInterstitialsInfo_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,A,
|
|
1808
|
-
h=null==f?Math.floor(10*a.startTime)/10:a.startTime;(k=a.endTime)&&Infinity!=a.endTime&&"number"==typeof a.endTime&&(k=null==f?Math.floor(10*a.endTime)/10:a.endTime);l=a.values.find(function(
|
|
1809
|
-
u=parseFloat(v),isNaN(q)&&(u=null);x=null;if(y=a.values.find(function(
|
|
1810
|
-
!y&&b.basePlayer_.isLive()&&(L=!E&&!
|
|
1811
|
-
|
|
1812
|
+
10):z.yield(f.player_.load(a.uri,null,a.mimeType||void 0),8);case 10:return y=z.yieldResult,f.preloadManagerInterstitials_.delete(a),y?z.yield(f.player_.load(y),8):z.yield(f.player_.load(a.uri,null,a.mimeType||void 0),8);case 8:B=(Date.now()-g)/1E3;f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.ADS_LOADED,(new Map).set("loadTime",B)));f.usingBaseVideo_&&f.baseVideo_.play();z.leaveTryBlock(0);break;case 4:A=z.enterCatchBlock();if(!f.playingAd_)return z.return();t(A);z.jumpToEnd()}})};
|
|
1813
|
+
shaka.ads.InterstitialAdManager.prototype.getInterstitialsInfo_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,B,A,z,C,D,E,H,I,G,L,K,F,M,J,N,P,O,W,Q,S,V,R,T,X;return $jscomp.asyncExecutePromiseGeneratorProgram(function(Y){switch(Y.nextAddress){case 1:c=[];if(!a)return Y.return(c);d=a.values.find(function(U){return"X-ASSET-URI"==U.key});e=a.values.find(function(U){return"X-ASSET-LIST"==U.key});if(!d&&!e)return Y.return(c);f=null;if(g=a.values.find(function(U){return"ID"==U.key}))f=g.data;
|
|
1814
|
+
h=null==f?Math.floor(10*a.startTime)/10:a.startTime;(k=a.endTime)&&Infinity!=a.endTime&&"number"==typeof a.endTime&&(k=null==f?Math.floor(10*a.endTime)/10:a.endTime);l=a.values.find(function(U){return"X-RESTRICT"==U.key});n=m=!0;l&&l.data&&(p=l.data,m=!p.includes("SKIP"),n=!p.includes("JUMP"));q=m?0:null;if(r=a.values.find(function(U){return"X-ENABLE-SKIP-AFTER"==U.key}))t=r.data,q=parseFloat(t),isNaN(q)&&(q=m?0:null);u=null;if(w=a.values.find(function(U){return"X-ENABLE-SKIP-FOR"==U.key}))v=w.data,
|
|
1815
|
+
u=parseFloat(v),isNaN(q)&&(u=null);x=null;if(y=a.values.find(function(U){return"X-RESUME-OFFSET"==U.key}))B=y.data,x=parseFloat(B),isNaN(x)&&(x=null);A=null;if(z=a.values.find(function(U){return"X-PLAYOUT-LIMIT"==U.key}))C=z.data,A=parseFloat(C),isNaN(A)&&(A=null);H=E=D=!1;if(I=a.values.find(function(U){return"CUE"==U.key}))G=I.data,D=G.includes("ONCE"),E=G.includes("PRE"),H=G.includes("POST");L=!1;(K=a.values.find(function(U){return"X-TIMELINE-OCCUPIES"==U.key}))?(F=K.data,L=F.includes("RANGE")):
|
|
1816
|
+
!y&&b.basePlayer_.isLive()&&(L=!E&&!H);if(d){M=d.data;if(!M)return Y.return(c);c.push({id:f,groupId:null,startTime:h,endTime:k,uri:M,mimeType:null,isSkippable:m,skipOffset:q,skipFor:u,canJump:n,resumeOffset:x,playoutLimit:A,once:D,pre:E,post:H,timelineRange:L,loop:!1,overlay:null});Y.jumpTo(2);break}if(!e){Y.jumpTo(2);break}J=e.data;if(!J)return Y.return(c);Y.setCatchFinallyBlocks(4);N=shaka.net.NetworkingEngine;P={type:N.AdvancedRequestType.INTERSTITIAL_ASSET_LIST};return Y.yield(b.makeAdRequest_(J,
|
|
1817
|
+
P),6);case 6:O=Y.yieldResult;W=shaka.util.StringUtils.fromUTF8(O);Q=JSON.parse(W);if(S=Q["SKIP-CONTROL"])V=S["ENABLE-SKIP-AFTER"],"number"==typeof V&&(q=parseFloat(V),isNaN(V)&&(q=m?0:null)),R=S["ENABLE-SKIP-FOR"],"number"==typeof R&&(u=parseFloat(R),isNaN(R)&&(u=null));for(T=0;T<Q.ASSETS.length;T++)X=Q.ASSETS[T],X.URI&&c.push({id:f+"_shaka_asset_"+T,groupId:f,startTime:h,endTime:k,uri:X.URI,mimeType:null,isSkippable:m,skipOffset:q,skipFor:u,canJump:n,resumeOffset:x,playoutLimit:A,once:D,pre:E,post:H,
|
|
1812
1818
|
timelineRange:L,loop:!1,overlay:null});Y.leaveTryBlock(2);break;case 4:Y.enterCatchBlock();case 2:return Y.return(c)}})};
|
|
1813
1819
|
shaka.ads.InterstitialAdManager.prototype.cuepointsChanged_=function(){for(var a=[],b=$jscomp.makeIterator(this.interstitials_),c=b.next(),d={};!c.done;d={shakaCuePoint$jscomp$1:void 0},c=b.next())c=c.value,c.overlay||(d.shakaCuePoint$jscomp$1={start:c.startTime,end:null},c.pre?(d.shakaCuePoint$jscomp$1.start=0,d.shakaCuePoint$jscomp$1.end=null):c.post?(d.shakaCuePoint$jscomp$1.start=-1,d.shakaCuePoint$jscomp$1.end=null):c.timelineRange&&(d.shakaCuePoint$jscomp$1.end=c.endTime),a.find(function(e){return function(f){return e.shakaCuePoint$jscomp$1.start==
|
|
1814
1820
|
f.start&&e.shakaCuePoint$jscomp$1.end==f.end}}(d))||a.push(d.shakaCuePoint$jscomp$1));this.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.CUEPOINTS_CHANGED,(new Map).set("cuepoints",a)))};
|
|
@@ -1837,9 +1843,9 @@ shaka.ads.MediaTailorAdManager.prototype.getCuePoints=function(){for(var a=[],b=
|
|
|
1837
1843
|
shaka.ads.MediaTailorAdManager.prototype.requestSessionInfo_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,u;return $jscomp.asyncExecutePromiseGeneratorProgram(function(w){if(1==w.nextAddress)return d=shaka.net.NetworkingEngine,e=d.RequestType.ADS,f={type:d.AdvancedRequestType.MEDIATAILOR_SESSION_INFO},g=d.makeRequest([a],d.defaultRetryParameters()),g.method="POST",b&&(h=JSON.stringify(b),g.body=shaka.util.StringUtils.toUTF8(h)),k=c.networkingEngine_.request(e,g,f),w.setCatchFinallyBlocks(2),
|
|
1838
1844
|
w.yield(k.promise,4);if(2!=w.nextAddress){l=w.yieldResult;m=shaka.util.StringUtils.fromUTF8(l.data);n=JSON.parse(m);if(n.manifestUrl&&n.trackingUrl)p=new goog.Uri(a),q=new goog.Uri(n.trackingUrl),c.trackingUrl_=p.resolve(q).toString(),r=Date.now()/1E3,t=r-c.streamRequestStartTime_,c.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.ADS_LOADED,(new Map).set("loadTime",t))),u=new goog.Uri(n.manifestUrl),c.streamPromise_.resolve(p.resolve(u).toString()),c.streamPromise_=null;else throw Error("Insufficient data from MediaTailor.");
|
|
1839
1845
|
return w.leaveTryBlock(0)}w.enterCatchBlock();if(!c.backupUrl_.length)return c.streamPromise_.reject("MediaTailor request returned an error and there was no backup asset uri provided."),c.streamPromise_=null,w.return();shaka.log.warning("MediaTailor request returned an error. Falling back to the backup asset uri.");c.streamPromise_.resolve(c.backupUrl_);c.streamPromise_=null;w.jumpToEnd()})};
|
|
1840
|
-
shaka.ads.MediaTailorAdManager.prototype.requestTrackingInfo_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y;return $jscomp.asyncExecutePromiseGeneratorProgram(function(
|
|
1846
|
+
shaka.ads.MediaTailorAdManager.prototype.requestTrackingInfo_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y;return $jscomp.asyncExecutePromiseGeneratorProgram(function(B){if(1==B.nextAddress)return d=shaka.net.NetworkingEngine,e=d.RequestType.ADS,f={type:d.AdvancedRequestType.MEDIATAILOR_TRACKING_INFO},g=d.makeRequest([a],d.defaultRetryParameters()),h=c.networkingEngine_.request(e,g,f),B.setCatchFinallyBlocks(2),B.yield(h.promise,4);if(2!=B.nextAddress){k=B.yieldResult;l=[];m=shaka.util.StringUtils.fromUTF8(k.data);
|
|
1841
1847
|
n=JSON.parse(m);if(0<n.avails.length){if(JSON.stringify(c.adBreaks_)!=JSON.stringify(n.avails)){c.adBreaks_=n.avails;p=$jscomp.makeIterator(c.adBreaks_);for(q=p.next();!q.done;q=p.next())for(r=q.value,t=$jscomp.makeIterator(r.nonLinearAdsList),u=t.next();!u.done;u=t.next())for(w=u.value,v=$jscomp.makeIterator(w.nonLinearAdList),x=v.next();!x.done;x=v.next())y=x.value,c.requestStaticResource_(y);l=c.getCuePoints();c.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.CUEPOINTS_CHANGED,(new Map).set("cuepoints",
|
|
1842
|
-
l)))}}else{if(c.adBreaks_.length)c.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.CUEPOINTS_CHANGED,(new Map).set("cuepoints",l)));c.onEnded_();c.adBreaks_=[]}b&&(c.isLive_||0<l.length)&&c.setupAdBreakListeners_();return
|
|
1848
|
+
l)))}}else{if(c.adBreaks_.length)c.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.CUEPOINTS_CHANGED,(new Map).set("cuepoints",l)));c.onEnded_();c.adBreaks_=[]}b&&(c.isLive_||0<l.length)&&c.setupAdBreakListeners_();return B.leaveTryBlock(0)}B.enterCatchBlock();B.jumpToEnd()})};
|
|
1843
1849
|
shaka.ads.MediaTailorAdManager.prototype.requestStaticResource_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p;return $jscomp.asyncExecutePromiseGeneratorProgram(function(q){if(1==q.nextAddress){if(!a.staticResource)return q.return();c=b.getCacheKeyForNonLinear_(a);if(d=b.staticResources_.get(c))return q.return();e=shaka.net.NetworkingEngine;f=e.RequestType.ADS;g={type:e.AdvancedRequestType.MEDIATAILOR_STATIC_RESOURCE};h=e.makeRequest([a.staticResource],e.defaultRetryParameters());k=b.networkingEngine_.request(f,
|
|
1844
1850
|
h,g);q.setCatchFinallyBlocks(2);b.staticResources_.set(c,[]);return q.yield(k.promise,4)}if(2!=q.nextAddress)return l=q.yieldResult,m=shaka.util.StringUtils.fromUTF8(l.data),n=JSON.parse(m),p=n.apps,b.staticResources_.set(c,p),q.leaveTryBlock(0);q.enterCatchBlock();b.staticResources_.delete(c);q.jumpToEnd()})};
|
|
1845
1851
|
shaka.ads.MediaTailorAdManager.prototype.getCacheKeyForNonLinear_=function(a){return[a.adId,a.adParameters,a.adSystem,a.adTitle,a.creativeAdId,a.creativeId,a.creativeSequence,a.height,a.width,a.staticResource].join("")};
|
|
@@ -1966,13 +1972,14 @@ shaka.cast.CastSender.prototype.onMessageReceived_=function(a,b){a=shaka.cast.Ca
|
|
|
1966
1972
|
e=a.error,a=this.asyncCallPromises_.get(d),this.asyncCallPromises_.delete(d),goog.asserts.assert(a,"Unexpected async id"),a)if(e){d=new shaka.util.Error(e.severity,e.category,e.code);for(c in e)d[c]=e[c];a.reject(d)}else a.resolve()}};
|
|
1967
1973
|
shaka.cast.CastSender.prototype.sendMessage_=function(a){a=shaka.cast.CastUtils.serialize(a);var b=shaka.cast.CastSender.session_;try{b.sendMessage(shaka.cast.CastUtils.SHAKA_MESSAGE_NAMESPACE,a,function(){},shaka.log.error)}catch(c){throw shaka.log.error("Cast session sendMessage threw",c),a=new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.CAST,shaka.util.Error.Code.CAST_CONNECTION_TIMED_OUT,c),b=new shaka.util.FakeEvent("error",(new Map).set("detail",a)),this.onRemoteEvent_("player",
|
|
1968
1974
|
b),this.forceDisconnect(),a;}};shaka.cast.CastSender.STATUS_DELAY=.02;shaka.cast.CastSender.hasReceivers_=!1;shaka.cast.CastSender.session_=null;shaka.cast.CastSender.__onGCastApiAvailable_=null;shaka.cast.CastSender.instances_=new Set;shaka.cast.CastSender.onSdkLoaded_=function(a){if(a){a=$jscomp.makeIterator(shaka.cast.CastSender.instances_);for(var b=a.next();!b.done;b=a.next())b.value.init()}};
|
|
1969
|
-
shaka.cast.CastSender.onGCastApiAvailable_=function(a){shaka.cast.CastSender.__onGCastApiAvailable_?window.__onGCastApiAvailable=shaka.cast.CastSender.__onGCastApiAvailable_:delete window.__onGCastApiAvailable;shaka.cast.CastSender.__onGCastApiAvailable_=null;shaka.cast.CastSender.onSdkLoaded_(a);"function"===typeof window.__onGCastApiAvailable&&window.__onGCastApiAvailable(a)};shaka.cast.CastProxy=function(a,b,c,d){d=void 0===d?!1:d;shaka.util.FakeEventTarget.call(this);var e=this;this.localVideo_=a;this.localPlayer_=b;this.eventManager_=this.playerEventTarget_=this.videoEventTarget_=this.playerProxy_=this.videoProxy_=null;this.receiverAppId_=c;this.androidReceiverCompatible_=d;this.compiledToExternNames_=new Map;this.sender_=new shaka.cast.CastSender(c,function(){return e.onCastStatusChanged_()},function(){return e.onFirstCastStateUpdate_()},
|
|
1970
|
-
g)},function(){return e.onResumeLocal_()},function(){return e.getInitState_()},d)
|
|
1975
|
+
shaka.cast.CastSender.onGCastApiAvailable_=function(a){shaka.cast.CastSender.__onGCastApiAvailable_?window.__onGCastApiAvailable=shaka.cast.CastSender.__onGCastApiAvailable_:delete window.__onGCastApiAvailable;shaka.cast.CastSender.__onGCastApiAvailable_=null;shaka.cast.CastSender.onSdkLoaded_(a);"function"===typeof window.__onGCastApiAvailable&&window.__onGCastApiAvailable(a)};shaka.cast.CastProxy=function(a,b,c,d){d=void 0===d?!1:d;shaka.util.FakeEventTarget.call(this);var e=this;this.localVideo_=a;this.localPlayer_=b;this.eventManager_=this.playerEventTarget_=this.videoEventTarget_=this.playerProxy_=this.videoProxy_=null;this.receiverAppId_=c;this.androidReceiverCompatible_=d;this.compiledToExternNames_=new Map;this.sender_=null;window.chrome?(this.sender_=new shaka.cast.CastSender(c,function(){return e.onCastStatusChanged_()},function(){return e.onFirstCastStateUpdate_()},
|
|
1976
|
+
function(f,g){return e.onRemoteEvent_(f,g)},function(){return e.onResumeLocal_()},function(){return e.getInitState_()},d),this.init_()):this.initWithoutSender_()};$jscomp.inherits(shaka.cast.CastProxy,shaka.util.FakeEventTarget);
|
|
1971
1977
|
shaka.cast.CastProxy.prototype.destroy=function(a){a&&this.sender_.forceDisconnect();this.eventManager_&&(this.eventManager_.release(),this.eventManager_=null);a=[];this.localPlayer_&&(a.push(this.localPlayer_.destroy()),this.localPlayer_=null);this.sender_&&(a.push(this.sender_.destroy()),this.sender_=null);this.playerProxy_=this.videoProxy_=this.localVideo_=null;shaka.util.FakeEventTarget.prototype.release.call(this);return Promise.all(a)};shaka.cast.CastProxy.prototype.getVideo=function(){return this.videoProxy_};
|
|
1972
|
-
shaka.cast.CastProxy.prototype.getPlayer=function(){return this.playerProxy_};shaka.cast.CastProxy.prototype.canCast=function(){return this.sender_.apiReady()&&this.sender_.hasReceivers()};shaka.cast.CastProxy.prototype.isCasting=function(){return this.sender_.isCasting()};shaka.cast.CastProxy.prototype.receiverName=function(){return this.sender_.receiverName()};
|
|
1973
|
-
shaka.cast.CastProxy.prototype.cast=function(){var a=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(b){return 1==b.nextAddress?b.yield(a.sender_.cast(),2):a.localPlayer_?b.yield(a.localPlayer_.unload(),0):b.return()})};shaka.cast.CastProxy.prototype.setAppData=function(a){this.sender_.setAppData(a)};shaka.cast.CastProxy.prototype.suggestDisconnect=function(){this.sender_
|
|
1974
|
-
shaka.cast.CastProxy.prototype.
|
|
1975
|
-
function(
|
|
1978
|
+
shaka.cast.CastProxy.prototype.getPlayer=function(){return this.playerProxy_};shaka.cast.CastProxy.prototype.canCast=function(){return this.sender_?this.sender_.apiReady()&&this.sender_.hasReceivers():!1};shaka.cast.CastProxy.prototype.isCasting=function(){return this.sender_?this.sender_.isCasting():!1};shaka.cast.CastProxy.prototype.receiverName=function(){return this.sender_?this.sender_.receiverName():""};
|
|
1979
|
+
shaka.cast.CastProxy.prototype.cast=function(){var a=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(b){return 1==b.nextAddress?a.sender_?b.yield(a.sender_.cast(),2):b.return():a.localPlayer_?b.yield(a.localPlayer_.unload(),0):b.return()})};shaka.cast.CastProxy.prototype.setAppData=function(a){this.sender_&&this.sender_.setAppData(a)};shaka.cast.CastProxy.prototype.suggestDisconnect=function(){this.sender_&&this.sender_.showDisconnectDialog()};
|
|
1980
|
+
shaka.cast.CastProxy.prototype.forceDisconnect=function(){this.sender_&&this.sender_.forceDisconnect()};
|
|
1981
|
+
shaka.cast.CastProxy.prototype.changeReceiverId=function(a,b){b=void 0===b?!1:b;var c=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(d){if(1==d.nextAddress){if(a==c.receiverAppId_&&b==c.androidReceiverCompatible_)return d.return();c.receiverAppId_=a;c.androidReceiverCompatible_=b;if(!c.sender_)return d.return();c.sender_.forceDisconnect();return d.yield(c.sender_.destroy(),2)}c.sender_=null;c.sender_=new shaka.cast.CastSender(a,function(){return c.onCastStatusChanged_()},function(){return c.onFirstCastStateUpdate_()},
|
|
1982
|
+
function(e,f){return c.onRemoteEvent_(e,f)},function(){return c.onResumeLocal_()},function(){return c.getInitState_()},b);c.sender_.init();d.jumpToEnd()})};shaka.cast.CastProxy.prototype.initWithoutSender_=function(){this.videoProxy_=this.localVideo_;this.playerProxy_=this.localPlayer_};
|
|
1976
1983
|
shaka.cast.CastProxy.prototype.init_=function(){var a=this;this.sender_.init();this.eventManager_=new shaka.util.EventManager;for(var b=$jscomp.makeIterator(shaka.cast.CastUtils.VideoEvents),c=b.next();!c.done;c=b.next())this.eventManager_.listen(this.localVideo_,c.value,function(f){return a.videoProxyLocalEvent_(f)});for(var d in shaka.util.FakeEvent.EventName)this.eventManager_.listen(this.localPlayer_,shaka.util.FakeEvent.EventName[d],function(f){return a.playerProxyLocalEvent_(f)});this.videoProxy_=
|
|
1977
1984
|
{};b={};for(var e in this.localVideo_)b={k$jscomp$12:b.k$jscomp$12},b.k$jscomp$12=e,Object.defineProperty(this.videoProxy_,b.k$jscomp$12,{configurable:!1,enumerable:!0,get:function(f){return function(){return a.videoProxyGet_(f.k$jscomp$12)}}(b),set:function(f){return function(g){a.videoProxySet_(f.k$jscomp$12,g)}}(b)});this.playerProxy_={};this.iterateOverPlayerMethods_(function(f,g){goog.asserts.assert(a.playerProxy_,"Must have player proxy!");Object.defineProperty(a.playerProxy_,f,{configurable:!1,
|
|
1978
1985
|
enumerable:!0,get:function(){return a.playerProxyGet_(f)}})});COMPILED&&this.mapCompiledToUncompiledPlayerMethodNames_();this.videoEventTarget_=new shaka.util.FakeEventTarget;this.videoEventTarget_.dispatchTarget=this.videoProxy_;this.playerEventTarget_=new shaka.util.FakeEventTarget;this.playerEventTarget_.dispatchTarget=this.playerProxy_};
|
|
@@ -2190,9 +2197,9 @@ shaka.dash.SegmentBase.createInitSegment=function(a,b,c){var d=shaka.util.TXml,e
|
|
|
2190
2197
|
f,d,null,null,c);c.codecs=a.representation.codecs;c.mimeType=a.representation.mimeType;return c};
|
|
2191
2198
|
shaka.dash.SegmentBase.createStreamInfo=function(a,b,c){goog.asserts.assert(a.representation.segmentBase,"Should only be called with SegmentBase");var d=shaka.dash.MpdUtils,e=shaka.dash.SegmentBase,f=shaka.util.TXml,g=Number(d.inheritAttribute(a,e.fromInheritance_,"presentationTimeOffset"))||0;d=d.inheritAttribute(a,e.fromInheritance_,"timescale");var h=1;d&&(h=f.parsePositiveInt(d)||1);var k=g/h||0,l=e.createInitSegment(a,e.fromInheritance_,c);e.checkSegmentIndexRangeSupport_(a,l);var m=shaka.util.ObjectUtils.shallowCloneObject(a);
|
|
2192
2199
|
return{generateSegmentIndex:function(){return e.generateSegmentIndex_(m,b,l,k)}}};
|
|
2193
|
-
shaka.dash.SegmentBase.generateSegmentIndexFromUris=function(a,b,c,d,e,f,g){var h,k,l,m,n,p,q,r,t,u,w,v,x,y,A,
|
|
2194
|
-
null;v=null;x=l-g;y=l;
|
|
2195
|
-
k&&q.fit(y,
|
|
2200
|
+
shaka.dash.SegmentBase.generateSegmentIndexFromUris=function(a,b,c,d,e,f,g){var h,k,l,m,n,p,q,r,t,u,w,v,x,y,B,A,z,C;return $jscomp.asyncExecutePromiseGeneratorProgram(function(D){if(1==D.nextAddress)return h=a.presentationTimeline,k=!a.dynamic||!a.periodInfo.isLastPeriod,l=a.periodInfo.start,m=a.periodInfo.duration,n=a.representation.mimeType.split("/")[1],p=b,q=null,r=[p(d,e,f,!1),"webm"==n?p(c.getUris(),c.startByte,c.endByte,!0):null],p=null,D.yield(Promise.all(r),2);t=D.yieldResult;u=t[0];w=t[1]||
|
|
2201
|
+
null;v=null;x=l-g;y=l;B=m?l+m:Infinity;"mp4"==n?v=shaka.media.Mp4SegmentIndexParser.parse(u,e,d,c,x,y,B):(goog.asserts.assert(w,"WebM requires init data"),v=shaka.media.WebmSegmentIndexParser.parse(u,w,d,c,x,y,B));A=$jscomp.makeIterator(v);for(z=A.next();!z.done;z=A.next())C=z.value,C.codecs=a.representation.codecs,C.mimeType=a.representation.mimeType,C.bandwidth=a.bandwidth;h.notifySegments(v);goog.asserts.assert(!q,"Should not call generateSegmentIndex twice");q=new shaka.media.SegmentIndex(v);
|
|
2202
|
+
k&&q.fit(y,B,!0);return D.return(q)})};shaka.dash.SegmentBase.fromInheritance_=function(a){return a.segmentBase};shaka.dash.SegmentBase.computeIndexRange_=function(a){var b=shaka.dash.MpdUtils,c=shaka.dash.SegmentBase,d=shaka.util.TXml,e=b.inheritChild(a,c.fromInheritance_,"RepresentationIndex");a=b.inheritAttribute(a,c.fromInheritance_,"indexRange");a=d.parseRange(a||"");e&&(a=d.parseAttr(e,"range",d.parseRange,a));return a};
|
|
2196
2203
|
shaka.dash.SegmentBase.computeIndexUris_=function(a){var b=shaka.util.ManifestParserUtils,c=shaka.util.StringUtils,d=shaka.dash.MpdUtils.inheritChild(a,shaka.dash.SegmentBase.fromInheritance_,"RepresentationIndex"),e=a.representation.getBaseUris();d&&(c=c.htmlUnescape(d.attributes.sourceURL))&&(e=b.resolveUris(e,[c],a.urlParams()));return e};
|
|
2197
2204
|
shaka.dash.SegmentBase.checkSegmentIndexRangeSupport_=function(a,b){var c=shaka.dash.SegmentBase;c.checkSegmentIndexSupport(a,b);if(!c.computeIndexRange_(a))throw shaka.log.error("SegmentBase does not contain sufficient segment information:","the SegmentBase does not contain @indexRange","or a RepresentationIndex element.",a.representation),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_NO_SEGMENT_INFO);};
|
|
2198
2205
|
shaka.dash.SegmentBase.checkSegmentIndexSupport=function(a,b){var c=shaka.util.ManifestParserUtils.ContentType,d=a.representation.contentType,e=a.representation.mimeType.split("/")[1];if(d!=c.TEXT&&"mp4"!=e&&"webm"!=e)throw shaka.log.error("SegmentBase specifies an unsupported container type.",a.representation),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_UNSUPPORTED_CONTAINER);if("webm"==e&&!b)throw shaka.log.error("SegmentBase does not contain sufficient segment information:",
|
|
@@ -2225,11 +2232,11 @@ shaka.dash.SegmentTemplate.checkSegmentTemplateInfo_=function(a,b){var c=b.index
|
|
|
2225
2232
|
"the SegmentTemplate's media URL template is missing.",a.representation),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_NO_SEGMENT_INFO);};
|
|
2226
2233
|
shaka.dash.SegmentTemplate.generateSegmentIndexFromIndexTemplate_=function(a,b,c,d){var e=shaka.dash.MpdUtils,f=shaka.util.ManifestParserUtils;goog.asserts.assert(d.indexTemplate,"must be using index template");e=e.fillUriTemplate(d.indexTemplate,a.representation.originalId,null,null,a.bandwidth||null,null);f=f.resolveUris(a.representation.getBaseUris(),[e]);return shaka.dash.SegmentBase.generateSegmentIndexFromUris(a,b,c,f,0,null,d.scaledPresentationTimeOffset)};
|
|
2227
2234
|
shaka.dash.SegmentTemplate.generateSegmentIndexFromDuration_=function(a,b,c,d,e,f,g,h){goog.asserts.assert(b.mediaTemplate,"There should be a media template with duration");var k=shaka.dash.MpdUtils,l=shaka.util.ManifestParserUtils,m=a.presentationTimeline,n=a.periodInfo.start,p=a.period.id,q=a.periodInfo.duration,r=function(){var L=null!=p&&e.get(p)||q;return L?n+L:Infinity},t=b.segmentDuration;goog.asserts.assert(null!=t,"Segment duration must not be null!");var u=b.startNumber,w=b.mediaTemplate,
|
|
2228
|
-
v=a.bandwidth||null,x=a.representation.id,y=a.representation.getBaseUris,
|
|
2229
|
-
n});L=[Math.ceil(L[0]/t),Math.ceil(L[1]/t)-1];a.representation.availabilityTimeOffset&&L[1]++;return L.map(function(
|
|
2230
|
-
M,"Generated a segment outside of the period!");var N=[],
|
|
2231
|
-
0==h?0<
|
|
2232
|
-
C=m.getSegmentAvailabilityEnd()<r();E=m.isLive();if(C||E){var
|
|
2235
|
+
v=a.bandwidth||null,x=a.representation.id,y=a.representation.getBaseUris,B=a.urlParams,A=n-b.scaledPresentationTimeOffset,z=function(){var L=[Math.max(m.getSegmentAvailabilityStart(),n),Math.min(m.getSegmentAvailabilityEnd(),r())];goog.asserts.assert(L.every(isFinite),"Available presentation times must be finite!");goog.asserts.assert(L.every(function(K){return 0<=K}),"Available presentation times must be positive!");goog.asserts.assert(null!=t,"Segment duration must not be null!");L=L.map(function(K){return K-
|
|
2236
|
+
n});L=[Math.ceil(L[0]/t),Math.ceil(L[1]/t)-1];a.representation.availabilityTimeOffset&&L[1]++;return L.map(function(K){return K+u})},C=z();c=a.dynamic?Math.max(C[0],C[1]-c+1):C[0];g=g||C[1];C=[];var D=function(L){goog.asserts.assert(null!=t,"Segment duration must not be null!");var K=L-u,F=K*t,M=b.unscaledSegmentDuration;goog.asserts.assert(null!=M,"Segment duration must not be null!");var J=K*M;"BigInt"in window&&J>Number.MAX_SAFE_INTEGER&&(J=BigInt(K)*BigInt(M));F+=n;K=F+t;M=Math.min(K,r());goog.asserts.assert(F<
|
|
2237
|
+
M,"Generated a segment outside of the period!");var N=[],P=b.numChunks;if(P)for(var O=(M-F)/P,W={},Q=0;Q<P;W={subNumber$jscomp$1:void 0},Q++){var S=F+O*Q,V=S+O;W.subNumber$jscomp$1=Q+1;W=function(R){return function(){var T=k.fillUriTemplate(w,x,L,R.subNumber$jscomp$1,v,J);return l.resolveUris(y(),[T],B())}}(W);S=new shaka.media.SegmentReference(S,V,W,0,null,d,A,n,r(),[],"",null,null,shaka.media.SegmentReference.Status.AVAILABLE,f);S.codecs=a.representation.codecs;S.mimeType=a.representation.mimeType;
|
|
2238
|
+
0==h?0<Q&&S.markAsNonIndependent():0!=Q%h&&S.markAsNonIndependent();N.push(S)}F=new shaka.media.SegmentReference(F,M,function(){if(P)return[];var R=k.fillUriTemplate(w,x,L,null,v,J);return l.resolveUris(y(),[R],B())},0,null,d,A,n,r(),N,"",null,null,shaka.media.SegmentReference.Status.AVAILABLE,f,0<N.length);F.codecs=a.representation.codecs;F.mimeType=a.representation.mimeType;F.bandwidth=a.bandwidth;F.trueEndTime=K;return F},E=c;for(;E<=g;++E){var H=D(E);C.push(H)}var I=new shaka.media.SegmentIndex(C);
|
|
2239
|
+
C=m.getSegmentAvailabilityEnd()<r();E=m.isLive();if(C||E){var G=Math.max(c,g+1);c=t;a.representation.availabilityTimeOffset&&(c=.1);I.updateEvery(c,function(){var L=m.getSegmentAvailabilityStart();I.evict(L);var K=$jscomp.makeIterator(z());K.next();K=K.next().value;for(var F=[];G<=K;){var M=D(G);F.push(M);G++}return L>r()&&!F.length?null:F})}return Promise.resolve(I)};
|
|
2233
2240
|
shaka.dash.SegmentTemplate.createInitSegment_=function(a,b){var c=shaka.dash.MpdUtils,d=shaka.util.ManifestParserUtils,e=shaka.dash.SegmentTemplate,f=a.representation.initialization;f||(f=c.inheritAttribute(a,e.fromInheritance_,"initialization"));if(!f)return null;f=shaka.util.StringUtils.htmlUnescape(f);var g=a.representation.originalId,h=a.bandwidth||null,k=a.representation.getBaseUris,l=a.urlParams;e=shaka.dash.SegmentBase.createQualityInfo(a);b=new shaka.media.InitSegmentReference(function(){goog.asserts.assert(f,
|
|
2234
2241
|
"Should have returned earlier");var m=c.fillUriTemplate(f,g,null,null,h,null);return d.resolveUris(k(),[m],l())},0,null,e,null,null,b);b.codecs=a.representation.codecs;b.mimeType=a.representation.mimeType;return b};
|
|
2235
2242
|
shaka.dash.TimelineSegmentIndex=function(a,b,c,d,e,f,g,h,k,l){shaka.media.SegmentIndex.call(this,[]);this.templateInfo_=a;this.representationId_=b;this.bandwidth_=c;this.getBaseUris_=d;this.urlParams_=e;this.periodStart_=f;this.periodEnd_=g;this.initSegmentReference_=h;this.aesKey_=k;this.segmentSequenceCadence_=l;this.fitTimeline()};$jscomp.inherits(shaka.dash.TimelineSegmentIndex,shaka.media.SegmentIndex);
|
|
@@ -2262,19 +2269,19 @@ shaka.util.PeriodCombiner.prototype.deleteStream=function(a,b){if(a){var c=shaka
|
|
|
2262
2269
|
d.trickModeVideo.matchedStreams.filter(function(e){return e!==a}));else if(a.type==c.TEXT)for(c=$jscomp.makeIterator(this.textStreams_),d=c.next();!d.done;d=c.next())d=d.value,d.matchedStreams=d.matchedStreams.filter(function(e){return e!==a});else if(a.type==c.IMAGE)for(c=$jscomp.makeIterator(this.imageStreams_),d=c.next();!d.done;d=c.next())d=d.value,d.matchedStreams=d.matchedStreams.filter(function(e){return e!==a});a.segmentIndex&&a.closeSegmentIndex();this.usedPeriodIds_.delete(b)}};
|
|
2263
2270
|
shaka.util.PeriodCombiner.prototype.getStreamsPerPeriod_=function(a,b){var c=shaka.util.ManifestParserUtils.ContentType,d=shaka.util.PeriodCombiner,e=[],f=[],g=[],h=[];a=$jscomp.makeIterator(a);for(var k=a.next();!k.done;k=a.next()){var l=k.value;k=new Map(l.audioStreams.map(function(q){return[d.generateAudioKey_(q),q]}));var m=new Map(l.videoStreams.map(function(q){return[d.generateVideoKey_(q),q]})),n=new Map(l.textStreams.map(function(q){return[d.generateTextKey_(q),q]}));l=new Map(l.imageStreams.map(function(q){return[d.generateImageKey_(q),
|
|
2264
2271
|
q]}));if(b){var p=d.dummyStream_(c.TEXT);n.set(d.generateTextKey_(p),p);p=d.dummyStream_(c.IMAGE);l.set(d.generateImageKey_(p),p)}e.push(k);f.push(m);g.push(n);h.push(l)}return{audioStreamsPerPeriod:e,videoStreamsPerPeriod:f,textStreamsPerPeriod:g,imageStreamsPerPeriod:h}};
|
|
2265
|
-
shaka.util.PeriodCombiner.prototype.combinePeriods=function(a,b,c){c=void 0===c?!1:c;var d=this,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,A,
|
|
2266
|
-
Array.from(h[0].values()),d.textStreams_=Array.from(k[0].values()),d.imageStreams_=Array.from(l[0].values()),
|
|
2272
|
+
shaka.util.PeriodCombiner.prototype.combinePeriods=function(a,b,c){c=void 0===c?!1:c;var d=this,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,B,A,z,C,D,E,H,I,G,L,K,F,M;return $jscomp.asyncExecutePromiseGeneratorProgram(function(J){if(1==J.nextAddress){e=shaka.util.ManifestParserUtils.ContentType;if(!b&&1==a.length)return f=d.getStreamsPerPeriod_(a,!1),g=f.audioStreamsPerPeriod,h=f.videoStreamsPerPeriod,k=f.textStreamsPerPeriod,l=f.imageStreamsPerPeriod,d.audioStreams_=Array.from(g[0].values()),d.videoStreams_=
|
|
2273
|
+
Array.from(h[0].values()),d.textStreams_=Array.from(k[0].values()),d.imageStreams_=Array.from(l[0].values()),J.jumpTo(2);m=c?d.usedPeriodIds_.size:0;n=-1;for(p=0;p<a.length;p++)q=a[p],d.usedPeriodIds_.has(q.id)||(d.usedPeriodIds_.add(q.id),-1==n&&(n=p));if(-1==n)return J.return();r=d.getStreamsPerPeriod_(a,!0);t=r.audioStreamsPerPeriod;u=r.videoStreamsPerPeriod;w=r.textStreamsPerPeriod;v=r.imageStreamsPerPeriod;return J.yield(Promise.all([d.combine_(d.audioStreams_,t,n,shaka.util.PeriodCombiner.cloneStream_,
|
|
2267
2274
|
shaka.util.PeriodCombiner.concatenateStreams_,m),d.combine_(d.videoStreams_,u,n,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_,m),d.combine_(d.textStreams_,w,n,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_,m),d.combine_(d.imageStreams_,v,n,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_,m)]),2)}x=0;y=[];if(d.videoStreams_.length&&d.audioStreams_.length)for(E=$jscomp.makeIterator(d.audioStreams_),
|
|
2268
|
-
|
|
2269
|
-
decodingInfos:[]}));else for(
|
|
2270
|
-
shaka.util.PeriodCombiner.combineDbStreams=function(a){var b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,A,
|
|
2271
|
-
b.VIDEO}).map(function(
|
|
2275
|
+
H=E.next();!H.done;H=E.next())for(I=H.value,G=$jscomp.makeIterator(d.videoStreams_),L=G.next();!L.done;L=G.next())K=L.value,F=shaka.drm.DrmUtils.getCommonDrmInfos(I.drmInfos,K.drmInfos),I.drmInfos.length&&K.drmInfos.length&&!F.length?shaka.log.warning("Incompatible DRM in audio & video, skipping variant creation.",I,K):(M=x++,y.push({id:M,language:I.language,disabledUntilTime:0,primary:I.primary,audio:I,video:K,bandwidth:(I.bandwidth||0)+(K.bandwidth||0),drmInfos:F,allowedByApplication:!0,allowedByKeySystem:!0,
|
|
2276
|
+
decodingInfos:[]}));else for(B=d.videoStreams_.length?d.videoStreams_:d.audioStreams_,A=$jscomp.makeIterator(B),z=A.next();!z.done;z=A.next())C=z.value,D=x++,y.push({id:D,language:C.language,disabledUntilTime:0,primary:C.primary,audio:C.type==e.AUDIO?C:null,video:C.type==e.VIDEO?C:null,bandwidth:C.bandwidth||0,drmInfos:C.drmInfos,allowedByApplication:!0,allowedByKeySystem:!0,decodingInfos:[]});d.variants_=y;J.jumpToEnd()})};
|
|
2277
|
+
shaka.util.PeriodCombiner.combineDbStreams=function(a){var b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,B,A,z,C,D,E,H,I,G,L,K;return $jscomp.asyncExecutePromiseGeneratorProgram(function(F){switch(F.nextAddress){case 1:b=shaka.util.ManifestParserUtils.ContentType;c=shaka.util.PeriodCombiner;if(1==a.length)return F.return(a[0]);d=a.map(function(M){return new Map(M.filter(function(J){return J.type===b.AUDIO}).map(function(J){return[c.generateAudioKey_(J),J]}))});e=a.map(function(M){return new Map(M.filter(function(J){return J.type===
|
|
2278
|
+
b.VIDEO}).map(function(J){return[c.generateVideoKey_(J),J]}))});f=a.map(function(M){return new Map(M.filter(function(J){return J.type===b.TEXT}).map(function(J){return[c.generateTextKey_(J),J]}))});g=a.map(function(M){return new Map(M.filter(function(J){return J.type===b.IMAGE}).map(function(J){return[c.generateImageKey_(J),J]}))});h=$jscomp.makeIterator(f);for(k=h.next();!k.done;k=h.next())l=k.value,m=c.dummyStreamDB_(b.TEXT),l.set(c.generateTextKey_(m),m);n=$jscomp.makeIterator(g);for(p=n.next();!p.done;p=
|
|
2272
2279
|
n.next())q=p.value,r=c.dummyStreamDB_(b.IMAGE),q.set(c.generateImageKey_(r),r);t=new shaka.util.PeriodCombiner;return F.yield(t.combine_([],d,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_,0),2);case 2:return u=F.yieldResult,F.yield(t.combine_([],e,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_,0),3);case 3:return w=F.yieldResult,F.yield(t.combine_([],f,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_,
|
|
2273
|
-
0),4);case 4:return v=F.yieldResult,F.yield(t.combine_([],g,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_,0),5);case 5:x=F.yieldResult;y=0;if(w.length&&u.length)for(D=$jscomp.makeIterator(u),E=D.next();!E.done;E=D.next())for(
|
|
2280
|
+
0),4);case 4:return v=F.yieldResult,F.yield(t.combine_([],g,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_,0),5);case 5:x=F.yieldResult;y=0;if(w.length&&u.length)for(D=$jscomp.makeIterator(u),E=D.next();!E.done;E=D.next())for(H=E.value,I=$jscomp.makeIterator(w),G=I.next();!G.done;G=I.next())L=G.value,K=y++,L.variantIds.push(K),H.variantIds.push(K);else for(B=w.concat(u),A=$jscomp.makeIterator(B),z=A.next();!z.done;z=A.next())C=z.value,C.variantIds=[y++];
|
|
2274
2281
|
return F.return(w.concat(u).concat(v).concat(x))}})};
|
|
2275
|
-
shaka.util.PeriodCombiner.prototype.combine_=function(a,b,c,d,e,f){var g=this,h,k,l,m,n,p,q,r,t,u,w,v,x,y,A,
|
|
2276
|
-
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.PERIOD_FLATTENING_FAILED);m=l.next();
|
|
2277
|
-
!shaka.util.PeriodCombiner.isDummy_(D.stream$jscomp$93)&&(E=a.some(function(
|
|
2282
|
+
shaka.util.PeriodCombiner.prototype.combine_=function(a,b,c,d,e,f){var g=this,h,k,l,m,n,p,q,r,t,u,w,v,x,y,B,A,z,C,D,E;return $jscomp.asyncExecutePromiseGeneratorProgram(function(H){switch(H.nextAddress){case 1:h=[];for(k=0;k<b.length;k++)k>=c?h.push(new Set(b[k].values())):h.push(new Set);l=$jscomp.makeIterator(a);m=l.next();case 2:if(m.done){H.jumpTo(4);break}n=m.value;return H.yield(g.extendExistingOutputStream_(n,b,c,e,h,f),5);case 5:p=H.yieldResult;if(!p)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
2283
|
+
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.PERIOD_FLATTENING_FAILED);m=l.next();H.jumpTo(2);break;case 4:q=$jscomp.makeIterator(h);for(r=q.next();!r.done;r=q.next())for(t=r.value,u=$jscomp.makeIterator(t),w=u.next();!w.done;w=u.next())v=w.value,(x=g.createNewOutputStream_(v,b,d,e,h))&&a.push(x);y=$jscomp.makeIterator(h);for(B=y.next();!B.done;B=y.next())for(A=B.value,z=$jscomp.makeIterator(A),C=z.next(),D={};!C.done;D={stream$jscomp$93:void 0},C=z.next())if(D.stream$jscomp$93=C.value,
|
|
2284
|
+
!shaka.util.PeriodCombiner.isDummy_(D.stream$jscomp$93)&&(E=a.some(function(I){return function(G){return g.areAVStreamsCompatible_(I.stream$jscomp$93,G)}}(D))))throw shaka.log.error("Unused stream in period-flattening!",D.stream$jscomp$93,a),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.PERIOD_FLATTENING_FAILED);return H.return(a)}})};
|
|
2278
2285
|
shaka.util.PeriodCombiner.prototype.extendExistingOutputStream_=function(a,b,c,d,e,f){var g=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(h){if(1==h.nextAddress)return g.findMatchesInAllPeriods_(b,a,0<f),goog.asserts.assert(a.createSegmentIndex,"outputStream should be a Stream type!"),a.matchedStreams?a.segmentIndex?h.yield(shaka.util.PeriodCombiner.extendOutputSegmentIndex_(a,c+f),2):h.jumpTo(2):(shaka.log.error("No matches extending output stream!",a,b),h.return(!1));shaka.util.PeriodCombiner.extendOutputStream_(a,
|
|
2279
2286
|
c,d,e,f);return h.return(!0)})};
|
|
2280
2287
|
shaka.util.PeriodCombiner.extendOutputSegmentIndex_=function(a,b){var c,d,e,f,g,h;return $jscomp.asyncExecutePromiseGeneratorProgram(function(k){if(1==k.nextAddress){c=[];d=a.matchedStreams;goog.asserts.assert(d,"matched streams should be valid");for(e=b;e<d.length;e++)f=d[e],c.push(f.createSegmentIndex()),f.trickModeVideo&&!f.trickModeVideo.segmentIndex&&c.push(f.trickModeVideo.createSegmentIndex());return k.yield(Promise.all(c),2)}if(a.segmentIndex instanceof shaka.media.MetaSegmentIndex)for(g=b;g<
|
|
@@ -2334,24 +2341,24 @@ p);return q.return(p)})};
|
|
|
2334
2341
|
shaka.dash.DashParser.prototype.parseManifest_=function(a,b,c){var d=this,e,f,g,h,k,l,m,n,p,q,r;return $jscomp.asyncExecutePromiseGeneratorProgram(function(t){if(1==t.nextAddress){e=a;f=d.config_.dash.manifestPreprocessor;g=shaka.util.PlayerConfiguration.defaultManifestPreprocessor;if(f!=g){shaka.Deprecate.deprecateFeature(5,"manifest.dash.manifestPreprocessor configuration","Please Use manifest.dash.manifestPreprocessorTXml instead.");h=shaka.util.XmlUtils.parseXml(e,c);if(!h)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
2335
2342
|
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_INVALID_XML,b);f(h);e=shaka.util.XmlUtils.toArrayBuffer(h)}k=shaka.util.TXml.parseXml(e,c);if(!k)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_INVALID_XML,b);l=d.config_.dash.manifestPreprocessorTXml;m=shaka.util.PlayerConfiguration.defaultManifestPreprocessorTXml;l!=m&&l(k);if("Patch"===c)return t.return(d.processPatchManifest_(k));if(n=d.config_.dash.disableXlinkProcessing)return t.return(d.processManifest_(k,
|
|
2336
2343
|
b));p=d.config_.dash.xlinkFailGracefully;q=shaka.dash.MpdUtils.processXlinks(k,d.config_.retryParameters,p,b,d.playerInterface_.networkingEngine);d.operationManager_.manage(q);return t.yield(q.promise,2)}r=t.yieldResult;return t.return(d.processManifest_(r,b))})};
|
|
2337
|
-
shaka.dash.DashParser.prototype.processManifest_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,A,
|
|
2344
|
+
shaka.dash.DashParser.prototype.processManifest_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,B,A,z,C,D,E,H,I,G,L,K,F,M,J,N,P,O,W,Q,S,V,R,T,X,Y,U,ba,aa,Z,ca,ea,fa,ia,ha,ja,ka,la,ma;return $jscomp.asyncExecutePromiseGeneratorProgram(function(da){switch(da.nextAddress){case 1:d=shaka.util.TXml;goog.asserts.assert(c.config_,"Must call configure() before processManifest_()!");c.contentSteeringManager_&&c.contentSteeringManager_.clearPreviousLocations();e=[b];f=[];g=new Map;h=d.findChildren(a,
|
|
2338
2345
|
"Location");k=$jscomp.makeIterator(h);for(l=k.next();!l.done;l=k.next())if(m=l.value,n=m.attributes.serviceLocation,p=d.getContents(m))q=shaka.util.ManifestParserUtils.resolveUris(e,[p])[0],n&&(c.contentSteeringManager_?c.contentSteeringManager_.addLocation("Location",n,q):g.set(n,q)),f.push(q);c.contentSteeringManager_?(r=c.contentSteeringManager_.getLocations("Location",!0),0<r.length&&(e=c.manifestUris_=r)):f.length&&(e=c.manifestUris_=f);c.manifestPatchContext_.mpdId=a.attributes.id||"";c.manifestPatchContext_.publishTime=
|
|
2339
2346
|
d.parseAttr(a,"publishTime",d.parseDate)||0;c.patchLocationNodes_=d.findChildren(a,"PatchLocation");t=Promise.resolve();if((u=d.findChild(a,"ContentSteering"))&&c.playerInterface_){w=u.attributes.defaultServiceLocation;if(c.contentSteeringManager_)c.contentSteeringManager_.setBaseUris(e),c.contentSteeringManager_.setDefaultPathwayId(w);else if(c.contentSteeringManager_=new shaka.util.ContentSteeringManager(c.playerInterface_),c.contentSteeringManager_.configure(c.config_),c.contentSteeringManager_.setManifestType(shaka.media.ManifestParser.DASH),
|
|
2340
|
-
c.contentSteeringManager_.setBaseUris(e),c.contentSteeringManager_.setDefaultPathwayId(w),v=d.getContents(u))(x=d.parseAttr(u,"queryBeforeStart",d.parseBoolean,!1))?t=c.contentSteeringManager_.requestInfo(v):c.contentSteeringManager_.requestInfo(v);y=$jscomp.makeIterator(g.keys());for(
|
|
2341
|
-
E.next())
|
|
2342
|
-
(M=d.parseAttr(C[0],"availabilityTimeOffset",d.parseFloat)||0);c.manifestPatchContext_.availabilityTimeOffset=M;c.updatePeriod_=d.parseAttr(a,"minimumUpdatePeriod",d.parseDuration,-1);
|
|
2343
|
-
d.parseDuration));
|
|
2344
|
-
d.parseDuration)||0),
|
|
2345
|
-
ea={dynamic:"static"!=
|
|
2346
|
-
|
|
2347
|
-
textStreams:c.periodCombiner_.getTextStreams(),imageStreams:c.periodCombiner_.getImageStreams(),offlineSessionIds:[],sequenceMode:c.config_.dash.sequenceMode,ignoreManifestTimestampsInSegmentsMode:!1,type:shaka.media.ManifestParser.DASH,serviceDescription:c.parseServiceDescription_(a),nextUrl:c.parseMpdChaining_(a),periodCount:ha.length,gapCount:c.gapCount_,isLowLatency:c.isLowLatency_,startTime:null};if(!
|
|
2348
|
-
return da.yield(c.parseUtcTiming_(F,la),8);case 8:ma=da.yieldResult;if(!c.playerInterface_)return da.return();
|
|
2347
|
+
c.contentSteeringManager_.setBaseUris(e),c.contentSteeringManager_.setDefaultPathwayId(w),v=d.getContents(u))(x=d.parseAttr(u,"queryBeforeStart",d.parseBoolean,!1))?t=c.contentSteeringManager_.requestInfo(v):c.contentSteeringManager_.requestInfo(v);y=$jscomp.makeIterator(g.keys());for(B=y.next();!B.done;B=y.next())A=B.value,z=g.get(A),c.contentSteeringManager_.addLocation("Location",A,z)}C=d.findChildren(a,"BaseURL");D=!1;if(c.contentSteeringManager_)for(E=$jscomp.makeIterator(C),H=E.next();!H.done;H=
|
|
2348
|
+
E.next())I=H.value,G=I.attributes.serviceLocation,L=d.getContents(I),G&&L&&(c.contentSteeringManager_.addLocation("BaseURL",G,L),D=!0);c.lastCalculatedBaseUris_=null;D&&c.contentSteeringManager_||(K=C.map(d.getContents),c.lastCalculatedBaseUris_=shaka.util.ManifestParserUtils.resolveUris(e,K));F=function(){return c.contentSteeringManager_&&D?c.contentSteeringManager_.getLocations("BaseURL"):c.lastCalculatedBaseUris_?c.lastCalculatedBaseUris_:[]};c.manifestPatchContext_.getBaseUris=F;M=0;C&&C.length&&
|
|
2349
|
+
(M=d.parseAttr(C[0],"availabilityTimeOffset",d.parseFloat)||0);c.manifestPatchContext_.availabilityTimeOffset=M;c.updatePeriod_=d.parseAttr(a,"minimumUpdatePeriod",d.parseDuration,-1);J=d.parseAttr(a,"availabilityStartTime",d.parseDate);N=d.parseAttr(a,"timeShiftBufferDepth",d.parseDuration);P=c.config_.dash.ignoreSuggestedPresentationDelay;O=null;P||(O=d.parseAttr(a,"suggestedPresentationDelay",d.parseDuration));W=c.config_.dash.ignoreMaxSegmentDuration;Q=null;W||(Q=d.parseAttr(a,"maxSegmentDuration",
|
|
2350
|
+
d.parseDuration));S=a.attributes.type||"static";c.manifest_&&c.manifest_.presentationTimeline&&(c.isTransitionFromDynamicToStatic_=c.manifest_.presentationTimeline.isLive()&&"static"==S);c.manifestPatchContext_.type=S;if(c.manifest_)for(V=c.manifest_.presentationTimeline,R=V.getSegmentAvailabilityStart(),T=$jscomp.makeIterator(c.streamMap_.values()),X=T.next();!X.done;X=T.next())Y=X.value,Y.segmentIndex&&Y.segmentIndex.evict(R);else U=c.config_.dash.ignoreMinBufferTime,ba=0,U||(ba=d.parseAttr(a,"minBufferTime",
|
|
2351
|
+
d.parseDuration)||0),aa=0,aa=null!=O?Math.min(O,N||Infinity):0<c.config_.defaultPresentationDelay?c.config_.defaultPresentationDelay:Math.min(1.5*ba,N||Infinity),V=new shaka.media.PresentationTimeline(J,aa,c.config_.dash.autoCorrectDrift);V.setStatic("static"==S);(Z=V.isLive())&&!isNaN(c.config_.availabilityWindowOverride)&&(N=c.config_.availabilityWindowOverride);null==N&&(N=Infinity);V.setSegmentAvailabilityDuration(N);ca=a.attributes.profiles||"";c.manifestPatchContext_.profiles=ca.split(",");
|
|
2352
|
+
ea={dynamic:"static"!=S,presentationTimeline:V,period:null,periodInfo:null,adaptationSet:null,representation:null,bandwidth:0,indexRangeWarningGiven:!1,availabilityTimeOffset:M,mediaPresentationDuration:null,profiles:ca.split(","),roles:null,urlParams:function(){return""}};c.gapCount_=0;fa=c.parsePeriods_(ea,F,a,!1);ia=fa.duration;ha=fa.periods;("static"!=S||c.isTransitionFromDynamicToStatic_)&&fa.durationDerivedFromPeriods||V.setDuration(ia||Infinity);c.isLowLatency_&&c.lowLatencyMode_&&V.setAvailabilityTimeOffset(c.minTotalAvailabilityTimeOffset_);
|
|
2353
|
+
V.notifyMaxSegmentDuration(Q||1);goog.DEBUG&&!c.isTransitionFromDynamicToStatic_&&V.assertIsValid();return da.yield(t,2);case 2:c.isLowLatency_&&c.lowLatencyMode_&&(ja=null!=O?O:c.config_.defaultPresentationDelay,V.setDelay(ja));if(!c.manifest_)return da.yield(c.periodCombiner_.combinePeriods(ha,ea.dynamic),6);c.manifest_.periodCount=ha.length;c.manifest_.gapCount=c.gapCount_;return da.yield(c.postPeriodProcessing_(ha,!1),4);case 6:c.manifest_={presentationTimeline:V,variants:c.periodCombiner_.getVariants(),
|
|
2354
|
+
textStreams:c.periodCombiner_.getTextStreams(),imageStreams:c.periodCombiner_.getImageStreams(),offlineSessionIds:[],sequenceMode:c.config_.dash.sequenceMode,ignoreManifestTimestampsInSegmentsMode:!1,type:shaka.media.ManifestParser.DASH,serviceDescription:c.parseServiceDescription_(a),nextUrl:c.parseMpdChaining_(a),periodCount:ha.length,gapCount:c.gapCount_,isLowLatency:c.isLowLatency_,startTime:null};if(!V.usingPresentationStartTime()){da.jumpTo(7);break}ka=shaka.util.TXml;la=ka.findChildren(a,"UTCTiming");
|
|
2355
|
+
return da.yield(c.parseUtcTiming_(F,la),8);case 8:ma=da.yieldResult;if(!c.playerInterface_)return da.return();V.setClockOffset(ma);case 7:V.lockStartTime();case 4:c.playerInterface_.makeTextStreamsForClosedCaptions(c.manifest_),c.cleanStreamMap_(),da.jumpToEnd()}})};
|
|
2349
2356
|
shaka.dash.DashParser.prototype.postPeriodProcessing_=function(a,b){var c=this,d;return $jscomp.asyncExecutePromiseGeneratorProgram(function(e){if(1==e.nextAddress)return e.yield(c.periodCombiner_.combinePeriods(a,!0,b),2);c.manifest_.variants=c.periodCombiner_.getVariants();d=c.periodCombiner_.getTextStreams();0<d.length&&(c.manifest_.textStreams=d);c.manifest_.imageStreams=c.periodCombiner_.getImageStreams();c.playerInterface_.filter(c.manifest_);e.jumpToEnd()})};
|
|
2350
|
-
shaka.dash.DashParser.prototype.processPatchManifest_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,A,
|
|
2357
|
+
shaka.dash.DashParser.prototype.processPatchManifest_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,B,A,z,C,D,E,H,I,G,L;return $jscomp.asyncExecutePromiseGeneratorProgram(function(K){if(1==K.nextAddress){c=shaka.util.TXml;d=a.attributes.mpdId;e=c.parseAttr(a,"originalPublishTime",c.parseDate);if(!d||d!==b.manifestPatchContext_.mpdId||e!==b.manifestPatchContext_.publishTime)throw b.patchLocationNodes_=[],new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.MANIFEST,
|
|
2351
2358
|
shaka.util.Error.Code.DASH_INVALID_PATCH);f=[];g=[];h=new Set;k=$jscomp.makeIterator(c.getChildNodes(a));for(l=k.next();!l.done;l=k.next()){m=l.value;n=!0;p=c.parseXpath(m.attributes.sel||"");q=p[p.length-1];r=c.getContents(m)||"";if("MPD"===q.name)"mediaPresentationDuration"===q.attribute?(t=c.getContents(m)||"",b.parsePatchMediaPresentationDurationChange_(t)):"type"===q.attribute?b.parsePatchMpdTypeChange_(r):"publishTime"===q.attribute?b.manifestPatchContext_.publishTime=c.parseDate(r)||0:null===
|
|
2352
|
-
q.attribute&&"add"===m.tagName?g.push(m):n=!1;else if("PatchLocation"===q.name)b.updatePatchLocationNodes_(m);else if("Period"===q.name)"add"===m.tagName?g.push(m):"remove"===m.tagName&&q.id&&b.removePatchPeriod_(q.id);else if("SegmentTemplate"===q.name)for(u=b.modifySegmentTemplate_(m),w=$jscomp.makeIterator(u),v=w.next();!v.done;v=w.next())x=v.value,h.add(x);else if("SegmentTimeline"===q.name||"S"===q.name)for(y=b.modifyTimepoints_(m),
|
|
2353
|
-
h.add(z);else n=!1;n||shaka.log.warning("Unhandled "+m.tagName+" operation",m.attributes.sel)}C=$jscomp.makeIterator(h);for(D=C.next();!D.done;D=C.next())E=D.value,b.parsePatchSegment_(E);
|
|
2354
|
-
(L=b.manifestPatchContext_.mediaPresentationDuration,b.manifest_.presentationTimeline.setDuration(L||Infinity));
|
|
2359
|
+
q.attribute&&"add"===m.tagName?g.push(m):n=!1;else if("PatchLocation"===q.name)b.updatePatchLocationNodes_(m);else if("Period"===q.name)"add"===m.tagName?g.push(m):"remove"===m.tagName&&q.id&&b.removePatchPeriod_(q.id);else if("SegmentTemplate"===q.name)for(u=b.modifySegmentTemplate_(m),w=$jscomp.makeIterator(u),v=w.next();!v.done;v=w.next())x=v.value,h.add(x);else if("SegmentTimeline"===q.name||"S"===q.name)for(y=b.modifyTimepoints_(m),B=$jscomp.makeIterator(y),A=B.next();!A.done;A=B.next())z=A.value,
|
|
2360
|
+
h.add(z);else n=!1;n||shaka.log.warning("Unhandled "+m.tagName+" operation",m.attributes.sel)}C=$jscomp.makeIterator(h);for(D=C.next();!D.done;D=C.next())E=D.value,b.parsePatchSegment_(E);H=$jscomp.makeIterator(g);for(I=H.next();!I.done;I=H.next())G=I.value,f.push.apply(f,$jscomp.arrayFromIterable(b.parsePatchPeriod_(G)));if(!f.length)return K.jumpTo(2);b.manifest_.periodCount+=f.length;b.manifest_.gapCount=b.gapCount_;return K.yield(b.postPeriodProcessing_(f,!0),2)}"static"==b.manifestPatchContext_.type&&
|
|
2361
|
+
(L=b.manifestPatchContext_.mediaPresentationDuration,b.manifest_.presentationTimeline.setDuration(L||Infinity));K.jumpToEnd()})};shaka.dash.DashParser.prototype.parsePatchMpdTypeChange_=function(a){this.manifest_.presentationTimeline.setStatic("static"==a);this.manifestPatchContext_.type=a;for(var b=$jscomp.makeIterator(this.contextCache_.values()),c=b.next();!c.done;c=b.next())c.value.dynamic="dynamic"==a;"static"==a&&(this.updatePeriod_=-1)};
|
|
2355
2362
|
shaka.dash.DashParser.prototype.parsePatchMediaPresentationDurationChange_=function(a){a=shaka.util.TXml.parseDuration(a);if(null!=a){this.manifestPatchContext_.mediaPresentationDuration=a;for(var b=$jscomp.makeIterator(this.contextCache_.values()),c=b.next();!c.done;c=b.next())c.value.mediaPresentationDuration=a}};
|
|
2356
2363
|
shaka.dash.DashParser.prototype.parsePatchPeriod_=function(a){goog.asserts.assert(this.manifestPatchContext_.getBaseUris,"Must provide getBaseUris on manifestPatchContext_");return this.parsePeriods_({dynamic:"dynamic"==this.manifestPatchContext_.type,presentationTimeline:this.manifest_.presentationTimeline,period:null,periodInfo:null,adaptationSet:null,representation:null,bandwidth:0,indexRangeWarningGiven:!1,availabilityTimeOffset:this.manifestPatchContext_.availabilityTimeOffset,profiles:this.manifestPatchContext_.profiles,
|
|
2357
2364
|
mediaPresentationDuration:this.manifestPatchContext_.mediaPresentationDuration,roles:null,urlParams:function(){return""}},this.manifestPatchContext_.getBaseUris,a,!0).periods};
|
|
@@ -2377,29 +2384,29 @@ n,m)}).filter(e.isNotNull);if(a.dynamic){c=[];f=$jscomp.makeIterator(e);for(b=f.
|
|
|
2377
2384
|
$jscomp.makeIterator(e),f=e.next();!f.done;f=e.next())for(f=f.value,b=f.trickModeFor.split(" "),h=$jscomp.makeIterator(c),k=h.next();!k.done;k=h.next())if(k=k.value,b.includes(k.id)){k=$jscomp.makeIterator(k.streams);for(var l=k.next();!l.done;l=k.next())shaka.util.StreamUtils.setBetterIFrameStream(l.value,f.streams)}e=this.getStreamsFromSets_(this.config_.disableAudio,c,g.AUDIO);f=this.getStreamsFromSets_(this.config_.disableVideo,c,g.VIDEO);b=this.getStreamsFromSets_(this.config_.disableText,c,
|
|
2378
2385
|
g.TEXT);g=this.getStreamsFromSets_(this.config_.disableThumbnails,c,g.IMAGE);if(0===f.length&&0===e.length)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_EMPTY_PERIOD);return{id:a.period.id,audioStreams:e,videoStreams:f,textStreams:b,imageStreams:g}};
|
|
2379
2386
|
shaka.dash.DashParser.prototype.getStreamsFromSets_=function(a,b,c){return a||!b.length?[]:b.reduce(function(d,e){if(e.contentType!=c)return d;d.push.apply(d,$jscomp.arrayFromIterable(e.streams));return d},[])};
|
|
2380
|
-
shaka.dash.DashParser.prototype.parseAdaptationSet_=function(a,b,c){var d=this,e=shaka.util.TXml,f=shaka.util.Functional,g=shaka.util.ManifestParserUtils,h=g.ContentType,k=shaka.dash.ContentProtection;a.adaptationSet=this.createFrame_(c,a.period,null);a.adaptationSet.position=b;var l=!1,m=e.findChildren(c,"Role"),n=m.map(function(
|
|
2381
|
-
f.next()){m=m.value;var q=m.attributes.schemeIdUri;if(null==q||"urn:mpeg:dash:role:2011"==q)switch(m=m.attributes.value,m){case "main":l=!0;break;case "caption":case "subtitle":p=m}}m=function(
|
|
2382
|
-
(
|
|
2383
|
-
y)var
|
|
2384
|
-
x?z=parseInt(t.attributes.value,10)-1:"urn:mpeg:mpegB:cicp:TransferCharacteristics"==x?
|
|
2387
|
+
shaka.dash.DashParser.prototype.parseAdaptationSet_=function(a,b,c){var d=this,e=shaka.util.TXml,f=shaka.util.Functional,g=shaka.util.ManifestParserUtils,h=g.ContentType,k=shaka.dash.ContentProtection;a.adaptationSet=this.createFrame_(c,a.period,null);a.adaptationSet.position=b;var l=!1,m=e.findChildren(c,"Role"),n=m.map(function(G){return G.attributes.value}).filter(f.isNotNull),p=void 0;if(b=a.adaptationSet.contentType==h.TEXT)p=g.TextStreamKind.SUBTITLE;f=$jscomp.makeIterator(m);for(m=f.next();!m.done;m=
|
|
2388
|
+
f.next()){m=m.value;var q=m.attributes.schemeIdUri;if(null==q||"urn:mpeg:dash:role:2011"==q)switch(m=m.attributes.value,m){case "main":l=!0;break;case "caption":case "subtitle":p=m}}m=function(G){switch(G){case 1:case 6:case 13:case 14:case 15:return"SDR";case 16:return"PQ";case 18:return"HLG"}};q=function(G){switch(G){case 1:case 5:case 6:case 7:return"srgb";case 9:return"rec2020";case 11:case 12:return"p3"}};var r=function(G){var L=G.attributes["dvb:fontFamily"];G=G.attributes["dvb:url"];L&&G&&
|
|
2389
|
+
(G=shaka.util.ManifestParserUtils.resolveUris(a.adaptationSet.getBaseUris(),[G],a.urlParams()),d.playerInterface_.addFont(L,G[0]))},t=e.findChildren(c,"EssentialProperty");f=null;var u=!1,w=null,v=!1;t=$jscomp.makeIterator(t);for(var x=t.next();!x.done;x=t.next()){x=x.value;var y=x.attributes.schemeIdUri;if("http://dashif.org/guidelines/trickmode"==y)f=x.attributes.value;else if("urn:mpeg:mpegB:cicp:TransferCharacteristics"==y)var B=m(parseInt(x.attributes.value,10));else if("urn:mpeg:mpegB:cicp:ColourPrimaries"==
|
|
2390
|
+
y)var A=q(parseInt(x.attributes.value,10));else"urn:mpeg:mpegB:cicp:MatrixCoefficients"!=y&&("urn:mpeg:dash:ssr:2023"==y&&this.config_.dash.enableFastSwitching?u=!0:"urn:dvb:dash:fontdownload:2014"==y?r(x):"urn:mpeg:dash:urlparam:2014"==y?(w=this.getURLParametersFunction_(x))||(v=!0):v=!0)}if(v)return null;var z=null;v=e.findChildren(c,"SupplementalProperty");v=$jscomp.makeIterator(v);for(t=v.next();!t.done;t=v.next())t=t.value,x=t.attributes.schemeIdUri,"http://dashif.org/guidelines/last-segment-number"==
|
|
2391
|
+
x?z=parseInt(t.attributes.value,10)-1:"urn:mpeg:mpegB:cicp:TransferCharacteristics"==x?B=m(parseInt(t.attributes.value,10)):"urn:mpeg:mpegB:cicp:ColourPrimaries"==x?A=q(parseInt(t.attributes.value,10)):"urn:dvb:dash:fontdownload:2014"==x?r(t):"urn:mpeg:dash:urlparam:2014"==x&&(w=this.getURLParametersFunction_(t));w&&(a.urlParams=w);q=e.findChildren(c,"Accessibility");m=shaka.util.LanguageUtils;var C=new Map;q=$jscomp.makeIterator(q);for(r=q.next();!r.done;r=q.next())if(w=r.value,r=w.attributes.schemeIdUri,
|
|
2385
2392
|
w=w.attributes.value,"urn:scte:dash:cc:cea-608:2015"==r&&!this.config_.disableText)if(r=1,null!=w)for(w=w.split(";"),v=$jscomp.makeIterator(w),t=v.next();!t.done;t=v.next())x=t.value,y=t=void 0,x.includes("=")?(x=x.split("="),t=x[0].startsWith("CC")?x[0]:"CC"+x[0],y=x[1]||"und"):(t="CC"+r,2==w.length?r+=2:r++,y=x),C.set(t,m.normalize(y));else C.set("CC1","und");else if("urn:scte:dash:cc:cea-708:2015"==r&&!this.config_.disableText)if(r=1,null!=w)for(w=$jscomp.makeIterator(w.split(";")),v=w.next();!v.done;v=
|
|
2386
2393
|
w.next())t=v.value,x=v=void 0,t.includes("=")?(t=t.split("="),v="svc"+t[0],x=t[1].split(",")[0].split(":").pop()):(v="svc"+r,r++,x=t),C.set(v,m.normalize(x));else C.set("svc1","und");else if("urn:mpeg:dash:role:2011"==r)null!=w&&(n.push(w),"captions"==w&&(p=g.TextStreamKind.CLOSED_CAPTION));else if("urn:tva:metadata:cs:AudioPurposeCS:2007"==r)if("1"==w)var D=shaka.media.ManifestParser.AccessibilityPurpose.VISUALLY_IMPAIRED;else"2"==w&&(D=shaka.media.ManifestParser.AccessibilityPurpose.HARD_OF_HEARING);
|
|
2387
|
-
g=e.findChildren(c,"ContentProtection");var E=k.parseFromAdaptationSet(g,this.config_.dash.ignoreDrmInfo,this.config_.dash.keySystemsByURI),
|
|
2388
|
-
q.attributes.codecs=m.split(" ").join(","),q.attributes.id&&(q.attributes.supplementalId=q.attributes.id+"_supplementalCodecs"),k.push(q);c.push.apply(c,$jscomp.arrayFromIterable(k))}e=c.map(function(
|
|
2394
|
+
g=e.findChildren(c,"ContentProtection");var E=k.parseFromAdaptationSet(g,this.config_.dash.ignoreDrmInfo,this.config_.dash.keySystemsByURI),H=shaka.util.LanguageUtils.normalize(a.adaptationSet.language||"und"),I=a.adaptationSet.label;c=e.findChildren(c,"Representation");if(!this.config_.dash.ignoreSupplementalCodecs){k=[];g=$jscomp.makeIterator(c);for(m=g.next();!m.done;m=g.next())if(q=m.value,m=e.getAttributeNS(q,shaka.dash.DashParser.SCTE214_,"supplementalCodecs"))q=shaka.util.ObjectUtils.cloneObject(q),
|
|
2395
|
+
q.attributes.codecs=m.split(" ").join(","),q.attributes.id&&(q.attributes.supplementalId=q.attributes.id+"_supplementalCodecs"),k.push(q);c.push.apply(c,$jscomp.arrayFromIterable(k))}e=c.map(function(G){if(G=d.parseRepresentation_(a,E,p,H,I,l,n,C,G,D,z))G.hdr=G.hdr||B,G.colorGamut=G.colorGamut||A,G.fastSwitching=u;return G}).filter(function(G){return!!G});if(0==e.length){f=a.adaptationSet.contentType==h.IMAGE;if(this.config_.dash.ignoreEmptyAdaptationSet||b||f)return null;throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
2389
2396
|
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_EMPTY_ADAPTATION_SET);}if(!a.adaptationSet.contentType||a.adaptationSet.contentType==h.APPLICATION)for(a.adaptationSet.contentType=shaka.dash.DashParser.guessContentType_(e[0].mimeType,e[0].codecs),h=$jscomp.makeIterator(e),b=h.next();!b.done;b=h.next())b.value.type=a.adaptationSet.contentType;h=a.adaptationSet.id||"__fake__"+this.globalId_++;b=$jscomp.makeIterator(e);for(k=b.next();!k.done;k=b.next()){k=k.value;g=$jscomp.makeIterator(E.drmInfos);
|
|
2390
|
-
for(m=g.next();!m.done;m=g.next())m=m.value,m.keyIds=m.keyIds&&k.keyIds?new Set([].concat($jscomp.arrayFromIterable(m.keyIds),$jscomp.arrayFromIterable(k.keyIds))):m.keyIds||k.keyIds;k.groupId=h}b=c.map(function(
|
|
2397
|
+
for(m=g.next();!m.done;m=g.next())m=m.value,m.keyIds=m.keyIds&&k.keyIds?new Set([].concat($jscomp.arrayFromIterable(m.keyIds),$jscomp.arrayFromIterable(k.keyIds))):m.keyIds||k.keyIds;k.groupId=h}b=c.map(function(G){return G.attributes.supplementalId||G.attributes.id}).filter(shaka.util.Functional.isNotNull);return{id:h,contentType:a.adaptationSet.contentType,language:H,main:l,streams:e,drmInfos:E.drmInfos,trickModeFor:f,representationIds:b}};
|
|
2391
2398
|
shaka.dash.DashParser.prototype.getURLParametersFunction_=function(a){var b=this,c=shaka.util.TXml;if((a=c.findChildNS(a,shaka.dash.DashParser.UP_NAMESPACE_,"UrlQueryInfo"))&&c.parseAttr(a,"useMPDUrlQuery",c.parseBoolean,!1)){var d=a.attributes.queryTemplate;if(d)return function(){return"$querypart$"==d?b.lastManifestQueryParams_:d.split("&").map(function(e){if("$querypart$"==e)return b.lastManifestQueryParams_;var f=/\$query:(.*?)\$/g.exec(e);if(f&&2==f.length){f=f[1];var g=(new goog.Uri.QueryData(b.lastManifestQueryParams_)).get(f);
|
|
2392
2399
|
if(g.length)return f+"="+g[0]}return e}).join("&")}}return null};
|
|
2393
2400
|
shaka.dash.DashParser.prototype.parseRepresentation_=function(a,b,c,d,e,f,g,h,k,l,m){var n=this,p=shaka.util.TXml,q=shaka.util.ManifestParserUtils.ContentType;a.representation=this.createFrame_(k,a.adaptationSet,null);var r=a.representation.id;this.minTotalAvailabilityTimeOffset_=Math.min(this.minTotalAvailabilityTimeOffset_,a.representation.availabilityTimeOffset);this.isLowLatency_=0<this.minTotalAvailabilityTimeOffset_;if(!this.verifyRepresentation_(a.representation))return shaka.log.warning("Skipping Representation",a.representation),
|
|
2394
|
-
null;var t=a.periodInfo.start;a.bandwidth=p.parseAttr(k,"bandwidth",p.parsePositiveInt)||0;a.roles=g;var u=p.findChildren(k,"SupplementalProperty"),w=p.findChildren(k,"EssentialProperty"),v=null,x=w.find(function(
|
|
2395
|
-
x==q.APPLICATION;q=x==q.IMAGE;try{var y=void 0;if(b.aes128Info){var
|
|
2396
|
-
C),2);if(3!=O.nextAddress){
|
|
2397
|
-
shaka.dash.SegmentBase.createStreamInfo(a,
|
|
2398
|
-
L=a.representation.codecs;E={generateSegmentIndex:function(){var
|
|
2399
|
-
|
|
2401
|
+
null;var t=a.periodInfo.start;a.bandwidth=p.parseAttr(k,"bandwidth",p.parsePositiveInt)||0;a.roles=g;var u=p.findChildren(k,"SupplementalProperty"),w=p.findChildren(k,"EssentialProperty"),v=null,x=w.find(function(J){return"urn:mpeg:dash:urlparam:2014"==J.attributes.schemeIdUri});x?v=this.getURLParametersFunction_(x):(x=u.find(function(J){return"urn:mpeg:dash:urlparam:2014"==J.attributes.schemeIdUri}))&&(v=this.getURLParametersFunction_(x));v&&(a.urlParams=v);x=a.representation.contentType;v=x==q.TEXT||
|
|
2402
|
+
x==q.APPLICATION;q=x==q.IMAGE;try{var y=void 0;if(b.aes128Info){var B=a.representation.getBaseUris,A=a.urlParams,z=shaka.util.ManifestParserUtils.resolveUris(B(),[b.aes128Info.keyUri],A()),C=shaka.net.NetworkingEngine.RequestType.KEY,D=shaka.net.NetworkingEngine.makeRequest(z,this.config_.retryParameters);y={bitsKey:128,blockCipherMode:"CBC",iv:b.aes128Info.iv,firstMediaSequenceNumber:0,fetchKey:function(){var J,N,P;return $jscomp.asyncExecutePromiseGeneratorProgram(function(O){if(1==O.nextAddress)return O.yield(n.makeNetworkRequest_(D,
|
|
2403
|
+
C),2);if(3!=O.nextAddress){J=O.yieldResult;if(!J.data||16!=J.data.byteLength)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.AES_128_INVALID_KEY_LENGTH);N={name:"AES-CBC"};P=y;return O.yield(window.crypto.subtle.importKey("raw",J.data,N,!0,["decrypt"]),3)}P.cryptoKey=O.yieldResult;y.fetchKey=void 0;O.jumpToEnd()})}}}a.representation.aesKey=y;B=function(J,N,P,O){return n.requestSegment_(J,N,P,O)};if(a.representation.segmentBase)var E=
|
|
2404
|
+
shaka.dash.SegmentBase.createStreamInfo(a,B,y);else if(a.representation.segmentList)E=shaka.dash.SegmentList.createStreamInfo(a,this.streamMap_,y);else if(a.representation.segmentTemplate)E=shaka.dash.SegmentTemplate.createStreamInfo(a,B,this.streamMap_,!!this.manifest_,this.config_.dash.initialSegmentLimit,this.periodDurations_,y,m,!1);else{goog.asserts.assert(v,"Must have Segment* with non-text streams.");var H=a.periodInfo.duration||0,I=a.representation.getBaseUris,G=a.representation.mimeType,
|
|
2405
|
+
L=a.representation.codecs;E={generateSegmentIndex:function(){var J=shaka.media.SegmentIndex.forSingleSegment(t,H,I());J.forEachTopLevelReference(function(N){N.mimeType=G;N.codecs=L});return Promise.resolve(J)}}}}catch(J){if((v||q)&&J.code==shaka.util.Error.Code.DASH_NO_SEGMENT_INFO)return null;throw J;}k=p.findChildren(k,"ContentProtection");k=shaka.dash.ContentProtection.parseFromRepresentation(k,b,this.config_.dash.ignoreDrmInfo,this.config_.dash.keySystemsByURI);k=new Set(k?[k]:[]);p=u.some(function(J){return"tag:dolby.com,2018:dash:EC3_ExtensionType:2018"==
|
|
2406
|
+
J.attributes.schemeIdUri&&"JOC"==J.attributes.value});u=a.representation.codecs;B=u.includes("ec-3")&&384E3<a.bandwidth;m=!1;if(p||B)m=!0;p=!1;v&&(p=g.includes("forced_subtitle")||g.includes("forced-subtitle"));var K;if(q&&((w=w.find(function(J){return["http://dashif.org/thumbnail_tile","http://dashif.org/guidelines/thumbnail_tile"].includes(J.attributes.schemeIdUri)}))&&(K=w.attributes.value),!K))return null;var F;a.profiles.includes("http://dashif.org/guidelines/dash-if-uhd#hevc-hdr-pq10")&&(u.includes("hvc1.2.4.L153.B0")||
|
|
2400
2407
|
u.includes("hev1.2.4.L153.B0"))&&(F="PQ");w=a.representation.id?a.period.id+","+a.representation.id:"";this.patchLocationNodes_.length&&r&&this.contextCache_.set(a.period.id+","+r,this.cloneContext_(a));var M=w&&this.streamMap_.has(w)?this.streamMap_.get(w):{id:this.globalId_++,originalId:a.representation.id,groupId:null,createSegmentIndex:function(){return Promise.resolve()},closeSegmentIndex:function(){M.segmentIndex&&(M.segmentIndex.release(),M.segmentIndex=null)},segmentIndex:null,mimeType:a.representation.mimeType,
|
|
2401
2408
|
codecs:u,frameRate:a.representation.frameRate,pixelAspectRatio:a.representation.pixelAspectRatio,bandwidth:a.bandwidth,width:a.representation.width,height:a.representation.height,kind:c,encrypted:0<b.drmInfos.length,drmInfos:b.drmInfos,keyIds:k,language:d,originalLanguage:a.adaptationSet.language,label:e,type:a.adaptationSet.contentType,primary:f,trickModeVideo:null,emsgSchemeIdUris:a.representation.emsgSchemeIdUris,roles:g,forced:p,channelsCount:a.representation.numChannels,audioSamplingRate:a.representation.audioSamplingRate,
|
|
2402
|
-
spatialAudio:m,closedCaptions:h,hdr:F,colorGamut:void 0,videoLayout:void 0,tilesLayout:
|
|
2409
|
+
spatialAudio:m,closedCaptions:h,hdr:F,colorGamut:void 0,videoLayout:void 0,tilesLayout:K,accessibilityPurpose:l,external:!1,fastSwitching:!1,fullMimeTypes:new Set([shaka.util.MimeUtils.getFullType(a.representation.mimeType,a.representation.codecs)]),isAudioMuxedInVideo:!1};M.createSegmentIndex=function(){var J;return $jscomp.asyncExecutePromiseGeneratorProgram(function(N){if(1==N.nextAddress){if(M.segmentIndex)return N.jumpTo(0);J=M;return N.yield(E.generateSegmentIndex(),3)}J.segmentIndex=N.yieldResult;
|
|
2403
2410
|
N.jumpToEnd()})};w&&a.dynamic&&!this.streamMap_.has(w)&&(a=a.period.id||"",this.indexStreamMap_.has(a)||this.indexStreamMap_.set(a,[]),this.streamMap_.set(w,M),this.indexStreamMap_.get(a).push(w));return M};
|
|
2404
2411
|
shaka.dash.DashParser.prototype.cloneContext_=function(a){var b=function(c){if(!c)return null;c=shaka.util.ObjectUtils.shallowCloneObject(c);c.segmentBase=null;c.segmentList=null;c.segmentTemplate=shaka.util.TXml.cloneNode(c.segmentTemplate);return c};a=shaka.util.ObjectUtils.shallowCloneObject(a);a.period=b(a.period);a.adaptationSet=b(a.adaptationSet);a.representation=b(a.representation);a.periodInfo&&(a.periodInfo=shaka.util.ObjectUtils.shallowCloneObject(a.periodInfo),a.periodInfo.node=null);return a};
|
|
2405
2412
|
shaka.dash.DashParser.prototype.onUpdate_=function(){var a=this,b,c;return $jscomp.asyncExecutePromiseGeneratorProgram(function(d){switch(d.nextAddress){case 1:return goog.asserts.assert(0<=a.updatePeriod_,"There should be an update period"),shaka.log.info("Updating manifest..."),b=0,d.setCatchFinallyBlocks(2),d.yield(a.requestManifest_(),4);case 4:b=d.yieldResult;d.leaveTryBlock(3);break;case 2:if(c=d.enterCatchBlock(),goog.asserts.assert(c instanceof shaka.util.Error,"Should only receive a Shaka error"),
|
|
@@ -2407,9 +2414,9 @@ a.playerInterface_){if(a.config_.raiseFatalErrorOnManifestUpdateRequestFailure)r
|
|
|
2407
2414
|
shaka.dash.DashParser.prototype.setUpdateTimer_=function(a){if(!(0>this.updatePeriod_)){var b=this.updatePeriod_;0<=this.config_.dash.updatePeriod&&(b=this.config_.dash.updatePeriod);a=Math.max(b-a,this.averageUpdateDuration_.getEstimate());this.updateTimer_.tickAfter(a)}};
|
|
2408
2415
|
shaka.dash.DashParser.prototype.createFrame_=function(a,b,c){var d=this;goog.asserts.assert(b||c,"Must provide either parent or getBaseUris");var e=shaka.media.SegmentUtils,f=shaka.util.ManifestParserUtils,g=shaka.util.TXml;b=b||{contentType:"",mimeType:"",codecs:"",emsgSchemeIdUris:[],frameRate:void 0,pixelAspectRatio:void 0,numChannels:null,audioSamplingRate:null,availabilityTimeOffset:0,segmentSequenceCadence:0};c=c||b.getBaseUris;var h=g.parseNonNegativeInt,k=g.evalDivision,l=a.attributes.id,
|
|
2409
2416
|
m=a.attributes.supplementalId,n=g.findChildren(a,"BaseURL"),p,q=!1;if(this.contentSteeringManager_)for(var r=$jscomp.makeIterator(n),t=r.next();!t.done;t=r.next()){var u=t.value;t=u.attributes.serviceLocation;u=g.getContents(u);t&&u&&(this.contentSteeringManager_.addLocation(l,t,u),q=!0)}q&&this.contentSteeringManager_||(p=n.map(g.getContents));r=a.attributes.contentType||b.contentType;t=a.attributes.mimeType||b.mimeType;e=e.codecsFiltering([a.attributes.codecs||b.codecs]).join(",");k=g.parseAttr(a,
|
|
2410
|
-
"frameRate",k)||b.frameRate;u=a.attributes.sar||b.pixelAspectRatio;var w=this.emsgSchemeIdUris_(g.findChildren(a,"InbandEventStream"),b.emsgSchemeIdUris),v=g.findChildren(a,"AudioChannelConfiguration");v=this.parseAudioChannels_(v)||b.numChannels;var x=g.parseAttr(a,"audioSamplingRate",h)||b.audioSamplingRate;r||(r=shaka.dash.DashParser.guessContentType_(t,e));var y=g.findChild(a,"SegmentBase"),
|
|
2411
|
-
"availabilityTimeOffset",g.parseFloat)||0:0,C=n&&n.length?g.parseAttr(n[0],"availabilityTimeOffset",g.parseFloat)||0:0;
|
|
2412
|
-
p?p:[]:[])},segmentBase:y||b.segmentBase,segmentList:g.findChild(a,"SegmentList")||b.segmentList,segmentTemplate:
|
|
2417
|
+
"frameRate",k)||b.frameRate;u=a.attributes.sar||b.pixelAspectRatio;var w=this.emsgSchemeIdUris_(g.findChildren(a,"InbandEventStream"),b.emsgSchemeIdUris),v=g.findChildren(a,"AudioChannelConfiguration");v=this.parseAudioChannels_(v)||b.numChannels;var x=g.parseAttr(a,"audioSamplingRate",h)||b.audioSamplingRate;r||(r=shaka.dash.DashParser.guessContentType_(t,e));var y=g.findChild(a,"SegmentBase"),B=g.findChild(a,"SegmentTemplate"),A=y?g.parseAttr(y,"availabilityTimeOffset",g.parseFloat)||0:0,z=B?g.parseAttr(B,
|
|
2418
|
+
"availabilityTimeOffset",g.parseFloat)||0:0,C=n&&n.length?g.parseAttr(n[0],"availabilityTimeOffset",g.parseFloat)||0:0;A=b.availabilityTimeOffset+C+A+z;z=null;(C=g.findChild(a,"SegmentSequenceProperties"))&&(C=g.findChild(C,"SAP"))&&(z=g.parseAttr(C,"cadence",g.parseInt));C=a.attributes.label;var D=g.findChildren(a,"Label");D&&D.length&&(D=D[0],g.getTextContents(D)&&(C=g.getTextContents(D)));return{getBaseUris:function(){return f.resolveUris(c(),n.length?d.contentSteeringManager_&&q?d.contentSteeringManager_.getLocations(l):
|
|
2419
|
+
p?p:[]:[])},segmentBase:y||b.segmentBase,segmentList:g.findChild(a,"SegmentList")||b.segmentList,segmentTemplate:B||b.segmentTemplate,width:g.parseAttr(a,"width",h)||b.width,height:g.parseAttr(a,"height",h)||b.height,contentType:r,mimeType:t,codecs:e,frameRate:k,pixelAspectRatio:u,emsgSchemeIdUris:w,id:m||l,originalId:l,language:a.attributes.lang,numChannels:v,audioSamplingRate:x,availabilityTimeOffset:A,initialization:null,segmentSequenceCadence:z||b.segmentSequenceCadence,label:C||null}};
|
|
2413
2420
|
shaka.dash.DashParser.prototype.emsgSchemeIdUris_=function(a,b){b=b.slice();a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next())c=c.value.attributes.schemeIdUri,b.includes(c)||b.push(c);return b};
|
|
2414
2421
|
shaka.dash.DashParser.prototype.parseAudioChannels_=function(a){a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next()){var c=b.value;if(b=c.attributes.schemeIdUri)if(c=c.attributes.value)switch(b){case "urn:mpeg:dash:outputChannelPositionList:2012":return c.trim().split(/ +/).length;case "urn:mpeg:dash:23003:3:audio_channel_configuration:2011":case "urn:dts:dash:audio_channel_configuration:2012":var d=parseInt(c,10);if(!d){shaka.log.warning("Channel parsing failure! Ignoring scheme and value",
|
|
2415
2422
|
b,c);continue}return d;case "tag:dolby.com,2015:dash:audio_channel_configuration:2015":d=[2,1,2,2,2,2,1,2,2,1,1,1,1,2,1,1,2,2];var e=parseInt(c,16);if(!e){shaka.log.warning("Channel parsing failure! Ignoring scheme and value",b,c);continue}for(c=b=0;c<d.length;c++)e&1<<c&&(b+=d[c]);if(b)return b;continue;case "tag:dolby.com,2014:dash:audio_channel_configuration:2011":case "urn:dolby:dash:audio_channel_configuration:2011":d=[1,1,1,1,1,2,2,1,1,2,2,2,1,2,1,1].reverse();e=parseInt(c,16);if(!e){shaka.log.warning("Channel parsing failure! Ignoring scheme and value",
|
|
@@ -2456,11 +2463,11 @@ this.aesKeyInfoMap_.clear();this.aesKeyMap_.clear();this.identityKeyMap_.clear()
|
|
|
2456
2463
|
shaka.hls.HlsParser.prototype.update=function(){var a=this,b,c,d,e,f,g,h,k,l,m,n,p;return $jscomp.asyncExecutePromiseGeneratorProgram(function(q){if(1==q.nextAddress){if(!a.isLive_())return q.return();b=[];c=Array.from(a.uriToStreamInfosMap_.values());a.lastTargetDuration_=Infinity;a.manifest_.gapCount=0;d=c.filter(function(r){return r.stream.segmentIndex});e=$jscomp.makeIterator(d);for(f=e.next();!f.done;f=e.next())g=f.value,b.push(a.updateStream_(g));return q.yield(Promise.all(b),2)}a.notifySegmentsForStreams_(d.map(function(r){return r.stream}));
|
|
2457
2464
|
h=d.some(function(r){return 0==r.hasEndList});d.length&&!h&&(k=shaka.hls.HlsParser.PresentationType_,a.setPresentationType_(k.VOD),l=d.map(function(r){return r.maxTimestamp}),a.presentationTimeline_.setDuration(Math.min.apply(Math,$jscomp.arrayFromIterable(l))),a.playerInterface_.updateDuration());h&&a.determineDuration_();m=$jscomp.makeIterator(d);for(n=m.next();!n.done;n=m.next())p=n.value,p.stream.isAudioMuxedInVideo||!p.stream.segmentIndex||p.stream.segmentIndex.earliestReference()||a.playerInterface_.disableStream(p.stream);
|
|
2458
2465
|
q.jumpToEnd()})};shaka.hls.HlsParser.prototype.getMediaSequenceToStartTimeFor_=function(a){return this.isLive_()?this.mediaSequenceToStartTimeByType_.get(a.type):a.mediaSequenceToStartTime};
|
|
2459
|
-
shaka.hls.HlsParser.prototype.updateStream_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,A,
|
|
2466
|
+
shaka.hls.HlsParser.prototype.updateStream_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,B,A,z,C,D,E,H,I,G,L,K,F,M,J,N,P;return $jscomp.asyncExecutePromiseGeneratorProgram(function(O){switch(O.nextAddress){case 1:if(a.stream.isAudioMuxedInVideo)return O.return();c=[];d=$jscomp.makeIterator(a.getUris());for(e=d.next();!e.done;e=d.next())f=e.value,g=new goog.Uri(f),h=g.getQueryData(),a.canBlockReload&&(0<=a.nextMediaSequence&&h.add("_HLS_msn",String(a.nextMediaSequence)),0<=a.nextPart&&
|
|
2460
2467
|
h.add("_HLS_part",String(a.nextPart))),a.canSkipSegments&&h.add("_HLS_skip","YES"),h.getCount()&&g.setQueryData(h),c.push(g.toString());O.setCatchFinallyBlocks(2);return O.yield(b.requestManifest_(c,!0).promise,4);case 4:k=O.yieldResult;O.leaveTryBlock(3);break;case 2:throw l=O.enterCatchBlock(),b.playerInterface_&&b.playerInterface_.disableStream(a.stream),l;case 3:if(!a.stream.segmentIndex)return O.return();m=b.manifestTextParser_.parsePlaylist(k.data);if(m.type!=shaka.hls.PlaylistType.MEDIA)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
2461
|
-
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_INVALID_PLAYLIST_HIERARCHY);n=k.uri;n==k.originalUri||a.getUris().includes(n)||a.redirectUris.push(n);p=shaka.hls.Utils.filterTagsByName(m.tags,"EXT-X-DEFINE");q=b.parseMediaVariables_(p,n);r=a.stream;t=b.getMediaSequenceToStartTimeFor_(a);return O.yield(b.parseDrmInfo_(m,r.mimeType,a.getUris,q),5);case 5:u=O.yieldResult;w=u.keyIds;v=u.drmInfos;x=function(
|
|
2462
|
-
x(r.keyIds,w)||(r.keyIds=w,r.drmInfos=v,b.playerInterface_.newDrmInfo(r));y=b.createSegments_(m,t,q,a.getUris,a.type);
|
|
2463
|
-
0),
|
|
2468
|
+
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_INVALID_PLAYLIST_HIERARCHY);n=k.uri;n==k.originalUri||a.getUris().includes(n)||a.redirectUris.push(n);p=shaka.hls.Utils.filterTagsByName(m.tags,"EXT-X-DEFINE");q=b.parseMediaVariables_(p,n);r=a.stream;t=b.getMediaSequenceToStartTimeFor_(a);return O.yield(b.parseDrmInfo_(m,r.mimeType,a.getUris,q),5);case 5:u=O.yieldResult;w=u.keyIds;v=u.drmInfos;x=function(W,Q){return W.size===Q.size&&[].concat($jscomp.arrayFromIterable(W)).every(function(S){return Q.has(S)})};
|
|
2469
|
+
x(r.keyIds,w)||(r.keyIds=w,r.drmInfos=v,b.playerInterface_.newDrmInfo(r));y=b.createSegments_(m,t,q,a.getUris,a.type);B=y.segments;if(A=y.bandwidth)r.bandwidth=A;z=shaka.media.QualityObserver.createQualityInfo(r);C=$jscomp.makeIterator(B);for(D=C.next();!D.done;D=C.next())E=D.value,E.initSegmentReference&&(E.initSegmentReference.mediaQuality=z);r.segmentIndex.mergeAndEvict(B,b.presentationTimeline_.getSegmentAvailabilityStart());B.length&&(H=shaka.hls.Utils.getFirstTagWithNameAsNumber(m.tags,"EXT-X-MEDIA-SEQUENCE",
|
|
2470
|
+
0),G=(I=shaka.hls.Utils.getFirstTagWithName(m.tags,"EXT-X-SKIP"))?Number(I.getAttributeValue("SKIPPED-SEGMENTS")):0,L=b.getNextMediaSequenceAndPart_(H,B),K=L.nextMediaSequence,F=L.nextPart,a.nextMediaSequence=K+G,a.nextPart=F,M=t.get(H),r.segmentIndex.evict(M));if(J=r.segmentIndex.earliestReference())a.minTimestamp=J.startTime,N=B[B.length-1],goog.asserts.assert(N,"Should have segments!"),a.maxTimestamp=N.endTime;if(P=shaka.hls.Utils.getFirstTagWithName(m.tags,"EXT-X-ENDLIST"))a.hasEndList=!0;b.determineLastTargetDuration_(m);
|
|
2464
2471
|
b.processDateRangeTags_(m.tags,r.type,q,a.getUris);O.jumpToEnd()}})};shaka.hls.HlsParser.prototype.onExpirationUpdated=function(a,b){};shaka.hls.HlsParser.prototype.onInitialVariantChosen=function(a){};shaka.hls.HlsParser.prototype.banLocation=function(a){this.contentSteeringManager_&&this.contentSteeringManager_.banLocation(a)};shaka.hls.HlsParser.prototype.setMediaElement=function(a){this.mediaElement_=a};
|
|
2465
2472
|
shaka.hls.HlsParser.prototype.syncStreamsWithSequenceNumber_=function(a,b){b=void 0===b?!1:b;for(var c=-1==this.minSequenceNumber_,d=$jscomp.makeIterator(a),e=d.next();!e.done;e=d.next()){e=e.value;var f=e.stream.segmentIndex;goog.asserts.assert(f,"Only loaded streams should be synced");var g=this.getMediaSequenceToStartTimeFor_(e);if(f=f.earliestReference()){goog.DEBUG&&g.values().next().value!=f.startTime&&shaka.log.warning("Sequence number map is not ordered as expected!");g=$jscomp.makeIterator(g);
|
|
2466
2473
|
for(var h=g.next();!h.done;h=g.next()){h=$jscomp.makeIterator(h.value);var k=h.next().value;if(h.next().value==f.startTime){c&&(this.minSequenceNumber_=Math.max(this.minSequenceNumber_,k));e.firstSequenceNumber=k;break}}}}if(!(0>this.minSequenceNumber_))for(shaka.log.debug("Syncing HLS streams against base sequence number:",this.minSequenceNumber_),a=$jscomp.makeIterator(a),c=a.next();!c.done;c=a.next())if(c=c.value,this.ignoreManifestProgramDateTimeFor_(c.type)||b)if(d=c.stream.segmentIndex)if(e=
|
|
@@ -2468,20 +2475,21 @@ this.minSequenceNumber_-c.firstSequenceNumber,0<e&&(d.dropFirstReferences(e),d=d
|
|
|
2468
2475
|
shaka.hls.HlsParser.prototype.syncStreamsWithProgramDateTime_=function(a){if(Infinity==this.lowestSyncTime_){a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next())b=b.value.stream.segmentIndex,goog.asserts.assert(b,"Only loaded streams should be synced"),b=b.earliestReference(),null!=b&&null!=b.syncTime&&(this.lowestSyncTime_=Math.min(this.lowestSyncTime_,b.syncTime))}a=this.lowestSyncTime_;if(Infinity!=a){shaka.log.debug("Syncing HLS streams against base time:",a);b=$jscomp.makeIterator(this.uriToStreamInfosMap_.values());
|
|
2469
2476
|
for(var c=b.next();!c.done;c=b.next())if(c=c.value,!this.ignoreManifestProgramDateTimeFor_(c.type)){var d=c.stream.segmentIndex;if(null!=d){var e=d.earliestReference();if(e)if(null==e.syncTime)shaka.log.alwaysError("Missing EXT-X-PROGRAM-DATE-TIME for stream",c.getUris(),"Expect AV sync issues!");else for(this.offsetStreamInfo_(c,e.syncTime-a-e.startTime),c=$jscomp.makeIterator(d),d=c.next();!d.done;d=c.next())d.value.syncAgainst(a)}}}};
|
|
2470
2477
|
shaka.hls.HlsParser.prototype.offsetStreamInfo_=function(a,b){a.minTimestamp+=b;a.maxTimestamp+=b;goog.asserts.assert(0<=a.maxTimestamp,"Negative maxTimestamp after adjustment!");for(var c=this.getMediaSequenceToStartTimeFor_(a),d=$jscomp.makeIterator(c),e=d.next();!e.done;e=d.next()){var f=$jscomp.makeIterator(e.value);e=f.next().value;f=f.next().value;c.set(e,f+b)}shaka.log.debug("Offset",b,"applied to",a.getUris())};
|
|
2471
|
-
shaka.hls.HlsParser.prototype.parseManifest_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,A,
|
|
2472
|
-
[];goog.asserts.assert(null==c.presentationTimeline_,"Presentation timeline created early!");c.presentationTimeline_=new shaka.media.PresentationTimeline(null,0);c.presentationTimeline_.setStatic(!0);m=function(){return[b]};n=null;p=new Map;if(f.type==shaka.hls.PlaylistType.MEDIA)return c.needsClosedCaptionsDetection_=!1,
|
|
2473
|
-
p,f,m,b,"",n,
|
|
2474
|
-
4);case 4:if(!c.config_.hls.ignoreSupplementalCodecs){y=[];
|
|
2475
|
-
C.name,E,null));r.push.apply(r,$jscomp.arrayFromIterable(y))
|
|
2476
|
-
(
|
|
2477
|
-
(
|
|
2478
|
-
|
|
2479
|
-
|
|
2480
|
-
|
|
2481
|
-
|
|
2482
|
-
|
|
2483
|
-
|
|
2484
|
-
|
|
2478
|
+
shaka.hls.HlsParser.prototype.parseManifest_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,B,A,z,C,D,E,H,I,G,L,K,F,M,J,N,P,O,W,Q,S,V,R,T,X,Y;return $jscomp.asyncExecutePromiseGeneratorProgram(function(U){switch(U.nextAddress){case 1:d=shaka.hls.Utils;e=shaka.util.ManifestParserUtils.ContentType;goog.asserts.assert(c.masterPlaylistUri_,"Master playlist URI must be set before calling parseManifest_!");f=c.manifestTextParser_.parsePlaylist(a);g=d.filterTagsByName(f.tags,"EXT-X-DEFINE");
|
|
2479
|
+
h=[];k=[];l=[];goog.asserts.assert(null==c.presentationTimeline_,"Presentation timeline created early!");c.presentationTimeline_=new shaka.media.PresentationTimeline(null,0);c.presentationTimeline_.setStatic(!0);m=function(){return[b]};n=null;p=new Map;if(f.type==shaka.hls.PlaylistType.MEDIA)return c.needsClosedCaptionsDetection_=!1,N=shaka.hls.Utils.filterTagsByName(f.tags,"EXT-X-DEFINE"),p=c.parseMediaVariables_(N,c.masterPlaylistUri_),n=e.VIDEO,P="",O=new Map,U.yield(c.convertParsedPlaylistIntoStreamInfo_(c.globalId_++,
|
|
2480
|
+
p,f,m,b,"",n,P,!0,"Media Playlist",null,O,null,!1,null,!1),7);c.parseMasterVariables_(g);q=d.filterTagsByName(f.tags,"EXT-X-MEDIA");r=d.filterTagsByName(f.tags,"EXT-X-STREAM-INF");t=d.filterTagsByName(f.tags,"EXT-X-IMAGE-STREAM-INF");u=d.filterTagsByName(f.tags,"EXT-X-I-FRAME-STREAM-INF");w=d.filterTagsByName(f.tags,"EXT-X-SESSION-KEY");v=d.filterTagsByName(f.tags,"EXT-X-SESSION-DATA");x=d.filterTagsByName(f.tags,"EXT-X-CONTENT-STEERING");c.processSessionData_(v);return U.yield(c.processContentSteering_(x),
|
|
2481
|
+
4);case 4:if(!c.config_.hls.ignoreSupplementalCodecs){y=[];B=$jscomp.makeIterator(r);A=B.next();for(z={};!A.done;z={supplementalCodecs$jscomp$1:void 0},A=B.next())if(C=A.value,D=C.getAttributeValue("SUPPLEMENTAL-CODECS"))z.supplementalCodecs$jscomp$1=D.split(/\s*,\s*/).map(function(ba){return ba.split("/")[0]}),E=C.attributes.map(function(ba){return function(aa){var Z=aa.name;aa=aa.value;"CODECS"==Z&&(aa=ba.supplementalCodecs$jscomp$1.join(","));return new shaka.hls.Attribute(Z,aa)}}(z)),y.push(new shaka.hls.Tag(C.id,
|
|
2482
|
+
C.name,E,null));r.push.apply(r,$jscomp.arrayFromIterable(y));H=[];I=$jscomp.makeIterator(u);G=I.next();for(L={};!G.done;L={supplementalCodecs$jscomp$2:void 0},G=I.next())if(K=G.value,F=K.getAttributeValue("SUPPLEMENTAL-CODECS"))L.supplementalCodecs$jscomp$2=F.split(/\s*,\s*/).map(function(ba){return ba.split("/")[0]}),M=K.attributes.map(function(ba){return function(aa){var Z=aa.name;aa=aa.value;"CODECS"==Z&&(aa=ba.supplementalCodecs$jscomp$2.join(","));return new shaka.hls.Attribute(Z,aa)}}(L)),H.push(new shaka.hls.Tag(K.id,
|
|
2483
|
+
K.name,M,null));u.push.apply(u,$jscomp.arrayFromIterable(H))}c.parseCodecs_(r);c.parseClosedCaptions_(q);J=c.parseIFrames_(u);return U.yield(c.createVariantsForTags_(r,w,q,m,c.globalVariables_,J),5);case 5:return h=U.yieldResult,k=c.parseTexts_(q),U.yield(c.parseImages_(t,u),6);case 6:l=U.yieldResult;U.jumpTo(3);break;case 7:W=U.yieldResult,c.uriToStreamInfosMap_.set(b,W),W.stream&&(Q=shaka.media.QualityObserver.createQualityInfo(W.stream),W.stream.segmentIndex.forEachTopLevelReference(function(ba){ba.initSegmentReference&&
|
|
2484
|
+
(ba.initSegmentReference.mediaQuality=Q)})),n=W.stream.type,h.push({id:0,language:c.getLanguage_(P),disabledUntilTime:0,primary:!0,audio:"audio"==n?W.stream:null,video:"video"==n?W.stream:null,bandwidth:W.stream.bandwidth||0,allowedByApplication:!0,allowedByKeySystem:!0,decodingInfos:[]});case 3:if(!c.playerInterface_)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.OPERATION_ABORTED);c.determineStartTime_(f);f.type==shaka.hls.PlaylistType.MEDIA&&
|
|
2485
|
+
(c.isLive_()&&(c.changePresentationTimelineToLive_(f),S=c.getUpdatePlaylistDelay_(),c.updatePlaylistTimer_.tickAfter(S)),V=Array.from(c.uriToStreamInfosMap_.values()),c.finalizeStreams_(V),c.determineDuration_(),goog.asserts.assert(n,"mediaPlaylistType should be non-null"),c.processDateRangeTags_(f.tags,n,p,m));c.manifest_={presentationTimeline:c.presentationTimeline_,variants:h,textStreams:k,imageStreams:l,offlineSessionIds:[],sequenceMode:c.config_.hls.sequenceMode,ignoreManifestTimestampsInSegmentsMode:c.config_.hls.ignoreManifestTimestampsInSegmentsMode,
|
|
2486
|
+
type:shaka.media.ManifestParser.HLS,serviceDescription:null,nextUrl:null,periodCount:1,gapCount:0,isLowLatency:!1,startTime:c.startTime_};if(c.codecInfoInManifest_||!c.config_.hls.disableCodecGuessing){U.jumpTo(8);break}R=[];T=$jscomp.makeIterator(c.manifest_.variants);for(X=T.next();!X.done;X=T.next())Y=X.value,Y.audio&&""===Y.audio.codecs&&R.push(Y.audio.createSegmentIndex()),Y.video&&""===Y.video.codecs&&R.push(Y.video.createSegmentIndex());return U.yield(Promise.all(R),8);case 8:c.playerInterface_.makeTextStreamsForClosedCaptions(c.manifest_),
|
|
2487
|
+
U.jumpToEnd()}})};
|
|
2488
|
+
shaka.hls.HlsParser.prototype.getBasicInfoFromSegments_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,B,A,z,C,D,E,H;return $jscomp.asyncExecutePromiseGeneratorProgram(function(I){switch(I.nextAddress){case 1:c=shaka.hls.HlsParser;d=shaka.media.SegmentUtils.getBasicInfoFromMimeType(b.config_.hls.mediaPlaylistFullMimeType);if(!a.length)return I.return(d);e=b.getAvailableSegment_(a);f=e.segment;g=e.segmentIndex;h=f.getUris();k=h[0];l=new goog.Uri(k);m=l.getPath().split(".").pop();if(n=
|
|
2489
|
+
c.RAW_FORMATS_TO_MIME_TYPES_.get(m))return I.return(shaka.media.SegmentUtils.getBasicInfoFromMimeType(n));p=shaka.net.NetworkingEngine.RequestType.SEGMENT;r=q=null;t=f.initSegmentReference;if(!t){I.jumpTo(2);break}u=shaka.util.Networking.createSegmentRequest(t.getUris(),t.getStartByte(),t.getEndByte(),b.config_.retryParameters);w=shaka.net.NetworkingEngine.AdvancedRequestType.INIT_SEGMENT;return I.yield(b.makeNetworkRequest_(u,p,{type:w}).promise,3);case 3:v=I.yieldResult;q=v.data;if(!t.aesKey){I.jumpTo(4);
|
|
2490
|
+
break}return I.yield(shaka.media.SegmentUtils.aesDecrypt(q,t.aesKey,0),5);case 5:q=I.yieldResult;case 4:(r=v.headers["content-type"])&&(r=r.split(";")[0].toLowerCase());case 2:return x=shaka.util.Networking.createSegmentRequest(f.getUris(),f.getStartByte(),f.getEndByte(),b.config_.retryParameters),y=shaka.net.NetworkingEngine.AdvancedRequestType.MEDIA_SEGMENT,I.yield(b.makeNetworkRequest_(x,p,{type:y}).promise,6);case 6:B=I.yieldResult;A=B.data;if(!f.aesKey){I.jumpTo(7);break}return I.yield(shaka.media.SegmentUtils.aesDecrypt(A,
|
|
2491
|
+
f.aesKey,g),8);case 8:A=I.yieldResult;case 7:(z=B.headers["content-type"])&&(z=z.split(";")[0].toLowerCase());C="mp4 mp4a m4s m4i m4a m4f cmfa mp4v m4v cmfv fmp4".split(" ");D=["audio/mp4","video/mp4","video/iso.segment"];if(shaka.util.TsParser.probe(shaka.util.BufferUtils.toUint8(A))){if(E=shaka.media.SegmentUtils.getBasicInfoFromTs(A,b.config_.disableAudio,b.config_.disableVideo,b.config_.disableText))return I.return(E)}else if(C.includes(m)||D.includes(z)||r&&D.includes(r))if(H=shaka.media.SegmentUtils.getBasicInfoFromMp4(q,
|
|
2492
|
+
A,b.config_.disableText))return I.return(H);return z?I.return(shaka.media.SegmentUtils.getBasicInfoFromMimeType(z)):r?I.return(shaka.media.SegmentUtils.getBasicInfoFromMimeType(r)):I.return(d)}})};
|
|
2485
2493
|
shaka.hls.HlsParser.prototype.determineDuration_=function(){goog.asserts.assert(this.presentationTimeline_,"Presentation timeline not created!");if(this.isLive_()){if(this.presentationType_==shaka.hls.HlsParser.PresentationType_.LIVE){var a=this.getLiveDuration_()||0;isNaN(this.config_.availabilityWindowOverride)||(a=this.config_.availabilityWindowOverride);this.presentationTimeline_.setSegmentAvailabilityDuration(a)}}else this.presentationTimeline_.setDuration(this.getMinDuration_());if(!this.presentationTimeline_.isStartTimeLocked()){a=
|
|
2486
2494
|
$jscomp.makeIterator(this.uriToStreamInfosMap_.values());for(var b=a.next();!b.done;b=a.next())b=b.value,!b.stream.segmentIndex||"audio"!=b.type&&"video"!=b.type||(b=b.stream.segmentIndex.earliestReference())&&b.syncTime&&this.presentationTimeline_.setInitialProgramDateTime(b.syncTime)}this.presentationTimeline_.lockStartTime();goog.asserts.assert(!this.presentationTimeline_.usingPresentationStartTime(),"We should not be using the presentation start time in HLS!")};
|
|
2487
2495
|
shaka.hls.HlsParser.prototype.parseMasterVariables_=function(a){var b=(new goog.Uri(this.masterPlaylistUri_)).getQueryData();a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next()){var d=c.value;c=d.getAttributeValue("NAME");var e=d.getAttributeValue("VALUE");d=d.getAttributeValue("QUERYPARAM");c&&e&&(this.globalVariables_.has(c)||this.globalVariables_.set(c,e));d&&(c=b.get(d)[0])&&!this.globalVariables_.has(c)&&this.globalVariables_.set(d,c)}};
|
|
@@ -2498,11 +2506,11 @@ shaka.hls.HlsParser.prototype.parseImages_=function(a,b){var c=this,d,e;return $
|
|
|
2498
2506
|
throw l;})}).concat(b.map(function(g){if(c.config_.disableThumbnails)return null;try{var h=c.createStreamInfoFromIframeTag_(g);return h.stream.type!==shaka.util.ManifestParserUtils.ContentType.IMAGE?null:h.stream}catch(k){if(c.config_.hls.ignoreImageStreamFailures)return null;throw k;}})),f.yield(Promise.all(d),2);e=f.yieldResult;return f.return(e.filter(function(g){return g}))})};
|
|
2499
2507
|
shaka.hls.HlsParser.prototype.createStreamInfosFromMediaTags_=function(a,b){a=a.filter(function(g){var h=g.getAttributeValue("URI")||"";g=g.getAttributeValue("TYPE");return"SUBTITLES"!=g&&(""!=h||"AUDIO"==g)});var c={};a=$jscomp.makeIterator(a);for(var d=a.next();!d.done;d=a.next()){d=d.value;var e=d.getTagKey(!this.contentSteeringManager_);c[e]?c[e].push(d):c[e]=[d]}for(var f in c)this.createStreamInfoFromMediaTags_(c[f],b,!1)};
|
|
2500
2508
|
shaka.hls.HlsParser.prototype.parseIFrames_=function(a){var b=this;return a.map(function(c){c=b.createStreamInfoFromIframeTag_(c);return c.stream.type!==shaka.util.ManifestParserUtils.ContentType.VIDEO?null:c.stream}).filter(function(c){return c})};
|
|
2501
|
-
shaka.hls.HlsParser.prototype.createVariantsForTags_=function(a,b,c,d,e,f){var g=this,h,k,l,m,n,p,q,r,t,u,w,v,x,y,A,
|
|
2502
|
-
shaka.hls.Utils.constructSegmentUris(d(),n.getRequiredAttrValue("URI"),e);u=t.sort().join("");g.aesKeyMap_.has(u)||(w=shaka.net.NetworkingEngine.RequestType.KEY,v=shaka.net.NetworkingEngine.makeRequest(t,g.config_.retryParameters),x=g.makeNetworkRequest_(v,w).promise,g.aesKeyMap_.set(u,x));
|
|
2503
|
-
$jscomp.makeIterator(r.keyIds),B
|
|
2504
|
-
|
|
2505
|
-
k,f)));return
|
|
2509
|
+
shaka.hls.HlsParser.prototype.createVariantsForTags_=function(a,b,c,d,e,f){var g=this,h,k,l,m,n,p,q,r,t,u,w,v,x,y,B,A,z,C,D,E,H,I,G,L,K,F,M,J,N,P,O,W,Q,S,V,R;return $jscomp.asyncExecutePromiseGeneratorProgram(function(T){switch(T.nextAddress){case 1:h=[];k=new Set;if(!(0<b.length)){T.jumpTo(2);break}l=$jscomp.makeIterator(b);m=l.next();case 3:if(m.done){T.jumpTo(2);break}n=m.value;p=n.getRequiredAttrValue("METHOD");q=n.getAttributeValue("KEYFORMAT")||"identity";r=null;if("NONE"==p){T.jumpTo(4);break}if(g.isAesMethod_(p)){t=
|
|
2510
|
+
shaka.hls.Utils.constructSegmentUris(d(),n.getRequiredAttrValue("URI"),e);u=t.sort().join("");g.aesKeyMap_.has(u)||(w=shaka.net.NetworkingEngine.RequestType.KEY,v=shaka.net.NetworkingEngine.makeRequest(t,g.config_.retryParameters),x=g.makeNetworkRequest_(v,w).promise,g.aesKeyMap_.set(u,x));T.jumpTo(4);break}if("identity"!=q){r=(y=shaka.hls.HlsParser.KEYFORMATS_TO_DRM_PARSERS_.get(q))?y(n,""):null;T.jumpTo(6);break}return T.yield(g.identityDrmParser_(n,"",d,null,e),9);case 9:r=T.yieldResult;case 6:if(r){if(r.keyIds)for(B=
|
|
2511
|
+
$jscomp.makeIterator(r.keyIds),A=B.next();!A.done;A=B.next())z=A.value,k.add(z);h.push(r)}else shaka.log.warning("Unsupported HLS KEYFORMAT",q);case 4:m=l.next();T.jumpTo(3);break;case 2:C={};D=$jscomp.makeIterator(a);for(E=D.next();!E.done;E=D.next())H=E.value,I=H.getTagKey(!g.contentSteeringManager_),C[I]?C[I].push(H):C[I]=[H];G=[];for(L in C)K=C[L],F=K[0],M=F.getAttributeValue("FRAME-RATE"),J=Number(F.getAttributeValue("AVERAGE-BANDWIDTH"))||Number(F.getRequiredAttrValue("BANDWIDTH")),N=F.getAttributeValue("RESOLUTION"),
|
|
2512
|
+
P=$jscomp.makeIterator(N?N.split("x"):[null,null]),O=P.next().value,W=P.next().value,Q=F.getAttributeValue("VIDEO-RANGE"),(S=F.getAttributeValue("REQ-VIDEO-LAYOUT"))&&S.includes(",")&&(V=S.split(",").filter(function(X){return"CH-STEREO"==X||"CH-MONO"==X}),S=V[0]),S=S||"CH-MONO",R=g.createStreamInfosForVariantTags_(K,c,N,M),goog.asserts.assert(R.audio.length||R.video.length,"We should have created a stream!"),G.push.apply(G,$jscomp.arrayFromIterable(g.createVariants_(R.audio,R.video,J,O,W,M,Q,S,h,
|
|
2513
|
+
k,f)));return T.return(G.filter(function(X){return null!=X}))}})};
|
|
2506
2514
|
shaka.hls.HlsParser.prototype.createStreamInfosForVariantTags_=function(a,b,c,d){d=shaka.util.ManifestParserUtils.ContentType;c={audio:[],video:[]};for(var e=new Map,f=[],g=!1,h=!1,k=$jscomp.makeIterator(a),l=k.next();!l.done;l=k.next()){l=l.value;var m=l.getAttributeValue("AUDIO"),n=l.getAttributeValue("VIDEO");goog.asserts.assert(null==m||null==n,"Unexpected: both video and audio described by media tags!");var p=m||n;if(p){f.includes(p)||f.push(p);var q=l.getAttributeValue("PATHWAY-ID");q&&e.set(p,
|
|
2507
2515
|
q);m?g=!0:n&&(h=!0);shaka.log.debug("Guessing stream type for",l.toString())}}f.length&&b.length&&(b=b.filter(function(t){return f.includes(t.getRequiredAttrValue("GROUP-ID"))}),this.createStreamInfosFromMediaTags_(b,e));e=(b=f.sort().join(","))&&this.groupIdToStreamInfosMap_.has(b)?this.groupIdToStreamInfosMap_.get(b):[];g?c.audio.push.apply(c.audio,$jscomp.arrayFromIterable(e)):h&&c.video.push.apply(c.video,$jscomp.arrayFromIterable(e));g=!1;var r=a.map(function(t){return t.getRequiredAttrValue("URI")});
|
|
2508
2516
|
l=c.audio.find(function(t){return t&&t.getUris().find(function(u){return r.includes(u)})});h=this.getCodecsForVariantTag_(a[0]);e=shaka.util.ManifestParserUtils.guessCodecsSafe(d.VIDEO,h);(k=shaka.util.ManifestParserUtils.guessCodecsSafe(d.AUDIO,h))&&!e?(d=d.AUDIO,shaka.log.debug("Guessing audio-only."),g=0<c.audio.length):!c.audio.length&&!c.video.length&&k&&e?(shaka.log.debug("Guessing multiplexed audio+video."),d=d.VIDEO,h=[[e,k].join()]):c.audio.length&&l?(shaka.log.debug("Guessing audio-only."),
|
|
@@ -2526,35 +2534,35 @@ Number(p);b.uriToStreamInfosMap_.set(d,k);return q.return(k)})};
|
|
|
2526
2534
|
shaka.hls.HlsParser.prototype.createStreamInfoFromIframeTag_=function(a){goog.asserts.assert("EXT-X-I-FRAME-STREAM-INF"==a.name,"Should only be called on iframe tags!");var b=shaka.util.ManifestParserUtils.ContentType.VIDEO,c=a.getRequiredAttrValue("URI"),d=a.getAttributeValue("CODECS")||"";"mjpg"==d&&(b=shaka.util.ManifestParserUtils.ContentType.IMAGE);if(this.uriToStreamInfosMap_.has(c))return this.uriToStreamInfosMap_.get(c);var e=a.getAttributeValue("LANGUAGE"),f=a.getAttributeValue("NAME"),g=
|
|
2527
2535
|
a.getAttributeValue("CHARACTERISTICS");b=this.createStreamInfo_(this.globalId_++,[c],d,b,e,!1,f,null,null,g,!1,null,!1);d=a.getAttributeValue("RESOLUTION");e=$jscomp.makeIterator(d?d.split("x"):[null,null]);d=e.next().value;e=e.next().value;b.stream.width=Number(d)||void 0;b.stream.height=Number(e)||void 0;if(a=a.getAttributeValue("BANDWIDTH"))b.stream.bandwidth=Number(a);this.uriToStreamInfosMap_.set(c,b);return b};
|
|
2528
2536
|
shaka.hls.HlsParser.prototype.createStreamInfoFromVariantTags_=function(a,b,c){for(var d=this.globalId_++,e=[],f=$jscomp.makeIterator(a),g=f.next();!g.done;g=f.next()){var h=g.value;goog.asserts.assert("EXT-X-STREAM-INF"==h.name,"Should only be called on variant tags!");g=h.getRequiredAttrValue("URI");h=h.getAttributeValue("PATHWAY-ID");this.contentSteeringManager_&&h&&this.contentSteeringManager_.addLocation(d,h,g);e.push(g)}f=e.sort().join(",")+b.sort().join(",");if(this.uriToStreamInfosMap_.has(f))return this.uriToStreamInfosMap_.get(f);
|
|
2529
|
-
a=this.getClosedCaptions_(a[0],c);b=shaka.util.ManifestParserUtils.guessCodecs(c,b);c=this.createStreamInfo_(d,e,b,c,null,!1,
|
|
2537
|
+
g=e.join(",");a=this.getClosedCaptions_(a[0],c);b=shaka.util.ManifestParserUtils.guessCodecs(c,b);c=this.createStreamInfo_(d,e,b,c,null,!1,g,null,a,null,!1,null,!1);this.uriToStreamInfosMap_.set(f,c);return c};
|
|
2530
2538
|
shaka.hls.HlsParser.prototype.createStreamInfo_=function(a,b,c,d,e,f,g,h,k,l,m,n,p){var q=this,r=this.makeStreamObject_(a,c,d,e,f,g,h,k,l,m,n,p);b.includes(shaka.hls.HlsParser.FAKE_MUXED_URL_)&&(r.isAudioMuxedInVideo=!0,r.mimeType="video/mp2t",this.setFullTypeForStream_(r));var t={stream:r,type:d,redirectUris:[],getUris:function(){},minTimestamp:0,maxTimestamp:0,mediaSequenceToStartTime:new Map,canSkipSegments:!1,canBlockReload:!1,hasEndList:!1,firstSequenceNumber:-1,nextMediaSequence:-1,nextPart:-1,
|
|
2531
|
-
loadedOnce:!1},u=function(){return q.contentSteeringManager_&&1<b.length?q.contentSteeringManager_.getLocations(a):t.redirectUris.concat(shaka.hls.Utils.constructUris([q.masterPlaylistUri_],b,q.globalVariables_))};t.getUris=u;var w=function(y){var A,
|
|
2532
|
-
if(y.aborted)return
|
|
2533
|
-
q.needsClosedCaptionsDetection_&&d==
|
|
2534
|
-
t.maxTimestamp=
|
|
2539
|
+
loadedOnce:!1},u=function(){return q.contentSteeringManager_&&1<b.length?q.contentSteeringManager_.getLocations(a):t.redirectUris.concat(shaka.hls.Utils.constructUris([q.masterPlaylistUri_],b,q.globalVariables_))};t.getUris=u;var w=function(y){var B,A,z,C,D,E,H,I,G,L,K,F,M,J,N,P,O,W,Q,S,V,R,T;return $jscomp.asyncExecutePromiseGeneratorProgram(function(X){switch(X.nextAddress){case 1:return B=shaka.util.ManifestParserUtils.ContentType,X.setCatchFinallyBlocks(2),X.yield(y.promise,4);case 4:A=X.yieldResult;
|
|
2540
|
+
if(y.aborted)return X.return();z=A.uri;z!=A.originalUri&&(C=t.getUris(),C.includes(z)||t.redirectUris.push(z));D=q.manifestTextParser_.parsePlaylist(A.data);if(D.type!=shaka.hls.PlaylistType.MEDIA)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_INVALID_PLAYLIST_HIERARCHY);E=shaka.hls.Utils.filterTagsByName(D.tags,"EXT-X-DEFINE");H=q.parseMediaVariables_(E,z);I=!1;(!q.codecInfoInManifest_&&q.config_.hls.disableCodecGuessing||
|
|
2541
|
+
q.needsClosedCaptionsDetection_&&d==B.VIDEO&&!q.config_.hls.disableClosedCaptionsDetection)&&0<D.segments.length&&(q.needsClosedCaptionsDetection_=!1,I=!0);G=!q.codecInfoInManifest_&&q.config_.hls.disableCodecGuessing;L=q.isLive_();return X.yield(q.convertParsedPlaylistIntoStreamInfo_(a,H,D,u,z,c,d,e,f,g,h,k,l,m,n,p,void 0,I,G),5);case 5:K=X.yieldResult;if(y.aborted)return X.return();F=K.stream;q.determineStartTime_(D);q.isLive_()&&!L&&q.changePresentationTimelineToLive_(D);t.minTimestamp=K.minTimestamp;
|
|
2542
|
+
t.maxTimestamp=K.maxTimestamp;t.canSkipSegments=K.canSkipSegments;t.canBlockReload=K.canBlockReload;t.hasEndList=K.hasEndList;t.mediaSequenceToStartTime=K.mediaSequenceToStartTime;t.nextMediaSequence=K.nextMediaSequence;t.nextPart=K.nextPart;t.loadedOnce=!0;r.segmentIndex=F.segmentIndex;r.encrypted=F.encrypted;r.drmInfos=F.drmInfos;r.keyIds=F.keyIds;r.mimeType=F.mimeType;r.bandwidth=r.bandwidth||F.bandwidth;r.codecs=r.codecs||F.codecs;r.closedCaptions=r.closedCaptions||F.closedCaptions;r.width=r.width||
|
|
2535
2543
|
F.width;r.height=r.height||F.height;r.hdr=r.hdr||F.hdr;r.colorGamut=r.colorGamut||F.colorGamut;r.frameRate=r.frameRate||F.frameRate;"und"==r.language&&"und"!=F.language&&(r.language=F.language);r.language=r.language||F.language;r.channelsCount=r.channelsCount||F.channelsCount;r.audioSamplingRate=r.audioSamplingRate||F.audioSamplingRate;q.setFullTypeForStream_(r);r.drmInfos.length&&q.playerInterface_.newDrmInfo(r);M=!1;if(!k&&r.closedCaptions||k&&r.closedCaptions&&k.size!=r.closedCaptions.size)M=!0;
|
|
2536
|
-
q.manifest_&&M&&q.playerInterface_.makeTextStreamsForClosedCaptions(q.manifest_);if(d==
|
|
2537
|
-
(Y.initSegmentReference.mediaQuality=
|
|
2538
|
-
r.closeSegmentIndex();if(
|
|
2544
|
+
q.manifest_&&M&&q.playerInterface_.makeTextStreamsForClosedCaptions(q.manifest_);if(d==B.VIDEO||d==B.AUDIO)for(J=$jscomp.makeIterator(q.uriToStreamInfosMap_.values()),N=J.next();!N.done;N=J.next())P=N.value,P.loadedOnce||P.type!=d||(P.stream.mimeType=F.mimeType,q.setFullTypeForStream_(P.stream));d==B.TEXT&&(O=F.segmentIndex.earliestReference())&&O.initSegmentReference&&(r.mimeType="application/mp4",q.setFullTypeForStream_(r));W=shaka.media.QualityObserver.createQualityInfo(r);r.segmentIndex.forEachTopLevelReference(function(Y){Y.initSegmentReference&&
|
|
2545
|
+
(Y.initSegmentReference.mediaQuality=W)});q.hasEnoughInfoToFinalizeStreams_()&&(q.streamsFinalized_?q.finalizeStreams_([t]):(q.streamsFinalized_=!0,Q=Array.from(q.uriToStreamInfosMap_.values()),S=Q.filter(function(Y){return Y.stream.segmentIndex}),q.finalizeStreams_(S),q.determineDuration_(),V=q.getUpdatePlaylistDelay_(),0<V&&q.updatePlaylistTimer_.tickAfter(V)));q.processDateRangeTags_(D.tags,r.type,H,u);q.manifest_&&(q.manifest_.startTime=q.startTime_);X.leaveTryBlock(0);break;case 2:R=X.enterCatchBlock();
|
|
2546
|
+
r.closeSegmentIndex();if(R.code===shaka.util.Error.Code.OPERATION_ABORTED)return X.return();T=q.playerInterface_.disableStream(r);if(!T)throw R;X.jumpToEnd()}})},v=null,x;r.createSegmentIndex=function(){if(v)return v;if(r.isAudioMuxedInVideo){var y=new shaka.media.SegmentIndex([]);r.segmentIndex=y;return Promise.resolve()}x=q.requestManifest_(t.getUris(),!0);return v=new Promise(function(B){B(w(x))})};r.closeSegmentIndex=function(){v&&!r.segmentIndex&&x.abort();r.segmentIndex&&(r.segmentIndex.release(),
|
|
2539
2547
|
r.segmentIndex=null);v=null};return t};shaka.hls.HlsParser.prototype.getMinDuration_=function(){for(var a=Infinity,b=$jscomp.makeIterator(this.uriToStreamInfosMap_.values()),c=b.next();!c.done;c=b.next())c=c.value,c.stream.segmentIndex&&"text"!=c.stream.type&&!c.stream.isAudioMuxedInVideo&&(a=Math.min(a,c.maxTimestamp));return a};
|
|
2540
2548
|
shaka.hls.HlsParser.prototype.getLiveDuration_=function(){for(var a=Infinity,b=Infinity,c=$jscomp.makeIterator(this.uriToStreamInfosMap_.values()),d=c.next();!d.done;d=c.next())d=d.value,d.stream.segmentIndex&&"text"!=d.stream.type&&!d.stream.isAudioMuxedInVideo&&(a=Math.min(a,d.maxTimestamp),b=Math.min(b,d.minTimestamp));return a-b};
|
|
2541
2549
|
shaka.hls.HlsParser.prototype.notifySegmentsForStreams_=function(a){var b=[];a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next())c=c.value,c.segmentIndex&&c.segmentIndex.forEachTopLevelReference(function(d){b.push(d)});this.presentationTimeline_.notifySegments(b)};
|
|
2542
2550
|
shaka.hls.HlsParser.prototype.finalizeStreams_=function(a){if(!this.isLive_())for(var b=this.getMinDuration_(),c=$jscomp.makeIterator(a),d=c.next();!d.done;d=c.next())d.value.stream.segmentIndex.fit(0,b);this.notifySegmentsForStreams_(a.map(function(f){return f.stream}));c=Array.from(this.uriToStreamInfosMap_.values()).filter(function(f){return f.stream.segmentIndex});var e=shaka.util.ManifestParserUtils.ContentType;b=c.some(function(f){return f.stream.type==e.AUDIO});d=c.some(function(f){return f.stream.type==
|
|
2543
2551
|
e.VIDEO});c=this.isLive_()&&!this.usesProgramDateTime_;b=!this.isLive_()&&this.usesProgramDateTime_&&!(b&&d);this.config_.hls.ignoreManifestProgramDateTime||c||b?this.syncStreamsWithSequenceNumber_(a,c):(this.syncStreamsWithProgramDateTime_(a),0<this.config_.hls.ignoreManifestProgramDateTimeForTypes.length&&this.syncStreamsWithSequenceNumber_(a))};shaka.hls.HlsParser.prototype.ignoreManifestProgramDateTimeFor_=function(a){return this.config_.hls.ignoreManifestProgramDateTime?!0:this.config_.hls.ignoreManifestProgramDateTimeForTypes.includes(a)};
|
|
2544
2552
|
shaka.hls.HlsParser.prototype.hasEnoughInfoToFinalizeStreams_=function(){if(!this.manifest_)return!1;for(var a=[],b=[],c=$jscomp.makeIterator(this.manifest_.variants),d=c.next();!d.done;d=c.next())d=d.value,d.video&&a.push(d.video),d.audio&&b.push(d.audio);return 0<a.length&&!a.some(function(e){return e.segmentIndex})||0<b.length&&!b.some(function(e){return e.segmentIndex})?!1:!0};
|
|
2545
|
-
shaka.hls.HlsParser.prototype.convertParsedPlaylistIntoStreamInfo_=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v){w=void 0===w?!0:w;v=void 0===v?!0:v;var x=this,y,A,
|
|
2546
|
-
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_EMPTY_MEDIA_PLAYLIST);x.determinePresentationType_(c);x.isLive_()&&x.determineLastTargetDuration_(c);
|
|
2547
|
-
|
|
2548
|
-
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_KEYFORMATS_NOT_SUPPORTED);O=x.makeStreamObject_(a,f,g,h,k,l,m,n,p,q,r,t);O.encrypted=N&&!
|
|
2549
|
-
"EXT-X-SERVER-CONTROL"))?null!=
|
|
2553
|
+
shaka.hls.HlsParser.prototype.convertParsedPlaylistIntoStreamInfo_=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v){w=void 0===w?!0:w;v=void 0===v?!0:v;var x=this,y,B,A,z,C,D,E,H,I,G,L,K,F,M,J,N,P,O,W,Q,S,V,R,T,X,Y,U,ba,aa;return $jscomp.asyncExecutePromiseGeneratorProgram(function(Z){switch(Z.nextAddress){case 1:y=c.segments||[];B=y.every(function(ca){return shaka.hls.Utils.getFirstTagWithName(ca.tags,"EXT-X-GAP")?!0:!1});if(!y.length||B)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
2554
|
+
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_EMPTY_MEDIA_PLAYLIST);x.determinePresentationType_(c);x.isLive_()&&x.determineLastTargetDuration_(c);A=x.isLive_()?x.mediaSequenceToStartTimeByType_.get(g):new Map;z=x.createSegments_(c,A,b,d,g);C=z.segments;D=z.bandwidth;L=G=I=H=E=null;if(!(0<C.length&&w)){Z.jumpTo(2);break}return Z.yield(x.getBasicInfoFromSegments_(C),3);case 3:K=Z.yieldResult,g=K.type,h=K.language,m=K.channelCount,r=K.sampleRate,x.config_.disableText||(n=K.closedCaptions),
|
|
2555
|
+
H=K.height,E=K.width,I=K.videoRange,G=K.colorGamut,L=K.frameRate,v&&(u=K.mimeType,f=K.codecs);case 2:if(u){Z.jumpTo(4);break}return Z.yield(x.guessMimeType_(g,f,C),5);case 5:u=Z.yieldResult,g!=shaka.util.ManifestParserUtils.ContentType.TEXT||f||"application/mp4"!=u||!C[0]||C[0].initSegmentReference||(u="text/vtt");case 4:return Z.yield(x.parseDrmInfo_(c,u,d,b),6);case 6:F=Z.yieldResult;M=F.drmInfos;J=F.keyIds;N=F.encrypted;P=F.aesEncrypted;if(N&&!M.length&&!P)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
2556
|
+
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_KEYFORMATS_NOT_SUPPORTED);O=x.makeStreamObject_(a,f,g,h,k,l,m,n,p,q,r,t);O.encrypted=N&&!P;O.drmInfos=M;O.keyIds=J;O.mimeType=u;D&&(O.bandwidth=D);x.setFullTypeForStream_(O);g==shaka.util.ManifestParserUtils.ContentType.VIDEO&&(E||H||I||G)&&x.addVideoAttributes_(O,E,H,L,I,null,G);x.isLive_()&&x.determineLastTargetDuration_(c);W=C[0].startTime;Q=C[C.length-1];S=Q.endTime;V=new shaka.media.SegmentIndex(C);O.segmentIndex=V;T=(R=shaka.hls.Utils.getFirstTagWithName(c.tags,
|
|
2557
|
+
"EXT-X-SERVER-CONTROL"))?null!=R.getAttribute("CAN-SKIP-UNTIL"):!1;X=R?null!=R.getAttribute("CAN-BLOCK-RELOAD"):!1;Y=shaka.hls.Utils.getFirstTagWithNameAsNumber(c.tags,"EXT-X-MEDIA-SEQUENCE",0);U=x.getNextMediaSequenceAndPart_(Y,C);ba=U.nextMediaSequence;aa=U.nextPart;return Z.return({stream:O,type:g,redirectUris:[],getUris:d,minTimestamp:W,maxTimestamp:S,canSkipSegments:T,canBlockReload:X,hasEndList:!1,firstSequenceNumber:-1,nextMediaSequence:ba,nextPart:aa,mediaSequenceToStartTime:A,loadedOnce:!1})}})};
|
|
2550
2558
|
shaka.hls.HlsParser.prototype.getNextMediaSequenceAndPart_=function(a,b){a=a+b.length-1;var c=-1;if(!b.length)return a++,{nextMediaSequence:a,nextPart:c};b=b[b.length-1];var d=b.partialReferences;if(!b.partialReferences.length)return a++,b.hasByterangeOptimization()&&(c=0),{nextMediaSequence:a,nextPart:c};c=d.length-1;d[d.length-1].isPreload()||(a++,c=0);return{nextMediaSequence:a,nextPart:c}};
|
|
2551
2559
|
shaka.hls.HlsParser.prototype.makeStreamObject_=function(a,b,c,d,e,f,g,h,k,l,m,n){a=this.guessMimeTypeBeforeLoading_(c,b)||this.guessMimeTypeFallback_(c);var p=[];if(k){k=$jscomp.makeIterator(k.split(","));for(var q=k.next();!q.done;q=k.next())p.push(q.value)}k=void 0;q=null;c==shaka.util.ManifestParserUtils.ContentType.TEXT?k=p.includes("public.accessibility.transcribes-spoken-dialog")&&p.includes("public.accessibility.describes-music-and-sound")?shaka.util.ManifestParserUtils.TextStreamKind.CLOSED_CAPTION:
|
|
2552
2560
|
shaka.util.ManifestParserUtils.TextStreamKind.SUBTITLE:p.includes("public.accessibility.describes-video")&&(q=shaka.media.ManifestParser.AccessibilityPurpose.VISUALLY_IMPAIRED);p.length||k!==shaka.util.ManifestParserUtils.TextStreamKind.SUBTITLE||p.push(shaka.util.ManifestParserUtils.TextStreamKind.SUBTITLE);b={id:this.globalId_++,originalId:f,groupId:null,createSegmentIndex:function(){return Promise.resolve()},segmentIndex:null,mimeType:a,codecs:b,kind:c==shaka.util.ManifestParserUtils.ContentType.TEXT?
|
|
2553
2561
|
shaka.util.ManifestParserUtils.TextStreamKind.SUBTITLE:void 0,encrypted:!1,drmInfos:[],keyIds:new Set,language:this.getLanguage_(d),originalLanguage:d,label:f,type:c,primary:e,trickModeVideo:null,emsgSchemeIdUris:null,frameRate:void 0,pixelAspectRatio:void 0,width:void 0,height:void 0,bandwidth:void 0,roles:p,forced:l,channelsCount:g,audioSamplingRate:m,spatialAudio:n,closedCaptions:h,hdr:void 0,colorGamut:void 0,videoLayout:void 0,tilesLayout:void 0,accessibilityPurpose:q,external:!1,fastSwitching:!1,
|
|
2554
2562
|
fullMimeTypes:new Set,isAudioMuxedInVideo:!1};this.setFullTypeForStream_(b);return b};
|
|
2555
|
-
shaka.hls.HlsParser.prototype.parseDrmInfo_=function(a,b,c,d){var e=this,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,A,
|
|
2556
|
-
p.value,f.set(q,m);t=r=!1;u=[];w=new Set;v=$jscomp.makeIterator(f);x=v.next();case 2:if(x.done){M.jumpTo(4);break}y=x.value;
|
|
2557
|
-
b,c,D,d),8);case 8:
|
|
2563
|
+
shaka.hls.HlsParser.prototype.parseDrmInfo_=function(a,b,c,d){var e=this,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,B,A,z,C,D,E,H,I,G,L,K,F;return $jscomp.asyncExecutePromiseGeneratorProgram(function(M){switch(M.nextAddress){case 1:f=new Map;if(a.segments)for(g=$jscomp.makeIterator(a.segments),h=g.next();!h.done;h=g.next())if(k=h.value,l=shaka.hls.Utils.filterTagsByName(k.tags,"EXT-X-KEY"),m=null,l.length)for(m=e.getInitSegmentReference_(a,k.tags,c,d),n=$jscomp.makeIterator(l),p=n.next();!p.done;p=n.next())q=
|
|
2564
|
+
p.value,f.set(q,m);t=r=!1;u=[];w=new Set;v=$jscomp.makeIterator(f);x=v.next();case 2:if(x.done){M.jumpTo(4);break}y=x.value;B=$jscomp.makeIterator(y);A=B.next().value;z=B.next().value;C=A;D=z;E=C.getRequiredAttrValue("METHOD");if("NONE"==E){M.jumpTo(3);break}r=!0;H=C.getAttributeValue("KEYFORMAT")||"identity";I=null;if(e.isAesMethod_(E)){t=!0;M.jumpTo(3);break}if("identity"!=H){I=(G=shaka.hls.HlsParser.KEYFORMATS_TO_DRM_PARSERS_.get(H))?G(C,b):null;M.jumpTo(6);break}return M.yield(e.identityDrmParser_(C,
|
|
2565
|
+
b,c,D,d),8);case 8:I=M.yieldResult;case 6:if(I){if(I.keyIds)for(L=$jscomp.makeIterator(I.keyIds),K=L.next();!K.done;K=L.next())F=K.value,w.add(F);u.push(I)}else shaka.log.warning("Unsupported HLS KEYFORMAT",H);case 3:x=v.next();M.jumpTo(2);break;case 4:return M.return({drmInfos:u,keyIds:w,encrypted:r,aesEncrypted:t})}})};
|
|
2558
2566
|
shaka.hls.HlsParser.prototype.parseAESDrmTag_=function(a,b,c,d){var e=this;if(!window.crypto||!window.crypto.subtle)throw shaka.log.alwaysWarn("Web Crypto API is not available to decrypt AES. (Web Crypto only exists in secure origins like https)"),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.NO_WEB_CRYPTO_API);var f=0,g=a.getAttributeValue("IV","");if(g){var h=shaka.util.Uint8ArrayUtils.fromHex(g.substr(2));if(16!=h.byteLength)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
2559
2567
|
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.AES_128_INVALID_IV_LENGTH);}else f=shaka.hls.Utils.getFirstTagWithNameAsNumber(b.tags,"EXT-X-MEDIA-SEQUENCE",0);var k=shaka.hls.Utils.constructSegmentUris(c(),a.getRequiredAttrValue("URI"),d),l=k.sort().join("");b=a.toString()+"-"+f+"-"+l;if(!this.aesKeyInfoMap_.has(b)){var m={bitsKey:128,blockCipherMode:"CBC",iv:h,firstMediaSequenceNumber:f};switch(a.getRequiredAttrValue("METHOD")){case "AES-256":m.bitsKey=256;break;case "AES-256-CTR":m.bitsKey=
|
|
2560
2568
|
256,m.blockCipherMode="CTR"}m.fetchKey=function(){var n,p,q,r,t;return $jscomp.asyncExecutePromiseGeneratorProgram(function(u){if(1==u.nextAddress)return e.aesKeyMap_.has(l)||(n=shaka.net.NetworkingEngine.RequestType.KEY,p=shaka.net.NetworkingEngine.makeRequest(k,e.config_.retryParameters),q=e.makeNetworkRequest_(p,n).promise,e.aesKeyMap_.set(l,q)),u.yield(e.aesKeyMap_.get(l),2);if(3!=u.nextAddress){r=u.yieldResult;if(!r.data||r.data.byteLength!=m.bitsKey/8)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
@@ -2569,24 +2577,24 @@ b+=Math.ceil(Number(e[0]))):b+=this.maxTargetDuration_}}this.startTime_&&0>this.
|
|
|
2569
2577
|
shaka.hls.HlsParser.prototype.getInitSegmentReference_=function(a,b,c,d){var e=shaka.hls.Utils.getFirstTagWithName(b,"EXT-X-MAP");if(!e)return null;var f=e.getRequiredAttrValue("URI"),g=shaka.hls.Utils.constructSegmentUris(c(),f,d);f=[g.toString(),e.getAttributeValue("BYTERANGE","")].join("-");if(!this.mapTagToInitSegmentRefMap_.has(f)){var h=void 0,k=null;b=$jscomp.makeIterator(b);for(var l=b.next();!l.done;l=b.next())l=l.value,"EXT-X-KEY"==l.name?this.isAesMethod_(l.getRequiredAttrValue("METHOD"))&&
|
|
2570
2578
|
l.id<e.id&&(h=this.parseAESDrmTag_(l,a,c,d)):"EXT-X-BYTERANGE"==l.name&&l.id<e.id&&(k=l);a=this.createInitSegmentReference_(g,e,k,h);this.mapTagToInitSegmentRefMap_.set(f,a)}return this.mapTagToInitSegmentRefMap_.get(f)};
|
|
2571
2579
|
shaka.hls.HlsParser.prototype.createInitSegmentReference_=function(a,b,c,d){var e=0,f=null;b=b.getAttributeValue("BYTERANGE");!b&&c&&(b=c.value);b&&(e=b.split("@"),f=Number(e[0]),e=Number(e[1]),f=e+f-1,d&&(c=f+1-e,c%16&&(f+=16-c%16)));return new shaka.media.InitSegmentReference(function(){return a},e,f,null,null,null,d)};
|
|
2572
|
-
shaka.hls.HlsParser.prototype.createSegmentReference_=function(a,b,c,d,e,f,g,h,k){var l=shaka.hls.HlsParser;f=function(
|
|
2580
|
+
shaka.hls.HlsParser.prototype.createSegmentReference_=function(a,b,c,d,e,f,g,h,k){var l=shaka.hls.HlsParser;f=function(J){J=(new goog.Uri(J)).getPath().split(".").pop();var N=l.EXTENSION_MAP_BY_CONTENT_TYPE_.get(g).get(J);N||(N=l.RAW_FORMATS_TO_MIME_TYPES_.get(J));return N};var m=c.tags,n=shaka.hls.Utils.getFirstTagWithName(m,"EXTINF"),p=0,q=0,r=null;c.partialSegments.length&&(this.manifest_.isLowLatency=!0);var t=null;if(!this.config_.hls.ignoreManifestProgramDateTime){var u=shaka.hls.Utils.getFirstTagWithName(m,
|
|
2573
2581
|
"EXT-X-PROGRAM-DATE-TIME");u&&u.value&&(t=shaka.util.TXml.parseDate(u.value),goog.asserts.assert(null!=t,"EXT-X-PROGRAM-DATE-TIME format not valid"),this.usesProgramDateTime_=!0)}var w=shaka.media.SegmentReference.Status.AVAILABLE;shaka.hls.Utils.getFirstTagWithName(m,"EXT-X-GAP")&&(this.manifest_.gapCount++,w=shaka.media.SegmentReference.Status.MISSING);if(!n){if(0==c.partialSegments.length)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_REQUIRED_TAG_MISSING,
|
|
2574
|
-
"EXTINF");if(!this.lowLatencyMode_)return null}var v=[];u=!1;var x=null,y=!1,
|
|
2575
|
-
(L=(L=D.getAttributeValue("BYTERANGE-START"))?Number(L):0,(E=D.getAttributeValue("BYTERANGE-LENGTH"))?
|
|
2576
|
-
function(
|
|
2577
|
-
(
|
|
2582
|
+
"EXTINF");if(!this.lowLatencyMode_)return null}var v=[];u=!1;var x=null,y=!1,B=!1;if(this.lowLatencyMode_&&c.partialSegments.length){p=a&&window.ReadableStream&&this.config_.hls.allowLowLatencyByteRangeOptimization;for(var A=t,z={},C=0;C<c.partialSegments.length;z={uris$jscomp$25:void 0,pUri:void 0},C++){var D=c.partialSegments[C],E=0==C?b:v[v.length-1],H=0==C?d:E.endTime,I=Number(D.getAttributeValue("DURATION"))||this.partialTargetDuration_;if(I){var G=H+I,L=0,K=null;"EXT-X-PRELOAD-HINT"==D.name?
|
|
2583
|
+
(L=(L=D.getAttributeValue("BYTERANGE-START"))?Number(L):0,(E=D.getAttributeValue("BYTERANGE-LENGTH"))?K=L+Number(E)-1:L&&(K=Number.MAX_SAFE_INTEGER)):(L=D.getAttributeValue("BYTERANGE"),K=$jscomp.makeIterator(this.parseByteRange_(E,L)),L=K.next().value,K=K.next().value);z.pUri=D.getAttributeValue("URI");if(z.pUri){E=shaka.media.SegmentReference.Status.AVAILABLE;"YES"==D.getAttributeValue("GAP")&&(this.manifest_.gapCount++,E=shaka.media.SegmentReference.Status.MISSING,y=!0);z.uris$jscomp$25=null;var F=
|
|
2584
|
+
function(J){return function(){null==J.uris$jscomp$25&&(goog.asserts.assert(J.pUri,"Partial uri should be defined!"),J.uris$jscomp$25=shaka.hls.Utils.constructSegmentUris(h(),J.pUri,e));return J.uris$jscomp$25}}(z);p&&0<=L&&null!=K&&(x=F,u=!0);H=new shaka.media.SegmentReference(H,G,F,L,K,a,0,0,Infinity,[],"",null,A,E,k);"EXT-X-PRELOAD-HINT"==D.name&&(H.markAsPreload(),B=!0);"YES"!=D.getAttributeValue("INDEPENDENT")&&0<C&&H.markAsNonIndependent();if(z=f(z.pUri))H.mimeType=z,l.MIME_TYPES_WITHOUT_INIT_SEGMENT_.has(z)&&
|
|
2585
|
+
(H.initSegmentReference=null);v.push(H);A&&(A+=I)}}}}if(n){n=n.value.split(",");n=Number(n[0]);if(0==n)return null;p=d+n}else if(v.length)p=v[v.length-1].endTime;else return null;u&&(y||0!=v[0].startByte?(u=!1,x=null):v=[]);(y=shaka.hls.Utils.getFirstTagWithName(m,"EXT-X-BYTERANGE"))?(r=$jscomp.makeIterator(this.parseByteRange_(b,y.value)),q=r.next().value,r=r.next().value):v.length&&(q=v[0].startByte,r=v[v.length-1].endByte);b="";y=null;g==shaka.util.ManifestParserUtils.ContentType.IMAGE&&(b="1x1",
|
|
2578
2586
|
m=shaka.hls.Utils.getFirstTagWithName(m,"EXT-X-TILES"))&&(b=m.getRequiredAttrValue("LAYOUT"),(m=m.getAttributeValue("DURATION"))&&(y=Number(m)));var M=null;a=new shaka.media.SegmentReference(d,p,function(){if(x)return x();null==M&&(M=shaka.hls.Utils.constructSegmentUris(h(),c.verbatimSegmentUri,e));return M||[]},q,r,a,0,0,Infinity,v,b,y,t,w,k,0<v.length&&!!c.verbatimSegmentUri);if(d=f(c.verbatimSegmentUri))a.mimeType=d,l.MIME_TYPES_WITHOUT_INIT_SEGMENT_.has(d)&&(a.initSegmentReference=null);u&&(this.lowLatencyByterangeOptimization_=
|
|
2579
|
-
!0,a.markAsByterangeOptimization(),
|
|
2580
|
-
shaka.hls.HlsParser.prototype.processDateRangeTags_=function(a,b,c,d){var e=shaka.util.ManifestParserUtils.ContentType;if(b==e.VIDEO||b==e.AUDIO){e=shaka.hls.Utils;var f=this.presentationTimeline_.getInitialProgramDateTime();if(f&&!this.ignoreManifestProgramDateTimeFor_(b))for(a=shaka.hls.Utils.filterTagsByName(a,"EXT-X-DATERANGE"),a=a.filter(function(
|
|
2581
|
-
|
|
2582
|
-
g.getAttributeValue("PLANNED-DURATION");if(r){var t=parseFloat(r);isNaN(t)||(n=m+t);if(0>l-f+t)continue}}var u=g.getAttributeValue("CLASS")||"com.apple.quicktime.HLS",w="YES"==g.getAttributeValue("END-ON-NEXT");if(null==n&&w){for(var v=b+1;v<a.length;v++){var x=a[v].getAttributeValue("CLASS")||"com.apple.quicktime.HLS";if(u==x){var y=a[v].getRequiredAttrValue("START-DATE"),
|
|
2583
|
-
"DURATION","END-ON-NEXT"];for(var
|
|
2587
|
+
!0,a.markAsByterangeOptimization(),B&&a.markAsPreload());return a};shaka.hls.HlsParser.prototype.parseByteRange_=function(a,b){var c=0,d=null;b&&(c=b.split("@"),b=Number(c[0]),c[1]?c=Number(c[1]):(goog.asserts.assert(a,"Cannot refer back to previous HLS segment!"),c=a.endByte+1),d=c+b-1);return[c,d]};
|
|
2588
|
+
shaka.hls.HlsParser.prototype.processDateRangeTags_=function(a,b,c,d){var e=shaka.util.ManifestParserUtils.ContentType;if(b==e.VIDEO||b==e.AUDIO){e=shaka.hls.Utils;var f=this.presentationTimeline_.getInitialProgramDateTime();if(f&&!this.ignoreManifestProgramDateTimeFor_(b))for(a=shaka.hls.Utils.filterTagsByName(a,"EXT-X-DATERANGE"),a=a.filter(function(H){return null!=H.getAttribute("START-DATE")}).sort(function(H,I){H=H.getRequiredAttrValue("START-DATE");I=I.getRequiredAttrValue("START-DATE");return H<
|
|
2589
|
+
I?-1:H>I?1:0}),b=0;b<a.length;b++){var g=a[b];try{var h=g.getRequiredAttrValue("ID");if(!this.dateRangeIdsEmitted_.has(h)){var k=g.getRequiredAttrValue("START-DATE"),l=shaka.util.TXml.parseDate(k);if(!isNaN(l)){goog.asserts.assert(null!=l,"Start date should not be null!");var m=Math.max(0,l-f),n=null,p=g.getAttributeValue("END-DATE");if(p){var q=shaka.util.TXml.parseDate(p);if(!isNaN(q)&&(goog.asserts.assert(null!=q,"End date should not be null!"),n=q-f,0>n))continue}if(null==n){var r=g.getAttributeValue("DURATION")||
|
|
2590
|
+
g.getAttributeValue("PLANNED-DURATION");if(r){var t=parseFloat(r);isNaN(t)||(n=m+t);if(0>l-f+t)continue}}var u=g.getAttributeValue("CLASS")||"com.apple.quicktime.HLS",w="YES"==g.getAttributeValue("END-ON-NEXT");if(null==n&&w){for(var v=b+1;v<a.length;v++){var x=a[v].getAttributeValue("CLASS")||"com.apple.quicktime.HLS";if(u==x){var y=a[v].getRequiredAttrValue("START-DATE"),B=shaka.util.TXml.parseDate(y);if(!isNaN(B)&&B&&B>l){n=Math.max(0,B-f);break}}}if(null==n)continue}v=["CLASS","START-DATE","END-DATE",
|
|
2591
|
+
"DURATION","END-ON-NEXT"];for(var A=[],z=$jscomp.makeIterator(g.attributes),C=z.next();!C.done;C=z.next()){var D=C.value;if(!v.includes(D.name)){var E=e.variableSubstitution(D.value,c);if("X-ASSET-URI"==D.name||"X-ASSET-LIST"==D.name)E=e.constructSegmentUris(d(),D.value,c)[0];A.push({key:D.name,description:"",data:E,mimeType:null,pictureType:null})}}if(1<A.length)this.playerInterface_.onMetadata(u,m,n,A);this.dateRangeIdsEmitted_.add(h)}}}catch(H){shaka.log.warning("Ignoring DATERANGE with errors",
|
|
2584
2592
|
g.toString())}}}};
|
|
2585
2593
|
shaka.hls.HlsParser.prototype.createSegments_=function(a,b,c,d,e){var f=a.segments;goog.asserts.assert(f.length,"Playlist should have segments!");var g=void 0,h=shaka.hls.Utils.getFirstTagWithNameAsNumber(a.tags,"EXT-X-DISCONTINUITY-SEQUENCE",-1),k=shaka.hls.Utils.getFirstTagWithNameAsNumber(a.tags,"EXT-X-MEDIA-SEQUENCE",0),l=shaka.hls.Utils.getFirstTagWithName(a.tags,"EXT-X-SKIP"),m=l?Number(l.getAttributeValue("SKIPPED-SEGMENTS")):0,n=k+m,p=0;this.isLive_()&&b.has(n)&&(p=b.get(n));0===p&&this.presentationType_==
|
|
2586
2594
|
shaka.hls.HlsParser.PresentationType_.LIVE&&0<b.size&&!b.has(n)&&null!=this.presentationTimeline_.getPresentationStartTime()&&(p=this.presentationTimeline_.getSegmentAvailabilityStart());var q=[],r=null;l=[];for(var t=0;t<f.length;t++){var u=f[t],w=0==t?p:r.endTime;n=k+m+t;shaka.hls.Utils.getFirstTagWithName(u.tags,"EXT-X-DISCONTINUITY")&&h++;var v=$jscomp.makeIterator(u.tags);for(var x=v.next();!x.done;x=v.next())x=x.value,"EXT-X-KEY"==x.name&&(g=this.isAesMethod_(x.getRequiredAttrValue("METHOD"))?
|
|
2587
2595
|
this.parseAESDrmTag_(x,a,d,c):void 0);b.set(n,w);v=this.getInitSegmentReference_(a,u.tags,d,c);if(w=this.createSegmentReference_(v,r,u,w,c,a,e,d,g))(r=shaka.hls.Utils.getFirstTagWithNameAsNumber(u.tags,"EXT-X-BITRATE"))?l.push({bitrate:r,duration:w.endTime-w.startTime}):l.length&&(r=l.pop(),r.duration+=w.endTime-w.startTime,l.push(r)),r=w,w.discontinuitySequence=h,this.ignoreManifestProgramDateTimeFor_(e)&&null!=this.minSequenceNumber_&&n<this.minSequenceNumber_||q.push(w)}a=void 0;l.length&&(a=l.reduce(function(y,
|
|
2588
|
-
|
|
2589
|
-
|
|
2596
|
+
B){return y+B.duration},0),a=Math.round(l.reduce(function(y,B){return y+B.bitrate*B.duration},0)/a*1E3));if(l=q.some(function(y){return null!=y.syncTime}))for(b={},c=0;c<q.length;b={forwardI:void 0,forwardAdd:void 0,backwardI:void 0,reference$jscomp$46:void 0,backwardAdd:void 0},c++)if(b.reference$jscomp$46=q[c],null==b.reference$jscomp$46.syncTime)for(b.forwardAdd=0,b.forwardI=c,d=function(y){return function(){var B=q[y.forwardI];if(B){if(null!=B.syncTime)return B.syncTime+y.forwardAdd;y.forwardAdd-=
|
|
2597
|
+
B.endTime-B.startTime;y.forwardI+=1}return null}}(b),b.backwardAdd=0,b.backwardI=c,f=function(y){return function(){var B=q[y.backwardI];if(B){B!=y.reference$jscomp$46&&(y.backwardAdd+=B.endTime-B.startTime);if(null!=B.syncTime)return B.syncTime+y.backwardAdd;--y.backwardI}return null}}(b);null==b.reference$jscomp$46.syncTime;)b.reference$jscomp$46.syncTime=f(),null==b.reference$jscomp$46.syncTime&&(b.reference$jscomp$46.syncTime=d());if(l)for(b=$jscomp.makeIterator(q),c=b.next();!c.done;c=b.next())for(d=
|
|
2590
2598
|
c.value,c=d.syncTime,d=$jscomp.makeIterator(d.partialReferences),f=d.next();!f.done;f=d.next())f=f.value,f.syncTime=c,c+=f.endTime-f.startTime;b=this.lowestSyncTime_;if(l&&Infinity!=b&&!this.ignoreManifestProgramDateTimeFor_(e))for(e=$jscomp.makeIterator(q),l=e.next();!l.done;l=e.next())l.value.syncAgainst(b);return{segments:q,bandwidth:a}};
|
|
2591
2599
|
shaka.hls.HlsParser.prototype.guessMimeTypeBeforeLoading_=function(a,b){if(a==shaka.util.ManifestParserUtils.ContentType.TEXT){if("vtt"==b||"wvtt"==b)return"text/vtt";if(b&&""!==b)return"application/mp4"}return a!=shaka.util.ManifestParserUtils.ContentType.IMAGE||b&&"jpeg"!=b?a==shaka.util.ManifestParserUtils.ContentType.AUDIO&&"mp4a.40.34"==b?"audio/mpeg":"mjpg"==b?"application/mp4":null:"image/jpeg"};
|
|
2592
2600
|
shaka.hls.HlsParser.prototype.guessMimeTypeFallback_=function(a){return a==shaka.util.ManifestParserUtils.ContentType.TEXT?"text/vtt":shaka.hls.HlsParser.EXTENSION_MAP_BY_CONTENT_TYPE_.get(a).get("mp4")};shaka.hls.HlsParser.prototype.getAvailableSegment_=function(a){goog.asserts.assert(a.length,"Should have segments!");for(var b=this.isLive_()?Math.trunc((a.length-1)/2):0,c=a[b];c.getStatus()==shaka.media.SegmentReference.Status.MISSING&&b+1<a.length;)b++,c=a[b];return{segment:c,segmentIndex:b}};
|
|
@@ -2608,10 +2616,10 @@ shaka.hls.HlsParser.playreadyDrmParser_=function(a){var b=a.getRequiredAttrValue
|
|
|
2608
2616
|
b,d,0);c=shaka.util.ManifestParserUtils.createDrmInfo("com.microsoft.playready",c,[{initDataType:"cenc",initData:b}]);if(a=shaka.util.TXml.parseXmlString(["<PLAYREADY>",shaka.util.Uint8ArrayUtils.toBase64(a),"</PLAYREADY>"].join("\n")))c.licenseServerUri=shaka.drm.PlayReady.getLicenseUrl(a);return c};
|
|
2609
2617
|
shaka.hls.HlsParser.wiseplayDrmParser_=function(a){var b=a.getRequiredAttrValue("METHOD"),c=["SAMPLE-AES","SAMPLE-AES-CTR"];if(!c.includes(b))return shaka.log.error("WisePlay in HLS is only supported with [",c.join(", "),"], not",b),null;c="cenc";"SAMPLE-AES"==b&&(c="cbcs");b=a.getRequiredAttrValue("URI");b=shaka.net.DataUriPlugin.parseRaw(b.split("?")[0]);b=shaka.util.BufferUtils.toUint8(b.data);c=shaka.util.ManifestParserUtils.createDrmInfo("com.huawei.wiseplay",c,[{initDataType:"cenc",initData:b}]);
|
|
2610
2618
|
if(a=a.getAttributeValue("KEYID"))a=a.toLowerCase(),goog.asserts.assert(a.startsWith("0x"),"Incorrect KEYID format!"),c.keyIds=new Set([a.substr(2)]);return c};
|
|
2611
|
-
shaka.hls.HlsParser.prototype.identityDrmParser_=function(a,b,c,d,e){var f=this,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,A
|
|
2619
|
+
shaka.hls.HlsParser.prototype.identityDrmParser_=function(a,b,c,d,e){var f=this,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,B,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(z){switch(z.nextAddress){case 1:if("video/mp2t"==b)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_MSE_ENCRYPTED_MP2T_NOT_SUPPORTED);if(shaka.util.Platform.isMediaKeysPolyfilled("apple"))throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,
|
|
2612
2620
|
shaka.util.Error.Code.HLS_MSE_ENCRYPTED_LEGACY_APPLE_MEDIA_KEYS_NOT_SUPPORTED);g=a.getRequiredAttrValue("METHOD");h=["SAMPLE-AES","SAMPLE-AES-CTR"];if(!h.includes(g))return shaka.log.error("Identity (ClearKey) in HLS is only supported with [",h.join(", "),"], not",g),z.return(null);k=shaka.hls.Utils.constructSegmentUris(c(),a.getRequiredAttrValue("URI"),e);if(k[0].startsWith("data:text/plain;base64,")){l=shaka.util.Uint8ArrayUtils.toHex(shaka.util.Uint8ArrayUtils.fromBase64(k[0].split("data:text/plain;base64,").pop()));
|
|
2613
2621
|
z.jumpTo(2);break}m=k.sort().join("");f.identityKeyMap_.has(m)||(n=shaka.net.NetworkingEngine.RequestType.KEY,p=shaka.net.NetworkingEngine.makeRequest(k,f.config_.retryParameters),q=f.makeNetworkRequest_(p,n).promise,f.identityKeyMap_.set(m,q));return z.yield(f.identityKeyMap_.get(m),3);case 3:r=z.yieldResult,l=shaka.util.Uint8ArrayUtils.toHex(r.data);case 2:t="00000000000000000000000000000000";if(!d){z.jumpTo(4);break}if(f.identityKidMap_.has(d)){u=f.identityKidMap_.get(d);z.jumpTo(5);break}w=shaka.util.Networking.createSegmentRequest(d.getUris(),
|
|
2614
|
-
d.getStartByte(),d.getEndByte(),f.config_.retryParameters);v=shaka.net.NetworkingEngine.RequestType.SEGMENT;x=shaka.net.NetworkingEngine.AdvancedRequestType.INIT_SEGMENT;return z.yield(f.makeNetworkRequest_(w,v,{type:x}).promise,6);case 6:y=z.yieldResult,u=shaka.media.SegmentUtils.getDefaultKID(y.data),f.identityKidMap_.set(d,u);case 5:u&&(t=u);case 4:return
|
|
2622
|
+
d.getStartByte(),d.getEndByte(),f.config_.retryParameters);v=shaka.net.NetworkingEngine.RequestType.SEGMENT;x=shaka.net.NetworkingEngine.AdvancedRequestType.INIT_SEGMENT;return z.yield(f.makeNetworkRequest_(w,v,{type:x}).promise,6);case 6:y=z.yieldResult,u=shaka.media.SegmentUtils.getDefaultKID(y.data),f.identityKidMap_.set(d,u);case 5:u&&(t=u);case 4:return B=new Map,B.set(t,l),A="cenc","SAMPLE-AES"==g&&(A="cbcs"),z.return(shaka.util.ManifestParserUtils.createDrmInfoFromClearKeys(B,A))}})};
|
|
2615
2623
|
goog.exportSymbol("shaka.hls.HlsParser",shaka.hls.HlsParser);shaka.hls.HlsParser.RAW_FORMATS_TO_MIME_TYPES_=(new Map).set("aac","audio/aac").set("ac3","audio/ac3").set("ec3","audio/ec3").set("mp3","audio/mpeg");shaka.hls.HlsParser.AUDIO_EXTENSIONS_TO_MIME_TYPES_=(new Map).set("mp4","audio/mp4").set("mp4a","audio/mp4").set("m4s","audio/mp4").set("m4i","audio/mp4").set("m4a","audio/mp4").set("m4f","audio/mp4").set("cmfa","audio/mp4").set("ts","video/mp2t").set("tsa","video/mp2t");
|
|
2616
2624
|
shaka.hls.HlsParser.VIDEO_EXTENSIONS_TO_MIME_TYPES_=(new Map).set("mp4","video/mp4").set("mp4v","video/mp4").set("m4s","video/mp4").set("m4i","video/mp4").set("m4v","video/mp4").set("m4f","video/mp4").set("cmfv","video/mp4").set("ts","video/mp2t").set("tsv","video/mp2t");
|
|
2617
2625
|
shaka.hls.HlsParser.TEXT_EXTENSIONS_TO_MIME_TYPES_=(new Map).set("mp4","application/mp4").set("m4s","application/mp4").set("m4i","application/mp4").set("m4f","application/mp4").set("cmft","application/mp4").set("vtt","text/vtt").set("webvtt","text/vtt").set("ttml","application/ttml+xml");shaka.hls.HlsParser.IMAGE_EXTENSIONS_TO_MIME_TYPES_=(new Map).set("jpg","image/jpeg").set("png","image/png").set("svg","image/svg+xml").set("webp","image/webp").set("avif","image/avif");
|
|
@@ -2701,10 +2709,10 @@ shaka.net.HttpPluginUtils.makeResponse=function(a,b,c,d,e,f,g){goog.asserts.asse
|
|
|
2701
2709
|
shaka.util.Error.Code.BAD_HTTP_STATUS,d,c,f,a,g,e||d);};shaka.net.HttpFetchPlugin=function(){};
|
|
2702
2710
|
shaka.net.HttpFetchPlugin.parse=function(a,b,c,d,e,f){var g=new shaka.net.HttpFetchPlugin.Headers_;shaka.util.MapUtils.asMap(b.headers).forEach(function(m,n){g.append(n,m)});var h=new shaka.net.HttpFetchPlugin.AbortController_,k={canceled:!1,timedOut:!1};a=shaka.net.HttpFetchPlugin.request_(a,b,c,{body:b.body||void 0,headers:g,method:b.method,signal:h.signal,credentials:b.allowCrossSiteCredentials?"include":void 0},k,d,e,b.streamDataCallback,f.minBytesForProgressEvents||0);a=new shaka.util.AbortableOperation(a,
|
|
2703
2711
|
function(){k.canceled=!0;h.abort();return Promise.resolve()});if(b=b.retryParameters.timeout){var l=new shaka.util.Timer(function(){k.timedOut=!0;h.abort()});l.tickAfter(b/1E3);a.finally(function(){l.stop()})}return a};
|
|
2704
|
-
shaka.net.HttpFetchPlugin.request_=function(a,b,c,d,e,f,g,h,k){var l,m,n,p,q,r,t,u,w,v,x,y,
|
|
2705
|
-
"non-HEAD responses should have a body");u=n.clone().body.getReader();v=(w=n.headers.get("Content-Length"))?parseInt(w,10):0;x=function(z){var C=function(){var D,E,
|
|
2706
|
-
D.value.byteLength;if(!h){L.jumpTo(5);break}return L.yield(h(D.value),5);case 5:
|
|
2707
|
-
shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.OPERATION_ABORTED,a,c);if(e.timedOut)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.TIMEOUT,a,c);throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.HTTP_ERROR,a,y,c);case 3:return
|
|
2712
|
+
shaka.net.HttpFetchPlugin.request_=function(a,b,c,d,e,f,g,h,k){var l,m,n,p,q,r,t,u,w,v,x,y,B;return $jscomp.asyncExecutePromiseGeneratorProgram(function(A){switch(A.nextAddress){case 1:return l=shaka.net.HttpFetchPlugin.fetch_,m=shaka.net.HttpFetchPlugin.ReadableStream_,p=new ArrayBuffer(0),r=q=0,t=Date.now(),A.setCatchFinallyBlocks(2),A.yield(l(a,d),4);case 4:n=A.yieldResult;g(shaka.net.HttpFetchPlugin.headersToGenericObject_(n.headers));if("HEAD"==d.method){A.jumpTo(5);break}goog.asserts.assert(n.body,
|
|
2713
|
+
"non-HEAD responses should have a body");u=n.clone().body.getReader();v=(w=n.headers.get("Content-Length"))?parseInt(w,10):0;x=function(z){var C=function(){var D,E,H,I,G;return $jscomp.asyncExecutePromiseGeneratorProgram(function(L){switch(L.nextAddress){case 1:return L.setCatchFinallyBlocks(2),L.yield(u.read(),4);case 4:D=L.yieldResult;L.leaveTryBlock(3);break;case 2:return E=L.enterCatchBlock(),shaka.log.v1("error reading from stream",E.message),L.return();case 3:if(D.done){L.jumpTo(5);break}q+=
|
|
2714
|
+
D.value.byteLength;if(!h){L.jumpTo(5);break}return L.yield(h(D.value),5);case 5:H=Date.now();I=q-r;if(100<H-t&&I>=k||D.done)G=D.done?0:v-q,f(H-t,I,G),r=q,t=H;D.done?(goog.asserts.assert(!D.value,'readObj should be unset when "done" is true.'),z.close()):(z.enqueue(D.value),C());L.jumpToEnd()}})};C()};new m({start:x});return A.yield(n.arrayBuffer(),6);case 6:p=A.yieldResult;case 5:A.leaveTryBlock(3);break;case 2:y=A.enterCatchBlock();if(e.canceled)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,
|
|
2715
|
+
shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.OPERATION_ABORTED,a,c);if(e.timedOut)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.TIMEOUT,a,c);throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.HTTP_ERROR,a,y,c);case 3:return B=shaka.net.HttpFetchPlugin.headersToGenericObject_(n.headers),A.return(shaka.net.HttpPluginUtils.makeResponse(B,p,n.status,
|
|
2708
2716
|
a,n.url,b,c))}})};shaka.net.HttpFetchPlugin.headersToGenericObject_=function(a){var b={};a.forEach(function(c,d){b[d.trim()]=c});return b};shaka.net.HttpFetchPlugin.isSupported=function(){if(window.ReadableStream)try{new ReadableStream({})}catch(a){return!1}else return!1;if(window.Response){if(!(new Response("")).body)return!1}else return!1;return!(!window.fetch||"polyfill"in window.fetch||!window.AbortController)};goog.exportSymbol("shaka.net.HttpFetchPlugin",shaka.net.HttpFetchPlugin);
|
|
2709
2717
|
goog.exportProperty(shaka.net.HttpFetchPlugin,"isSupported",shaka.net.HttpFetchPlugin.isSupported);goog.exportProperty(shaka.net.HttpFetchPlugin,"parse",shaka.net.HttpFetchPlugin.parse);shaka.net.HttpFetchPlugin.fetch_=window.fetch;shaka.net.HttpFetchPlugin.AbortController_=window.AbortController;shaka.net.HttpFetchPlugin.ReadableStream_=window.ReadableStream;shaka.net.HttpFetchPlugin.Headers_=window.Headers;
|
|
2710
2718
|
shaka.net.HttpFetchPlugin.isSupported()&&(shaka.net.NetworkingEngine.registerScheme("http",shaka.net.HttpFetchPlugin.parse,shaka.net.NetworkingEngine.PluginPriority.PREFERRED,!0),shaka.net.NetworkingEngine.registerScheme("https",shaka.net.HttpFetchPlugin.parse,shaka.net.NetworkingEngine.PluginPriority.PREFERRED,!0),shaka.net.NetworkingEngine.registerScheme("blob",shaka.net.HttpFetchPlugin.parse,shaka.net.NetworkingEngine.PluginPriority.PREFERRED,!0));shaka.net.HttpXHRPlugin=function(){};
|
|
@@ -2734,9 +2742,9 @@ shaka.offline.indexeddb.BaseStorageCell.prototype.getAllManifests=function(){var
|
|
|
2734
2742
|
d.return(c)})};shaka.offline.indexeddb.BaseStorageCell.prototype.convertSegmentData=function(a){return a};shaka.offline.indexeddb.BaseStorageCell.prototype.convertManifest=function(a){return Promise.resolve(a)};shaka.offline.indexeddb.BaseStorageCell.prototype.rejectAdd=function(a){return Promise.reject(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.NEW_KEY_OPERATION_NOT_SUPPORTED,"Cannot add new value to "+a))};
|
|
2735
2743
|
shaka.offline.indexeddb.BaseStorageCell.prototype.rejectUpdate=function(a){return Promise.reject(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.MODIFY_OPERATION_NOT_SUPPORTED,"Cannot modify values in "+a))};
|
|
2736
2744
|
shaka.offline.indexeddb.BaseStorageCell.prototype.add=function(a,b){var c=this,d,e,f,g,h,k,l;return $jscomp.asyncExecutePromiseGeneratorProgram(function(m){if(1==m.nextAddress){d=c.connection_.startReadWriteOperation(a);e=d.store();f=[];g=$jscomp.makeIterator(b);h=g.next();for(k={};!h.done;k={request$jscomp$60:void 0},h=g.next())l=h.value,k.request$jscomp$60=e.add(l),k.request$jscomp$60.onsuccess=function(n){return function(p){f.push(n.request$jscomp$60.result)}}(k);return m.yield(d.promise(),2)}return m.return(f)})};
|
|
2737
|
-
shaka.offline.indexeddb.BaseStorageCell.prototype.remove_=function(a,b,c){a=this.connection_.startReadWriteOperation(a);var d=a.store();b=$jscomp.makeIterator(b);for(var e=b.next(),f={};!e.done;f={key$jscomp$
|
|
2738
|
-
shaka.offline.indexeddb.BaseStorageCell.prototype.get_=function(a,b){var c=this,d,e,f,g,h,k,l;return $jscomp.asyncExecutePromiseGeneratorProgram(function(m){if(1==m.nextAddress){d=c.connection_.startReadOnlyOperation(a);e=d.store();f={};g=[];h=$jscomp.makeIterator(b);k=h.next();for(l={};!k.done;l={request$jscomp$61:void 0,key$jscomp$
|
|
2739
|
-
g.push(n.key$jscomp$
|
|
2745
|
+
shaka.offline.indexeddb.BaseStorageCell.prototype.remove_=function(a,b,c){a=this.connection_.startReadWriteOperation(a);var d=a.store();b=$jscomp.makeIterator(b);for(var e=b.next(),f={};!e.done;f={key$jscomp$148:void 0},e=b.next())f.key$jscomp$148=e.value,d.delete(f.key$jscomp$148).onsuccess=function(g){return function(){return c(g.key$jscomp$148)}}(f);return a.promise()};
|
|
2746
|
+
shaka.offline.indexeddb.BaseStorageCell.prototype.get_=function(a,b){var c=this,d,e,f,g,h,k,l;return $jscomp.asyncExecutePromiseGeneratorProgram(function(m){if(1==m.nextAddress){d=c.connection_.startReadOnlyOperation(a);e=d.store();f={};g=[];h=$jscomp.makeIterator(b);k=h.next();for(l={};!k.done;l={request$jscomp$61:void 0,key$jscomp$149:void 0},k=h.next())l.key$jscomp$149=k.value,l.request$jscomp$61=e.get(l.key$jscomp$149),l.request$jscomp$61.onsuccess=function(n){return function(){void 0==n.request$jscomp$61.result&&
|
|
2747
|
+
g.push(n.key$jscomp$149);f[n.key$jscomp$149]=n.request$jscomp$61.result}}(l);return m.yield(d.promise(),2)}if(g.length)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.KEY_NOT_FOUND,"Could not find values for "+g);return m.return(b.map(function(n){return f[n]}))})};shaka.offline.indexeddb.EmeSessionStorageCell=function(a,b){this.connection_=new shaka.offline.indexeddb.DBConnection(a);this.store_=b};shaka.offline.indexeddb.EmeSessionStorageCell.prototype.destroy=function(){return this.connection_.destroy()};
|
|
2740
2748
|
shaka.offline.indexeddb.EmeSessionStorageCell.prototype.getAll=function(){var a=this,b,c;return $jscomp.asyncExecutePromiseGeneratorProgram(function(d){return 1==d.nextAddress?(b=a.connection_.startReadOnlyOperation(a.store_),c=[],d.yield(b.forEachEntry(function(e,f){c.push(f)}),2)):3!=d.nextAddress?d.yield(b.promise(),3):d.return(c)})};
|
|
2741
2749
|
shaka.offline.indexeddb.EmeSessionStorageCell.prototype.add=function(a){var b=this.connection_.startReadWriteOperation(this.store_),c=b.store();a=$jscomp.makeIterator(a);for(var d=a.next();!d.done;d=a.next())c.add(d.value);return b.promise()};
|
|
2742
2750
|
shaka.offline.indexeddb.EmeSessionStorageCell.prototype.remove=function(a){var b=this,c;return $jscomp.asyncExecutePromiseGeneratorProgram(function(d){return 1==d.nextAddress?(c=b.connection_.startReadWriteOperation(b.store_),d.yield(c.forEachEntry(function(e,f,g){a.includes(f.sessionId)&&g.delete()}),2)):d.yield(c.promise(),0)})};shaka.offline.StorageCellHandle={};shaka.offline.StorageCellPath={};shaka.offline.StorageMuxer=function(){this.mechanisms_=new Map};shaka.offline.StorageMuxer.prototype.destroy=function(){for(var a=[],b=$jscomp.makeIterator(this.mechanisms_.values()),c=b.next();!c.done;c=b.next())a.push(c.value.destroy());this.mechanisms_.clear();return Promise.all(a)};
|
|
@@ -2821,25 +2829,25 @@ shaka.offline.Storage.prototype.configure=function(a,b){goog.asserts.assert("obj
|
|
|
2821
2829
|
shaka.offline.Storage.prototype.getConfiguration=function(){goog.asserts.assert(this.config_,"Config must not be null!");var a=shaka.util.PlayerConfiguration.createDefault();shaka.util.PlayerConfiguration.mergeConfigObjects(a,this.config_,shaka.util.PlayerConfiguration.createDefault());return a};shaka.offline.Storage.prototype.getNetworkingEngine=function(){return this.networkingEngine_};
|
|
2822
2830
|
shaka.offline.Storage.prototype.store=function(a,b,c,d,e){var f=this;goog.asserts.assert(this.networkingEngine_,"Cannot call |store| after calling |destroy|.");var g=this.getConfiguration(),h=new shaka.offline.DownloadManager(this.networkingEngine_);this.openDownloadManagers_.push(h);b=this.store_(a,b||{},d||[],e||[],function(){var k;return $jscomp.asyncExecutePromiseGeneratorProgram(function(l){if(1==l.nextAddress)return goog.asserts.assert(f.networkingEngine_,"Should not call |store| after |destroy|"),
|
|
2823
2831
|
c?l.jumpTo(2):l.yield(shaka.net.NetworkingUtils.getMimeType(a,f.networkingEngine_,g.manifest.retryParameters),3);2!=l.nextAddress&&(c=l.yieldResult);k=shaka.media.ManifestParser.getFactory(a,c||null);return l.return(k())})},g,h);b=new shaka.util.AbortableOperation(b,function(){return h.abortAll()});b.finally(function(){shaka.util.ArrayUtils.remove(f.openDownloadManagers_,h)});return this.startAbortableOperation_(b)};
|
|
2824
|
-
shaka.offline.Storage.prototype.store_=function(a,b,c,d,e,f,g){var h=this,k,l,m,n,p,q,r,t,u,w,v,x,y,A,
|
|
2825
|
-
if(!t)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.CANNOT_STORE_LIVE_OFFLINE,a);u=$jscomp.makeIterator(c);w=u.next();case 7:if(w.done){F.jumpTo(9);break}v=w.value;return F.yield(h.createExternalImageStream_(v,r),10);case 10:x=F.yieldResult;r.imageStreams.push(x);h.ensureNotDestroyed_();w=u.next();F.jumpTo(7);break;case 9:y=$jscomp.makeIterator(d),
|
|
2826
|
-
r.variants),C=r.variants.some(function(M){if(M.audio)for(var
|
|
2827
|
-
|
|
2828
|
-
|
|
2829
|
-
|
|
2830
|
-
shaka.offline.Storage.prototype.downloadSegments_=function(a,b,c,d,e,f,g,h,k){var l=this,m,n,p,q,r,t,u,w,v,x,y;return $jscomp.asyncExecutePromiseGeneratorProgram(function(
|
|
2831
|
-
M.nextAddress){C=$jscomp.makeIterator(
|
|
2832
|
-
|
|
2833
|
-
if(!l.getManifestIsEncrypted_(g)||!r||l.getManifestIncludesInitData_(g)){
|
|
2834
|
-
b,c,w,v,function(){return p()}),9);case 9:p(),goog.asserts.assert(!c.isIncomplete,"The manifest should be complete by now");case 7:
|
|
2832
|
+
shaka.offline.Storage.prototype.store_=function(a,b,c,d,e,f,g){var h=this,k,l,m,n,p,q,r,t,u,w,v,x,y,B,A,z,C,D,E,H,I,G,L,K;return $jscomp.asyncExecutePromiseGeneratorProgram(function(F){switch(F.nextAddress){case 1:return h.requireSupport_(),l=k=null,m=new shaka.offline.StorageMuxer,q=p=n=null,F.setCatchFinallyBlocks(2,3),F.yield(e(),5);case 5:return k=F.yieldResult,F.yield(h.parseManifest(a,k,f),6);case 6:r=F.yieldResult;h.ensureNotDestroyed_();t=!r.presentationTimeline.isLive()&&!r.presentationTimeline.isInProgress();
|
|
2833
|
+
if(!t)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.CANNOT_STORE_LIVE_OFFLINE,a);u=$jscomp.makeIterator(c);w=u.next();case 7:if(w.done){F.jumpTo(9);break}v=w.value;return F.yield(h.createExternalImageStream_(v,r),10);case 10:x=F.yieldResult;r.imageStreams.push(x);h.ensureNotDestroyed_();w=u.next();F.jumpTo(7);break;case 9:y=$jscomp.makeIterator(d),B=y.next();case 11:if(B.done)return shaka.drm.DrmEngine.configureClearKey(f.drm.clearKeys,
|
|
2834
|
+
r.variants),C=r.variants.some(function(M){if(M.audio)for(var J=$jscomp.makeIterator(M.audio.drmInfos),N=J.next();!N.done;N=J.next())if(N.value.licenseServerUri.startsWith("data:"))return!0;if(M.video)for(M=$jscomp.makeIterator(M.video.drmInfos),J=M.next();!J.done;J=M.next())if(J.value.licenseServerUri.startsWith("data:"))return!0;return!1}),D=f.offline.usePersistentLicense,C&&(D=!1),F.yield(h.createDrmEngine(r,function(M){q=q||M},f,D),15);A=B.value;return F.yield(h.createExternalTextStream_(r,A.uri,
|
|
2835
|
+
A.language,A.kind,A.mime,A.codecs),14);case 14:z=F.yieldResult;r.textStreams.push(z);h.ensureNotDestroyed_();B=y.next();F.jumpTo(11);break;case 15:l=F.yieldResult;h.ensureNotDestroyed_();if(q)throw q;return F.yield(h.filterManifest_(r,l,f,D),16);case 16:return F.yield(m.init(),17);case 17:return h.ensureNotDestroyed_(),F.yield(m.getActive(),18);case 18:return n=F.yieldResult,h.ensureNotDestroyed_(),goog.asserts.assert(l,"drmEngine should be non-null here."),E=h.makeManifestDB_(l,r,a,b,f,g,D),H=E.manifestDB,
|
|
2836
|
+
I=E.toDownload,F.yield(n.cell.addManifests([H]),19);case 19:G=F.yieldResult;h.ensureNotDestroyed_();p=G[0];goog.asserts.assert(l,"drmEngine should be non-null here.");h.ensureNotDestroyed_();if(q)throw q;return F.yield(h.downloadSegments_(I,p,H,g,f,n.cell,r,l,D),20);case 20:return h.ensureNotDestroyed_(),h.setManifestDrmFields_(r,H,l,D),F.yield(n.cell.updateManifest(p,H),21);case 21:return h.ensureNotDestroyed_(),L=shaka.offline.OfflineUri.manifest(n.path.mechanism,n.path.cell,p),F.return(shaka.offline.StoredContentUtils.fromManifestDB(L,
|
|
2837
|
+
H));case 3:return F.enterFinallyBlock(),F.yield(m.destroy(),22);case 22:if(!k){F.jumpTo(23);break}return F.yield(k.stop(),23);case 23:if(!l){F.jumpTo(25);break}return F.yield(l.destroy(),25);case 25:F.leaveFinallyBlock(0);break;case 2:K=F.enterCatchBlock();if(null==p){F.jumpTo(27);break}return F.yield(shaka.offline.Storage.cleanStoredManifest(p),27);case 27:throw q||K;}})};
|
|
2838
|
+
shaka.offline.Storage.prototype.downloadSegments_=function(a,b,c,d,e,f,g,h,k){var l=this,m,n,p,q,r,t,u,w,v,x,y;return $jscomp.asyncExecutePromiseGeneratorProgram(function(B){switch(B.nextAddress){case 1:m={};n=0;p=function(){if(l.destroyer_.destroyed()||d.isAborted())throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.OPERATION_ABORTED);};q=function(A,z){var C,D,E,H,I,G,L,K,F;return $jscomp.asyncExecutePromiseGeneratorProgram(function(M){if(1==
|
|
2839
|
+
M.nextAddress){C=$jscomp.makeIterator(A);D=C.next();for(E={};!D.done;E={download$jscomp$1:void 0},D=C.next())E.download$jscomp$1=D.value,p(),H=E.download$jscomp$1.makeSegmentRequest(e),I=E.download$jscomp$1.estimateId,G=E.download$jscomp$1.isInitSegment,L=function(J){return function(N){var P,O,W;return $jscomp.asyncExecutePromiseGeneratorProgram(function(Q){switch(Q.nextAddress){case 1:P=J.download$jscomp$1.ref;O=shaka.offline.DownloadInfo.idForSegmentRef(P);if(!P.aesKey){Q.jumpTo(2);break}return Q.yield(shaka.media.SegmentUtils.aesDecrypt(N,
|
|
2840
|
+
P.aesKey,J.download$jscomp$1.refPosition),3);case 3:N=Q.yieldResult;case 2:return Q.yield(f.addSegments([{data:N}]),4);case 4:W=Q.yieldResult,p(),m[O]=W[0],n+=N.byteLength,Q.jumpToEnd()}})}}(E),K=E.download$jscomp$1.ref,(F=K.getSegmentData())?d.queueData(E.download$jscomp$1.groupId,F,I,G,L):d.queue(E.download$jscomp$1.groupId,H,I,G,L);return M.yield(d.waitToFinish(),2)}p();if(!z||d.isAborted())return M.jumpTo(0);l.setManifestDrmFields_(g,c,h,k);return M.yield(f.updateManifest(b,c),0)})};r=!1;B.setCatchFinallyBlocks(2);
|
|
2841
|
+
if(!l.getManifestIsEncrypted_(g)||!r||l.getManifestIncludesInitData_(g)){B.jumpTo(4);break}return B.yield(q(a.filter(function(A){return A.isInitSegment}),!0),5);case 5:return p(),a=a.filter(function(A){return!A.isInitSegment}),t=m,u=n,m={},n=0,B.yield(shaka.offline.Storage.assignSegmentsToManifest(f,b,c,t,u,function(){return l.ensureNotDestroyed_()}),6);case 6:p();case 4:if(r){B.jumpTo(7);break}return B.yield(q(a,!1),8);case 8:return p(),w=m,v=n,m={},n=0,B.yield(shaka.offline.Storage.assignSegmentsToManifest(f,
|
|
2842
|
+
b,c,w,v,function(){return p()}),9);case 9:p(),goog.asserts.assert(!c.isIncomplete,"The manifest should be complete by now");case 7:B.leaveTryBlock(0);break;case 2:return x=B.enterCatchBlock(),y=Object.values(m),B.yield(f.removeSegments(y,function(A){}),10);case 10:throw x;}})};
|
|
2835
2843
|
shaka.offline.Storage.cleanStoredManifest=function(a){var b,c,d,e;return $jscomp.asyncExecutePromiseGeneratorProgram(function(f){switch(f.nextAddress){case 1:return b=new shaka.offline.StorageMuxer,f.yield(b.init(),2);case 2:return f.yield(b.getActive(),3);case 3:return c=f.yieldResult,d=shaka.offline.OfflineUri.manifest(c.path.mechanism,c.path.cell,a),f.yield(b.destroy(),4);case 4:return e=new shaka.offline.Storage,f.yield(e.remove(d.toString()),0)}})};
|
|
2836
2844
|
shaka.offline.Storage.assignSegmentsToManifest=function(a,b,c,d,e,f){var g,h,k,l,m,n,p,q,r,t,u;return $jscomp.asyncExecutePromiseGeneratorProgram(function(w){switch(w.nextAddress){case 1:g=!1;w.setCatchFinallyBlocks(2);h=!0;k=$jscomp.makeIterator(c.streams);for(l=k.next();!l.done;l=k.next())for(m=l.value,n=$jscomp.makeIterator(m.segments),p=n.next();!p.done;p=n.next())q=p.value,r=q.pendingSegmentRefId?d[q.pendingSegmentRefId]:null,null!=r&&(q.dataKey=r,q.pendingSegmentRefId=void 0),r=q.pendingInitSegmentRefId?
|
|
2837
2845
|
d[q.pendingInitSegmentRefId]:null,null!=r&&(q.initSegmentKey=r,q.pendingInitSegmentRefId=void 0),q.pendingSegmentRefId&&(h=!1),q.pendingInitSegmentRefId&&(h=!1);c.size+=e;h&&(c.isIncomplete=!1);return w.yield(a.updateManifest(b,c),4);case 4:g=!0;f();w.leaveTryBlock(0);break;case 2:return t=w.enterCatchBlock(),w.yield(shaka.offline.Storage.cleanStoredManifest(b),5);case 5:if(g){w.jumpTo(6);break}u=Object.values(d);return w.yield(a.removeSegments(u,function(v){}),6);case 6:throw t;}})};
|
|
2838
|
-
shaka.offline.Storage.prototype.filterManifest_=function(a,b,c,d){var e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,A,
|
|
2846
|
+
shaka.offline.Storage.prototype.filterManifest_=function(a,b,c,d){var e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,B,A,z,C,D,E,H,I,G,L,K,F,M;return $jscomp.asyncExecutePromiseGeneratorProgram(function(J){switch(J.nextAddress){case 1:return e={width:Infinity,height:Infinity},shaka.util.StreamUtils.filterByRestrictions(a,c.restrictions,e),J.yield(shaka.util.StreamUtils.filterManifestByMediaCapabilities(b,a,d,c.drm.preferredKeySystems,c.drm.keySystemsMapping),2);case 2:f=[];g=c.preferredDecodingAttributes;h=c.preferredVideoCodecs;
|
|
2839
2847
|
k=c.preferredAudioCodecs;l=c.preferredTextFormats;shaka.util.StreamUtils.chooseCodecsAndFilterManifest(a,h,k,g,l);m=$jscomp.makeIterator(a.variants);for(n=m.next();!n.done;n=m.next())p=n.value,goog.asserts.assert(shaka.util.StreamUtils.isPlayable(p),'We should have already filtered by "is playable"'),f.push(shaka.util.StreamUtils.variantToTrack(p));q=$jscomp.makeIterator(a.textStreams);for(r=q.next();!r.done;r=q.next())t=r.value,f.push(shaka.util.StreamUtils.textStreamToTrack(t));u=$jscomp.makeIterator(a.imageStreams);
|
|
2840
|
-
for(w=u.next();!w.done;w=u.next())v=w.value,f.push(shaka.util.StreamUtils.imageStreamToTrack(v));return
|
|
2841
|
-
shaka.util.Error.Code.STORAGE_LIMIT_REACHED);
|
|
2842
|
-
"text"==M.type&&
|
|
2848
|
+
for(w=u.next();!w.done;w=u.next())v=w.value,f.push(shaka.util.StreamUtils.imageStreamToTrack(v));return J.yield(c.offline.trackSelectionCallback(f),3);case 3:x=J.yieldResult;y=a.presentationTimeline.getDuration();B=0;A=$jscomp.makeIterator(x);for(z=A.next();!z.done;z=A.next())C=z.value,D=C.bandwidth*y/8,B+=D;J.setCatchFinallyBlocks(4);return J.yield(c.offline.downloadSizeCallback(B),6);case 6:E=J.yieldResult;if(!E)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,
|
|
2849
|
+
shaka.util.Error.Code.STORAGE_LIMIT_REACHED);J.leaveTryBlock(5);break;case 4:H=J.enterCatchBlock();if(H instanceof shaka.util.Error)throw H;shaka.log.warning("downloadSizeCallback has produced an unexpected error",H);throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.DOWNLOAD_SIZE_CALLBACK_ERROR);case 5:I=new Set;G=new Set;L=new Set;K=$jscomp.makeIterator(x);for(F=K.next();!F.done;F=K.next())M=F.value,"variant"==M.type&&I.add(M.id),
|
|
2850
|
+
"text"==M.type&&G.add(M.id),"image"==M.type&&L.add(M.id);a.variants=a.variants.filter(function(N){return I.has(N.id)});a.textStreams=a.textStreams.filter(function(N){return G.has(N.id)});a.imageStreams=a.imageStreams.filter(function(N){return L.has(N.id)});shaka.offline.Storage.validateManifest_(a);J.jumpToEnd()}})};
|
|
2843
2851
|
shaka.offline.Storage.prototype.makeManifestDB_=function(a,b,c,d,e,f,g){var h=shaka.offline.StoredContentUtils.fromManifest(c,b,0,d),k=e.offline.progressCallback;f.setCallbacks(function(r,t){h.size=t;k(h,r)},function(r,t){l&&g&&m==t&&a.newInitData("cenc",r)});var l=this.getManifestIsEncrypted_(b)&&!this.getManifestIncludesInitData_(b),m=null;if(l){var n=a.getDrmInfo();m=shaka.offline.Storage.defaultSystemIds_.get(n.keySystem)}n=new shaka.offline.StreamBandwidthEstimator;for(var p=$jscomp.makeIterator(b.textStreams),
|
|
2844
2852
|
q=p.next();!q.done;q=p.next())n.addText(q.value);p=$jscomp.makeIterator(b.imageStreams);for(q=p.next();!q.done;q=p.next())n.addImage(q.value);p=$jscomp.makeIterator(b.variants);for(q=p.next();!q.done;q=p.next())n.addVariant(q.value);f=this.createStreams_(f,n,a,b,e);e=f.streams;f=f.toDownload;(n=a.getDrmInfo())&&g&&(n.initData=[]);return{manifestDB:{creationTime:Date.now(),originalManifestUri:c,duration:b.presentationTimeline.getDuration(),size:0,expiration:a.getExpiration(),streams:e,sessionIds:g?
|
|
2845
2853
|
a.getSessionIds():[],drmInfo:n,appMetadata:d,isIncomplete:!0,sequenceMode:b.sequenceMode,type:b.type},toDownload:f}};shaka.offline.Storage.prototype.getManifestIsEncrypted_=function(a){return a.variants.some(function(b){var c=b.audio&&b.audio.encrypted;return b.video&&b.video.encrypted||c})};
|
|
@@ -3008,9 +3016,9 @@ g,"subFrameRate"),p=f.getAttributeNSList(l,g,"frameRateMultiplier"),q=f.getAttri
|
|
|
3008
3016
|
"metadata")[0];p=(p?p.children:[]).filter(function(w){return"\n"!=w});q=f.getElementsByTagName(l,"style");l=f.getElementsByTagName(l,"region");r=[];t=$jscomp.makeIterator(l);for(var u=t.next();!u.done;u=t.next())(u=e.parseCueRegion_(u.value,q,g))&&r.push(u);if(f.findChildren(k,"p").length)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.INVALID_TEXT_CUE,"<p> can only be inside <div> in TTML");g=$jscomp.makeIterator(f.findChildren(k,
|
|
3009
3017
|
"div"));for(t=g.next();!t.done;t=g.next())if(f.findChildren(t.value,"span").length)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.INVALID_TEXT_CUE,"<span> can only be inside <p> in TTML");if(b=e.parseCue_(k,b,m,p,q,l,r,h,n,null,!1,c,d))b.backgroundColor||(b.backgroundColor="transparent"),a.push(b);return a};
|
|
3010
3018
|
shaka.text.TtmlTextParser.parseCue_=function(a,b,c,d,e,f,g,h,k,l,m,n,p){var q=shaka.util.TXml,r=shaka.util.StringUtils,t=l;if(q.isText(a)){if(!m)return null;var u={tagName:"span",children:[q.getTextContents(a)],attributes:{},parent:null}}else u=a;goog.asserts.assert(u,"cueElement should be non-null!");for(var w=null,v=$jscomp.makeIterator(shaka.text.TtmlTextParser.smpteNsList_),x=v.next();!x.done&&!(w=shaka.text.TtmlTextParser.getElementsFromCollection_(u,"backgroundImage",d,"#",x.value)[0]);x=v.next());
|
|
3011
|
-
v=null;x=q.getAttributeNSList(u,shaka.text.TtmlTextParser.smpteNsList_,"backgroundImage");var y=/^(urn:)(mpeg:[a-z0-9][a-z0-9-]{0,31}:)(subs:)([0-9]+)$/;if(x&&y.test(x)){v=parseInt(x.split(":").pop(),10)-1;if(v>=p.length)return null;v=p[v]}else n&&x&&!x.startsWith("#")&&(y=new goog.Uri(n),x=new goog.Uri(x),(x=y.resolve(x).toString())&&(v=x));if("p"==a.tagName||w||v)m=!0;a=m;x="default"==(u.attributes["xml:space"]||(h?"default":"preserve"));y=u.children.every(q.isText);h=[];if(!y)for(var
|
|
3012
|
-
B
|
|
3013
|
-
p=null==p?Infinity:p+b.periodStart;n=Math.max(n,b.segmentStart);p=Math.min(p,b.segmentEnd);if(!
|
|
3019
|
+
v=null;x=q.getAttributeNSList(u,shaka.text.TtmlTextParser.smpteNsList_,"backgroundImage");var y=/^(urn:)(mpeg:[a-z0-9][a-z0-9-]{0,31}:)(subs:)([0-9]+)$/;if(x&&y.test(x)){v=parseInt(x.split(":").pop(),10)-1;if(v>=p.length)return null;v=p[v]}else n&&x&&!x.startsWith("#")&&(y=new goog.Uri(n),x=new goog.Uri(x),(x=y.resolve(x).toString())&&(v=x));if("p"==a.tagName||w||v)m=!0;a=m;x="default"==(u.attributes["xml:space"]||(h?"default":"preserve"));y=u.children.every(q.isText);h=[];if(!y)for(var B=$jscomp.makeIterator(u.children),
|
|
3020
|
+
A=B.next();!A.done;A=B.next())(A=shaka.text.TtmlTextParser.parseCue_(A.value,b,c,d,e,f,g,x,k,u,m,n,p))&&h.push(A);d=null!=l;n=q.getTextContents(u);n=u.children.length&&n&&/\S/.test(n);B=u.attributes.begin||u.attributes.end||u.attributes.dur;if(!(B||n||"br"==u.tagName||0!=h.length||d&&!x))return null;p=shaka.text.TtmlTextParser.parseTime_(u,c);n=p.start;for(p=p.end;t&&q.isNode(t)&&"tt"!=t.tagName;)p=shaka.text.TtmlTextParser.resolveTime_(t,c,n,p),n=p.start,p=p.end,t=t.parent;null==n&&(n=0);n+=b.periodStart;
|
|
3021
|
+
p=null==p?Infinity:p+b.periodStart;n=Math.max(n,b.segmentStart);p=Math.min(p,b.segmentEnd);if(!B&&0<h.length)for(n=Infinity,p=0,b=$jscomp.makeIterator(h),c=b.next();!c.done;c=b.next())c=c.value,n=Math.min(n,c.startTime),p=Math.max(p,c.endTime);if("br"==u.tagName)return e=new shaka.text.Cue(n,p,""),e.lineBreak=!0,e;b="";y&&(b=r.htmlUnescape(shaka.util.TXml.getTextContents(u)||""),x&&(b=b.replace(/\s+/g," ")));r=new shaka.text.Cue(n,p,b);r.nestedCues=h;m||(r.isContainer=!0);k&&(r.cellResolution=k);
|
|
3014
3022
|
k=shaka.text.TtmlTextParser.getElementsFromCollection_(u,"region",f,"")[0];if(u.attributes.region&&k&&k.attributes["xml:id"]){var z=k.attributes["xml:id"];r.region=g.filter(function(C){return C.id==z})[0]}g=k;l&&d&&!u.attributes.region&&!u.attributes.style&&(g=shaka.text.TtmlTextParser.getElementsFromCollection_(l,"region",f,"")[0]);shaka.text.TtmlTextParser.addStyle_(r,u,g,w,v,e,a,0==h.length);return r};
|
|
3015
3023
|
shaka.text.TtmlTextParser.parseCueRegion_=function(a,b,c){var d=shaka.text.TtmlTextParser,e=new shaka.text.CueRegion,f=a.attributes["xml:id"];if(!f)return shaka.log.warning("TtmlTextParser parser encountered a region with no id. Region will be ignored."),null;e.id=f;f=null;c&&(f=d.percentValues_.exec(c)||d.pixelValues_.exec(c));c=f?Number(f[1]):null;f=f?Number(f[2]):null;var g,h=d.getStyleAttributeFromRegion_(a,b,"extent");if(h){var k=(g=d.percentValues_.exec(h))||d.pixelValues_.exec(h);null!=k&&
|
|
3016
3024
|
(e.width=Number(k[1]),e.height=Number(k[2]),g||(null!=c&&(e.width=100*e.width/c),null!=f&&(e.height=100*e.height/f)),e.widthUnits=g||null!=c?shaka.text.CueRegion.units.PERCENTAGE:shaka.text.CueRegion.units.PX,e.heightUnits=g||null!=f?shaka.text.CueRegion.units.PERCENTAGE:shaka.text.CueRegion.units.PX)}if(a=d.getStyleAttributeFromRegion_(a,b,"origin"))if(k=(g=d.percentValues_.exec(a))||d.pixelValues_.exec(a),null!=k)e.viewportAnchorX=Number(k[1]),e.viewportAnchorY=Number(k[2]),g?h||(e.width=100-e.viewportAnchorX,
|
|
@@ -3139,14 +3147,14 @@ generalProfileSpace:a.generalProfileSpace,generalTierFlag:a.generalTierFlag,gene
|
|
|
3139
3147
|
generalConstraintIndicatorFlags3:a.generalConstraintIndicatorFlags3,generalConstraintIndicatorFlags4:a.generalConstraintIndicatorFlags4,generalConstraintIndicatorFlags5:a.generalConstraintIndicatorFlags5,generalConstraintIndicatorFlags6:a.generalConstraintIndicatorFlags6,constantFrameRate:a.constantFrameRate,minSpatialSegmentationIdc:a.minSpatialSegmentationIdc,chromaFormatIdc:a.chromaFormatIdc,bitDepthLumaMinus8:a.bitDepthLumaMinus8,bitDepthChromaMinus8:a.bitDepthChromaMinus8,parallelismType:g.parallelismType});
|
|
3140
3148
|
return{height:a.height,width:a.width,videoConfig:c,hSpacing:a.sarWidth,vSpacing:a.sarHeight}};shaka.transmuxer.H265.parseVPS_=function(a){var b=new shaka.util.ExpGolomb(a,!0);b.readUnsignedByte();b.readUnsignedByte();b.readBits(4);b.readBits(2);b.readBits(6);a=b.readBits(3);b=b.readBoolean();return{numTemporalLayers:a+1,temporalIdNested:b}};
|
|
3141
3149
|
shaka.transmuxer.H265.parseSPS_=function(a){a=new shaka.util.ExpGolomb(a,!0);a.readUnsignedByte();a.readUnsignedByte();var b=0,c=0,d=0,e=0;a.readBits(4);var f=a.readBits(3);a.readBoolean();for(var g=a.readBits(2),h=a.readBits(1),k=a.readBits(5),l=a.readUnsignedByte(),m=a.readUnsignedByte(),n=a.readUnsignedByte(),p=a.readUnsignedByte(),q=a.readUnsignedByte(),r=a.readUnsignedByte(),t=a.readUnsignedByte(),u=a.readUnsignedByte(),w=a.readUnsignedByte(),v=a.readUnsignedByte(),x=a.readUnsignedByte(),y=[],
|
|
3142
|
-
|
|
3143
|
-
if(a.readBoolean())for(var E=0;E<=f;E++)a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb();else a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb();a.readUnsignedExpGolomb();a.readUnsignedExpGolomb();a.readUnsignedExpGolomb();a.readUnsignedExpGolomb();a.readUnsignedExpGolomb();a.readUnsignedExpGolomb();if(a.readBoolean()&&a.readBoolean())for(E=0;4>E;E++)for(var
|
|
3144
|
-
for(var
|
|
3145
|
-
|
|
3146
|
-
a.readBoolean()&&a.readBoolean();a.readBoolean()&&(a.readBits(3),a.readBoolean(),a.readBoolean()&&(a.readUnsignedByte(),a.readUnsignedByte(),a.readUnsignedByte()));a.readBoolean()&&(a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb());a.readBoolean();a.readBoolean();a.readBoolean();if(
|
|
3147
|
-
a.readBoolean())){L=!1;
|
|
3148
|
-
a.readUnsignedExpGolomb());a.readBoolean()}if(
|
|
3149
|
-
generalProfileCompatibilityFlags2:m,generalProfileCompatibilityFlags3:n,generalProfileCompatibilityFlags4:p,generalConstraintIndicatorFlags1:q,generalConstraintIndicatorFlags2:r,generalConstraintIndicatorFlags3:t,generalConstraintIndicatorFlags4:u,generalConstraintIndicatorFlags5:w,generalConstraintIndicatorFlags6:v,minSpatialSegmentationIdc:
|
|
3150
|
+
B=[],A=0;A<f;A++)y.push(a.readBoolean()),B.push(a.readBoolean());if(0<f)for(A=f;8>A;A++)a.readBits(2);for(A=0;A<f;A++)y[A]&&a.readBits(88),B[A]&&a.readUnsignedByte();a.readUnsignedExpGolomb();y=a.readUnsignedExpGolomb();3==y&&a.readBits(1);B=a.readUnsignedExpGolomb();A=a.readUnsignedExpGolomb();a.readBoolean()&&(b+=a.readUnsignedExpGolomb(),c+=a.readUnsignedExpGolomb(),d+=a.readUnsignedExpGolomb(),e+=a.readUnsignedExpGolomb());var z=a.readUnsignedExpGolomb(),C=a.readUnsignedExpGolomb(),D=a.readUnsignedExpGolomb();
|
|
3151
|
+
if(a.readBoolean())for(var E=0;E<=f;E++)a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb();else a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb();a.readUnsignedExpGolomb();a.readUnsignedExpGolomb();a.readUnsignedExpGolomb();a.readUnsignedExpGolomb();a.readUnsignedExpGolomb();a.readUnsignedExpGolomb();if(a.readBoolean()&&a.readBoolean())for(E=0;4>E;E++)for(var H=0;H<(3===E?2:6);H++)if(a.readBoolean()){var I=Math.min(64,1<<4+(E<<1));1<E&&a.readExpGolomb();
|
|
3152
|
+
for(var G=0;G<I;G++)a.readExpGolomb()}else a.readUnsignedExpGolomb();a.readBoolean();a.readBoolean();a.readBoolean()&&(a.readUnsignedByte(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readBoolean());E=a.readUnsignedExpGolomb();for(I=H=0;I<E;I++)if(G=!1,0!==I&&(G=a.readBoolean()),G){I===E&&a.readUnsignedExpGolomb();a.readBoolean();a.readUnsignedExpGolomb();for(var L=G=0;L<=H;L++){var K=a.readBoolean(),F=!1;K||(F=a.readBoolean());(K||F)&&G++}H=G}else{L=a.readUnsignedExpGolomb();G=a.readUnsignedExpGolomb();
|
|
3153
|
+
H=L+G;for(K=0;K<L;K++)a.readUnsignedExpGolomb(),a.readBoolean();for(L=0;L<G;L++)a.readUnsignedExpGolomb(),a.readBoolean()}if(a.readBoolean())for(E=a.readUnsignedExpGolomb(),H=0;H<E;H++){for(I=0;I<D+4;I++)a.readBits(1);a.readBits(1)}E=D=1;H=0;a.readBoolean();a.readBoolean();if(a.readBoolean()){a.readBoolean()&&(I=a.readUnsignedByte(),G=[1,12,10,16,40,24,20,32,80,18,15,64,160,4,3,2],L=[1,11,11,11,33,11,11,11,33,11,11,33,99,3,2,1],0<I&&16>=I?(D=G[I-1],E=L[I-1]):255===I&&(D=a.readBits(16),E=a.readBits(16)));
|
|
3154
|
+
a.readBoolean()&&a.readBoolean();a.readBoolean()&&(a.readBits(3),a.readBoolean(),a.readBoolean()&&(a.readUnsignedByte(),a.readUnsignedByte(),a.readUnsignedByte()));a.readBoolean()&&(a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb());a.readBoolean();a.readBoolean();a.readBoolean();if(I=a.readBoolean())a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb();if(a.readBoolean()&&(a.readBits(32),a.readBits(32),a.readBoolean()&&a.readUnsignedExpGolomb(),
|
|
3155
|
+
a.readBoolean())){L=!1;I=a.readBoolean();G=a.readBoolean();if(I||G){if(L=a.readBoolean())a.readUnsignedByte(),a.readBits(5),a.readBoolean(),a.readBits(5);a.readBits(4);a.readBits(4);L&&a.readBits(4);a.readBits(5);a.readBits(5);a.readBits(5)}for(K=0;K<=f;K++){var M=!0;F=1;a.readBoolean()||(M=a.readBoolean());var J=!1;M?a.readUnsignedExpGolomb():J=a.readBoolean();J||(F=a.readUnsignedExpGolomb()+1);if(I){for(M=0;M<F;M++)a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),L&&(a.readUnsignedExpGolomb(),
|
|
3156
|
+
a.readUnsignedExpGolomb());a.readBoolean()}if(G){for(M=0;M<F;M++)a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),L&&(a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb());a.readBoolean()}}}a.readBoolean()&&(a.readBoolean(),a.readBoolean(),a.readBoolean(),H=a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb())}return{generalLevelIdc:x,generalProfileSpace:g,generalTierFlag:h,generalProfileIdc:k,generalProfileCompatibilityFlags1:l,
|
|
3157
|
+
generalProfileCompatibilityFlags2:m,generalProfileCompatibilityFlags3:n,generalProfileCompatibilityFlags4:p,generalConstraintIndicatorFlags1:q,generalConstraintIndicatorFlags2:r,generalConstraintIndicatorFlags3:t,generalConstraintIndicatorFlags4:u,generalConstraintIndicatorFlags5:w,generalConstraintIndicatorFlags6:v,minSpatialSegmentationIdc:H,constantFrameRate:0,chromaFormatIdc:y,bitDepthLumaMinus8:z,bitDepthChromaMinus8:C,width:B-(b+c)*(1===y||2===y?2:1),height:A-(d+e)*(1===y?2:1),sarWidth:D,sarHeight:E}};
|
|
3150
3158
|
shaka.transmuxer.H265.parsePPS_=function(a){var b=new shaka.util.ExpGolomb(a,!0);b.readUnsignedByte();b.readUnsignedByte();b.readUnsignedExpGolomb();b.readUnsignedExpGolomb();b.readBoolean();b.readBoolean();b.readBits(3);b.readBoolean();b.readBoolean();b.readUnsignedExpGolomb();b.readUnsignedExpGolomb();b.readExpGolomb();b.readBoolean();b.readBoolean();b.readBoolean()&&b.readUnsignedExpGolomb();b.readExpGolomb();b.readExpGolomb();b.readBoolean();b.readBoolean();b.readBoolean();b.readBoolean();a=b.readBoolean();
|
|
3151
3159
|
b=b.readBoolean();var c=1;b&&a?c=0:b?c=3:a&&(c=2);return{parallelismType:c}};
|
|
3152
3160
|
shaka.transmuxer.H265.getVideoConfiguration_=function(a,b,c,d){var e=shaka.transmuxer.H265,f=new Uint8Array(23+(5+a.byteLength)+(5+b.byteLength)+(5+c.byteLength));f[0]=1;f[1]=(d.generalProfileSpace&3)<<6|(d.generalTierFlag?1:0)<<5|d.generalProfileIdc&31;f[2]=d.generalProfileCompatibilityFlags1;f[3]=d.generalProfileCompatibilityFlags2;f[4]=d.generalProfileCompatibilityFlags3;f[5]=d.generalProfileCompatibilityFlags4;f[6]=d.generalConstraintIndicatorFlags1;f[7]=d.generalConstraintIndicatorFlags2;f[8]=
|
|
@@ -3309,8 +3317,8 @@ englishName:"Serbian (Serbia)"},su:{nativeName:"Basa Sunda",englishName:"Sundane
|
|
|
3309
3317
|
tl:{nativeName:"Filipino",englishName:"Filipino"},"tl-PH":{nativeName:"Filipino",englishName:"Filipino"},tlh:{nativeName:"tlhIngan-Hol",englishName:"Klingon"},tr:{nativeName:"T\u00fcrk\u00e7e",englishName:"Turkish"},"tr-TR":{nativeName:"T\u00fcrk\u00e7e",englishName:"Turkish"},"tt-RU":{nativeName:"\u0442\u0430\u0442\u0430\u0440\u0447\u0430",englishName:"Tatar"},uk:{nativeName:"\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430",englishName:"Ukrainian"},"uk-UA":{nativeName:"\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430",
|
|
3310
3318
|
englishName:"Ukrainian"},ur:{nativeName:"\u0627\u0631\u062f\u0648",englishName:"Urdu"},"ur-PK":{nativeName:"\u0627\u0631\u062f\u0648",englishName:"Urdu"},uz:{nativeName:"O'zbek",englishName:"Uzbek"},"uz-UZ":{nativeName:"O'zbek",englishName:"Uzbek"},vi:{nativeName:"Ti\u1ebfng Vi\u1ec7t",englishName:"Vietnamese"},"vi-VN":{nativeName:"Ti\u1ebfng Vi\u1ec7t",englishName:"Vietnamese"},"xh-ZA":{nativeName:"isiXhosa",englishName:"Xhosa"},yi:{nativeName:"\u05d9\u05d9\u05b4\u05d3\u05d9\u05e9",englishName:"Yiddish"},
|
|
3311
3319
|
"yi-DE":{nativeName:"\u05d9\u05d9\u05b4\u05d3\u05d9\u05e9 (German)",englishName:"Yiddish (German)"},zh:{nativeName:"\u4e2d\u6587",englishName:"Chinese"},"zh-HANS":{nativeName:"\u4e2d\u6587\u7b80\u4f53",englishName:"Chinese Simplified"},"zh-HANT":{nativeName:"\u4e2d\u6587\u7e41\u9ad4",englishName:"Chinese Traditional"},"zh-CN":{nativeName:"\u4e2d\u6587\uff08\u4e2d\u56fd\uff09",englishName:"Chinese Simplified (China)"},"zh-HK":{nativeName:"\u4e2d\u6587\uff08\u9999\u6e2f\uff09",englishName:"Chinese Traditional (Hong Kong)"},
|
|
3312
|
-
"zh-SG":{nativeName:"\u4e2d\u6587\uff08\u65b0\u52a0\u5761\uff09",englishName:"Chinese Simplified (Singapore)"},"zh-TW":{nativeName:"\u4e2d\u6587\uff08\u53f0\u7063\uff09",englishName:"Chinese Traditional (Taiwan)"},"zu-ZA":{nativeName:"isiZulu",englishName:"Zulu"}}},$jscomp$iter$
|
|
3313
|
-
$jscomp$key$2089745539$0$key$jscomp$
|
|
3320
|
+
"zh-SG":{nativeName:"\u4e2d\u6587\uff08\u65b0\u52a0\u5761\uff09",englishName:"Chinese Simplified (Singapore)"},"zh-TW":{nativeName:"\u4e2d\u6587\uff08\u53f0\u7063\uff09",englishName:"Chinese Traditional (Taiwan)"},"zu-ZA":{nativeName:"isiZulu",englishName:"Zulu"}}},$jscomp$iter$628=$jscomp.makeIterator(Object.keys(mozilla.LanguageMapping)),$jscomp$key$2089745539$0$key$jscomp$165=$jscomp$iter$628.next();!$jscomp$key$2089745539$0$key$jscomp$165.done;$jscomp$key$2089745539$0$key$jscomp$165=$jscomp$iter$628.next()){var key$jscomp$165=
|
|
3321
|
+
$jscomp$key$2089745539$0$key$jscomp$165.value;mozilla.LanguageMapping[key$jscomp$165.toLowerCase()]=mozilla.LanguageMapping[key$jscomp$165]};shaka.ui.Element=function(a,b){var c=this;this.parent=a;this.controls=b;this.eventManager=new shaka.util.EventManager;this.localization=this.controls.getLocalization();this.player=this.controls.getPlayer();this.video=this.controls.getVideo();this.adManager=this.player.getAdManager();this.ad=b.getAd();this.eventManager.listen(this.adManager,shaka.ads.Utils.AD_STARTED,function(d){c.ad=d.ad});this.eventManager.listen(this.adManager,shaka.ads.Utils.AD_STOPPED,function(){c.ad=null})};
|
|
3314
3322
|
shaka.ui.Element.prototype.release=function(){this.eventManager.release();this.ad=this.adManager=this.video=this.player=this.localization=this.eventManager=this.controls=this.parent=null};goog.exportSymbol("shaka.ui.Element",shaka.ui.Element);goog.exportProperty(shaka.ui.Element.prototype,"release",shaka.ui.Element.prototype.release);shaka.ui.Enums={};
|
|
3315
3323
|
shaka.ui.Enums.MaterialDesignIcons={FULLSCREEN:"fullscreen",EXIT_FULLSCREEN:"fullscreen_exit",CLOSE:"close",CLOSED_CAPTIONS:"closed_caption",CLOSED_CAPTIONS_OFF:"closed_caption_disabled",CHECKMARK:"done",LANGUAGE:"language",PIP:"picture_in_picture_alt",EXIT_PIP:"branding_watermark",BACK:"arrow_back",RESOLUTION:"settings",MUTE:"volume_up",UNMUTE:"volume_off",CAST:"cast",EXIT_CAST:"cast_connected",OPEN_OVERFLOW:"more_vert",REWIND:"fast_rewind",FAST_FORWARD:"fast_forward",PLAY:"play_arrow",PLAYBACK_RATE:"slow_motion_video",
|
|
3316
3324
|
PAUSE:"pause",LOOP:"repeat",UNLOOP:"repeat_on",AIRPLAY:"airplay",REPLAY:"replay",STATISTICS_ON:"insert_chart_outlined",STATISTICS_OFF:"insert_chart",RECENTER_VR:"control_camera",TOGGLE_STEREOSCOPIC:"3d_rotation",DOWNLOAD:"download",CHAPTER:"bookmarks"};shaka.ui.Utils=function(){};shaka.ui.Utils.getFirstDescendantWithClassName=function(a,b){a=shaka.ui.Utils.getDescendantIfExists(a,b);goog.asserts.assert(null!=a,"Should not be null!");return a};shaka.ui.Utils.getDescendantIfExists=function(a,b){a=a.getElementsByClassName(b);return a.length?a[0]:null};shaka.ui.Utils.focusOnTheChosenItem=function(a){a&&(a=shaka.ui.Utils.getDescendantIfExists(a,"shaka-chosen-item"))&&a.parentElement.focus()};
|
|
@@ -3358,13 +3366,13 @@ shaka.ui.SeekBar.prototype.makeColor_=function(a,b){return a+" "+100*b+"%"};shak
|
|
|
3358
3366
|
shaka.ui.SeekBar.prototype.shouldBeDisplayed_=function(){var a=this.player.seekRange();a=a.end-a.start;return this.player.isLive()&&(a<shaka.ui.Constants.MIN_SEEK_WINDOW_TO_SHOW_SEEKBAR||!isFinite(a))?!1:null==this.ad||!this.ad.isLinear()};shaka.ui.SeekBar.prototype.updateAriaLabel_=function(){this.bar.ariaLabel=this.localization.resolve(shaka.ui.Locales.Ids.SEEK)};
|
|
3359
3367
|
shaka.ui.SeekBar.prototype.showTime_=function(a,b){var c=this.timeContainer_.clientWidth;this.timeContainer_.style.width="auto";this.timeContainer_.style.height="20px";this.timeContainer_.style.top="-30px";this.timeContainer_.style.left=Math.min(this.bar.offsetWidth-c,Math.max(0,a-c/2))+"px";this.timeContainer_.style.right="";this.timeContainer_.style.visibility="visible";a=this.player.seekRange();this.player.isLive()?(b=a.end-b,1>b?(this.timeContainer_.textContent=this.localization.resolve(shaka.ui.Locales.Ids.LIVE),
|
|
3360
3368
|
this.timeContainer_.style.left="",this.timeContainer_.style.right="0px"):this.timeContainer_.textContent="-"+this.timeFormatter_(b)):this.timeContainer_.textContent=this.timeFormatter_(b-a.start)};
|
|
3361
|
-
shaka.ui.SeekBar.prototype.showThumbnail_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,
|
|
3369
|
+
shaka.ui.SeekBar.prototype.showThumbnail_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,B;return $jscomp.asyncExecutePromiseGeneratorProgram(function(A){switch(A.nextAddress){case 1:d=c.getThumbnailTrack_();if(!d)return c.hideThumbnail_(),A.return();0>b&&(b=0);e=c.player.seekRange();f=Math.max(Math.ceil(e.start),Math.min(Math.floor(e.end),b));return A.yield(c.player.getThumbnails(d.id,f),2);case 2:g=A.yieldResult;if(!g||!g.uris.length)return c.hideThumbnail_(),A.return();c.player.isLive()?
|
|
3362
3370
|
(h=e.end-b,c.thumbnailTime_.textContent=1>h?c.localization.resolve(shaka.ui.Locales.Ids.LIVE):"-"+c.timeFormatter_(h)):c.thumbnailTime_.textContent=c.timeFormatter_(b);k=-10;l=c.thumbnailContainer_.clientWidth;m=Math.floor(9*l/16);c.thumbnailContainer_.style.height=m+"px";c.thumbnailContainer_.style.top=-(m-k)+"px";n=Math.min(c.bar.offsetWidth-l,Math.max(0,a-l/2));c.thumbnailContainer_.style.left=n+"px";c.thumbnailContainer_.style.visibility="visible";p=g.uris[0].split("#xywh=")[0];if(c.lastThumbnail_&&
|
|
3363
|
-
p===c.lastThumbnail_.uris[0].split("#xywh=")[0]&&g.segment.getStartByte()==c.lastThumbnail_.segment.getStartByte()&&g.segment.getEndByte()==c.lastThumbnail_.segment.getEndByte()){
|
|
3364
|
-
r=shaka.net.NetworkingEngine.AdvancedRequestType.MEDIA_SEGMENT;t=shaka.util.Networking.createSegmentRequest(g.segment.getUris(),g.segment.getStartByte(),g.segment.getEndByte(),c.player.getConfiguration().streaming.retryParameters);c.lastThumbnailPendingRequest_=c.player.getNetworkingEngine().request(q,t,{type:r});return
|
|
3365
|
-
new Blob([z],{type:"image/jpeg"});p=URL.createObjectURL(z)})),w.parse(u.data,!1)):(v=d.mimeType||"image/jpeg",x=new Blob([u.data],{type:v}),p=URL.createObjectURL(x));
|
|
3366
|
-
!1;c.thumbnailImage_.src=p;c.thumbnailImage_.onload=function(){p.startsWith("blob:")&&URL.revokeObjectURL(p)};c.thumbnailContainer_.insertBefore(c.thumbnailImage_,c.thumbnailContainer_.firstChild);case 3:
|
|
3367
|
-
c.thumbnailImage_.style.left="-"+
|
|
3371
|
+
p===c.lastThumbnail_.uris[0].split("#xywh=")[0]&&g.segment.getStartByte()==c.lastThumbnail_.segment.getStartByte()&&g.segment.getEndByte()==c.lastThumbnail_.segment.getEndByte()){A.jumpTo(3);break}c.lastThumbnail_=g;c.lastThumbnailPendingRequest_&&(c.lastThumbnailPendingRequest_.abort(),c.lastThumbnailPendingRequest_=null);if("mjpg"!=d.codecs&&!p.startsWith("offline:")){A.jumpTo(4);break}c.thumbnailImage_.src=shaka.ui.SeekBar.Transparent_Image_;A.setCatchFinallyBlocks(5);q=shaka.net.NetworkingEngine.RequestType.SEGMENT;
|
|
3372
|
+
r=shaka.net.NetworkingEngine.AdvancedRequestType.MEDIA_SEGMENT;t=shaka.util.Networking.createSegmentRequest(g.segment.getUris(),g.segment.getStartByte(),g.segment.getEndByte(),c.player.getConfiguration().streaming.retryParameters);c.lastThumbnailPendingRequest_=c.player.getNetworkingEngine().request(q,t,{type:r});return A.yield(c.lastThumbnailPendingRequest_.promise,7);case 7:u=A.yieldResult;c.lastThumbnailPendingRequest_=null;"mjpg"==d.codecs?(w=(new shaka.util.Mp4Parser).box("mdat",shaka.util.Mp4Parser.allData(function(z){z=
|
|
3373
|
+
new Blob([z],{type:"image/jpeg"});p=URL.createObjectURL(z)})),w.parse(u.data,!1)):(v=d.mimeType||"image/jpeg",x=new Blob([u.data],{type:v}),p=URL.createObjectURL(x));A.leaveTryBlock(4);break;case 5:y=A.enterCatchBlock();if(y.code==shaka.util.Error.Code.OPERATION_ABORTED)return A.return();throw y;case 4:try{c.thumbnailContainer_.removeChild(c.thumbnailImage_)}catch(z){}c.thumbnailImage_=shaka.util.Dom.createHTMLElement("img");c.thumbnailImage_.id="shaka-player-ui-thumbnail-image";c.thumbnailImage_.draggable=
|
|
3374
|
+
!1;c.thumbnailImage_.src=p;c.thumbnailImage_.onload=function(){p.startsWith("blob:")&&URL.revokeObjectURL(p)};c.thumbnailContainer_.insertBefore(c.thumbnailImage_,c.thumbnailContainer_.firstChild);case 3:B=l/g.width,g.imageHeight?c.thumbnailImage_.height=g.imageHeight:g.sprite||(c.thumbnailImage_.style.height="100%",c.thumbnailImage_.style.objectFit="contain"),g.imageWidth?c.thumbnailImage_.width=g.imageWidth:g.sprite||(c.thumbnailImage_.style.width="100%",c.thumbnailImage_.style.objectFit="contain"),
|
|
3375
|
+
c.thumbnailImage_.style.left="-"+B*g.positionX+"px",c.thumbnailImage_.style.top="-"+B*g.positionY+"px",c.thumbnailImage_.style.transform="scale("+B+")",c.thumbnailImage_.style.transformOrigin="left top",m=Math.floor(l*g.height/g.width),c.thumbnailContainer_.style.height=m+"px",c.thumbnailContainer_.style.top=-(m-k)+"px",A.jumpToEnd()}})};
|
|
3368
3376
|
shaka.ui.SeekBar.prototype.getThumbnailTrack_=function(){var a=this.player.getImageTracks();if(!a.length)return null;for(var b=$jscomp.makeIterator(["image/avif","image/webp","image/jpeg","image/png","image/svg+xml"]),c=b.next(),d={};!c.done;d={mimeType$jscomp$137:void 0,estimatedBandwidth:void 0},c=b.next())if(d.mimeType$jscomp$137=c.value,d.estimatedBandwidth=this.player.getStats().estimatedBandwidth,(c=a.filter(function(e){return function(f){return f.mimeType.toLowerCase()===e.mimeType$jscomp$137&&
|
|
3369
3377
|
f.bandwidth<.01*e.estimatedBandwidth}}(d)).sort(function(e,f){return f.bandwidth-e.bandwidth}))&&c.length)return c[0];return a.find(function(e){return"application/mp4"==e.mimeType&&"mjpg"==e.codecs})||a[0]};shaka.ui.SeekBar.prototype.hideThumbnail_=function(){this.thumbnailContainer_.style.visibility="hidden";this.thumbnailTime_.textContent=""};shaka.ui.SeekBar.prototype.hideTime_=function(){this.timeContainer_.style.visibility="hidden"};
|
|
3370
3378
|
shaka.ui.SeekBar.prototype.timeFormatter_=function(a){var b=Math.round(a);a=Math.floor(b/3600);var c=Math.floor((b-3600*a)/60);b=b-3600*a-60*c;10>b&&(b="0"+b);return 0<a?(10>c&&(c="0"+c),a+":"+c+":"+b):c+":"+b};goog.exportSymbol("shaka.ui.SeekBar",shaka.ui.SeekBar);shaka.ui.SeekBar.Transparent_Image_='data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg"/>';shaka.ui.SeekBar.Factory=function(){};shaka.ui.SeekBar.Factory.prototype.create=function(a,b){return new shaka.ui.SeekBar(a,b)};
|
|
@@ -3384,8 +3392,8 @@ shaka.ui.Matrix4x4=function(){};shaka.ui.Matrix4x4.create=function(){var a=new F
|
|
|
3384
3392
|
shaka.ui.Matrix4x4.lookAt=function(a,b,c,d){var e=b[0],f=b[1];b=b[2];var g=d[0];var h=d[1];var k=d[2];var l=c[0];d=c[1];var m=c[2];if(Math.abs(e-l)<shaka.ui.Matrix4x4.EPSILON_&&Math.abs(f-d)<shaka.ui.Matrix4x4.EPSILON_&&Math.abs(b-m)<shaka.ui.Matrix4x4.EPSILON_)return shaka.ui.Matrix4x4.identity_(a);c=e-l;d=f-d;l=b-m;var n=1/Math.sqrt(c*c+d*d+l*l);c*=n;d*=n;l*=n;m=h*l-k*d;k=k*c-g*l;g=g*d-h*c;(n=Math.sqrt(m*m+k*k+g*g))?(n=1/n,m*=n,k*=n,g*=n):g=k=m=0;h=d*g-l*k;var p=l*m-c*g;var q=c*k-d*m;(n=Math.sqrt(h*
|
|
3385
3393
|
h+p*p+q*q))?(n=1/n,h*=n,p*=n,q*=n):q=p=h=0;a[0]=m;a[1]=h;a[2]=c;a[3]=0;a[4]=k;a[5]=p;a[6]=d;a[7]=0;a[8]=g;a[9]=q;a[10]=l;a[11]=0;a[12]=-(m*e+k*f+g*b);a[13]=-(h*e+p*f+q*b);a[14]=-(c*e+d*f+l*b);a[15]=1;return a};shaka.ui.Matrix4x4.scale=function(a,b,c){var d=c[0],e=c[1];c=c[2];a[0]=b[0]*d;a[1]=b[1]*d;a[2]=b[2]*d;a[3]=b[3]*d;a[4]=b[4]*e;a[5]=b[5]*e;a[6]=b[6]*e;a[7]=b[7]*e;a[8]=b[8]*c;a[9]=b[9]*c;a[10]=b[10]*c;a[11]=b[11]*c;a[12]=b[12];a[13]=b[13];a[14]=b[14];a[15]=b[15]};
|
|
3386
3394
|
shaka.ui.Matrix4x4.perspective=function(a,b,c,d,e){b=1/Math.tan(b/2);a[0]=b/c;a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=b;a[6]=0;a[7]=0;a[8]=0;a[9]=0;a[11]=-1;a[12]=0;a[13]=0;a[15]=0;null!=e&&Infinity!==e?(c=1/(d-e),a[10]=(e+d)*c,a[14]=2*e*d*c):(a[10]=-1,a[14]=-2*d);return a};
|
|
3387
|
-
shaka.ui.Matrix4x4.multiply=function(a,b,c){var d=b[0],e=b[1],f=b[2],g=b[3],h=b[4],k=b[5],l=b[6],m=b[7],n=b[8],p=b[9],q=b[10],r=b[11],t=b[12],u=b[13],w=b[14];b=b[15];var v=c[0],x=c[1],y=c[2],
|
|
3388
|
-
y*r+
|
|
3395
|
+
shaka.ui.Matrix4x4.multiply=function(a,b,c){var d=b[0],e=b[1],f=b[2],g=b[3],h=b[4],k=b[5],l=b[6],m=b[7],n=b[8],p=b[9],q=b[10],r=b[11],t=b[12],u=b[13],w=b[14];b=b[15];var v=c[0],x=c[1],y=c[2],B=c[3];a[0]=v*d+x*h+y*n+B*t;a[1]=v*e+x*k+y*p+B*u;a[2]=v*f+x*l+y*q+B*w;a[3]=v*g+x*m+y*r+B*b;v=c[4];x=c[5];y=c[6];B=c[7];a[4]=v*d+x*h+y*n+B*t;a[5]=v*e+x*k+y*p+B*u;a[6]=v*f+x*l+y*q+B*w;a[7]=v*g+x*m+y*r+B*b;v=c[8];x=c[9];y=c[10];B=c[11];a[8]=v*d+x*h+y*n+B*t;a[9]=v*e+x*k+y*p+B*u;a[10]=v*f+x*l+y*q+B*w;a[11]=v*g+x*m+
|
|
3396
|
+
y*r+B*b;v=c[12];x=c[13];y=c[14];B=c[15];a[12]=v*d+x*h+y*n+B*t;a[13]=v*e+x*k+y*p+B*u;a[14]=v*f+x*l+y*q+B*w;a[15]=v*g+x*m+y*r+B*b};shaka.ui.Matrix4x4.frustum=function(a,b,c,d,e,f,g){var h=1/(c-b),k=1/(e-d),l=1/(f-g);a[0]=2*f*h;a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=2*f*k;a[6]=0;a[7]=0;a[8]=(c+b)*h;a[9]=(e+d)*k;a[10]=(g+f)*l;a[11]=-1;a[12]=0;a[13]=0;a[14]=g*f*2*l;a[15]=0;return a};
|
|
3389
3397
|
shaka.ui.Matrix4x4.rotateX=function(a,b,c){var d=Math.sin(c);c=Math.cos(c);var e=b[4],f=b[5],g=b[6],h=b[7],k=b[8],l=b[9],m=b[10],n=b[11];b!==a&&(a[0]=b[0],a[1]=b[1],a[2]=b[2],a[3]=b[3],a[12]=b[12],a[13]=b[13],a[14]=b[14],a[15]=b[15]);a[4]=e*c+k*d;a[5]=f*c+l*d;a[6]=g*c+m*d;a[7]=h*c+n*d;a[8]=k*c-e*d;a[9]=l*c-f*d;a[10]=m*c-g*d;a[11]=n*c-h*d};
|
|
3390
3398
|
shaka.ui.Matrix4x4.rotateY=function(a,b,c){var d=Math.sin(c);c=Math.cos(c);var e=b[0],f=b[1],g=b[2],h=b[3],k=b[8],l=b[9],m=b[10],n=b[11];b!==a&&(a[4]=b[4],a[5]=b[5],a[6]=b[6],a[7]=b[7],a[12]=b[12],a[13]=b[13],a[14]=b[14],a[15]=b[15]);a[0]=e*c-k*d;a[1]=f*c-l*d;a[2]=g*c-m*d;a[3]=h*c-n*d;a[8]=e*d+k*c;a[9]=f*d+l*c;a[10]=g*d+m*c;a[11]=h*d+n*c};
|
|
3391
3399
|
shaka.ui.Matrix4x4.rotateZ=function(a,b,c){var d=Math.sin(c);c=Math.cos(c);var e=b[0],f=b[1],g=b[2],h=b[3],k=b[4],l=b[5],m=b[6],n=b[7];b!==a&&(a[8]=b[8],a[9]=b[9],a[10]=b[10],a[11]=b[11],a[12]=b[12],a[13]=b[13],a[14]=b[14],a[15]=b[15]);a[0]=e*c+k*d;a[1]=f*c+l*d;a[2]=g*c+m*d;a[3]=h*c+n*d;a[4]=k*c-e*d;a[5]=l*c-f*d;a[6]=m*c-g*d;a[7]=n*c-h*d};
|
|
@@ -3533,9 +3541,9 @@ shaka.ui.OverflowMenu.prototype.onOverflowMenuButtonClick_=function(){if(this.co
|
|
|
3533
3541
|
shaka.ui.OverflowMenu.prototype.updateAriaLabel_=function(){this.overflowMenuButton_.ariaLabel=this.localization.resolve(shaka.ui.Locales.Ids.MORE_SETTINGS)};goog.exportSymbol("shaka.ui.OverflowMenu",shaka.ui.OverflowMenu);goog.exportProperty(shaka.ui.OverflowMenu,"registerElement",shaka.ui.OverflowMenu.registerElement);shaka.ui.OverflowMenu.Factory=function(){};shaka.ui.OverflowMenu.Factory.prototype.create=function(a,b){return new shaka.ui.OverflowMenu(a,b)};
|
|
3534
3542
|
shaka.ui.Controls.registerElement("overflow_menu",new shaka.ui.OverflowMenu.Factory);shaka.ui.OverflowMenu.elementNamesToFactories_=new Map;shaka.ui.AdStatisticsButton=function(a,b){shaka.ui.Element.call(this,a,b);var c=this;this.button_=shaka.util.Dom.createButton();this.button_.classList.add("shaka-ad-statistics-button");this.icon_=shaka.util.Dom.createHTMLElement("i");this.icon_.classList.add("material-icons-round");this.icon_.textContent=shaka.ui.Enums.MaterialDesignIcons.STATISTICS_ON;this.button_.appendChild(this.icon_);a=shaka.util.Dom.createHTMLElement("label");a.classList.add("shaka-overflow-button-label");this.nameSpan_=shaka.util.Dom.createHTMLElement("span");
|
|
3535
3543
|
a.appendChild(this.nameSpan_);this.stateSpan_=shaka.util.Dom.createHTMLElement("span");this.stateSpan_.classList.add("shaka-current-selection-span");a.appendChild(this.stateSpan_);this.button_.appendChild(a);this.parent.appendChild(this.button_);this.container_=shaka.util.Dom.createHTMLElement("div");this.container_.classList.add("shaka-no-propagation");this.container_.classList.add("shaka-show-controls-on-mouse-over");this.container_.classList.add("shaka-ad-statistics-container");this.container_.classList.add("shaka-hidden");
|
|
3536
|
-
this.controls.getControlsContainer().appendChild(this.container_);this.statisticsList_=[];this.currentStats_=this.adManager.getStats();this.displayedElements_=new Map;a=function(d){return c.currentStats_[d]};this.parseFrom_=(new Map).set("loadTimes",function(d){var e=0;d=$jscomp.makeIterator(c.currentStats_[d]);for(var f=d.next();!f.done;f=d.next())e+=parseFloat(f.value);return e}).set("averageLoadTime",a).set("started",a).set("playedCompletely",
|
|
3537
|
-
this.updateLocalizedStrings_();this.loadContainer_();this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_UPDATED,function(){c.updateLocalizedStrings_()});this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_CHANGED,function(){c.updateLocalizedStrings_()});this.eventManager.listen(this.button_,"click",function(){c.onClick_();c.updateLocalizedStrings_()});this.eventManager.listen(this.player,
|
|
3538
|
-
shaka.ads.Utils.AD_STARTED,function(){shaka.ui.Utils.setDisplay(c.button_,!0)})};$jscomp.inherits(shaka.ui.AdStatisticsButton,shaka.ui.Element);
|
|
3544
|
+
this.controls.getControlsContainer().appendChild(this.container_);this.statisticsList_=[];this.currentStats_=this.adManager.getStats();shaka.ui.Utils.setDisplay(this.button_,0<this.currentStats_.started);this.displayedElements_=new Map;a=function(d){return c.currentStats_[d]};this.parseFrom_=(new Map).set("loadTimes",function(d){var e=0;d=$jscomp.makeIterator(c.currentStats_[d]);for(var f=d.next();!f.done;f=d.next())e+=parseFloat(f.value);return e}).set("averageLoadTime",a).set("started",a).set("playedCompletely",
|
|
3545
|
+
a).set("skipped",a).set("errors",a);this.timer_=new shaka.util.Timer(function(){c.onTimerTick_()});this.updateLocalizedStrings_();this.loadContainer_();this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_UPDATED,function(){c.updateLocalizedStrings_()});this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_CHANGED,function(){c.updateLocalizedStrings_()});this.eventManager.listen(this.button_,"click",function(){c.onClick_();c.updateLocalizedStrings_()});this.eventManager.listen(this.player,
|
|
3546
|
+
"loading",function(){shaka.ui.Utils.setDisplay(c.button_,!1)});this.eventManager.listen(this.adManager,shaka.ads.Utils.AD_STARTED,function(){shaka.ui.Utils.setDisplay(c.button_,!0)})};$jscomp.inherits(shaka.ui.AdStatisticsButton,shaka.ui.Element);
|
|
3539
3547
|
shaka.ui.AdStatisticsButton.prototype.onClick_=function(){shaka.ui.Utils.setDisplay(this.parent,!1);this.container_.classList.contains("shaka-hidden")?(this.icon_.textContent=shaka.ui.Enums.MaterialDesignIcons.STATISTICS_OFF,this.timer_.tickEvery(.1),shaka.ui.Utils.setDisplay(this.container_,!0)):(this.icon_.textContent=shaka.ui.Enums.MaterialDesignIcons.STATISTICS_ON,this.timer_.stop(),shaka.ui.Utils.setDisplay(this.container_,!1))};
|
|
3540
3548
|
shaka.ui.AdStatisticsButton.prototype.updateLocalizedStrings_=function(){var a=shaka.ui.Locales.Ids;this.nameSpan_.textContent=this.localization.resolve(a.AD_STATISTICS);this.button_.ariaLabel=this.localization.resolve(a.AD_STATISTICS);a=this.container_.classList.contains("shaka-hidden")?a.OFF:a.ON;this.stateSpan_.textContent=this.localization.resolve(a)};
|
|
3541
3549
|
shaka.ui.AdStatisticsButton.prototype.generateComponent_=function(a){var b=shaka.util.Dom.createHTMLElement("div"),c=shaka.util.Dom.createHTMLElement("label");c.textContent=a+":";b.appendChild(c);c=shaka.util.Dom.createHTMLElement("span");c.textContent=this.parseFrom_.get(a)(a);b.appendChild(c);this.displayedElements_.set(a,c);return b};
|
|
@@ -3568,10 +3576,10 @@ contextMenuElements:["loop","picture_in_picture","save_video_frame","statistics"
|
|
|
3568
3576
|
level:"rgb(255, 255, 255)"},trackLabelFormat:shaka.ui.Overlay.TrackLabelFormat.LANGUAGE,textTrackLabelFormat:shaka.ui.Overlay.TrackLabelFormat.LANGUAGE,fadeDelay:0,doubleClickForFullscreen:!0,singleClickForPlayAndPause:!0,enableKeyboardPlaybackControls:!0,enableFullscreenOnRotation:!0,forceLandscapeOnFullscreen:!0,enableTooltips:!1,keyboardSeekDistance:5,keyboardLargeSeekDistance:60,fullScreenElement:this.videoContainer_,preferDocumentPictureInPicture:!0,showAudioChannelCountVariants:!0,seekOnTaps:0<
|
|
3569
3577
|
navigator.maxTouchPoints,tapSeekDistance:10,refreshTickInSeconds:.125,displayInVrMode:!1,defaultVrProjectionMode:"equirectangular",setupMediaSession:!0,preferVideoFullScreenInVisionOS:!1,showAudioCodec:!0,showVideoCodec:!0};"remote"in HTMLMediaElement.prototype?a.overflowMenuButtons.push("remote"):window.WebKitPlaybackTargetAvailabilityEvent&&a.overflowMenuButtons.push("airplay");this.isMobile()&&(a.addBigPlayButton=!0,a.controlPanelElements=a.controlPanelElements.filter(function(b){return"play_pause"!=
|
|
3570
3578
|
b&&"volume"!=b}));a.overflowMenuButtons.push("save_video_frame");return a};
|
|
3571
|
-
shaka.ui.Overlay.scanPageForShakaElements_=function(){var a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,A
|
|
3579
|
+
shaka.ui.Overlay.scanPageForShakaElements_=function(){var a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,w,v,x,y,B,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(z){switch(z.nextAddress){case 1:shaka.polyfill.installAll();if(!shaka.Player.isBrowserSupported())return shaka.log.error("Shaka Player does not support this browser. Please see https://tinyurl.com/y7s4j9tr for the list of supported browsers."),shaka.ui.Overlay.dispatchLoadedEvent_("shaka-ui-load-failed",shaka.ui.Overlay.FailReasonCode.NO_BROWSER_SUPPORT),
|
|
3572
3580
|
z.return();a=document.querySelectorAll("[data-shaka-player-container]");b=document.querySelectorAll("[data-shaka-player]");c=document.querySelectorAll("[data-shaka-player-canvas]");d=document.querySelectorAll("[data-shaka-player-vr-canvas]");if(!b.length&&!a.length){z.jumpTo(2);break}if(b.length&&!a.length){e=$jscomp.makeIterator(b);for(f=e.next();!f.done;f=e.next())g=f.value,g.ui||(goog.asserts.assert("video"==g.tagName.toLowerCase(),"Should be a video element!"),h=document.createElement("div"),
|
|
3573
3581
|
k=g.parentElement,k.replaceChild(h,g),h.appendChild(g),l=shaka.ui.Overlay.findOrMakeSpecialCanvases_(h,c,d),m=l.lcevcCanvas,n=l.vrCanvas,shaka.ui.Overlay.setupUIandAutoLoad_(h,g,m,n));z.jumpTo(2);break}p=$jscomp.makeIterator(a);q=p.next();case 4:if(q.done){z.jumpTo(2);break}r=q.value;if(r.ui){z.jumpTo(5);break}goog.asserts.assert("div"==r.tagName.toLowerCase(),"Container should be a div!");t=null;u=$jscomp.makeIterator(b);for(w=u.next();!w.done;w=u.next())if(v=w.value,goog.asserts.assert("video"==
|
|
3574
|
-
v.tagName.toLowerCase(),"Should be a video element!"),v.parentElement==r){t=v;break}t||(t=document.createElement("video"),t.setAttribute("playsinline",""),r.appendChild(t));x=shaka.ui.Overlay.findOrMakeSpecialCanvases_(r,c,d);y=x.lcevcCanvas;
|
|
3582
|
+
v.tagName.toLowerCase(),"Should be a video element!"),v.parentElement==r){t=v;break}t||(t=document.createElement("video"),t.setAttribute("playsinline",""),r.appendChild(t));x=shaka.ui.Overlay.findOrMakeSpecialCanvases_(r,c,d);y=x.lcevcCanvas;B=x.vrCanvas;z.setCatchFinallyBlocks(7);return z.yield(shaka.ui.Overlay.setupUIandAutoLoad_(r,t,y,B),9);case 9:z.leaveTryBlock(5);break;case 7:return A=z.enterCatchBlock(),shaka.log.error("Error setting up Shaka Player",A),shaka.ui.Overlay.dispatchLoadedEvent_("shaka-ui-load-failed",
|
|
3575
3583
|
shaka.ui.Overlay.FailReasonCode.PLAYER_FAILED_TO_LOAD),z.return();case 5:q=p.next();z.jumpTo(4);break;case 2:shaka.ui.Overlay.dispatchLoadedEvent_("shaka-ui-loaded"),z.jumpToEnd()}})};shaka.ui.Overlay.dispatchLoadedEvent_=function(a,b){var c=null;void 0!=b&&(c={reasonCode:b});a=new CustomEvent(a,{detail:c});document.dispatchEvent(a)};
|
|
3576
3584
|
shaka.ui.Overlay.setupUIandAutoLoad_=function(a,b,c,d){var e,f,g,h,k,l,m,n,p,q,r,t,u;return $jscomp.asyncExecutePromiseGeneratorProgram(function(w){switch(w.nextAddress){case 1:e=new shaka.Player;f=new shaka.ui.Overlay(e,shaka.util.Dom.asHTMLElement(a),shaka.util.Dom.asHTMLMediaElement(b),shaka.util.Dom.asHTMLCanvasElement(d));e.attachCanvas(c);g="";h=!1;a.dataset&&a.dataset.shakaPlayerCastReceiverId?(g=a.dataset.shakaPlayerCastReceiverId,h="true"===a.dataset.shakaPlayerCastAndroidReceiverCompatible):
|
|
3577
3585
|
b.dataset&&b.dataset.shakaPlayerCastReceiverId&&(g=b.dataset.shakaPlayerCastReceiverId,h="true"===b.dataset.shakaPlayerCastAndroidReceiverCompatible);g.length&&f.configure({castReceiverAppId:g,castAndroidReceiverCompatible:h});shaka.util.Dom.asHTMLMediaElement(b).controls&&f.getControls().setEnabledNativeControls(!0);k=[];if(l=b.getAttribute("src"))k.push(l),b.removeAttribute("src");m=$jscomp.makeIterator(b.getElementsByTagName("source"));for(n=m.next();!n.done;n=m.next())p=n.value,k.push(p.src),
|
|
@@ -3581,12 +3589,12 @@ e.parentElement==a){b=e;break}b||(b=document.createElement("canvas"),b.classList
|
|
|
3581
3589
|
goog.exportProperty(shaka.ui.Overlay.prototype,"setEnabled",shaka.ui.Overlay.prototype.setEnabled);goog.exportProperty(shaka.ui.Overlay.prototype,"getControls",shaka.ui.Overlay.prototype.getControls);goog.exportProperty(shaka.ui.Overlay.prototype,"configure",shaka.ui.Overlay.prototype.configure);goog.exportProperty(shaka.ui.Overlay.prototype,"getConfiguration",shaka.ui.Overlay.prototype.getConfiguration);goog.exportProperty(shaka.ui.Overlay.prototype,"isMobile",shaka.ui.Overlay.prototype.isMobile);
|
|
3582
3590
|
goog.exportProperty(shaka.ui.Overlay.prototype,"destroy",shaka.ui.Overlay.prototype.destroy);shaka.ui.Overlay.TrackLabelFormat={LANGUAGE:0,ROLE:1,LANGUAGE_ROLE:2,LABEL:3};goog.exportProperty(shaka.ui.Overlay,"TrackLabelFormat",shaka.ui.Overlay.TrackLabelFormat);shaka.ui.Overlay.FailReasonCode={NO_BROWSER_SUPPORT:0,PLAYER_FAILED_TO_LOAD:1};goog.exportProperty(shaka.ui.Overlay,"FailReasonCode",shaka.ui.Overlay.FailReasonCode);
|
|
3583
3591
|
"complete"==document.readyState?function(){return $jscomp.asyncExecutePromiseGeneratorProgram(function(a){if(1==a.nextAddress)return a.yield(Promise.resolve(),2);shaka.ui.Overlay.scanPageForShakaElements_();a.jumpToEnd()})}():window.addEventListener("load",shaka.ui.Overlay.scanPageForShakaElements_);shaka.ui.LanguageUtils=function(){};
|
|
3584
|
-
shaka.ui.LanguageUtils.updateTracks=function(a,b,c,d,e,f,g,h,k){for(var l=shaka.ui.Locales.Ids,m=a.find(function(
|
|
3585
|
-
b.appendChild(p);p=function(
|
|
3586
|
-
return F?" "+F:F},w=new Map,v=$jscomp.makeIterator(a),x=v.next();!x.done;x=v.next())x=x.value,w.has(x.language)||w.set(x.language,new Set),w.get(x.language).add(p(x));w=new Set;m=m?q(m.language,p(m),m.label,m.channelsCount,m.audioCodec,m.spatialAudio):"";a=$jscomp.makeIterator(a);x=a.next();for(v={};!x.done;v={track$jscomp$44:void 0},x=a.next()){v.track$jscomp$44=x.value;x=v.track$jscomp$44.language;var y=v.track$jscomp$44.forced,
|
|
3587
|
-
C=v.track$jscomp$44.channelsCount,D=v.track$jscomp$44.audioCodec,E=v.track$jscomp$44.spatialAudio,
|
|
3588
|
-
L;y&&(
|
|
3589
|
-
v.track$jscomp$44.id+" does not have a label, but the UI is configured to only show labels."),
|
|
3592
|
+
shaka.ui.LanguageUtils.updateTracks=function(a,b,c,d,e,f,g,h,k){for(var l=shaka.ui.Locales.Ids,m=a.find(function(K){return 1==K.active}),n=new Map,p=$jscomp.makeIterator(a),q=p.next();!q.done;q=p.next())q=q.value,q.audioCodec&&(n.has(q.language)||n.set(q.language,new Set),n.get(q.language).add(shaka.util.MimeUtils.getNormalizedCodec(q.audioCodec)));var r=function(K){return n.has(K)&&1<n.get(K).size};p=shaka.ui.Utils.getFirstDescendantWithClassName(b,"shaka-back-to-overflow-button");shaka.util.Dom.removeAllChildren(b);
|
|
3593
|
+
b.appendChild(p);p=function(K){return"variant"==K.type?K.audioRoles?K.audioRoles.join(", "):void 0:K.roles.join(", ")};q=function(K,F,M,J,N,P){F=[K,F,P];h&&null!=J&&F.push(J);k&&r(K)&&N&&F.push(N);M&&g==shaka.ui.Overlay.TrackLabelFormat.LABEL&&F.push(M);return F.join(": ")};for(var t=function(K){var F="";5<=K&&(F=" "+f.resolve(l.SURROUND));return F},u=function(K){var F="";K=K.toLowerCase();K.startsWith("mp4a")?F="AAC":"ac-3"===K?F="Dolby":"ec-3"===K?F="DD+":"opus"===K?F="Opus":"flac"===K&&(F="fLaC");
|
|
3594
|
+
return F?" "+F:F},w=new Map,v=$jscomp.makeIterator(a),x=v.next();!x.done;x=v.next())x=x.value,w.has(x.language)||w.set(x.language,new Set),w.get(x.language).add(p(x));w=new Set;m=m?q(m.language,p(m),m.label,m.channelsCount,m.audioCodec,m.spatialAudio):"";a=$jscomp.makeIterator(a);x=a.next();for(v={};!x.done;v={track$jscomp$44:void 0},x=a.next()){v.track$jscomp$44=x.value;x=v.track$jscomp$44.language;var y=v.track$jscomp$44.forced,B=f.resolve(l.SUBTITLE_FORCED),A=p(v.track$jscomp$44),z=v.track$jscomp$44.label,
|
|
3595
|
+
C=v.track$jscomp$44.channelsCount,D=v.track$jscomp$44.audioCodec,E=v.track$jscomp$44.spatialAudio,H=q(x,A,z,C,D,E);if(!w.has(H)){w.add(H);var I=shaka.util.Dom.createButton();I.addEventListener("click",function(K){return function(){c(K.track$jscomp$44)}}(v));var G=shaka.util.Dom.createHTMLElement("span");I.appendChild(G);G.textContent=shaka.ui.LanguageUtils.getLanguageName(x,f);var L="";k&&h&&E&&"ec-3"==D?L+=" Dolby Atmos":(k&&r(x)&&(L+=u(D)),h&&(L+=t(C)));switch(g){case shaka.ui.Overlay.TrackLabelFormat.LANGUAGE:G.textContent+=
|
|
3596
|
+
L;y&&(G.textContent+=" ("+B+")");break;case shaka.ui.Overlay.TrackLabelFormat.ROLE:G.textContent+=L;A?G.textContent=A:(shaka.log.alwaysWarn("Track #"+v.track$jscomp$44.id+" does not have a role, but the UI is configured to only show role."),G.textContent="?");y&&(G.textContent+=" ("+B+")");break;case shaka.ui.Overlay.TrackLabelFormat.LANGUAGE_ROLE:G.textContent+=L;A&&(G.textContent+=": "+A);y&&(G.textContent+=" ("+B+")");break;case shaka.ui.Overlay.TrackLabelFormat.LABEL:z?G.textContent=z:(shaka.log.alwaysWarn("Track #"+
|
|
3597
|
+
v.track$jscomp$44.id+" does not have a label, but the UI is configured to only show labels."),G.textContent="?")}d&&H==m&&(I.appendChild(shaka.ui.Utils.checkmarkIcon()),G.classList.add("shaka-chosen-item"),I.ariaSelected="true",e.textContent=G.textContent);b.appendChild(I)}}};
|
|
3590
3598
|
shaka.ui.LanguageUtils.getLanguageName=function(a,b){if(!a&&!b)return"";switch(a){case "mul":return b.resolve(shaka.ui.Locales.Ids.MULTIPLE_LANGUAGES);case "und":return b.resolve(shaka.ui.Locales.Ids.UNDETERMINED_LANGUAGE);case "zxx":return b.resolve(shaka.ui.Locales.Ids.NOT_APPLICABLE)}var c=shaka.util.LanguageUtils.getBase(a);return a in mozilla.LanguageMapping?mozilla.LanguageMapping[a].nativeName:c in mozilla.LanguageMapping?mozilla.LanguageMapping[c].nativeName+" ("+a+")":b.resolve(shaka.ui.Locales.Ids.UNRECOGNIZED_LANGUAGE)+
|
|
3591
3599
|
" ("+a+")"};shaka.ui.SettingsMenu=function(a,b,c){shaka.ui.Element.call(this,a,b);var d=this;this.addButton_(c);this.addMenu_();this.inOverflowMenu_();this.eventManager.listen(this.button,"click",function(){d.onButtonClick_()})};$jscomp.inherits(shaka.ui.SettingsMenu,shaka.ui.Element);
|
|
3592
3600
|
shaka.ui.SettingsMenu.prototype.addButton_=function(a){this.button=shaka.util.Dom.createButton();this.button.classList.add("shaka-overflow-button");this.icon=shaka.util.Dom.createHTMLElement("i");this.icon.classList.add("material-icons-round");this.icon.textContent=a;this.button.appendChild(this.icon);a=shaka.util.Dom.createHTMLElement("label");a.classList.add("shaka-overflow-button-label");a.classList.add("shaka-overflow-menu-only");this.nameSpan=shaka.util.Dom.createHTMLElement("span");a.appendChild(this.nameSpan);
|
|
@@ -3691,9 +3699,9 @@ shaka.ui.SmallPlayButton.prototype.updateIcon=function(){var a=shaka.ui.Enums.Ma
|
|
|
3691
3699
|
shaka.ui.SmallPlayButton.Factory=function(){};shaka.ui.SmallPlayButton.Factory.prototype.create=function(a,b){return new shaka.ui.SmallPlayButton(a,b)};shaka.ui.Controls.registerElement("play_pause",new shaka.ui.SmallPlayButton.Factory);shaka.ui.Spacer=function(a,b){shaka.ui.Element.call(this,a,b);a=shaka.util.Dom.createHTMLElement("div");a.classList.add("shaka-spacer");a.ariaHidden="true";this.parent.appendChild(a)};$jscomp.inherits(shaka.ui.Spacer,shaka.ui.Element);goog.exportSymbol("shaka.ui.Spacer",shaka.ui.Spacer);shaka.ui.Spacer.Factory=function(){};shaka.ui.Spacer.Factory.prototype.create=function(a,b){return new shaka.ui.Spacer(a,b)};shaka.ui.Controls.registerElement("spacer",new shaka.ui.Spacer.Factory);shaka.ui.StatisticsButton=function(a,b){shaka.ui.Element.call(this,a,b);var c=this;this.button_=shaka.util.Dom.createButton();this.button_.classList.add("shaka-statistics-button");this.icon_=shaka.util.Dom.createHTMLElement("i");this.icon_.classList.add("material-icons-round");this.icon_.textContent=shaka.ui.Enums.MaterialDesignIcons.STATISTICS_ON;this.button_.appendChild(this.icon_);a=shaka.util.Dom.createHTMLElement("label");a.classList.add("shaka-overflow-button-label");this.nameSpan_=shaka.util.Dom.createHTMLElement("span");
|
|
3692
3700
|
a.appendChild(this.nameSpan_);this.stateSpan_=shaka.util.Dom.createHTMLElement("span");this.stateSpan_.classList.add("shaka-current-selection-span");a.appendChild(this.stateSpan_);this.button_.appendChild(a);this.parent.appendChild(this.button_);this.container_=shaka.util.Dom.createHTMLElement("div");this.container_.classList.add("shaka-no-propagation");this.container_.classList.add("shaka-show-controls-on-mouse-over");this.container_.classList.add("shaka-statistics-container");this.container_.classList.add("shaka-hidden");
|
|
3693
3701
|
this.controls.getControlsContainer().appendChild(this.container_);this.statisticsList_=[];this.skippedStats_=["stateHistory","switchHistory"];this.currentStats_=this.player.getStats();this.displayedElements_=new Map;a=function(k){return c.currentStats_[k]+" (px)"};b=function(k){return c.currentStats_[k]+" (frames)"};var d=function(k){return c.currentStats_[k].toFixed(2)+" (s)"},e=function(k){return Math.round(c.currentStats_[k]/1E3)+" (kbits/s)"},f=function(k){return shaka.ui.Utils.buildTimeString(c.currentStats_[k],
|
|
3694
|
-
!1)+" (m)"},g=function(k){return c.currentStats_[k]+" (gaps)"},h=function(k){k=parseInt(c.currentStats_[k],10);return 1E6<k?(k/1E6).toFixed(2)+"MB":1E3<k?(k/1E3).toFixed(2)+"KB":k+"B"};this.parseFrom_=(new Map).set("width",a).set("height",a).set("completionPercent",function(k){return c.currentStats_[k]+" (%)"}).set("bufferingTime",d).set("drmTimeSeconds",d).set("licenseTime",d).set("liveLatency",d).set("loadLatency",d).set("manifestTimeSeconds",d).set("estimatedBandwidth",
|
|
3695
|
-
e).set("maxSegmentDuration",f).set("pauseTime",f).set("playTime",f).set("corruptedFrames",b).set("decodedFrames",b).set("droppedFrames",b).set("stallsDetected",function(k){return c.currentStats_[k]+" (stalls)"}).set("gapsJumped",g).set("manifestSizeBytes",h).set("bytesDownloaded",h).set("nonFatalErrorCount",function(k){return c.currentStats_[k]+" (errors)"}).set("manifestPeriodCount",function(k){return c.currentStats_[k]+" (periods)"}).set("manifestGapCount",g);this.timer_=
|
|
3696
|
-
this.updateLocalizedStrings_();this.loadContainer_();this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_UPDATED,function(){c.updateLocalizedStrings_()});this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_CHANGED,function(){c.updateLocalizedStrings_()});this.eventManager.listen(this.button_,"click",function(){c.onClick_();c.updateLocalizedStrings_()})};$jscomp.inherits(shaka.ui.StatisticsButton,shaka.ui.Element);
|
|
3702
|
+
!1)+" (m)"},g=function(k){return c.currentStats_[k]+" (gaps)"},h=function(k){k=parseInt(c.currentStats_[k],10);return 2E9<k?(k/1E9).toFixed(2)+"GB":1E6<k?(k/1E6).toFixed(2)+"MB":1E3<k?(k/1E3).toFixed(2)+"KB":k+"B"};this.parseFrom_=(new Map).set("width",a).set("height",a).set("completionPercent",function(k){return c.currentStats_[k]+" (%)"}).set("bufferingTime",d).set("drmTimeSeconds",d).set("licenseTime",d).set("liveLatency",d).set("loadLatency",d).set("manifestTimeSeconds",d).set("estimatedBandwidth",
|
|
3703
|
+
e).set("streamBandwidth",e).set("maxSegmentDuration",f).set("pauseTime",f).set("playTime",f).set("corruptedFrames",b).set("decodedFrames",b).set("droppedFrames",b).set("stallsDetected",function(k){return c.currentStats_[k]+" (stalls)"}).set("gapsJumped",g).set("manifestSizeBytes",h).set("bytesDownloaded",h).set("nonFatalErrorCount",function(k){return c.currentStats_[k]+" (errors)"}).set("manifestPeriodCount",function(k){return c.currentStats_[k]+" (periods)"}).set("manifestGapCount",g);this.timer_=
|
|
3704
|
+
new shaka.util.Timer(function(){c.onTimerTick_()});this.updateLocalizedStrings_();this.loadContainer_();this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_UPDATED,function(){c.updateLocalizedStrings_()});this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_CHANGED,function(){c.updateLocalizedStrings_()});this.eventManager.listen(this.button_,"click",function(){c.onClick_();c.updateLocalizedStrings_()})};$jscomp.inherits(shaka.ui.StatisticsButton,shaka.ui.Element);
|
|
3697
3705
|
shaka.ui.StatisticsButton.prototype.onClick_=function(){shaka.ui.Utils.setDisplay(this.parent,!1);this.container_.classList.contains("shaka-hidden")?(this.icon_.textContent=shaka.ui.Enums.MaterialDesignIcons.STATISTICS_OFF,this.timer_.tickEvery(.1),shaka.ui.Utils.setDisplay(this.container_,!0)):(this.icon_.textContent=shaka.ui.Enums.MaterialDesignIcons.STATISTICS_ON,this.timer_.stop(),shaka.ui.Utils.setDisplay(this.container_,!1))};
|
|
3698
3706
|
shaka.ui.StatisticsButton.prototype.updateLocalizedStrings_=function(){var a=shaka.ui.Locales.Ids;this.nameSpan_.textContent=this.localization.resolve(a.STATISTICS);this.button_.ariaLabel=this.localization.resolve(a.STATISTICS);a=this.container_.classList.contains("shaka-hidden")?a.OFF:a.ON;this.stateSpan_.textContent=this.localization.resolve(a)};
|
|
3699
3707
|
shaka.ui.StatisticsButton.prototype.generateComponent_=function(a){var b=shaka.util.Dom.createHTMLElement("div"),c=shaka.util.Dom.createHTMLElement("label");c.textContent=a+":";b.appendChild(c);c=shaka.util.Dom.createHTMLElement("span");c.textContent=this.parseFrom_.get(a)(a);b.appendChild(c);this.displayedElements_.set(a,c);return b};
|