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
|
@@ -139,11 +139,11 @@ goog.asserts=function(){};goog.asserts.assert=function(a,b){};goog.asserts.ENABL
|
|
|
139
139
|
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)};
|
|
140
140
|
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.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(){};
|
|
141
141
|
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;
|
|
142
|
-
|
|
143
|
-
return console.
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
(shaka.log.
|
|
142
|
+
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,
|
|
143
|
+
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);
|
|
144
|
+
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);
|
|
145
|
+
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&&
|
|
146
|
+
(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={};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};
|
|
147
147
|
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.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)};
|
|
148
148
|
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()}};
|
|
149
149
|
goog.exportSymbol("shaka.util.EventManager",shaka.util.EventManager);goog.exportProperty(shaka.util.EventManager.prototype,"removeAll",shaka.util.EventManager.prototype.removeAll);goog.exportProperty(shaka.util.EventManager.prototype,"unlisten",shaka.util.EventManager.prototype.unlisten);goog.exportProperty(shaka.util.EventManager.prototype,"listenOnce",shaka.util.EventManager.prototype.listenOnce);goog.exportProperty(shaka.util.EventManager.prototype,"listen",shaka.util.EventManager.prototype.listen);
|
|
@@ -192,15 +192,16 @@ shaka.util.Platform.isTizen4=function(){return shaka.util.Platform.userAgentCont
|
|
|
192
192
|
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")};
|
|
193
193
|
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};
|
|
194
194
|
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")};
|
|
195
|
-
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.
|
|
196
|
-
shaka.util.Platform.
|
|
197
|
-
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")};
|
|
198
|
-
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()};
|
|
199
|
-
shaka.util.Platform.
|
|
195
|
+
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()};
|
|
196
|
+
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")};
|
|
197
|
+
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")};
|
|
198
|
+
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()};
|
|
199
|
+
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};
|
|
200
|
+
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};
|
|
200
201
|
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")};
|
|
201
|
-
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)};
|
|
202
|
+
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)};
|
|
202
203
|
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_};
|
|
203
|
-
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};
|
|
204
|
+
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};
|
|
204
205
|
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};
|
|
205
206
|
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'),
|
|
206
207
|
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(v){shaka.log.alwaysWarn("Tizen: Error detecting screen size, default screen size 1920x1080.")}u.jumpTo(3);
|
|
@@ -255,7 +256,8 @@ shaka.util.TXml.txmlNodeToDomElement=function(a){var b=shaka.util.TXml,c="",d=a.
|
|
|
255
256
|
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;
|
|
256
257
|
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}};
|
|
257
258
|
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};
|
|
258
|
-
shaka.text.Cue.equal=function(a,b){if(a.
|
|
259
|
+
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]!=
|
|
260
|
+
b[c])return!1;return!0};
|
|
259
261
|
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=
|
|
260
262
|
$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)};
|
|
261
263
|
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=
|
|
@@ -356,7 +358,7 @@ shaka.util.LanguageUtils.isoMap_=new Map([["aar","aa"],["abk","ab"],["afr","af"]
|
|
|
356
358
|
"ru"],["sag","sg"],["san","sa"],["sin","si"],["slk","sk"],["slo","sk"],["slv","sl"],["sme","se"],["smo","sm"],["sna","sn"],["snd","sd"],["som","so"],["sot","st"],["spa","es"],["sqi","sq"],["srd","sc"],["srp","sr"],["ssw","ss"],["sun","su"],["swa","sw"],["swe","sv"],["tah","ty"],["tam","ta"],["tat","tt"],["tel","te"],["tgk","tg"],["tgl","tl"],["tha","th"],["tib","bo"],["tir","ti"],["ton","to"],["tsn","tn"],["tso","ts"],["tuk","tk"],["tur","tr"],["twi","tw"],["uig","ug"],["ukr","uk"],["urd","ur"],["uzb",
|
|
357
359
|
"uz"],["ven","ve"],["vie","vi"],["vol","vo"],["wel","cy"],["wln","wa"],["wol","wo"],["xho","xh"],["yid","yi"],["yor","yo"],["zha","za"],["zho","zh"],["zul","zu"]]);shaka.util.StreamUtils=function(){};
|
|
358
360
|
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(v){return v.codecs.startsWith(u.textFormat)||v.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,
|
|
359
|
-
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,v){u=0;var w=[];v=$jscomp.makeIterator(v);for(var x=v.next(),
|
|
361
|
+
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,v){u=0;var w=[];v=$jscomp.makeIterator(v);for(var x=v.next(),z={};!x.done;z={variant$jscomp$3:void 0},x=v.next())z.variant$jscomp$3=x.value,x=d.filter(function(B){return function(A){return B.variant$jscomp$3.decodingInfos[0][A]}}(z)).length,x>u?(u=x,w=[z.variant$jscomp$3]):x==u&&w.push(z.variant$jscomp$3);m.push.apply(m,
|
|
360
362
|
$jscomp.arrayFromIterable(w))});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,v){return u.bandwidth-v.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),
|
|
361
363
|
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,v){if(!u.bandwidth||!v.bandwidth||u.bandwidth==v.bandwidth){if(u.codecs&&v.codecs&&u.codecs!=v.codecs&&u.width==v.width){var w=g.getNormalizedCodec(u.codecs),x=g.getNormalizedCodec(v.codecs);if(w!=
|
|
362
364
|
x)return(r[w]||1)-(r[x]||1)}return u.width-v.width}return u.bandwidth-v.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==
|
|
@@ -378,10 +380,10 @@ q&&(n.cache.set(n.cacheKey,q),e=c(e,q))}}(k)));return m.yield(Promise.all(f),2)}
|
|
|
378
380
|
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=
|
|
379
381
|
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.",
|
|
380
382
|
JSON.stringify(a),l);return null})};
|
|
381
|
-
shaka.util.StreamUtils.getDecodingInfosForVariants=function(a,b,c,d){var e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
382
|
-
break}n=m.value;p=shaka.util.StreamUtils.getDecodingConfigs_(n,b,c).filter(function(
|
|
383
|
-
h={preferredKeySystem:void 0};g=f.next();
|
|
384
|
-
|
|
383
|
+
shaka.util.StreamUtils.getDecodingInfosForVariants=function(a,b,c,d){var e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z,B,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(y){switch(y.nextAddress){case 1:if(e=a.some(function(C){return C.decodingInfos.length}))return shaka.log.debug("Already got the variants' decodingInfo."),y.return();f=$jscomp.makeIterator(d);g=f.next();h={};case 2:if(g.done){y.jumpTo(4);break}h.preferredKeySystem=g.value;k=!1;l=$jscomp.makeIterator(a);m=l.next();case 5:if(m.done){y.jumpTo(7);
|
|
384
|
+
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){y.jumpTo(10);break}t=r.value;return y.yield(shaka.util.StreamUtils.getDecodingInfosForVariant_(n,t),9);case 9:r=q.next();y.jumpTo(8);break;case 10:n.decodingInfos.length&&(k=!0);m=l.next();y.jumpTo(5);break;case 7:if(k)return y.return();
|
|
385
|
+
h={preferredKeySystem:void 0};g=f.next();y.jumpTo(2);break;case 4:u=$jscomp.makeIterator(a),v=u.next();case 12:if(v.done){y.jumpTo(0);break}w=v.value;x=shaka.util.StreamUtils.getDecodingConfigs_(w,b,c).filter(function(C){C=C[0];C=C.keySystemConfiguration&&C.keySystemConfiguration.keySystem;return!C||!d.includes(C)});z=$jscomp.makeIterator(x);B=z.next();case 15:if(B.done){v=u.next();y.jumpTo(12);break}A=B.value;return y.yield(shaka.util.StreamUtils.getDecodingInfosForVariant_(w,A),16);case 16:B=z.next(),
|
|
386
|
+
y.jumpTo(15)}})};
|
|
385
387
|
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,
|
|
386
388
|
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=
|
|
387
389
|
$jscomp.makeIterator(d.fullMimeTypes),n=g.next();!n.done;n=g.next())p=n.value,n=h.getBasicType(p),p=k.getCorrectAudioCodecs(h.getCodecs(p),n),n=h.getFullOrConvertedType(n,p,f.AUDIO),m.push({contentType:n,channels:d.channelsCount||2,bitrate:d.bandwidth||a.bandwidth||1,samplerate:d.audioSamplingRate||1,spatialRendering:d.spatialAudio});f=[];0==l.length&&l.push(null);0==m.length&&m.push(null);l=$jscomp.makeIterator(l);for(h=l.next();!h.done;h=l.next())for(h=h.value,k=$jscomp.makeIterator(m),g=k.next();!g.done;g=
|
|
@@ -397,10 +399,11 @@ shaka.util.StreamUtils.filterManifestByCurrentVariant=function(a,b){var c=shaka.
|
|
|
397
399
|
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,
|
|
398
400
|
!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()}})};
|
|
399
401
|
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};
|
|
400
|
-
shaka.util.StreamUtils.variantToTrack=function(a){var b=a.audio,
|
|
401
|
-
active:!1,type:"variant",bandwidth:a.bandwidth,language:a.language,label:null,kind:
|
|
402
|
-
originalAudioId:null,originalTextId:null,originalImageId:null,accessibilityPurpose:null,originalLanguage:null};
|
|
403
|
-
|
|
402
|
+
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),
|
|
403
|
+
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,
|
|
404
|
+
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=
|
|
405
|
+
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=
|
|
406
|
+
d.originalLanguage);return a};
|
|
404
407
|
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,
|
|
405
408
|
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}};
|
|
406
409
|
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,
|
|
@@ -474,9 +477,9 @@ shaka.net.NetworkingEngine.prototype.filterRequest_=function(a,b,c){var d=shaka.
|
|
|
474
477
|
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)};
|
|
475
478
|
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),
|
|
476
479
|
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,v;return shaka.util.AbortableOperation.notAbortable(d.attempt()).chain(function(){if(h.destroyed_)return shaka.util.AbortableOperation.aborted();
|
|
477
|
-
v=Date.now();var w=shaka.net.NetworkingEngine.RequestType.SEGMENT,x=0;b.requestStartTime=Date.now();var
|
|
478
|
-
|
|
479
|
-
b,a);if(h.onDownloadCompleted_)h.onDownloadCompleted_(b,w);return x},function(w){q&&q.stop();r&&r.stop();if(h.onDownloadFailed_){var x=null,
|
|
480
|
+
v=Date.now();var w=shaka.net.NetworkingEngine.RequestType.SEGMENT,x=0;b.requestStartTime=Date.now();var z=n(b.uris[e],b,a,function(y,C,D){q&&q.stop();r&&r.tickAfter(A/1E3);if(h.onProgressUpdated_&&a==w){x++;b.packetNumber=x;var E=h.allowSwitch_(c);h.onProgressUpdated_(y,C,E,b);m=!0;g.setBytes(D)}},function(y){u=!0;b.timeToFirstByte=Date.now()-b.requestStartTime;if(h.onHeadersReceived_)h.onHeadersReceived_(y,b,a)},{minBytesForProgressEvents:h.minBytesForProgressEvents_});if(!p)return z;var B=b.retryParameters.connectionTimeout;
|
|
481
|
+
B&&(q=new shaka.util.Timer(function(){t=!0;z.abort()}),q.tickAfter(B/1E3));var A=b.retryParameters.stallTimeout;A&&(r=new shaka.util.Timer(function(){t=!0;z.abort()}));return z}).chain(function(w){q&&q.stop();r&&r.stop();void 0==w.timeMs&&(w.timeMs=Date.now()-v);var x=w.headers[shaka.net.NetworkingEngine.CommonAccessTokenHeaderName_];if(x){var z=new goog.Uri(w.uri);h.hostCommonAccessTokenMap_.set(z.getDomain(),x)}x={response:w,gotProgress:m};if(!u&&h.onHeadersReceived_)h.onHeadersReceived_(w.headers,
|
|
482
|
+
b,a);if(h.onDownloadCompleted_)h.onDownloadCompleted_(b,w);return x},function(w){q&&q.stop();r&&r.stop();if(h.onDownloadFailed_){var x=null,z=0;w instanceof shaka.util.Error&&(x=w,w.code==shaka.util.Error.Code.BAD_HTTP_STATUS&&(z=w.data[1]));h.onDownloadFailed_(b,x,z,t)}if(h.destroyed_)return shaka.util.AbortableOperation.aborted();t&&(w=new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.TIMEOUT,b.uris[e],a));if(w instanceof shaka.util.Error){if(w.code==
|
|
480
483
|
shaka.util.Error.Code.OPERATION_ABORTED)throw w;if(w.code==shaka.util.Error.Code.ATTEMPTS_EXHAUSTED)throw goog.asserts.assert(f,"Should have last error"),f;if(w.severity==shaka.util.Error.Severity.RECOVERABLE)return x=(new Map).set("error",w),x=new shaka.util.FakeEvent("retry",x),h.dispatchEvent(x),e=(e+1)%b.uris.length,h.send_(a,b,c,d,e,w,g)}throw w;})};
|
|
481
484
|
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;
|
|
482
485
|
if(h instanceof shaka.util.Error){if(h.code==shaka.util.Error.Code.OPERATION_ABORTED)throw h;k=h.severity}throw new shaka.util.Error(k,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.RESPONSE_FILTER_ERROR,h);})};shaka.net.NetworkingEngine.prototype.allowSwitch_=function(a){if(a){var b=a.segment;a=a.stream;if(b&&a&&a.fastSwitching&&b.isPartial())return!1}return!0};shaka.net.NetworkingEngine.getLocationProtocol_=function(){return location.protocol};
|
|
@@ -525,11 +528,11 @@ shaka.drm.DrmEngine.prototype.configure=function(a,b){this.config_=a;b&&(this.is
|
|
|
525
528
|
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;
|
|
526
529
|
return this.init_(a)};
|
|
527
530
|
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,[])};
|
|
528
|
-
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,v,w,x,
|
|
529
|
-
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,
|
|
530
|
-
A.next()){D=D.value;var E=D[
|
|
531
|
-
D,(
|
|
532
|
-
x=c||Object.keys(b.config_.servers).length;if(!x)return b.initialized_=!0,
|
|
531
|
+
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,v,w,x,z;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,
|
|
532
|
+
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,y){var C=[];A=$jscomp.makeIterator(A);for(var D=A.next();!D.done;D=
|
|
533
|
+
A.next()){D=D.value;var E=D[y]||b.config_.advanced&&b.config_.advanced[D.keySystem]&&b.config_.advanced[D.keySystem][y]||"";""==E&&shaka.drm.DrmUtils.isWidevineKeySystem(D.keySystem)&&("audioRobustness"==y?E=[b.config_.defaultAudioRobustnessForWidevine]:"videoRobustness"==y&&(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 F=E.next();!F.done;F=E.next()){var H={};C.push(Object.assign({},
|
|
534
|
+
D,(H[y]=F.value,H)))}}}return C};u=$jscomp.makeIterator(a);for(v=u.next();!v.done;v=u.next())w=v.value,w.video&&(w.video.drmInfos=t(w.video.drmInfos,"videoRobustness"),w.video.drmInfos=t(w.video.drmInfos,"audioRobustness")),w.audio&&(w.audio.drmInfos=t(w.audio.drmInfos,"videoRobustness"),w.audio.drmInfos=t(w.audio.drmInfos,"audioRobustness"));return B.yield(shaka.util.StreamUtils.getDecodingInfosForVariants(a,b.usePersistentLicenses_,b.srcEquals_,b.config_.preferredKeySystems),2)}b.destroyer_.ensureNotDestroyed();
|
|
535
|
+
x=c||Object.keys(b.config_.servers).length;if(!x)return b.initialized_=!0,B.return(Promise.resolve());z=b.queryMediaKeys_(void 0,a);return B.return(c?z:z.catch(function(){}))})};
|
|
533
536
|
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);
|
|
534
537
|
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()}})};
|
|
535
538
|
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()})};
|
|
@@ -557,10 +560,10 @@ p.yield(c.setServerCertificate(),11);case 11:c.destroyer_.ensureNotDestroyed();p
|
|
|
557
560
|
shaka.drm.DrmEngine.prototype.getKeySystemAccessFromVariants_=function(a,b){for(var c=$jscomp.makeIterator(a),d=c.next();!d.done;d=c.next()){d=this.getVariantDrmInfos_(d.value);d=$jscomp.makeIterator(d);for(var e=d.next();!e.done;e=d.next())e=e.value,b.has(e.keySystem)||b.set(e.keySystem,[]),b.get(e.keySystem).push(e)}if(1==b.size&&b.has(""))throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.NO_RECOGNIZED_KEY_SYSTEMS);c=$jscomp.makeIterator(this.config_.preferredKeySystems);
|
|
558
561
|
e=c.next();for(d={};!e.done;d={preferredKeySystem$jscomp$1:void 0},e=c.next()){d.preferredKeySystem$jscomp$1=e.value;e=$jscomp.makeIterator(a);for(var f=e.next();!f.done;f=e.next())if(f=f.value.decodingInfos.find(function(l){return function(m){return m.supported&&null!=m.keySystemAccess&&m.keySystemAccess.keySystem==l.preferredKeySystem$jscomp$1}}(d)))return f.keySystemAccess}c=$jscomp.makeIterator([!0,!1]);for(d=c.next();!d.done;d=c.next())for(d=d.value,e=$jscomp.makeIterator(a),f=e.next();!f.done;f=
|
|
559
562
|
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};
|
|
560
|
-
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,v,w,x;return $jscomp.asyncExecutePromiseGeneratorProgram(function(
|
|
561
|
-
0==f.videoCapabilities.length&&delete f.videoCapabilities;g=$jscomp.makeIterator(b.config_.preferredKeySystems);h=g.next();case 2:if(h.done){
|
|
562
|
-
case 4:n=$jscomp.makeIterator([!0,!1]),p=n.next();case 9:if(p.done){
|
|
563
|
-
v,x);case 16:b.destroyer_.ensureNotDestroyed();case 13:t=r.next();
|
|
563
|
+
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,v,w,x;return $jscomp.asyncExecutePromiseGeneratorProgram(function(z){switch(z.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,
|
|
564
|
+
0==f.videoCapabilities.length&&delete f.videoCapabilities;g=$jscomp.makeIterator(b.config_.preferredKeySystems);h=g.next();case 2:if(h.done){z.jumpTo(4);break}k=h.value;if(!a.has(k)){z.jumpTo(3);break}l=a.get(k);z.setCatchFinallyBlocks(6);return z.yield(navigator.requestMediaKeySystemAccess(k,[l]),8);case 8:return c=z.yieldResult,z.return(c);case 6:m=z.enterCatchBlock(),shaka.log.v2("Requesting",k,"failed with config",l,m);case 7:b.destroyer_.ensureNotDestroyed();case 3:h=g.next();z.jumpTo(2);break;
|
|
565
|
+
case 4:n=$jscomp.makeIterator([!0,!1]),p=n.next();case 9:if(p.done){z.jumpTo(11);break}q=p.value;r=$jscomp.makeIterator(a.keys());t=r.next();case 12:if(t.done){p=n.next();z.jumpTo(9);break}u=t.value;v=a.get(u);w=v.drmInfos.some(function(B){return!!B.licenseServerUri});if(w!=q){z.jumpTo(13);break}z.setCatchFinallyBlocks(15);return z.yield(navigator.requestMediaKeySystemAccess(u,[v]),17);case 17:return c=z.yieldResult,z.return(c);case 15:x=z.enterCatchBlock(),shaka.log.v2("Requesting",u,"failed with config",
|
|
566
|
+
v,x);case 16:b.destroyer_.ensureNotDestroyed();case 13:t=r.next();z.jumpTo(12);break;case 11:return z.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_)};
|
|
564
567
|
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,
|
|
565
568
|
"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?
|
|
566
569
|
shaka.util.Error.Severity.RECOVERABLE:shaka.util.Error.Severity.CRITICAL,c.onError_(new shaka.util.Error(h,shaka.util.Error.Category.DRM,shaka.util.Error.Code.OFFLINE_SESSION_REMOVED)),f.loaded=!0),c.setLoadSessionTimeoutTimer_(f),c.checkSessionsLoaded_(),m.return(d);case 2:k=m.enterCatchBlock(),c.destroyer_.ensureNotDestroyed(k),c.activeSessions_.delete(d),l=c.config_.persistentSessionOnlinePlayback?shaka.util.Error.Severity.RECOVERABLE:shaka.util.Error.Severity.CRITICAL,c.onError_(new shaka.util.Error(l,
|
|
@@ -582,17 +585,17 @@ shaka.drm.DrmEngine.prototype.unpackPlayReadyRequest_=function(a){var b=shaka.ut
|
|
|
582
585
|
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,
|
|
583
586
|
!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(),
|
|
584
587
|
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))};
|
|
585
|
-
shaka.drm.DrmEngine.probeSupport=function(){var a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
588
|
+
shaka.drm.DrmEngine.probeSupport=function(){var a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z,B,A,y,C,D,E,F,H,J,K,L,G,M;return $jscomp.asyncExecutePromiseGeneratorProgram(function(I){if(1==I.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={};
|
|
586
589
|
c=$jscomp.makeIterator(a);for(d=c.next();!d.done;d=c.next())e=d.value,b[e]=null;return I.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"'},
|
|
587
|
-
{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,
|
|
588
|
-
|
|
589
|
-
!
|
|
590
|
-
t=function(N,
|
|
591
|
-
"required";
|
|
592
|
-
width:640,height:480,bitrate:1,framerate:1},audio:{contentType:m[0].contentType,channels:2,bitrate:1,samplerate:1},keySystemConfiguration:{keySystem:N,video:{encryptionScheme:
|
|
593
|
-
N,
|
|
594
|
-
(shaka.util.Platform.isWindows()||shaka.util.Platform.isMac())?!1:!0};
|
|
595
|
-
"",M)));return I.yield(Promise.all(
|
|
590
|
+
{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)?
|
|
591
|
+
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)&&
|
|
592
|
+
!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)}})};
|
|
593
|
+
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=
|
|
594
|
+
"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,
|
|
595
|
+
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",
|
|
596
|
+
N,R),T.jumpToEnd()}})};v=$jscomp.makeIterator(a);for(w=v.next();!w.done;w=v.next())x=w.value,q.set(x,null);z=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)&&
|
|
597
|
+
(shaka.util.Platform.isWindows()||shaka.util.Platform.isMac())?!1:!0};B=[];A=$jscomp.makeIterator(p);for(y=A.next();!y.done;y=A.next())for(C=y.value,D=$jscomp.makeIterator(a),E=D.next();!E.done;E=D.next())F=E.value,z(F)&&(B.push(t(F,C,"","")),B.push(u(F,C,"","")));H=$jscomp.makeIterator(a);for(J=H.next();!J.done;J=H.next())for(K=J.value,L=$jscomp.makeIterator(k[K]||[]),G=L.next();!G.done;G=L.next())M=G.value,z(K)&&(B.push(t(K,null,M,"")),B.push(t(K,null,"",M)),B.push(u(K,null,M,"")),B.push(u(K,null,
|
|
598
|
+
"",M)));return I.yield(Promise.all(B),2)}return I.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_=[]};
|
|
596
599
|
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()})};
|
|
597
600
|
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)&&
|
|
598
601
|
"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)})};
|
|
@@ -748,9 +751,9 @@ shaka.util.TsParser.prototype.getVideoInfo=function(){return"hvc"==this.videoCod
|
|
|
748
751
|
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();
|
|
749
752
|
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,
|
|
750
753
|
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};
|
|
751
|
-
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(
|
|
752
|
-
m=d.readUnsignedByte(),n=d.readUnsignedByte(),p=d.readUnsignedByte(),q=d.readUnsignedByte(),r=d.readUnsignedByte(),t=[],u=[],v=0;v<e;v++)t.push(d.readBoolean()),u.push(d.readBoolean());if(0<e)for(v=e;8>v;v++)d.readBits(2);for(v=0;v<e;v++)t[v]&&d.readBits(88),u[v]&&d.readUnsignedByte();d.readUnsignedExpGolomb();e=d.readUnsignedExpGolomb();3==e&&d.readBits(1);t=d.readUnsignedExpGolomb();u=d.readUnsignedExpGolomb();var w=v=0,x=0,
|
|
753
|
-
x+=d.readUnsignedExpGolomb(),
|
|
754
|
+
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(),
|
|
755
|
+
m=d.readUnsignedByte(),n=d.readUnsignedByte(),p=d.readUnsignedByte(),q=d.readUnsignedByte(),r=d.readUnsignedByte(),t=[],u=[],v=0;v<e;v++)t.push(d.readBoolean()),u.push(d.readBoolean());if(0<e)for(v=e;8>v;v++)d.readBits(2);for(v=0;v<e;v++)t[v]&&d.readBits(88),u[v]&&d.readUnsignedByte();d.readUnsignedExpGolomb();e=d.readUnsignedExpGolomb();3==e&&d.readBits(1);t=d.readUnsignedExpGolomb();u=d.readUnsignedExpGolomb();var w=v=0,x=0,z=0;d.readBoolean()&&(v+=d.readUnsignedExpGolomb(),w+=d.readUnsignedExpGolomb(),
|
|
756
|
+
x+=d.readUnsignedExpGolomb(),z+=d.readUnsignedExpGolomb());b.width=String(t-(v+w)*(1===e||2===e?2:1));b.height=String(u-(x+z)*(1===e?2:1));d=["","A","B","C"][f];k=function(B){for(var A=0,y=0;32>y;y++)A|=(B>>y&1)<<31-y;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());
|
|
754
757
|
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};
|
|
755
758
|
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);
|
|
756
759
|
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);
|
|
@@ -761,10 +764,10 @@ shaka.lcevc.Dec.prototype.create_=function(){this.isSupported_()&&!this.dec_&&th
|
|
|
761
764
|
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"===
|
|
762
765
|
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};
|
|
763
766
|
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_||
|
|
764
|
-
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_=
|
|
765
|
-
!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_
|
|
766
|
-
null;this.tsParsers_=
|
|
767
|
-
"disconnected"!=e.video_.remote.state}),this.eventManager_.listen(this.video_.remote,"disconnect",function(){e.usingRemotePlayback_="disconnected"!=e.video_.remote.state}))};
|
|
767
|
+
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_=
|
|
768
|
+
!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_=
|
|
769
|
+
!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",
|
|
770
|
+
function(){e.usingRemotePlayback_="disconnected"!=e.video_.remote.state}),this.eventManager_.listen(this.video_.remote,"disconnect",function(){e.usingRemotePlayback_="disconnected"!=e.video_.remote.state}))};
|
|
768
771
|
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,
|
|
769
772
|
"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_);
|
|
770
773
|
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")};
|
|
@@ -774,39 +777,40 @@ for(k=h.next();!k.done;k=h.next())if(l=k.value,m=l.mimeType||a.mimeType||"",n=l.
|
|
|
774
777
|
return u.return(!0)})};
|
|
775
778
|
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=
|
|
776
779
|
{};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()};
|
|
777
|
-
shaka.media.MediaSourceEngine.prototype.doDestroy_=function(){var a=this,b,c,d,e,f,g,h,k,l,m;return $jscomp.asyncExecutePromiseGeneratorProgram(function(
|
|
778
|
-
2)}
|
|
779
|
-
a.queues_
|
|
780
|
+
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,v,w,x,z,B,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(y){if(1==y.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=
|
|
781
|
+
p.value,q.p.reject(shaka.util.Destroyer.destroyedError());a.textEngine_&&c.push(a.textEngine_.destroy());return y.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_=
|
|
782
|
+
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(v=$jscomp.makeIterator(a.queues_),w=v.next();!w.done;w=v.next())x=w.value,z=$jscomp.makeIterator(x),B=z.next().value,A=z.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_=
|
|
783
|
+
null;y.jumpToEnd()})};shaka.media.MediaSourceEngine.prototype.open=function(){return this.mediaSourceOpen_};
|
|
780
784
|
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_=
|
|
781
|
-
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_
|
|
782
|
-
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_
|
|
785
|
+
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_=
|
|
786
|
+
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()}})};
|
|
783
787
|
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,
|
|
784
788
|
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,
|
|
785
|
-
(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_
|
|
786
|
-
shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.MEDIA_SOURCE_OPERATION_THREW,v,"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_
|
|
789
|
+
(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(v){throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
790
|
+
shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.MEDIA_SOURCE_OPERATION_THREW,v,"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()}})};
|
|
787
791
|
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_};
|
|
788
792
|
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};
|
|
789
|
-
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
|
|
790
|
-
shaka.media.MediaSourceEngine.prototype.bufferEnd=function(a){return
|
|
793
|
+
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};
|
|
794
|
+
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)};
|
|
791
795
|
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)};
|
|
792
796
|
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};
|
|
793
|
-
shaka.media.MediaSourceEngine.prototype.getBuffered_=function(a){if(this.reloadingMediaSource_||this.usingRemotePlayback_)return null;try{return this.sourceBuffers_
|
|
797
|
+
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)};
|
|
794
798
|
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")&&
|
|
795
799
|
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==
|
|
796
|
-
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_
|
|
800
|
+
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}};
|
|
797
801
|
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=
|
|
798
802
|
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"==
|
|
799
803
|
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)};
|
|
800
804
|
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)};
|
|
801
805
|
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()};
|
|
802
|
-
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,v,w,x,
|
|
803
|
-
I.yieldResult,l.textEngine_.setTimestampOffset(n);case 3:return I.yield(l.textEngine_.appendBuffer(b,c?c.startTime:null,c?c.endTime:null,c?c.getUris()[0]:null),5);case 5:return I.return();case 2:if(k||!l.needSplitMuxedContent_){I.jumpTo(6);break}return I.yield(l.appendBuffer(m.AUDIO,b,c,d,e,f,g,h,!0),7);case 7:return I.yield(l.appendBuffer(m.VIDEO,b,c,d,e,f,g,h,!0),8);case 8:return I.return();case 6:if(!l.sourceBuffers_
|
|
804
|
-
I.return();p=l.sourceBuffers_
|
|
805
|
-
null==l.firstAudioTimestamp_&&a==m.AUDIO&&(l.firstAudioTimestamp_=t,l.firstAudioReferenceStartTime_=c.startTime,null!=l.firstVideoTimestamp_&&(w=0,l.firstVideoReferenceStartTime_==l.firstAudioReferenceStartTime_&&(w=l.firstVideoTimestamp_-l.firstAudioTimestamp_),l.audioCompensation_.resolve(w))),x=t,
|
|
806
|
-
(l.enqueueOperation_(a,function(){return l.abort_(a)},null),l.enqueueOperation_(a,function(){return l.setTimestampOffset_(a,p)},null))),(
|
|
807
|
-
D.length&&l.textEngine_.storeAndAppendClosedCaptions(D,c.startTime,c.endTime,p)):l.captionParser_.init(b,g));if(!l.transmuxers_
|
|
808
|
-
a!=m.AUDIO||!l.sourceBuffers_
|
|
809
|
-
|
|
806
|
+
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,v,w,x,z,B,A,y,C,D,E,F,H,J,K,L,G,M;return $jscomp.asyncExecutePromiseGeneratorProgram(function(I){switch(I.nextAddress){case 1:m=shaka.util.ManifestParserUtils.ContentType;if(a!=m.TEXT){I.jumpTo(2);break}if(l.manifestType_!=shaka.media.ManifestParser.HLS){I.jumpTo(3);break}return I.yield(l.textSequenceModeOffset_,4);case 4:n=
|
|
807
|
+
I.yieldResult,l.textEngine_.setTimestampOffset(n);case 3:return I.yield(l.textEngine_.appendBuffer(b,c?c.startTime:null,c?c.endTime:null,c?c.getUris()[0]:null),5);case 5:return I.return();case 2:if(k||!l.needSplitMuxedContent_){I.jumpTo(6);break}return I.yield(l.appendBuffer(m.AUDIO,b,c,d,e,f,g,h,!0),7);case 7:return I.yield(l.appendBuffer(m.VIDEO,b,c,d,e,f,g,h,!0),8);case 8:return I.return();case 6:if(!l.sourceBuffers_.has(a))return shaka.log.warning("Attempted to restore a non-existent source buffer"),
|
|
808
|
+
I.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_&&(v=0,l.firstVideoReferenceStartTime_==l.firstAudioReferenceStartTime_&&(v=l.firstVideoTimestamp_-l.firstAudioTimestamp_),
|
|
809
|
+
l.audioCompensation_.resolve(v))),null==l.firstAudioTimestamp_&&a==m.AUDIO&&(l.firstAudioTimestamp_=t,l.firstAudioReferenceStartTime_=c.startTime,null!=l.firstVideoTimestamp_&&(w=0,l.firstVideoReferenceStartTime_==l.firstAudioReferenceStartTime_&&(w=l.firstVideoTimestamp_-l.firstAudioTimestamp_),l.audioCompensation_.resolve(w))),x=t,z=shaka.util.MimeUtils.RAW_FORMATS,!l.sequenceMode_&&z.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=
|
|
810
|
+
B,l.attemptTimestampOffsetCalculation_&&(l.enqueueOperation_(a,function(){return l.abort_(a)},null),l.enqueueOperation_(a,function(){return l.setTimestampOffset_(a,p)},null))),(y=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)),
|
|
811
|
+
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)){I.jumpTo(9);break}return I.yield(l.transmuxers_.get(a).transmux(b,d,c,l.mediaSource_.duration,a),10);case 10:b=I.yieldResult;case 9:b=l.workAroundBrokenPlatforms_(b,c?c.startTime:null,a,c?c.getUris()[0]:null);if(!c||!l.sequenceMode_||a==m.TEXT){I.jumpTo(11);break}if(!f&&!g){I.jumpTo(11);break}E=c.startTime;if(l.manifestType_!=shaka.media.ManifestParser.HLS||
|
|
812
|
+
l.needSplitMuxedContent_||a!=m.AUDIO||!l.sourceBuffers_.has(m.VIDEO)){I.jumpTo(13);break}return I.yield(l.audioCompensation_,14);case 14:F=I.yieldResult,.1<Math.abs(F)&&(E-=F);case 13:l.enqueueOperation_(a,function(){return l.abort_(a)},null),l.enqueueOperation_(a,function(){return l.setTimestampOffset_(a,E)},null);case 11:return H=null,I.yield(l.enqueueOperation_(a,function(){goog.DEBUG&&c&&!c.isPreload()&&!h&&(H=l.getBuffered_(a));l.append_(a,b,p)},c?c.getUris()[0]:null),15);case 15:goog.DEBUG&&
|
|
813
|
+
c&&!c.isPreload()&&!h&&(J=l.getBuffered_(a),K=shaka.media.TimeRangesUtils.computeAddedRange(H,J))&&(L=c.endTime-c.startTime,G=K.end-K.start,M=Math.abs(K.end-c.endTime),.1<L&&(M>L/2||.03<Math.abs(L-G))&&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",K)),I.jumpToEnd()}})};
|
|
810
814
|
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)};
|
|
811
815
|
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)})};
|
|
812
816
|
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)},
|
|
@@ -818,35 +822,36 @@ null));return m.length?p.yield(Promise.all(m),0):p.jumpTo(0)})};
|
|
|
818
822
|
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)},
|
|
819
823
|
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)})};
|
|
820
824
|
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)})};
|
|
821
|
-
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
|
|
825
|
+
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)})};
|
|
826
|
+
shaka.media.MediaSourceEngine.prototype.getDuration=function(){return this.mediaSource_.duration};
|
|
822
827
|
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)})};
|
|
823
828
|
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)})};
|
|
824
|
-
shaka.media.MediaSourceEngine.prototype.append_=function(a,b,c){a==shaka.util.ManifestParserUtils.ContentType.VIDEO&&this.lcevcDec_&&this.lcevcDec_.appendBuffer(b,c);this.sourceBuffers_
|
|
825
|
-
shaka.media.MediaSourceEngine.prototype.abort_=function(a){var b=this.sourceBuffers_
|
|
826
|
-
shaka.media.MediaSourceEngine.prototype.setTimestampOffset_=function(a,b){0>b&&(b+=.001);this.sourceBuffers_
|
|
827
|
-
shaka.media.MediaSourceEngine.prototype.onError_=function(a){var b=this.queues_
|
|
828
|
-
shaka.media.MediaSourceEngine.prototype.onUpdateEnd_=function(a){if(!this.reloadingMediaSource_){var b=this.queues_
|
|
829
|
-
shaka.media.MediaSourceEngine.prototype.enqueueOperation_=function(a,b,c){this.destroyer_.ensureNotDestroyed();b={start:b,p:new shaka.util.PublicPromise,uri:c};this.queues_
|
|
830
|
-
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,v,w,x;return $jscomp.asyncExecutePromiseGeneratorProgram(function(
|
|
831
|
-
b.queues_
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
shaka.media.MediaSourceEngine.prototype.startOperation_=function(a){var b=this.queues_
|
|
835
|
-
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};
|
|
836
|
-
shaka.media.MediaSourceEngine.prototype.workAroundBrokenPlatforms_=function(a,b,c,d){var e=shaka.util.Platform;b=null==b;var f=this.expectedEncryption_
|
|
837
|
-
"mp4"==shaka.util.MimeUtils.getContainerType(this.sourceBufferTypes_
|
|
838
|
-
shaka.media.MediaSourceEngine.prototype.change_=function(a,b,c){a===shaka.util.ManifestParserUtils.ContentType.TEXT
|
|
839
|
-
this.onUpdateEnd_(a)
|
|
840
|
-
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,v,w,x;return $jscomp.asyncExecutePromiseGeneratorProgram(function(y){switch(y.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);y.setFinallyBlock(2);b.eventManager_.removeAll();
|
|
841
|
-
for(h
|
|
842
|
-
|
|
843
|
-
|
|
829
|
+
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)};
|
|
830
|
+
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)};
|
|
831
|
+
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)};
|
|
832
|
+
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))};
|
|
833
|
+
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))}};
|
|
834
|
+
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};
|
|
835
|
+
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,v,w,x,z,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(y){return function(){return y.ready.resolve()}}(g),p:g.ready,
|
|
836
|
+
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!"),
|
|
837
|
+
r.shift());throw m;case 3:if(goog.DEBUG)for(t=$jscomp.makeIterator(d),u=t.next();!u.done;u=t.next())v=u.value,goog.asserts.assert(0==b.sourceBuffers_.get(v).updating,"SourceBuffers should not be updating after a blocking op!");A.setCatchFinallyBlocks(5,6);return A.yield(a(),6);case 6:A.enterFinallyBlock();w=$jscomp.makeIterator(d);for(x=w.next();!x.done;x=w.next())z=x.value,b.popFromQueue_(z);A.leaveFinallyBlock(0);break;case 5:throw B=A.enterCatchBlock(),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
838
|
+
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)};
|
|
839
|
+
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",
|
|
840
|
+
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};
|
|
841
|
+
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()&&
|
|
842
|
+
"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};
|
|
843
|
+
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),
|
|
844
|
+
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)};
|
|
845
|
+
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,v,w,x,z,B,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(y){switch(y.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);y.setFinallyBlock(2);b.eventManager_.removeAll();g=$jscomp.makeIterator(b.transmuxers_.values());
|
|
846
|
+
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 y.yield(b.mediaSourceOpen_,4);case 4:!isNaN(p)&&p?b.mediaSource_.duration=
|
|
847
|
+
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,v=function(){u++;u===t&&(q.resolve(),b.eventManager_.unlisten(r,"addsourcebuffer",v))},b.eventManager_.listen(r,"addsourcebuffer",v),w=$jscomp.makeIterator(a.keys()),x=w.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,
|
|
848
|
+
[]),b.video_.currentTime=d,y.yield(q,2);z=x.value;B=a.get(z);return y.yield(b.initSourceBuffer_(z,B,B.codecs),6);case 6:x=w.next();y.jumpTo(5);break;case 2:y.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())}),y.leaveFinallyBlock(0)}})};shaka.media.MediaSourceEngine.prototype.reset=function(a){var b=this;return this.enqueueBlockingOperation_(function(){return b.reset_(a)})};
|
|
844
849
|
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=
|
|
845
850
|
!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}};
|
|
846
|
-
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,v,w,x;return $jscomp.asyncExecutePromiseGeneratorProgram(function(
|
|
847
|
-
t=!0;n&&(u=e.getRealInfo_(f.AUDIO,b,c),v=g.getNormalizedCodec(g.getCodecs(e.sourceBufferTypes_
|
|
848
|
-
m.destroy()),
|
|
849
|
-
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_
|
|
851
|
+
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,v,w,x;return $jscomp.asyncExecutePromiseGeneratorProgram(function(z){if(1==z.nextAddress){f=shaka.util.ManifestParserUtils.ContentType;if(a==f.TEXT)return z.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;
|
|
852
|
+
r=l.mimeType;t=!0;n&&(u=e.getRealInfo_(f.AUDIO,b,c),v=g.getNormalizedCodec(g.getCodecs(e.sourceBufferTypes_.get(f.AUDIO))),w=g.getBasicType(e.sourceBufferTypes_.get(f.AUDIO)),t=v==u.codec&&w==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(),
|
|
853
|
+
e.transmuxers_.delete(a),e.transmuxers_.set(a,m)):m.destroy()),z.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 z.yield(e.changeType(a,r,m),3);m&&m.destroy();return z.yield(e.reset(d),3)}return z.return(!0)})};
|
|
854
|
+
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,
|
|
850
855
|
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};
|
|
851
856
|
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};
|
|
852
857
|
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};
|
|
@@ -957,7 +962,7 @@ shaka.media.QualityObserver.prototype.purgeQualityChangePositions_=function(a){v
|
|
|
957
962
|
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&&
|
|
958
963
|
(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)};
|
|
959
964
|
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))};
|
|
960
|
-
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
|
|
965
|
+
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)};
|
|
961
966
|
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"),
|
|
962
967
|
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_)),
|
|
963
968
|
this.segmentPrefetchMap_.set(b,c))}this.clearInitSegments_();return Promise.all(a)};
|
|
@@ -977,13 +982,13 @@ e.code==shaka.util.Error.Code.OPERATION_ABORTED?Promise.resolve():Promise.reject
|
|
|
977
982
|
shaka.media.SegmentUtils.getBasicInfoFromTs=function(a,b,c,d){var e=shaka.util.BufferUtils.toUint8(a),f=(new shaka.util.TsParser).parse(e),g=f.getCodecs();e=f.getVideoInfo();var h=[],k=!1,l=!1;if(!b)switch(g.audio){case "aac":case "aac-loas":f.getAudioData().length&&(h.push("mp4a.40.2"),k=!0);break;case "mp3":f.getAudioData().length&&(h.push("mp4a.40.34"),k=!0);break;case "ac3":f.getAudioData().length&&(h.push("ac-3"),k=!0);break;case "ec3":f.getAudioData().length&&(h.push("ec-3"),k=!0);break;case "opus":f.getAudioData().length&&
|
|
978
983
|
(h.push("opus"),k=!0)}if(!c)switch(g.video){case "avc":e.codec?h.push(e.codec):h.push("avc1.42E01E");l=!0;break;case "hvc":e.codec?h.push(e.codec):h.push("hvc1.1.6.L93.90");l=!0;break;case "av1":h.push("av01.0.01M.08"),l=!0}if(!h.length)return null;b=k&&!l;c=new Map;if(l&&!d){d=new shaka.media.ClosedCaptionParser("video/mp2t");d.parseFrom(a);a=$jscomp.makeIterator(d.getStreams());for(l=a.next();!l.done;l=a.next())l=l.value,c.set(l,l);d.reset()}return{type:b?"audio":"video",mimeType:"video/mp2t",codecs:h.join(", "),
|
|
979
984
|
language:null,height:e.height,width:e.width,channelCount:null,sampleRate:null,closedCaptions:c,videoRange:null,colorGamut:null,frameRate:e.frameRate}};
|
|
980
|
-
shaka.media.SegmentUtils.getBasicInfoFromMp4=function(a,b,c){var d=shaka.util.Mp4Parser,e=shaka.media.SegmentUtils,f=[],g=[],h=!1,k=!1,l=function(
|
|
981
|
-
h=!0}},m=null,n=null,p=null,q=null,r=null,t=null,u=null,v,w=function(
|
|
982
|
-
m=shaka.util.Mp4BoxParsers.parseMDHD(
|
|
983
|
-
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(
|
|
984
|
-
"dvh1";break;case "hev1":
|
|
985
|
-
"",
|
|
986
|
-
shaka.util.Mp4BoxParsers.parseCOLR(
|
|
985
|
+
shaka.media.SegmentUtils.getBasicInfoFromMp4=function(a,b,c){var d=shaka.util.Mp4Parser,e=shaka.media.SegmentUtils,f=[],g=[],h=!1,k=!1,l=function(y){y=y.toLowerCase();switch(y){case "avc1":case "avc3":g.push(y+".42E01E");k=!0;break;case "hev1":case "hvc1":g.push(y+".1.6.L93.90");k=!0;break;case "dvh1":case "dvhe":g.push(y+".05.04");k=!0;break;case "vp09":g.push(y+".00.10.08");k=!0;break;case "av01":g.push(y+".0.01M.08");k=!0;break;case "mp4a":f.push("mp4a.40.2");h=!0;break;case "ac-3":case "ec-3":case "ac-4":case "opus":case "flac":f.push(y),
|
|
986
|
+
h=!0}},m=null,n=null,p=null,q=null,r=null,t=null,u=null,v,w=function(y){var C=shaka.util.Mp4BoxParsers.audioSampleEntry(y.reader);q=C.channelCount;r=C.sampleRate;l(y.name)},x=function(y){v=y.name;var C=shaka.util.Mp4BoxParsers.visualSampleEntry(y.reader);p=String(C.width);n=String(C.height);y.reader.hasMoreData()&&d.children(y)};(new d).box("moov",d.children).box("trak",d.children).box("mdia",d.children).fullBox("mdhd",function(y){goog.asserts.assert(null!=y.version,"MDHD is a full box and should have a valid version.");
|
|
987
|
+
m=shaka.util.Mp4BoxParsers.parseMDHD(y.reader,y.version).language}).box("minf",d.children).box("stbl",d.children).fullBox("stsd",d.sampleDescription).box("mp4a",function(y){var C=shaka.util.Mp4BoxParsers.audioSampleEntry(y.reader);q=C.channelCount;r=C.sampleRate;y.reader.hasMoreData()?d.children(y):l(y.name)}).box("esds",function(y){y=shaka.util.Mp4BoxParsers.parseESDS(y.reader);f.push(y.codec);h=!0}).box("ac-3",w).box("ec-3",w).box("ac-4",w).box("Opus",w).box("fLaC",w).box("avc1",x).box("avc3",x).box("hev1",
|
|
988
|
+
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(y){var C=v||"";switch(v){case "dvav":C="avc3";break;case "dva1":C="avc1"}y=shaka.util.Mp4BoxParsers.parseAVCC(C,y.reader,y.name);g.push(y.codec);k=!0}).box("hvcC",function(y){var C=v||"";switch(v){case "dvh1":C="hvc1";break;case "dvhe":C="hev1"}y=shaka.util.Mp4BoxParsers.parseHVCC(C,y.reader,y.name);g.push(y.codec);k=!0}).box("dvcC",function(y){var C=v||"";switch(v){case "hvc1":C=
|
|
989
|
+
"dvh1";break;case "hev1":C="dvhe";break;case "avc1":C="dva1";break;case "avc3":C="dvav";break;case "av01":C="dav1"}y=shaka.util.Mp4BoxParsers.parseDVCC(C,y.reader,y.name);g.push(y.codec);k=!0}).box("dvvC",function(y){var C=v||"";switch(v){case "hvc1":C="dvh1";break;case "hev1":C="dvhe";break;case "avc1":C="dva1";break;case "avc3":C="dvav";break;case "av01":C="dav1"}y=shaka.util.Mp4BoxParsers.parseDVVC(C,y.reader,y.name);g.push(y.codec);k=!0}).fullBox("vpcC",function(y){y=shaka.util.Mp4BoxParsers.parseVPCC(v||
|
|
990
|
+
"",y.reader,y.name);g.push(y.codec);k=!0}).box("av1C",function(y){var C=v||"";switch(v){case "dav1":C="av01"}y=shaka.util.Mp4BoxParsers.parseAV1C(C,y.reader,y.name);g.push(y.codec);k=!0}).box("enca",d.audioSampleEntry).box("encv",d.visualSampleEntry).box("sinf",d.children).box("frma",function(y){y=shaka.util.Mp4BoxParsers.parseFRMA(y.reader).codec;l(y)}).box("colr",function(y){g=g.map(function(E){return E.startsWith("av01.")?shaka.util.Mp4BoxParsers.updateAV1CodecWithCOLRBox(E,y.reader):E});var C=
|
|
991
|
+
shaka.util.Mp4BoxParsers.parseCOLR(y.reader),D=C.colorGamut;t=C.videoRange;u=D}).parse(a||b,!0);if(!f.length&&!g.length)return null;w=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 z=$jscomp.makeIterator(c.getStreams()),B=z.next();!B.done;B=z.next()){var A=B.value;x.set(A,A)}}catch(y){shaka.log.debug("Error detecting CC streams",y)}c.reset()}a=f.concat(g);return{type:w?"audio":"video",mimeType:w?"audio/mp4":"video/mp4",codecs:e.codecsFiltering(a).join(", "),
|
|
987
992
|
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};
|
|
988
993
|
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};
|
|
989
994
|
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};
|
|
@@ -1035,41 +1040,41 @@ if(a.clearingBuffer)return l.return();a.updateTimer=null;if(!a.waitingToClearBuf
|
|
|
1035
1040
|
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),
|
|
1036
1041
|
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()}})};
|
|
1037
1042
|
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;
|
|
1038
|
-
if(!this.playerInterface_.mediaSourceEngine.isStreamingAllowed()&&a.type!=b.TEXT)return
|
|
1039
|
-
d);shaka.log.v2(
|
|
1040
|
-
a.endOfStream=!1;if(
|
|
1041
|
-
|
|
1043
|
+
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,
|
|
1044
|
+
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&&
|
|
1045
|
+
(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()||
|
|
1046
|
+
(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};
|
|
1042
1047
|
shaka.media.StreamingEngine.prototype.getTimeNeeded_=function(a,b){return a.lastSegmentReference?a.lastSegmentReference.endTime:b};
|
|
1043
1048
|
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>
|
|
1044
1049
|
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&&
|
|
1045
1050
|
(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};
|
|
1046
|
-
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,v,w,x,
|
|
1047
|
-
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
|
|
1048
|
-
shaka.media.ManifestParser.HLS||c.hasByterangeOptimization()))return t=new Uint8Array(0),v=u=!1,x=function(
|
|
1049
|
-
t=t.subarray(
|
|
1050
|
-
e.destroyer_.ensureNotDestroyed();return a.waitingToClearBuffer?(shaka.log.info(h,"waitingToClearBuffer, skip append"),a.performingUpdate=!1,e.scheduleUpdate_(a,0),
|
|
1051
|
-
k,c,
|
|
1052
|
-
a.stream);e.scheduleUpdate_(a,0);
|
|
1053
|
-
"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),
|
|
1054
|
-
|
|
1051
|
+
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,v,w,x,z,B,A,y,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);
|
|
1052
|
+
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!=
|
|
1053
|
+
shaka.media.ManifestParser.HLS||c.hasByterangeOptimization()))return t=new Uint8Array(0),v=u=!1,x=function(F){var H,J,K,L;return $jscomp.asyncExecutePromiseGeneratorProgram(function(G){switch(G.nextAddress){case 1:if(u)return G.return();v=!0;e.destroyer_.ensureNotDestroyed();if(e.fatalError_)return G.return();G.setCatchFinallyBlocks(2);t=e.concatArray_(t,F);H=!1;J=0;(new shaka.util.Mp4Parser).box("mdat",function(M){J=M.size+M.start;H=!0}).parse(t,!1,!0);if(!H){G.jumpTo(4);break}K=t.subarray(0,J);
|
|
1054
|
+
t=t.subarray(J);return G.yield(e.append_(a,b,k,c,K,!0,d),5);case 5:a.segmentPrefetch&&a.segmentIterator&&a.segmentPrefetch.prefetchSegmentsByTime(c.startTime,!0);case 4:G.leaveTryBlock(0);break;case 2:w=L=G.enterCatchBlock(),G.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();
|
|
1055
|
+
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:z=E.yieldResult;if(w)throw w;if(v){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,
|
|
1056
|
+
k,c,z,!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();y=A[a.type];shaka.log.v1(h,"finished fetch and append",JSON.stringify(y));if(!a.waitingToClearBuffer)if(C=null,a.type===f.VIDEO?
|
|
1057
|
+
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=
|
|
1058
|
+
!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,
|
|
1059
|
+
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)}}})};
|
|
1055
1060
|
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..."),
|
|
1056
1061
|
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};
|
|
1057
1062
|
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",
|
|
1058
1063
|
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();
|
|
1059
1064
|
return n.yield(c.evict_(a,m),2)}c.scheduleUpdate_(a,4);n.jumpToEnd()})};
|
|
1060
|
-
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,v,w,x,
|
|
1061
|
-
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){
|
|
1062
|
-
n);u=a.lastCodecs&&a.lastMimeType&&d.playerInterface_.mediaSourceEngine.isResetMediaSourceNecessary(a.type,r,p);if(!u){
|
|
1063
|
-
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"),w=d.fetch_(a,b.initSegmentReference),x=function(){var
|
|
1064
|
-
D=null,E=new Map,F={projection:null,hfov:null},
|
|
1065
|
-
J.children).box("stbl",J.children).fullBox("stsd",J.sampleDescription).box("encv",J.visualSampleEntry).box("avc1",J.visualSampleEntry).box("avc3",J.visualSampleEntry).box("hev1",J.visualSampleEntry).box("hvc1",J.visualSampleEntry).box("dvav",J.visualSampleEntry).box("dva1",J.visualSampleEntry).box("dvh1",J.visualSampleEntry).box("dvhe",J.visualSampleEntry).box("dvc1",J.visualSampleEntry).box("dvi1",J.visualSampleEntry).box("vexu",J.children).box("proj",J.children).fullBox("prji",function(I){I=
|
|
1066
|
-
F.projection=I.projection}).box("hfov",function(I){I=
|
|
1067
|
-
c),6);case 6:M.leaveTryBlock(0);break;case 2:throw
|
|
1065
|
+
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,v,w,x,z,B,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(y){switch(y.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_)+
|
|
1066
|
+
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){y.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 "+
|
|
1067
|
+
n);u=a.lastCodecs&&a.lastMimeType&&d.playerInterface_.mediaSourceEngine.isResetMediaSourceNecessary(a.type,r,p);if(!u){y.jumpTo(3);break}v=null;a.type===e.VIDEO?v=d.mediaStates_.get(e.AUDIO):a.type===e.AUDIO&&(v=d.mediaStates_.get(e.VIDEO));if(!v){y.jumpTo(3);break}return y.yield(d.abortOperations_(v).catch(function(){}),5);case 5:v.lastInitSegmentReference=null,v.lastAppendWindowStart=null,v.lastAppendWindowEnd=null,d.forceClearBuffer_(v);case 3:return y.yield(d.setProperties_(a,t,m,n,b,q,r),2);
|
|
1068
|
+
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"),w=d.fetch_(a,b.initSegmentReference),x=function(){var C,D,E,F,H,J,K,L,G;return $jscomp.asyncExecutePromiseGeneratorProgram(function(M){switch(M.nextAddress){case 1:return M.setCatchFinallyBlocks(2),M.yield(w,4);case 4:return C=M.yieldResult,d.destroyer_.ensureNotDestroyed(),
|
|
1069
|
+
D=null,E=new Map,F={projection:null,hfov:null},H=new shaka.util.Mp4Parser,J=shaka.util.Mp4Parser,K=shaka.util.Mp4BoxParsers,H.box("moov",J.children).box("trak",J.children).box("mdia",J.children).fullBox("mdhd",function(I){goog.asserts.assert(null!=I.version,"MDHD is a full box and should have a valid version.");D=K.parseMDHD(I.reader,I.version).timescale}).box("hdlr",function(I){switch(K.parseHDLR(I.reader).handlerType){case "soun":E.set(e.AUDIO,D);break;case "vide":E.set(e.VIDEO,D)}D=null}).box("minf",
|
|
1070
|
+
J.children).box("stbl",J.children).fullBox("stsd",J.sampleDescription).box("encv",J.visualSampleEntry).box("avc1",J.visualSampleEntry).box("avc3",J.visualSampleEntry).box("hev1",J.visualSampleEntry).box("hvc1",J.visualSampleEntry).box("dvav",J.visualSampleEntry).box("dva1",J.visualSampleEntry).box("dvh1",J.visualSampleEntry).box("dvhe",J.visualSampleEntry).box("dvc1",J.visualSampleEntry).box("dvi1",J.visualSampleEntry).box("vexu",J.children).box("proj",J.children).fullBox("prji",function(I){I=K.parsePRJI(I.reader);
|
|
1071
|
+
F.projection=I.projection}).box("hfov",function(I){I=K.parseHFOV(I.reader);F.hfov=I.hfov}).parse(C),d.updateSpatialVideoInfo_(F),E.has(a.type)?b.initSegmentReference.timescale=E.get(a.type):null!=D&&(b.initSegmentReference.timescale=D),shaka.log.v1(h,"appending init segment"),L=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,L,a.seeked,
|
|
1072
|
+
c),6);case 6:M.leaveTryBlock(0);break;case 2:throw G=M.enterCatchBlock(),a.lastInitSegmentReference=null,G;}})},z=b.startTime,k&&(B=d.playerInterface_.mediaSourceEngine.bufferEnd(a.type),null!=B&&(z=B)),d.playerInterface_.onInitSegmentAppended(z,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)),y.yield(Promise.all(l),0)}})};
|
|
1068
1073
|
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=
|
|
1069
1074
|
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;})};
|
|
1070
1075
|
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&&
|
|
1071
|
-
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 v,w,x,
|
|
1072
|
-
typeof p,"Should be an number!");x=-w/p;
|
|
1076
|
+
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 v,w,x,z,B,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(y){goog.asserts.assert(null!=u.version,"TFDT is a full box and should have a valid version.");v=shaka.util.Mp4BoxParsers.parseTFDTInaccurate(u.reader,u.version);w=v.baseMediaDecodeTime;if(!w)return y.return();goog.asserts.assert("number"==
|
|
1077
|
+
typeof p,"Should be an number!");x=-w/p;z=Number(a.lastTimestampOffset)||0;if(!(z<x))return y.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 y.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),
|
|
1073
1078
|
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()}})};
|
|
1074
1079
|
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=
|
|
1075
1080
|
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,
|
|
@@ -1217,14 +1222,15 @@ goog.exportProperty(shaka.text.SimpleTextDisplayer.prototype,"setTextLanguage",s
|
|
|
1217
1222
|
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){};
|
|
1218
1223
|
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);
|
|
1219
1224
|
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);
|
|
1220
|
-
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");
|
|
1221
|
-
"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_=
|
|
1222
|
-
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_));
|
|
1223
|
-
shaka.text.UITextDisplayer.prototype.configure=function(a){this.
|
|
1225
|
+
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");
|
|
1226
|
+
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,
|
|
1227
|
+
"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_));
|
|
1228
|
+
this.regionElements_=new Map};shaka.text.UITextDisplayer.prototype.configure=function(a){this.config_=a;this.configureCaptionsTimer_()};
|
|
1224
1229
|
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_()};
|
|
1225
|
-
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()};
|
|
1230
|
+
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()};
|
|
1226
1231
|
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)};
|
|
1227
|
-
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.
|
|
1232
|
+
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)))};
|
|
1233
|
+
shaka.text.UITextDisplayer.prototype.isElementUnderTextContainer_=function(a){for(;null!=a;){if(a==this.textContainer_)return!0;a=a.parentElement}return!1};
|
|
1228
1234
|
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,
|
|
1229
1235
|
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."),
|
|
1230
1236
|
c.regionElement?(c.regionElement.contains(b)&&c.regionElement.removeChild(b),b.appendChild(c.regionElement),c.regionElement.appendChild(c.cueElement)):b.appendChild(c.cueElement)}};
|
|
@@ -1321,8 +1327,8 @@ c.preloadNextUrl_.destroy(),c.preloadNextUrl_=null);c.assetUri_=null;c.mimeType_
|
|
|
1321
1327
|
(shaka.util.StreamUtils.clearDecodingConfigCache(),shaka.drm.DrmUtils.clearMediaKeySystemAccessMap());c.manifest_=null;c.stats_=new shaka.util.Stats;c.lastTextFactory_=null;c.targetLatencyReached_=null;c.currentTargetLatency_=null;c.rebufferingCount_=-1;c.externalSrcEqualsThumbnailsStreams_=[];c.completionPercent_=-1;c.networkingEngine_&&c.networkingEngine_.clearCommonAccessTokenMap();c.updateBufferState_();case 3:q.enterFinallyBlock();c.mutex_.release();q.leaveFinallyBlock(4);break;case 4:if(a&&
|
|
1322
1328
|
shaka.util.Platform.supportsMediaSource()&&!c.mediaSourceEngine_&&c.video_)return q.yield(c.initializeMediaSourceEngineInner_(),0);q.jumpTo(0)}})};shaka.Player.prototype.updateStartTime=function(a){this.startTime_=a};
|
|
1323
1329
|
shaka.Player.prototype.load=function(a,b,c){b=void 0===b?null:b;var d=this,e,f,g,h,k,l,m,n,p,q,r,t,u;return $jscomp.asyncExecutePromiseGeneratorProgram(function(v){switch(v.nextAddress){case 1:if(d.loadMode_==shaka.Player.LoadMode.DESTROYED)throw d.createAbortLoadError_();e=null;f="";a instanceof shaka.media.PreloadManager?(e=a,f=e.getAssetUri()||""):f=a||"";return v.yield(d.mutex_.acquire("load"),2);case 2:d.mutex_.release();if(!d.video_)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
1324
|
-
shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.NO_VIDEO_ELEMENT);if(!d.assetUri_){v.jumpTo(3);break}d.assetUri_=f;return v.yield(d.unload(!1),3);case 3:g=++d.operationId_;h=function(){return $jscomp.asyncExecutePromiseGeneratorProgram(function(w){if(1==w.nextAddress)return d.operationId_==g?w.jumpTo(0):e?w.yield(e.destroy(),3):w.jumpTo(3);throw d.createAbortLoadError_();})};k=function(w,x){return $jscomp.asyncExecutePromiseGeneratorProgram(function(
|
|
1325
|
-
|
|
1330
|
+
shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.NO_VIDEO_ELEMENT);if(!d.assetUri_){v.jumpTo(3);break}d.assetUri_=f;return v.yield(d.unload(!1),3);case 3:g=++d.operationId_;h=function(){return $jscomp.asyncExecutePromiseGeneratorProgram(function(w){if(1==w.nextAddress)return d.operationId_==g?w.jumpTo(0):e?w.yield(e.destroy(),3):w.jumpTo(3);throw d.createAbortLoadError_();})};k=function(w,x){return $jscomp.asyncExecutePromiseGeneratorProgram(function(z){switch(z.nextAddress){case 1:return z.setFinallyBlock(2),
|
|
1331
|
+
z.yield(d.mutex_.acquire(x),4);case 4:return z.yield(h(),5);case 5:return z.yield(w(),6);case 6:return z.yield(h(),7);case 7:e&&d.config_&&e.reconfigure(d.config_);case 2:z.enterFinallyBlock(),d.mutex_.release(),z.leaveFinallyBlock(0)}})};v.setCatchFinallyBlocks(5,6);null==b&&e&&(b=e.getStartTime());d.startTime_=b;d.fullyLoaded_=!1;d.dispatchEvent(shaka.Player.makeEvent_(shaka.util.FakeEvent.EventName.Loading));if(e){c=e.getMimeType();v.jumpTo(8);break}if(c){v.jumpTo(8);break}return v.yield(k(function(){return $jscomp.asyncExecutePromiseGeneratorProgram(function(w){if(1==
|
|
1326
1332
|
w.nextAddress)return w.yield(d.guessMimeType_(f),2);c=w.yieldResult;w.jumpToEnd()})},"guessMimeType_"),8);case 8:l=!!e;if(e){e.setEventHandoffTarget(d);d.stats_=e.getStats();v.jumpTo(11);break}return v.yield(d.preloadInner_(f,b,c,!0),12);case 12:(e=v.yieldResult)?(e.markIsLoad(),e.setEventHandoffTarget(d),d.stats_=e.getStats(),e.start(),e.waitForFinish().catch(function(){})):d.stats_=new shaka.util.Stats;case 11:return m=!e,n=Date.now()/1E3,d.stats_=e?e.getStats():new shaka.util.Stats,d.assetUri_=
|
|
1327
1333
|
f,d.mimeType_=c||null,m?v.yield(k(function(){return $jscomp.asyncExecutePromiseGeneratorProgram(function(w){goog.asserts.assert(c,"We should know the mimeType by now!");return w.yield(d.initializeSrcEqualsDrmInner_(c),0)})},"initializeSrcEqualsDrmInner_"),21):v.yield(k(function(){return $jscomp.asyncExecutePromiseGeneratorProgram(function(w){if(1==w.nextAddress)return w.yield(e.waitForManifest(),2);d.parserFactory_=e.getParserFactory();d.parser_=e.receiveParser();d.manifest_=e.getManifest();w.jumpToEnd()})},
|
|
1328
1334
|
"waitForFinish"),15);case 15:if(d.mediaSourceEngine_){v.jumpTo(16);break}return v.yield(k(function(){return $jscomp.asyncExecutePromiseGeneratorProgram(function(w){return w.yield(d.initializeMediaSourceEngineInner_(),0)})},"initializeMediaSourceEngineInner_"),16);case 16:return d.manifest_&&d.manifest_.textStreams.length&&(d.textDisplayer_.enableTextDisplayer?d.textDisplayer_.enableTextDisplayer():shaka.Deprecate.deprecateFeature(5,"Text displayer w/ enableTextDisplayer",'Text displayer should have a "enableTextDisplayer" method!')),
|
|
@@ -1340,15 +1346,15 @@ shaka.Player.prototype.preload=function(a,b,c){b=void 0===b?null:b;var d=this,e;
|
|
|
1340
1346
|
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)})};
|
|
1341
1347
|
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&&
|
|
1342
1348
|
(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)})};
|
|
1343
|
-
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,v,w,x,
|
|
1344
|
-
null:h},m=function(){return l()?l().getConfiguration():g.config_},Infinity!=g.maxHwRes_.width||Infinity!=g.maxHwRes_.height||g.config_.ignoreHardwareResolution?
|
|
1345
|
-
D.nextAddress)return D.yield(p.filterManifest(A),2);if(4!=D.nextAddress){
|
|
1346
|
-
isLowLatencyMode:function(){return m().streaming.lowLatencyMode},updateDuration:function(){g.streamingEngine_&&h.hasBeenAttached()&&g.streamingEngine_.updateDuration()},newDrmInfo:function(A){var
|
|
1347
|
-
getBandwidthEstimate:function(){return g.abrManager_.getBandwidthEstimate()},onMetadata:function(A,
|
|
1348
|
-
function(
|
|
1349
|
-
goog.asserts.assert(g.video_,"Must have video"),g.adManager_.onDASHInterstitialMetadata(g,g.video_,
|
|
1350
|
-
function(){g.onKeyStatus_(A)})},onExpirationUpdated:function(A,
|
|
1351
|
-
x=function(){return g.createDrmEngine(v)};
|
|
1349
|
+
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,v,w,x,z;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()?
|
|
1350
|
+
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 y,C;return $jscomp.asyncExecutePromiseGeneratorProgram(function(D){if(1==
|
|
1351
|
+
D.nextAddress)return D.yield(p.filterManifest(A),2);if(4!=D.nextAddress){y=D.yieldResult;if(!y)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)},
|
|
1352
|
+
isLowLatencyMode:function(){return m().streaming.lowLatencyMode},updateDuration:function(){g.streamingEngine_&&h.hasBeenAttached()&&g.streamingEngine_.updateDuration()},newDrmInfo:function(A){var y=h.getDrmEngine(),C=y?y.getDrmInfo():null;C&&y.getMediaKeys()&&p.processDrmInfos(C.keySystem,A)},onManifestUpdated:function(){var A=shaka.util.FakeEvent.EventName.ManifestUpdated,y=(new Map).set("isLive",g.isLive());h.dispatchEvent(shaka.Player.makeEvent_(A,y));h.addQueuedOperation(!1,function(){if(g.adManager_)g.adManager_.onManifestUpdated(g.isLive())})},
|
|
1353
|
+
getBandwidthEstimate:function(){return g.abrManager_.getBandwidthEstimate()},onMetadata:function(A,y,C,D){var E=A;"com.apple.hls.interstitial"==A&&(E="com.apple.quicktime.HLS",A={startTime:y,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 F={};!A.done;F={payload$jscomp$6:void 0},A=D.next())F.payload$jscomp$6=A.value,"ID"!=F.payload$jscomp$6.name&&h.addQueuedOperation(!1,
|
|
1354
|
+
function(H){return function(){g.dispatchMetadataEvent_(y,C,E,H.payload$jscomp$6)}}(F))},disableStream:function(A){return g.disableStream(A,g.config_.streaming.maxDisabledTime)},addFont:function(A,y){return g.addFont(A,y)}};r=new shaka.media.RegionTimeline(function(){return g.seekRange()});r.addEventListener("regionadd",function(A){var y=A.region;g.onRegionEvent_(shaka.util.FakeEvent.EventName.TimelineRegionAdded,y,h);h.addQueuedOperation(!1,function(){g.adManager_&&(g.adManager_.onDashTimedMetadata(y),
|
|
1355
|
+
goog.asserts.assert(g.video_,"Must have video"),g.adManager_.onDASHInterstitialMetadata(g,g.video_,y))})});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;v={netEngine:g.networkingEngine_,onError:function(A){return h.onError(A)},onKeyStatus:function(A){h.addQueuedOperation(!0,
|
|
1356
|
+
function(){g.onKeyStatus_(A)})},onExpirationUpdated:function(A,y){var C=shaka.Player.makeEvent_(shaka.util.FakeEvent.EventName.ExpirationUpdated);h.dispatchEvent(C);if((C=h.getParser())&&C.onExpirationUpdated)C.onExpirationUpdated(A,y)},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())}};w=g.createNetworkingEngine(l);g.networkingEngine_.copyFiltersInto(w);
|
|
1357
|
+
x=function(){return g.createDrmEngine(v)};z={config:k,manifestPlayerInterface:q,regionTimeline:r,qualityObserver:t,createDrmEngine:x,manifestFilterer:p,networkingEngine:w,allowPrefetch:d,allowMakeAbrManager:f};h=new shaka.media.PreloadManager(a,c,b,z);return B.return(h)})};
|
|
1352
1358
|
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)})};
|
|
1353
1359
|
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:
|
|
1354
1360
|
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_))};
|
|
@@ -1359,16 +1365,16 @@ shaka.Player.prototype.addBasicMediaListeners_=function(a,b){var c=this,d=functi
|
|
|
1359
1365
|
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_()}),
|
|
1360
1366
|
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_()}),
|
|
1361
1367
|
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)})};
|
|
1362
|
-
shaka.Player.prototype.loadInner_=function(a,b,c){var d=this,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
1368
|
+
shaka.Player.prototype.loadInner_=function(a,b,c){var d=this,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z,B,A,y,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"),
|
|
1363
1369
|
e=d.video_,d.playRateController_=new shaka.media.PlayRateController({getRate:function(){return e.playbackRate},getDefaultRate:function(){return e.defaultPlaybackRate},setRate:function(F){e.playbackRate=F},movePlayhead:function(F){e.currentTime+=F}}),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,
|
|
1364
|
-
d.config_.playRangeStart,d.config_.playRangeEnd),d.abrManager_.init(function(F,
|
|
1370
|
+
d.config_.playRangeStart,d.config_.playRangeEnd),d.abrManager_.init(function(F,H,J){return d.switch_(F,H,J)}),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,
|
|
1365
1371
|
"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."));
|
|
1366
1372
|
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(F){d.playhead_=d.createPlayhead(F);d.playheadObservers_=d.createPlayheadObserversForMSE_(F);d.startBufferManagement_(e,d.config_.streaming.rebufferingGoal)};
|
|
1367
1373
|
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();v=r.getSeekRangeEnd();t<u?t=u:t>v&&(t=v);return E.yield(d.adjustStartTime_(f,
|
|
1368
|
-
t),9);case 9:w=E.yieldResult,p(w);case 8:d.switchVariant_(f,!0,!1,0);case 7:return d.playhead_.ready(),x=d.getTextTracks().find(function(F){return F.active}),x||((
|
|
1369
|
-
|
|
1370
|
-
d.loadEventManager_.listen(e,"timeupdate",
|
|
1371
|
-
4)}d.preloadNextUrl_=
|
|
1374
|
+
t),9);case 9:w=E.yieldResult,p(w);case 8:d.switchVariant_(f,!0,!1,0);case 7:return d.playhead_.ready(),x=d.getTextTracks().find(function(F){return F.active}),x||((z=d.chooseTextStream_())&&d.addTextStreamToSwitchHistory_(z,!0),f&&d.setInitialTextState_(f,z),z&&d.shouldStreamText_()&&(d.streamingEngine_.switchTextStream(z),d.setTextDisplayerLanguage_())),E.yield(d.streamingEngine_.start(c),10);case 10:d.config_.abr.enabled&&(d.abrManager_.enable(),d.onAbrStatusChanged_());d.onTracksChanged_();d.updateAbrManagerVariants_();
|
|
1375
|
+
B=d.manifest_.variants.some(function(F){return F.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)y=function(){return d.onTimeUpdate_()},d.loadEventManager_.listen(e,"timeupdate",y);A||(C=function(){return d.onVideoProgress_()},
|
|
1376
|
+
d.loadEventManager_.listen(e,"timeupdate",C),d.onVideoProgress_(),d.manifest_.nextUrl&&(0<d.config_.streaming.preloadNextUrlWindow&&(D=function(){var F;return $jscomp.asyncExecutePromiseGeneratorProgram(function(H){if(1==H.nextAddress){F=d.seekRange().end-d.video_.currentTime;if(isNaN(F)||!(F<=d.config_.streaming.preloadNextUrlWindow))return H.jumpTo(0);d.loadEventManager_.unlisten(e,"timeupdate",D);goog.asserts.assert(d.manifest_.nextUrl,"this.manifest_.nextUrl should be valid.");return H.yield(d.preload(d.manifest_.nextUrl),
|
|
1377
|
+
4)}d.preloadNextUrl_=H.yieldResult;H.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()}})};
|
|
1372
1378
|
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_,
|
|
1373
1379
|
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,
|
|
1374
1380
|
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,
|
|
@@ -1378,9 +1384,9 @@ c.playRateController_=new shaka.media.PlayRateController({getRate:function(){ret
|
|
|
1378
1384
|
v.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",
|
|
1379
1385
|
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);
|
|
1380
1386
|
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,
|
|
1381
|
-
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,v,w,x,
|
|
1382
|
-
|
|
1383
|
-
(v?(
|
|
1387
|
+
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,v,w,x,z;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)):
|
|
1388
|
+
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!'));v=!1;w=$jscomp.makeIterator(u);for(x=w.next();!x.done;x=w.next())z=x.value,"disabled"!==z.mode&&
|
|
1389
|
+
(v?(z.mode="disabled",shaka.log.alwaysWarn("Found more than one enabled text track, disabling it",z)):(c.enableNativeTrack_(z),v=!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.'),
|
|
1384
1390
|
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_()},
|
|
1385
1391
|
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)};
|
|
1386
1392
|
shaka.Player.prototype.setupPreferredTextOnSrc_=function(){var a=this.config_.preferredTextLanguage;""!=a&&this.selectTextLanguage(a,this.config_.preferredTextRole,this.config_.preferForcedSubs)};
|
|
@@ -1404,7 +1410,7 @@ this.bufferObserver_.update(b,a)&&this.updateBufferState_()};shaka.Player.protot
|
|
|
1404
1410
|
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()},
|
|
1405
1411
|
getLiveLatency:function(){return a.getLiveLatency()}},this.config_.cmcd)};shaka.Player.prototype.createCmsd_=function(){return new shaka.util.CmsdManager(this.config_.cmsd)};
|
|
1406
1412
|
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_,
|
|
1407
|
-
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,
|
|
1413
|
+
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)}})};
|
|
1408
1414
|
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",
|
|
1409
1415
|
"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",
|
|
1410
1416
|
"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)&&
|
|
@@ -1435,8 +1441,7 @@ shaka.Player.prototype.seekRange=function(){if(this.manifest_&&!this.isRemotePla
|
|
|
1435
1441
|
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};
|
|
1436
1442
|
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():{}};
|
|
1437
1443
|
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};
|
|
1438
|
-
shaka.Player.prototype.trickPlay=function(a,b){
|
|
1439
|
-
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()}))};
|
|
1444
|
+
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))};
|
|
1440
1445
|
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()};
|
|
1441
1446
|
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");
|
|
1442
1447
|
return b}return this.video_&&this.video_.audioTracks?Array.from(this.video_.audioTracks).map(function(g){return shaka.util.StreamUtils.html5AudioTrackToTrack(g)}):[]};
|
|
@@ -1445,8 +1450,8 @@ shaka.Player.prototype.getImageTracks=function(){var a=shaka.util.StreamUtils,b=
|
|
|
1445
1450
|
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=
|
|
1446
1451
|
[],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}))})};
|
|
1447
1452
|
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}};
|
|
1448
|
-
shaka.Player.prototype.getThumbnails=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
1449
|
-
e.segmentIndex.find(b);if(null==f)return
|
|
1453
|
+
shaka.Player.prototype.getThumbnails=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z;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=
|
|
1454
|
+
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;v=u=0;1<p&&(w=Math.floor((b-g.startTime)/r),t=g.startTime+w*r,u=w%h.columns*m,v=Math.floor(w/h.columns)*n);x=!1;if(z=g.getThumbnailSprite())x=!0,n=z.height,u=z.positionX,v=z.positionY,m=z.width;return B.return({segment:g,
|
|
1450
1455
|
imageHeight:l,imageWidth:k,height:n,positionX:u,positionY:v,startTime:t,duration:r,uris:g.getUris(),width:m,sprite:x})})};
|
|
1451
1456
|
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(),
|
|
1452
1457
|
!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)}})()};
|
|
@@ -1473,24 +1478,24 @@ null):new Date(b.getTime()+1E3*a);shaka.log.warning("No way to get playhead time
|
|
|
1473
1478
|
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!"),
|
|
1474
1479
|
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};
|
|
1475
1480
|
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};
|
|
1476
|
-
shaka.Player.prototype.getLiveLatency=function(){if(!this.video_)return null;var a=this.getPresentationStartTimeAsDate().getTime()+1E3*this.video_.currentTime;return Date.now()-a};
|
|
1481
|
+
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)};
|
|
1477
1482
|
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()));
|
|
1478
1483
|
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():
|
|
1479
1484
|
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)));
|
|
1480
1485
|
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()};
|
|
1481
|
-
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,v,w,x,
|
|
1486
|
+
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,v,w,x,z,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);
|
|
1482
1487
|
"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=
|
|
1483
|
-
n.find(function(
|
|
1488
|
+
n.find(function(y){return l.normalize(y.language)==m&&y.label==(f||"")&&y.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==
|
|
1484
1489
|
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,v=h.convertToWebVTT_(u,d,k),w=new Blob([v],{type:"text/vtt"}),a=shaka.media.MediaSourceEngine.createObjectURL(w),d="text/vtt";
|
|
1485
1490
|
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,
|
|
1486
|
-
fastSwitching:!1,fullMimeTypes:new Set([shaka.util.MimeUtils.getFullType(d||"",e||"")]),isAudioMuxedInVideo:!1};
|
|
1487
|
-
shaka.Player.prototype.addThumbnailsTrack=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
1488
|
-
if(b){
|
|
1489
|
-
shaka.util.Error.Code.CANNOT_ADD_EXTERNAL_THUMBNAILS_TO_LIVE_STREAM);goog.asserts.assert(c.networkingEngine_,"Need networking engine.");return
|
|
1491
|
+
fastSwitching:!1,fullMimeTypes:new Set([shaka.util.MimeUtils.getFullType(d||"",e||"")]),isAudioMuxedInVideo:!1};z=shaka.util.MimeUtils.getFullType(x.mimeType,x.codecs);B=shaka.text.TextEngine.isTypeSupported(z);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))}})};
|
|
1492
|
+
shaka.Player.prototype.addThumbnailsTrack=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z;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);
|
|
1493
|
+
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,
|
|
1494
|
+
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);
|
|
1490
1495
|
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),v=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")&&
|
|
1491
|
-
(w=t.cue$jscomp$39.payload.split("#xywh=")[1].split(","),4===w.length&&v.setThumbnailSprite({height:parseInt(w[3],10),positionX:parseInt(w[0],10),positionY:parseInt(w[1],10),width:parseInt(w[2],10)})),p.push(v);x=b;if(!p.length){
|
|
1496
|
+
(w=t.cue$jscomp$39.payload.split("#xywh=")[1].split(","),4===w.length&&v.setThumbnailSprite({height:parseInt(w[3],10),positionX:parseInt(w[0],10),positionY:parseInt(w[1],10),width:parseInt(w[2],10)})),p.push(v);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 z={id:c.nextExternalStreamId_++,originalId:null,groupId:null,createSegmentIndex:function(){return Promise.resolve()},
|
|
1492
1497
|
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_==
|
|
1493
|
-
shaka.Player.LoadMode.SRC_EQUALS?c.externalSrcEqualsThumbnailsStreams_.push(
|
|
1498
|
+
shaka.Player.LoadMode.SRC_EQUALS?c.externalSrcEqualsThumbnailsStreams_.push(z):c.manifest_.imageStreams.push(z),c.onTracksChanged_(),B.return(shaka.util.StreamUtils.imageStreamToTrack(z))}})};
|
|
1494
1499
|
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);
|
|
1495
1500
|
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,
|
|
1496
1501
|
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);}})};
|
|
@@ -1514,7 +1519,8 @@ shaka.Player.prototype.adjustStartTime_=function(a,b){var c,d,e,f,g;return $jsco
|
|
|
1514
1519
|
"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)})};
|
|
1515
1520
|
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&&
|
|
1516
1521
|
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))};
|
|
1517
|
-
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))};
|
|
1522
|
+
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))};
|
|
1523
|
+
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()})};
|
|
1518
1524
|
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)))}};
|
|
1519
1525
|
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()&&
|
|
1520
1526
|
(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;
|
|
@@ -1555,10 +1561,10 @@ shaka.util.FakeEvent.EventName.MediaQualityChanged,b))};
|
|
|
1555
1561
|
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,
|
|
1556
1562
|
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)};
|
|
1557
1563
|
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[""]});
|
|
1558
|
-
(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
|
|
1559
|
-
g=$jscomp.makeIterator(
|
|
1560
|
-
(
|
|
1561
|
-
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))};
|
|
1564
|
+
(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=
|
|
1565
|
+
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=
|
|
1566
|
+
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"),
|
|
1567
|
+
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))};
|
|
1562
1568
|
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};
|
|
1563
1569
|
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,
|
|
1564
1570
|
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};
|
|
@@ -1581,7 +1587,7 @@ goog.exportProperty(shaka.Player.prototype,"getNonDefaultConfiguration",shaka.Pl
|
|
|
1581
1587
|
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);
|
|
1582
1588
|
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);
|
|
1583
1589
|
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);
|
|
1584
|
-
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.
|
|
1590
|
+
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;
|
|
1585
1591
|
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_++};
|
|
1586
1592
|
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};
|
|
1587
1593
|
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_};
|
|
@@ -1696,24 +1702,24 @@ shaka.ads.InterstitialAdManager.prototype.setupStaticAd_=function(a,b,c,d){var e
|
|
|
1696
1702
|
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=
|
|
1697
1703
|
"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)),
|
|
1698
1704
|
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)};
|
|
1699
|
-
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,v,w,x,
|
|
1700
|
-
D.nextAddress)return"detach"!=
|
|
1705
|
+
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,v,w,x,z,B,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(y){switch(y.nextAddress){case 1:goog.asserts.assert(f.video_,"Must have video");g=Date.now();f.playingAd_=!0;if(!f.usingBaseVideo_||1!=c){y.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==
|
|
1706
|
+
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 y.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=
|
|
1701
1707
|
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!=
|
|
1702
|
-
a.endTime&&(f.baseVideo_.currentTime=a.endTime);else{var
|
|
1708
|
+
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(F){if(1==F.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 F.jumpTo(2);
|
|
1703
1709
|
a.post&&(f.lastTime_=null,f.lastPlayedAd_=null);return f.usingBaseVideo_?F.yield(f.player_.detach(),4):F.yield(f.player_.unload(),4)}2!=F.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_=
|
|
1704
|
-
!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));F.jumpToEnd()})};t=function(
|
|
1705
|
-
0)})};u=function(){return $jscomp.asyncExecutePromiseGeneratorProgram(function(
|
|
1706
|
-
b,c,!f.usingBaseVideo_);f.usingBaseVideo_||(v.setMuted(f.baseVideo_.muted),v.setVolume(f.baseVideo_.volume));f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_STARTED,(new Map).set("ad",v)));if(w=v.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
|
|
1707
|
-
w=
|
|
1708
|
-
"play",function(){f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_RESUMED))});f.adEventManager_.listen(f.video_,"pause",function(){var
|
|
1709
|
-
|
|
1710
|
-
10):
|
|
1711
|
-
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,v,w,x,
|
|
1712
|
-
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(
|
|
1713
|
-
u=parseFloat(w),isNaN(q)&&(u=null);x=null;if(
|
|
1714
|
-
!
|
|
1715
|
-
|
|
1716
|
-
timelineRange:
|
|
1710
|
+
!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));F.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),
|
|
1711
|
+
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)})};v=new shaka.ads.InterstitialAd(f.video_,a,f.lastOnSkip_,
|
|
1712
|
+
b,c,!f.usingBaseVideo_);f.usingBaseVideo_||(v.setMuted(f.baseVideo_.muted),v.setVolume(f.baseVideo_.volume));f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_STARTED,(new Map).set("ad",v)));if(w=v.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=v.canSkipNow();if(w!=C&&0<v.getRemainingTime()&&0<v.getDuration())f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_SKIP_STATE_CHANGED));
|
|
1713
|
+
w=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_,
|
|
1714
|
+
"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))});
|
|
1715
|
+
y.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 y.yield(f.player_.attach(f.video_),6);case 6:return f.preloadManagerInterstitials_.has(a)?y.yield(f.preloadManagerInterstitials_.get(a),
|
|
1716
|
+
10):y.yield(f.player_.load(a.uri,null,a.mimeType||void 0),8);case 10:return z=y.yieldResult,f.preloadManagerInterstitials_.delete(a),z?y.yield(f.player_.load(z),8):y.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();y.leaveTryBlock(0);break;case 4:A=y.enterCatchBlock();if(!f.playingAd_)return y.return();t(A);y.jumpToEnd()}})};
|
|
1717
|
+
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,v,w,x,z,B,A,y,C,D,E,F,H,J,K,L,G,M,I,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;
|
|
1718
|
+
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(v=a.values.find(function(U){return"X-ENABLE-SKIP-FOR"==U.key}))w=v.data,
|
|
1719
|
+
u=parseFloat(w),isNaN(q)&&(u=null);x=null;if(z=a.values.find(function(U){return"X-RESUME-OFFSET"==U.key}))B=z.data,x=parseFloat(B),isNaN(x)&&(x=null);A=null;if(y=a.values.find(function(U){return"X-PLAYOUT-LIMIT"==U.key}))C=y.data,A=parseFloat(C),isNaN(A)&&(A=null);F=E=D=!1;if(H=a.values.find(function(U){return"CUE"==U.key}))J=H.data,D=J.includes("ONCE"),E=J.includes("PRE"),F=J.includes("POST");K=!1;(L=a.values.find(function(U){return"X-TIMELINE-OCCUPIES"==U.key}))?(G=L.data,K=G.includes("RANGE")):
|
|
1720
|
+
!z&&b.basePlayer_.isLive()&&(K=!E&&!F);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:F,timelineRange:K,loop:!1,overlay:null});Y.jumpTo(2);break}if(!e){Y.jumpTo(2);break}I=e.data;if(!I)return Y.return(c);Y.setCatchFinallyBlocks(4);N=shaka.net.NetworkingEngine;P={type:N.AdvancedRequestType.INTERSTITIAL_ASSET_LIST};return Y.yield(b.makeAdRequest_(I,
|
|
1721
|
+
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:F,
|
|
1722
|
+
timelineRange:K,loop:!1,overlay:null});Y.leaveTryBlock(2);break;case 4:Y.enterCatchBlock();case 2:return Y.return(c)}})};
|
|
1717
1723
|
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==
|
|
1718
1724
|
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)))};
|
|
1719
1725
|
shaka.ads.InterstitialAdManager.prototype.updatePlayerConfig_=function(){goog.asserts.assert(this.player_,"Must have player");goog.asserts.assert(this.basePlayer_,"Must have base player");this.player_.configure(this.basePlayer_.getNonDefaultConfiguration());this.player_.configure("ads.disableHLSInterstitial",!0);this.player_.configure("ads.disableDASHInterstitial",!0);var a=this.player_.getNetworkingEngine();goog.asserts.assert(a,"Need networking engine");this.basePlayer_.getNetworkingEngine().copyFiltersInto(a)};
|
|
@@ -1741,9 +1747,9 @@ shaka.ads.MediaTailorAdManager.prototype.getCuePoints=function(){for(var a=[],b=
|
|
|
1741
1747
|
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(v){if(1==v.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),v.setCatchFinallyBlocks(2),
|
|
1742
1748
|
v.yield(k.promise,4);if(2!=v.nextAddress){l=v.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.");
|
|
1743
1749
|
return v.leaveTryBlock(0)}v.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,v.return();shaka.log.warning("MediaTailor request returned an error. Falling back to the backup asset uri.");c.streamPromise_.resolve(c.backupUrl_);c.streamPromise_=null;v.jumpToEnd()})};
|
|
1744
|
-
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,v,w,x,
|
|
1745
|
-
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(v=u.value,w=$jscomp.makeIterator(v.nonLinearAdList),x=w.next();!x.done;x=w.next())
|
|
1746
|
-
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
|
|
1750
|
+
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,v,w,x,z;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);
|
|
1751
|
+
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(v=u.value,w=$jscomp.makeIterator(v.nonLinearAdList),x=w.next();!x.done;x=w.next())z=x.value,c.requestStaticResource_(z);l=c.getCuePoints();c.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.CUEPOINTS_CHANGED,(new Map).set("cuepoints",
|
|
1752
|
+
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()})};
|
|
1747
1753
|
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,
|
|
1748
1754
|
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()})};
|
|
1749
1755
|
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("")};
|
|
@@ -1870,13 +1876,14 @@ shaka.cast.CastSender.prototype.onMessageReceived_=function(a,b){a=shaka.cast.Ca
|
|
|
1870
1876
|
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()}};
|
|
1871
1877
|
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",
|
|
1872
1878
|
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()}};
|
|
1873
|
-
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_()},
|
|
1874
|
-
g)},function(){return e.onResumeLocal_()},function(){return e.getInitState_()},d)
|
|
1879
|
+
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_()},
|
|
1880
|
+
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);
|
|
1875
1881
|
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_};
|
|
1876
|
-
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()};
|
|
1877
|
-
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_
|
|
1878
|
-
shaka.cast.CastProxy.prototype.
|
|
1879
|
-
function(
|
|
1882
|
+
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():""};
|
|
1883
|
+
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()};
|
|
1884
|
+
shaka.cast.CastProxy.prototype.forceDisconnect=function(){this.sender_&&this.sender_.forceDisconnect()};
|
|
1885
|
+
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_()},
|
|
1886
|
+
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_};
|
|
1880
1887
|
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_=
|
|
1881
1888
|
{};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,
|
|
1882
1889
|
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_};
|
|
@@ -1928,7 +1935,7 @@ shaka.cast.CastReceiver.prototype.sendMediaStatus_=function(a,b){a=void 0===a?0:
|
|
|
1928
1935
|
goog.exportProperty(shaka.cast.CastReceiver.prototype,"destroy",shaka.cast.CastReceiver.prototype.destroy);goog.exportProperty(shaka.cast.CastReceiver.prototype,"setContentArtist",shaka.cast.CastReceiver.prototype.setContentArtist);goog.exportProperty(shaka.cast.CastReceiver.prototype,"setContentImage",shaka.cast.CastReceiver.prototype.setContentImage);goog.exportProperty(shaka.cast.CastReceiver.prototype,"setContentTitle",shaka.cast.CastReceiver.prototype.setContentTitle);
|
|
1929
1936
|
goog.exportProperty(shaka.cast.CastReceiver.prototype,"clearContentMetadata",shaka.cast.CastReceiver.prototype.clearContentMetadata);goog.exportProperty(shaka.cast.CastReceiver.prototype,"setContentMetadata",shaka.cast.CastReceiver.prototype.setContentMetadata);goog.exportProperty(shaka.cast.CastReceiver.prototype,"isIdle",shaka.cast.CastReceiver.prototype.isIdle);goog.exportProperty(shaka.cast.CastReceiver.prototype,"isConnected",shaka.cast.CastReceiver.prototype.isConnected);
|
|
1930
1937
|
shaka.cast.CastReceiver.POLL_INTERVAL=.5;shaka.cast.CastReceiver.IDLE_INTERVAL=5;shaka.cast.CastReceiver.PLAY_STATE={IDLE:"IDLE",PLAYING:"PLAYING",BUFFERING:"BUFFERING",PAUSED:"PAUSED"};shaka.cea.CeaUtils=function(){};
|
|
1931
|
-
shaka.cea.CeaUtils.getParsedCaption=function(a,b,c,d,e){if(d>=e)return null;for(var f=-1,g=-1,h=0;h<c.length;h++)if(c[h].some(function(
|
|
1938
|
+
shaka.cea.CeaUtils.getParsedCaption=function(a,b,c,d,e){if(d>=e)return null;for(var f=-1,g=-1,h=0;h<c.length;h++)if(c[h].some(function(z){return null!=z&&""!=z.getChar().trim()})){f=h;break}for(h=c.length-1;0<=h;h--)if(c[h].some(function(z){return null!=z&&""!=z.getChar().trim()})){g=h;break}if(-1===f||-1===g)return null;for(var k=h=!1,l=shaka.cea.CeaUtils.DEFAULT_TXT_COLOR,m=shaka.cea.CeaUtils.DEFAULT_BG_COLOR,n=shaka.cea.CeaUtils.createStyledCue(d,e,h,k,l,m);f<=g;f++){for(var p=c[f],q=-1,r=-1,t=
|
|
1932
1939
|
0;t<p.length;t++)if(null!=p[t]&&""!==p[t].getChar().trim()){q=t;break}for(t=p.length-1;0<=t;t--)if(null!=p[t]&&""!==p[t].getChar().trim()){r=t;break}if(-1===q||-1===r)p=shaka.cea.CeaUtils.createLineBreakCue(d,e),a.nestedCues.push(p);else{for(;q<=r;q++)if(t=p[q]){var u=t.isUnderlined(),v=t.isItalicized(),w=t.getTextColor(),x=t.getBackgroundColor();if(u!=h||v!=k||w!=l||x!=m)n.payload&&a.nestedCues.push(n),n=shaka.cea.CeaUtils.createStyledCue(d,e,u,v,w,x),h=u,k=v,l=w,m=x;n.payload+=t.getChar()}else n.payload+=
|
|
1933
1940
|
" ";n.payload&&a.nestedCues.push(n);f!==g&&(n=shaka.cea.CeaUtils.createLineBreakCue(d,e),a.nestedCues.push(n));n=shaka.cea.CeaUtils.createStyledCue(d,e,h,k,l,m)}}return a.nestedCues.length?{cue:a,stream:b}:null};shaka.cea.CeaUtils.createStyledCue=function(a,b,c,d,e,f){a=new shaka.text.Cue(a,b,"");c&&a.textDecoration.push(shaka.text.Cue.textDecoration.UNDERLINE);d&&(a.fontStyle=shaka.text.Cue.fontStyle.ITALIC);a.color=e;a.backgroundColor=f;return a};
|
|
1934
1941
|
shaka.cea.CeaUtils.createLineBreakCue=function(a,b){a=new shaka.text.Cue(a,b,"");a.lineBreak=!0;return a};shaka.cea.CeaUtils.StyledChar=function(a,b,c,d,e){this.character_=a;this.underline_=b;this.italics_=c;this.backgroundColor_=d;this.textColor_=e};shaka.cea.CeaUtils.StyledChar.prototype.getChar=function(){return this.character_};shaka.cea.CeaUtils.StyledChar.prototype.isUnderlined=function(){return this.underline_};shaka.cea.CeaUtils.StyledChar.prototype.isItalicized=function(){return this.italics_};
|
|
@@ -2094,9 +2101,9 @@ shaka.dash.SegmentBase.createInitSegment=function(a,b,c){var d=shaka.util.TXml,e
|
|
|
2094
2101
|
f,d,null,null,c);c.codecs=a.representation.codecs;c.mimeType=a.representation.mimeType;return c};
|
|
2095
2102
|
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);
|
|
2096
2103
|
return{generateSegmentIndex:function(){return e.generateSegmentIndex_(m,b,l,k)}}};
|
|
2097
|
-
shaka.dash.SegmentBase.generateSegmentIndexFromUris=function(a,b,c,d,e,f,g){var h,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
2098
|
-
null;w=null;x=l-g;
|
|
2099
|
-
k&&q.fit(
|
|
2104
|
+
shaka.dash.SegmentBase.generateSegmentIndexFromUris=function(a,b,c,d,e,f,g){var h,k,l,m,n,p,q,r,t,u,v,w,x,z,B,A,y,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];v=t[1]||
|
|
2105
|
+
null;w=null;x=l-g;z=l;B=m?l+m:Infinity;"mp4"==n?w=shaka.media.Mp4SegmentIndexParser.parse(u,e,d,c,x,z,B):(goog.asserts.assert(v,"WebM requires init data"),w=shaka.media.WebmSegmentIndexParser.parse(u,v,d,c,x,z,B));A=$jscomp.makeIterator(w);for(y=A.next();!y.done;y=A.next())C=y.value,C.codecs=a.representation.codecs,C.mimeType=a.representation.mimeType,C.bandwidth=a.bandwidth;h.notifySegments(w);goog.asserts.assert(!q,"Should not call generateSegmentIndex twice");q=new shaka.media.SegmentIndex(w);
|
|
2106
|
+
k&&q.fit(z,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};
|
|
2100
2107
|
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};
|
|
2101
2108
|
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);};
|
|
2102
2109
|
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:",
|
|
@@ -2112,7 +2119,7 @@ shaka.dash.SegmentList.checkSegmentListInfo_=function(a,b){if(!b.segmentDuration
|
|
|
2112
2119
|
!b.timeline&&1==b.mediaSegments.length)throw shaka.log.warning("SegmentList does not contain sufficient segment information:","the SegmentList specifies one segment,","but does not specify a segment duration, period duration,","or timeline.",a.representation),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_NO_SEGMENT_INFO);if(b.timeline&&0==b.timeline.length)throw shaka.log.warning("SegmentList does not contain sufficient segment information:",
|
|
2113
2120
|
"the SegmentList has an empty timeline.",a.representation),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_NO_SEGMENT_INFO);};
|
|
2114
2121
|
shaka.dash.SegmentList.createSegmentReferences_=function(a,b,c,d,e,f,g,h,k,l,m){var n=shaka.util.ManifestParserUtils;c=e.mediaSegments.length;e.timeline&&e.timeline.length!=e.mediaSegments.length&&(c=Math.min(e.timeline.length,e.mediaSegments.length),shaka.log.warning("The number of items in the segment timeline and the number of ","segment URLs do not match, truncating",e.mediaSegments.length,"to",c));for(var p=a-e.scaledPresentationTimeOffset,q=b?a+b:Infinity,r=[],t=e.startTime,u={},v=0;v<c;u={uris$jscomp$12:void 0,
|
|
2115
|
-
segment$jscomp$9:void 0},v++){u.segment$jscomp$9=e.mediaSegments[v];var w=t;t=void 0;null!=e.segmentDuration?t=w+e.segmentDuration:e.timeline?t=e.timeline[v].end:(goog.asserts.assert(1==e.mediaSegments.length&&b,"There should be exactly one segment with a Period duration."),t=w+b);u.uris$jscomp$12=null;var x=function(
|
|
2122
|
+
segment$jscomp$9:void 0},v++){u.segment$jscomp$9=e.mediaSegments[v];var w=t;t=void 0;null!=e.segmentDuration?t=w+e.segmentDuration:e.timeline?t=e.timeline[v].end:(goog.asserts.assert(1==e.mediaSegments.length&&b,"There should be exactly one segment with a Period duration."),t=w+b);u.uris$jscomp$12=null;var x=function(z){return function(){null==z.uris$jscomp$12&&(z.uris$jscomp$12=n.resolveUris(d(),[z.segment$jscomp$9.mediaUri],m()));return z.uris$jscomp$12}}(u);u=new shaka.media.SegmentReference(a+
|
|
2116
2123
|
w,a+t,x,u.segment$jscomp$9.start,u.segment$jscomp$9.end,f,p,a,q,[],"",null,null,shaka.media.SegmentReference.Status.AVAILABLE,g);u.codecs=k;u.mimeType=h;u.bandwidth=l;r.push(u)}return r};
|
|
2117
2124
|
shaka.dash.SegmentList.parseMediaSegments_=function(a){var b=[a.representation.segmentList,a.adaptationSet.segmentList,a.period.segmentList].filter(shaka.util.Functional.isNotNull),c=shaka.util.TXml,d=shaka.util.StringUtils;return b.map(function(e){return c.findChildren(e,"SegmentURL")}).reduce(function(e,f){return 0<e.length?e:f}).map(function(e){e.attributes.indexRange&&!a.indexRangeWarningGiven&&(a.indexRangeWarningGiven=!0,shaka.log.warning("We do not support the SegmentURL@indexRange attribute on SegmentList. We only use the SegmentList@duration attribute or SegmentTimeline, which must be accurate."));
|
|
2118
2125
|
var f=d.htmlUnescape(e.attributes.media);e=c.parseAttr(e,"mediaRange",c.parseRange,{start:0,end:null});return{mediaUri:f,start:e.start,end:e.end}})};shaka.dash.SegmentTemplate=function(){};
|
|
@@ -2128,12 +2135,12 @@ shaka.dash.SegmentTemplate.checkSegmentTemplateInfo_=function(a,b){var c=b.index
|
|
|
2128
2135
|
"the SegmentTemplate should only contain an index URL template,","a SegmentTimeline or a segment duration.",a.representation),b.indexTemplate?(shaka.log.info("Using the index URL template by default."),b.timeline=null):(goog.asserts.assert(b.timeline,"There should be a timeline"),shaka.log.info("Using the SegmentTimeline by default.")),b.unscaledSegmentDuration=null,b.segmentDuration=null);if(!b.indexTemplate&&!b.mediaTemplate)throw shaka.log.error("SegmentTemplate does not contain sufficient segment information:",
|
|
2129
2136
|
"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);};
|
|
2130
2137
|
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)};
|
|
2131
|
-
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
|
|
2132
|
-
w=a.bandwidth||null,x=a.representation.id,
|
|
2133
|
-
n});
|
|
2134
|
-
M,"Generated a segment outside of the period!");var N=[],
|
|
2135
|
-
0==h?0<
|
|
2136
|
-
|
|
2138
|
+
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 K=null!=p&&e.get(p)||q;return K?n+K:Infinity},t=b.segmentDuration;goog.asserts.assert(null!=t,"Segment duration must not be null!");var u=b.startNumber,v=b.mediaTemplate,
|
|
2139
|
+
w=a.bandwidth||null,x=a.representation.id,z=a.representation.getBaseUris,B=a.urlParams,A=n-b.scaledPresentationTimeOffset,y=function(){var K=[Math.max(m.getSegmentAvailabilityStart(),n),Math.min(m.getSegmentAvailabilityEnd(),r())];goog.asserts.assert(K.every(isFinite),"Available presentation times must be finite!");goog.asserts.assert(K.every(function(L){return 0<=L}),"Available presentation times must be positive!");goog.asserts.assert(null!=t,"Segment duration must not be null!");K=K.map(function(L){return L-
|
|
2140
|
+
n});K=[Math.ceil(K[0]/t),Math.ceil(K[1]/t)-1];a.representation.availabilityTimeOffset&&K[1]++;return K.map(function(L){return L+u})},C=y();c=a.dynamic?Math.max(C[0],C[1]-c+1):C[0];g=g||C[1];C=[];var D=function(K){goog.asserts.assert(null!=t,"Segment duration must not be null!");var L=K-u,G=L*t,M=b.unscaledSegmentDuration;goog.asserts.assert(null!=M,"Segment duration must not be null!");var I=L*M;"BigInt"in window&&I>Number.MAX_SAFE_INTEGER&&(I=BigInt(L)*BigInt(M));G+=n;L=G+t;M=Math.min(L,r());goog.asserts.assert(G<
|
|
2141
|
+
M,"Generated a segment outside of the period!");var N=[],P=b.numChunks;if(P)for(var O=(M-G)/P,W={},Q=0;Q<P;W={subNumber$jscomp$1:void 0},Q++){var S=G+O*Q,V=S+O;W.subNumber$jscomp$1=Q+1;W=function(R){return function(){var T=k.fillUriTemplate(v,x,K,R.subNumber$jscomp$1,w,I);return l.resolveUris(z(),[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;
|
|
2142
|
+
0==h?0<Q&&S.markAsNonIndependent():0!=Q%h&&S.markAsNonIndependent();N.push(S)}G=new shaka.media.SegmentReference(G,M,function(){if(P)return[];var R=k.fillUriTemplate(v,x,K,null,w,I);return l.resolveUris(z(),[R],B())},0,null,d,A,n,r(),N,"",null,null,shaka.media.SegmentReference.Status.AVAILABLE,f,0<N.length);G.codecs=a.representation.codecs;G.mimeType=a.representation.mimeType;G.bandwidth=a.bandwidth;G.trueEndTime=L;return G},E=c;for(;E<=g;++E){var F=D(E);C.push(F)}var H=new shaka.media.SegmentIndex(C);
|
|
2143
|
+
C=m.getSegmentAvailabilityEnd()<r();E=m.isLive();if(C||E){var J=Math.max(c,g+1);c=t;a.representation.availabilityTimeOffset&&(c=.1);H.updateEvery(c,function(){var K=m.getSegmentAvailabilityStart();H.evict(K);var L=$jscomp.makeIterator(y());L.next();L=L.next().value;for(var G=[];J<=L;){var M=D(J);G.push(M);J++}return K>r()&&!G.length?null:G})}return Promise.resolve(H)};
|
|
2137
2144
|
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,
|
|
2138
2145
|
"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};
|
|
2139
2146
|
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);
|
|
@@ -2166,19 +2173,19 @@ shaka.util.PeriodCombiner.prototype.deleteStream=function(a,b){if(a){var c=shaka
|
|
|
2166
2173
|
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)}};
|
|
2167
2174
|
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),
|
|
2168
2175
|
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}};
|
|
2169
|
-
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,v,w,x,
|
|
2176
|
+
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,v,w,x,z,B,A,y,C,D,E,F,H,J,K,L,G,M;return $jscomp.asyncExecutePromiseGeneratorProgram(function(I){if(1==I.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_=
|
|
2170
2177
|
Array.from(h[0].values()),d.textStreams_=Array.from(k[0].values()),d.imageStreams_=Array.from(l[0].values()),I.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 I.return();r=d.getStreamsPerPeriod_(a,!0);t=r.audioStreamsPerPeriod;u=r.videoStreamsPerPeriod;v=r.textStreamsPerPeriod;w=r.imageStreamsPerPeriod;return I.yield(Promise.all([d.combine_(d.audioStreams_,t,n,shaka.util.PeriodCombiner.cloneStream_,
|
|
2171
|
-
shaka.util.PeriodCombiner.concatenateStreams_,m),d.combine_(d.videoStreams_,u,n,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_,m),d.combine_(d.textStreams_,v,n,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_,m),d.combine_(d.imageStreams_,w,n,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_,m)]),2)}x=0;
|
|
2172
|
-
F=E.next();!F.done;F=E.next())for(
|
|
2173
|
-
decodingInfos:[]}));else for(
|
|
2174
|
-
shaka.util.PeriodCombiner.combineDbStreams=function(a){var b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
2178
|
+
shaka.util.PeriodCombiner.concatenateStreams_,m),d.combine_(d.videoStreams_,u,n,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_,m),d.combine_(d.textStreams_,v,n,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_,m),d.combine_(d.imageStreams_,w,n,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_,m)]),2)}x=0;z=[];if(d.videoStreams_.length&&d.audioStreams_.length)for(E=$jscomp.makeIterator(d.audioStreams_),
|
|
2179
|
+
F=E.next();!F.done;F=E.next())for(H=F.value,J=$jscomp.makeIterator(d.videoStreams_),K=J.next();!K.done;K=J.next())L=K.value,G=shaka.drm.DrmUtils.getCommonDrmInfos(H.drmInfos,L.drmInfos),H.drmInfos.length&&L.drmInfos.length&&!G.length?shaka.log.warning("Incompatible DRM in audio & video, skipping variant creation.",H,L):(M=x++,z.push({id:M,language:H.language,disabledUntilTime:0,primary:H.primary,audio:H,video:L,bandwidth:(H.bandwidth||0)+(L.bandwidth||0),drmInfos:G,allowedByApplication:!0,allowedByKeySystem:!0,
|
|
2180
|
+
decodingInfos:[]}));else for(B=d.videoStreams_.length?d.videoStreams_:d.audioStreams_,A=$jscomp.makeIterator(B),y=A.next();!y.done;y=A.next())C=y.value,D=x++,z.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_=z;I.jumpToEnd()})};
|
|
2181
|
+
shaka.util.PeriodCombiner.combineDbStreams=function(a){var b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z,B,A,y,C,D,E,F,H,J,K,L;return $jscomp.asyncExecutePromiseGeneratorProgram(function(G){switch(G.nextAddress){case 1:b=shaka.util.ManifestParserUtils.ContentType;c=shaka.util.PeriodCombiner;if(1==a.length)return G.return(a[0]);d=a.map(function(M){return new Map(M.filter(function(I){return I.type===b.AUDIO}).map(function(I){return[c.generateAudioKey_(I),I]}))});e=a.map(function(M){return new Map(M.filter(function(I){return I.type===
|
|
2175
2182
|
b.VIDEO}).map(function(I){return[c.generateVideoKey_(I),I]}))});f=a.map(function(M){return new Map(M.filter(function(I){return I.type===b.TEXT}).map(function(I){return[c.generateTextKey_(I),I]}))});g=a.map(function(M){return new Map(M.filter(function(I){return I.type===b.IMAGE}).map(function(I){return[c.generateImageKey_(I),I]}))});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=
|
|
2176
|
-
n.next())q=p.value,r=c.dummyStreamDB_(b.IMAGE),q.set(c.generateImageKey_(r),r);t=new shaka.util.PeriodCombiner;return
|
|
2177
|
-
0),4);case 4:return w=
|
|
2178
|
-
return
|
|
2179
|
-
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,v,w,x,
|
|
2180
|
-
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.PERIOD_FLATTENING_FAILED);m=l.next();F.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),v=u.next();!v.done;v=u.next())w=v.value,(x=g.createNewOutputStream_(w,b,d,e,h))&&a.push(x);
|
|
2181
|
-
!shaka.util.PeriodCombiner.isDummy_(D.stream$jscomp$93)&&(E=a.some(function(
|
|
2183
|
+
n.next())q=p.value,r=c.dummyStreamDB_(b.IMAGE),q.set(c.generateImageKey_(r),r);t=new shaka.util.PeriodCombiner;return G.yield(t.combine_([],d,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_,0),2);case 2:return u=G.yieldResult,G.yield(t.combine_([],e,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_,0),3);case 3:return v=G.yieldResult,G.yield(t.combine_([],f,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_,
|
|
2184
|
+
0),4);case 4:return w=G.yieldResult,G.yield(t.combine_([],g,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_,0),5);case 5:x=G.yieldResult;z=0;if(v.length&&u.length)for(D=$jscomp.makeIterator(u),E=D.next();!E.done;E=D.next())for(F=E.value,H=$jscomp.makeIterator(v),J=H.next();!J.done;J=H.next())K=J.value,L=z++,K.variantIds.push(L),F.variantIds.push(L);else for(B=v.concat(u),A=$jscomp.makeIterator(B),y=A.next();!y.done;y=A.next())C=y.value,C.variantIds=[z++];
|
|
2185
|
+
return G.return(v.concat(u).concat(w).concat(x))}})};
|
|
2186
|
+
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,v,w,x,z,B,A,y,C,D,E;return $jscomp.asyncExecutePromiseGeneratorProgram(function(F){switch(F.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){F.jumpTo(4);break}n=m.value;return F.yield(g.extendExistingOutputStream_(n,b,c,e,h,f),5);case 5:p=F.yieldResult;if(!p)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
2187
|
+
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.PERIOD_FLATTENING_FAILED);m=l.next();F.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),v=u.next();!v.done;v=u.next())w=v.value,(x=g.createNewOutputStream_(w,b,d,e,h))&&a.push(x);z=$jscomp.makeIterator(h);for(B=z.next();!B.done;B=z.next())for(A=B.value,y=$jscomp.makeIterator(A),C=y.next(),D={};!C.done;D={stream$jscomp$93:void 0},C=y.next())if(D.stream$jscomp$93=C.value,
|
|
2188
|
+
!shaka.util.PeriodCombiner.isDummy_(D.stream$jscomp$93)&&(E=a.some(function(H){return function(J){return g.areAVStreamsCompatible_(H.stream$jscomp$93,J)}}(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 F.return(a)}})};
|
|
2182
2189
|
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,
|
|
2183
2190
|
c,d,e,f);return h.return(!0)})};
|
|
2184
2191
|
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<
|
|
@@ -2238,24 +2245,24 @@ p);return q.return(p)})};
|
|
|
2238
2245
|
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,
|
|
2239
2246
|
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,
|
|
2240
2247
|
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))})};
|
|
2241
|
-
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,v,w,x,
|
|
2248
|
+
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,v,w,x,z,B,A,y,C,D,E,F,H,J,K,L,G,M,I,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,
|
|
2242
2249
|
"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=
|
|
2243
2250
|
d.parseAttr(a,"publishTime",d.parseDate)||0;c.patchLocationNodes_=d.findChildren(a,"PatchLocation");t=Promise.resolve();if((u=d.findChild(a,"ContentSteering"))&&c.playerInterface_){v=u.attributes.defaultServiceLocation;if(c.contentSteeringManager_)c.contentSteeringManager_.setBaseUris(e),c.contentSteeringManager_.setDefaultPathwayId(v);else if(c.contentSteeringManager_=new shaka.util.ContentSteeringManager(c.playerInterface_),c.contentSteeringManager_.configure(c.config_),c.contentSteeringManager_.setManifestType(shaka.media.ManifestParser.DASH),
|
|
2244
|
-
c.contentSteeringManager_.setBaseUris(e),c.contentSteeringManager_.setDefaultPathwayId(v),w=d.getContents(u))(x=d.parseAttr(u,"queryBeforeStart",d.parseBoolean,!1))?t=c.contentSteeringManager_.requestInfo(w):c.contentSteeringManager_.requestInfo(w);
|
|
2245
|
-
E.next())
|
|
2246
|
-
(M=d.parseAttr(
|
|
2247
|
-
d.parseDuration));
|
|
2248
|
-
d.parseDuration)||0),
|
|
2249
|
-
ea={dynamic:"static"!=
|
|
2250
|
-
|
|
2251
|
-
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(!
|
|
2252
|
-
return da.yield(c.parseUtcTiming_(
|
|
2251
|
+
c.contentSteeringManager_.setBaseUris(e),c.contentSteeringManager_.setDefaultPathwayId(v),w=d.getContents(u))(x=d.parseAttr(u,"queryBeforeStart",d.parseBoolean,!1))?t=c.contentSteeringManager_.requestInfo(w):c.contentSteeringManager_.requestInfo(w);z=$jscomp.makeIterator(g.keys());for(B=z.next();!B.done;B=z.next())A=B.value,y=g.get(A),c.contentSteeringManager_.addLocation("Location",A,y)}C=d.findChildren(a,"BaseURL");D=!1;if(c.contentSteeringManager_)for(E=$jscomp.makeIterator(C),F=E.next();!F.done;F=
|
|
2252
|
+
E.next())H=F.value,J=H.attributes.serviceLocation,K=d.getContents(H),J&&K&&(c.contentSteeringManager_.addLocation("BaseURL",J,K),D=!0);c.lastCalculatedBaseUris_=null;D&&c.contentSteeringManager_||(L=C.map(d.getContents),c.lastCalculatedBaseUris_=shaka.util.ManifestParserUtils.resolveUris(e,L));G=function(){return c.contentSteeringManager_&&D?c.contentSteeringManager_.getLocations("BaseURL"):c.lastCalculatedBaseUris_?c.lastCalculatedBaseUris_:[]};c.manifestPatchContext_.getBaseUris=G;M=0;C&&C.length&&
|
|
2253
|
+
(M=d.parseAttr(C[0],"availabilityTimeOffset",d.parseFloat)||0);c.manifestPatchContext_.availabilityTimeOffset=M;c.updatePeriod_=d.parseAttr(a,"minimumUpdatePeriod",d.parseDuration,-1);I=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",
|
|
2254
|
+
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",
|
|
2255
|
+
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(I,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(",");
|
|
2256
|
+
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,G,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_);
|
|
2257
|
+
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(),
|
|
2258
|
+
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");
|
|
2259
|
+
return da.yield(c.parseUtcTiming_(G,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()}})};
|
|
2253
2260
|
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()})};
|
|
2254
|
-
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,v,w,x,
|
|
2261
|
+
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,v,w,x,z,B,A,y,C,D,E,F,H,J,K;return $jscomp.asyncExecutePromiseGeneratorProgram(function(L){if(1==L.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,
|
|
2255
2262
|
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===
|
|
2256
|
-
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),v=$jscomp.makeIterator(u),w=v.next();!w.done;w=v.next())x=w.value,h.add(x);else if("SegmentTimeline"===q.name||"S"===q.name)for(
|
|
2257
|
-
h.add(
|
|
2258
|
-
(
|
|
2263
|
+
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),v=$jscomp.makeIterator(u),w=v.next();!w.done;w=v.next())x=w.value,h.add(x);else if("SegmentTimeline"===q.name||"S"===q.name)for(z=b.modifyTimepoints_(m),B=$jscomp.makeIterator(z),A=B.next();!A.done;A=B.next())y=A.value,
|
|
2264
|
+
h.add(y);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);F=$jscomp.makeIterator(g);for(H=F.next();!H.done;H=F.next())J=H.value,f.push.apply(f,$jscomp.arrayFromIterable(b.parsePatchPeriod_(J)));if(!f.length)return L.jumpTo(2);b.manifest_.periodCount+=f.length;b.manifest_.gapCount=b.gapCount_;return L.yield(b.postPeriodProcessing_(f,!0),2)}"static"==b.manifestPatchContext_.type&&
|
|
2265
|
+
(K=b.manifestPatchContext_.mediaPresentationDuration,b.manifest_.presentationTimeline.setDuration(K||Infinity));L.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)};
|
|
2259
2266
|
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}};
|
|
2260
2267
|
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,
|
|
2261
2268
|
mediaPresentationDuration:this.manifestPatchContext_.mediaPresentationDuration,roles:null,urlParams:function(){return""}},this.manifestPatchContext_.getBaseUris,a,!0).periods};
|
|
@@ -2282,28 +2289,28 @@ $jscomp.makeIterator(e),f=e.next();!f.done;f=e.next())for(f=f.value,b=f.trickMod
|
|
|
2282
2289
|
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}};
|
|
2283
2290
|
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},[])};
|
|
2284
2291
|
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(J){return J.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=
|
|
2285
|
-
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(J){switch(J){case 1:case 6:case 13:case 14:case 15:return"SDR";case 16:return"PQ";case 18:return"HLG"}};q=function(J){switch(J){case 1:case 5:case 6:case 7:return"srgb";case 9:return"rec2020";case 11:case 12:return"p3"}};var r=function(J){var
|
|
2286
|
-
(J=shaka.util.ManifestParserUtils.resolveUris(a.adaptationSet.getBaseUris(),[J],a.urlParams()),d.playerInterface_.addFont(
|
|
2287
|
-
|
|
2288
|
-
x?
|
|
2289
|
-
v=v.attributes.value,"urn:scte:dash:cc:cea-608:2015"==r&&!this.config_.disableText)if(r=1,null!=v)for(v=v.split(";"),w=$jscomp.makeIterator(v),t=w.next();!t.done;t=w.next())x=t.value,
|
|
2290
|
-
v.next())t=w.value,x=w=void 0,t.includes("=")?(t=t.split("="),w="svc"+t[0],x=t[1].split(",")[0].split(":").pop()):(w="svc"+r,r++,x=t),
|
|
2291
|
-
g=e.findChildren(c,"ContentProtection");var E=k.parseFromAdaptationSet(g,this.config_.dash.ignoreDrmInfo,this.config_.dash.keySystemsByURI),F=shaka.util.LanguageUtils.normalize(a.adaptationSet.language||"und"),
|
|
2292
|
-
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(J){if(J=d.parseRepresentation_(a,E,p,F,
|
|
2292
|
+
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(J){switch(J){case 1:case 6:case 13:case 14:case 15:return"SDR";case 16:return"PQ";case 18:return"HLG"}};q=function(J){switch(J){case 1:case 5:case 6:case 7:return"srgb";case 9:return"rec2020";case 11:case 12:return"p3"}};var r=function(J){var K=J.attributes["dvb:fontFamily"];J=J.attributes["dvb:url"];K&&J&&
|
|
2293
|
+
(J=shaka.util.ManifestParserUtils.resolveUris(a.adaptationSet.getBaseUris(),[J],a.urlParams()),d.playerInterface_.addFont(K,J[0]))},t=e.findChildren(c,"EssentialProperty");f=null;var u=!1,v=null,w=!1;t=$jscomp.makeIterator(t);for(var x=t.next();!x.done;x=t.next()){x=x.value;var z=x.attributes.schemeIdUri;if("http://dashif.org/guidelines/trickmode"==z)f=x.attributes.value;else if("urn:mpeg:mpegB:cicp:TransferCharacteristics"==z)var B=m(parseInt(x.attributes.value,10));else if("urn:mpeg:mpegB:cicp:ColourPrimaries"==
|
|
2294
|
+
z)var A=q(parseInt(x.attributes.value,10));else"urn:mpeg:mpegB:cicp:MatrixCoefficients"!=z&&("urn:mpeg:dash:ssr:2023"==z&&this.config_.dash.enableFastSwitching?u=!0:"urn:dvb:dash:fontdownload:2014"==z?r(x):"urn:mpeg:dash:urlparam:2014"==z?(v=this.getURLParametersFunction_(x))||(w=!0):w=!0)}if(w)return null;var y=null;w=e.findChildren(c,"SupplementalProperty");w=$jscomp.makeIterator(w);for(t=w.next();!t.done;t=w.next())t=t.value,x=t.attributes.schemeIdUri,"http://dashif.org/guidelines/last-segment-number"==
|
|
2295
|
+
x?y=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&&(v=this.getURLParametersFunction_(t));v&&(a.urlParams=v);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(v=r.value,r=v.attributes.schemeIdUri,
|
|
2296
|
+
v=v.attributes.value,"urn:scte:dash:cc:cea-608:2015"==r&&!this.config_.disableText)if(r=1,null!=v)for(v=v.split(";"),w=$jscomp.makeIterator(v),t=w.next();!t.done;t=w.next())x=t.value,z=t=void 0,x.includes("=")?(x=x.split("="),t=x[0].startsWith("CC")?x[0]:"CC"+x[0],z=x[1]||"und"):(t="CC"+r,2==v.length?r+=2:r++,z=x),C.set(t,m.normalize(z));else C.set("CC1","und");else if("urn:scte:dash:cc:cea-708:2015"==r&&!this.config_.disableText)if(r=1,null!=v)for(v=$jscomp.makeIterator(v.split(";")),w=v.next();!w.done;w=
|
|
2297
|
+
v.next())t=w.value,x=w=void 0,t.includes("=")?(t=t.split("="),w="svc"+t[0],x=t[1].split(",")[0].split(":").pop()):(w="svc"+r,r++,x=t),C.set(w,m.normalize(x));else C.set("svc1","und");else if("urn:mpeg:dash:role:2011"==r)null!=v&&(n.push(v),"captions"==v&&(p=g.TextStreamKind.CLOSED_CAPTION));else if("urn:tva:metadata:cs:AudioPurposeCS:2007"==r)if("1"==v)var D=shaka.media.ManifestParser.AccessibilityPurpose.VISUALLY_IMPAIRED;else"2"==v&&(D=shaka.media.ManifestParser.AccessibilityPurpose.HARD_OF_HEARING);
|
|
2298
|
+
g=e.findChildren(c,"ContentProtection");var E=k.parseFromAdaptationSet(g,this.config_.dash.ignoreDrmInfo,this.config_.dash.keySystemsByURI),F=shaka.util.LanguageUtils.normalize(a.adaptationSet.language||"und"),H=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),
|
|
2299
|
+
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(J){if(J=d.parseRepresentation_(a,E,p,F,H,l,n,C,J,D,y))J.hdr=J.hdr||B,J.colorGamut=J.colorGamut||A,J.fastSwitching=u;return J}).filter(function(J){return!!J});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,
|
|
2293
2300
|
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);
|
|
2294
2301
|
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(J){return J.attributes.supplementalId||J.attributes.id}).filter(shaka.util.Functional.isNotNull);return{id:h,contentType:a.adaptationSet.contentType,language:F,main:l,streams:e,drmInfos:E.drmInfos,trickModeFor:f,representationIds:b}};
|
|
2295
2302
|
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);
|
|
2296
2303
|
if(g.length)return f+"="+g[0]}return e}).join("&")}}return null};
|
|
2297
2304
|
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),
|
|
2298
2305
|
null;var t=a.periodInfo.start;a.bandwidth=p.parseAttr(k,"bandwidth",p.parsePositiveInt)||0;a.roles=g;var u=p.findChildren(k,"SupplementalProperty"),v=p.findChildren(k,"EssentialProperty"),w=null,x=v.find(function(I){return"urn:mpeg:dash:urlparam:2014"==I.attributes.schemeIdUri});x?w=this.getURLParametersFunction_(x):(x=u.find(function(I){return"urn:mpeg:dash:urlparam:2014"==I.attributes.schemeIdUri}))&&(w=this.getURLParametersFunction_(x));w&&(a.urlParams=w);x=a.representation.contentType;w=x==q.TEXT||
|
|
2299
|
-
x==q.APPLICATION;q=x==q.IMAGE;try{var
|
|
2300
|
-
|
|
2301
|
-
shaka.dash.SegmentBase.createStreamInfo(a,
|
|
2302
|
-
|
|
2303
|
-
I.attributes.schemeIdUri&&"JOC"==I.attributes.value});u=a.representation.codecs;
|
|
2304
|
-
u.includes("hev1.2.4.L153.B0"))&&(
|
|
2306
|
+
x==q.APPLICATION;q=x==q.IMAGE;try{var z=void 0;if(b.aes128Info){var B=a.representation.getBaseUris,A=a.urlParams,y=shaka.util.ManifestParserUtils.resolveUris(B(),[b.aes128Info.keyUri],A()),C=shaka.net.NetworkingEngine.RequestType.KEY,D=shaka.net.NetworkingEngine.makeRequest(y,this.config_.retryParameters);z={bitsKey:128,blockCipherMode:"CBC",iv:b.aes128Info.iv,firstMediaSequenceNumber:0,fetchKey:function(){var I,N,P;return $jscomp.asyncExecutePromiseGeneratorProgram(function(O){if(1==O.nextAddress)return O.yield(n.makeNetworkRequest_(D,
|
|
2307
|
+
C),2);if(3!=O.nextAddress){I=O.yieldResult;if(!I.data||16!=I.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=z;return O.yield(window.crypto.subtle.importKey("raw",I.data,N,!0,["decrypt"]),3)}P.cryptoKey=O.yieldResult;z.fetchKey=void 0;O.jumpToEnd()})}}}a.representation.aesKey=z;B=function(I,N,P,O){return n.requestSegment_(I,N,P,O)};if(a.representation.segmentBase)var E=
|
|
2308
|
+
shaka.dash.SegmentBase.createStreamInfo(a,B,z);else if(a.representation.segmentList)E=shaka.dash.SegmentList.createStreamInfo(a,this.streamMap_,z);else if(a.representation.segmentTemplate)E=shaka.dash.SegmentTemplate.createStreamInfo(a,B,this.streamMap_,!!this.manifest_,this.config_.dash.initialSegmentLimit,this.periodDurations_,z,m,!1);else{goog.asserts.assert(w,"Must have Segment* with non-text streams.");var F=a.periodInfo.duration||0,H=a.representation.getBaseUris,J=a.representation.mimeType,
|
|
2309
|
+
K=a.representation.codecs;E={generateSegmentIndex:function(){var I=shaka.media.SegmentIndex.forSingleSegment(t,F,H());I.forEachTopLevelReference(function(N){N.mimeType=J;N.codecs=K});return Promise.resolve(I)}}}}catch(I){if((w||q)&&I.code==shaka.util.Error.Code.DASH_NO_SEGMENT_INFO)return null;throw I;}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(I){return"tag:dolby.com,2018:dash:EC3_ExtensionType:2018"==
|
|
2310
|
+
I.attributes.schemeIdUri&&"JOC"==I.attributes.value});u=a.representation.codecs;B=u.includes("ec-3")&&384E3<a.bandwidth;m=!1;if(p||B)m=!0;p=!1;w&&(p=g.includes("forced_subtitle")||g.includes("forced-subtitle"));var L;if(q&&((v=v.find(function(I){return["http://dashif.org/thumbnail_tile","http://dashif.org/guidelines/thumbnail_tile"].includes(I.attributes.schemeIdUri)}))&&(L=v.attributes.value),!L))return null;var G;a.profiles.includes("http://dashif.org/guidelines/dash-if-uhd#hevc-hdr-pq10")&&(u.includes("hvc1.2.4.L153.B0")||
|
|
2311
|
+
u.includes("hev1.2.4.L153.B0"))&&(G="PQ");v=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=v&&this.streamMap_.has(v)?this.streamMap_.get(v):{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,
|
|
2305
2312
|
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,
|
|
2306
|
-
spatialAudio:m,closedCaptions:h,hdr:
|
|
2313
|
+
spatialAudio:m,closedCaptions:h,hdr:G,colorGamut:void 0,videoLayout:void 0,tilesLayout:L,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 I;return $jscomp.asyncExecutePromiseGeneratorProgram(function(N){if(1==N.nextAddress){if(M.segmentIndex)return N.jumpTo(0);I=M;return N.yield(E.generateSegmentIndex(),3)}I.segmentIndex=N.yieldResult;
|
|
2307
2314
|
N.jumpToEnd()})};v&&a.dynamic&&!this.streamMap_.has(v)&&(a=a.period.id||"",this.indexStreamMap_.has(a)||this.indexStreamMap_.set(a,[]),this.streamMap_.set(v,M),this.indexStreamMap_.get(a).push(v));return M};
|
|
2308
2315
|
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};
|
|
2309
2316
|
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"),
|
|
@@ -2311,9 +2318,9 @@ a.playerInterface_){if(a.config_.raiseFatalErrorOnManifestUpdateRequestFailure)r
|
|
|
2311
2318
|
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)}};
|
|
2312
2319
|
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,
|
|
2313
2320
|
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,
|
|
2314
|
-
"frameRate",k)||b.frameRate;u=a.attributes.sar||b.pixelAspectRatio;var v=this.emsgSchemeIdUris_(g.findChildren(a,"InbandEventStream"),b.emsgSchemeIdUris),w=g.findChildren(a,"AudioChannelConfiguration");w=this.parseAudioChannels_(w)||b.numChannels;var x=g.parseAttr(a,"audioSamplingRate",h)||b.audioSamplingRate;r||(r=shaka.dash.DashParser.guessContentType_(t,e));var
|
|
2315
|
-
"availabilityTimeOffset",g.parseFloat)||0:0,
|
|
2316
|
-
p?p:[]:[])},segmentBase:
|
|
2321
|
+
"frameRate",k)||b.frameRate;u=a.attributes.sar||b.pixelAspectRatio;var v=this.emsgSchemeIdUris_(g.findChildren(a,"InbandEventStream"),b.emsgSchemeIdUris),w=g.findChildren(a,"AudioChannelConfiguration");w=this.parseAudioChannels_(w)||b.numChannels;var x=g.parseAttr(a,"audioSamplingRate",h)||b.audioSamplingRate;r||(r=shaka.dash.DashParser.guessContentType_(t,e));var z=g.findChild(a,"SegmentBase"),B=g.findChild(a,"SegmentTemplate"),A=z?g.parseAttr(z,"availabilityTimeOffset",g.parseFloat)||0:0,y=B?g.parseAttr(B,
|
|
2322
|
+
"availabilityTimeOffset",g.parseFloat)||0:0,C=n&&n.length?g.parseAttr(n[0],"availabilityTimeOffset",g.parseFloat)||0:0;A=b.availabilityTimeOffset+C+A+y;y=null;(C=g.findChild(a,"SegmentSequenceProperties"))&&(C=g.findChild(C,"SAP"))&&(y=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):
|
|
2323
|
+
p?p:[]:[])},segmentBase:z||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:v,id:m||l,originalId:l,language:a.attributes.lang,numChannels:w,audioSamplingRate:x,availabilityTimeOffset:A,initialization:null,segmentSequenceCadence:y||b.segmentSequenceCadence,label:C||null}};
|
|
2317
2324
|
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};
|
|
2318
2325
|
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",
|
|
2319
2326
|
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",
|
|
@@ -2360,11 +2367,11 @@ this.aesKeyInfoMap_.clear();this.aesKeyMap_.clear();this.identityKeyMap_.clear()
|
|
|
2360
2367
|
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}));
|
|
2361
2368
|
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);
|
|
2362
2369
|
q.jumpToEnd()})};shaka.hls.HlsParser.prototype.getMediaSequenceToStartTimeFor_=function(a){return this.isLive_()?this.mediaSequenceToStartTimeByType_.get(a.type):a.mediaSequenceToStartTime};
|
|
2363
|
-
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,v,w,x,
|
|
2370
|
+
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,v,w,x,z,B,A,y,C,D,E,F,H,J,K,L,G,M,I,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&&
|
|
2364
2371
|
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,
|
|
2365
|
-
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;v=u.keyIds;w=u.drmInfos;x=function(
|
|
2366
|
-
x(r.keyIds,v)||(r.keyIds=v,r.drmInfos=w,b.playerInterface_.newDrmInfo(r));
|
|
2367
|
-
0),J=(
|
|
2372
|
+
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;v=u.keyIds;w=u.drmInfos;x=function(W,Q){return W.size===Q.size&&[].concat($jscomp.arrayFromIterable(W)).every(function(S){return Q.has(S)})};
|
|
2373
|
+
x(r.keyIds,v)||(r.keyIds=v,r.drmInfos=w,b.playerInterface_.newDrmInfo(r));z=b.createSegments_(m,t,q,a.getUris,a.type);B=z.segments;if(A=z.bandwidth)r.bandwidth=A;y=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=y);r.segmentIndex.mergeAndEvict(B,b.presentationTimeline_.getSegmentAvailabilityStart());B.length&&(F=shaka.hls.Utils.getFirstTagWithNameAsNumber(m.tags,"EXT-X-MEDIA-SEQUENCE",
|
|
2374
|
+
0),J=(H=shaka.hls.Utils.getFirstTagWithName(m.tags,"EXT-X-SKIP"))?Number(H.getAttributeValue("SKIPPED-SEGMENTS")):0,K=b.getNextMediaSequenceAndPart_(F,B),L=K.nextMediaSequence,G=K.nextPart,a.nextMediaSequence=L+J,a.nextPart=G,M=t.get(F),r.segmentIndex.evict(M));if(I=r.segmentIndex.earliestReference())a.minTimestamp=I.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);
|
|
2368
2375
|
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};
|
|
2369
2376
|
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);
|
|
2370
2377
|
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=
|
|
@@ -2372,20 +2379,21 @@ this.minSequenceNumber_-c.firstSequenceNumber,0<e&&(d.dropFirstReferences(e),d=d
|
|
|
2372
2379
|
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());
|
|
2373
2380
|
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)}}}};
|
|
2374
2381
|
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())};
|
|
2375
|
-
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,v,w,x,
|
|
2376
|
-
[];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,
|
|
2377
|
-
p,f,m,b,"",n,
|
|
2378
|
-
4);case 4:if(!c.config_.hls.ignoreSupplementalCodecs){
|
|
2379
|
-
|
|
2380
|
-
(
|
|
2381
|
-
(
|
|
2382
|
-
|
|
2383
|
-
|
|
2384
|
-
|
|
2385
|
-
|
|
2386
|
-
|
|
2387
|
-
|
|
2388
|
-
A
|
|
2382
|
+
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,v,w,x,z,B,A,y,C,D,E,F,H,J,K,L,G,M,I,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");
|
|
2383
|
+
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_++,
|
|
2384
|
+
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");v=d.filterTagsByName(f.tags,"EXT-X-SESSION-KEY");w=d.filterTagsByName(f.tags,"EXT-X-SESSION-DATA");x=d.filterTagsByName(f.tags,"EXT-X-CONTENT-STEERING");c.processSessionData_(w);return U.yield(c.processContentSteering_(x),
|
|
2385
|
+
4);case 4:if(!c.config_.hls.ignoreSupplementalCodecs){z=[];B=$jscomp.makeIterator(r);A=B.next();for(y={};!A.done;y={supplementalCodecs$jscomp$1:void 0},A=B.next())if(C=A.value,D=C.getAttributeValue("SUPPLEMENTAL-CODECS"))y.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)}}(y)),z.push(new shaka.hls.Tag(C.id,
|
|
2386
|
+
C.name,E,null));r.push.apply(r,$jscomp.arrayFromIterable(z));F=[];H=$jscomp.makeIterator(u);J=H.next();for(K={};!J.done;K={supplementalCodecs$jscomp$2:void 0},J=H.next())if(L=J.value,G=L.getAttributeValue("SUPPLEMENTAL-CODECS"))K.supplementalCodecs$jscomp$2=G.split(/\s*,\s*/).map(function(ba){return ba.split("/")[0]}),M=L.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)}}(K)),F.push(new shaka.hls.Tag(L.id,
|
|
2387
|
+
L.name,M,null));u.push.apply(u,$jscomp.arrayFromIterable(F))}c.parseCodecs_(r);c.parseClosedCaptions_(q);I=c.parseIFrames_(u);return U.yield(c.createVariantsForTags_(r,v,q,m,c.globalVariables_,I),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&&
|
|
2388
|
+
(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&&
|
|
2389
|
+
(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,
|
|
2390
|
+
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_),
|
|
2391
|
+
U.jumpToEnd()}})};
|
|
2392
|
+
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,v,w,x,z,B,A,y,C,D,E,F;return $jscomp.asyncExecutePromiseGeneratorProgram(function(H){switch(H.nextAddress){case 1:c=shaka.hls.HlsParser;d=shaka.media.SegmentUtils.getBasicInfoFromMimeType(b.config_.hls.mediaPlaylistFullMimeType);if(!a.length)return H.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=
|
|
2393
|
+
c.RAW_FORMATS_TO_MIME_TYPES_.get(m))return H.return(shaka.media.SegmentUtils.getBasicInfoFromMimeType(n));p=shaka.net.NetworkingEngine.RequestType.SEGMENT;r=q=null;t=f.initSegmentReference;if(!t){H.jumpTo(2);break}u=shaka.util.Networking.createSegmentRequest(t.getUris(),t.getStartByte(),t.getEndByte(),b.config_.retryParameters);v=shaka.net.NetworkingEngine.AdvancedRequestType.INIT_SEGMENT;return H.yield(b.makeNetworkRequest_(u,p,{type:v}).promise,3);case 3:w=H.yieldResult;q=w.data;if(!t.aesKey){H.jumpTo(4);
|
|
2394
|
+
break}return H.yield(shaka.media.SegmentUtils.aesDecrypt(q,t.aesKey,0),5);case 5:q=H.yieldResult;case 4:(r=w.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),z=shaka.net.NetworkingEngine.AdvancedRequestType.MEDIA_SEGMENT,H.yield(b.makeNetworkRequest_(x,p,{type:z}).promise,6);case 6:B=H.yieldResult;A=B.data;if(!f.aesKey){H.jumpTo(7);break}return H.yield(shaka.media.SegmentUtils.aesDecrypt(A,
|
|
2395
|
+
f.aesKey,g),8);case 8:A=H.yieldResult;case 7:(y=B.headers["content-type"])&&(y=y.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 H.return(E)}else if(C.includes(m)||D.includes(y)||r&&D.includes(r))if(F=shaka.media.SegmentUtils.getBasicInfoFromMp4(q,
|
|
2396
|
+
A,b.config_.disableText))return H.return(F);return y?H.return(shaka.media.SegmentUtils.getBasicInfoFromMimeType(y)):r?H.return(shaka.media.SegmentUtils.getBasicInfoFromMimeType(r)):H.return(d)}})};
|
|
2389
2397
|
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=
|
|
2390
2398
|
$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!")};
|
|
2391
2399
|
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)}};
|
|
@@ -2402,11 +2410,11 @@ shaka.hls.HlsParser.prototype.parseImages_=function(a,b){var c=this,d,e;return $
|
|
|
2402
2410
|
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}))})};
|
|
2403
2411
|
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)};
|
|
2404
2412
|
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})};
|
|
2405
|
-
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,v,w,x,
|
|
2406
|
-
shaka.hls.Utils.constructSegmentUris(d(),n.getRequiredAttrValue("URI"),e);u=t.sort().join("");g.aesKeyMap_.has(u)||(v=shaka.net.NetworkingEngine.RequestType.KEY,w=shaka.net.NetworkingEngine.makeRequest(t,g.config_.retryParameters),x=g.makeNetworkRequest_(w,v).promise,g.aesKeyMap_.set(u,x));
|
|
2407
|
-
$jscomp.makeIterator(r.keyIds),A=
|
|
2408
|
-
|
|
2409
|
-
k,f)));return
|
|
2413
|
+
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,v,w,x,z,B,A,y,C,D,E,F,H,J,K,L,G,M,I,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=
|
|
2414
|
+
shaka.hls.Utils.constructSegmentUris(d(),n.getRequiredAttrValue("URI"),e);u=t.sort().join("");g.aesKeyMap_.has(u)||(v=shaka.net.NetworkingEngine.RequestType.KEY,w=shaka.net.NetworkingEngine.makeRequest(t,g.config_.retryParameters),x=g.makeNetworkRequest_(w,v).promise,g.aesKeyMap_.set(u,x));T.jumpTo(4);break}if("identity"!=q){r=(z=shaka.hls.HlsParser.KEYFORMATS_TO_DRM_PARSERS_.get(q))?z(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=
|
|
2415
|
+
$jscomp.makeIterator(r.keyIds),A=B.next();!A.done;A=B.next())y=A.value,k.add(y);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())F=E.value,H=F.getTagKey(!g.contentSteeringManager_),C[H]?C[H].push(F):C[H]=[F];J=[];for(K in C)L=C[K],G=L[0],M=G.getAttributeValue("FRAME-RATE"),I=Number(G.getAttributeValue("AVERAGE-BANDWIDTH"))||Number(G.getRequiredAttrValue("BANDWIDTH")),N=G.getAttributeValue("RESOLUTION"),
|
|
2416
|
+
P=$jscomp.makeIterator(N?N.split("x"):[null,null]),O=P.next().value,W=P.next().value,Q=G.getAttributeValue("VIDEO-RANGE"),(S=G.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_(L,c,N,M),goog.asserts.assert(R.audio.length||R.video.length,"We should have created a stream!"),J.push.apply(J,$jscomp.arrayFromIterable(g.createVariants_(R.audio,R.video,I,O,W,M,Q,S,h,
|
|
2417
|
+
k,f)));return T.return(J.filter(function(X){return null!=X}))}})};
|
|
2410
2418
|
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,
|
|
2411
2419
|
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")});
|
|
2412
2420
|
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."),
|
|
@@ -2430,35 +2438,35 @@ Number(p);b.uriToStreamInfosMap_.set(d,k);return q.return(k)})};
|
|
|
2430
2438
|
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=
|
|
2431
2439
|
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};
|
|
2432
2440
|
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);
|
|
2433
|
-
a=this.getClosedCaptions_(a[0],c);b=shaka.util.ManifestParserUtils.guessCodecs(c,b);c=this.createStreamInfo_(d,e,b,c,null,!1,
|
|
2441
|
+
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};
|
|
2434
2442
|
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,
|
|
2435
|
-
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 v=function(
|
|
2436
|
-
if(
|
|
2437
|
-
q.needsClosedCaptionsDetection_&&d==
|
|
2438
|
-
t.maxTimestamp=
|
|
2439
|
-
|
|
2440
|
-
q.manifest_&&M&&q.playerInterface_.makeTextStreamsForClosedCaptions(q.manifest_);if(d==
|
|
2441
|
-
(Y.initSegmentReference.mediaQuality=
|
|
2442
|
-
r.closeSegmentIndex();if(
|
|
2443
|
+
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 v=function(z){var B,A,y,C,D,E,F,H,J,K,L,G,M,I,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(z.promise,4);case 4:A=X.yieldResult;
|
|
2444
|
+
if(z.aborted)return X.return();y=A.uri;y!=A.originalUri&&(C=t.getUris(),C.includes(y)||t.redirectUris.push(y));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");F=q.parseMediaVariables_(E,y);H=!1;(!q.codecInfoInManifest_&&q.config_.hls.disableCodecGuessing||
|
|
2445
|
+
q.needsClosedCaptionsDetection_&&d==B.VIDEO&&!q.config_.hls.disableClosedCaptionsDetection)&&0<D.segments.length&&(q.needsClosedCaptionsDetection_=!1,H=!0);J=!q.codecInfoInManifest_&&q.config_.hls.disableCodecGuessing;K=q.isLive_();return X.yield(q.convertParsedPlaylistIntoStreamInfo_(a,F,D,u,y,c,d,e,f,g,h,k,l,m,n,p,void 0,H,J),5);case 5:L=X.yieldResult;if(z.aborted)return X.return();G=L.stream;q.determineStartTime_(D);q.isLive_()&&!K&&q.changePresentationTimelineToLive_(D);t.minTimestamp=L.minTimestamp;
|
|
2446
|
+
t.maxTimestamp=L.maxTimestamp;t.canSkipSegments=L.canSkipSegments;t.canBlockReload=L.canBlockReload;t.hasEndList=L.hasEndList;t.mediaSequenceToStartTime=L.mediaSequenceToStartTime;t.nextMediaSequence=L.nextMediaSequence;t.nextPart=L.nextPart;t.loadedOnce=!0;r.segmentIndex=G.segmentIndex;r.encrypted=G.encrypted;r.drmInfos=G.drmInfos;r.keyIds=G.keyIds;r.mimeType=G.mimeType;r.bandwidth=r.bandwidth||G.bandwidth;r.codecs=r.codecs||G.codecs;r.closedCaptions=r.closedCaptions||G.closedCaptions;r.width=r.width||
|
|
2447
|
+
G.width;r.height=r.height||G.height;r.hdr=r.hdr||G.hdr;r.colorGamut=r.colorGamut||G.colorGamut;r.frameRate=r.frameRate||G.frameRate;"und"==r.language&&"und"!=G.language&&(r.language=G.language);r.language=r.language||G.language;r.channelsCount=r.channelsCount||G.channelsCount;r.audioSamplingRate=r.audioSamplingRate||G.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;
|
|
2448
|
+
q.manifest_&&M&&q.playerInterface_.makeTextStreamsForClosedCaptions(q.manifest_);if(d==B.VIDEO||d==B.AUDIO)for(I=$jscomp.makeIterator(q.uriToStreamInfosMap_.values()),N=I.next();!N.done;N=I.next())P=N.value,P.loadedOnce||P.type!=d||(P.stream.mimeType=G.mimeType,q.setFullTypeForStream_(P.stream));d==B.TEXT&&(O=G.segmentIndex.earliestReference())&&O.initSegmentReference&&(r.mimeType="application/mp4",q.setFullTypeForStream_(r));W=shaka.media.QualityObserver.createQualityInfo(r);r.segmentIndex.forEachTopLevelReference(function(Y){Y.initSegmentReference&&
|
|
2449
|
+
(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,F,u);q.manifest_&&(q.manifest_.startTime=q.startTime_);X.leaveTryBlock(0);break;case 2:R=X.enterCatchBlock();
|
|
2450
|
+
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()}})},w=null,x;r.createSegmentIndex=function(){if(w)return w;if(r.isAudioMuxedInVideo){var z=new shaka.media.SegmentIndex([]);r.segmentIndex=z;return Promise.resolve()}x=q.requestManifest_(t.getUris(),!0);return w=new Promise(function(B){B(v(x))})};r.closeSegmentIndex=function(){w&&!r.segmentIndex&&x.abort();r.segmentIndex&&(r.segmentIndex.release(),
|
|
2443
2451
|
r.segmentIndex=null);w=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};
|
|
2444
2452
|
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};
|
|
2445
2453
|
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)};
|
|
2446
2454
|
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==
|
|
2447
2455
|
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)};
|
|
2448
2456
|
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};
|
|
2449
|
-
shaka.hls.HlsParser.prototype.convertParsedPlaylistIntoStreamInfo_=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w){v=void 0===v?!0:v;w=void 0===w?!0:w;var x=this,
|
|
2450
|
-
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;
|
|
2451
|
-
F=
|
|
2452
|
-
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&&!
|
|
2453
|
-
"EXT-X-SERVER-CONTROL"))?null!=
|
|
2457
|
+
shaka.hls.HlsParser.prototype.convertParsedPlaylistIntoStreamInfo_=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w){v=void 0===v?!0:v;w=void 0===w?!0:w;var x=this,z,B,A,y,C,D,E,F,H,J,K,L,G,M,I,N,P,O,W,Q,S,V,R,T,X,Y,U,ba,aa;return $jscomp.asyncExecutePromiseGeneratorProgram(function(Z){switch(Z.nextAddress){case 1:z=c.segments||[];B=z.every(function(ca){return shaka.hls.Utils.getFirstTagWithName(ca.tags,"EXT-X-GAP")?!0:!1});if(!z.length||B)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
2458
|
+
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;y=x.createSegments_(c,A,b,d,g);C=y.segments;D=y.bandwidth;K=J=H=F=E=null;if(!(0<C.length&&v)){Z.jumpTo(2);break}return Z.yield(x.getBasicInfoFromSegments_(C),3);case 3:L=Z.yieldResult,g=L.type,h=L.language,m=L.channelCount,r=L.sampleRate,x.config_.disableText||(n=L.closedCaptions),
|
|
2459
|
+
F=L.height,E=L.width,H=L.videoRange,J=L.colorGamut,K=L.frameRate,w&&(u=L.mimeType,f=L.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:G=Z.yieldResult;M=G.drmInfos;I=G.keyIds;N=G.encrypted;P=G.aesEncrypted;if(N&&!M.length&&!P)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
2460
|
+
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=I;O.mimeType=u;D&&(O.bandwidth=D);x.setFullTypeForStream_(O);g==shaka.util.ManifestParserUtils.ContentType.VIDEO&&(E||F||H||J)&&x.addVideoAttributes_(O,E,F,K,H,null,J);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,
|
|
2461
|
+
"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})}})};
|
|
2454
2462
|
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}};
|
|
2455
2463
|
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:
|
|
2456
2464
|
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?
|
|
2457
2465
|
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,
|
|
2458
2466
|
fullMimeTypes:new Set,isAudioMuxedInVideo:!1};this.setFullTypeForStream_(b);return b};
|
|
2459
|
-
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,v,w,x,
|
|
2460
|
-
p.value,f.set(q,m);t=r=!1;u=[];v=new Set;w=$jscomp.makeIterator(f);x=w.next();case 2:if(x.done){M.jumpTo(4);break}
|
|
2461
|
-
b,c,D,d),8);case 8:
|
|
2467
|
+
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,v,w,x,z,B,A,y,C,D,E,F,H,J,K,L,G;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=
|
|
2468
|
+
p.value,f.set(q,m);t=r=!1;u=[];v=new Set;w=$jscomp.makeIterator(f);x=w.next();case 2:if(x.done){M.jumpTo(4);break}z=x.value;B=$jscomp.makeIterator(z);A=B.next().value;y=B.next().value;C=A;D=y;E=C.getRequiredAttrValue("METHOD");if("NONE"==E){M.jumpTo(3);break}r=!0;F=C.getAttributeValue("KEYFORMAT")||"identity";H=null;if(e.isAesMethod_(E)){t=!0;M.jumpTo(3);break}if("identity"!=F){H=(J=shaka.hls.HlsParser.KEYFORMATS_TO_DRM_PARSERS_.get(F))?J(C,b):null;M.jumpTo(6);break}return M.yield(e.identityDrmParser_(C,
|
|
2469
|
+
b,c,D,d),8);case 8:H=M.yieldResult;case 6:if(H){if(H.keyIds)for(K=$jscomp.makeIterator(H.keyIds),L=K.next();!L.done;L=K.next())G=L.value,v.add(G);u.push(H)}else shaka.log.warning("Unsupported HLS KEYFORMAT",F);case 3:x=w.next();M.jumpTo(2);break;case 4:return M.return({drmInfos:u,keyIds:v,encrypted:r,aesEncrypted:t})}})};
|
|
2462
2470
|
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,
|
|
2463
2471
|
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=
|
|
2464
2472
|
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,
|
|
@@ -2475,22 +2483,22 @@ l.id<e.id&&(h=this.parseAESDrmTag_(l,a,c,d)):"EXT-X-BYTERANGE"==l.name&&l.id<e.i
|
|
|
2475
2483
|
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)};
|
|
2476
2484
|
shaka.hls.HlsParser.prototype.createSegmentReference_=function(a,b,c,d,e,f,g,h,k){var l=shaka.hls.HlsParser;f=function(I){I=(new goog.Uri(I)).getPath().split(".").pop();var N=l.EXTENSION_MAP_BY_CONTENT_TYPE_.get(g).get(I);N||(N=l.RAW_FORMATS_TO_MIME_TYPES_.get(I));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,
|
|
2477
2485
|
"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 v=shaka.media.SegmentReference.Status.AVAILABLE;shaka.hls.Utils.getFirstTagWithName(m,"EXT-X-GAP")&&(this.manifest_.gapCount++,v=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,
|
|
2478
|
-
"EXTINF");if(!this.lowLatencyMode_)return null}var w=[];u=!1;var x=null,
|
|
2479
|
-
(
|
|
2480
|
-
function(I){return function(){null==I.uris$jscomp$25&&(goog.asserts.assert(I.pUri,"Partial uri should be defined!"),I.uris$jscomp$25=shaka.hls.Utils.constructSegmentUris(h(),I.pUri,e));return I.uris$jscomp$25}}(
|
|
2481
|
-
(F.initSegmentReference=null);w.push(F);A&&(A+=
|
|
2482
|
-
m=shaka.hls.Utils.getFirstTagWithName(m,"EXT-X-TILES"))&&(b=m.getRequiredAttrValue("LAYOUT"),(m=m.getAttributeValue("DURATION"))&&(
|
|
2483
|
-
!0,a.markAsByterangeOptimization(),
|
|
2484
|
-
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(F){return null!=F.getAttribute("START-DATE")}).sort(function(F,
|
|
2485
|
-
|
|
2486
|
-
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",v="YES"==g.getAttributeValue("END-ON-NEXT");if(null==n&&v){for(var w=b+1;w<a.length;w++){var x=a[w].getAttributeValue("CLASS")||"com.apple.quicktime.HLS";if(u==x){var
|
|
2487
|
-
"DURATION","END-ON-NEXT"];for(var A=[],
|
|
2486
|
+
"EXTINF");if(!this.lowLatencyMode_)return null}var w=[];u=!1;var x=null,z=!1,B=!1;if(this.lowLatencyMode_&&c.partialSegments.length){p=a&&window.ReadableStream&&this.config_.hls.allowLowLatencyByteRangeOptimization;for(var A=t,y={},C=0;C<c.partialSegments.length;y={uris$jscomp$25:void 0,pUri:void 0},C++){var D=c.partialSegments[C],E=0==C?b:w[w.length-1],F=0==C?d:E.endTime,H=Number(D.getAttributeValue("DURATION"))||this.partialTargetDuration_;if(H){var J=F+H,K=0,L=null;"EXT-X-PRELOAD-HINT"==D.name?
|
|
2487
|
+
(K=(K=D.getAttributeValue("BYTERANGE-START"))?Number(K):0,(E=D.getAttributeValue("BYTERANGE-LENGTH"))?L=K+Number(E)-1:K&&(L=Number.MAX_SAFE_INTEGER)):(K=D.getAttributeValue("BYTERANGE"),L=$jscomp.makeIterator(this.parseByteRange_(E,K)),K=L.next().value,L=L.next().value);y.pUri=D.getAttributeValue("URI");if(y.pUri){E=shaka.media.SegmentReference.Status.AVAILABLE;"YES"==D.getAttributeValue("GAP")&&(this.manifest_.gapCount++,E=shaka.media.SegmentReference.Status.MISSING,z=!0);y.uris$jscomp$25=null;var G=
|
|
2488
|
+
function(I){return function(){null==I.uris$jscomp$25&&(goog.asserts.assert(I.pUri,"Partial uri should be defined!"),I.uris$jscomp$25=shaka.hls.Utils.constructSegmentUris(h(),I.pUri,e));return I.uris$jscomp$25}}(y);p&&0<=K&&null!=L&&(x=G,u=!0);F=new shaka.media.SegmentReference(F,J,G,K,L,a,0,0,Infinity,[],"",null,A,E,k);"EXT-X-PRELOAD-HINT"==D.name&&(F.markAsPreload(),B=!0);"YES"!=D.getAttributeValue("INDEPENDENT")&&0<C&&F.markAsNonIndependent();if(y=f(y.pUri))F.mimeType=y,l.MIME_TYPES_WITHOUT_INIT_SEGMENT_.has(y)&&
|
|
2489
|
+
(F.initSegmentReference=null);w.push(F);A&&(A+=H)}}}}if(n){n=n.value.split(",");n=Number(n[0]);if(0==n)return null;p=d+n}else if(w.length)p=w[w.length-1].endTime;else return null;u&&(z||0!=w[0].startByte?(u=!1,x=null):w=[]);(z=shaka.hls.Utils.getFirstTagWithName(m,"EXT-X-BYTERANGE"))?(r=$jscomp.makeIterator(this.parseByteRange_(b,z.value)),q=r.next().value,r=r.next().value):w.length&&(q=w[0].startByte,r=w[w.length-1].endByte);b="";z=null;g==shaka.util.ManifestParserUtils.ContentType.IMAGE&&(b="1x1",
|
|
2490
|
+
m=shaka.hls.Utils.getFirstTagWithName(m,"EXT-X-TILES"))&&(b=m.getRequiredAttrValue("LAYOUT"),(m=m.getAttributeValue("DURATION"))&&(z=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,w,b,z,t,v,k,0<w.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_=
|
|
2491
|
+
!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]};
|
|
2492
|
+
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(F){return null!=F.getAttribute("START-DATE")}).sort(function(F,H){F=F.getRequiredAttrValue("START-DATE");H=H.getRequiredAttrValue("START-DATE");return F<
|
|
2493
|
+
H?-1:F>H?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")||
|
|
2494
|
+
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",v="YES"==g.getAttributeValue("END-ON-NEXT");if(null==n&&v){for(var w=b+1;w<a.length;w++){var x=a[w].getAttributeValue("CLASS")||"com.apple.quicktime.HLS";if(u==x){var z=a[w].getRequiredAttrValue("START-DATE"),B=shaka.util.TXml.parseDate(z);if(!isNaN(B)&&B&&B>l){n=Math.max(0,B-f);break}}}if(null==n)continue}w=["CLASS","START-DATE","END-DATE",
|
|
2495
|
+
"DURATION","END-ON-NEXT"];for(var A=[],y=$jscomp.makeIterator(g.attributes),C=y.next();!C.done;C=y.next()){var D=C.value;if(!w.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(F){shaka.log.warning("Ignoring DATERANGE with errors",
|
|
2488
2496
|
g.toString())}}}};
|
|
2489
2497
|
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_==
|
|
2490
2498
|
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],v=0==t?p:r.endTime;n=k+m+t;shaka.hls.Utils.getFirstTagWithName(u.tags,"EXT-X-DISCONTINUITY")&&h++;var w=$jscomp.makeIterator(u.tags);for(var x=w.next();!x.done;x=w.next())x=x.value,"EXT-X-KEY"==x.name&&(g=this.isAesMethod_(x.getRequiredAttrValue("METHOD"))?
|
|
2491
|
-
this.parseAESDrmTag_(x,a,d,c):void 0);b.set(n,v);w=this.getInitSegmentReference_(a,u.tags,d,c);if(v=this.createSegmentReference_(w,r,u,v,c,a,e,d,g))(r=shaka.hls.Utils.getFirstTagWithNameAsNumber(u.tags,"EXT-X-BITRATE"))?l.push({bitrate:r,duration:v.endTime-v.startTime}):l.length&&(r=l.pop(),r.duration+=v.endTime-v.startTime,l.push(r)),r=v,v.discontinuitySequence=h,this.ignoreManifestProgramDateTimeFor_(e)&&null!=this.minSequenceNumber_&&n<this.minSequenceNumber_||q.push(v)}a=void 0;l.length&&(a=l.reduce(function(
|
|
2492
|
-
|
|
2493
|
-
|
|
2499
|
+
this.parseAESDrmTag_(x,a,d,c):void 0);b.set(n,v);w=this.getInitSegmentReference_(a,u.tags,d,c);if(v=this.createSegmentReference_(w,r,u,v,c,a,e,d,g))(r=shaka.hls.Utils.getFirstTagWithNameAsNumber(u.tags,"EXT-X-BITRATE"))?l.push({bitrate:r,duration:v.endTime-v.startTime}):l.length&&(r=l.pop(),r.duration+=v.endTime-v.startTime,l.push(r)),r=v,v.discontinuitySequence=h,this.ignoreManifestProgramDateTimeFor_(e)&&null!=this.minSequenceNumber_&&n<this.minSequenceNumber_||q.push(v)}a=void 0;l.length&&(a=l.reduce(function(z,
|
|
2500
|
+
B){return z+B.duration},0),a=Math.round(l.reduce(function(z,B){return z+B.bitrate*B.duration},0)/a*1E3));if(l=q.some(function(z){return null!=z.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(z){return function(){var B=q[z.forwardI];if(B){if(null!=B.syncTime)return B.syncTime+z.forwardAdd;z.forwardAdd-=
|
|
2501
|
+
B.endTime-B.startTime;z.forwardI+=1}return null}}(b),b.backwardAdd=0,b.backwardI=c,f=function(z){return function(){var B=q[z.backwardI];if(B){B!=z.reference$jscomp$46&&(z.backwardAdd+=B.endTime-B.startTime);if(null!=B.syncTime)return B.syncTime+z.backwardAdd;--z.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=
|
|
2494
2502
|
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}};
|
|
2495
2503
|
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"};
|
|
2496
2504
|
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}};
|
|
@@ -2512,10 +2520,10 @@ shaka.hls.HlsParser.playreadyDrmParser_=function(a){var b=a.getRequiredAttrValue
|
|
|
2512
2520
|
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};
|
|
2513
2521
|
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}]);
|
|
2514
2522
|
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};
|
|
2515
|
-
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,v,w,x,
|
|
2516
|
-
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),
|
|
2517
|
-
|
|
2518
|
-
d.getStartByte(),d.getEndByte(),f.config_.retryParameters);w=shaka.net.NetworkingEngine.RequestType.SEGMENT;x=shaka.net.NetworkingEngine.AdvancedRequestType.INIT_SEGMENT;return
|
|
2523
|
+
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,v,w,x,z,B,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(y){switch(y.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,
|
|
2524
|
+
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),y.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()));
|
|
2525
|
+
y.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 y.yield(f.identityKeyMap_.get(m),3);case 3:r=y.yieldResult,l=shaka.util.Uint8ArrayUtils.toHex(r.data);case 2:t="00000000000000000000000000000000";if(!d){y.jumpTo(4);break}if(f.identityKidMap_.has(d)){u=f.identityKidMap_.get(d);y.jumpTo(5);break}v=shaka.util.Networking.createSegmentRequest(d.getUris(),
|
|
2526
|
+
d.getStartByte(),d.getEndByte(),f.config_.retryParameters);w=shaka.net.NetworkingEngine.RequestType.SEGMENT;x=shaka.net.NetworkingEngine.AdvancedRequestType.INIT_SEGMENT;return y.yield(f.makeNetworkRequest_(v,w,{type:x}).promise,6);case 6:z=y.yieldResult,u=shaka.media.SegmentUtils.getDefaultKID(z.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"),y.return(shaka.util.ManifestParserUtils.createDrmInfoFromClearKeys(B,A))}})};
|
|
2519
2527
|
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");
|
|
2520
2528
|
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");
|
|
2521
2529
|
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");
|
|
@@ -2590,7 +2598,7 @@ g.parsePositiveInt);g=g.parseAttr(b,"SamplingRate",g.parsePositiveInt);var u=e.d
|
|
|
2590
2598
|
external:!1,fastSwitching:!1,fullMimeTypes:new Set,isAudioMuxedInVideo:!1};if(d=a.attributes.Subtype)(d=k.ROLE_MAPPING_.get(d))&&w.roles.push(d),"main"===d&&(w.primary=!0);d=b.attributes.FourCC;if(null===d||""===d)d=a.attributes.FourCC;if(!d)if("audio"===l)d="AAC";else if("video"===l)return shaka.log.alwaysWarn('FourCC is not defined whereas it is required for a QualityLevel element for a StreamIndex of type "video"'),null;if(!k.SUPPORTED_CODECS_.includes(d.toUpperCase()))return shaka.log.alwaysWarn("Codec not supported:",
|
|
2591
2599
|
d),null;k=this.getCodecPrivateData_(b,l,d,w);w.mssPrivateData.codecPrivateData=k;switch(l){case "audio":if(!k)return shaka.log.alwaysWarn("Quality unsupported without CodecPrivateData",l),null;w.type=h.AUDIO;w.mimeType="mss/audio/mp4";w.codecs=this.getAACCodec_(b,d,k);break;case "video":if(!k)return shaka.log.alwaysWarn("Quality unsupported without CodecPrivateData",l),null;w.type=h.VIDEO;w.mimeType="mss/video/mp4";w.codecs=this.getH264Codec_(b,k);break;case "text":if(w.type=h.TEXT,w.mimeType="application/mp4",
|
|
2592
2600
|
"TTML"===d||"DFXP"===d)w.codecs="stpp"}w.fullMimeTypes.add(shaka.util.MimeUtils.getFullType(w.mimeType,w.codecs));w.createSegmentIndex=function(){if(w.segmentIndex)return Promise.resolve();if(f.initSegmentDataByStreamId_.has(w.id))var x=f.initSegmentDataByStreamId_.get(w.id);else x=[],w.type==h.VIDEO&&(x=w.mssPrivateData.codecPrivateData.split("00000001").slice(1)),x={id:w.id,type:w.type,codecs:w.codecs,encrypted:w.encrypted,timescale:w.mssPrivateData.timescale,duration:w.mssPrivateData.duration,
|
|
2593
|
-
videoNalus:x,audioConfig:new Uint8Array([]),videoConfig:new Uint8Array([]),hSpacing:0,vSpacing:0,data:null,stream:w},x=(new shaka.util.Mp4Generator([x])).initSegment(),f.initSegmentDataByStreamId_.set(w.id,x);var
|
|
2601
|
+
videoNalus:x,audioConfig:new Uint8Array([]),videoConfig:new Uint8Array([]),hSpacing:0,vSpacing:0,data:null,stream:w},x=(new shaka.util.Mp4Generator([x])).initSegment(),f.initSegmentDataByStreamId_.set(w.id,x);var z=shaka.media.QualityObserver.createQualityInfo(w);x=new shaka.media.InitSegmentReference(function(){return[]},0,null,z,w.mssPrivateData.timescale,x);x=f.createSegments_(x,w,a,c);w.segmentIndex=new shaka.media.SegmentIndex(x);return Promise.resolve()};w.closeSegmentIndex=function(){w.segmentIndex&&
|
|
2594
2602
|
(w.segmentIndex.release(),w.segmentIndex=null)};return w};
|
|
2595
2603
|
shaka.mss.MssParser.prototype.getCodecPrivateData_=function(a,b,c,d){if(a=a.attributes.CodecPrivateData)return a;if("audio"!==b)return null;b=d.channelsCount||2;a=d.audioSamplingRate||44100;var e={96E3:0,88200:1,64E3:2,48E3:3,44100:4,32E3:5,24E3:6,22050:7,16E3:8,12E3:9,11025:10,8E3:11,7350:12};d=e[a];if("AACH"===c)return c=new Uint8Array(4),a=e[2*a],c[0]=40|d>>1,c[1]=d<<7|b<<3|a>>1,c[2]=a<<7|8,c[3]=0,b=new Uint16Array(2),b[0]=(c[0]<<8)+c[1],b[1]=(c[2]<<8)+c[3],b[0].toString(16)+b[1].toString(16);
|
|
2596
2604
|
c=new Uint8Array(2);c[0]=16|d>>1;c[1]=d<<7|b<<3;b=new Uint16Array(1);b[0]=(c[0]<<8)+c[1];return b[0].toString(16)};shaka.mss.MssParser.prototype.getAACCodec_=function(a,b,c){a=0;"AACH"===b&&(a=5);c?0===a&&(a=(parseInt(c.substr(0,2),16)&248)>>3):(a=2,"AACH"===b&&(a=5));return"mp4a.40."+a};shaka.mss.MssParser.prototype.getH264Codec_=function(a,b){a=/00000001[0-9]7/.exec(b);return a.length&&b?"avc1."+b.substr(b.indexOf(a[0])+10,6):""};
|
|
@@ -2605,15 +2613,15 @@ shaka.net.HttpPluginUtils.makeResponse=function(a,b,c,d,e,f,g){goog.asserts.asse
|
|
|
2605
2613
|
shaka.util.Error.Code.BAD_HTTP_STATUS,d,c,f,a,g,e||d);};shaka.net.HttpFetchPlugin=function(){};
|
|
2606
2614
|
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,
|
|
2607
2615
|
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};
|
|
2608
|
-
shaka.net.HttpFetchPlugin.request_=function(a,b,c,d,e,f,g,h,k){var l,m,n,p,q,r,t,u,v,w,x,
|
|
2609
|
-
"non-HEAD responses should have a body");u=n.clone().body.getReader();w=(v=n.headers.get("Content-Length"))?parseInt(v,10):0;x=function(
|
|
2610
|
-
D.value.byteLength;if(!h){
|
|
2611
|
-
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,
|
|
2616
|
+
shaka.net.HttpFetchPlugin.request_=function(a,b,c,d,e,f,g,h,k){var l,m,n,p,q,r,t,u,v,w,x,z,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,
|
|
2617
|
+
"non-HEAD responses should have a body");u=n.clone().body.getReader();w=(v=n.headers.get("Content-Length"))?parseInt(v,10):0;x=function(y){var C=function(){var D,E,F,H,J;return $jscomp.asyncExecutePromiseGeneratorProgram(function(K){switch(K.nextAddress){case 1:return K.setCatchFinallyBlocks(2),K.yield(u.read(),4);case 4:D=K.yieldResult;K.leaveTryBlock(3);break;case 2:return E=K.enterCatchBlock(),shaka.log.v1("error reading from stream",E.message),K.return();case 3:if(D.done){K.jumpTo(5);break}q+=
|
|
2618
|
+
D.value.byteLength;if(!h){K.jumpTo(5);break}return K.yield(h(D.value),5);case 5:F=Date.now();H=q-r;if(100<F-t&&H>=k||D.done)J=D.done?0:w-q,f(F-t,H,J),r=q,t=F;D.done?(goog.asserts.assert(!D.value,'readObj should be unset when "done" is true.'),y.close()):(y.enqueue(D.value),C());K.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:z=A.enterCatchBlock();if(e.canceled)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,
|
|
2619
|
+
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,z,c);case 3:return B=shaka.net.HttpFetchPlugin.headersToGenericObject_(n.headers),A.return(shaka.net.HttpPluginUtils.makeResponse(B,p,n.status,
|
|
2612
2620
|
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);
|
|
2613
2621
|
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;
|
|
2614
2622
|
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(){};
|
|
2615
2623
|
shaka.net.HttpXHRPlugin.parse=function(a,b,c,d,e,f){var g=new shaka.net.HttpXHRPlugin.Xhr_,h=Date.now(),k=0,l=new Promise(function(m,n){g.open(b.method,a,!0);g.responseType="arraybuffer";g.timeout=b.retryParameters.timeout;g.withCredentials=b.allowCrossSiteCredentials;g.onabort=function(){n(new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.OPERATION_ABORTED,a,c))};var p=!1;g.onreadystatechange=function(t){2!=g.readyState||p||(t=shaka.net.HttpXHRPlugin.headersToGenericObject_(g),
|
|
2616
|
-
e(t),p=!0)};g.onload=function(t){var u=shaka.net.HttpXHRPlugin.headersToGenericObject_(g);goog.asserts.assert(g.response instanceof ArrayBuffer,"XHR should have a response by now!");var v=g.response;try{var w=Date.now();d(w-h,t.loaded-k,0);var x=shaka.net.HttpPluginUtils.makeResponse(u,v,g.status,a,g.responseURL,b,c);m(x)}catch(
|
|
2624
|
+
e(t),p=!0)};g.onload=function(t){var u=shaka.net.HttpXHRPlugin.headersToGenericObject_(g);goog.asserts.assert(g.response instanceof ArrayBuffer,"XHR should have a response by now!");var v=g.response;try{var w=Date.now();d(w-h,t.loaded-k,0);var x=shaka.net.HttpPluginUtils.makeResponse(u,v,g.status,a,g.responseURL,b,c);m(x)}catch(z){goog.asserts.assert(z instanceof shaka.util.Error,"Wrong error type!"),n(z)}};g.onerror=function(t){n(new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,
|
|
2617
2625
|
shaka.util.Error.Code.HTTP_ERROR,a,t,c))};g.ontimeout=function(t){n(new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.TIMEOUT,a,c))};g.onprogress=function(t){var u=Date.now(),v=f.minBytesForProgressEvents||0,w=t.loaded-k;if(100<u-h&&w>=v||t.lengthComputable&&t.loaded==t.total)d(u-h,w,4==g.readyState?0:t.total-t.loaded),k=t.loaded,h=u};for(var q in b.headers){var r=q.toLowerCase();g.setRequestHeader(r,b.headers[q])}g.send(b.body)});return new shaka.util.AbortableOperation(l,
|
|
2618
2626
|
function(){g.abort();return Promise.resolve()})};shaka.net.HttpXHRPlugin.headersToGenericObject_=function(a){var b=a.getAllResponseHeaders().trim().split("\r\n");a={};b=$jscomp.makeIterator(b);for(var c=b.next();!c.done;c=b.next())c=c.value.split(": "),a[c[0].toLowerCase()]=c.slice(1).join(": ");return a};goog.exportSymbol("shaka.net.HttpXHRPlugin",shaka.net.HttpXHRPlugin);goog.exportProperty(shaka.net.HttpXHRPlugin,"parse",shaka.net.HttpXHRPlugin.parse);shaka.net.HttpXHRPlugin.Xhr_=window.XMLHttpRequest;
|
|
2619
2627
|
shaka.net.NetworkingEngine.registerScheme("http",shaka.net.HttpXHRPlugin.parse,shaka.net.NetworkingEngine.PluginPriority.FALLBACK,!0);shaka.net.NetworkingEngine.registerScheme("https",shaka.net.HttpXHRPlugin.parse,shaka.net.NetworkingEngine.PluginPriority.FALLBACK,!0);shaka.net.NetworkingEngine.registerScheme("blob",shaka.net.HttpXHRPlugin.parse,shaka.net.NetworkingEngine.PluginPriority.FALLBACK,!0);shaka.offline={};shaka.offline.DownloadInfo=function(a,b,c,d,e){this.ref=a;this.estimateId=b;this.groupId=c;this.isInitSegment=d;this.refPosition=e};shaka.offline.DownloadInfo.idForSegmentRef=function(a){var b=a.getSegmentData();return b?shaka.util.Uint8ArrayUtils.toBase64(b):a.getUris().map(function(c){return"{"+encodeURI(c.split("#xywh=")[0])+"}"}).join("")+":"+a.startByte+":"+a.endByte};shaka.offline.DownloadInfo.prototype.getRefId=function(){return shaka.offline.DownloadInfo.idForSegmentRef(this.ref)};
|
|
@@ -2638,9 +2646,9 @@ shaka.offline.indexeddb.BaseStorageCell.prototype.getAllManifests=function(){var
|
|
|
2638
2646
|
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))};
|
|
2639
2647
|
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))};
|
|
2640
2648
|
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)})};
|
|
2641
|
-
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$
|
|
2642
|
-
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$
|
|
2643
|
-
g.push(n.key$jscomp$
|
|
2649
|
+
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$145:void 0},e=b.next())f.key$jscomp$145=e.value,d.delete(f.key$jscomp$145).onsuccess=function(g){return function(){return c(g.key$jscomp$145)}}(f);return a.promise()};
|
|
2650
|
+
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$146:void 0},k=h.next())l.key$jscomp$146=k.value,l.request$jscomp$61=e.get(l.key$jscomp$146),l.request$jscomp$61.onsuccess=function(n){return function(){void 0==n.request$jscomp$61.result&&
|
|
2651
|
+
g.push(n.key$jscomp$146);f[n.key$jscomp$146]=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()};
|
|
2644
2652
|
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)})};
|
|
2645
2653
|
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()};
|
|
2646
2654
|
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)};
|
|
@@ -2725,25 +2733,25 @@ shaka.offline.Storage.prototype.configure=function(a,b){goog.asserts.assert("obj
|
|
|
2725
2733
|
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_};
|
|
2726
2734
|
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|"),
|
|
2727
2735
|
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)};
|
|
2728
|
-
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,v,w,x,
|
|
2729
|
-
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);v=u.next();case 7:if(v.done){
|
|
2730
|
-
r.variants),
|
|
2731
|
-
A.language,A.kind,A.mime,A.codecs),14);case 14:
|
|
2732
|
-
|
|
2733
|
-
F));case 3:return
|
|
2734
|
-
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,v,w,x,
|
|
2735
|
-
M.nextAddress){
|
|
2736
|
-
|
|
2737
|
-
if(!l.getManifestIsEncrypted_(g)||!r||l.getManifestIncludesInitData_(g)){
|
|
2738
|
-
b,c,v,w,function(){return p()}),9);case 9:p(),goog.asserts.assert(!c.isIncomplete,"The manifest should be complete by now");case 7:
|
|
2736
|
+
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,v,w,x,z,B,A,y,C,D,E,F,H,J,K,L;return $jscomp.asyncExecutePromiseGeneratorProgram(function(G){switch(G.nextAddress){case 1:return h.requireSupport_(),l=k=null,m=new shaka.offline.StorageMuxer,q=p=n=null,G.setCatchFinallyBlocks(2,3),G.yield(e(),5);case 5:return k=G.yieldResult,G.yield(h.parseManifest(a,k,f),6);case 6:r=G.yieldResult;h.ensureNotDestroyed_();t=!r.presentationTimeline.isLive()&&!r.presentationTimeline.isInProgress();
|
|
2737
|
+
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);v=u.next();case 7:if(v.done){G.jumpTo(9);break}w=v.value;return G.yield(h.createExternalImageStream_(w,r),10);case 10:x=G.yieldResult;r.imageStreams.push(x);h.ensureNotDestroyed_();v=u.next();G.jumpTo(7);break;case 9:z=$jscomp.makeIterator(d),B=z.next();case 11:if(B.done)return shaka.drm.DrmEngine.configureClearKey(f.drm.clearKeys,
|
|
2738
|
+
r.variants),C=r.variants.some(function(M){if(M.audio)for(var I=$jscomp.makeIterator(M.audio.drmInfos),N=I.next();!N.done;N=I.next())if(N.value.licenseServerUri.startsWith("data:"))return!0;if(M.video)for(M=$jscomp.makeIterator(M.video.drmInfos),I=M.next();!I.done;I=M.next())if(I.value.licenseServerUri.startsWith("data:"))return!0;return!1}),D=f.offline.usePersistentLicense,C&&(D=!1),G.yield(h.createDrmEngine(r,function(M){q=q||M},f,D),15);A=B.value;return G.yield(h.createExternalTextStream_(r,A.uri,
|
|
2739
|
+
A.language,A.kind,A.mime,A.codecs),14);case 14:y=G.yieldResult;r.textStreams.push(y);h.ensureNotDestroyed_();B=z.next();G.jumpTo(11);break;case 15:l=G.yieldResult;h.ensureNotDestroyed_();if(q)throw q;return G.yield(h.filterManifest_(r,l,f,D),16);case 16:return G.yield(m.init(),17);case 17:return h.ensureNotDestroyed_(),G.yield(m.getActive(),18);case 18:return n=G.yieldResult,h.ensureNotDestroyed_(),goog.asserts.assert(l,"drmEngine should be non-null here."),E=h.makeManifestDB_(l,r,a,b,f,g,D),F=E.manifestDB,
|
|
2740
|
+
H=E.toDownload,G.yield(n.cell.addManifests([F]),19);case 19:J=G.yieldResult;h.ensureNotDestroyed_();p=J[0];goog.asserts.assert(l,"drmEngine should be non-null here.");h.ensureNotDestroyed_();if(q)throw q;return G.yield(h.downloadSegments_(H,p,F,g,f,n.cell,r,l,D),20);case 20:return h.ensureNotDestroyed_(),h.setManifestDrmFields_(r,F,l,D),G.yield(n.cell.updateManifest(p,F),21);case 21:return h.ensureNotDestroyed_(),K=shaka.offline.OfflineUri.manifest(n.path.mechanism,n.path.cell,p),G.return(shaka.offline.StoredContentUtils.fromManifestDB(K,
|
|
2741
|
+
F));case 3:return G.enterFinallyBlock(),G.yield(m.destroy(),22);case 22:if(!k){G.jumpTo(23);break}return G.yield(k.stop(),23);case 23:if(!l){G.jumpTo(25);break}return G.yield(l.destroy(),25);case 25:G.leaveFinallyBlock(0);break;case 2:L=G.enterCatchBlock();if(null==p){G.jumpTo(27);break}return G.yield(shaka.offline.Storage.cleanStoredManifest(p),27);case 27:throw q||L;}})};
|
|
2742
|
+
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,v,w,x,z;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,y){var C,D,E,F,H,J,K,L,G;return $jscomp.asyncExecutePromiseGeneratorProgram(function(M){if(1==
|
|
2743
|
+
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(),F=E.download$jscomp$1.makeSegmentRequest(e),H=E.download$jscomp$1.estimateId,J=E.download$jscomp$1.isInitSegment,K=function(I){return function(N){var P,O,W;return $jscomp.asyncExecutePromiseGeneratorProgram(function(Q){switch(Q.nextAddress){case 1:P=I.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,
|
|
2744
|
+
P.aesKey,I.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),L=E.download$jscomp$1.ref,(G=L.getSegmentData())?d.queueData(E.download$jscomp$1.groupId,G,H,J,K):d.queue(E.download$jscomp$1.groupId,F,H,J,K);return M.yield(d.waitToFinish(),2)}p();if(!y||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);
|
|
2745
|
+
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(),v=m,w=n,m={},n=0,B.yield(shaka.offline.Storage.assignSegmentsToManifest(f,
|
|
2746
|
+
b,c,v,w,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(),z=Object.values(m),B.yield(f.removeSegments(z,function(A){}),10);case 10:throw x;}})};
|
|
2739
2747
|
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)}})};
|
|
2740
2748
|
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(v){switch(v.nextAddress){case 1:g=!1;v.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?
|
|
2741
2749
|
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 v.yield(a.updateManifest(b,c),4);case 4:g=!0;f();v.leaveTryBlock(0);break;case 2:return t=v.enterCatchBlock(),v.yield(shaka.offline.Storage.cleanStoredManifest(b),5);case 5:if(g){v.jumpTo(6);break}u=Object.values(d);return v.yield(a.removeSegments(u,function(w){}),6);case 6:throw t;}})};
|
|
2742
|
-
shaka.offline.Storage.prototype.filterManifest_=function(a,b,c,d){var e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
2750
|
+
shaka.offline.Storage.prototype.filterManifest_=function(a,b,c,d){var e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z,B,A,y,C,D,E,F,H,J,K,L,G,M;return $jscomp.asyncExecutePromiseGeneratorProgram(function(I){switch(I.nextAddress){case 1:return e={width:Infinity,height:Infinity},shaka.util.StreamUtils.filterByRestrictions(a,c.restrictions,e),I.yield(shaka.util.StreamUtils.filterManifestByMediaCapabilities(b,a,d,c.drm.preferredKeySystems,c.drm.keySystemsMapping),2);case 2:f=[];g=c.preferredDecodingAttributes;h=c.preferredVideoCodecs;
|
|
2743
2751
|
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);
|
|
2744
|
-
for(v=u.next();!v.done;v=u.next())w=v.value,f.push(shaka.util.StreamUtils.imageStreamToTrack(w));return I.yield(c.offline.trackSelectionCallback(f),3);case 3:x=I.yieldResult;
|
|
2745
|
-
shaka.util.Error.Code.STORAGE_LIMIT_REACHED);I.leaveTryBlock(5);break;case 4:F=I.enterCatchBlock();if(F instanceof shaka.util.Error)throw F;shaka.log.warning("downloadSizeCallback has produced an unexpected error",F);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:
|
|
2746
|
-
"text"==M.type&&J.add(M.id),"image"==M.type&&
|
|
2752
|
+
for(v=u.next();!v.done;v=u.next())w=v.value,f.push(shaka.util.StreamUtils.imageStreamToTrack(w));return I.yield(c.offline.trackSelectionCallback(f),3);case 3:x=I.yieldResult;z=a.presentationTimeline.getDuration();B=0;A=$jscomp.makeIterator(x);for(y=A.next();!y.done;y=A.next())C=y.value,D=C.bandwidth*z/8,B+=D;I.setCatchFinallyBlocks(4);return I.yield(c.offline.downloadSizeCallback(B),6);case 6:E=I.yieldResult;if(!E)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,
|
|
2753
|
+
shaka.util.Error.Code.STORAGE_LIMIT_REACHED);I.leaveTryBlock(5);break;case 4:F=I.enterCatchBlock();if(F instanceof shaka.util.Error)throw F;shaka.log.warning("downloadSizeCallback has produced an unexpected error",F);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:H=new Set;J=new Set;K=new Set;L=$jscomp.makeIterator(x);for(G=L.next();!G.done;G=L.next())M=G.value,"variant"==M.type&&H.add(M.id),
|
|
2754
|
+
"text"==M.type&&J.add(M.id),"image"==M.type&&K.add(M.id);a.variants=a.variants.filter(function(N){return H.has(N.id)});a.textStreams=a.textStreams.filter(function(N){return J.has(N.id)});a.imageStreams=a.imageStreams.filter(function(N){return K.has(N.id)});shaka.offline.Storage.validateManifest_(a);I.jumpToEnd()}})};
|
|
2747
2755
|
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),
|
|
2748
2756
|
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?
|
|
2749
2757
|
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})};
|
|
@@ -2912,10 +2920,10 @@ g,"subFrameRate"),p=f.getAttributeNSList(l,g,"frameRateMultiplier"),q=f.getAttri
|
|
|
2912
2920
|
"metadata")[0];p=(p?p.children:[]).filter(function(v){return"\n"!=v});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,
|
|
2913
2921
|
"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};
|
|
2914
2922
|
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 v=null,w=$jscomp.makeIterator(shaka.text.TtmlTextParser.smpteNsList_),x=w.next();!x.done&&!(v=shaka.text.TtmlTextParser.getElementsFromCollection_(u,"backgroundImage",d,"#",x.value)[0]);x=w.next());
|
|
2915
|
-
w=null;x=q.getAttributeNSList(u,shaka.text.TtmlTextParser.smpteNsList_,"backgroundImage");var
|
|
2916
|
-
A=
|
|
2917
|
-
p=null==p?Infinity:p+b.periodStart;n=Math.max(n,b.segmentStart);p=Math.min(p,b.segmentEnd);if(!
|
|
2918
|
-
k=shaka.text.TtmlTextParser.getElementsFromCollection_(u,"region",f,"")[0];if(u.attributes.region&&k&&k.attributes["xml:id"]){var
|
|
2923
|
+
w=null;x=q.getAttributeNSList(u,shaka.text.TtmlTextParser.smpteNsList_,"backgroundImage");var z=/^(urn:)(mpeg:[a-z0-9][a-z0-9-]{0,31}:)(subs:)([0-9]+)$/;if(x&&z.test(x)){w=parseInt(x.split(":").pop(),10)-1;if(w>=p.length)return null;w=p[w]}else n&&x&&!x.startsWith("#")&&(z=new goog.Uri(n),x=new goog.Uri(x),(x=z.resolve(x).toString())&&(w=x));if("p"==a.tagName||v||w)m=!0;a=m;x="default"==(u.attributes["xml:space"]||(h?"default":"preserve"));z=u.children.every(q.isText);h=[];if(!z)for(var B=$jscomp.makeIterator(u.children),
|
|
2924
|
+
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;
|
|
2925
|
+
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="";z&&(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);
|
|
2926
|
+
k=shaka.text.TtmlTextParser.getElementsFromCollection_(u,"region",f,"")[0];if(u.attributes.region&&k&&k.attributes["xml:id"]){var y=k.attributes["xml:id"];r.region=g.filter(function(C){return C.id==y})[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,v,w,e,a,0==h.length);return r};
|
|
2919
2927
|
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&&
|
|
2920
2928
|
(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,
|
|
2921
2929
|
e.widthUnits=shaka.text.CueRegion.units.PERCENTAGE,e.height=100-e.viewportAnchorY,e.heightUnits=shaka.text.CueRegion.units.PERCENTAGE):(null!=f&&(e.viewportAnchorY=100*e.viewportAnchorY/f),null!=c&&(e.viewportAnchorX=100*e.viewportAnchorX/c)),e.viewportAnchorUnits=g||null!=c?shaka.text.CueRegion.units.PERCENTAGE:shaka.text.CueRegion.units.PX;return e};
|
|
@@ -3042,15 +3050,15 @@ shaka.transmuxer.H265.parseInfo=function(a){var b=shaka.transmuxer.H265;if(!a.le
|
|
|
3042
3050
|
generalProfileSpace:a.generalProfileSpace,generalTierFlag:a.generalTierFlag,generalLevelIdc:a.generalLevelIdc,generalProfileIdc:a.generalProfileIdc,generalProfileCompatibilityFlags1:a.generalProfileCompatibilityFlags1,generalProfileCompatibilityFlags2:a.generalProfileCompatibilityFlags2,generalProfileCompatibilityFlags3:a.generalProfileCompatibilityFlags3,generalProfileCompatibilityFlags4:a.generalProfileCompatibilityFlags4,generalConstraintIndicatorFlags1:a.generalConstraintIndicatorFlags1,generalConstraintIndicatorFlags2:a.generalConstraintIndicatorFlags2,
|
|
3043
3051
|
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});
|
|
3044
3052
|
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}};
|
|
3045
|
-
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(),v=a.readUnsignedByte(),w=a.readUnsignedByte(),x=a.readUnsignedByte(),
|
|
3046
|
-
|
|
3047
|
-
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 F=0;F<(3===E?2:6);F++)if(a.readBoolean()){var
|
|
3048
|
-
for(var J=0;J<
|
|
3049
|
-
F=
|
|
3050
|
-
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(
|
|
3051
|
-
a.readBoolean())){
|
|
3052
|
-
a.readUnsignedExpGolomb());a.readBoolean()}if(J){for(M=0;M<
|
|
3053
|
-
generalProfileCompatibilityFlags2:m,generalProfileCompatibilityFlags3:n,generalProfileCompatibilityFlags4:p,generalConstraintIndicatorFlags1:q,generalConstraintIndicatorFlags2:r,generalConstraintIndicatorFlags3:t,generalConstraintIndicatorFlags4:u,generalConstraintIndicatorFlags5:v,generalConstraintIndicatorFlags6:w,minSpatialSegmentationIdc:F,constantFrameRate:0,chromaFormatIdc:
|
|
3053
|
+
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(),v=a.readUnsignedByte(),w=a.readUnsignedByte(),x=a.readUnsignedByte(),z=[],
|
|
3054
|
+
B=[],A=0;A<f;A++)z.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++)z[A]&&a.readBits(88),B[A]&&a.readUnsignedByte();a.readUnsignedExpGolomb();z=a.readUnsignedExpGolomb();3==z&&a.readBits(1);B=a.readUnsignedExpGolomb();A=a.readUnsignedExpGolomb();a.readBoolean()&&(b+=a.readUnsignedExpGolomb(),c+=a.readUnsignedExpGolomb(),d+=a.readUnsignedExpGolomb(),e+=a.readUnsignedExpGolomb());var y=a.readUnsignedExpGolomb(),C=a.readUnsignedExpGolomb(),D=a.readUnsignedExpGolomb();
|
|
3055
|
+
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 F=0;F<(3===E?2:6);F++)if(a.readBoolean()){var H=Math.min(64,1<<4+(E<<1));1<E&&a.readExpGolomb();
|
|
3056
|
+
for(var J=0;J<H;J++)a.readExpGolomb()}else a.readUnsignedExpGolomb();a.readBoolean();a.readBoolean();a.readBoolean()&&(a.readUnsignedByte(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readBoolean());E=a.readUnsignedExpGolomb();for(H=F=0;H<E;H++)if(J=!1,0!==H&&(J=a.readBoolean()),J){H===E&&a.readUnsignedExpGolomb();a.readBoolean();a.readUnsignedExpGolomb();for(var K=J=0;K<=F;K++){var L=a.readBoolean(),G=!1;L||(G=a.readBoolean());(L||G)&&J++}F=J}else{K=a.readUnsignedExpGolomb();J=a.readUnsignedExpGolomb();
|
|
3057
|
+
F=K+J;for(L=0;L<K;L++)a.readUnsignedExpGolomb(),a.readBoolean();for(K=0;K<J;K++)a.readUnsignedExpGolomb(),a.readBoolean()}if(a.readBoolean())for(E=a.readUnsignedExpGolomb(),F=0;F<E;F++){for(H=0;H<D+4;H++)a.readBits(1);a.readBits(1)}E=D=1;F=0;a.readBoolean();a.readBoolean();if(a.readBoolean()){a.readBoolean()&&(H=a.readUnsignedByte(),J=[1,12,10,16,40,24,20,32,80,18,15,64,160,4,3,2],K=[1,11,11,11,33,11,11,11,33,11,11,33,99,3,2,1],0<H&&16>=H?(D=J[H-1],E=K[H-1]):255===H&&(D=a.readBits(16),E=a.readBits(16)));
|
|
3058
|
+
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(H=a.readBoolean())a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb();if(a.readBoolean()&&(a.readBits(32),a.readBits(32),a.readBoolean()&&a.readUnsignedExpGolomb(),
|
|
3059
|
+
a.readBoolean())){K=!1;H=a.readBoolean();J=a.readBoolean();if(H||J){if(K=a.readBoolean())a.readUnsignedByte(),a.readBits(5),a.readBoolean(),a.readBits(5);a.readBits(4);a.readBits(4);K&&a.readBits(4);a.readBits(5);a.readBits(5);a.readBits(5)}for(L=0;L<=f;L++){var M=!0;G=1;a.readBoolean()||(M=a.readBoolean());var I=!1;M?a.readUnsignedExpGolomb():I=a.readBoolean();I||(G=a.readUnsignedExpGolomb()+1);if(H){for(M=0;M<G;M++)a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),K&&(a.readUnsignedExpGolomb(),
|
|
3060
|
+
a.readUnsignedExpGolomb());a.readBoolean()}if(J){for(M=0;M<G;M++)a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),K&&(a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb());a.readBoolean()}}}a.readBoolean()&&(a.readBoolean(),a.readBoolean(),a.readBoolean(),F=a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb())}return{generalLevelIdc:x,generalProfileSpace:g,generalTierFlag:h,generalProfileIdc:k,generalProfileCompatibilityFlags1:l,
|
|
3061
|
+
generalProfileCompatibilityFlags2:m,generalProfileCompatibilityFlags3:n,generalProfileCompatibilityFlags4:p,generalConstraintIndicatorFlags1:q,generalConstraintIndicatorFlags2:r,generalConstraintIndicatorFlags3:t,generalConstraintIndicatorFlags4:u,generalConstraintIndicatorFlags5:v,generalConstraintIndicatorFlags6:w,minSpatialSegmentationIdc:F,constantFrameRate:0,chromaFormatIdc:z,bitDepthLumaMinus8:y,bitDepthChromaMinus8:C,width:B-(b+c)*(1===z||2===z?2:1),height:A-(d+e)*(1===z?2:1),sarWidth:D,sarHeight:E}};
|
|
3054
3062
|
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();
|
|
3055
3063
|
b=b.readBoolean();var c=1;b&&a?c=0:b?c=3:a&&(c=2);return{parallelismType:c}};
|
|
3056
3064
|
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]=
|