shaka-player 4.12.3 → 4.12.5

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.
@@ -202,13 +202,13 @@ shaka.util.Platform.isSmartTV=function(){var a=shaka.util.Platform;return a.isTi
202
202
  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
203
  shaka.util.Platform.requiresEncryptionInfoInAllInitSegments=function(a){var b=shaka.util.Platform;a=shaka.util.DrmUtils.isPlayReadyKeySystem(a);return b.isTizen()||b.isXboxOne()||b.isOrange()||b.isEdge()&&b.isWindows()&&a};shaka.util.Platform.supportsSequenceMode=function(){var a=shaka.util.Platform;return a.isTizen3()||a.isTizen2()||a.isWebOS3()||a.isPS4()?!1:!0};
204
204
  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?a===window.shakaMediaKeysPolyfill:!!window.shakaMediaKeysPolyfill};
205
- 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(15);if(!(q=p)){u.jumpTo(17);break}return u.yield(cast.__platform__.canDisplayType('video/mp4; codecs="avc1.640028"; width=3840; height=2160'),
206
- 18)}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);
207
- break}if(a.isXboxOne()){b.width=1920;b.height=1080;try{d=void 0;d="undefined"!==typeof Windows?Windows:chrome.webview.hostObjects.sync.Windows;e=new d.Media.Protection.ProtectionCapabilities;f=d.Media.Protection.ProtectionCapabilityResult;g=null;do g=e.isTypeSupported('video/mp4;codecs="hvc1,mp4a";features="decode-res-x=3840,decode-res-y=2160,decode-bitrate=20000,decode-fps=30,decode-bpc=10,display-res-x=3840,display-res-y=2160,display-bpc=8"',"com.microsoft.playready.recommendation");while(g===f.maybe);
208
- g===f.probably&&(b.width=3840,b.height=2160)}catch(v){shaka.log.alwaysWarn("Xbox: Error detecting screen size, default screen size 1920x1080.")}u.jumpTo(3);break}if(a.isWebOS()){try{h=JSON.parse(window.PalmSystem.deviceInfo),b.width=Math.max(1920,h.screenWidth),b.height=Math.max(1080,h.screenHeight)}catch(v){shaka.log.alwaysWarn("WebOS: Error detecting screen size, default screen size 1920x1080."),b.width=1920,b.height=1080}u.jumpTo(3);break}if(a.isHisense()){window.Hisense_Get4KSupportState&&window.Hisense_Get4KSupportState()?
209
- (b.width=3840,b.height=2160):(b.width=1920,b.height=1080);u.jumpTo(3);break}if(!a.isPS4()&&!a.isPS5()){u.jumpTo(3);break}k=!1;u.setCatchFinallyBlocks(9);return u.yield(window.msdk.device.getDisplayInfo(),11);case 11:l=u.yieldResult;k="4K"===l.resolution;u.leaveTryBlock(10);break;case 9:return u.enterCatchBlock(),u.setCatchFinallyBlocks(12),u.yield(window.msdk.device.getDisplayInfoImmediate(),14);case 14:m=u.yieldResult;k="4K"===m.resolution;u.leaveTryBlock(10);break;case 12:n=u.enterCatchBlock(),
210
- shaka.log.alwaysWarn("PlayStation: Failed to get the display info:",n);case 10:k?(b.width=3840,b.height=2160):(b.width=1920,b.height=1080);u.jumpTo(3);break;case 18:q=u.yieldResult;case 17:if(q){b.width=3840;b.height=2160;u.jumpTo(19);break}if(!(r=p)){u.jumpTo(20);break}return u.yield(cast.__platform__.canDisplayType('video/mp4; codecs="avc1.640028"; width=1920; height=1080'),21);case 21:r=u.yieldResult;case 20:r&&(b.width=1920,b.height=1080);case 19:u.leaveTryBlock(3);break;case 15:t=u.enterCatchBlock(),
211
- shaka.log.alwaysError("Failed to check canDisplayType:",t);case 3:return u.return(b)}})};shaka.util.Platform.cacheExpirationTimer_=null;shaka.util.Platform.cachedMediaElement_=null;shaka.util.StringUtils=function(){};
205
+ 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
+ 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);
207
+ break}if(a.isWebOS()){try{d=JSON.parse(window.PalmSystem.deviceInfo),b.width=Math.max(1920,d.screenWidth),b.height=Math.max(1080,d.screenHeight)}catch(v){shaka.log.alwaysWarn("WebOS: Error detecting screen size, default screen size 1920x1080."),b.width=1920,b.height=1080}u.jumpTo(3);break}if(a.isHisense()){window.Hisense_Get4KSupportState&&window.Hisense_Get4KSupportState()?(b.width=3840,b.height=2160):(b.width=1920,b.height=1080);u.jumpTo(3);break}if(!a.isPS4()&&!a.isPS5()){e=void 0;try{e="undefined"!==
208
+ typeof Windows?Windows:chrome.webview.hostObjects.sync.Windows}catch(v){}if(e){b.width=1920;b.height=1080;try{f=new e.Media.Protection.ProtectionCapabilities;g=e.Media.Protection.ProtectionCapabilityResult;h=null;do h=f.isTypeSupported('video/mp4;codecs="hvc1,mp4a";features="decode-res-x=3840,decode-res-y=2160,decode-bitrate=20000,decode-fps=30,decode-bpc=10,display-res-x=3840,display-res-y=2160,display-bpc=8"',"com.microsoft.playready.recommendation");while(h===g.maybe);h===g.probably&&(b.width=
209
+ 3840,b.height=2160)}catch(v){shaka.log.alwaysWarn("Xbox: Error detecting screen size, default screen size 1920x1080.")}}else a.isXboxOne()&&(b.width=1920,b.height=1080,shaka.log.alwaysWarn("Xbox: Error detecting screen size, default screen size 1920x1080."));u.jumpTo(3);break}k=!1;u.setCatchFinallyBlocks(8);return u.yield(window.msdk.device.getDisplayInfo(),10);case 10:l=u.yieldResult;k="4K"===l.resolution;u.leaveTryBlock(9);break;case 8:return u.enterCatchBlock(),u.setCatchFinallyBlocks(11),u.yield(window.msdk.device.getDisplayInfoImmediate(),
210
+ 13);case 13:m=u.yieldResult;k="4K"===m.resolution;u.leaveTryBlock(9);break;case 11:n=u.enterCatchBlock(),shaka.log.alwaysWarn("PlayStation: Failed to get the display info:",n);case 9:k?(b.width=3840,b.height=2160):(b.width=1920,b.height=1080);u.jumpTo(3);break;case 17:q=u.yieldResult;case 16:if(q){b.width=3840;b.height=2160;u.jumpTo(18);break}if(!(r=p)){u.jumpTo(19);break}return u.yield(cast.__platform__.canDisplayType('video/mp4; codecs="avc1.640028"; width=1920; height=1080'),20);case 20:r=u.yieldResult;
211
+ case 19:r&&(b.width=1920,b.height=1080);case 18:u.leaveTryBlock(3);break;case 14:t=u.enterCatchBlock(),shaka.log.alwaysError("Failed to check canDisplayType:",t);case 3:return u.return(b)}})};shaka.util.Platform.cacheExpirationTimer_=null;shaka.util.Platform.cachedMediaElement_=null;shaka.util.StringUtils=function(){};
212
212
  shaka.util.StringUtils.fromUTF8=function(a){if(!a)return"";a=shaka.util.BufferUtils.toUint8(a);239==a[0]&&187==a[1]&&191==a[2]&&(a=a.subarray(3));if(window.TextDecoder&&!shaka.util.Platform.isPS4())return a=(new TextDecoder).decode(a),a.includes("\ufffd")&&shaka.log.alwaysError('Decoded string contains an "unknown character" codepoint. That probably means the UTF8 encoding was incorrect!'),a;for(var b="",c=0;c<a.length;++c){var d=65533;0==(a[c]&128)?d=a[c]:a.length>=c+2&&192==(a[c]&224)&&128==(a[c+
213
213
  1]&192)?(d=(a[c]&31)<<6|a[c+1]&63,c+=1):a.length>=c+3&&224==(a[c]&240)&&128==(a[c+1]&192)&&128==(a[c+2]&192)?(d=(a[c]&15)<<12|(a[c+1]&63)<<6|a[c+2]&63,c+=2):a.length>=c+4&&240==(a[c]&241)&&128==(a[c+1]&192)&&128==(a[c+2]&192)&&128==(a[c+3]&192)&&(d=(a[c]&7)<<18|(a[c+1]&63)<<12|(a[c+2]&63)<<6|a[c+3]&63,c+=3);if(65535>=d)b+=String.fromCharCode(d);else{d-=65536;var e=d&1023;b+=String.fromCharCode(55296+(d>>10));b+=String.fromCharCode(56320+e)}}return b};
214
214
  shaka.util.StringUtils.fromUTF16=function(a,b,c){if(!a)return"";if(!c&&0!=a.byteLength%2)throw shaka.log.error("Data has an incorrect length, must be even."),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.BAD_ENCODING);c=Math.floor(a.byteLength/2);var d=new Uint16Array(c);a=shaka.util.BufferUtils.toDataView(a);for(var e=0;e<c;e++)d[e]=a.getUint16(2*e,b);return shaka.util.StringUtils.fromCharCode(d)};
@@ -224,7 +224,9 @@ g)}return e}}(b);goog.asserts.assert(!1,"Unable to create a fromCharCode method"
224
224
  shaka.util.TextParser.prototype.readRegex=function(a){a=this.indexOf_(a);if(this.atEnd()||null==a||a.position!=this.position_)return null;this.position_+=a.length;return a.results};shaka.util.TextParser.prototype.readRegexReturnCapture_=function(a,b){return this.atEnd()?null:(a=this.readRegex(a))?a[b]:null};
225
225
  shaka.util.TextParser.prototype.indexOf_=function(a){goog.asserts.assert(a.global,"global flag should be set");a.lastIndex=this.position_;a=a.exec(this.data_);return null==a?null:{position:a.index,length:a[0].length,results:a}};shaka.util.TextParser.prototype.parseTime=function(){var a=this.readRegex(shaka.util.TextParser.timeFormat_);if(null==a)return null;var b=Number(a[2]),c=Number(a[3]);return 59<b||59<c?null:(Number(a[6])||0)/1E3+c+60*b+3600*(Number(a[1])||0)};
226
226
  shaka.util.TextParser.parseTime=function(a){return a?(new shaka.util.TextParser(a)).parseTime():null};shaka.util.TextParser.timeFormat_=/(?:(\d{1,}):)?(\d{2}):(\d{2})((\.(\d{1,3})))?/g;shaka.util.ObjectUtils=function(){};shaka.util.ObjectUtils.cloneObject=function(a){var b=new WeakSet,c=function(d){switch(typeof d){case "undefined":case "boolean":case "number":case "string":case "symbol":case "function":return d;default:if(!d||ArrayBuffer.isView(d))return d;if(b.has(d))return null;var e=d.constructor==Array;if(d.constructor!=Object&&!e)return null;b.add(d);var f=e?[]:{},g;for(g in d)f[g]=c(d[g]);e&&(f.length=d.length);return f}};return c(a)};
227
- shaka.util.ObjectUtils.shallowCloneObject=function(a){var b={},c;for(c in a)b[c]=a[c];return b};/*
227
+ shaka.util.ObjectUtils.shallowCloneObject=function(a){var b={},c;for(c in a)b[c]=a[c];return b};shaka.util.ObjectUtils.alphabeticalKeyOrderStringify=function(a){return Array.isArray(a)?shaka.util.ObjectUtils.arrayStringify_(a):"function"==typeof a?"":a instanceof Object?shaka.util.ObjectUtils.objectStringify_(a):JSON.stringify(a)};
228
+ shaka.util.ObjectUtils.objectStringify_=function(a){var b=Object.keys(a);b.sort();var c=[];b=$jscomp.makeIterator(b);for(var d=b.next();!d.done;d=b.next()){var e=d.value;d=JSON.stringify(e);e=a[e];void 0!==e&&(e=shaka.util.ObjectUtils.alphabeticalKeyOrderStringify(e))&&c.push(d+":"+e)}return"{"+c.join(",")+"}"};
229
+ shaka.util.ObjectUtils.arrayStringify_=function(a){for(var b=[],c=0;c<a.length;c++){var d=c.toString(),e=a[c];void 0!==e&&(e=shaka.util.ObjectUtils.alphabeticalKeyOrderStringify(e))&&b.push(d+":"+e)}return"["+b.join(",")+"]"};/*
228
230
  @license
229
231
  tXml
230
232
  Copyright 2015 Tobias Nickel
@@ -317,7 +319,7 @@ shaka.util.ManifestParserUtils.TEXT_CODEC_REGEXPS_=[/^vtt$/,/^wvtt/,/^stpp/];sha
317
319
  shaka.util.MimeUtils.getFullOrConvertedType=function(a,b,c){var d=shaka.util.MimeUtils,e=d.getFullType(a,b);b=d.getFullTypeWithAllCodecs(a,b);d=shaka.util.ManifestParserUtils.ContentType;var f=shaka.transmuxer.TransmuxerEngine;return f.isSupported(b,c)?f.convertCodecs(c,b):"video/mp2t"!=a&&c==d.AUDIO?e.replace("video","audio"):e};
318
320
  shaka.util.MimeUtils.getExtendedType=function(a,b,c){var d=[b];shaka.util.MimeUtils.EXTENDED_MIME_PARAMETERS_.forEach(function(e,f){var g=a[f];"codecs"==f?shaka.util.MimeUtils.RAW_FORMATS.includes(a.mimeType)||d.push('codecs="'+c+'"'):g&&d.push(e+'="'+g+'"')});"PQ"==a.hdr&&d.push('eotf="smpte2084"');return d.join(";")};shaka.util.MimeUtils.getContainerType=function(a){return a.split(";")[0].split("/")[1]};shaka.util.MimeUtils.splitCodecs=function(a){return a.split(",")};
319
321
  shaka.util.MimeUtils.getNormalizedCodec=function(a){var b=shaka.util.MimeUtils.getCodecParts_(a);a=b[0];b=b[1].toLowerCase();switch(!0){case "mp4a"===a&&"69"===b:case "mp4a"===a&&"6b"===b:case "mp4a"===a&&"40.34"===b:return"mp3";case "mp4a"===a&&"66"===b:case "mp4a"===a&&"67"===b:case "mp4a"===a&&"68"===b:case "mp4a"===a&&"40.2"===b:case "mp4a"===a&&"40.02"===b:case "mp4a"===a&&"40.5"===b:case "mp4a"===a&&"40.05"===b:case "mp4a"===a&&"40.29"===b:case "mp4a"===a&&"40.42"===b:return"aac";case "mp4a"===
320
- a&&"a5"===b:return"ac-3";case "mp4a"===a&&"a6"===b:return"ec-3";case "mp4a"===a&&"b2"===b:return"dtsx";case "mp4a"===a&&"a9"===b:return"dtsc";case "vp09"===a:return"vp9";case "avc1"===a:case "avc3"===a:return"avc";case "hvc1"===a:case "hev1"===a:return"hevc";case "vvc1"===a:case "vvi1"===a:return"vvc";case "dvh1"===a:case "dvhe"===a:return"dovi-hevc";case "dvav"===a:case "dva1"===a:return"dovi-avc";case "dav1"===a:return"dovi-av1";case "dvc1"===a:case "dvi1"===a:return"dovi-vvc"}return a};
322
+ a&&"a5"===b:return"ac-3";case "mp4a"===a&&"a6"===b:return"ec-3";case "mp4a"===a&&"b2"===b:return"dtsx";case "mp4a"===a&&"a9"===b:return"dtsc";case "vp09"===a:return"vp9";case "avc1"===a:case "avc3"===a:return"avc";case "hvc1"===a:case "hev1"===a:return"hevc";case "vvc1"===a:case "vvi1"===a:return"vvc";case "dvh1"===a:case "dvhe"===a:return b&&b.startsWith("05")?"dovi-p5":"dovi-hevc";case "dvav"===a:case "dva1"===a:return"dovi-avc";case "dav1"===a:return"dovi-av1";case "dvc1"===a:case "dvi1"===a:return"dovi-vvc"}return a};
321
323
  shaka.util.MimeUtils.getCodecBase=function(a){var b=[];a=$jscomp.makeIterator(a.split(","));for(var c=a.next();!c.done;c=a.next())c=shaka.util.MimeUtils.getCodecParts_(c.value),b.push(c[0]);return b.sort().join(",")};shaka.util.MimeUtils.getBasicType=function(a){return a.split(";")[0]};shaka.util.MimeUtils.getCodecs=function(a){a=a.split(/ *; */);a.shift();return(a=a.find(function(b){return b.startsWith("codecs=")}))?a.split("=")[1].replace(/^"|"$/g,""):""};
322
324
  shaka.util.MimeUtils.isHlsType=function(a){return"application/x-mpegurl"===a||"application/vnd.apple.mpegurl"===a};shaka.util.MimeUtils.getCodecParts_=function(a){var b=a.split(".");a=b[0];b.shift();b=b.join(".");return[a,b]};goog.exportSymbol("shaka.util.MimeUtils",shaka.util.MimeUtils);goog.exportProperty(shaka.util.MimeUtils,"getFullTypeWithAllCodecs",shaka.util.MimeUtils.getFullTypeWithAllCodecs);goog.exportProperty(shaka.util.MimeUtils,"getFullType",shaka.util.MimeUtils.getFullType);
323
325
  shaka.util.MimeUtils.EXTENDED_MIME_PARAMETERS_=(new Map).set("codecs","codecs").set("frameRate","framerate").set("bandwidth","bitrate").set("width","width").set("height","height").set("channelsCount","channels");shaka.util.MimeUtils.CEA608_CLOSED_CAPTION_MIMETYPE="application/cea-608";shaka.util.MimeUtils.CEA708_CLOSED_CAPTION_MIMETYPE="application/cea-708";shaka.util.MimeUtils.RAW_FORMATS=["audio/aac","audio/ac3","audio/ec3","audio/mpeg"];shaka.text.TextEngine=function(a){this.parser_=null;this.displayer_=a;this.segmentRelativeVttTiming_=!1;this.appendWindowStart_=this.timestampOffset_=0;this.appendWindowEnd_=Infinity;this.bufferEnd_=this.bufferStart_=null;this.selectedClosedCaptionId_="";this.modifyCueCallback_=function(b,c){};this.closedCaptionsMap_=new Map};shaka.text.TextEngine.registerParser=function(a,b){shaka.text.TextEngine.parserMap_[a]=b};shaka.text.TextEngine.unregisterParser=function(a){delete shaka.text.TextEngine.parserMap_[a]};
@@ -336,7 +338,8 @@ shaka.text.TextEngine.prototype.applyVideoTimestampOffsetRecursive_=function(a,b
336
338
  shaka.text.TextEngine.prototype.storeAndAppendClosedCaptions=function(a,b,c,d){var e=b+" "+c,f=new Map;a=$jscomp.makeIterator(a);for(var g=a.next();!g.done;g=a.next()){var h=g.value;g=h.stream;h=h.cue;f.has(g)||f.set(g,new Map);f.get(g).has(e)||f.get(g).set(e,[]);this.applyVideoTimestampOffsetRecursive_(h,d);h.startTime>=this.appendWindowStart_&&h.startTime<this.appendWindowEnd_&&(f.get(g).get(e).push(h),g==this.selectedClosedCaptionId_&&this.displayer_.append([h]))}d=$jscomp.makeIterator(f.keys());
337
339
  for(e=d.next();!e.done;e=d.next())for(e=e.value,this.closedCaptionsMap_.has(e)||this.closedCaptionsMap_.set(e,new Map),a=$jscomp.makeIterator(f.get(e).keys()),g=a.next();!g.done;g=a.next())g=g.value,h=f.get(e).get(g),this.closedCaptionsMap_.get(e).set(g,h);this.bufferStart_=null==this.bufferStart_?Math.max(b,this.appendWindowStart_):Math.min(this.bufferStart_,Math.max(b,this.appendWindowStart_));this.bufferEnd_=Math.max(this.bufferEnd_,Math.min(c,this.appendWindowEnd_))};
338
340
  shaka.text.TextEngine.prototype.getNumberOfClosedCaptionChannels=function(){return this.closedCaptionsMap_.size};shaka.text.TextEngine.prototype.getNumberOfClosedCaptionsInChannel=function(a){return(a=this.closedCaptionsMap_.get(a))?a.size:0};goog.exportSymbol("shaka.text.TextEngine",shaka.text.TextEngine);goog.exportProperty(shaka.text.TextEngine.prototype,"destroy",shaka.text.TextEngine.prototype.destroy);goog.exportProperty(shaka.text.TextEngine,"findParser",shaka.text.TextEngine.findParser);
339
- goog.exportProperty(shaka.text.TextEngine,"unregisterParser",shaka.text.TextEngine.unregisterParser);goog.exportProperty(shaka.text.TextEngine,"registerParser",shaka.text.TextEngine.registerParser);shaka.text.TextEngine.parserMap_={};shaka.util.Functional=function(){};shaka.util.Functional.createFallbackPromiseChain=function(a,b){return a.reduce(function(c,d){return c.catch(function(){return b(d)})},Promise.reject())};shaka.util.Functional.collapseArrays=function(a,b){return a.concat(b)};shaka.util.Functional.ignored=function(){};shaka.util.Functional.noop=function(){};shaka.util.Functional.isNotNull=function(a){return null!=a};shaka.util.LanguageUtils=function(){};shaka.util.LanguageUtils.areLocaleCompatible=function(a,b){var c=shaka.util.LanguageUtils;a=c.normalize(a);b=c.normalize(b);return a==b};shaka.util.LanguageUtils.areLanguageCompatible=function(a,b){var c=shaka.util.LanguageUtils;a=c.normalize(a);b=c.normalize(b);a=c.disassembleLocale_(a);b=c.disassembleLocale_(b);return a[0]==b[0]};
341
+ goog.exportProperty(shaka.text.TextEngine,"unregisterParser",shaka.text.TextEngine.unregisterParser);goog.exportProperty(shaka.text.TextEngine,"registerParser",shaka.text.TextEngine.registerParser);shaka.text.TextEngine.parserMap_={};shaka.util.Functional=function(){};shaka.util.Functional.createFallbackPromiseChain=function(a,b){return a.reduce(function(c,d){return c.catch(function(){return b(d)})},Promise.reject())};shaka.util.Functional.collapseArrays=function(a,b){return a.concat(b)};shaka.util.Functional.ignored=function(){};shaka.util.Functional.noop=function(){};shaka.util.Functional.isNotNull=function(a){return null!=a};
342
+ shaka.util.Functional.promiseWithTimeout=function(a,b){return Promise.race([b,new Promise(function(c,d){(new shaka.util.Timer(d)).tickAfter(a)})])};shaka.util.LanguageUtils=function(){};shaka.util.LanguageUtils.areLocaleCompatible=function(a,b){var c=shaka.util.LanguageUtils;a=c.normalize(a);b=c.normalize(b);return a==b};shaka.util.LanguageUtils.areLanguageCompatible=function(a,b){var c=shaka.util.LanguageUtils;a=c.normalize(a);b=c.normalize(b);a=c.disassembleLocale_(a);b=c.disassembleLocale_(b);return a[0]==b[0]};
340
343
  shaka.util.LanguageUtils.isParentOf=function(a,b){var c=shaka.util.LanguageUtils;a=c.normalize(a);b=c.normalize(b);a=c.disassembleLocale_(a);b=c.disassembleLocale_(b);return a[0]==b[0]&&1==a.length&&2==b.length};shaka.util.LanguageUtils.isSiblingOf=function(a,b){var c=shaka.util.LanguageUtils;a=c.normalize(a);b=c.normalize(b);a=c.disassembleLocale_(a);b=c.disassembleLocale_(b);return 2==a.length&&2==b.length&&a[0]==b[0]};
341
344
  shaka.util.LanguageUtils.normalize=function(a){var b=shaka.util.LanguageUtils;a=$jscomp.makeIterator(a.split("-x-"));var c=a.next().value;c=void 0===c?"":c;a=a.next().value;a=void 0===a?"":a;var d=$jscomp.makeIterator(c.split("-"));c=d.next().value;c=void 0===c?"":c;d=d.next().value;d=void 0===d?"":d;a=a?"x-"+a:"";c=c.toLowerCase();c=b.isoMap_.get(c)||c;b=d.toUpperCase();return""+(b?c+"-"+b:c)+(a?"-"+a:"")};
342
345
  shaka.util.LanguageUtils.areSiblings=function(a,b){var c=shaka.util.LanguageUtils,d=c.getBase(a);c=c.getBase(b);return a!=d&&b!=c&&d==c};shaka.util.LanguageUtils.relatedness=function(a,b){var c=shaka.util.LanguageUtils;a=c.normalize(a);b=c.normalize(b);return b==a?4:c.isParentOf(b,a)?3:c.isSiblingOf(b,a)?2:c.isParentOf(a,b)?1:0};shaka.util.LanguageUtils.getBase=function(a){var b=shaka.util.LanguageUtils,c=a.indexOf("-");a=0<=c?a.substring(0,c):a;a=a.toLowerCase();return a=b.isoMap_.get(a)||a};
@@ -352,32 +355,31 @@ shaka.util.LanguageUtils.isoMap_=new Map([["aar","aa"],["abk","ab"],["afr","af"]
352
355
  "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",
353
356
  "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(){};
354
357
  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,
355
- 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(D){return B.variant$jscomp$3.decodingInfos[0][D]}}(z)).length,x>u?(u=x,w=[z.variant$jscomp$3]):x==u&&w.push(z.variant$jscomp$3);m.push.apply(m,
358
+ 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(C){return B.variant$jscomp$3.decodingInfos[0][C]}}(z)).length,x>u?(u=x,w=[z.variant$jscomp$3]):x==u&&w.push(z.variant$jscomp$3);m.push.apply(m,
356
359
  $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),
357
- 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,av01:.75,"dovi-av1":.7,vvc:.65};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!=x)return(r[w]||
358
- 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==l.height&&(p=
359
- g.getNormalizedCodec(l.codecs),q=g.getNormalizedCodec(h.codecs),p!=q||h.bandwidth&&l.bandwidth&&!(h.bandwidth>l.bandwidth)||(k.push(h),t.push(h.id)))}else k.push(h),t.push(h.id);c.set(e,k)}a.variants=a.variants.filter(function(u){var v=u.audio,w=u.video;return v&&!n.includes(v.id)||w&&!t.includes(w.id)?(shaka.log.debug("Dropping Variant (better codec available)",u),!1):!0})};
360
+ 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!=
361
+ 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==
362
+ l.height&&(p=g.getNormalizedCodec(l.codecs),q=g.getNormalizedCodec(h.codecs),p!=q||h.bandwidth&&l.bandwidth&&!(h.bandwidth>l.bandwidth)||(k.push(h),t.push(h.id)))}else k.push(h),t.push(h.id);c.set(e,k)}a.variants=a.variants.filter(function(u){var v=u.audio,w=u.video;return v&&!n.includes(v.id)||w&&!t.includes(w.id)?(shaka.log.debug("Dropping Variant (better codec available)",u),!1):!0})};
360
363
  shaka.util.StreamUtils.choosePreferredCodecs=function(a,b,c){b=$jscomp.makeIterator(b);for(var d=b.next(),e={};!d.done;e={videoCodec$jscomp$4:void 0},d=b.next())if(e.videoCodec$jscomp$4=d.value,d=a.filter(function(f){return function(g){return g.video&&g.video.codecs.startsWith(f.videoCodec$jscomp$4)}}(e)),d.length){a=d;break}c=$jscomp.makeIterator(c);b=c.next();for(d={};!b.done;d={audioCodec$jscomp$4:void 0},b=c.next())if(d.audioCodec$jscomp$4=b.value,b=a.filter(function(f){return function(g){return g.audio&&
361
364
  g.audio.codecs.startsWith(f.audioCodec$jscomp$4)}}(d)),b.length){a=b;break}return a};shaka.util.StreamUtils.filterByRestrictions=function(a,b,c){a.variants=a.variants.filter(function(d){return shaka.util.StreamUtils.meetsRestrictions(d,b,c)})};
362
365
  shaka.util.StreamUtils.meetsRestrictions=function(a,b,c){var d=function(h,k,l){return h>=k&&h<=l},e=a.video;if(e&&e.width&&e.height){var f=e.width,g=e.height;g>f&&(g=$jscomp.makeIterator([g,f]),f=g.next().value,g=g.next().value);if(!d(f,b.minWidth,Math.min(b.maxWidth,c.width))||!d(g,b.minHeight,Math.min(b.maxHeight,c.height))||!d(e.width*e.height,b.minPixels,b.maxPixels))return!1}return a&&a.video&&a.video.frameRate&&!d(a.video.frameRate,b.minFrameRate,b.maxFrameRate)||a&&a.audio&&a.audio.channelsCount&&
363
366
  !d(a.audio.channelsCount,b.minChannelsCount,b.maxChannelsCount)||!d(a.bandwidth,b.minBandwidth,b.maxBandwidth)?!1:!0};shaka.util.StreamUtils.applyRestrictions=function(a,b,c){var d=!1;a=$jscomp.makeIterator(a);for(var e=a.next();!e.done;e=a.next()){e=e.value;var f=e.allowedByApplication;e.allowedByApplication=shaka.util.StreamUtils.meetsRestrictions(e,b,c);f!=e.allowedByApplication&&(d=!0)}return d};
364
- shaka.util.StreamUtils.filterManifest=function(a,b,c){c=void 0===c?[]:c;return $jscomp.asyncExecutePromiseGeneratorProgram(function(d){if(1==d.nextAddress)return d.yield(shaka.util.StreamUtils.filterManifestByMediaCapabilities(a,b,0<b.offlineSessionIds.length,c),2);shaka.util.StreamUtils.filterTextStreams_(b);return d.yield(shaka.util.StreamUtils.filterImageStreams_(b),0)})};
365
- shaka.util.StreamUtils.filterManifestByMediaCapabilities=function(a,b,c,d){var e,f,g;return $jscomp.asyncExecutePromiseGeneratorProgram(function(h){if(1==h.nextAddress)return goog.asserts.assert(navigator.mediaCapabilities,"MediaCapabilities should be valid."),shaka.util.Platform.isXboxOne()&&shaka.util.StreamUtils.overrideDolbyVisionCodecs(b.variants),h.yield(shaka.util.StreamUtils.getDecodingInfosForVariants(b.variants,c,!1,d),2);e=null;a&&(f=a.getDrmInfo())&&(e=f.keySystem);g=shaka.util.StreamUtils;
366
- b.variants=b.variants.filter(function(k){var l=g.checkVariantSupported_(k,e);l||shaka.log.debug("Dropping variant - not compatible with platform",g.getVariantSummaryString_(k));return l});h.jumpToEnd()})};
367
+ shaka.util.StreamUtils.filterManifest=function(a,b,c,d){c=void 0===c?[]:c;d=void 0===d?{}:d;return $jscomp.asyncExecutePromiseGeneratorProgram(function(e){if(1==e.nextAddress)return e.yield(shaka.util.StreamUtils.filterManifestByMediaCapabilities(a,b,0<b.offlineSessionIds.length,c,d),2);shaka.util.StreamUtils.filterTextStreams_(b);return e.yield(shaka.util.StreamUtils.filterImageStreams_(b),0)})};
368
+ shaka.util.StreamUtils.filterManifestByMediaCapabilities=function(a,b,c,d,e){var f,g,h;return $jscomp.asyncExecutePromiseGeneratorProgram(function(k){if(1==k.nextAddress)return goog.asserts.assert(navigator.mediaCapabilities,"MediaCapabilities should be valid."),shaka.util.Platform.isXboxOne()&&shaka.util.StreamUtils.overrideDolbyVisionCodecs(b.variants),k.yield(shaka.util.StreamUtils.getDecodingInfosForVariants(b.variants,c,!1,d),2);f=null;a&&(g=a.getDrmInfo())&&(f=g.keySystem);h=shaka.util.StreamUtils;
369
+ b.variants=b.variants.filter(function(l){var m=h.checkVariantSupported_(l,f,e);m||shaka.log.debug("Dropping variant - not compatible with platform",h.getVariantSummaryString_(l));return m});k.jumpToEnd()})};
367
370
  shaka.util.StreamUtils.overrideDolbyVisionCodecs=function(a){var b={dvav:"avc3",dva1:"avc1",dvhe:"hev1",dvh1:"hvc1",dvc1:"vvc1",dvi1:"vvi1"},c=new Set;a=$jscomp.makeIterator(a);for(var d=a.next();!d.done;d=a.next())d=d.value,d.video&&c.add(d.video);c=$jscomp.makeIterator(c);for(a=c.next();!a.done;a=c.next()){a=a.value;d=$jscomp.makeIterator(Object.keys(b));for(var e=d.next();!e.done;e=d.next())if(e=e.value,a.codecs.includes(e)){a.codecs=a.codecs.replace(e,b[e]);break}}};
368
- shaka.util.StreamUtils.checkVariantSupported_=function(a,b){var c=shaka.util.ManifestParserUtils.ContentType,d=shaka.media.Capabilities,e=shaka.util.ManifestParserUtils,f=shaka.util.MimeUtils,g=shaka.util.StreamUtils,h=shaka.util.Platform.isXboxOne(),k=shaka.util.Platform.isFirefox()&&shaka.util.Platform.isAndroid(),l=a.video,m=l&&l.width||0,n=l&&l.height||0;if(h&&l&&(1920<m||1080<n)&&(l.codecs.includes("avc1.")||l.codecs.includes("avc3.")))return!1;if(l){h=g.getCorrectVideoCodecs(l.codecs);if(l.codecs.includes(",")){m=
369
- l.codecs.split(",");h=e.guessCodecs(c.VIDEO,m);h=g.getCorrectVideoCodecs(h);e=e.guessCodecs(c.AUDIO,m);e=g.getCorrectAudioCodecs(e,l.mimeType);m=f.getFullOrConvertedType(l.mimeType,e,c.AUDIO);if(!d.isTypeSupported(m))return!1;h=[h,e].join()}e=f.getFullOrConvertedType(l.mimeType,h,c.VIDEO);if(!d.isTypeSupported(e))return!1;l.codecs=h}l=a.audio;if(k&&l&&l.encrypted&&l.codecs.toLowerCase().includes("opus"))return!1;if(l){g=g.getCorrectAudioCodecs(l.codecs,l.mimeType);c=f.getFullOrConvertedType(l.mimeType,
370
- g,c.AUDIO);if(!d.isTypeSupported(c))return!1;l.codecs=g}return a.decodingInfos.some(function(p){return!p.supported||b&&(p=p.keySystemAccess)&&p.keySystem!=b?!1:!0})};
371
- shaka.util.StreamUtils.alphabeticalKeyOrderStringify_=function(a){var b=[];for(c in a)b.push(c);b.sort();var c=[];b=$jscomp.makeIterator(b);for(var d=b.next();!d.done;d=b.next()){var e=d.value;d=JSON.stringify(e);e=a[e];e instanceof Object?(e=shaka.util.StreamUtils.alphabeticalKeyOrderStringify_(e),c.push(d+":"+e)):(e=JSON.stringify(e),c.push(d+":"+e))}return"{"+c.join(",")+"}"};
371
+ shaka.util.StreamUtils.checkVariantSupported_=function(a,b,c){if(!a.decodingInfos.some(function(q){return!q.supported||b&&(q=q.keySystemAccess)&&(c[q.keySystem]||q.keySystem)!=b?!1:!0}))return!1;var d=shaka.util.ManifestParserUtils.ContentType,e=shaka.media.Capabilities,f=shaka.util.ManifestParserUtils,g=shaka.util.MimeUtils,h=shaka.util.StreamUtils,k=shaka.util.Platform.isXboxOne(),l=shaka.util.Platform.isFirefox()&&shaka.util.Platform.isAndroid(),m=a.video,n=m&&m.width||0,p=m&&m.height||0;if(k&&
372
+ m&&(1920<n||1080<p)&&(m.codecs.includes("avc1.")||m.codecs.includes("avc3.")))return!1;if(m){k=h.getCorrectVideoCodecs(m.codecs);if(m.codecs.includes(",")){n=m.codecs.split(",");k=f.guessCodecs(d.VIDEO,n);k=h.getCorrectVideoCodecs(k);f=f.guessCodecs(d.AUDIO,n);f=h.getCorrectAudioCodecs(f,m.mimeType);n=g.getFullOrConvertedType(m.mimeType,f,d.AUDIO);if(!e.isTypeSupported(n))return!1;k=[k,f].join()}if(m.codecs!=k){f=g.getFullOrConvertedType(m.mimeType,k,d.VIDEO);if(!e.isTypeSupported(f))return!1;m.codecs=
373
+ k}}a=a.audio;if(l&&a&&a.encrypted&&a.codecs.toLowerCase().includes("opus"))return!1;if(a&&(h=h.getCorrectAudioCodecs(a.codecs,a.mimeType),a.codecs!=h)){d=g.getFullOrConvertedType(a.mimeType,h,d.AUDIO);if(!e.isTypeSupported(d))return!1;a.codecs=h}return!0};
372
374
  shaka.util.StreamUtils.getDecodingInfosForVariant_=function(a,b){var c,d,e,f,g,h,k,l;return $jscomp.asyncExecutePromiseGeneratorProgram(function(m){if(1==m.nextAddress){c=function(n,p){if(n){var q=shaka.util.ObjectUtils.shallowCloneObject(n);q.supported=n.supported&&p.supported;q.powerEfficient=n.powerEfficient&&p.powerEfficient;q.smooth=n.smooth&&p.smooth;p.keySystemAccess&&!q.keySystemAccess&&(q.keySystemAccess=p.keySystemAccess);return q}return p};d=shaka.util.StreamUtils;e=null;f=[];g=$jscomp.makeIterator(b);
373
- h=g.next();for(k={};!h.done;k={cache:void 0,cacheKey:void 0},h=g.next())l=h.value,k.cacheKey=d.alphabeticalKeyOrderStringify_(l),k.cache=d.decodingConfigCache_,k.cache[k.cacheKey]?(shaka.log.v2("Using cached results of mediaCapabilities.decodingInfo","for key",k.cacheKey),e=c(e,k.cache[k.cacheKey])):f.push(d.checkEachDecodingConfigCombination_(l).then(function(n){return function(p){var q=null;p=$jscomp.makeIterator(p||[]);for(var r=p.next();!r.done;r=p.next())q=c(q,r.value);q&&(n.cache[n.cacheKey]=
374
- q,e=c(e,q))}}(k)));return m.yield(Promise.all(f),2)}e&&a.decodingInfos.push(e);m.jumpToEnd()})};
375
+ h=g.next();for(k={};!h.done;k={cache:void 0,cacheKey:void 0},h=g.next())l=h.value,k.cacheKey=shaka.util.ObjectUtils.alphabeticalKeyOrderStringify(l),k.cache=d.decodingConfigCache_,k.cache[k.cacheKey]?(shaka.log.v2("Using cached results of mediaCapabilities.decodingInfo","for key",k.cacheKey),e=c(e,k.cache[k.cacheKey])):f.push(d.checkEachDecodingConfigCombination_(l).then(function(n){return function(p){var q=null;p=$jscomp.makeIterator(p||[]);for(var r=p.next();!r.done;r=p.next())q=c(q,r.value);q&&
376
+ (n.cache[n.cacheKey]=q,e=c(e,q))}}(k)));return m.yield(Promise.all(f),2)}e&&a.decodingInfos.push(e);m.jumpToEnd()})};
375
377
  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=
376
- 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){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.",
378
+ 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.",
377
379
  JSON.stringify(a),l);return null})};
378
- 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,D;return $jscomp.asyncExecutePromiseGeneratorProgram(function(y){switch(y.nextAddress){case 1:if(e=a.some(function(A){return A.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);
379
- break}n=m.value;p=shaka.util.StreamUtils.getDecodingConfigs_(n,b,c).filter(function(A){return function(C){C=C[0];return(C.keySystemConfiguration&&C.keySystemConfiguration.keySystem)===A.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();
380
- 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(A){A=A[0];A=A.keySystemConfiguration&&A.keySystemConfiguration.keySystem;return!A||!d.includes(A)});z=$jscomp.makeIterator(x);B=z.next();case 15:if(B.done){v=u.next();y.jumpTo(12);break}D=B.value;return y.yield(shaka.util.StreamUtils.getDecodingInfosForVariant_(w,D),16);case 16:B=z.next(),
380
+ 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,C;return $jscomp.asyncExecutePromiseGeneratorProgram(function(y){switch(y.nextAddress){case 1:if(e=a.some(function(A){return A.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);
381
+ break}n=m.value;p=shaka.util.StreamUtils.getDecodingConfigs_(n,b,c).filter(function(A){return function(D){D=D[0];return(D.keySystemConfiguration&&D.keySystemConfiguration.keySystem)===A.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();
382
+ 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(A){A=A[0];A=A.keySystemConfiguration&&A.keySystemConfiguration.keySystem;return!A||!d.includes(A)});z=$jscomp.makeIterator(x);B=z.next();case 15:if(B.done){v=u.next();y.jumpTo(12);break}C=B.value;return y.yield(shaka.util.StreamUtils.getDecodingInfosForVariant_(w,C),16);case 16:B=z.next(),
381
383
  y.jumpTo(15)}})};
382
384
  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,
383
385
  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=
@@ -480,8 +482,8 @@ shaka.net.NetworkingEngine.prototype.filterRequest_=function(a,b,c){var d=shaka.
480
482
  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)};
481
483
  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),
482
484
  b.uris[e]=k.toString());l=l.toLowerCase();var n=(l=shaka.net.NetworkingEngine.schemes_[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,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();v=Date.now();var w=
483
- shaka.net.NetworkingEngine.RequestType.SEGMENT,x=0;b.requestStartTime=Date.now();var z=n(b.uris[e],b,a,function(y,A,C){q&&q.stop();r&&r.tickAfter(D/1E3);if(h.onProgressUpdated_&&a==w){x++;b.packetNumber=x;var F=h.allowSwitch_(c);h.onProgressUpdated_(y,A,F,b);m=!0;g.setBytes(C)}},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;
484
- B&&(q=new shaka.util.Timer(function(){t=!0;z.abort()}),q.tickAfter(B/1E3));var D=b.retryParameters.stallTimeout;D&&(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={response:w,gotProgress:m};if(!u&&h.onHeadersReceived_)h.onHeadersReceived_(w.headers,b,a);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&&
485
+ shaka.net.NetworkingEngine.RequestType.SEGMENT,x=0;b.requestStartTime=Date.now();var z=n(b.uris[e],b,a,function(y,A,D){q&&q.stop();r&&r.tickAfter(C/1E3);if(h.onProgressUpdated_&&a==w){x++;b.packetNumber=x;var F=h.allowSwitch_(c);h.onProgressUpdated_(y,A,F,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;
486
+ B&&(q=new shaka.util.Timer(function(){t=!0;z.abort()}),q.tickAfter(B/1E3));var C=b.retryParameters.stallTimeout;C&&(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={response:w,gotProgress:m};if(!u&&h.onHeadersReceived_)h.onHeadersReceived_(w.headers,b,a);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&&
485
487
  (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==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=
486
488
  (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;})};
487
489
  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;
@@ -521,17 +523,17 @@ shaka.util.Pssh.prototype.parsePsshBox_=function(a){goog.asserts.assert(null!=a.
521
523
  if(0<a.version){b=a.reader.readUint32();for(var c=0;c<b;c++){var d=shaka.util.Uint8ArrayUtils.toHex(a.reader.readBytes(16));this.cencKeyIds.push(d)}}}};
522
524
  shaka.util.Pssh.createPssh=function(a,b,c,d){goog.asserts.assert(16==b.byteLength,"Invalid system ID length");var e=a.length,f=12+b.length+4+e;0<d&&(f+=4+16*c.size);var g=new Uint8Array(f),h=shaka.util.BufferUtils.toDataView(g),k=0;h.setUint32(k,f);k+=4;h.setUint32(k,1886614376);k+=4;1>d?h.setUint32(k,0):h.setUint32(k,16777216);k+=4;g.set(b,k);k+=b.length;if(0<d)for(h.setUint32(k,c.size),k+=4,b=shaka.util.Uint8ArrayUtils,c=$jscomp.makeIterator(c),d=c.next();!d.done;d=c.next())d=b.fromHex(d.value),
523
525
  g.set(d,k),k+=d.length;h.setUint32(k,e);k+=4;g.set(a,k);goog.asserts.assert(k+e===f,"PSSH invalid length.");return g};
524
- shaka.util.Pssh.normaliseInitData=function(a){if(!a)return a;var b=new shaka.util.Pssh(a);if(1>=b.data.length)return a;a=[];b=$jscomp.makeIterator(b.data);for(var c=b.next(),d={};!c.done;d={initData$jscomp$10:void 0},c=b.next())d.initData$jscomp$10=c.value,a.some(function(e){return function(f){return shaka.util.BufferUtils.equal(f,e.initData$jscomp$10)}}(d))||a.push(d.initData$jscomp$10);return shaka.util.Uint8ArrayUtils.concat.apply(shaka.util.Uint8ArrayUtils,$jscomp.arrayFromIterable(a))};shaka.media.DrmEngine=function(a){var b=this;this.playerInterface_=a;this.video_=this.mediaKeys_=null;this.initializedForStorage_=this.initialized_=!1;this.licenseTimeSeconds_=0;this.currentDrmInfo_=null;this.eventManager_=new shaka.util.EventManager;this.activeSessions_=new Map;this.storedPersistentSessions_=new Map;this.allSessionsLoaded_=new shaka.util.PublicPromise;this.config_=null;this.onError_=function(c){c.severity==shaka.util.Error.Severity.CRITICAL&&b.allSessionsLoaded_.reject(c);a.onError(c)};
525
- this.keyStatusByKeyId_=new Map;this.announcedKeyStatusByKeyId_=new Map;this.keyStatusTimer_=new shaka.util.Timer(function(){return b.processKeyStatusChanges_()});this.usePersistentLicenses_=!1;this.mediaKeyMessageEvents_=[];this.initialRequestsSent_=!1;this.expirationTimer_=new shaka.util.Timer(function(){b.pollExpiration_()});this.allSessionsLoaded_.catch(function(){});this.destroyer_=new shaka.util.Destroyer(function(){return b.destroyNow_()});this.srcEquals_=!1;this.manifestInitData_=this.mediaKeysAttached_=
526
- null;this.isPreload_=function(){return!1}};shaka.media.DrmEngine.prototype.destroy=function(){return this.destroyer_.destroy()};
526
+ shaka.util.Pssh.normaliseInitData=function(a){if(!a)return a;var b=new shaka.util.Pssh(a);if(1>=b.data.length)return a;a=[];b=$jscomp.makeIterator(b.data);for(var c=b.next(),d={};!c.done;d={initData$jscomp$10:void 0},c=b.next())d.initData$jscomp$10=c.value,a.some(function(e){return function(f){return shaka.util.BufferUtils.equal(f,e.initData$jscomp$10)}}(d))||a.push(d.initData$jscomp$10);return shaka.util.Uint8ArrayUtils.concat.apply(shaka.util.Uint8ArrayUtils,$jscomp.arrayFromIterable(a))};shaka.media.DrmEngine=function(a){var b=this;this.playerInterface_=a;this.video_=this.mediaKeys_=null;this.initializedForStorage_=this.initialized_=!1;this.licenseTimeSeconds_=0;this.currentDrmInfo_=null;this.eventManager_=new shaka.util.EventManager;this.activeSessions_=new Map;this.activeRequests_=[];this.storedPersistentSessions_=new Map;this.hasInitData_=!1;this.allSessionsLoaded_=new shaka.util.PublicPromise;this.config_=null;this.onError_=function(c){c.severity==shaka.util.Error.Severity.CRITICAL&&
527
+ b.allSessionsLoaded_.reject(c);a.onError(c)};this.keyStatusByKeyId_=new Map;this.announcedKeyStatusByKeyId_=new Map;this.keyStatusTimer_=new shaka.util.Timer(function(){return b.processKeyStatusChanges_()});this.usePersistentLicenses_=!1;this.mediaKeyMessageEvents_=[];this.initialRequestsSent_=!1;this.expirationTimer_=new shaka.util.Timer(function(){b.pollExpiration_()});this.allSessionsLoaded_.catch(function(){});this.destroyer_=new shaka.util.Destroyer(function(){return b.destroyNow_()});this.srcEquals_=
528
+ !1;this.manifestInitData_=this.mediaKeysAttached_=null;this.isPreload_=function(){return!1}};shaka.media.DrmEngine.prototype.destroy=function(){return this.destroyer_.destroy()};
527
529
  shaka.media.DrmEngine.prototype.destroyNow_=function(){var a=this,b;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){switch(c.nextAddress){case 1:return a.eventManager_.release(),a.eventManager_=null,a.allSessionsLoaded_.reject(),a.expirationTimer_.stop(),a.expirationTimer_=null,a.keyStatusTimer_.stop(),a.keyStatusTimer_=null,c.yield(a.closeOpenSessions_(),2);case 2:if(!a.video_){c.jumpTo(3);break}shaka.util.Platform.isMediaKeysPolyfilled("webkit")||goog.asserts.assert(!a.video_.src&&
528
530
  !a.video_.getElementsByTagName("source").length,"video src must be removed first!");c.setCatchFinallyBlocks(4);return c.yield(a.video_.setMediaKeys(null),6);case 6:c.leaveTryBlock(5);break;case 4:b=c.enterCatchBlock(),shaka.log.debug("DrmEngine.destroyNow_ exception",b);case 5:a.video_=null;case 3:a.currentDrmInfo_=null,a.mediaKeys_=null,a.storedPersistentSessions_=new Map,a.config_=null,a.onError_=function(){},a.playerInterface_=null,a.srcEquals_=!1,a.mediaKeysAttached_=null,c.jumpToEnd()}})};
529
531
  shaka.media.DrmEngine.prototype.configure=function(a,b){this.config_=a;b&&(this.isPreload_=b);this.expirationTimer_&&this.expirationTimer_.tickEvery(this.config_.updateExpirationTime)};shaka.media.DrmEngine.prototype.setSrcEquals=function(a){this.srcEquals_=a};shaka.media.DrmEngine.prototype.initForStorage=function(a,b){this.initializedForStorage_=!0;this.storedPersistentSessions_=new Map;this.usePersistentLicenses_=b;return this.init_(a)};
530
532
  shaka.media.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;
531
533
  return this.init_(a)};
532
534
  shaka.media.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,[])};
533
- shaka.media.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()!");if(c=b.configureClearKey_())for(d=$jscomp.makeIterator(a),e=d.next();!e.done;e=d.next())f=e.value,f.video&&(f.video.drmInfos=[c]),f.audio&&(f.audio.drmInfos=[c]);g=a.some(function(D){return D.video&&D.video.drmInfos.length||D.audio&&
534
- D.audio.drmInfos.length?!0:!1});g||(h=shaka.util.MapUtils.asMap(b.config_.servers),shaka.media.DrmEngine.replaceDrmInfo_(a,h));k=new Set;l=$jscomp.makeIterator(a);for(m=l.next();!m.done;m=l.next())for(n=m.value,p=b.getVariantDrmInfos_(n),q=$jscomp.makeIterator(p),r=q.next();!r.done;r=q.next())t=r.value,k.add(t);u=$jscomp.makeIterator(k);for(v=u.next();!v.done;v=u.next())w=v.value,shaka.media.DrmEngine.fillInDrmInfoDefaults_(w,shaka.util.MapUtils.asMap(b.config_.servers),shaka.util.MapUtils.asMap(b.config_.advanced||
535
+ shaka.media.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()!");if(c=b.configureClearKey_())for(d=$jscomp.makeIterator(a),e=d.next();!e.done;e=d.next())f=e.value,f.video&&(f.video.drmInfos=[c]),f.audio&&(f.audio.drmInfos=[c]);g=a.some(function(C){return C.video&&C.video.drmInfos.length||C.audio&&
536
+ C.audio.drmInfos.length?!0:!1});g||(h=shaka.util.MapUtils.asMap(b.config_.servers),shaka.media.DrmEngine.replaceDrmInfo_(a,h));k=new Set;l=$jscomp.makeIterator(a);for(m=l.next();!m.done;m=l.next())for(n=m.value,p=b.getVariantDrmInfos_(n),q=$jscomp.makeIterator(p),r=q.next();!r.done;r=q.next())t=r.value,k.add(t);u=$jscomp.makeIterator(k);for(v=u.next();!v.done;v=u.next())w=v.value,shaka.media.DrmEngine.fillInDrmInfoDefaults_(w,shaka.util.MapUtils.asMap(b.config_.servers),shaka.util.MapUtils.asMap(b.config_.advanced||
535
537
  {}),b.config_.keySystemsMapping);return B.yield(shaka.util.StreamUtils.getDecodingInfosForVariants(a,b.usePersistentLicenses_,b.srcEquals_,b.config_.preferredKeySystems),2)}b.destroyer_.ensureNotDestroyed();x=g||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(g?z:z.catch(function(){}))})};
536
538
  shaka.media.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);
537
539
  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()}})};
@@ -545,21 +547,21 @@ shaka.util.Error.Category.DRM,shaka.util.Error.Code.SERVER_CERTIFICATE_REQUEST_F
545
547
  h.leaveTryBlock(0);break;case 6:throw g=h.enterCatchBlock(),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.INVALID_SERVER_CERTIFICATE,g.message);}})};
546
548
  shaka.media.DrmEngine.prototype.removeSession=function(a){var b=this,c,d,e;return $jscomp.asyncExecutePromiseGeneratorProgram(function(f){if(1==f.nextAddress)return goog.asserts.assert(b.mediaKeys_,"Must call init() before removeSession"),f.yield(b.loadOfflineSession_(a,{initData:null,initDataType:null}),2);if(3!=f.nextAddress){c=f.yieldResult;if(!c)return shaka.log.v2("Ignoring attempt to remove missing session",a),f.return();d=[];if(e=b.activeSessions_.get(c))e.updatePromise=new shaka.util.PublicPromise,
547
549
  d.push(e.updatePromise);shaka.log.v2("Attempting to remove session",a);d.push(c.remove());return f.yield(Promise.all(d),3)}b.activeSessions_.delete(c);f.jumpToEnd()})};
548
- shaka.media.DrmEngine.prototype.createOrLoad=function(){var a=this,b,c,d,e,f;return $jscomp.asyncExecutePromiseGeneratorProgram(function(g){if(1==g.nextAddress){if(!a.storedPersistentSessions_.size)return g.jumpTo(2);a.storedPersistentSessions_.forEach(function(h,k){a.loadOfflineSession_(k,h)});return g.yield(a.allSessionsLoaded_,3)}if(2!=g.nextAddress){b=a.currentDrmInfo_&&a.currentDrmInfo_.keyIds||new Set([]);if(0<b.size&&a.areAllKeysUsable_())return g.return(a.allSessionsLoaded_);a.allSessionsLoaded_=
549
- new shaka.util.PublicPromise;a.allSessionsLoaded_.catch(function(){})}c=(a.currentDrmInfo_?a.currentDrmInfo_.initData:[])||[];d=$jscomp.makeIterator(c);for(e=d.next();!e.done;e=d.next())f=e.value,a.newInitData(f.initDataType,f.initData);a.areAllSessionsLoaded_()&&a.allSessionsLoaded_.resolve();return g.return(a.allSessionsLoaded_)})};
550
- shaka.media.DrmEngine.prototype.newInitData=function(a,b){if(b.length){if(this.config_.ignoreDuplicateInitData){var c=this.activeSessions_.values();c=$jscomp.makeIterator(c);for(var d=c.next();!d.done;d=c.next())if(shaka.util.BufferUtils.equal(b,d.value.initData)){shaka.log.debug("Ignoring duplicate init data.");return}var e=!1;this.storedPersistentSessions_.forEach(function(f,g){!e&&shaka.util.BufferUtils.equal(b,f.initData)&&(e=!0)});if(e){shaka.log.debug("Ignoring duplicate init data.");return}}0<
551
- this.activeSessions_.size&&this.areAllSessionsLoaded_()&&(this.allSessionsLoaded_.resolve(),this.allSessionsLoaded_=new shaka.util.PublicPromise,this.allSessionsLoaded_.catch(function(){}));this.createSession(a,b,this.currentDrmInfo_.sessionType)}};shaka.media.DrmEngine.prototype.initialized=function(){return this.initialized_};shaka.media.DrmEngine.prototype.getSessionIds=function(){var a=this.activeSessions_.keys();a=shaka.util.Iterables.map(a,function(b){return b.sessionId});return Array.from(a)};
552
- shaka.media.DrmEngine.prototype.getActiveSessionsMetadata=function(){var a=this,b=this.activeSessions_.keys();b=shaka.util.Iterables.map(b,function(c){var d=a.activeSessions_.get(c);return{sessionId:c.sessionId,sessionType:d.type,initData:d.initData,initDataType:d.initDataType}});return Array.from(b)};
550
+ shaka.media.DrmEngine.prototype.createOrLoad=function(){var a=this,b,c,d,e,f;return $jscomp.asyncExecutePromiseGeneratorProgram(function(g){if(1==g.nextAddress){if(!a.storedPersistentSessions_.size)return g.jumpTo(2);a.storedPersistentSessions_.forEach(function(h,k){a.loadOfflineSession_(k,h)});return g.yield(a.allSessionsLoaded_,3)}if(2!=g.nextAddress){b=a.currentDrmInfo_&&a.currentDrmInfo_.keyIds||new Set([]);if(0<b.size&&a.areAllKeysUsable_())return g.return(a.allSessionsLoaded_);a.hasInitData_=
551
+ !1;a.allSessionsLoaded_=new shaka.util.PublicPromise;a.allSessionsLoaded_.catch(function(){})}c=(a.currentDrmInfo_?a.currentDrmInfo_.initData:[])||[];d=$jscomp.makeIterator(c);for(e=d.next();!e.done;e=d.next())f=e.value,a.newInitData(f.initDataType,f.initData);a.areAllSessionsLoaded_()&&a.allSessionsLoaded_.resolve();return g.return(a.allSessionsLoaded_)})};
552
+ shaka.media.DrmEngine.prototype.newInitData=function(a,b){if(b.length){if(this.config_.ignoreDuplicateInitData){var c=this.activeSessions_.values();c=$jscomp.makeIterator(c);for(var d=c.next();!d.done;d=c.next())if(shaka.util.BufferUtils.equal(b,d.value.initData)){shaka.log.debug("Ignoring duplicate init data.");return}var e=!1;this.storedPersistentSessions_.forEach(function(f,g){!e&&shaka.util.BufferUtils.equal(b,f.initData)&&(e=!0)});if(e){shaka.log.debug("Ignoring duplicate init data.");return}}this.hasInitData_=
553
+ !0;0<this.activeSessions_.size&&this.areAllSessionsLoaded_()&&(this.allSessionsLoaded_.resolve(),this.hasInitData_=!1,this.allSessionsLoaded_=new shaka.util.PublicPromise,this.allSessionsLoaded_.catch(function(){}));this.createSession(a,b,this.currentDrmInfo_.sessionType)}};shaka.media.DrmEngine.prototype.initialized=function(){return this.initialized_};
554
+ shaka.media.DrmEngine.prototype.getSessionIds=function(){var a=this.activeSessions_.keys();a=shaka.util.Iterables.map(a,function(b){return b.sessionId});return Array.from(a)};shaka.media.DrmEngine.prototype.getActiveSessionsMetadata=function(){var a=this,b=this.activeSessions_.keys();b=shaka.util.Iterables.map(b,function(c){var d=a.activeSessions_.get(c);return{sessionId:c.sessionId,sessionType:d.type,initData:d.initData,initDataType:d.initDataType}});return Array.from(b)};
553
555
  shaka.media.DrmEngine.prototype.getExpiration=function(){var a=Infinity,b=this.activeSessions_.keys();b=$jscomp.makeIterator(b);for(var c=b.next();!c.done;c=b.next())c=c.value,isNaN(c.expiration)||(a=Math.min(a,c.expiration));return a};shaka.media.DrmEngine.prototype.getLicenseTime=function(){return this.licenseTimeSeconds_?this.licenseTimeSeconds_:NaN};shaka.media.DrmEngine.prototype.getDrmInfo=function(){return this.currentDrmInfo_};shaka.media.DrmEngine.prototype.getMediaKeys=function(){return this.mediaKeys_};
554
556
  shaka.media.DrmEngine.prototype.getKeyStatuses=function(){return shaka.util.MapUtils.asObject(this.announcedKeyStatusByKeyId_)};shaka.media.DrmEngine.prototype.getMediaKeySessions=function(){return Array.from(this.activeSessions_.keys())};
555
- shaka.media.DrmEngine.prototype.queryMediaKeys_=function(a,b){var c=this,d,e,f,g,h,k,l,m;return $jscomp.asyncExecutePromiseGeneratorProgram(function(n){switch(n.nextAddress){case 1:d=new Map;if(b.length){e=c.getKeySystemAccessFromVariants_(b,d);n.jumpTo(2);break}return n.yield(c.getKeySystemAccessByConfigs_(a),3);case 3:e=n.yieldResult;case 2:f=e;if(!f)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.REQUESTED_KEY_SYSTEM_CONFIG_UNAVAILABLE);
556
- c.destroyer_.ensureNotDestroyed();n.setCatchFinallyBlocks(4);g=f.getConfiguration();shaka.log.v2("Got MediaKeySystemAccess with configuration",g);c.currentDrmInfo_=b.length?c.createDrmInfoByInfos_(f.keySystem,d.get(f.keySystem)):shaka.media.DrmEngine.createDrmInfoByConfigs_(f.keySystem,a.get(f.keySystem));if(!c.currentDrmInfo_.licenseServerUri)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.NO_LICENSE_SERVER_GIVEN,c.currentDrmInfo_.keySystem);
557
- return n.yield(f.createMediaKeys(),6);case 6:h=n.yieldResult;c.destroyer_.ensureNotDestroyed();shaka.log.info("Created MediaKeys object for key system",c.currentDrmInfo_.keySystem);c.mediaKeys_=h;if(!(""!=c.config_.minHdcpVersion&&"getStatusForPolicy"in c.mediaKeys_)){n.jumpTo(7);break}n.setCatchFinallyBlocks(8);return n.yield(c.mediaKeys_.getStatusForPolicy({minHdcpVersion:c.config_.minHdcpVersion}),10);case 10:k=n.yieldResult;if("usable"!=k)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
558
- shaka.util.Error.Category.DRM,shaka.util.Error.Code.MIN_HDCP_VERSION_NOT_MATCH);c.destroyer_.ensureNotDestroyed();n.leaveTryBlock(7,4);break;case 8:l=n.enterCatchBlock(4);if(l instanceof shaka.util.Error)throw l;throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.ERROR_CHECKING_HDCP_VERSION,l.message);case 7:return c.initialized_=!0,n.yield(c.setServerCertificate(),11);case 11:c.destroyer_.ensureNotDestroyed();n.leaveTryBlock(0);break;
559
- case 4:m=n.enterCatchBlock();c.destroyer_.ensureNotDestroyed(m);c.currentDrmInfo_=null;if(m instanceof shaka.util.Error)throw m;throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.FAILED_TO_CREATE_CDM,m.message);}})};
557
+ shaka.media.DrmEngine.prototype.queryMediaKeys_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n;return $jscomp.asyncExecutePromiseGeneratorProgram(function(p){switch(p.nextAddress){case 1:d=new Map;if(b.length){e=c.getKeySystemAccessFromVariants_(b,d);p.jumpTo(2);break}return p.yield(c.getKeySystemAccessByConfigs_(a),3);case 3:e=p.yieldResult;case 2:f=e;if(!f)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.REQUESTED_KEY_SYSTEM_CONFIG_UNAVAILABLE);
558
+ c.destroyer_.ensureNotDestroyed();p.setCatchFinallyBlocks(4);g=f.getConfiguration();shaka.log.v2("Got MediaKeySystemAccess with configuration",g);h=c.config_.keySystemsMapping[f.keySystem]||f.keySystem;c.currentDrmInfo_=b.length?c.createDrmInfoByInfos_(h,d.get(h)):shaka.media.DrmEngine.createDrmInfoByConfigs_(h,a.get(h));if(!c.currentDrmInfo_.licenseServerUri)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.NO_LICENSE_SERVER_GIVEN,c.currentDrmInfo_.keySystem);
559
+ return p.yield(f.createMediaKeys(),6);case 6:k=p.yieldResult;c.destroyer_.ensureNotDestroyed();shaka.log.info("Created MediaKeys object for key system",c.currentDrmInfo_.keySystem);c.mediaKeys_=k;if(!(""!=c.config_.minHdcpVersion&&"getStatusForPolicy"in c.mediaKeys_)){p.jumpTo(7);break}p.setCatchFinallyBlocks(8);return p.yield(c.mediaKeys_.getStatusForPolicy({minHdcpVersion:c.config_.minHdcpVersion}),10);case 10:l=p.yieldResult;if("usable"!=l)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
560
+ shaka.util.Error.Category.DRM,shaka.util.Error.Code.MIN_HDCP_VERSION_NOT_MATCH);c.destroyer_.ensureNotDestroyed();p.leaveTryBlock(7,4);break;case 8:m=p.enterCatchBlock(4);if(m instanceof shaka.util.Error)throw m;throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.ERROR_CHECKING_HDCP_VERSION,m.message);case 7:return c.initialized_=!0,p.yield(c.setServerCertificate(),11);case 11:c.destroyer_.ensureNotDestroyed();p.leaveTryBlock(0);break;
561
+ case 4:n=p.enterCatchBlock();c.destroyer_.ensureNotDestroyed(n);c.currentDrmInfo_=null;if(n instanceof shaka.util.Error)throw n;throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.FAILED_TO_CREATE_CDM,n.message);}})};
560
562
  shaka.media.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);
561
563
  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=
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=b.get(g.keySystemAccess.keySystem);h=$jscomp.makeIterator(h);for(var k=h.next();!k.done;k=h.next())if(!!k.value.licenseServerUri==d)return g.keySystemAccess}}return null};
564
+ 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};
563
565
  shaka.media.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
566
  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
567
  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",
@@ -573,28 +575,29 @@ shaka.media.DrmEngine.prototype.createSession=function(a,b,c){var d=this;goog.as
573
575
  this.eventManager_.listen(e,"keystatuseschange",function(f){return d.onKeyStatusesChange_(f)});this.activeSessions_.set(e,{initData:b,initDataType:a,loaded:!1,oldExpiration:Infinity,updatePromise:null,type:c});try{b=this.config_.initDataTransform(b,a,this.currentDrmInfo_)}catch(f){a=f;f instanceof shaka.util.Error||(a=new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.INIT_DATA_TRANSFORM_ERROR,f));this.onError_(a);return}this.config_.logLicenseExchange&&
574
576
  (c=shaka.util.Uint8ArrayUtils.toBase64(b),shaka.log.info("EME init data: type=",a,"data=",c));e.generateRequest(a,b).catch(function(f){if(!d.destroyer_.destroyed()){goog.asserts.assert(f instanceof Error,"Wrong error type!");d.activeSessions_.delete(e);var g=f.errorCode;if(g&&g.systemCode){var h=g.systemCode;0>h&&(h+=Math.pow(2,32));h="0x"+h.toString(16)}d.onError_(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.FAILED_TO_GENERATE_LICENSE_REQUEST,
575
577
  f.message,f,h))}})};shaka.media.DrmEngine.prototype.onSessionMessage_=function(a){this.delayLicenseRequest_()?this.mediaKeyMessageEvents_.push(a):this.sendLicenseRequest_(a)};shaka.media.DrmEngine.prototype.delayLicenseRequest_=function(){return this.video_?this.config_.delayLicenseRequestUntilPlayed&&this.video_.paused&&!this.initialRequestsSent_:!1};
578
+ shaka.media.DrmEngine.prototype.waitForActiveRequests=function(){var a=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(b){return 1==b.nextAddress?a.hasInitData_?b.yield(a.allSessionsLoaded_,3):b.jumpTo(0):b.yield(Promise.all(a.activeRequests_.map(function(c){return c.promise})),0)})};
576
579
  shaka.media.DrmEngine.prototype.sendLicenseRequest_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w;return $jscomp.asyncExecutePromiseGeneratorProgram(function(x){switch(x.nextAddress){case 1:c=a.target;shaka.log.v1("Sending license request for session",c.sessionId,"of type",a.messageType);b.config_.logLicenseExchange&&(d=shaka.util.Uint8ArrayUtils.toBase64(a.message),shaka.log.info("EME license request",d));e=b.activeSessions_.get(c);f=b.currentDrmInfo_.licenseServerUri;g=b.config_.advanced[b.currentDrmInfo_.keySystem];
577
580
  "individualization-request"==a.messageType&&g&&g.individualizationServer&&(f=g.individualizationServer);h=shaka.net.NetworkingEngine.RequestType.LICENSE;k=shaka.net.NetworkingEngine.makeRequest([f],b.config_.retryParameters);k.body=a.message;k.method="POST";k.licenseRequestType=a.messageType;k.sessionId=c.sessionId;k.drmInfo=b.currentDrmInfo_;e&&(k.initData=e.initData,k.initDataType=e.initDataType);if(g&&g.headers)for(l in g.headers)k.headers[l]=g.headers[l];shaka.util.DrmUtils.isPlayReadyKeySystem(b.currentDrmInfo_.keySystem)&&
578
- b.unpackPlayReadyRequest_(k);m=Date.now();x.setCatchFinallyBlocks(2);p=b.playerInterface_.netEngine.request(h,k,{isPreload:b.isPreload_()});return x.yield(p.promise,4);case 4:n=x.yieldResult;x.leaveTryBlock(3);break;case 2:q=x.enterCatchBlock();if(b.destroyer_.destroyed())return x.return();goog.asserts.assert(q instanceof shaka.util.Error,"Wrong NetworkingEngine error type!");r=new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.LICENSE_REQUEST_FAILED,
579
- q);1==b.activeSessions_.size?(b.onError_(r),e&&e.updatePromise&&e.updatePromise.reject(r)):(e&&e.updatePromise&&e.updatePromise.reject(r),b.activeSessions_.delete(c),b.areAllSessionsLoaded_()&&(b.allSessionsLoaded_.resolve(),b.keyStatusTimer_.tickAfter(.1)));return x.return();case 3:if(b.destroyer_.destroyed())return x.return();b.licenseTimeSeconds_+=(Date.now()-m)/1E3;b.config_.logLicenseExchange&&(t=shaka.util.Uint8ArrayUtils.toBase64(n.data),shaka.log.info("EME license response",t));x.setCatchFinallyBlocks(5);
580
- shaka.log.v1("Updating session",c.sessionId);return x.yield(c.update(n.data),7);case 7:x.leaveTryBlock(6);break;case 5:return u=x.enterCatchBlock(),v=new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.LICENSE_RESPONSE_REJECTED,u.message),b.onError_(v),e&&e.updatePromise&&e.updatePromise.reject(v),x.return();case 6:if(b.destroyer_.destroyed())return x.return();w=new shaka.util.FakeEvent("drmsessionupdate");b.playerInterface_.onEvent(w);e&&(e.updatePromise&&
581
- e.updatePromise.resolve(),b.setLoadSessionTimeoutTimer_(e));x.jumpToEnd()}})};
581
+ b.unpackPlayReadyRequest_(k);m=Date.now();x.setCatchFinallyBlocks(2);p=b.playerInterface_.netEngine.request(h,k,{isPreload:b.isPreload_()});b.activeRequests_.push(p);return x.yield(p.promise,4);case 4:n=x.yieldResult;shaka.util.ArrayUtils.remove(b.activeRequests_,p);x.leaveTryBlock(3);break;case 2:q=x.enterCatchBlock();if(b.destroyer_.destroyed())return x.return();goog.asserts.assert(q instanceof shaka.util.Error,"Wrong NetworkingEngine error type!");r=new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
582
+ shaka.util.Error.Category.DRM,shaka.util.Error.Code.LICENSE_REQUEST_FAILED,q);1==b.activeSessions_.size?(b.onError_(r),e&&e.updatePromise&&e.updatePromise.reject(r)):(e&&e.updatePromise&&e.updatePromise.reject(r),b.activeSessions_.delete(c),b.areAllSessionsLoaded_()&&(b.allSessionsLoaded_.resolve(),b.keyStatusTimer_.tickAfter(.1)));return x.return();case 3:if(b.destroyer_.destroyed())return x.return();b.licenseTimeSeconds_+=(Date.now()-m)/1E3;b.config_.logLicenseExchange&&(t=shaka.util.Uint8ArrayUtils.toBase64(n.data),
583
+ shaka.log.info("EME license response",t));x.setCatchFinallyBlocks(5);shaka.log.v1("Updating session",c.sessionId);return x.yield(c.update(n.data),7);case 7:x.leaveTryBlock(6);break;case 5:return u=x.enterCatchBlock(),v=new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.LICENSE_RESPONSE_REJECTED,u.message),b.onError_(v),e&&e.updatePromise&&e.updatePromise.reject(v),x.return();case 6:if(b.destroyer_.destroyed())return x.return();w=new shaka.util.FakeEvent("drmsessionupdate");
584
+ b.playerInterface_.onEvent(w);e&&(e.updatePromise&&e.updatePromise.resolve(),b.setLoadSessionTimeoutTimer_(e));x.jumpToEnd()}})};
582
585
  shaka.media.DrmEngine.prototype.unpackPlayReadyRequest_=function(a){var b=shaka.util.TXml,c=shaka.util.StringUtils.fromUTF16(a.body,!0,!0);if(c.includes("PlayReadyKeyMessage")){shaka.log.debug("Unwrapping PlayReady request.");c=b.parseXmlString(c,"PlayReadyKeyMessage");goog.asserts.assert(c,"Failed to parse PlayReady XML!");var d=b.getElementsByTagName(c,"HttpHeader");d=$jscomp.makeIterator(d);for(var e=d.next();!e.done;e=d.next()){var f=e.value;e=b.getElementsByTagName(f,"name")[0];f=b.getElementsByTagName(f,
583
586
  "value")[0];goog.asserts.assert(e&&f,"Malformed PlayReady headers!");a.headers[shaka.util.TXml.getTextContents(e)]=shaka.util.TXml.getTextContents(f)}b=b.getElementsByTagName(c,"Challenge")[0];goog.asserts.assert(b,"Malformed PlayReady challenge!");goog.asserts.assert("base64encoded"==b.attributes.encoding,"Unexpected PlayReady challenge encoding!");a.body=shaka.util.Uint8ArrayUtils.fromBase64(shaka.util.TXml.getTextContents(b))}else shaka.log.debug("PlayReady request is already unwrapped."),a.headers["Content-Type"]=
584
587
  "text/xml; charset=utf-8"};
585
588
  shaka.media.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.util.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,
586
589
  !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),a.close().catch(function(){}));this.areAllSessionsLoaded_()&&(this.allSessionsLoaded_.resolve(),
587
590
  this.keyStatusTimer_.tickAfter(shaka.media.DrmEngine.KEY_STATUS_BATCH_TIME))};shaka.media.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))};
588
- shaka.media.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,D,y,A,C,F,H;return $jscomp.asyncExecutePromiseGeneratorProgram(function(G){if(1==G.nextAddress){goog.asserts.assert(shaka.util.DrmUtils.isBrowserSupported(),"Must have basic EME support");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".split(" ");
591
+ shaka.media.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,C,y,A,D,F,H;return $jscomp.asyncExecutePromiseGeneratorProgram(function(G){if(1==G.nextAddress){goog.asserts.assert(shaka.util.DrmUtils.isBrowserSupported(),"Must have basic EME support");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".split(" ");
589
592
  b=["SW_SECURE_CRYPTO","SW_SECURE_DECODE","HW_SECURE_CRYPTO","HW_SECURE_DECODE","HW_SECURE_ALL"];c=["150","2000","3000"];d={"com.widevine.alpha":b,"com.widevine.alpha.experiment":b,"com.microsoft.playready.recommendation":c};e=[{contentType:'video/mp4; codecs="avc1.42E01E"'},{contentType:'video/webm; codecs="vp8"'}];f=[{contentType:'audio/mp4; codecs="mp4a.40.2"'},{contentType:'audio/webm; codecs="opus"'}];g={videoCapabilities:e,audioCapabilities:f,initDataTypes:["cenc","sinf","skd","keyids"]};h=[null,
590
593
  "cenc","cbcs","cbcs-1-9"];k=new Map;l=function(E,I){var L,J,M,K,O,Q,N,U;return $jscomp.asyncExecutePromiseGeneratorProgram(function(R){switch(R.nextAddress){case 1:return R.setCatchFinallyBlocks(2),R.yield(I.createMediaKeys(),4);case 4:R.leaveTryBlock(3);break;case 2:return R.enterCatchBlock(),R.return();case 3:J=(L=I.getConfiguration().sessionTypes)?L.includes("persistent-license"):!1,shaka.util.Platform.isTizen3()&&(J=!1),M=I.getConfiguration().videoCapabilities,K=I.getConfiguration().audioCapabilities,
591
594
  O={persistentState:J,encryptionSchemes:[],videoRobustnessLevels:[],audioRobustnessLevels:[]},k.has(E)&&k.get(E)?O=k.get(E):k.set(E,O),(Q=M[0].encryptionScheme)&&!O.encryptionSchemes.includes(Q)&&O.encryptionSchemes.push(Q),(N=M[0].robustness)&&!O.videoRobustnessLevels.includes(N)&&O.videoRobustnessLevels.push(N),(U=K[0].robustness)&&!O.audioRobustnessLevels.includes(U)&&O.audioRobustnessLevels.push(U),R.jumpToEnd()}})};m=function(E,I,L,J){var M,K,O,Q,N,U,R,S,X,W;return $jscomp.asyncExecutePromiseGeneratorProgram(function(P){switch(P.nextAddress){case 1:P.setCatchFinallyBlocks(2);
592
- M=shaka.util.ObjectUtils.cloneObject(g);K=$jscomp.makeIterator(M.videoCapabilities);for(O=K.next();!O.done;O=K.next())Q=O.value,Q.encryptionScheme=I,Q.robustness=L;N=$jscomp.makeIterator(M.audioCapabilities);for(U=N.next();!U.done;U=N.next())R=U.value,R.encryptionScheme=I,R.robustness=J;S=shaka.util.ObjectUtils.cloneObject(M);S.persistentState="required";S.sessionTypes=["persistent-license"];X=[S,M];return P.yield(navigator.requestMediaKeySystemAccess(E,X),4);case 4:return W=P.yieldResult,P.yield(l(E,
593
- W),5);case 5:P.leaveTryBlock(0);break;case 2:P.enterCatchBlock(),P.jumpToEnd()}})};n=function(E,I,L,J){var M,K,O;return $jscomp.asyncExecutePromiseGeneratorProgram(function(Q){switch(Q.nextAddress){case 1:return Q.setCatchFinallyBlocks(2),M={type:"media-source",video:{contentType:e[0].contentType,width:640,height:480,bitrate:1,framerate:1},audio:{contentType:f[0].contentType,channels:2,bitrate:1,samplerate:1},keySystemConfiguration:{keySystem:E,video:{encryptionScheme:I,robustness:L},audio:{encryptionScheme:I,
594
- robustness:J}}},Q.yield(navigator.mediaCapabilities.decodingInfo(M),4);case 4:return K=Q.yieldResult,O=K.keySystemAccess,Q.yield(l(E,O),5);case 5:Q.leaveTryBlock(0);break;case 2:Q.enterCatchBlock(),Q.jumpToEnd()}})};p=$jscomp.makeIterator(a);for(q=p.next();!q.done;q=p.next())r=q.value,k.set(r,null);t=[];u=$jscomp.makeIterator(h);for(v=u.next();!v.done;v=u.next())for(w=v.value,x=$jscomp.makeIterator(a),z=x.next();!z.done;z=x.next())B=z.value,"org.w3.clearkey"===B&&shaka.util.Platform.isSafari()||(t.push(m(B,
595
- w,"","")),t.push(n(B,w,"","")));D=$jscomp.makeIterator(a);for(y=D.next();!y.done;y=D.next())for(A=y.value,C=$jscomp.makeIterator(d[A]||[]),F=C.next();!F.done;F=C.next())H=F.value,t.push(m(A,null,H,"")),t.push(m(A,null,"",H)),t.push(n(A,null,H,"")),t.push(n(A,null,"",H));return G.yield(Promise.all(t),2)}return G.return(shaka.util.MapUtils.asObject(k))})};
595
+ M=shaka.util.ObjectUtils.cloneObject(g);K=$jscomp.makeIterator(M.videoCapabilities);for(O=K.next();!O.done;O=K.next())Q=O.value,Q.encryptionScheme=I,Q.robustness=L;N=$jscomp.makeIterator(M.audioCapabilities);for(U=N.next();!U.done;U=N.next())R=U.value,R.encryptionScheme=I,R.robustness=J;S=shaka.util.ObjectUtils.cloneObject(M);S.persistentState="required";S.sessionTypes=["persistent-license"];X=[S,M];return P.yield(shaka.util.Functional.promiseWithTimeout(1,navigator.requestMediaKeySystemAccess(E,
596
+ X)),4);case 4:return W=P.yieldResult,P.yield(l(E,W),5);case 5:P.leaveTryBlock(0);break;case 2:P.enterCatchBlock(),P.jumpToEnd()}})};n=function(E,I,L,J){var M,K,O,Q;return $jscomp.asyncExecutePromiseGeneratorProgram(function(N){switch(N.nextAddress){case 1:return N.setCatchFinallyBlocks(2),M={type:"media-source",video:{contentType:e[0].contentType,width:640,height:480,bitrate:1,framerate:1},audio:{contentType:f[0].contentType,channels:2,bitrate:1,samplerate:1},keySystemConfiguration:{keySystem:E,video:{encryptionScheme:I,
597
+ robustness:L},audio:{encryptionScheme:I,robustness:J}}},N.yield(shaka.util.Functional.promiseWithTimeout(1,navigator.mediaCapabilities.decodingInfo(M)),4);case 4:return K=N.yieldResult,O=K.keySystemAccess,N.yield(l(E,O),5);case 5:N.leaveTryBlock(0);break;case 2:Q=N.enterCatchBlock(),shaka.log.v2("Failed to probe support for",E,Q),N.jumpToEnd()}})};p=$jscomp.makeIterator(a);for(q=p.next();!q.done;q=p.next())r=q.value,k.set(r,null);t=[];u=$jscomp.makeIterator(h);for(v=u.next();!v.done;v=u.next())for(w=
598
+ v.value,x=$jscomp.makeIterator(a),z=x.next();!z.done;z=x.next())B=z.value,"org.w3.clearkey"===B&&shaka.util.Platform.isSafari()||(t.push(m(B,w,"","")),t.push(n(B,w,"","")));C=$jscomp.makeIterator(a);for(y=C.next();!y.done;y=C.next())for(A=y.value,D=$jscomp.makeIterator(d[A]||[]),F=D.next();!F.done;F=D.next())H=F.value,t.push(m(A,null,H,"")),t.push(m(A,null,"",H)),t.push(n(A,null,H,"")),t.push(n(A,null,"",H));return G.yield(Promise.all(t),2)}return G.return(shaka.util.MapUtils.asObject(k))})};
596
599
  shaka.media.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_=[]};
597
- shaka.media.DrmEngine.prototype.closeSession_=function(a){var b,c;return $jscomp.asyncExecutePromiseGeneratorProgram(function(d){if(1==d.nextAddress)return b=shaka.media.DrmEngine,c=new Promise(function(e,f){(new shaka.util.Timer(f)).tickAfter(b.CLOSE_TIMEOUT_)}),d.setCatchFinallyBlocks(2),d.yield(Promise.race([Promise.all([a.close(),a.closed]),c]),4);if(2!=d.nextAddress)return d.leaveTryBlock(0);d.enterCatchBlock();shaka.log.warning("Timeout waiting for session close");d.jumpToEnd()})};
600
+ shaka.media.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.media.DrmEngine.CLOSE_TIMEOUT_,Promise.all([a.close(),a.closed])),4);if(2!=b.nextAddress)return b.leaveTryBlock(0);b.enterCatchBlock();shaka.log.warning("Timeout waiting for session close");b.jumpToEnd()})};
598
601
  shaka.media.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)&&
599
602
  "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)})};
600
603
  shaka.media.DrmEngine.prototype.getVariantDrmInfos_=function(a){return(a.video?a.video.drmInfos:[]).concat(a.audio?a.audio.drmInfos:[])};shaka.media.DrmEngine.prototype.pollExpiration_=function(){var a=this;this.activeSessions_.forEach(function(b,c){var d=b.oldExpiration,e=c.expiration;isNaN(e)&&(e=Infinity);e!=d&&(a.playerInterface_.onExpirationUpdated(c.sessionId,e),b.oldExpiration=e)})};
@@ -619,8 +622,8 @@ a.next();!d.done;d=a.next())d=d.value,b.set(d,c),c+=d.length;this.newInitData("c
619
622
  SPDX-License-Identifier: Apache-2.0
620
623
  */
621
624
  shaka.media.ManifestFilterer=function(a,b,c){goog.asserts.assert(a,"Must have config");this.config_=a;this.maxHwRes_=b;this.drmEngine_=c};shaka.media.ManifestFilterer.prototype.setDrmEngine=function(a){this.drmEngine_=a};
622
- shaka.media.ManifestFilterer.prototype.filterManifest=function(a){var b=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){if(1==c.nextAddress)return goog.asserts.assert(a,"Manifest should exist!"),c.yield(shaka.util.StreamUtils.filterManifest(b.drmEngine_,a,b.config_.drm.preferredKeySystems),2);b.config_.streaming.dontChooseCodecs||shaka.util.StreamUtils.chooseCodecsAndFilterManifest(a,b.config_.preferredVideoCodecs,b.config_.preferredAudioCodecs,b.config_.preferredDecodingAttributes,
623
- b.config_.preferredTextFormats);b.checkPlayableVariants_(a);return c.return(b.filterManifestWithRestrictions(a))})};shaka.media.ManifestFilterer.prototype.applyRestrictions=function(a){return shaka.util.StreamUtils.applyRestrictions(a.variants,this.config_.restrictions,this.maxHwRes_)};
625
+ shaka.media.ManifestFilterer.prototype.filterManifest=function(a){var b=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){if(1==c.nextAddress)return goog.asserts.assert(a,"Manifest should exist!"),c.yield(shaka.util.StreamUtils.filterManifest(b.drmEngine_,a,b.config_.drm.preferredKeySystems,b.config_.drm.keySystemsMapping),2);b.config_.streaming.dontChooseCodecs||shaka.util.StreamUtils.chooseCodecsAndFilterManifest(a,b.config_.preferredVideoCodecs,b.config_.preferredAudioCodecs,
626
+ b.config_.preferredDecodingAttributes,b.config_.preferredTextFormats);b.checkPlayableVariants_(a);return c.return(b.filterManifestWithRestrictions(a))})};shaka.media.ManifestFilterer.prototype.applyRestrictions=function(a){return shaka.util.StreamUtils.applyRestrictions(a.variants,this.config_.restrictions,this.maxHwRes_)};
624
627
  shaka.media.ManifestFilterer.prototype.filterManifestWithRestrictions=function(a){var b=this.applyRestrictions(a);if(a){var c=this.drmEngine_?this.drmEngine_.getDrmInfo():null;if(c&&this.drmEngine_.getMediaKeys())for(var d=$jscomp.makeIterator(a.variants),e=d.next();!e.done;e=d.next())e=e.value,this.processDrmInfos(c.keySystem,e.video),this.processDrmInfos(c.keySystem,e.audio);this.checkRestrictedVariants(a)}return b};
625
628
  shaka.media.ManifestFilterer.prototype.checkPlayableVariants_=function(a){if(!a.variants.some(shaka.util.StreamUtils.isPlayable))throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.CONTENT_UNSUPPORTED_BY_BROWSER);};
626
629
  shaka.media.ManifestFilterer.prototype.processDrmInfos=function(a,b){if(b){b=$jscomp.makeIterator(b.drmInfos);for(var c=b.next();!c.done;c=b.next())if(c=c.value,c.keySystem==a){c=$jscomp.makeIterator(c.initData||[]);for(var d=c.next();!d.done;d=c.next())d=d.value,this.drmEngine_.newInitData(d.initDataType,d.initData)}}};
@@ -739,7 +742,7 @@ c.skipBits(1);if(c.readBoolean()){g=3!==g?8:12;for(var h=0;h<g;h++)c.readBoolean
739
742
  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};
740
743
  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(),
741
744
  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(),
742
- 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 D=0,y=0;32>y;y++)D|=(B>>y&1)<<31-y;return D>>>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());
745
+ 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 C=0,y=0;32>y;y++)C|=(B>>y&1)<<31-y;return C>>>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());
743
746
  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};
744
747
  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);
745
748
  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);
@@ -762,8 +765,8 @@ shaka.media.MediaSourceEngine.isStreamSupported=function(a,b){var c,d,e,f,g,h,k,
762
765
  for(k=h.next();!k.done;k=h.next())if(l=k.value,m=l.mimeType||a.mimeType||"",n=l.codecs||a.codecs||"",p=m+":"+n,!g.has(p))if(g.add(p),b==e.TEXT){if(q=c.getFullType(m,n),!shaka.text.TextEngine.isTypeSupported(q))return u.return(!1)}else if(b==e.VIDEO?n=f.getCorrectVideoCodecs(n):b==e.AUDIO&&(n=f.getCorrectAudioCodecs(n,m)),r=c.getExtendedType(a,m,n),t=c.getFullTypeWithAllCodecs(m,n),!shaka.media.Capabilities.isTypeSupported(r)&&!d.isSupported(t,a.type))return u.return(!1);return u.return(!0)})};
763
766
  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)),
764
767
  b={};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()};
765
- shaka.media.MediaSourceEngine.prototype.doDestroy_=function(){var a=this,b,c,d,e,f,g,h,k,l,m;return $jscomp.asyncExecutePromiseGeneratorProgram(function(n){if(1==n.nextAddress){b=shaka.util.Functional;c=[];for(d in a.queues_)for(e=a.queues_[d],f=e[0],a.queues_[d]=e.slice(0,1),f&&c.push(f.p.catch(b.noop)),g=$jscomp.makeIterator(e.slice(1)),h=g.next();!h.done;h=g.next())k=h.value,k.p.reject(shaka.util.Destroyer.destroyedError());a.textEngine_&&c.push(a.textEngine_.destroy());for(l in a.transmuxers_)c.push(a.transmuxers_[l].destroy());
766
- return n.yield(Promise.all(c),2)}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_=null;a.secondarySource_=null;a.config_=null;a.mediaSource_=null;a.textEngine_=null;a.textDisplayer_=null;a.sourceBuffers_={};a.transmuxers_={};a.captionParser_=null;if(goog.DEBUG)for(m in a.queues_)goog.asserts.assert(0==
768
+ shaka.media.MediaSourceEngine.prototype.doDestroy_=function(){var a=this,b,c,d,e,f,g,h,k,l,m;return $jscomp.asyncExecutePromiseGeneratorProgram(function(n){if(1==n.nextAddress){b=shaka.util.Functional;c=[];for(d in a.queues_)for(e=a.queues_[d],f=e[0],a.queues_[d]=e.slice(0,1),f&&c.push(f.p.catch(b.noop)),g=$jscomp.makeIterator(e.slice(1)),h=g.next();!h.done;h=g.next())k=h.value,k.p.reject(shaka.util.Destroyer.destroyedError());a.textEngine_&&c.push(a.textEngine_.destroy());return n.yield(Promise.all(c),
769
+ 2)}for(l in a.transmuxers_)a.transmuxers_[l].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_=null;a.secondarySource_=null;a.config_=null;a.mediaSource_=null;a.textEngine_=null;a.textDisplayer_=null;a.sourceBuffers_={};a.transmuxers_={};a.captionParser_=null;if(goog.DEBUG)for(m in a.queues_)goog.asserts.assert(0==
767
770
  a.queues_[m].length,m+" queue should be empty after destroy!");a.queues_={};a.lcevcDec_=null;a.tsParsers_={};a.playerInterface_=null;n.jumpToEnd()})};shaka.media.MediaSourceEngine.prototype.open=function(){return this.mediaSourceOpen_};
768
771
  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:e.sequenceMode_=b,e.manifestType_=c,e.ignoreManifestTimestampsInSegmentsMode_=d,e.attemptTimestampOffsetCalculation_=!e.sequenceMode_&&e.manifestType_==
769
772
  shaka.media.ManifestParser.HLS&&!e.ignoreManifestTimestampsInSegmentsMode_,e.tsParsers_={},e.firstVideoTimestamp_=null,e.firstVideoReferenceStartTime_=null,e.firstAudioTimestamp_=null,e.firstAudioReferenceStartTime_=null,e.audioCompensation_=new shaka.util.PublicPromise,g=$jscomp.makeIterator(a.keys()),h=g.next();case 3:if(h.done){n.jumpTo(5);break}k=h.value;l=a.get(k);return n.yield(e.initSourceBuffer_(k,l,l.codecs),6);case 6:e.needSplitMuxedContent_?(e.queues_[f.AUDIO]=[],e.queues_[f.VIDEO]=[]):
@@ -772,7 +775,7 @@ shaka.media.MediaSourceEngine.prototype.initSourceBuffer_=function(a,b,c){var d=
772
775
  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,(c||"").split(","));if(!m||!n){u.jumpTo(5);break}d.needSplitMuxedContent_=!0;return u.yield(d.initSourceBuffer_(e.AUDIO,
773
776
  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_[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,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.MEDIA_SOURCE_OPERATION_THREW,v,"The mediaSource_ status was "+
774
777
  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_[a]=t;d.sourceBufferTypes_[a]=h;d.expectedEncryption_[a]=!!b.drmInfos.length;u.jumpToEnd()}})};shaka.media.MediaSourceEngine.prototype.configure=function(a){this.config_=a;this.textEngine_&&this.textEngine_.setModifyCueCallback(a.modifyCueCallback)};
775
- shaka.media.MediaSourceEngine.prototype.isStreamingAllowed=function(){return this.streamingAllowed_&&!this.usingRemotePlayback_};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_)};
778
+ shaka.media.MediaSourceEngine.prototype.isStreamingAllowed=function(){return this.streamingAllowed_&&!this.usingRemotePlayback_&&!this.reloadingMediaSource_};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_)};
776
779
  shaka.media.MediaSourceEngine.prototype.ended=function(){return this.reloadingMediaSource_?!1:this.mediaSource_?"ended"==this.mediaSource_.readyState:!0};shaka.media.MediaSourceEngine.prototype.bufferStart=function(a){return Object.keys(this.sourceBuffers_).length?a==shaka.util.ManifestParserUtils.ContentType.TEXT?this.textEngine_.bufferStart():shaka.media.TimeRangesUtils.bufferStart(this.getBuffered_(a)):null};
777
780
  shaka.media.MediaSourceEngine.prototype.bufferEnd=function(a){return Object.keys(this.sourceBuffers_).length?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)};
778
781
  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)};
@@ -786,13 +789,13 @@ c.reader.readBytes(c.reader.getLength()-c.reader.getPosition());if(b&&b.includes
786
789
  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)};
787
790
  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)};
788
791
  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()};
789
- 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,D,y,A,C,F,H,G,E,I,L;return $jscomp.asyncExecutePromiseGeneratorProgram(function(J){switch(J.nextAddress){case 1:m=shaka.util.ManifestParserUtils.ContentType;if(a!=m.TEXT){J.jumpTo(2);break}if(l.manifestType_!=shaka.media.ManifestParser.HLS){J.jumpTo(3);break}return J.yield(l.textSequenceModeOffset_,4);case 4:n=J.yieldResult,
792
+ 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,C,y,A,D,F,H,G,E,I,L;return $jscomp.asyncExecutePromiseGeneratorProgram(function(J){switch(J.nextAddress){case 1:m=shaka.util.ManifestParserUtils.ContentType;if(a!=m.TEXT){J.jumpTo(2);break}if(l.manifestType_!=shaka.media.ManifestParser.HLS){J.jumpTo(3);break}return J.yield(l.textSequenceModeOffset_,4);case 4:n=J.yieldResult,
790
793
  l.textEngine_.setTimestampOffset(n);case 3:return J.yield(l.textEngine_.appendBuffer(b,c?c.startTime:null,c?c.endTime:null,c?c.getUris()[0]:null),5);case 5:return J.return();case 2:if(k||!l.needSplitMuxedContent_){J.jumpTo(6);break}return J.yield(l.appendBuffer(m.AUDIO,b,c,d,e,f,g,h,!0),7);case 7:return J.yield(l.appendBuffer(m.VIDEO,b,c,d,e,f,g,h,!0),8);case 8:return J.return();case 6:if(!l.sourceBuffers_[a])return shaka.log.warning("Attempted to restore a non-existent source buffer"),J.return();
791
794
  p=l.sourceBuffers_[a].timestampOffset;q=l.sourceBufferTypes_[a];l.transmuxers_[a]&&(q=l.transmuxers_[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_),l.audioCompensation_.resolve(v))),
792
795
  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=c.startTime-t,z=Math.abs(p-x),(.001<=z||f||g)&&(!h||0<x||!p)&&(p=x,l.attemptTimestampOffsetCalculation_&&(l.enqueueOperation_(a,function(){return l.abort_(a)},null),l.enqueueOperation_(a,function(){return l.setTimestampOffset_(a,
793
- p)},null))),(B=a==m.VIDEO||!(m.VIDEO in l.sourceBuffers_))&&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_||(D=q.split(";",1)[0],l.captionParser_=l.getCaptionParser(D)),c?(y=l.captionParser_.parseFrom(b),y.length&&l.textEngine_.storeAndAppendClosedCaptions(y,c.startTime,c.endTime,p)):l.captionParser_.init(b,g));if(!l.transmuxers_[a]){J.jumpTo(9);
794
- break}return J.yield(l.transmuxers_[a].transmux(b,d,c,l.mediaSource_.duration,a),10);case 10:b=J.yieldResult;case 9:b=l.workAroundBrokenPlatforms_(b,c?c.startTime:null,a,c?c.getUris()[0]:null);if(!c||!l.sequenceMode_||a==m.TEXT){J.jumpTo(11);break}if(!f&&!g){J.jumpTo(11);break}A=c.startTime;if(l.manifestType_!=shaka.media.ManifestParser.HLS||l.needSplitMuxedContent_||a!=m.AUDIO||!l.sourceBuffers_[m.VIDEO]){J.jumpTo(13);break}return J.yield(l.audioCompensation_,14);case 14:C=J.yieldResult,.1<Math.abs(C)&&
795
- (A-=C);case 13:l.enqueueOperation_(a,function(){return l.abort_(a)},null),l.enqueueOperation_(a,function(){return l.setTimestampOffset_(a,A)},null);case 11:return F=null,J.yield(l.enqueueOperation_(a,function(){goog.DEBUG&&c&&!c.isPreload()&&!h&&(F=l.getBuffered_(a));l.append_(a,b,p)},c?c.getUris()[0]:null),15);case 15:goog.DEBUG&&c&&!c.isPreload()&&!h&&(H=l.getBuffered_(a),G=shaka.media.TimeRangesUtils.computeAddedRange(F,H))&&(E=c.endTime-c.startTime,I=G.end-G.start,L=Math.abs(G.end-c.endTime),
796
+ p)},null))),(B=a==m.VIDEO||!(m.VIDEO in l.sourceBuffers_))&&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)),c?(y=l.captionParser_.parseFrom(b),y.length&&l.textEngine_.storeAndAppendClosedCaptions(y,c.startTime,c.endTime,p)):l.captionParser_.init(b,g));if(!l.transmuxers_[a]){J.jumpTo(9);
797
+ break}return J.yield(l.transmuxers_[a].transmux(b,d,c,l.mediaSource_.duration,a),10);case 10:b=J.yieldResult;case 9:b=l.workAroundBrokenPlatforms_(b,c?c.startTime:null,a,c?c.getUris()[0]:null);if(!c||!l.sequenceMode_||a==m.TEXT){J.jumpTo(11);break}if(!f&&!g){J.jumpTo(11);break}A=c.startTime;if(l.manifestType_!=shaka.media.ManifestParser.HLS||l.needSplitMuxedContent_||a!=m.AUDIO||!l.sourceBuffers_[m.VIDEO]){J.jumpTo(13);break}return J.yield(l.audioCompensation_,14);case 14:D=J.yieldResult,.1<Math.abs(D)&&
798
+ (A-=D);case 13:l.enqueueOperation_(a,function(){return l.abort_(a)},null),l.enqueueOperation_(a,function(){return l.setTimestampOffset_(a,A)},null);case 11:return F=null,J.yield(l.enqueueOperation_(a,function(){goog.DEBUG&&c&&!c.isPreload()&&!h&&(F=l.getBuffered_(a));l.append_(a,b,p)},c?c.getUris()[0]:null),15);case 15:goog.DEBUG&&c&&!c.isPreload()&&!h&&(H=l.getBuffered_(a),G=shaka.media.TimeRangesUtils.computeAddedRange(F,H))&&(E=c.endTime-c.startTime,I=G.end-G.start,L=Math.abs(G.end-c.endTime),
796
799
  .1<E&&(L>E/2||.03<Math.abs(E-I))&&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",G)),J.jumpToEnd()}})};shaka.media.MediaSourceEngine.prototype.setSelectedClosedCaptionId=function(a){var b=this.bufferEnd(shaka.util.ManifestParserUtils.ContentType.VIDEO)||0;this.textEngine_.setSelectedClosedCaptionId(a,b)};
797
800
  shaka.media.MediaSourceEngine.prototype.clearSelectedClosedCaptionId=function(){this.textEngine_&&this.textEngine_.setSelectedClosedCaptionId("",0)};
798
801
  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,27 +815,25 @@ shaka.media.MediaSourceEngine.prototype.setTimestampOffset_=function(a,b){0>b&&(
812
815
  shaka.media.MediaSourceEngine.prototype.onError_=function(a){var b=this.queues_[a][0];goog.asserts.assert(b,"Spurious error event!");goog.asserts.assert(!this.sourceBuffers_[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))};
813
816
  shaka.media.MediaSourceEngine.prototype.onUpdateEnd_=function(a){if(!this.reloadingMediaSource_){var b=this.queues_[a][0];goog.asserts.assert(b,"Spurious updateend event!");b&&(goog.asserts.assert(!this.sourceBuffers_[a].updating,"SourceBuffer should not be updating on updateend!"),b.p.resolve(),this.popFromQueue_(a))}};
814
817
  shaka.media.MediaSourceEngine.prototype.enqueueOperation_=function(a,b,c){this.destroyer_.ensureNotDestroyed();b={start:b,p:new shaka.util.PublicPromise,uri:c};this.queues_[a].push(b);1==this.queues_[a].length&&this.startOperation_(a);return b.p};
815
- shaka.media.MediaSourceEngine.prototype.enqueueBlockingOperation_=function(a){var b=this,c,d,e,f,g,h,k,l,m;return $jscomp.asyncExecutePromiseGeneratorProgram(function(n){switch(n.nextAddress){case 1:b.destroyer_.ensureNotDestroyed();c=[];d={};for(e in b.sourceBuffers_)d={ready:void 0},d.ready=new shaka.util.PublicPromise,f={start:function(p){return function(){return p.ready.resolve()}}(d),p:d.ready,uri:null},b.queues_[e].push(f),c.push(d.ready),1==b.queues_[e].length&&f.start();n.setCatchFinallyBlocks(2);
816
- return n.yield(Promise.all(c),4);case 4:n.leaveTryBlock(3);break;case 2:g=n.enterCatchBlock();goog.asserts.assert(b.destroyer_.destroyed(),"Should be destroyed by now");if(goog.DEBUG)for(h in b.sourceBuffers_)b.queues_[h].length&&(goog.asserts.assert(1==b.queues_[h].length,"Should be at most one item in queue!"),goog.asserts.assert(c.includes(b.queues_[h][0].p),"The item in queue should be one of our waiters!"),b.queues_[h].shift());throw g;case 3:if(goog.DEBUG)for(k in b.sourceBuffers_)goog.asserts.assert(0==
817
- b.sourceBuffers_[k].updating,"SourceBuffers should not be updating after a blocking op!");n.setCatchFinallyBlocks(5,6);return n.yield(a(),6);case 6:n.enterFinallyBlock();for(l in b.sourceBuffers_)b.popFromQueue_(l);n.leaveFinallyBlock(0);break;case 5:throw m=n.enterCatchBlock(),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.MEDIA_SOURCE_OPERATION_THREW,m,b.video_.error||"No error in the media element",null);}})};
818
- shaka.media.MediaSourceEngine.prototype.popFromQueue_=function(a){this.queues_[a].shift();this.startOperation_(a)};
818
+ 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(z){switch(z.nextAddress){case 1:b.destroyer_.ensureNotDestroyed();c=[];d=Object.keys(b.sourceBuffers_);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(B){return function(){return B.ready.resolve()}}(g),p:g.ready,uri:null},
819
+ b.queues_[h].push(k),c.push(g.ready),1==b.queues_[h].length&&k.start();z.setCatchFinallyBlocks(2);return z.yield(Promise.all(c),4);case 4:z.leaveTryBlock(3);break;case 2:l=z.enterCatchBlock();goog.asserts.assert(b.destroyer_.destroyed(),"Should be destroyed by now");if(goog.DEBUG)for(m=$jscomp.makeIterator(d),n=m.next();!n.done;n=m.next())p=n.value,b.queues_[p].length&&(goog.asserts.assert(1==b.queues_[p].length,"Should be at most one item in queue!"),goog.asserts.assert(c.includes(b.queues_[p][0].p),
820
+ "The item in queue should be one of our waiters!"),b.queues_[p].shift());throw l;case 3:if(goog.DEBUG)for(q=$jscomp.makeIterator(d),r=q.next();!r.done;r=q.next())t=r.value,goog.asserts.assert(0==b.sourceBuffers_[t].updating,"SourceBuffers should not be updating after a blocking op!");z.setCatchFinallyBlocks(5,6);return z.yield(a(),6);case 6:z.enterFinallyBlock();u=$jscomp.makeIterator(d);for(v=u.next();!v.done;v=u.next())w=v.value,b.popFromQueue_(w);z.leaveFinallyBlock(0);break;case 5:throw x=z.enterCatchBlock(),
821
+ new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.MEDIA_SOURCE_OPERATION_THREW,x,b.video_.error||"No error in the media element",null);}})};shaka.media.MediaSourceEngine.prototype.popFromQueue_=function(a){goog.asserts.assert(this.queues_[a],"Queue should exist");this.queues_[a].shift();this.startOperation_(a)};
819
822
  shaka.media.MediaSourceEngine.prototype.startOperation_=function(a){var b=this.queues_[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",b.uri)),
820
823
  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};
821
824
  shaka.media.MediaSourceEngine.prototype.workAroundBrokenPlatforms_=function(a,b,c,d){var e=shaka.util.Platform;b=null==b;var f=this.expectedEncryption_[c],g=this.playerInterface_.getKeySystem();this.config_.insertFakeEncryptionInInit&&b&&f&&e.requiresEncryptionInfoInAllInitSegments(g)&&"mp4"==shaka.util.MimeUtils.getContainerType(this.sourceBufferTypes_[c])&&(shaka.log.debug("Forcing fake encryption information in init segment."),a=shaka.media.ContentWorkarounds.fakeEncryption(a,d));return a};
822
825
  shaka.media.MediaSourceEngine.prototype.change_=function(a,b,c){a===shaka.util.ManifestParserUtils.ContentType.TEXT?shaka.log.debug("Change not supported for "+a):(shaka.log.debug("Change Type: "+this.sourceBufferTypes_[a]+" -> "+b),shaka.media.Capabilities.isChangeTypeSupported()?(this.transmuxers_[a]&&(this.transmuxers_[a].destroy(),delete this.transmuxers_[a]),c&&(this.transmuxers_[a]=c),c=this.addExtraFeaturesToMimeType_(b),this.sourceBuffers_[a].changeType(c),this.sourceBufferTypes_[a]=b):shaka.log.debug("Change Type not supported"),
823
- 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)};shaka.media.MediaSourceEngine.prototype.getSourceBufferParams_=function(a){return this.sourceBuffers_[a]?{timestampOffset:this.sourceBuffers_[a].timestampOffset,appendWindowStart:this.sourceBuffers_[a].appendWindowStart,appendWindowEnd:this.sourceBuffers_[a].appendWindowEnd}:null};
824
- shaka.media.MediaSourceEngine.prototype.restoreSourceBufferParams_=function(a,b){b&&(this.sourceBuffers_[a]?(this.sourceBuffers_[a].timestampOffset=b.timestampOffset,this.sourceBuffers_[a].appendWindowEnd=b.appendWindowEnd,this.sourceBuffers_[a].appendWindowStart=b.appendWindowStart):shaka.log.warning("Attempted to restore a non-existent source buffer"))};
825
- 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,D,y,A,C,F,H,G;return $jscomp.asyncExecutePromiseGeneratorProgram(function(E){switch(E.nextAddress){case 1:c=shaka.util.Functional;d=shaka.util.ManifestParserUtils.ContentType;b.reloadingMediaSource_=!0;b.needSplitMuxedContent_=!1;e=b.video_.currentTime;f=b.video_.autoplay;g=b.video_.paused;b.playbackHasBegun_&&(b.video_.autoplay=!1);E.setFinallyBlock(2);b.eventManager_.removeAll();h=[];for(k in b.transmuxers_)h.push(b.transmuxers_[k].destroy());
826
- for(l in b.queues_)for(m=b.queues_[l],n=m[0],b.queues_[l]=m.slice(0,1),n&&h.push(n.p.catch(c.noop)),p=$jscomp.makeIterator(m.slice(1)),q=p.next();!q.done;q=p.next())r=q.value,r.p.reject(shaka.util.Destroyer.destroyedError());for(t in b.sourceBuffers_){u=b.sourceBuffers_[t];try{b.mediaSource_.removeSourceBuffer(u)}catch(I){}}return E.yield(Promise.all(h),4);case 4:return b.transmuxers_={},v=b.mediaSource_.duration,b.mediaSourceOpen_=new shaka.util.PublicPromise,b.mediaSource_=b.createMediaSource(b.mediaSourceOpen_),
827
- E.yield(b.mediaSourceOpen_,5);case 5:!isNaN(v)&&v?b.mediaSource_.duration=v:!isNaN(b.lastDuration_)&&b.lastDuration_&&(b.mediaSource_.duration=b.lastDuration_),w=new shaka.util.PublicPromise,x=b.mediaSource_.sourceBuffers,z=a.size,B=0,D=function(){B++;B===z&&(w.resolve(),b.eventManager_.unlisten(x,"addsourcebuffer",D))},b.eventManager_.listen(x,"addsourcebuffer",D),y=$jscomp.makeIterator(a.keys()),A=y.next();case 6:if(A.done)return(G=a.get(d.AUDIO))&&G.isAudioMuxedInVideo&&(b.needSplitMuxedContent_=
828
- !0),b.video_.currentTime=e,E.yield(w,2);C=A.value;F=b.getSourceBufferParams_(C);H=a.get(C);return E.yield(b.initSourceBuffer_(C,H,H.codecs),9);case 9:b.needSplitMuxedContent_?(b.queues_[d.AUDIO]=[],b.queues_[d.VIDEO]=[]):b.queues_[C]=[];b.restoreSourceBufferParams_(C,F);A=y.next();E.jumpTo(6);break;case 2:E.enterFinallyBlock(),b.reloadingMediaSource_=!1,b.destroyer_.ensureNotDestroyed(),b.eventManager_.listenOnce(b.video_,"canplaythrough",function(){b.destroyer_.destroyed()||(b.video_.autoplay=f,
829
- g||b.video_.play())}),E.leaveFinallyBlock(0)}})};shaka.media.MediaSourceEngine.prototype.reset=function(a){var b=this;return this.enqueueBlockingOperation_(function(){return b.reset_(a)})};
830
- 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,z,B;return $jscomp.asyncExecutePromiseGeneratorProgram(function(D){if(1==D.nextAddress){f=shaka.util.ManifestParserUtils.ContentType;if(a==f.TEXT)return D.return(!1);g=shaka.util.MimeUtils;h=g.getNormalizedCodec(g.getCodecs(e.sourceBufferTypes_[a]));k=g.getBasicType(e.sourceBufferTypes_[a]);m=!1;n=shaka.util.MimeUtils.getFullType(b,c);p=e.config_.forceTransmux;if(!shaka.media.Capabilities.isTypeSupported(n)||
826
+ 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)};
827
+ 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(z){switch(z.nextAddress){case 1:c=shaka.util.ManifestParserUtils.ContentType;b.reloadingMediaSource_=!0;b.needSplitMuxedContent_=!1;d=b.video_.currentTime;e=b.video_.autoplay;f=b.video_.paused;b.playbackHasBegun_&&(b.video_.autoplay=!1);z.setFinallyBlock(2);b.eventManager_.removeAll();for(g in b.transmuxers_)b.transmuxers_[g].destroy();
828
+ for(h in b.sourceBuffers_){k=b.sourceBuffers_[h];try{b.mediaSource_.removeSourceBuffer(k)}catch(B){shaka.log.debug("Exception on removeSourceBuffer",B)}}b.transmuxers_={};b.sourceBuffers_={};l=b.mediaSource_.duration;b.mediaSourceOpen_=new shaka.util.PublicPromise;b.mediaSource_=b.createMediaSource(b.mediaSourceOpen_);return z.yield(b.mediaSourceOpen_,4);case 4:!isNaN(l)&&l?b.mediaSource_.duration=l:!isNaN(b.lastDuration_)&&b.lastDuration_&&(b.mediaSource_.duration=b.lastDuration_),m=new shaka.util.PublicPromise,
829
+ n=b.mediaSource_.sourceBuffers,p=a.size,q=0,r=function(){q++;q===p&&(m.resolve(),b.eventManager_.unlisten(n,"addsourcebuffer",r))},b.eventManager_.listen(n,"addsourcebuffer",r),t=$jscomp.makeIterator(a.keys()),u=t.next();case 5:if(u.done)return(x=a.get(c.AUDIO))&&x.isAudioMuxedInVideo&&(b.needSplitMuxedContent_=!0),b.needSplitMuxedContent_&&!b.queues_[c.AUDIO]&&(b.queues_[c.AUDIO]=[]),b.video_.currentTime=d,z.yield(m,2);v=u.value;w=a.get(v);return z.yield(b.initSourceBuffer_(v,w,w.codecs),6);case 6:u=
830
+ t.next();z.jumpTo(5);break;case 2:z.enterFinallyBlock(),b.reloadingMediaSource_=!1,b.destroyer_.ensureNotDestroyed(),b.eventManager_.listenOnce(b.video_,"canplaythrough",function(){b.destroyer_.destroyed()||(b.video_.autoplay=e,f||b.video_.play())}),z.leaveFinallyBlock(0)}})};shaka.media.MediaSourceEngine.prototype.reset=function(a){var b=this;return this.enqueueBlockingOperation_(function(){return b.reset_(a)})};
831
+ 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,z,B;return $jscomp.asyncExecutePromiseGeneratorProgram(function(C){if(1==C.nextAddress){f=shaka.util.ManifestParserUtils.ContentType;if(a==f.TEXT)return C.return(!1);g=shaka.util.MimeUtils;h=g.getNormalizedCodec(g.getCodecs(e.sourceBufferTypes_[a]));k=g.getBasicType(e.sourceBufferTypes_[a]);m=!1;n=shaka.util.MimeUtils.getFullType(b,c);p=e.config_.forceTransmux;if(!shaka.media.Capabilities.isTypeSupported(n)||
831
832
  !e.sequenceMode_&&shaka.util.MimeUtils.RAW_FORMATS.includes(n))p=!0;q=shaka.transmuxer.TransmuxerEngine;p&&(r=shaka.util.MimeUtils.getFullTypeWithAllCodecs(b,c),t=q.findTransmuxer(r))&&(l=t(),u=shaka.util.ManifestParserUtils.guessCodecsSafe(f.AUDIO,(c||"").split(",")),v=shaka.util.ManifestParserUtils.guessCodecsSafe(f.VIDEO,(c||"").split(",")),u&&v?(m=!0,w=v,a==f.AUDIO&&(w=u),n=l.convertCodecs(a,shaka.util.MimeUtils.getFullTypeWithAllCodecs(b,w))):n=l.convertCodecs(a,r));x=g.getNormalizedCodec(g.getCodecs(n));
832
- z=g.getBasicType(n);if(h===x&&k===z)return e.transmuxers_[a]&&!l?(e.transmuxers_[a].destroy(),delete e.transmuxers_[a]):!e.transmuxers_[a]&&l?e.transmuxers_[a]=l:l&&(e.transmuxers_[a]&&e.transmuxers_[a].transmux!=l.transmux?(e.transmuxers_[a].destroy(),delete e.transmuxers_[a],e.transmuxers_[a]=l):l.destroy()),D.return(!1);B=!0;if(e.needSplitMuxedContent_||m&&l&&!e.transmuxers_[a])B=!1;if(B&&e.config_.codecSwitchingStrategy===shaka.config.CodecSwitchingStrategy.SMOOTH&&shaka.media.Capabilities.isChangeTypeSupported())return D.yield(e.changeType(a,
833
- n,l),3);l&&l.destroy();return D.yield(e.reset(d),3)}return D.return(!0)})};
834
- shaka.media.MediaSourceEngine.prototype.isCodecSwitchNecessary_=function(a,b,c,d){if(a==shaka.util.ManifestParserUtils.ContentType.TEXT)return!1;var e=shaka.util.MimeUtils;b=e.getNormalizedCodec(e.getCodecs(this.sourceBufferTypes_[a]));var f=e.getBasicType(this.sourceBufferTypes_[a]),g=shaka.util.MimeUtils.getFullType(c,d),h=this.config_.forceTransmux;if(!shaka.media.Capabilities.isTypeSupported(g)||!this.sequenceMode_&&shaka.util.MimeUtils.RAW_FORMATS.includes(g))h=!0;c=shaka.util.MimeUtils.getFullTypeWithAllCodecs(c,
835
- d);d=shaka.transmuxer.TransmuxerEngine;h&&(h=d.findTransmuxer(c))&&(h=h(),g=h.convertCodecs(a,c),h.destroy());a=e.getNormalizedCodec(e.getCodecs(g));e=e.getBasicType(g);return b!==a||f!==e};shaka.media.MediaSourceEngine.prototype.isResetMediaSourceNecessary=function(a,b,c,d){return this.isCodecSwitchNecessary_(a,b,c,d)?this.config_.codecSwitchingStrategy!==shaka.config.CodecSwitchingStrategy.SMOOTH||!shaka.media.Capabilities.isChangeTypeSupported()||this.needSplitMuxedContent_:!1};
833
+ z=g.getBasicType(n);if(h===x&&k===z)return e.transmuxers_[a]&&!l?(e.transmuxers_[a].destroy(),delete e.transmuxers_[a]):!e.transmuxers_[a]&&l?e.transmuxers_[a]=l:l&&(e.transmuxers_[a]&&e.transmuxers_[a].transmux!=l.transmux?(e.transmuxers_[a].destroy(),delete e.transmuxers_[a],e.transmuxers_[a]=l):l.destroy()),C.return(!1);B=!0;if(e.needSplitMuxedContent_||m&&l&&!e.transmuxers_[a])B=!1;if(B&&e.config_.codecSwitchingStrategy===shaka.config.CodecSwitchingStrategy.SMOOTH&&shaka.media.Capabilities.isChangeTypeSupported())return C.yield(e.changeType(a,
834
+ n,l),3);l&&l.destroy();return C.yield(e.reset(d),3)}return C.return(!0)})};
835
+ 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_[a])),f=d.getBasicType(this.sourceBufferTypes_[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,
836
+ 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};
836
837
  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};
837
838
  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};
838
839
  shaka.media.PresentationTimeline.prototype.setDuration=function(a){goog.asserts.assert(0<a,"duration must be > 0");this.duration_=a};shaka.media.PresentationTimeline.prototype.getPresentationStartTime=function(){return this.presentationStartTime_};shaka.media.PresentationTimeline.prototype.setClockOffset=function(a){this.clockOffset_=a};shaka.media.PresentationTimeline.prototype.setStatic=function(a){a&&!this.static_&&(this.isLive2VodTransition_=!0);this.static_=a};
@@ -983,7 +984,7 @@ l=shaka.util.Mp4BoxParsers.parseMDHD(y.reader,y.version).language}).box("minf",c
983
984
  w).box("hvc1",w).box("dva1",w).box("dvav",w).box("dvh1",w).box("dvhe",w).box("vp09",w).box("av01",w).box("avcC",function(y){var A=u||"";switch(u){case "dvav":A="avc3";break;case "dva1":A="avc1"}y=shaka.util.Mp4BoxParsers.parseAVCC(A,y.reader,y.name);f.push(y.codec);h=!0}).box("hvcC",function(y){var A=u||"";switch(u){case "dvh1":A="hvc1";break;case "dvhe":A="hev1"}y=shaka.util.Mp4BoxParsers.parseHVCC(A,y.reader,y.name);f.push(y.codec);h=!0}).box("dvcC",function(y){var A=u||"";switch(u){case "hvc1":A=
984
985
  "dvh1";break;case "hev1":A="dvhe";break;case "avc1":A="dva1";break;case "avc3":A="dvav";break;case "av01":A="dav1"}y=shaka.util.Mp4BoxParsers.parseDVCC(A,y.reader,y.name);f.push(y.codec);h=!0}).box("dvvC",function(y){var A=u||"";switch(u){case "hvc1":A="dvh1";break;case "hev1":A="dvhe";break;case "avc1":A="dva1";break;case "avc3":A="dvav";break;case "av01":A="dav1"}y=shaka.util.Mp4BoxParsers.parseDVVC(A,y.reader,y.name);f.push(y.codec);h=!0}).fullBox("vpcC",function(y){y=shaka.util.Mp4BoxParsers.parseVPCC(u||
985
986
  "",y.reader,y.name);f.push(y.codec);h=!0}).box("av1C",function(y){var A=u||"";switch(u){case "dav1":A="av01"}y=shaka.util.Mp4BoxParsers.parseAV1C(A,y.reader,y.name);f.push(y.codec);h=!0}).box("enca",c.audioSampleEntry).box("encv",c.visualSampleEntry).box("sinf",c.children).box("frma",function(y){y=shaka.util.Mp4BoxParsers.parseFRMA(y.reader).codec;k(y)}).box("colr",function(y){f=f.map(function(F){return F.startsWith("av01.")?shaka.util.Mp4BoxParsers.updateAV1CodecWithCOLRBox(F,y.reader):F});var A=
986
- shaka.util.Mp4BoxParsers.parseCOLR(y.reader),C=A.colorGamut;r=A.videoRange;t=C}).parse(a||b,!0);if(!e.length&&!f.length)return null;v=g&&!h;w=new Map;if(h){var x=new shaka.media.ClosedCaptionParser("video/mp4");a&&x.init(a);try{x.parseFrom(b);for(var z=$jscomp.makeIterator(x.getStreams()),B=z.next();!B.done;B=z.next()){var D=B.value;w.set(D,D)}}catch(y){shaka.log.debug("Error detecting CC streams",y)}x.reset()}a=e.concat(f);return{type:v?"audio":"video",mimeType:v?"audio/mp4":"video/mp4",codecs:d.codecsFiltering(a).join(", "),
987
+ shaka.util.Mp4BoxParsers.parseCOLR(y.reader),D=A.colorGamut;r=A.videoRange;t=D}).parse(a||b,!0);if(!e.length&&!f.length)return null;v=g&&!h;w=new Map;if(h){var x=new shaka.media.ClosedCaptionParser("video/mp4");a&&x.init(a);try{x.parseFrom(b);for(var z=$jscomp.makeIterator(x.getStreams()),B=z.next();!B.done;B=z.next()){var C=B.value;w.set(C,C)}}catch(y){shaka.log.debug("Error detecting CC streams",y)}x.reset()}a=e.concat(f);return{type:v?"audio":"video",mimeType:v?"audio/mp4":"video/mp4",codecs:d.codecsFiltering(a).join(", "),
987
988
  language:l,height:m,width:n,channelCount:p,sampleRate:q,closedCaptions:w,videoRange:r,colorGamut:t,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
989
  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
990
  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};
@@ -1041,33 +1042,33 @@ shaka.media.StreamingEngine.prototype.getTimeNeeded_=function(a,b){return a.last
1041
1042
  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>
1042
1043
  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&&
1043
1044
  (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};
1044
- 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,D,y,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(C){switch(C.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;C.setCatchFinallyBlocks(2);
1045
- 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 C.yield(e.initSourceBuffer_(a,c,d),4);case 4:e.destroyer_.ensureNotDestroyed();if(e.fatalError_)return C.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!=
1045
+ 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,C,y,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(D){switch(D.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;D.setCatchFinallyBlocks(2);
1046
+ 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 D.yield(e.initSourceBuffer_(a,c,d),4);case 4:e.destroyer_.ensureNotDestroyed();if(e.fatalError_)return D.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!=
1046
1047
  shaka.media.ManifestParser.HLS||c.hasByterangeOptimization()))return t=new Uint8Array(0),v=u=!1,x=function(F){var H,G,E,I;return $jscomp.asyncExecutePromiseGeneratorProgram(function(L){switch(L.nextAddress){case 1:if(u)return L.return();v=!0;e.destroyer_.ensureNotDestroyed();if(e.fatalError_)return L.return();L.setCatchFinallyBlocks(2);t=e.concatArray_(t,F);H=!1;G=0;(new shaka.util.Mp4Parser).box("mdat",function(J){G=J.size+J.start;H=!0}).parse(t,!1,!0);if(!H){L.jumpTo(4);break}E=t.subarray(0,G);
1047
- t=t.subarray(G);return L.yield(e.append_(a,b,k,c,E,!0,d),5);case 5:a.segmentPrefetch&&a.segmentIterator&&a.segmentPrefetch.prefetchSegmentsByTime(c.startTime,!0);case 4:L.leaveTryBlock(0);break;case 2:w=I=L.enterCatchBlock(),L.jumpToEnd()}})},C.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 C.yield(q,7);case 7:r=C.yieldResult;e.destroyer_.ensureNotDestroyed();if(e.fatalError_)return C.return();
1048
- e.destroyer_.ensureNotDestroyed();return a.waitingToClearBuffer?(shaka.log.info(h,"waitingToClearBuffer, skip append"),a.performingUpdate=!1,e.scheduleUpdate_(a,0),C.return()):C.yield(e.append_(a,b,k,c,r,!1,d),6);case 9:z=C.yieldResult;if(w)throw w;if(v){C.jumpTo(10);break}u=!0;e.destroyer_.ensureNotDestroyed();return e.fatalError_?C.return():a.waitingToClearBuffer?(shaka.log.info(h,"waitingToClearBuffer, skip append"),a.performingUpdate=!1,e.scheduleUpdate_(a,0),C.return()):C.yield(e.append_(a,b,
1049
- 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 C.return();a.lastSegmentReference=c;B=l.next().value;shaka.log.v2(h,"advancing to next segment",B);a.performingUpdate=!1;a.recovering=!1;D=e.playerInterface_.mediaSourceEngine.getBufferedInfo();y=D[a.type];shaka.log.v1(h,"finished fetch and append",JSON.stringify(y));if(!a.waitingToClearBuffer)e.playerInterface_.onSegmentAppended(c,
1050
- a.stream);e.scheduleUpdate_(a,0);C.leaveTryBlock(0);break;case 2:A=C.enterCatchBlock();e.destroyer_.ensureNotDestroyed(A);if(e.fatalError_)return C.return();goog.asserts.assert(A instanceof shaka.util.Error,"Should only receive a Shaka error");a.performingUpdate=!1;if(A.code==shaka.util.Error.Code.OPERATION_ABORTED)a.performingUpdate=!1,e.cancelUpdate_(a),e.scheduleUpdate_(a,0),C.jumpTo(0);else if(a.type==f.TEXT&&e.config_.ignoreTextStreamFailures)A.code==shaka.util.Error.Code.BAD_HTTP_STATUS?shaka.log.warning(h,
1051
- "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),C.jumpTo(0);else{if(A.code==shaka.util.Error.Code.QUOTA_EXCEEDED_ERROR)return C.yield(e.handleQuotaExceeded_(a,A),0);shaka.log.error(h,"failed fetch and append: code="+A.code);a.hasError=!0;A.category==shaka.util.Error.Category.NETWORK&&a.segmentPrefetch&&a.segmentPrefetch.removeReference(c);A.severity=shaka.util.Error.Severity.CRITICAL;
1052
- return C.yield(e.handleStreamingError_(a,A),0)}}})};
1048
+ t=t.subarray(G);return L.yield(e.append_(a,b,k,c,E,!0,d),5);case 5:a.segmentPrefetch&&a.segmentIterator&&a.segmentPrefetch.prefetchSegmentsByTime(c.startTime,!0);case 4:L.leaveTryBlock(0);break;case 2:w=I=L.enterCatchBlock(),L.jumpToEnd()}})},D.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 D.yield(q,7);case 7:r=D.yieldResult;e.destroyer_.ensureNotDestroyed();if(e.fatalError_)return D.return();
1049
+ e.destroyer_.ensureNotDestroyed();return a.waitingToClearBuffer?(shaka.log.info(h,"waitingToClearBuffer, skip append"),a.performingUpdate=!1,e.scheduleUpdate_(a,0),D.return()):D.yield(e.append_(a,b,k,c,r,!1,d),6);case 9:z=D.yieldResult;if(w)throw w;if(v){D.jumpTo(10);break}u=!0;e.destroyer_.ensureNotDestroyed();return e.fatalError_?D.return():a.waitingToClearBuffer?(shaka.log.info(h,"waitingToClearBuffer, skip append"),a.performingUpdate=!1,e.scheduleUpdate_(a,0),D.return()):D.yield(e.append_(a,b,
1050
+ 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 D.return();a.lastSegmentReference=c;B=l.next().value;shaka.log.v2(h,"advancing to next segment",B);a.performingUpdate=!1;a.recovering=!1;C=e.playerInterface_.mediaSourceEngine.getBufferedInfo();y=C[a.type];shaka.log.v1(h,"finished fetch and append",JSON.stringify(y));if(!a.waitingToClearBuffer)e.playerInterface_.onSegmentAppended(c,
1051
+ a.stream);e.scheduleUpdate_(a,0);D.leaveTryBlock(0);break;case 2:A=D.enterCatchBlock();e.destroyer_.ensureNotDestroyed(A);if(e.fatalError_)return D.return();goog.asserts.assert(A instanceof shaka.util.Error,"Should only receive a Shaka error");a.performingUpdate=!1;if(A.code==shaka.util.Error.Code.OPERATION_ABORTED)a.performingUpdate=!1,e.cancelUpdate_(a),e.scheduleUpdate_(a,0),D.jumpTo(0);else if(a.type==f.TEXT&&e.config_.ignoreTextStreamFailures)A.code==shaka.util.Error.Code.BAD_HTTP_STATUS?shaka.log.warning(h,
1052
+ "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),D.jumpTo(0);else{if(A.code==shaka.util.Error.Code.QUOTA_EXCEEDED_ERROR)return D.yield(e.handleQuotaExceeded_(a,A),0);shaka.log.error(h,"failed fetch and append: code="+A.code);a.hasError=!0;A.category==shaka.util.Error.Category.NETWORK&&a.segmentPrefetch&&a.segmentPrefetch.removeReference(c);A.severity=shaka.util.Error.Severity.CRITICAL;
1053
+ return D.yield(e.handleStreamingError_(a,A),0)}}})};
1053
1054
  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..."),
1054
1055
  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};
1055
1056
  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",
1056
1057
  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();
1057
1058
  return n.yield(c.evict_(a,m),2)}c.scheduleUpdate_(a,4);n.jumpToEnd()})};
1058
- 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,D;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_)+
1059
+ 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,C;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_)+
1059
1060
  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 "+
1060
- n);u=a.lastCodecs&&a.lastMimeType&&d.playerInterface_.mediaSourceEngine.isResetMediaSourceNecessary(a.type,a.stream,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,d.forceClearBuffer_(v);case 3:return y.yield(d.setProperties_(a,t,m,n,b,q,r),2);case 2:return shaka.media.InitSegmentReference.equal(b.initSegmentReference,
1061
- 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 A,C,F,H,G,E,I,L,J;return $jscomp.asyncExecutePromiseGeneratorProgram(function(M){switch(M.nextAddress){case 1:return M.setCatchFinallyBlocks(2),M.yield(w,4);case 4:return A=M.yieldResult,d.destroyer_.ensureNotDestroyed(),C=null,F=new Map,H={projection:null,hfov:null},G=new shaka.util.Mp4Parser,
1062
- E=shaka.util.Mp4Parser,I=shaka.util.Mp4BoxParsers,G.box("moov",E.children).box("trak",E.children).box("mdia",E.children).fullBox("mdhd",function(K){goog.asserts.assert(null!=K.version,"MDHD is a full box and should have a valid version.");C=I.parseMDHD(K.reader,K.version).timescale}).box("hdlr",function(K){switch(I.parseHDLR(K.reader).handlerType){case "soun":F.set(e.AUDIO,C);break;case "vide":F.set(e.VIDEO,C)}C=null}).box("minf",E.children).box("stbl",E.children).fullBox("stsd",E.sampleDescription).box("encv",
1063
- E.visualSampleEntry).box("avc1",E.visualSampleEntry).box("avc3",E.visualSampleEntry).box("hev1",E.visualSampleEntry).box("hvc1",E.visualSampleEntry).box("dvav",E.visualSampleEntry).box("dva1",E.visualSampleEntry).box("dvh1",E.visualSampleEntry).box("dvhe",E.visualSampleEntry).box("dvc1",E.visualSampleEntry).box("dvi1",E.visualSampleEntry).box("vexu",E.children).box("proj",E.children).fullBox("prji",function(K){K=I.parsePRJI(K.reader);H.projection=K.projection}).box("hfov",function(K){K=I.parseHFOV(K.reader);
1064
- H.hfov=K.hfov}).parse(A),d.updateSpatialVideoInfo_(H),F.has(a.type)?b.initSegmentReference.timescale=F.get(a.type):null!=C&&(b.initSegmentReference.timescale=C),shaka.log.v1(h,"appending init segment"),L=a.stream.closedCaptions&&0<a.stream.closedCaptions.size,M.yield(d.playerInterface_.beforeAppendSegment(a.type,A),5);case 5:return M.yield(d.playerInterface_.mediaSourceEngine.appendBuffer(a.type,A,null,a.stream,L,a.seeked,c),6);case 6:M.leaveTryBlock(0);break;case 2:throw J=M.enterCatchBlock(),a.lastInitSegmentReference=
1065
- null,J;}})},z=b.startTime,k&&(B=d.playerInterface_.mediaSourceEngine.bufferEnd(a.type),null!=B&&(z=B)),d.playerInterface_.onInitSegmentAppended(z,b.initSegmentReference),l.push(x()))),D=a.lastSegmentReference?a.lastSegmentReference.discontinuitySequence:null,b.discontinuitySequence!=D&&l.push(d.playerInterface_.mediaSourceEngine.resync(a.type,b.startTime)),y.yield(Promise.all(l),0)}})};
1061
+ 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);
1062
+ 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 A,D,F,H,G,E,I,L,J;return $jscomp.asyncExecutePromiseGeneratorProgram(function(M){switch(M.nextAddress){case 1:return M.setCatchFinallyBlocks(2),M.yield(w,4);case 4:return A=M.yieldResult,d.destroyer_.ensureNotDestroyed(),
1063
+ D=null,F=new Map,H={projection:null,hfov:null},G=new shaka.util.Mp4Parser,E=shaka.util.Mp4Parser,I=shaka.util.Mp4BoxParsers,G.box("moov",E.children).box("trak",E.children).box("mdia",E.children).fullBox("mdhd",function(K){goog.asserts.assert(null!=K.version,"MDHD is a full box and should have a valid version.");D=I.parseMDHD(K.reader,K.version).timescale}).box("hdlr",function(K){switch(I.parseHDLR(K.reader).handlerType){case "soun":F.set(e.AUDIO,D);break;case "vide":F.set(e.VIDEO,D)}D=null}).box("minf",
1064
+ E.children).box("stbl",E.children).fullBox("stsd",E.sampleDescription).box("encv",E.visualSampleEntry).box("avc1",E.visualSampleEntry).box("avc3",E.visualSampleEntry).box("hev1",E.visualSampleEntry).box("hvc1",E.visualSampleEntry).box("dvav",E.visualSampleEntry).box("dva1",E.visualSampleEntry).box("dvh1",E.visualSampleEntry).box("dvhe",E.visualSampleEntry).box("dvc1",E.visualSampleEntry).box("dvi1",E.visualSampleEntry).box("vexu",E.children).box("proj",E.children).fullBox("prji",function(K){K=I.parsePRJI(K.reader);
1065
+ H.projection=K.projection}).box("hfov",function(K){K=I.parseHFOV(K.reader);H.hfov=K.hfov}).parse(A),d.updateSpatialVideoInfo_(H),F.has(a.type)?b.initSegmentReference.timescale=F.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,A),5);case 5:return M.yield(d.playerInterface_.mediaSourceEngine.appendBuffer(a.type,A,null,a.stream,L,a.seeked,
1066
+ c),6);case 6:M.leaveTryBlock(0);break;case 2:throw J=M.enterCatchBlock(),a.lastInitSegmentReference=null,J;}})},z=b.startTime,k&&(B=d.playerInterface_.mediaSourceEngine.bufferEnd(a.type),null!=B&&(z=B)),d.playerInterface_.onInitSegmentAppended(z,b.initSegmentReference),l.push(x()))),C=a.lastSegmentReference?a.lastSegmentReference.discontinuitySequence:null,b.discontinuitySequence!=C&&l.push(d.playerInterface_.mediaSourceEngine.resync(a.type,b.startTime)),y.yield(Promise.all(l),0)}})};
1066
1067
  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=
1067
1068
  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;})};
1068
1069
  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&&
1069
- 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,D;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"==
1070
- typeof p,"Should be an number!");x=-w/p;z=Number(a.lastTimestampOffset)||0;if(!(z<x))return y.jumpTo(0);B=a.lastAppendWindowStart;D=a.lastAppendWindowEnd;goog.asserts.assert("number"==typeof B,"Should be an number!");goog.asserts.assert("number"==typeof D,"Should be an number!");return y.yield(h.setProperties_(a,x,B,D,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),
1070
+ 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,C;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"==
1071
+ typeof p,"Should be an number!");x=-w/p;z=Number(a.lastTimestampOffset)||0;if(!(z<x))return y.jumpTo(0);B=a.lastAppendWindowStart;C=a.lastAppendWindowEnd;goog.asserts.assert("number"==typeof B,"Should be an number!");goog.asserts.assert("number"==typeof C,"Should be an number!");return y.yield(h.setProperties_(a,x,B,C,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),
1071
1072
  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()}})};
1072
1073
  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.getSeekRangeStart());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=c.playerInterface_.mediaSourceEngine.bufferStart(a.type);
1073
1074
  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,"buffer behind too large:","presentationTime="+b,"bufferedBehind="+
@@ -1085,9 +1086,9 @@ g.yield(c.onUpdate_(a),4);if(2!=g.nextAddress)return g.leaveTryBlock(0);f=g.ente
1085
1086
  shaka.media.StreamingEngine.prototype.abortOperations_=function(a){return $jscomp.asyncExecutePromiseGeneratorProgram(function(b){return a.operation?b.yield(a.operation.abort(),0):b.jumpTo(0)})};
1086
1087
  shaka.media.StreamingEngine.prototype.handleStreamingError_=function(a,b){var c=this,d,e;return $jscomp.asyncExecutePromiseGeneratorProgram(function(f){if(1==f.nextAddress)return d=shaka.media.StreamingEngine.logPrefix_(a),f.yield(c.failureCallbackBackoff_.attempt(),2);c.destroyer_.ensureNotDestroyed();if(b.category===shaka.util.Error.Category.NETWORK&&b.code!=shaka.util.Error.Code.TIMEOUT){if(a.restoreStreamAfterTrickPlay)return c.setTrickPlay(!1),f.return();(e=c.getDisabledTime_(b))&&shaka.log.debug(d,
1087
1088
  "Disabling stream due to error",b);b.handled=c.playerInterface_.disableStream(a.stream,e);b.handled&&(b.severity=shaka.util.Error.Severity.RECOVERABLE)}if(!b.handled||b.code!=shaka.util.Error.Code.SEGMENT_MISSING)c.playerInterface_.onError(b);b.handled||c.config_.failureCallback(b);f.jumpToEnd()})};shaka.media.StreamingEngine.prototype.getDisabledTime_=function(a){return 0===this.config_.maxDisabledTime&&a.code==shaka.util.Error.Code.SEGMENT_MISSING?1:this.config_.maxDisabledTime};
1088
- shaka.media.StreamingEngine.prototype.resetMediaSource=function(a,b){a=void 0===a?!1:a;b=void 0===b?!0:b;var c=this,d,e,f,g,h,k;return $jscomp.asyncExecutePromiseGeneratorProgram(function(l){if(1==l.nextAddress){d=Date.now()/1E3;e=c.config_.minTimeBetweenRecoveries;if(!a){if(!c.config_.allowMediaSourceRecoveries||d-c.lastMediaSourceReset_<e)return l.return(!1);c.lastMediaSourceReset_=d}f=shaka.util.ManifestParserUtils.ContentType;if(g=c.mediaStates_.get(f.AUDIO))g.lastInitSegmentReference=null,b&&
1089
- c.forceClearBuffer_(g),c.abortOperations_(g).catch(function(){}),g.segmentIterator&&g.segmentIterator.resetToLastIndependent();if(h=c.mediaStates_.get(f.VIDEO))h.lastInitSegmentReference=null,b&&c.forceClearBuffer_(h),c.abortOperations_(h).catch(function(){}),h.segmentIterator&&h.segmentIterator.resetToLastIndependent();k=new Map;c.currentVariant_.audio&&k.set(f.AUDIO,c.currentVariant_.audio);c.currentVariant_.video&&k.set(f.VIDEO,c.currentVariant_.video);return l.yield(c.playerInterface_.mediaSourceEngine.reset(k),
1090
- 2)}!h||h.performingUpdate||h.updateTimer||c.scheduleUpdate_(h,0);!g||g.performingUpdate||g.updateTimer||c.scheduleUpdate_(g,0);return l.return(!0)})};
1089
+ shaka.media.StreamingEngine.prototype.resetMediaSource=function(a,b){a=void 0===a?!1:a;b=void 0===b?!0:b;var c=this,d,e,f,g,h,k;return $jscomp.asyncExecutePromiseGeneratorProgram(function(l){if(1==l.nextAddress){d=Date.now()/1E3;e=c.config_.minTimeBetweenRecoveries;if(!a){if(!c.config_.allowMediaSourceRecoveries||d-c.lastMediaSourceReset_<e)return l.return(!1);c.lastMediaSourceReset_=d}f=shaka.util.ManifestParserUtils.ContentType;if(g=c.mediaStates_.get(f.AUDIO))g.lastInitSegmentReference=null,g.lastAppendWindowStart=
1090
+ null,g.lastAppendWindowEnd=null,b&&c.forceClearBuffer_(g),c.abortOperations_(g).catch(function(){}),g.segmentIterator&&g.segmentIterator.resetToLastIndependent();if(h=c.mediaStates_.get(f.VIDEO))h.lastInitSegmentReference=null,h.lastAppendWindowStart=null,h.lastAppendWindowEnd=null,b&&c.forceClearBuffer_(h),c.abortOperations_(h).catch(function(){}),h.segmentIterator&&h.segmentIterator.resetToLastIndependent();k=new Map;c.currentVariant_.audio&&k.set(f.AUDIO,c.currentVariant_.audio);c.currentVariant_.video&&
1091
+ k.set(f.VIDEO,c.currentVariant_.video);return l.yield(c.playerInterface_.mediaSourceEngine.reset(k),2)}!h||h.performingUpdate||h.updateTimer||c.scheduleUpdate_(h,0);!g||g.performingUpdate||g.updateTimer||c.scheduleUpdate_(g,0);return l.return(!0)})};
1091
1092
  shaka.media.StreamingEngine.prototype.updateSpatialVideoInfo_=function(a){if(this.spatialVideoInfo_.projection!=a.projection||this.spatialVideoInfo_.hfov!=a.hfov){var b=shaka.util.FakeEvent.EventName;if(null!=a.projection||null!=a.hfov){b=b.SpatialVideoInfoEvent;var c=(new Map).set("detail",a);b=new shaka.util.FakeEvent(b,c)}else b=new shaka.util.FakeEvent(b.NoSpatialVideoInfoEvent);b.cancelable=!0;this.playerInterface_.onEvent(b);this.spatialVideoInfo_=a}};
1092
1093
  shaka.media.StreamingEngine.prototype.updateSegmentIteratorReverse_=function(){for(var a=0>this.playerInterface_.getPlaybackRate(),b=$jscomp.makeIterator(this.mediaStates_.values()),c=b.next();!c.done;c=b.next())c=c.value,c.segmentIterator&&c.segmentIterator.setReverse(a),c.segmentPrefetch&&c.segmentPrefetch.setReverse(a);b=$jscomp.makeIterator(this.audioPrefetchMap_.values());for(c=b.next();!c.done;c=b.next())c.value.setReverse(a)};
1093
1094
  shaka.media.StreamingEngine.logPrefix_=function(a){return"("+a.type+":"+a.stream.id+")"};shaka.media.StreamingEngine.APPEND_WINDOW_START_FUDGE_=.1;shaka.media.StreamingEngine.APPEND_WINDOW_END_FUDGE_=.01;shaka.media.StreamingEngine.MAX_RUN_AHEAD_SEGMENTS_=1;shaka.util.ConfigUtils=function(){};
@@ -1139,8 +1140,8 @@ shaka.media.PreloadManager.prototype.getCurrentAdaptationSetCriteria=function(){
1139
1140
  shaka.media.PreloadManager.prototype.receiveParser=function(){this.parserEntrusted_=!0;return this.parser_};shaka.media.PreloadManager.prototype.getParser=function(){return this.parser_};shaka.media.PreloadManager.prototype.receiveRegionTimeline=function(){this.regionTimelineEntrusted_=!0;return this.regionTimeline_};shaka.media.PreloadManager.prototype.getRegionTimeline=function(){return this.regionTimeline_};shaka.media.PreloadManager.prototype.getQualityObserver=function(){return this.qualityObserver_};
1140
1141
  shaka.media.PreloadManager.prototype.getStats=function(){return this.stats_};shaka.media.PreloadManager.prototype.getManifestFilterer=function(){return this.manifestFilterer_};shaka.media.PreloadManager.prototype.receiveDrmEngine=function(){this.drmEngineEntrusted_=!0;return this.drmEngine_};shaka.media.PreloadManager.prototype.getDrmEngine=function(){return this.drmEngine_};shaka.media.PreloadManager.prototype.getPrefetchedVariant=function(){return this.prefetchedVariant_};
1141
1142
  shaka.media.PreloadManager.prototype.receiveSegmentPrefetchesById=function(){this.segmentPrefetchEntrusted_=!0;return this.segmentPrefetchById_};shaka.media.PreloadManager.prototype.attachAbrManager=function(a,b){this.abrManager_=a;this.abrManagerFactory_=b};shaka.media.PreloadManager.prototype.attachAdaptationSetCriteria=function(a){this.currentAdaptationSetCriteria_=a};shaka.media.PreloadManager.prototype.attachManifest=function(a,b,c){this.manifest_=a;this.parser_=b;this.parserFactory_=c};
1142
- shaka.media.PreloadManager.prototype.start=function(){var a=this;(function(){var b;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){switch(c.nextAddress){case 1:return c.yield(Promise.resolve(),2);case 2:return c.setCatchFinallyBlocks(3),c.yield(a.parseManifestInner_(),5);case 5:return a.throwIfDestroyed_(),c.yield(a.initializeDrmInner_(),6);case 6:return a.throwIfDestroyed_(),c.yield(a.chooseInitialVariantInner_(),7);case 7:a.throwIfDestroyed_();a.successPromise_.resolve();c.leaveTryBlock(0);
1143
- break;case 3:b=c.enterCatchBlock(),b instanceof shaka.util.Error&&(b.code==shaka.util.Error.Code.OPERATION_ABORTED||b.code==shaka.util.Error.Code.OBJECT_DESTROYED)||a.successPromise_.reject(b),c.jumpToEnd()}})})()};shaka.media.PreloadManager.prototype.dispatchEvent=function(a){return this.eventHandoffTarget_?this.eventHandoffTarget_.dispatchEvent(a):shaka.util.FakeEventTarget.prototype.dispatchEvent.call(this,a)};
1143
+ shaka.media.PreloadManager.prototype.start=function(){var a=this;(function(){var b;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){switch(c.nextAddress){case 1:return c.yield(Promise.resolve(),2);case 2:return c.setCatchFinallyBlocks(3),c.yield(a.parseManifestInner_(),5);case 5:return a.throwIfDestroyed_(),c.yield(a.initializeDrmInner_(),6);case 6:return a.throwIfDestroyed_(),c.yield(a.chooseInitialVariantAndPrefetchInner_(),7);case 7:return a.throwIfDestroyed_(),c.yield(a.drmEngine_.waitForActiveRequests(),
1144
+ 8);case 8:a.throwIfDestroyed_();a.successPromise_.resolve();c.leaveTryBlock(0);break;case 3:b=c.enterCatchBlock(),b instanceof shaka.util.Error&&(b.code==shaka.util.Error.Code.OPERATION_ABORTED||b.code==shaka.util.Error.Code.OBJECT_DESTROYED)||a.successPromise_.reject(b),c.jumpToEnd()}})})()};shaka.media.PreloadManager.prototype.dispatchEvent=function(a){return this.eventHandoffTarget_?this.eventHandoffTarget_.dispatchEvent(a):shaka.util.FakeEventTarget.prototype.dispatchEvent.call(this,a)};
1144
1145
  shaka.media.PreloadManager.prototype.onError=function(a){a.severity===shaka.util.Error.Severity.CRITICAL&&(this.successPromise_.reject(a),this.destroy());var b=this.makeEvent_(shaka.util.FakeEvent.EventName.Error,(new Map).set("detail",a));this.dispatchEvent(b);b.defaultPrevented&&(a.handled=!0)};
1145
1146
  shaka.media.PreloadManager.prototype.throwIfDestroyed_=function(){if(this.isDestroyed())throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.OBJECT_DESTROYED);};shaka.media.PreloadManager.prototype.makeStateChangeEvent_=function(a){this.dispatchEvent(new shaka.util.FakeEvent(shaka.util.FakeEvent.EventName.OnStateChange,(new Map).set("state",a)))};
1146
1147
  shaka.media.PreloadManager.prototype.makeEvent_=function(a,b){return new shaka.util.FakeEvent(a,b)};
@@ -1150,7 +1151,7 @@ d=Date.now()/1E3;e=d-b;a.stats_.setManifestTime(e);f.jumpToEnd()}})};
1150
1151
  shaka.media.PreloadManager.prototype.initializeDrmInner_=function(){var a=this,b,c,d,e,f;return $jscomp.asyncExecutePromiseGeneratorProgram(function(g){switch(g.nextAddress){case 1:goog.asserts.assert(a.manifest_,"The manifest should already be parsed.");a.makeStateChangeEvent_("drm-engine");a.startTimeOfDrm_=Date.now()/1E3;a.drmEngine_=a.createDrmEngine_();a.manifestFilterer_.setDrmEngine(a.drmEngine_);a.drmEngine_.configure(a.config_.drm,function(){return a.isPreload_});b=a.manifestFilterer_.applyRestrictions(a.manifest_);
1151
1152
  if(!b){g.jumpTo(2);break}c=a.makeEvent_(shaka.util.FakeEvent.EventName.TracksChanged);return g.yield(Promise.resolve(),3);case 3:a.throwIfDestroyed_(),a.dispatchEvent(c);case 2:return d=shaka.util.StreamUtils.getPlayableVariants(a.manifest_.variants),g.yield(a.drmEngine_.initForPlayback(d,a.manifest_.offlineSessionIds),4);case 4:return a.throwIfDestroyed_(),g.yield(a.manifestFilterer_.filterManifest(a.manifest_),5);case 5:e=g.yieldResult;if(!e){g.jumpTo(0);break}f=a.makeEvent_(shaka.util.FakeEvent.EventName.TracksChanged);
1152
1153
  return g.yield(Promise.resolve(),7);case 7:a.dispatchEvent(f),g.jumpToEnd()}})};shaka.media.PreloadManager.prototype.reconfigure=function(a){this.config_=a};shaka.media.PreloadManager.prototype.configure=function(a,b){a=shaka.util.ConfigUtils.convertToConfigObject(a,b);shaka.util.PlayerConfiguration.mergeConfigObjects(this.config_,a)};shaka.media.PreloadManager.prototype.getConfiguration=function(){return shaka.util.ObjectUtils.cloneObject(this.config_)};
1153
- shaka.media.PreloadManager.prototype.chooseInitialVariantInner_=function(){var a=this,b,c,d,e,f,g;return $jscomp.asyncExecutePromiseGeneratorProgram(function(h){goog.asserts.assert(a.manifest_,"The manifest should already be parsed.");a.currentAdaptationSetCriteria_||(a.currentAdaptationSetCriteria_=new shaka.media.PreferenceBasedCriteria(a.config_.preferredAudioLanguage,a.config_.preferredVariantRole,a.config_.preferredAudioChannelCount,a.config_.preferredVideoHdrLevel,a.config_.preferSpatialAudio,
1154
+ shaka.media.PreloadManager.prototype.chooseInitialVariantAndPrefetchInner_=function(){var a=this,b,c,d,e,f,g;return $jscomp.asyncExecutePromiseGeneratorProgram(function(h){goog.asserts.assert(a.manifest_,"The manifest should already be parsed.");a.currentAdaptationSetCriteria_||(a.currentAdaptationSetCriteria_=new shaka.media.PreferenceBasedCriteria(a.config_.preferredAudioLanguage,a.config_.preferredVariantRole,a.config_.preferredAudioChannelCount,a.config_.preferredVideoHdrLevel,a.config_.preferSpatialAudio,
1154
1155
  a.config_.preferredVideoLayout,a.config_.preferredAudioLabel,a.config_.preferredVideoLabel,a.config_.mediaSource.codecSwitchingStrategy,""));a.allowMakeAbrManager_&&(b=a.config_.abrFactory,a.abrManagerFactory_=b,a.abrManager_=b(),a.abrManager_.configure(a.config_.abr));if(!a.allowPrefetch_)return h.jumpTo(0);c=a.manifest_.presentationTimeline.isLive();d=shaka.util.StreamUtils.getPlayableVariants(a.manifest_.variants);e=a.currentAdaptationSetCriteria_.create(d);a.abrManager_.configure(a.config_.abr);
1155
1156
  a.abrManager_.setVariants(Array.from(e.values()));f=a.abrManager_.chooseVariant();if(!f)return h.jumpTo(0);g=[];a.prefetchedVariant_=f;f.video&&g.push(a.prefetchStream_(f.video,c));f.audio&&g.push(a.prefetchStream_(f.audio,c));return h.yield(Promise.all(g),0)})};
1156
1157
  shaka.media.PreloadManager.prototype.prefetchStream_=function(a,b){var c=this,d,e,f,g,h;return $jscomp.asyncExecutePromiseGeneratorProgram(function(k){if(1==k.nextAddress)return d=c.config_.streaming.segmentPrefetchLimit||2,e=new shaka.media.SegmentPrefetch(d,a,function(l,m,n){return shaka.media.StreamingEngine.dispatchFetch(l,m,n||null,c.config_.streaming.retryParameters,c.networkingEngine_,c.isPreload_)},!1),c.segmentPrefetchById_.set(a.id,e),k.yield(a.createSegmentIndex(),2);f=c.startTime_||0;
@@ -1282,7 +1283,7 @@ shaka.Player.prototype.unload=function(a,b){a=void 0===a?!0:a;b=void 0===b?!1:b;
1282
1283
  (c.bufferPoller_.stop(),c.bufferPoller_=null);if(!c.parser_){q.jumpTo(6);break}return q.yield(c.parser_.stop(),7);case 7:c.parser_=null,c.parserFactory_=null;case 6:if(!c.abrManager_){q.jumpTo(8);break}return q.yield(c.abrManager_.stop(),8);case 8:if(!c.streamingEngine_){q.jumpTo(10);break}return q.yield(c.streamingEngine_.destroy(),11);case 11:c.streamingEngine_=null;case 10:c.playRateController_&&(c.playRateController_.release(),c.playRateController_=null);c.playhead_&&(c.playhead_.release(),c.playhead_=
1283
1284
  null);if(!shaka.util.Platform.isMediaKeysPolyfilled("webkit")||!c.drmEngine_){q.jumpTo(12);break}return q.yield(c.drmEngine_.destroy(),13);case 13:c.drmEngine_=null;case 12:if(!c.mediaSourceEngine_){q.jumpTo(14);break}return q.yield(c.mediaSourceEngine_.destroy(),15);case 15:c.mediaSourceEngine_=null;case 14:if(c.adManager_&&!b)c.adManager_.onAssetUnload();c.preloadDueAdManager_&&!b&&(c.preloadDueAdManager_.destroy(),c.preloadDueAdManager_=null);b||c.preloadDueAdManagerTimer_.stop();c.cmcdManager_&&
1284
1285
  c.cmcdManager_.reset();c.cmsdManager_&&c.cmsdManager_.reset();if(!c.textDisplayer_){q.jumpTo(16);break}return q.yield(c.textDisplayer_.destroy(),17);case 17:c.textDisplayer_=null;case 16:c.video_&&(shaka.util.Dom.removeAllChildren(c.video_),c.video_.src&&(c.video_.removeAttribute("src"),c.video_.load()));if(!c.drmEngine_){q.jumpTo(18);break}return q.yield(c.drmEngine_.destroy(),19);case 19:c.drmEngine_=null;case 18:c.preloadNextUrl_&&c.assetUri_!=c.preloadNextUrl_.getAssetUri()&&(c.preloadNextUrl_.isDestroyed()||
1285
- c.preloadNextUrl_.destroy(),c.preloadNextUrl_=null);c.assetUri_=null;c.mimeType_=null;c.bufferObserver_=null;if(c.manifest_){e=$jscomp.makeIterator(c.manifest_.variants);for(f=e.next();!f.done;f=e.next())for(g=f.value,h=$jscomp.makeIterator([g.audio,g.video]),k=h.next();!k.done;k=h.next())(l=k.value)&&l.segmentIndex&&l.segmentIndex.release();m=$jscomp.makeIterator(c.manifest_.textStreams);for(n=m.next();!n.done;n=m.next())p=n.value,p.segmentIndex&&p.segmentIndex.release()}c.config_.streaming.clearDecodingCache&&
1286
+ c.preloadNextUrl_.destroy(),c.preloadNextUrl_=null);c.assetUri_=null;c.mimeType_=null;c.bufferObserver_=null;if(c.manifest_){e=$jscomp.makeIterator(c.manifest_.variants);for(f=e.next();!f.done;f=e.next())for(g=f.value,h=$jscomp.makeIterator([g.audio,g.video]),k=h.next();!k.done;k=h.next())(l=k.value)&&l.segmentIndex&&l.segmentIndex.release();m=$jscomp.makeIterator(c.manifest_.textStreams);for(n=m.next();!n.done;n=m.next())p=n.value,p.segmentIndex&&p.segmentIndex.release()}c.config_&&c.config_.streaming.clearDecodingCache&&
1286
1287
  (shaka.util.StreamUtils.clearDecodingConfigCache(),shaka.util.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.updateBufferState_();case 3:q.enterFinallyBlock();c.mutex_.release();q.leaveFinallyBlock(4);break;case 4:if(a&&shaka.util.Platform.supportsMediaSource()&&!c.mediaSourceEngine_&&c.video_)return q.yield(c.initializeMediaSourceEngineInner_(),
1287
1288
  0);q.jumpTo(0)}})};shaka.Player.prototype.updateStartTime=function(a){this.startTime_=a};
1288
1289
  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,
@@ -1305,16 +1306,16 @@ shaka.Player.prototype.preload=function(a,b,c){b=void 0===b?null:b;var d=this,e;
1305
1306
  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)})};
1306
1307
  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&&
1307
1308
  (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)})};
1308
- 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,B;return $jscomp.asyncExecutePromiseGeneratorProgram(function(D){if(1==D.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()?
1309
- null:h},m=function(){return l()?l().getConfiguration():g.config_},n=function(y,A){l()?h.configure(y,A):g.configure(y,A)},Infinity!=g.maxHwRes_.width||Infinity!=g.maxHwRes_.height||g.config_.ignoreHardwareResolution?D.jumpTo(2):D.yield(shaka.util.Platform.detectMaxHardwareResolution(),3);2!=D.nextAddress&&(p=D.yieldResult,g.maxHwRes_.width=p.width,g.maxHwRes_.height=p.height);q=new shaka.media.ManifestFilterer(k,g.maxHwRes_,null);r={networkingEngine:g.networkingEngine_,filter:function(y){var A,C;return $jscomp.asyncExecutePromiseGeneratorProgram(function(F){if(1==
1310
- F.nextAddress)return F.yield(q.filterManifest(y),2);if(4!=F.nextAddress){A=F.yieldResult;if(!A)return F.jumpTo(0);C=shaka.Player.makeEvent_(shaka.util.FakeEvent.EventName.TracksChanged);return F.yield(Promise.resolve(),4)}h.dispatchEvent(C);F.jumpToEnd()})},makeTextStreamsForClosedCaptions:function(y){return g.makeTextStreamsForClosedCaptions_(y)},onTimelineRegionAdded:function(y){h.getRegionTimeline().addRegion(y)},onEvent:function(y){return h.dispatchEvent(y)},onError:function(y){return h.onError(y)},
1311
- isLowLatencyMode:function(){return m().streaming.lowLatencyMode},isAutoLowLatencyMode:function(){return m().streaming.autoLowLatencyMode},enableLowLatencyMode:function(){n("streaming.lowLatencyMode",!0)},updateDuration:function(){g.streamingEngine_&&h.hasBeenAttached()&&g.streamingEngine_.updateDuration()},newDrmInfo:function(y){var A=h.getDrmEngine(),C=A?A.getDrmInfo():null;C&&A.getMediaKeys()&&q.processDrmInfos(C.keySystem,y)},onManifestUpdated:function(){var y=shaka.util.FakeEvent.EventName.ManifestUpdated,
1312
- A=(new Map).set("isLive",g.isLive());h.dispatchEvent(shaka.Player.makeEvent_(y,A));h.addQueuedOperation(!1,function(){if(g.adManager_)g.adManager_.onManifestUpdated(g.isLive())})},getBandwidthEstimate:function(){return g.abrManager_.getBandwidthEstimate()},onMetadata:function(y,A,C,F){var H=y;"com.apple.hls.interstitial"==y&&(H="com.apple.quicktime.HLS",y={startTime:A,endTime:C,values:F},g.adManager_&&(goog.asserts.assert(g.video_,"Must have video"),g.adManager_.onHLSInterstitialMetadata(g,g.video_,
1313
- y)));F=$jscomp.makeIterator(F);y=F.next();for(var G={};!y.done;G={payload$jscomp$6:void 0},y=F.next())G.payload$jscomp$6=y.value,"ID"!=G.payload$jscomp$6.name&&h.addQueuedOperation(!1,function(E){return function(){g.dispatchMetadataEvent_(A,C,H,E.payload$jscomp$6)}}(G))},disableStream:function(y){return g.disableStream(y,g.config_.streaming.maxDisabledTime)},addFont:function(y,A){return g.addFont(y,A)}};t=new shaka.media.RegionTimeline(function(){return g.seekRange()});t.addEventListener("regionadd",
1309
+ 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,B;return $jscomp.asyncExecutePromiseGeneratorProgram(function(C){if(1==C.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()?
1310
+ null:h},m=function(){return l()?l().getConfiguration():g.config_},n=function(y,A){l()?h.configure(y,A):g.configure(y,A)},Infinity!=g.maxHwRes_.width||Infinity!=g.maxHwRes_.height||g.config_.ignoreHardwareResolution?C.jumpTo(2):C.yield(shaka.util.Platform.detectMaxHardwareResolution(),3);2!=C.nextAddress&&(p=C.yieldResult,g.maxHwRes_.width=p.width,g.maxHwRes_.height=p.height);q=new shaka.media.ManifestFilterer(k,g.maxHwRes_,null);r={networkingEngine:g.networkingEngine_,filter:function(y){var A,D;return $jscomp.asyncExecutePromiseGeneratorProgram(function(F){if(1==
1311
+ F.nextAddress)return F.yield(q.filterManifest(y),2);if(4!=F.nextAddress){A=F.yieldResult;if(!A)return F.jumpTo(0);D=shaka.Player.makeEvent_(shaka.util.FakeEvent.EventName.TracksChanged);return F.yield(Promise.resolve(),4)}h.dispatchEvent(D);F.jumpToEnd()})},makeTextStreamsForClosedCaptions:function(y){return g.makeTextStreamsForClosedCaptions_(y)},onTimelineRegionAdded:function(y){h.getRegionTimeline().addRegion(y)},onEvent:function(y){return h.dispatchEvent(y)},onError:function(y){return h.onError(y)},
1312
+ isLowLatencyMode:function(){return m().streaming.lowLatencyMode},isAutoLowLatencyMode:function(){return m().streaming.autoLowLatencyMode},enableLowLatencyMode:function(){n("streaming.lowLatencyMode",!0)},updateDuration:function(){g.streamingEngine_&&h.hasBeenAttached()&&g.streamingEngine_.updateDuration()},newDrmInfo:function(y){var A=h.getDrmEngine(),D=A?A.getDrmInfo():null;D&&A.getMediaKeys()&&q.processDrmInfos(D.keySystem,y)},onManifestUpdated:function(){var y=shaka.util.FakeEvent.EventName.ManifestUpdated,
1313
+ A=(new Map).set("isLive",g.isLive());h.dispatchEvent(shaka.Player.makeEvent_(y,A));h.addQueuedOperation(!1,function(){if(g.adManager_)g.adManager_.onManifestUpdated(g.isLive())})},getBandwidthEstimate:function(){return g.abrManager_.getBandwidthEstimate()},onMetadata:function(y,A,D,F){var H=y;"com.apple.hls.interstitial"==y&&(H="com.apple.quicktime.HLS",y={startTime:A,endTime:D,values:F},g.adManager_&&(goog.asserts.assert(g.video_,"Must have video"),g.adManager_.onHLSInterstitialMetadata(g,g.video_,
1314
+ y)));F=$jscomp.makeIterator(F);y=F.next();for(var G={};!y.done;G={payload$jscomp$6:void 0},y=F.next())G.payload$jscomp$6=y.value,"ID"!=G.payload$jscomp$6.name&&h.addQueuedOperation(!1,function(E){return function(){g.dispatchMetadataEvent_(A,D,H,E.payload$jscomp$6)}}(G))},disableStream:function(y){return g.disableStream(y,g.config_.streaming.maxDisabledTime)},addFont:function(y,A){return g.addFont(y,A)}};t=new shaka.media.RegionTimeline(function(){return g.seekRange()});t.addEventListener("regionadd",
1314
1315
  function(y){var A=y.region;g.onRegionEvent_(shaka.util.FakeEvent.EventName.TimelineRegionAdded,A,h);h.addQueuedOperation(!1,function(){g.adManager_&&(g.adManager_.onDashTimedMetadata(A),goog.asserts.assert(g.video_,"Must have video"),g.adManager_.onDASHInterstitialMetadata(g,g.video_,A))})});u=null;k.streaming.observeQualityChanges&&(u=new shaka.media.QualityObserver(function(){return g.getBufferedInfo()}),u.addEventListener("qualitychange",function(y){g.onMediaQualityChange_(y.quality,y.position)}),
1315
- u.addEventListener("audiotrackchange",function(y){g.onMediaQualityChange_(y.quality,y.position,!0)}));v=!0;w={netEngine:g.networkingEngine_,onError:function(y){return h.onError(y)},onKeyStatus:function(y){h.addQueuedOperation(!0,function(){g.onKeyStatus_(y)})},onExpirationUpdated:function(y,A){var C=shaka.Player.makeEvent_(shaka.util.FakeEvent.EventName.ExpirationUpdated);h.dispatchEvent(C);if((C=h.getParser())&&C.onExpirationUpdated)C.onExpirationUpdated(y,A)},onEvent:function(y){h.dispatchEvent(y);
1316
+ u.addEventListener("audiotrackchange",function(y){g.onMediaQualityChange_(y.quality,y.position,!0)}));v=!0;w={netEngine:g.networkingEngine_,onError:function(y){return h.onError(y)},onKeyStatus:function(y){h.addQueuedOperation(!0,function(){g.onKeyStatus_(y)})},onExpirationUpdated:function(y,A){var D=shaka.Player.makeEvent_(shaka.util.FakeEvent.EventName.ExpirationUpdated);h.dispatchEvent(D);if((D=h.getParser())&&D.onExpirationUpdated)D.onExpirationUpdated(y,A)},onEvent:function(y){h.dispatchEvent(y);
1316
1317
  y.type==shaka.util.FakeEvent.EventName.DrmSessionUpdate&&v&&(v=!1,y=Date.now()/1E3-h.getStartTimeOfDRM(),(g.stats_||h.getStats()).setDrmTime(y),g.lcevcDec_&&g.lcevcDec_.hideCanvas())}};x=g.createNetworkingEngine(l);g.networkingEngine_.copyFiltersInto(x);z=function(){return g.createDrmEngine(w)};B={config:k,manifestPlayerInterface:r,regionTimeline:t,qualityObserver:u,createDrmEngine:z,manifestFilterer:q,networkingEngine:x,allowPrefetch:d,allowMakeAbrManager:f};h=new shaka.media.PreloadManager(a,c,
1317
- b,B);return D.return(h)})};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)})};
1318
+ b,B);return C.return(h)})};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)})};
1318
1319
  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:
1319
1320
  this.config_.streaming.preferNativeHls}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_))};
1320
1321
  shaka.Player.prototype.initializeMediaSourceEngineInner_=function(){var a=this,b,c,d;return $jscomp.asyncExecutePromiseGeneratorProgram(function(e){if(1==e.nextAddress)return goog.asserts.assert(shaka.util.Platform.supportsMediaSource(),"We should not be initializing media source on a platform that does not support media source."),goog.asserts.assert(a.video_,"We should have a media element when initializing media source."),goog.asserts.assert(null==a.mediaSourceEngine_,"We should not have a media source engine yet."),
@@ -1324,29 +1325,29 @@ shaka.Player.prototype.addBasicMediaListeners_=function(a,b){var c=this,d=functi
1324
1325
  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_()}),
1325
1326
  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.processTimedMetadataSrcEqls_(e);break;case "chapters":c.activateChaptersTrack_(e);break;default:c.onTracksChanged_()}}),this.loadEventManager_.listen(a.textTracks,"removetrack",function(){return c.onTracksChanged_()}),
1326
1327
  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)})};
1327
- 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,D,y,A,C;return $jscomp.asyncExecutePromiseGeneratorProgram(function(F){switch(F.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"),
1328
+ 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,C,y,A,D;return $jscomp.asyncExecutePromiseGeneratorProgram(function(F){switch(F.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"),
1328
1329
  e=d.video_,d.playRateController_=new shaka.media.PlayRateController({getRate:function(){return e.playbackRate},getDefaultRate:function(){return e.defaultPlaybackRate},setRate:function(H){e.playbackRate=H},movePlayhead:function(H){e.currentTime+=H}}),d.addBasicMediaListeners_(e,a),d.setupLcevc_(d.config_),d.currentTextLanguage_=d.config_.preferredTextLanguage,d.currentTextRole_=d.config_.preferredTextRole,d.currentTextForced_=d.config_.preferForcedSubs,shaka.Player.applyPlayRange_(d.manifest_.presentationTimeline,
1329
1330
  d.config_.playRangeStart,d.config_.playRangeEnd),d.abrManager_.init(function(H,G,E){return d.switch_(H,G,E)}),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,
1330
1331
  "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)){F.jumpTo(4);break}return F.yield(Promise.all(k),4);case 4:if(!g||0!=g.disabledUntilTime){F.jumpTo(2);break}if(d.parser_&&d.parser_.onInitialVariantChosen)d.parser_.onInitialVariantChosen(g);d.manifest_.isLowLatency&&!d.config_.streaming.lowLatencyMode&&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.");
1331
1332
  d.cmcdManager_&&d.cmcdManager_.setLowLatency(d.manifest_.isLowLatency&&d.config_.streaming.lowLatencyMode);shaka.Player.applyPlayRange_(d.manifest_.presentationTimeline,d.config_.playRangeStart,d.config_.playRangeEnd);d.streamingEngine_.applyPlayRange(d.config_.playRangeStart,d.config_.playRangeEnd);p=function(H){d.playhead_=d.createPlayhead(H);d.playheadObservers_=d.createPlayheadObserversForMSE_(H);d.startBufferManagement_(e,Math.max(d.manifest_.minBufferTime,d.config_.streaming.rebufferingGoal))};
1332
1333
  d.config_.streaming.startAtSegmentBoundary||(q=d.startTime_,null==q&&d.manifest_.startTime&&(q=d.manifest_.startTime),p(q));if(h){F.jumpTo(7);break}goog.asserts.assert(f,"Must have choosen an initial variant!");if(!d.config_.streaming.startAtSegmentBoundary){F.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 F.yield(d.adjustStartTime_(f,
1333
1334
  t),9);case 9:w=F.yieldResult,p(w);case 8:d.switchVariant_(f,!0,!1,0);case 7:return d.playhead_.ready(),x=d.getTextTracks().find(function(H){return H.active}),x||((z=d.chooseTextStream_())&&d.addTextStreamToSwitchHistory_(z,!0),f&&d.setInitialTextState_(f,z),z&&d.shouldStreamText_()&&(d.streamingEngine_.switchTextStream(z),d.setTextDisplayerLanguage_())),F.yield(d.streamingEngine_.start(c),10);case 10:d.config_.abr.enabled&&(d.abrManager_.enable(),d.onAbrStatusChanged_());d.onTracksChanged_();d.updateAbrManagerVariants_();
1334
- B=d.manifest_.variants.some(function(H){return H.primary});d.config_.preferredAudioLanguage||B||shaka.log.warning("No preferred audio language set. We have chosen an arbitrary language initially");if((D=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);D||(A=function(){return d.onVideoProgress_()},
1335
- d.loadEventManager_.listen(e,"timeupdate",A),d.onVideoProgress_(),d.manifest_.nextUrl&&(0<d.config_.streaming.preloadNextUrlWindow&&(C=function(){var H;return $jscomp.asyncExecutePromiseGeneratorProgram(function(G){if(1==G.nextAddress){H=d.video_.duration-d.video_.currentTime;if(isNaN(H)||!(H<=d.config_.streaming.preloadNextUrlWindow))return G.jumpTo(0);d.loadEventManager_.unlisten(e,"timeupdate",C);goog.asserts.assert(d.manifest_.nextUrl,"this.manifest_.nextUrl should be valid.");return G.yield(d.preload(d.manifest_.nextUrl),
1336
- 4)}d.preloadNextUrl_=G.yieldResult;G.jumpToEnd()})},d.loadEventManager_.listen(e,"timeupdate",C)),d.loadEventManager_.listen(e,"ended",function(){d.load(d.preloadNextUrl_||d.manifest_.nextUrl)})));if(d.adManager_)d.adManager_.onManifestUpdated(D);d.fullyLoaded_=!0;F.jumpToEnd()}})};
1335
+ B=d.manifest_.variants.some(function(H){return H.primary});d.config_.preferredAudioLanguage||B||shaka.log.warning("No preferred audio language set. We have chosen an arbitrary language initially");if((C=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);C||(A=function(){return d.onVideoProgress_()},
1336
+ d.loadEventManager_.listen(e,"timeupdate",A),d.onVideoProgress_(),d.manifest_.nextUrl&&(0<d.config_.streaming.preloadNextUrlWindow&&(D=function(){var H;return $jscomp.asyncExecutePromiseGeneratorProgram(function(G){if(1==G.nextAddress){H=d.video_.duration-d.video_.currentTime;if(isNaN(H)||!(H<=d.config_.streaming.preloadNextUrlWindow))return G.jumpTo(0);d.loadEventManager_.unlisten(e,"timeupdate",D);goog.asserts.assert(d.manifest_.nextUrl,"this.manifest_.nextUrl should be valid.");return G.yield(d.preload(d.manifest_.nextUrl),
1337
+ 4)}d.preloadNextUrl_=G.yieldResult;G.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(C);d.fullyLoaded_=!0;F.jumpToEnd()}})};
1337
1338
  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_,
1338
1339
  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,
1339
1340
  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,
1340
1341
  external:!1,fastSwitching:!1,fullMimeTypes:new Set,isAudioMuxedInVideo:!1},g.fullMimeTypes.add(shaka.util.MimeUtils.getFullType(g.mimeType,g.codecs)),a.startsWith("audio/")?(g.type=c.AUDIO,f.audio=g):f.video=g,b.drmEngine_.setSrcEquals(!0),h.yield(b.drmEngine_.initForPlayback([f],[]),2)):h.yield(b.drmEngine_.attach(b.video_),0)})};
1341
- shaka.Player.prototype.srcEqualsInner_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t;return $jscomp.asyncExecutePromiseGeneratorProgram(function(u){switch(u.nextAddress){case 1:c.makeStateChangeEvent_("src-equals");goog.asserts.assert(c.video_,"We should have a media element when loading.");goog.asserts.assert(c.assetUri_,"We should have a valid uri when loading.");d=c.video_;c.playhead_=new shaka.media.SrcEqualsPlayhead(d);e=!1;c.cleanupOnUnload_.push(function(){e=!0});null!=c.startTime_&&c.playhead_.setStartTime(c.startTime_);
1342
- c.playRateController_=new shaka.media.PlayRateController({getRate:function(){return d.playbackRate},getDefaultRate:function(){return d.defaultPlaybackRate},setRate:function(v){d.playbackRate=v},movePlayhead:function(v){d.currentTime+=v}});f=c.config_.streaming.rebufferingGoal;c.startBufferManagement_(d,f);d.textTracks&&(c.createTextDisplayer_(),g=function(){var v=c.getFilteredTextTracks_().find(function(w){return"disabled"!==w.mode});v&&(v.mode="showing")},h=function(){var v=c.getFilteredTextTracks_().find(function(w){return"disabled"!==
1343
- w.mode});v&&(v.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",
1344
- 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_){u.jumpTo(2);
1345
- break}return u.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,
1346
- HTMLMediaElement.HAVE_METADATA,c.loadEventManager_,function(){c.playhead_.ready();m.resolve()}),shaka.util.MediaReadyState.waitForReadyState(d,HTMLMediaElement.HAVE_CURRENT_DATA,c.loadEventManager_,function(){var v,w,x,z,B;return $jscomp.asyncExecutePromiseGeneratorProgram(function(D){if(1==D.nextAddress)return c.setupPreferredAudioOnSrc_(),v=c.getFilteredTextTracks_(),v.find(function(y){return"disabled"!=y.mode})?(0<v.length&&(c.isTextVisible_=!0,c.textDisplayer_.setTextVisibility(!0)),D.jumpTo(2)):
1347
- D.yield(new Promise(function(y){c.loadEventManager_.listenOnce(d.textTracks,"change",y);(new shaka.util.Timer(y)).tickAfter(1)}),2);if(e)return D.return();w=!1;x=$jscomp.makeIterator(v);for(z=x.next();!z.done;z=x.next())B=z.value,"disabled"!==B.mode&&(w?(B.mode="disabled",shaka.log.alwaysWarn("Found more than one enabled text track, disabling it",B)):(c.enableNativeTrack_(B),w=!0));c.setupPreferredTextOnSrc_();D.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.'),
1348
- m.resolve()),c.loadEventManager_.listenOnce(d,"error",function(){m.reject(c.videoErrorToShakaError_())}),n=new Promise(function(v,w){(new shaka.util.Timer(w)).tickAfter(c.config_.streaming.loadTimeout)}),u.yield(Promise.race([m,n]),4);case 4:if((p=c.isLive())&&(c.config_.streaming.liveSync&&c.config_.streaming.liveSync.enabled||c.config_.streaming.liveSync.panicMode)||c.config_.streaming.vodDynamicPlaybackRate)q=function(){return c.onTimeUpdate_()},c.loadEventManager_.listen(d,"timeupdate",q);p||
1349
- (r=function(){return c.onVideoProgress_()},c.loadEventManager_.listen(d,"timeupdate",r),c.onVideoProgress_());c.adManager_&&(c.adManager_.onManifestUpdated(p),p&&(t=c.seekRange().end,c.loadEventManager_.listen(d,"progress",function(){var v=c.seekRange().end;t!=v&&(c.adManager_.onManifestUpdated(c.isLive()),t=v)})));c.fullyLoaded_=!0;u.jumpToEnd()}})};shaka.Player.prototype.setupPreferredAudioOnSrc_=function(){var a=this.config_.preferredAudioLanguage;""!=a&&this.selectAudioLanguage(a,this.config_.preferredVariantRole)};
1342
+ shaka.Player.prototype.srcEqualsInner_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r;return $jscomp.asyncExecutePromiseGeneratorProgram(function(t){switch(t.nextAddress){case 1:c.makeStateChangeEvent_("src-equals");goog.asserts.assert(c.video_,"We should have a media element when loading.");goog.asserts.assert(c.assetUri_,"We should have a valid uri when loading.");d=c.video_;c.playhead_=new shaka.media.SrcEqualsPlayhead(d);e=!1;c.cleanupOnUnload_.push(function(){e=!0});null!=c.startTime_&&c.playhead_.setStartTime(c.startTime_);
1343
+ c.playRateController_=new shaka.media.PlayRateController({getRate:function(){return d.playbackRate},getDefaultRate:function(){return d.defaultPlaybackRate},setRate:function(u){d.playbackRate=u},movePlayhead:function(u){d.currentTime+=u}});f=c.config_.streaming.rebufferingGoal;c.startBufferManagement_(d,f);d.textTracks&&(c.createTextDisplayer_(),g=function(){var u=c.getFilteredTextTracks_().find(function(v){return"disabled"!==v.mode});u&&(u.mode="showing")},h=function(){var u=c.getFilteredTextTracks_().find(function(v){return"disabled"!==
1344
+ 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",
1345
+ 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);
1346
+ 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,
1347
+ 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(C){return"disabled"!=C.mode})?(0<u.length&&(c.isTextVisible_=!0,c.textDisplayer_.setTextVisibility(!0)),B.jumpTo(2)):
1348
+ B.yield(new Promise(function(C){c.loadEventManager_.listenOnce(d.textTracks,"change",C);(new shaka.util.Timer(C)).tickAfter(1)}),2);if(e)return B.return();v=!1;w=$jscomp.makeIterator(u);for(x=w.next();!x.done;x=w.next())z=x.value,"disabled"!==z.mode&&(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.'),
1349
+ 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_()},
1350
+ 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)};
1350
1351
  shaka.Player.prototype.setupPreferredTextOnSrc_=function(){var a=this.config_.preferredTextLanguage;""!=a&&this.selectTextLanguage(a,this.config_.preferredTextRole,this.config_.preferForcedSubs)};
1351
1352
  shaka.Player.prototype.processTimedMetadataSrcEqls_=function(a){var b=this;if("metadata"==a.kind){a.mode="hidden";this.loadEventManager_.listen(a,"cuechange",function(){if(a.activeCues)for(var d=$jscomp.makeIterator(a.activeCues),e=d.next();!e.done;e=d.next())if(e=e.value,b.dispatchMetadataEvent_(e.startTime,e.endTime,e.type,e.value),b.adManager_)b.adManager_.onCueMetadataChange(e.value);if(a.cues){d=[];e=$jscomp.makeIterator(a.cues);for(var f=e.next(),g={};!f.done;g={cue$jscomp$37:void 0},f=e.next())g.cue$jscomp$37=
1352
1353
  f.value,"com.apple.quicktime.HLS"==g.cue$jscomp$37.type&&null!=g.cue$jscomp$37.startTime&&(f=d.find(function(h){return function(k){return k.startTime==h.cue$jscomp$37.startTime&&k.endTime==h.cue$jscomp$37.endTime}}(g)),f||(f={startTime:g.cue$jscomp$37.startTime,endTime:g.cue$jscomp$37.endTime,values:[]},d.push(f)),f.values.push(g.cue$jscomp$37.value));d=$jscomp.makeIterator(d);for(e=d.next();!e.done;e=d.next())e=e.value,e.values.some(function(h){return"X-ASSET-URI"==h.key||"X-ASSET-LIST"==h.key})&&
@@ -1406,7 +1407,7 @@ shaka.Player.prototype.getImageTracks=function(){var a=shaka.util.StreamUtils,b=
1406
1407
  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=
1407
1408
  [],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}))})};
1408
1409
  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}};
1409
- 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(D){return D.id==a}))?e.segmentIndex?B.jumpTo(2):B.yield(e.createSegmentIndex(),2):B.return(null)}f=
1410
+ 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(C){return C.id==a}))?e.segmentIndex?B.jumpTo(2):B.yield(e.createSegmentIndex(),2):B.return(null)}f=
1410
1411
  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,
1411
1412
  imageHeight:l,imageWidth:k,height:n,positionX:u,positionY:v,startTime:t,duration:r,uris:g.getUris(),width:m,sprite:x})})};
1412
1413
  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(),
@@ -1440,7 +1441,7 @@ a.getVideoPlaybackQuality&&(b=a.getVideoPlaybackQuality(),this.stats_.setDropped
1440
1441
  this.stats_.setMaxSegmentDuration(b)));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()};
1441
1442
  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;return $jscomp.asyncExecutePromiseGeneratorProgram(function(B){switch(B.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);
1442
1443
  "subtitles"!=c&&"captions"!=c&&shaka.log.alwaysWarn("Using a kind value different of `subtitles` or `captions` can cause unwanted issues.");if(d){B.jumpTo(2);break}return B.yield(h.getTextMimetype_(a),3);case 3:d=B.yieldResult;case 2:k=[];h.adManager_&&(k=h.adManager_.getCuePoints());if(h.loadMode_!=shaka.Player.LoadMode.SRC_EQUALS){B.jumpTo(4);break}g&&(c="forced");return B.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=
1443
- n.find(function(D){return l.normalize(D.language)==m&&D.label==(f||"")&&D.kind==c}))return h.onTracksChanged_(),B.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.video_.duration;h.manifest_&&(r=h.manifest_.presentationTimeline.getDuration());if(Infinity==r)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,
1444
+ n.find(function(C){return l.normalize(C.language)==m&&C.label==(f||"")&&C.kind==c}))return h.onTracksChanged_(),B.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.video_.duration;h.manifest_&&(r=h.manifest_.presentationTimeline.getDuration());if(Infinity==r)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,
1444
1445
  shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.CANNOT_ADD_EXTERNAL_TEXT_TO_LIVE_STREAM);if(!k.length){B.jumpTo(6);break}goog.asserts.assert(h.networkingEngine_,"Need networking engine.");return B.yield(h.getTextData_(a,h.networkingEngine_,h.config_.streaming.retryParameters),7);case 7:t=B.yieldResult,u=h.convertToWebVTT_(t,d,k),v=new Blob([u],{type:"text/vtt"}),a=shaka.media.MediaSourceEngine.createObjectURL(v),d="text/vtt";case 6:w={id:h.nextExternalStreamId_++,originalId:null,groupId:null,
1445
1446
  createSegmentIndex:function(){return Promise.resolve()},segmentIndex:shaka.media.SegmentIndex.forSingleSegment(0,r,[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,fastSwitching:!1,fullMimeTypes:new Set([shaka.util.MimeUtils.getFullType(d||
1446
1447
  "",e||"")]),isAudioMuxedInVideo:!1};x=shaka.util.MimeUtils.getFullType(w.mimeType,w.codecs);z=shaka.text.TextEngine.isTypeSupported(x);if(!z)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(w);h.onTracksChanged_();return B.return(shaka.util.StreamUtils.textStreamToTrack(w))}})};
@@ -1481,8 +1482,8 @@ shaka.Player.prototype.onTimeUpdate_=function(){var a=this.video_.playbackRate,b
1481
1482
  var g=f+c;var h=Math.max(0,f-c);var k=this.config_.streaming.liveSync.maxPlaybackRate;var l=this.config_.streaming.liveSync.minPlaybackRate}else this.manifest_&&this.manifest_.serviceDescription&&(f=this.manifest_.serviceDescription.targetLatency,null!=this.manifest_.serviceDescription.targetLatency?g=this.manifest_.serviceDescription.targetLatency+c:null!=this.manifest_.serviceDescription.maxLatency&&(g=this.manifest_.serviceDescription.maxLatency),null!=this.manifest_.serviceDescription.targetLatency?
1482
1483
  h=Math.max(0,this.manifest_.serviceDescription.targetLatency-c):null!=this.manifest_.serviceDescription.minLatency&&(h=this.manifest_.serviceDescription.minLatency),k=this.manifest_.serviceDescription.maxPlaybackRate||this.config_.streaming.liveSync.maxPlaybackRate,l=this.manifest_.serviceDescription.minPlaybackRate||this.config_.streaming.liveSync.minPlaybackRate);this.currentTargetLatency_||"number"!==typeof f||(this.currentTargetLatency_=f);var m=this.config_.streaming.liveSync.dynamicTargetLatency.maxAttempts;
1483
1484
  d&&this.targetLatencyReached_&&null!==this.currentTargetLatency_&&"number"===typeof f&&this.rebufferingCount_<m&&Date.now()-this.targetLatencyReached_>1E3*e&&(e=this.config_.streaming.liveSync.dynamicTargetLatency.minLatency,this.currentTargetLatency_=Math.max(this.currentTargetLatency_-(f-e)/2,e+c),this.targetLatencyReached_=Date.now());d&&null!==this.currentTargetLatency_&&(g=this.currentTargetLatency_+c,h=this.currentTargetLatency_-c);f=b.end-this.video_.currentTime;c=0;this.loadMode_==shaka.Player.LoadMode.SRC_EQUALS&&
1484
- (d=this.video_.buffered,0<d.length&&(c=d.end(d.length-1),c=Math.max(k,c-b.end)));b=this.config_.streaming.liveSync.panicMode;d=1E3*this.config_.streaming.liveSync.panicThreshold;e=Date.now()-this.bufferObserver_.getLastRebufferTime();b&&!l&&(l=this.config_.streaming.liveSync.minPlaybackRate);b&&l&&e<=d?a!=l&&(shaka.log.debug("Time since last rebuffer ("+e+"s) is less than the live sync panicThreshold ("+d+"s). Updating playbackRate to "+l),this.trickPlay(l,!1)):g&&k&&f-c>g?(a!=k&&(shaka.log.debug("Latency ("+
1485
- f+"s) is greater than live sync maxLatency ("+g+"s). Updating playbackRate to "+k),this.trickPlay(k,!1)),this.targetLatencyReached_=null):h&&l&&f-c<h?(a!=l&&(shaka.log.debug("Latency ("+f+"s) is smaller than live sync minLatency ("+h+"s). Updating playbackRate to "+l),this.trickPlay(l,!1)),this.targetLatencyReached_=null):a!==this.playRateController_.getDefaultRate()&&(this.cancelTrickPlay(),this.targetLatencyReached_=Date.now())}};
1485
+ (d=this.video_.buffered,0<d.length&&(c=d.end(d.length-1),c=Math.max(k,c-b.end)));b=this.config_.streaming.liveSync.panicMode;d=1E3*this.config_.streaming.liveSync.panicThreshold;e=Date.now()-this.bufferObserver_.getLastRebufferTime();b&&!l&&(l=this.config_.streaming.liveSync.minPlaybackRate);b&&l&&e<=d?a!=l&&(shaka.log.debug("Time since last rebuffer ("+e+"s) is less than the live sync panicThreshold ("+d+"s). Updating playbackRate to "+l),this.trickPlay(l,!1)):void 0!=g&&k&&f-c>g?(a!=k&&(shaka.log.debug("Latency ("+
1486
+ f+"s) is greater than live sync maxLatency ("+g+"s). Updating playbackRate to "+k),this.trickPlay(k,!1)),this.targetLatencyReached_=null):void 0!=h&&l&&f-c<h?(a!=l&&(shaka.log.debug("Latency ("+f+"s) is smaller than live sync minLatency ("+h+"s). Updating playbackRate to "+l),this.trickPlay(l,!1)),this.targetLatencyReached_=null):a!==this.playRateController_.getDefaultRate()&&(this.cancelTrickPlay(),this.targetLatencyReached_=Date.now())}};
1486
1487
  shaka.Player.prototype.onVideoProgress_=function(){var a=this;if(this.video_){var b=function(e,f){return(shaka.util.NumberUtils.isFloatEqual(e,f)||f>e)&&a.completionPercent_<e?(a.completionPercent_=e,!0):!1},c=this.video_.currentTime/this.video_.duration;if(!isNaN(c)){c*=100;var d;b(0,c)?d=shaka.Player.makeEvent_(shaka.util.FakeEvent.EventName.Started):b(25,c)?d=shaka.Player.makeEvent_(shaka.util.FakeEvent.EventName.FirstQuartile):b(50,c)?d=shaka.Player.makeEvent_(shaka.util.FakeEvent.EventName.Midpoint):
1487
1488
  b(75,c)?d=shaka.Player.makeEvent_(shaka.util.FakeEvent.EventName.ThirdQuartile):b(100,c)&&(d=shaka.Player.makeEvent_(shaka.util.FakeEvent.EventName.Complete));d&&this.dispatchEvent(d)}}};shaka.Player.prototype.onSeek_=function(){this.playheadObservers_&&this.playheadObservers_.notifyOfSeek();this.streamingEngine_&&this.streamingEngine_.seeked();this.bufferObserver_&&this.pollBufferState_()};
1488
1489
  shaka.Player.prototype.updateAbrManagerVariants_=function(){try{goog.asserts.assert(this.manifest_,"Manifest should exist by now!"),this.manifestFilterer_.checkRestrictedVariants(this.manifest_)}catch(b){return this.onError_(b),!1}var a=shaka.util.StreamUtils.getPlayableVariants(this.manifest_.variants);a=this.currentAdaptationSetCriteria_.create(a);this.abrManager_.setVariants(Array.from(a.values()));return!0};
@@ -1540,7 +1541,7 @@ goog.exportProperty(shaka.Player.prototype,"getLoadMode",shaka.Player.prototype.
1540
1541
  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);
1541
1542
  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);
1542
1543
  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);
1543
- 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.12.3-debug";goog.exportProperty(shaka.Player,"version",shaka.Player.version);shaka.Deprecate.init(shaka.Player.version);shaka.Player.supportPlugins_={};shaka.Player.adManagerFactory_=null;
1544
+ 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.12.5-debug";goog.exportProperty(shaka.Player,"version",shaka.Player.version);shaka.Deprecate.init(shaka.Player.version);shaka.Player.supportPlugins_={};shaka.Player.adManagerFactory_=null;
1544
1545
  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_++};
1545
1546
  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};
1546
1547
  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_};
@@ -1594,19 +1595,20 @@ shaka.ads.ClientSideAdManager.prototype.onAdStart_=function(a){goog.asserts.asse
1594
1595
  a);this.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_STARTED,a));this.ad_.isLinear()&&(this.adContainer_.setAttribute("ad-active","true"),this.config_.customPlayheadTracker||this.video_.pause(),this.video_.muted?this.ad_.setInitialMuted(this.video_.volume):this.ad_.setVolume(this.video_.volume))}else shaka.log.alwaysWarn("The IMA SDK fired a "+a.type+" event with no associated ad. Unable to play ad!")};
1595
1596
  shaka.ads.ClientSideAdManager.prototype.onAdComplete_=function(a){if(a&&a.type==google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED&&!this.config_.supportsMultipleMediaElements)this.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_CONTENT_RESUME_REQUESTED));this.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_STOPPED,(new Map).set("originalEvent",a)));this.ad_&&this.ad_.isLinear()&&(this.adContainer_.removeAttribute("ad-active"),this.config_.customPlayheadTracker||this.video_.ended||this.video_.play())};shaka.ads.InterstitialAd=function(a,b,c,d,e,f,g,h){this.video_=a;this.skipOffset_=(this.isSkippable_=b)?c||0:c;this.skipFor_=d;this.onSkip_=e;this.sequenceLength_=f;this.adPosition_=g;this.isUsingAnotherMediaElement_=h};shaka.ads.InterstitialAd.prototype.needsSkipUI=function(){return!0};shaka.ads.InterstitialAd.prototype.isClientRendering=function(){return!0};shaka.ads.InterstitialAd.prototype.isUsingAnotherMediaElement=function(){return this.isUsingAnotherMediaElement_};
1596
1597
  shaka.ads.InterstitialAd.prototype.getDuration=function(){var a=this.video_.duration;return isNaN(a)?-1:a};shaka.ads.InterstitialAd.prototype.getMinSuggestedDuration=function(){return this.getDuration()};shaka.ads.InterstitialAd.prototype.getRemainingTime=function(){var a=this.video_.duration;return isNaN(a)?-1:a-this.video_.currentTime};shaka.ads.InterstitialAd.prototype.isPaused=function(){return this.video_.paused};
1597
- shaka.ads.InterstitialAd.prototype.isSkippable=function(){return this.isSkippable_&&null!=this.skipFor_?this.getDuration()-this.getRemainingTime()<this.skipOffset_+this.skipFor_:this.isSkippable_};shaka.ads.InterstitialAd.prototype.getTimeUntilSkippable=function(){if(this.isSkippable()){var a=this.getRemainingTime()+this.skipOffset_-this.getDuration();return Math.max(a,0)}return Math.max(this.getRemainingTime(),0)};shaka.ads.InterstitialAd.prototype.canSkipNow=function(){return 0==this.getTimeUntilSkippable()};
1598
- shaka.ads.InterstitialAd.prototype.skip=function(){this.onSkip_()};shaka.ads.InterstitialAd.prototype.pause=function(){return this.video_.pause()};shaka.ads.InterstitialAd.prototype.play=function(){return this.video_.play()};shaka.ads.InterstitialAd.prototype.getVolume=function(){return this.video_.volume};shaka.ads.InterstitialAd.prototype.setVolume=function(a){this.video_.volume=a};shaka.ads.InterstitialAd.prototype.isMuted=function(){return this.video_.muted};
1599
- shaka.ads.InterstitialAd.prototype.isLinear=function(){return!0};shaka.ads.InterstitialAd.prototype.resize=function(a,b){};shaka.ads.InterstitialAd.prototype.setMuted=function(a){this.video_.muted=a};shaka.ads.InterstitialAd.prototype.getSequenceLength=function(){return this.sequenceLength_};shaka.ads.InterstitialAd.prototype.getPositionInSequence=function(){return this.adPosition_};shaka.ads.InterstitialAd.prototype.getTitle=function(){return""};
1600
- shaka.ads.InterstitialAd.prototype.getDescription=function(){return""};shaka.ads.InterstitialAd.prototype.getVastMediaBitrate=function(){return 0};shaka.ads.InterstitialAd.prototype.getVastMediaHeight=function(){return 0};shaka.ads.InterstitialAd.prototype.getVastMediaWidth=function(){return 0};shaka.ads.InterstitialAd.prototype.getAdId=function(){return""};shaka.ads.InterstitialAd.prototype.getCreativeAdId=function(){return""};shaka.ads.InterstitialAd.prototype.getAdvertiserName=function(){return""};
1601
- shaka.ads.InterstitialAd.prototype.getMediaUrl=function(){return null};shaka.ads.InterstitialAd.prototype.getTimeOffset=function(){return 0};shaka.ads.InterstitialAd.prototype.getPodIndex=function(){return 0};shaka.ads.InterstitialAd.prototype.release=function(){this.video_=null};goog.exportSymbol("shaka.ads.InterstitialAd",shaka.ads.InterstitialAd);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"release",shaka.ads.InterstitialAd.prototype.release);
1602
- goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getPodIndex",shaka.ads.InterstitialAd.prototype.getPodIndex);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getTimeOffset",shaka.ads.InterstitialAd.prototype.getTimeOffset);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getMediaUrl",shaka.ads.InterstitialAd.prototype.getMediaUrl);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getAdvertiserName",shaka.ads.InterstitialAd.prototype.getAdvertiserName);
1603
- goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getCreativeAdId",shaka.ads.InterstitialAd.prototype.getCreativeAdId);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getAdId",shaka.ads.InterstitialAd.prototype.getAdId);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getVastMediaWidth",shaka.ads.InterstitialAd.prototype.getVastMediaWidth);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getVastMediaHeight",shaka.ads.InterstitialAd.prototype.getVastMediaHeight);
1604
- goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getVastMediaBitrate",shaka.ads.InterstitialAd.prototype.getVastMediaBitrate);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getDescription",shaka.ads.InterstitialAd.prototype.getDescription);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getTitle",shaka.ads.InterstitialAd.prototype.getTitle);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getPositionInSequence",shaka.ads.InterstitialAd.prototype.getPositionInSequence);
1605
- goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getSequenceLength",shaka.ads.InterstitialAd.prototype.getSequenceLength);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"setMuted",shaka.ads.InterstitialAd.prototype.setMuted);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"resize",shaka.ads.InterstitialAd.prototype.resize);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"isLinear",shaka.ads.InterstitialAd.prototype.isLinear);
1606
- goog.exportProperty(shaka.ads.InterstitialAd.prototype,"isMuted",shaka.ads.InterstitialAd.prototype.isMuted);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"setVolume",shaka.ads.InterstitialAd.prototype.setVolume);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getVolume",shaka.ads.InterstitialAd.prototype.getVolume);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"play",shaka.ads.InterstitialAd.prototype.play);
1607
- goog.exportProperty(shaka.ads.InterstitialAd.prototype,"pause",shaka.ads.InterstitialAd.prototype.pause);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"skip",shaka.ads.InterstitialAd.prototype.skip);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"canSkipNow",shaka.ads.InterstitialAd.prototype.canSkipNow);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getTimeUntilSkippable",shaka.ads.InterstitialAd.prototype.getTimeUntilSkippable);
1608
- goog.exportProperty(shaka.ads.InterstitialAd.prototype,"isSkippable",shaka.ads.InterstitialAd.prototype.isSkippable);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"isPaused",shaka.ads.InterstitialAd.prototype.isPaused);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getRemainingTime",shaka.ads.InterstitialAd.prototype.getRemainingTime);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getMinSuggestedDuration",shaka.ads.InterstitialAd.prototype.getMinSuggestedDuration);
1609
- goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getDuration",shaka.ads.InterstitialAd.prototype.getDuration);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"isUsingAnotherMediaElement",shaka.ads.InterstitialAd.prototype.isUsingAnotherMediaElement);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"isClientRendering",shaka.ads.InterstitialAd.prototype.isClientRendering);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"needsSkipUI",shaka.ads.InterstitialAd.prototype.needsSkipUI);shaka.ads.InterstitialAdManager=function(a,b,c,d){var e=this;this.config_=null;this.adContainer_=a;this.basePlayer_=b;this.baseVideo_=c;this.adVideo_=null;this.usingBaseVideo_=!0;this.video_=this.baseVideo_;this.onEvent_=d;this.interstitialIds_=new Set;this.interstitials_=new Set;this.preloadManagerInterstitials_=new Map;this.player_=new shaka.Player;this.updatePlayerConfig_();this.eventManager_=new shaka.util.EventManager;this.adEventManager_=new shaka.util.EventManager;this.playingAd_=!1;this.lastPlayedAd_=
1598
+ shaka.ads.InterstitialAd.prototype.isSkippable=function(){return this.isSkippable_&&null!=this.skipFor_?this.getDuration()-this.getRemainingTime()<this.skipOffset_+this.skipFor_:this.isSkippable_};shaka.ads.InterstitialAd.prototype.getTimeUntilSkippable=function(){if(this.isSkippable()){var a=this.getRemainingTime()+this.skipOffset_-this.getDuration();return Math.max(a,0)}return Math.max(this.getRemainingTime(),0)};
1599
+ shaka.ads.InterstitialAd.prototype.canSkipNow=function(){return this.isSkippable_&&0==this.getTimeUntilSkippable()};shaka.ads.InterstitialAd.prototype.skip=function(){if(this.canSkipNow())this.onSkip_()};shaka.ads.InterstitialAd.prototype.pause=function(){return this.video_.pause()};shaka.ads.InterstitialAd.prototype.play=function(){return this.video_.play()};shaka.ads.InterstitialAd.prototype.getVolume=function(){return this.video_.volume};
1600
+ shaka.ads.InterstitialAd.prototype.setVolume=function(a){this.video_.volume=a};shaka.ads.InterstitialAd.prototype.isMuted=function(){return this.video_.muted};shaka.ads.InterstitialAd.prototype.isLinear=function(){return!0};shaka.ads.InterstitialAd.prototype.resize=function(a,b){};shaka.ads.InterstitialAd.prototype.setMuted=function(a){this.video_.muted=a};shaka.ads.InterstitialAd.prototype.getSequenceLength=function(){return this.sequenceLength_};
1601
+ shaka.ads.InterstitialAd.prototype.getPositionInSequence=function(){return this.adPosition_};shaka.ads.InterstitialAd.prototype.getTitle=function(){return""};shaka.ads.InterstitialAd.prototype.getDescription=function(){return""};shaka.ads.InterstitialAd.prototype.getVastMediaBitrate=function(){return 0};shaka.ads.InterstitialAd.prototype.getVastMediaHeight=function(){return 0};shaka.ads.InterstitialAd.prototype.getVastMediaWidth=function(){return 0};shaka.ads.InterstitialAd.prototype.getAdId=function(){return""};
1602
+ shaka.ads.InterstitialAd.prototype.getCreativeAdId=function(){return""};shaka.ads.InterstitialAd.prototype.getAdvertiserName=function(){return""};shaka.ads.InterstitialAd.prototype.getMediaUrl=function(){return null};shaka.ads.InterstitialAd.prototype.getTimeOffset=function(){return 0};shaka.ads.InterstitialAd.prototype.getPodIndex=function(){return 0};shaka.ads.InterstitialAd.prototype.release=function(){this.video_=null};goog.exportSymbol("shaka.ads.InterstitialAd",shaka.ads.InterstitialAd);
1603
+ goog.exportProperty(shaka.ads.InterstitialAd.prototype,"release",shaka.ads.InterstitialAd.prototype.release);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getPodIndex",shaka.ads.InterstitialAd.prototype.getPodIndex);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getTimeOffset",shaka.ads.InterstitialAd.prototype.getTimeOffset);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getMediaUrl",shaka.ads.InterstitialAd.prototype.getMediaUrl);
1604
+ goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getAdvertiserName",shaka.ads.InterstitialAd.prototype.getAdvertiserName);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getCreativeAdId",shaka.ads.InterstitialAd.prototype.getCreativeAdId);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getAdId",shaka.ads.InterstitialAd.prototype.getAdId);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getVastMediaWidth",shaka.ads.InterstitialAd.prototype.getVastMediaWidth);
1605
+ goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getVastMediaHeight",shaka.ads.InterstitialAd.prototype.getVastMediaHeight);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getVastMediaBitrate",shaka.ads.InterstitialAd.prototype.getVastMediaBitrate);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getDescription",shaka.ads.InterstitialAd.prototype.getDescription);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getTitle",shaka.ads.InterstitialAd.prototype.getTitle);
1606
+ goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getPositionInSequence",shaka.ads.InterstitialAd.prototype.getPositionInSequence);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getSequenceLength",shaka.ads.InterstitialAd.prototype.getSequenceLength);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"setMuted",shaka.ads.InterstitialAd.prototype.setMuted);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"resize",shaka.ads.InterstitialAd.prototype.resize);
1607
+ goog.exportProperty(shaka.ads.InterstitialAd.prototype,"isLinear",shaka.ads.InterstitialAd.prototype.isLinear);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"isMuted",shaka.ads.InterstitialAd.prototype.isMuted);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"setVolume",shaka.ads.InterstitialAd.prototype.setVolume);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getVolume",shaka.ads.InterstitialAd.prototype.getVolume);
1608
+ goog.exportProperty(shaka.ads.InterstitialAd.prototype,"play",shaka.ads.InterstitialAd.prototype.play);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"pause",shaka.ads.InterstitialAd.prototype.pause);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"skip",shaka.ads.InterstitialAd.prototype.skip);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"canSkipNow",shaka.ads.InterstitialAd.prototype.canSkipNow);
1609
+ goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getTimeUntilSkippable",shaka.ads.InterstitialAd.prototype.getTimeUntilSkippable);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"isSkippable",shaka.ads.InterstitialAd.prototype.isSkippable);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"isPaused",shaka.ads.InterstitialAd.prototype.isPaused);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getRemainingTime",shaka.ads.InterstitialAd.prototype.getRemainingTime);
1610
+ goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getMinSuggestedDuration",shaka.ads.InterstitialAd.prototype.getMinSuggestedDuration);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"getDuration",shaka.ads.InterstitialAd.prototype.getDuration);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"isUsingAnotherMediaElement",shaka.ads.InterstitialAd.prototype.isUsingAnotherMediaElement);goog.exportProperty(shaka.ads.InterstitialAd.prototype,"isClientRendering",shaka.ads.InterstitialAd.prototype.isClientRendering);
1611
+ goog.exportProperty(shaka.ads.InterstitialAd.prototype,"needsSkipUI",shaka.ads.InterstitialAd.prototype.needsSkipUI);shaka.ads.InterstitialAdManager=function(a,b,c,d){var e=this;this.config_=null;this.adContainer_=a;this.basePlayer_=b;this.baseVideo_=c;this.adVideo_=null;this.usingBaseVideo_=!0;this.video_=this.baseVideo_;this.onEvent_=d;this.interstitialIds_=new Set;this.interstitials_=new Set;this.preloadManagerInterstitials_=new Map;this.player_=new shaka.Player;this.updatePlayerConfig_();this.eventManager_=new shaka.util.EventManager;this.adEventManager_=new shaka.util.EventManager;this.playingAd_=!1;this.lastPlayedAd_=
1610
1612
  this.lastTime_=null;this.eventManager_.listen(this.baseVideo_,"timeupdate",function(){if(!(e.playingAd_||e.lastTime_||e.basePlayer_.isRemotePlayback())){e.lastTime_=e.baseVideo_.currentTime;var k=e.getCurrentInterstitial_(!0);k&&e.setupAd_(k,1,1,Date.now())}});var f=function(){if(!e.playingAd_&&e.lastTime_&&!e.basePlayer_.isRemotePlayback()){e.lastTime_=e.baseVideo_.currentTime;e.lastPlayedAd_&&!e.lastPlayedAd_.pre&&!e.lastPlayedAd_.post&&e.lastTime_<e.lastPlayedAd_.startTime&&(e.lastPlayedAd_=null);
1611
1613
  var k=e.getCurrentInterstitial_();k&&e.setupAd_(k,1,1,Date.now())}};this.eventManager_.listen(this.baseVideo_,"ended",function(){f()});this.timeUpdateTimer_=new shaka.util.Timer(f);if("requestVideoFrameCallback"in this.baseVideo_&&!shaka.util.Platform.isSmartTV()){var g=this.baseVideo_,h=function(){f();g.requestVideoFrameCallback(h)};g.requestVideoFrameCallback(h)}else this.timeUpdateTimer_.tickEvery(.025);this.pollTimer_=(new shaka.util.Timer(function(){var k,l,m,n,p,q,r,t,u,v,w;return $jscomp.asyncExecutePromiseGeneratorProgram(function(x){switch(x.nextAddress){case 1:if(!e.interstitials_.size||
1612
1614
  null==e.lastTime_){x.jumpTo(0);break}k=e.basePlayer_.getLoadMode();if(k==shaka.Player.LoadMode.DESTROYED||k==shaka.Player.LoadMode.NOT_LOADED)return x.return();l=!1;m=Array.from(e.interstitials_);n=e.basePlayer_.seekRange();p=$jscomp.makeIterator(m);q=p.next();case 3:if(q.done){x.jumpTo(5);break}r=q.value;if(r==e.lastPlayedAd_){x.jumpTo(4);break}t=r.endTime||r.startTime;if(!(1<=n.start-t)){u=r.startTime-e.lastTime_;0<u&&10>=u&&(e.preloadManagerInterstitials_.has(r)||e.preloadManagerInterstitials_.set(r,
@@ -1625,23 +1627,23 @@ shaka.ads.InterstitialAdManager.prototype.addInterstitials=function(a){var b=!1;
1625
1627
  this.player_.preload(c.uri,null,c.mimeType||void 0)))}}b&&this.cuepointsChanged_()};shaka.ads.InterstitialAdManager.prototype.createMediaElement_=function(){var a=document.createElement(this.baseVideo_.tagName);a.autoplay=!0;a.style.position="absolute";a.style.top="0";a.style.left="0";a.style.width="100%";a.style.height="100%";a.style.backgroundColor="rgb(0, 0, 0)";a.setAttribute("playsinline","");return a};
1626
1628
  shaka.ads.InterstitialAdManager.prototype.getCurrentInterstitial_=function(a,b){a=void 0===a?!1:a;b=void 0===b?null:b;var c=0,d=null;if(this.interstitials_.size&&null!=this.lastTime_){var e=this.baseVideo_.ended,f=Array.from(this.interstitials_).sort(function(l,m){return m.startTime-l.startTime}),g=f;g=a?f.filter(function(l){return l.pre}):e?f.filter(function(l){return l.post}):f.filter(function(l){return!l.pre&&!l.post});f=$jscomp.makeIterator(g);for(g=f.next();!g.done;g=f.next()){g=g.value;var h=
1627
1629
  !1;if(a)h=g.pre;else if(e)h=g.post;else if(!g.pre&&!g.post){var k=this.lastTime_-Math.round(1E3*g.startTime)/1E3;0<k&&(1>=k||!g.canJump)&&(h=null==b&&this.lastPlayedAd_&&!this.lastPlayedAd_.pre&&!this.lastPlayedAd_.post&&this.lastPlayedAd_.startTime>=g.startTime?!1:!0)}h&&(!this.lastPlayedAd_||g.startTime>=this.lastPlayedAd_.startTime)&&(c==(b||0)?d=g:d&&!g.canJump&&.001<Math.round(1E3*g.startTime)/1E3-Math.round(1E3*d.startTime)/1E3&&(d=g,c=0),c++)}}return d};
1628
- shaka.ads.InterstitialAdManager.prototype.setupAd_=function(a,b,c,d,e){e=void 0===e?0:e;var f=this,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z,B,D;return $jscomp.asyncExecutePromiseGeneratorProgram(function(y){switch(y.nextAddress){case 1:f.determineIfUsingBaseVideo_();goog.asserts.assert(f.video_,"Must have video");f.lastPlayedAd_=a;shaka.log.info("Starting interstitial",a.startTime,"at",f.lastTime_);g=Date.now();!f.video_.parentElement&&f.adContainer_&&f.adContainer_.appendChild(f.video_);1==c&&1==b&&(b=Array.from(f.interstitials_).filter(function(A){return a.pre?
1629
- A.pre==a.pre:a.post?A.post==a.post:.001>Math.abs(A.startTime-a.startTime)}).length);a.once&&(e++,f.interstitials_.delete(a),f.cuepointsChanged_());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(A){return $jscomp.asyncExecutePromiseGeneratorProgram(function(C){if(1==C.nextAddress)return"detach"!=A.state?C.jumpTo(0):shaka.util.Platform.isSmartTV()?
1630
- C.yield(new Promise(function(F){return(new shaka.util.Timer(F)).tickAfter(.1)}),3):C.jumpTo(3);h.resolve();f.adEventManager_.unlisten(f.basePlayer_,"onstatechange",k);C.jumpToEnd()})};f.adEventManager_.listen(f.basePlayer_,"onstatechange",k);return y.yield(h,2);case 2:f.usingBaseVideo_||(f.baseVideo_.pause(),null!=a.resumeOffset&&0!=a.resumeOffset&&(f.baseVideo_.currentTime+=a.resumeOffset));l=!1;m=null;n=function(){if(!f.usingBaseVideo_&&null==a.resumeOffset)if(a.timelineRange&&a.endTime&&Infinity!=
1631
- a.endTime)f.baseVideo_.currentTime!=a.endTime&&(f.baseVideo_.currentTime=a.endTime);else{var A=Date.now();f.baseVideo_.currentTime+=(A-d)/1E3;d=A}};p=function(){var A,C;return $jscomp.asyncExecutePromiseGeneratorProgram(function(F){if(1==F.nextAddress){n();m&&m.stop();goog.asserts.assert("number"==typeof e,"Should be an number!");if(A=f.getCurrentInterstitial_(a.pre,c-e))return f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_STOPPED)),f.adEventManager_.removeAll(),f.setupAd_(A,b,++c,d,e),F.jumpTo(0);
1632
- a.post&&(f.lastTime_=null,f.lastPlayedAd_=null);return f.usingBaseVideo_?F.yield(f.player_.detach(),4):F.yield(f.player_.unload(),4)}f.usingBaseVideo_&&(C=a.resumeOffset,null==C&&(C=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",C))));f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_STOPPED));f.adEventManager_.removeAll();f.playingAd_=!1;f.usingBaseVideo_?
1633
- f.cuepointsChanged_():(n(),f.baseVideo_.ended||f.baseVideo_.play());f.determineIfUsingBaseVideo_();F.jumpToEnd()})};q=function(A){return $jscomp.asyncExecutePromiseGeneratorProgram(function(C){if(l)return C.return();l=!0;f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_ERROR,(new Map).set("originalEvent",A)));return C.yield(p(),0)})};r=function(){return $jscomp.asyncExecutePromiseGeneratorProgram(function(A){if(1==A.nextAddress){if(l)return A.return();l=!0;return A.yield(p(),2)}f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_COMPLETE));
1634
- A.jumpToEnd()})};t=function(){return $jscomp.asyncExecutePromiseGeneratorProgram(function(A){if(l)return A.return();l=!0;f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_SKIPPED));return A.yield(p(),0)})};u=new shaka.ads.InterstitialAd(f.video_,a.isSkippable,a.skipOffset,a.skipFor,t,b,c,!f.usingBaseVideo_);f.usingBaseVideo_||(u.setMuted(f.baseVideo_.muted),u.setVolume(f.baseVideo_.volume));f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_STARTED,(new Map).set("ad",u)));if(v=u.canSkipNow())f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_SKIP_STATE_CHANGED));
1635
- w=new Set;f.adEventManager_.listenOnce(f.player_,"error",q);f.adEventManager_.listen(f.video_,"timeupdate",function(){var A=f.video_.duration;if(A){var C=u.canSkipNow();if(v!=C&&0<u.getRemainingTime()&&0<u.getDuration())f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_SKIP_STATE_CHANGED));v=C;A=100*f.video_.currentTime/A;25<=A&&!w.has("firstquartile")?(n(),f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_FIRST_QUARTILE)),w.add("firstquartile")):50<=A&&!w.has("midpoint")?(n(),f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_MIDPOINT)),
1636
- w.add("midpoint")):75<=A&&!w.has("thirdquartile")&&(n(),f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_THIRD_QUARTILE)),w.add("thirdquartile"))}});f.adEventManager_.listenOnce(f.player_,"complete",r);f.adEventManager_.listen(f.video_,"play",function(){f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_RESUMED))});f.adEventManager_.listen(f.video_,"pause",function(){var A=f.player_.getConfiguration();if(f.video_.currentTime>=A.playRangeEnd)r();else f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_PAUSED))});
1637
- 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))});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&&(m=(new shaka.util.Timer(function(){u.skip()})).tickAfter(a.playoutLimit),f.player_.configure("playRangeEnd",
1638
- a.playoutLimit));return y.yield(f.player_.attach(f.video_),6);case 6:return f.preloadManagerInterstitials_.has(a)?y.yield(f.preloadManagerInterstitials_.get(a),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:a.playoutLimit&&(m&&m.stop(),m=(new shaka.util.Timer(function(){u.skip()})).tickAfter(a.playoutLimit));B=(Date.now()-
1639
- 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:D=y.enterCatchBlock(),q(D),y.jumpToEnd()}})};
1640
- 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,D,y,A,C,F,H,G,E,I,L,J,M,K,O,Q,N,U,R,S,X,W,P,Y;return $jscomp.asyncExecutePromiseGeneratorProgram(function(T){switch(T.nextAddress){case 1:c=[];if(!a)return T.return(c);d=a.values.find(function(V){return"X-ASSET-URI"==V.key});e=a.values.find(function(V){return"X-ASSET-LIST"==V.key});if(!d&&!e)return T.return(c);f=null;if(g=a.values.find(function(V){return"ID"==V.key}))f=g.data;
1630
+ shaka.ads.InterstitialAdManager.prototype.setupAd_=function(a,b,c,d,e){e=void 0===e?0:e;var f=this,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z,B;return $jscomp.asyncExecutePromiseGeneratorProgram(function(C){switch(C.nextAddress){case 1:f.determineIfUsingBaseVideo_();goog.asserts.assert(f.video_,"Must have video");f.lastPlayedAd_=a;shaka.log.info("Starting interstitial",a.startTime,"at",f.lastTime_);g=Date.now();!f.video_.parentElement&&f.adContainer_&&f.adContainer_.appendChild(f.video_);1==c&&1==b&&(b=Array.from(f.interstitials_).filter(function(y){return a.pre?
1631
+ y.pre==a.pre:a.post?y.post==a.post:.001>Math.abs(y.startTime-a.startTime)}).length);a.once&&(e++,f.interstitials_.delete(a),f.cuepointsChanged_());f.playingAd_=!0;if(!f.usingBaseVideo_||1!=c){C.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(y){return $jscomp.asyncExecutePromiseGeneratorProgram(function(A){if(1==A.nextAddress)return"detach"!=y.state?A.jumpTo(0):shaka.util.Platform.isSmartTV()?
1632
+ A.yield(new Promise(function(D){return(new shaka.util.Timer(D)).tickAfter(.1)}),3):A.jumpTo(3);h.resolve();f.adEventManager_.unlisten(f.basePlayer_,"onstatechange",k);A.jumpToEnd()})};f.adEventManager_.listen(f.basePlayer_,"onstatechange",k);return C.yield(h,2);case 2:f.usingBaseVideo_||(f.baseVideo_.pause(),null!=a.resumeOffset&&0!=a.resumeOffset&&(f.baseVideo_.currentTime+=a.resumeOffset));l=!1;m=null;n=function(){if(!f.usingBaseVideo_&&null==a.resumeOffset)if(a.timelineRange&&a.endTime&&Infinity!=
1633
+ a.endTime)f.baseVideo_.currentTime!=a.endTime&&(f.baseVideo_.currentTime=a.endTime);else{var y=Date.now();f.baseVideo_.currentTime+=(y-d)/1E3;d=y}};p=function(){var y,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(D){if(1==D.nextAddress){n();m&&m.stop();goog.asserts.assert("number"==typeof e,"Should be an number!");if(y=f.getCurrentInterstitial_(a.pre,c-e))return f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_STOPPED)),f.adEventManager_.removeAll(),f.setupAd_(y,b,++c,d,e),D.jumpTo(0);
1634
+ a.post&&(f.lastTime_=null,f.lastPlayedAd_=null);return f.usingBaseVideo_?D.yield(f.player_.detach(),4):D.yield(f.player_.unload(),4)}f.usingBaseVideo_&&(A=a.resumeOffset,null==A&&(A=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",A))));f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_STOPPED));f.adEventManager_.removeAll();f.playingAd_=!1;f.usingBaseVideo_?
1635
+ f.cuepointsChanged_():(n(),f.baseVideo_.ended||f.baseVideo_.play());f.determineIfUsingBaseVideo_();D.jumpToEnd()})};q=function(y){return $jscomp.asyncExecutePromiseGeneratorProgram(function(A){if(l)return A.return();l=!0;f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_ERROR,(new Map).set("originalEvent",y)));return A.yield(p(),0)})};r=function(){return $jscomp.asyncExecutePromiseGeneratorProgram(function(y){if(1==y.nextAddress){if(l)return y.return();l=!0;return y.yield(p(),2)}f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_COMPLETE));
1636
+ y.jumpToEnd()})};t=function(){return $jscomp.asyncExecutePromiseGeneratorProgram(function(y){if(l)return y.return();l=!0;f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_SKIPPED));return y.yield(p(),0)})};u=new shaka.ads.InterstitialAd(f.video_,a.isSkippable,a.skipOffset,a.skipFor,t,b,c,!f.usingBaseVideo_);f.usingBaseVideo_||(u.setMuted(f.baseVideo_.muted),u.setVolume(f.baseVideo_.volume));f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_STARTED,(new Map).set("ad",u)));if(v=u.canSkipNow())f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_SKIP_STATE_CHANGED));
1637
+ f.adEventManager_.listenOnce(f.player_,"error",q);f.adEventManager_.listen(f.video_,"timeupdate",function(){if(f.video_.duration){var y=u.canSkipNow();if(v!=y&&0<u.getRemainingTime()&&0<u.getDuration())f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_SKIP_STATE_CHANGED));v=y}});f.adEventManager_.listenOnce(f.player_,"firstquartile",function(){n();f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_FIRST_QUARTILE))});f.adEventManager_.listenOnce(f.player_,"midpoint",function(){n();f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_MIDPOINT))});
1638
+ f.adEventManager_.listenOnce(f.player_,"thirdquartile",function(){n();f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_THIRD_QUARTILE))});f.adEventManager_.listenOnce(f.player_,"complete",r);f.adEventManager_.listen(f.video_,"play",function(){f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_RESUMED))});f.adEventManager_.listen(f.video_,"pause",function(){var y=f.player_.getConfiguration();if(f.video_.currentTime>=y.playRangeEnd)r();else f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_PAUSED))});
1639
+ 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))});C.setCatchFinallyBlocks(4);f.updatePlayerConfig_();a.startTime&&a.endTime&&Infinity!=a.endTime&&a.startTime!=a.endTime&&(w=a.endTime-a.startTime,0<w&&f.player_.configure("playRangeEnd",w));a.playoutLimit&&(m=(new shaka.util.Timer(function(){u.skip()})).tickAfter(a.playoutLimit),f.player_.configure("playRangeEnd",
1640
+ a.playoutLimit));return C.yield(f.player_.attach(f.video_),6);case 6:return f.preloadManagerInterstitials_.has(a)?C.yield(f.preloadManagerInterstitials_.get(a),10):C.yield(f.player_.load(a.uri,null,a.mimeType||void 0),8);case 10:return x=C.yieldResult,f.preloadManagerInterstitials_.delete(a),x?C.yield(f.player_.load(x),8):C.yield(f.player_.load(a.uri,null,a.mimeType||void 0),8);case 8:a.playoutLimit&&(m&&m.stop(),m=(new shaka.util.Timer(function(){u.skip()})).tickAfter(a.playoutLimit));z=(Date.now()-
1641
+ g)/1E3;f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.ADS_LOADED,(new Map).set("loadTime",z)));f.usingBaseVideo_&&f.baseVideo_.play();C.leaveTryBlock(0);break;case 4:B=C.enterCatchBlock(),q(B),C.jumpToEnd()}})};
1642
+ 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,C,y,A,D,F,H,G,E,I,L,J,M,K,O,Q,N,U,R,S,X,W,P,Y;return $jscomp.asyncExecutePromiseGeneratorProgram(function(T){switch(T.nextAddress){case 1:c=[];if(!a)return T.return(c);d=a.values.find(function(V){return"X-ASSET-URI"==V.key});e=a.values.find(function(V){return"X-ASSET-LIST"==V.key});if(!d&&!e)return T.return(c);f=null;if(g=a.values.find(function(V){return"ID"==V.key}))f=g.data;
1641
1643
  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(V){return"X-RESTRICT"==V.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(V){return"X-ENABLE-SKIP-AFTER"==V.key}))t=r.data,q=parseFloat(t),isNaN(q)&&(q=m?0:null);u=null;if(v=a.values.find(function(V){return"X-ENABLE-SKIP-FOR"==V.key}))w=v.data,
1642
- u=parseFloat(w),isNaN(q)&&(u=null);x=null;if(z=a.values.find(function(V){return"X-RESUME-OFFSET"==V.key}))B=z.data,x=parseFloat(B),isNaN(x)&&(x=null);D=null;if(y=a.values.find(function(V){return"X-PLAYOUT-LIMIT"==V.key}))A=y.data,D=parseFloat(A),isNaN(D)&&(D=null);H=F=C=!1;if(G=a.values.find(function(V){return"CUE"==V.key}))E=G.data,C=E.includes("ONCE"),F=E.includes("PRE"),H=E.includes("POST");I=!1;(L=a.values.find(function(V){return"X-TIMELINE-OCCUPIES"==V.key}))?(J=L.data,I=J.includes("RANGE")):
1643
- !z&&b.basePlayer_.isLive()&&(I=!F&&!H);if(d){M=d.data;if(!M)return T.return(c);c.push({id:f,startTime:h,endTime:k,uri:M,mimeType:null,isSkippable:m,skipOffset:q,skipFor:u,canJump:n,resumeOffset:x,playoutLimit:D,once:C,pre:F,post:H,timelineRange:I});T.jumpTo(2);break}if(!e){T.jumpTo(2);break}K=e.data;if(!K)return T.return(c);T.setCatchFinallyBlocks(4);O=shaka.net.NetworkingEngine;Q={type:O.AdvancedRequestType.INTERSTITIAL_ASSET_LIST};return T.yield(b.makeAdRequest_(K,Q),6);case 6:N=T.yieldResult;U=
1644
- shaka.util.StringUtils.fromUTF8(N);R=JSON.parse(U);if(S=R["SKIP-CONTROL"])X=S["ENABLE-SKIP-AFTER"],"number"==typeof X&&(q=parseFloat(X),isNaN(X)&&(q=m?0:null)),W=S["ENABLE-SKIP-FOR"],"number"==typeof W&&(u=parseFloat(W),isNaN(W)&&(u=null));for(P=0;P<R.ASSETS.length;P++)Y=R.ASSETS[P],Y.URI&&c.push({id:f+"_asset_"+P,startTime:h,endTime:k,uri:Y.URI,mimeType:null,isSkippable:m,skipOffset:q,skipFor:u,canJump:n,resumeOffset:x,playoutLimit:D,once:C,pre:F,post:H,timelineRange:I});T.leaveTryBlock(2);break;
1644
+ u=parseFloat(w),isNaN(q)&&(u=null);x=null;if(z=a.values.find(function(V){return"X-RESUME-OFFSET"==V.key}))B=z.data,x=parseFloat(B),isNaN(x)&&(x=null);C=null;if(y=a.values.find(function(V){return"X-PLAYOUT-LIMIT"==V.key}))A=y.data,C=parseFloat(A),isNaN(C)&&(C=null);H=F=D=!1;if(G=a.values.find(function(V){return"CUE"==V.key}))E=G.data,D=E.includes("ONCE"),F=E.includes("PRE"),H=E.includes("POST");I=!1;(L=a.values.find(function(V){return"X-TIMELINE-OCCUPIES"==V.key}))?(J=L.data,I=J.includes("RANGE")):
1645
+ !z&&b.basePlayer_.isLive()&&(I=!F&&!H);if(d){M=d.data;if(!M)return T.return(c);c.push({id:f,startTime:h,endTime:k,uri:M,mimeType:null,isSkippable:m,skipOffset:q,skipFor:u,canJump:n,resumeOffset:x,playoutLimit:C,once:D,pre:F,post:H,timelineRange:I});T.jumpTo(2);break}if(!e){T.jumpTo(2);break}K=e.data;if(!K)return T.return(c);T.setCatchFinallyBlocks(4);O=shaka.net.NetworkingEngine;Q={type:O.AdvancedRequestType.INTERSTITIAL_ASSET_LIST};return T.yield(b.makeAdRequest_(K,Q),6);case 6:N=T.yieldResult;U=
1646
+ shaka.util.StringUtils.fromUTF8(N);R=JSON.parse(U);if(S=R["SKIP-CONTROL"])X=S["ENABLE-SKIP-AFTER"],"number"==typeof X&&(q=parseFloat(X),isNaN(X)&&(q=m?0:null)),W=S["ENABLE-SKIP-FOR"],"number"==typeof W&&(u=parseFloat(W),isNaN(W)&&(u=null));for(P=0;P<R.ASSETS.length;P++)Y=R.ASSETS[P],Y.URI&&c.push({id:f+"_asset_"+P,startTime:h,endTime:k,uri:Y.URI,mimeType:null,isSkippable:m,skipOffset:q,skipFor:u,canJump:n,resumeOffset:x,playoutLimit:C,once:D,pre:F,post:H,timelineRange:I});T.leaveTryBlock(2);break;
1645
1647
  case 4:T.enterCatchBlock();case 2:return T.return(c)}})};
1646
1648
  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,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==
1647
1649
  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)))};
@@ -2016,9 +2018,9 @@ shaka.dash.SegmentBase.createInitSegment=function(a,b,c){var d=shaka.util.TXml,e
2016
2018
  f,d,null,null,c);c.codecs=a.representation.codecs;c.mimeType=a.representation.mimeType;return c};
2017
2019
  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);
2018
2020
  return{generateSegmentIndex:function(){return e.generateSegmentIndex_(m,b,l,k)}}};
2019
- 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,D,y,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(C){if(1==C.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,C.yield(Promise.all(r),2);t=C.yieldResult;u=t[0];v=t[1]||
2020
- 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));D=$jscomp.makeIterator(w);for(y=D.next();!y.done;y=D.next())A=y.value,A.codecs=a.representation.codecs,A.mimeType=a.representation.mimeType,A.bandwidth=a.bandwidth;h.notifySegments(w);goog.asserts.assert(!q,"Should not call generateSegmentIndex twice");q=new shaka.media.SegmentIndex(w);
2021
- k&&q.fit(z,B,!0);return C.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};
2021
+ 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,C,y,A;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]||
2022
+ 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));C=$jscomp.makeIterator(w);for(y=C.next();!y.done;y=C.next())A=y.value,A.codecs=a.representation.codecs,A.mimeType=a.representation.mimeType,A.bandwidth=a.bandwidth;h.notifySegments(w);goog.asserts.assert(!q,"Should not call generateSegmentIndex twice");q=new shaka.media.SegmentIndex(w);
2023
+ 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};
2022
2024
  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};
2023
2025
  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);};
2024
2026
  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:",
@@ -2051,11 +2053,11 @@ shaka.dash.SegmentTemplate.checkSegmentTemplateInfo_=function(a,b){var c=b.index
2051
2053
  a.representation),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_NO_SEGMENT_INFO);};
2052
2054
  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.id,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)};
2053
2055
  shaka.dash.SegmentTemplate.generateSegmentIndexFromDuration_=function(a,b,c,d,e,f,g,h){goog.asserts.assert(b.mediaTemplate,"There should be a media template with duration");var k=shaka.dash.MpdUtils,l=shaka.util.ManifestParserUtils,m=a.presentationTimeline,n=a.periodInfo.start,p=a.period.id,q=a.periodInfo.duration,r=function(){var L=null!=p&&e[p]||q;return L?n+L:Infinity},t=b.segmentDuration;goog.asserts.assert(null!=t,"Segment duration must not be null!");var u=b.startNumber,v=b.timescale,w=b.mediaTemplate,
2054
- x=a.bandwidth||null,z=a.representation.id,B=a.representation.getBaseUris,D=a.urlParams,y=n-b.scaledPresentationTimeOffset,A=function(){var L=[Math.max(m.getSegmentAvailabilityStart(),n),Math.min(m.getSegmentAvailabilityEnd(),r())];goog.asserts.assert(L.every(isFinite),"Available presentation times must be finite!");goog.asserts.assert(L.every(function(J){return 0<=J}),"Available presentation times must be positive!");goog.asserts.assert(null!=t,"Segment duration must not be null!");L=L.map(function(J){return J-
2055
- n});L=[Math.ceil(L[0]/t),Math.ceil(L[1]/t)-1];a.representation.availabilityTimeOffset&&L[1]++;return L.map(function(J){return J+u})},C=A();c=a.dynamic?Math.max(C[0],C[1]-c+1):C[0];g=g||C[1];C=[];var F=function(L){goog.asserts.assert(null!=t,"Segment duration must not be null!");var J=(L-u)*t,M=J+b.scaledPresentationTimeOffset,K=J+n;J=K+t;var O=Math.min(J,r());goog.asserts.assert(K<O,"Generated a segment outside of the period!");var Q=[],N=b.numChunks;if(N)for(var U=(O-K)/N,R={},S=0;S<N;R={subNumber$jscomp$1:void 0},
2056
- S++){var X=K+U*S,W=X+U;R.subNumber$jscomp$1=S+1;R=function(P){return function(){var Y=M*v;"BigInt"in window&&Y>Number.MAX_SAFE_INTEGER&&(Y=BigInt(M)*BigInt(v));Y=k.fillUriTemplate(w,z,L,P.subNumber$jscomp$1,x,Y);return l.resolveUris(B(),[Y],D())}}(R);X=new shaka.media.SegmentReference(X,W,R,0,null,d,y,n,r(),[],"",null,null,shaka.media.SegmentReference.Status.AVAILABLE,f);X.codecs=a.representation.codecs;X.mimeType=a.representation.mimeType;0==h?0<S&&X.markAsNonIndependent():0!=S%h&&X.markAsNonIndependent();
2057
- Q.push(X)}K=new shaka.media.SegmentReference(K,O,function(){if(N)return[];var P=M*v;"BigInt"in window&&P>Number.MAX_SAFE_INTEGER&&(P=BigInt(M)*BigInt(v));P=k.fillUriTemplate(w,z,L,null,x,P);return l.resolveUris(B(),[P],D())},0,null,d,y,n,r(),Q,"",null,null,shaka.media.SegmentReference.Status.AVAILABLE,f,0<Q.length);K.codecs=a.representation.codecs;K.mimeType=a.representation.mimeType;K.bandwidth=a.bandwidth;K.trueEndTime=J;return K},H=c;for(;H<=g;++H){var G=F(H);C.push(G)}var E=new shaka.media.SegmentIndex(C);
2058
- C=m.getSegmentAvailabilityEnd()<r();H=m.isLive();if(C||H){var I=Math.max(c,g+1);c=t;a.representation.availabilityTimeOffset&&(c=.1);E.updateEvery(c,function(){var L=m.getSegmentAvailabilityStart();E.evict(L);var J=$jscomp.makeIterator(A());J.next();J=J.next().value;for(var M=[];I<=J;){var K=F(I);M.push(K);I++}return L>r()&&!M.length?null:M})}return Promise.resolve(E)};
2056
+ x=a.bandwidth||null,z=a.representation.id,B=a.representation.getBaseUris,C=a.urlParams,y=n-b.scaledPresentationTimeOffset,A=function(){var L=[Math.max(m.getSegmentAvailabilityStart(),n),Math.min(m.getSegmentAvailabilityEnd(),r())];goog.asserts.assert(L.every(isFinite),"Available presentation times must be finite!");goog.asserts.assert(L.every(function(J){return 0<=J}),"Available presentation times must be positive!");goog.asserts.assert(null!=t,"Segment duration must not be null!");L=L.map(function(J){return J-
2057
+ n});L=[Math.ceil(L[0]/t),Math.ceil(L[1]/t)-1];a.representation.availabilityTimeOffset&&L[1]++;return L.map(function(J){return J+u})},D=A();c=a.dynamic?Math.max(D[0],D[1]-c+1):D[0];g=g||D[1];D=[];var F=function(L){goog.asserts.assert(null!=t,"Segment duration must not be null!");var J=(L-u)*t,M=J+b.scaledPresentationTimeOffset,K=J+n;J=K+t;var O=Math.min(J,r());goog.asserts.assert(K<O,"Generated a segment outside of the period!");var Q=[],N=b.numChunks;if(N)for(var U=(O-K)/N,R={},S=0;S<N;R={subNumber$jscomp$1:void 0},
2058
+ S++){var X=K+U*S,W=X+U;R.subNumber$jscomp$1=S+1;R=function(P){return function(){var Y=M*v;"BigInt"in window&&Y>Number.MAX_SAFE_INTEGER&&(Y=BigInt(M)*BigInt(v));Y=k.fillUriTemplate(w,z,L,P.subNumber$jscomp$1,x,Y);return l.resolveUris(B(),[Y],C())}}(R);X=new shaka.media.SegmentReference(X,W,R,0,null,d,y,n,r(),[],"",null,null,shaka.media.SegmentReference.Status.AVAILABLE,f);X.codecs=a.representation.codecs;X.mimeType=a.representation.mimeType;0==h?0<S&&X.markAsNonIndependent():0!=S%h&&X.markAsNonIndependent();
2059
+ Q.push(X)}K=new shaka.media.SegmentReference(K,O,function(){if(N)return[];var P=M*v;"BigInt"in window&&P>Number.MAX_SAFE_INTEGER&&(P=BigInt(M)*BigInt(v));P=k.fillUriTemplate(w,z,L,null,x,P);return l.resolveUris(B(),[P],C())},0,null,d,y,n,r(),Q,"",null,null,shaka.media.SegmentReference.Status.AVAILABLE,f,0<Q.length);K.codecs=a.representation.codecs;K.mimeType=a.representation.mimeType;K.bandwidth=a.bandwidth;K.trueEndTime=J;return K},H=c;for(;H<=g;++H){var G=F(H);D.push(G)}var E=new shaka.media.SegmentIndex(D);
2060
+ D=m.getSegmentAvailabilityEnd()<r();H=m.isLive();if(D||H){var I=Math.max(c,g+1);c=t;a.representation.availabilityTimeOffset&&(c=.1);E.updateEvery(c,function(){var L=m.getSegmentAvailabilityStart();E.evict(L);var J=$jscomp.makeIterator(A());J.next();J=J.next().value;for(var M=[];I<=J;){var K=F(I);M.push(K);I++}return L>r()&&!M.length?null:M})}return Promise.resolve(E)};
2059
2061
  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.id,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,
2060
2062
  "Should have returned earler");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};
2061
2063
  shaka.dash.TimelineSegmentIndex=function(a,b,c,d,e,f,g,h,k,l,m){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_=l;this.segmentSequenceCadence_=m;k&&this.fitTimeline()};$jscomp.inherits(shaka.dash.TimelineSegmentIndex,shaka.media.SegmentIndex);
@@ -2086,19 +2088,19 @@ shaka.util.PeriodCombiner.prototype.deleteStream=function(a,b){if(a){var c=shaka
2086
2088
  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)}};
2087
2089
  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),
2088
2090
  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}};
2089
- 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,D,y,A,C,F,H,G,E,I,L,J,M;return $jscomp.asyncExecutePromiseGeneratorProgram(function(K){if(1==K.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_=
2091
+ 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,C,y,A,D,F,H,G,E,I,L,J,M;return $jscomp.asyncExecutePromiseGeneratorProgram(function(K){if(1==K.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_=
2090
2092
  Array.from(h[0].values()),d.textStreams_=Array.from(k[0].values()),d.imageStreams_=Array.from(l[0].values()),K.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 K.return();r=d.getStreamsPerPeriod_(a,!0);t=r.audioStreamsPerPeriod;u=r.videoStreamsPerPeriod;v=r.textStreamsPerPeriod;w=r.imageStreamsPerPeriod;return K.yield(Promise.all([d.combine_(d.audioStreams_,t,n,shaka.util.PeriodCombiner.cloneStream_,
2091
2093
  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(F=$jscomp.makeIterator(d.audioStreams_),
2092
2094
  H=F.next();!H.done;H=F.next())for(G=H.value,E=$jscomp.makeIterator(d.videoStreams_),I=E.next();!I.done;I=E.next())L=I.value,J=shaka.util.DrmUtils.getCommonDrmInfos(G.drmInfos,L.drmInfos),G.drmInfos.length&&L.drmInfos.length&&!J.length?shaka.log.warning("Incompatible DRM in audio & video, skipping variant creation.",G,L):(M=x++,z.push({id:M,language:G.language,disabledUntilTime:0,primary:G.primary,audio:G,video:L,bandwidth:(G.bandwidth||0)+(L.bandwidth||0),drmInfos:J,allowedByApplication:!0,allowedByKeySystem:!0,
2093
- decodingInfos:[]}));else for(B=d.videoStreams_.length?d.videoStreams_:d.audioStreams_,D=$jscomp.makeIterator(B),y=D.next();!y.done;y=D.next())A=y.value,C=x++,z.push({id:C,language:A.language,disabledUntilTime:0,primary:A.primary,audio:A.type==e.AUDIO?A:null,video:A.type==e.VIDEO?A:null,bandwidth:A.bandwidth||0,drmInfos:A.drmInfos,allowedByApplication:!0,allowedByKeySystem:!0,decodingInfos:[]});d.variants_=z;K.jumpToEnd()})};
2094
- 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,D,y,A,C,F,H,G,E,I,L;return $jscomp.asyncExecutePromiseGeneratorProgram(function(J){switch(J.nextAddress){case 1:b=shaka.util.ManifestParserUtils.ContentType;c=shaka.util.PeriodCombiner;if(1==a.length)return J.return(a[0]);d=a.map(function(M){return new Map(M.filter(function(K){return K.type===b.AUDIO}).map(function(K){return[c.generateAudioKey_(K),K]}))});e=a.map(function(M){return new Map(M.filter(function(K){return K.type===
2095
+ decodingInfos:[]}));else for(B=d.videoStreams_.length?d.videoStreams_:d.audioStreams_,C=$jscomp.makeIterator(B),y=C.next();!y.done;y=C.next())A=y.value,D=x++,z.push({id:D,language:A.language,disabledUntilTime:0,primary:A.primary,audio:A.type==e.AUDIO?A:null,video:A.type==e.VIDEO?A:null,bandwidth:A.bandwidth||0,drmInfos:A.drmInfos,allowedByApplication:!0,allowedByKeySystem:!0,decodingInfos:[]});d.variants_=z;K.jumpToEnd()})};
2096
+ 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,C,y,A,D,F,H,G,E,I,L;return $jscomp.asyncExecutePromiseGeneratorProgram(function(J){switch(J.nextAddress){case 1:b=shaka.util.ManifestParserUtils.ContentType;c=shaka.util.PeriodCombiner;if(1==a.length)return J.return(a[0]);d=a.map(function(M){return new Map(M.filter(function(K){return K.type===b.AUDIO}).map(function(K){return[c.generateAudioKey_(K),K]}))});e=a.map(function(M){return new Map(M.filter(function(K){return K.type===
2095
2097
  b.VIDEO}).map(function(K){return[c.generateVideoKey_(K),K]}))});f=a.map(function(M){return new Map(M.filter(function(K){return K.type===b.TEXT}).map(function(K){return[c.generateTextKey_(K),K]}))});g=a.map(function(M){return new Map(M.filter(function(K){return K.type===b.IMAGE}).map(function(K){return[c.generateImageKey_(K),K]}))});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=
2096
2098
  n.next())q=p.value,r=c.dummyStreamDB_(b.IMAGE),q.set(c.generateImageKey_(r),r);t=new shaka.util.PeriodCombiner;return J.yield(t.combine_([],d,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_,0),2);case 2:return u=J.yieldResult,J.yield(t.combine_([],e,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_,0),3);case 3:return v=J.yieldResult,J.yield(t.combine_([],f,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_,
2097
- 0),4);case 4:return w=J.yieldResult,J.yield(t.combine_([],g,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_,0),5);case 5:x=J.yieldResult;z=0;if(v.length&&u.length)for(C=$jscomp.makeIterator(u),F=C.next();!F.done;F=C.next())for(H=F.value,G=$jscomp.makeIterator(v),E=G.next();!E.done;E=G.next())I=E.value,L=z++,I.variantIds.push(L),H.variantIds.push(L);else for(B=v.concat(u),D=$jscomp.makeIterator(B),y=D.next();!y.done;y=D.next())A=y.value,A.variantIds=[z++];
2099
+ 0),4);case 4:return w=J.yieldResult,J.yield(t.combine_([],g,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_,0),5);case 5:x=J.yieldResult;z=0;if(v.length&&u.length)for(D=$jscomp.makeIterator(u),F=D.next();!F.done;F=D.next())for(H=F.value,G=$jscomp.makeIterator(v),E=G.next();!E.done;E=G.next())I=E.value,L=z++,I.variantIds.push(L),H.variantIds.push(L);else for(B=v.concat(u),C=$jscomp.makeIterator(B),y=C.next();!y.done;y=C.next())A=y.value,A.variantIds=[z++];
2098
2100
  return J.return(v.concat(u).concat(w).concat(x))}})};
2099
- 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,D,y,A,C,F;return $jscomp.asyncExecutePromiseGeneratorProgram(function(H){switch(H.nextAddress){case 1:h=[];for(k=0;k<b.length;k++)k>=c?h.push(new Set(b[k].values())):h.push(new Set);l=$jscomp.makeIterator(a);m=l.next();case 2:if(m.done){H.jumpTo(4);break}n=m.value;return H.yield(g.extendExistingOutputStream_(n,b,c,e,h,f),5);case 5:p=H.yieldResult;if(!p)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
2100
- shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.PERIOD_FLATTENING_FAILED);m=l.next();H.jumpTo(2);break;case 4:q=$jscomp.makeIterator(h);for(r=q.next();!r.done;r=q.next())for(t=r.value,u=$jscomp.makeIterator(t),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(D=B.value,y=$jscomp.makeIterator(D),A=y.next(),C={};!A.done;C={stream$jscomp$94:void 0},A=y.next())if(C.stream$jscomp$94=A.value,
2101
- !shaka.util.PeriodCombiner.isDummy_(C.stream$jscomp$94)&&(F=a.some(function(G){return function(E){return g.areAVStreamsCompatible_(G.stream$jscomp$94,E)}}(C))))throw shaka.log.error("Unused stream in period-flattening!",C.stream$jscomp$94,a),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.PERIOD_FLATTENING_FAILED);return H.return(a)}})};
2101
+ 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,C,y,A,D,F;return $jscomp.asyncExecutePromiseGeneratorProgram(function(H){switch(H.nextAddress){case 1:h=[];for(k=0;k<b.length;k++)k>=c?h.push(new Set(b[k].values())):h.push(new Set);l=$jscomp.makeIterator(a);m=l.next();case 2:if(m.done){H.jumpTo(4);break}n=m.value;return H.yield(g.extendExistingOutputStream_(n,b,c,e,h,f),5);case 5:p=H.yieldResult;if(!p)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
2102
+ shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.PERIOD_FLATTENING_FAILED);m=l.next();H.jumpTo(2);break;case 4:q=$jscomp.makeIterator(h);for(r=q.next();!r.done;r=q.next())for(t=r.value,u=$jscomp.makeIterator(t),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(C=B.value,y=$jscomp.makeIterator(C),A=y.next(),D={};!A.done;D={stream$jscomp$92:void 0},A=y.next())if(D.stream$jscomp$92=A.value,
2103
+ !shaka.util.PeriodCombiner.isDummy_(D.stream$jscomp$92)&&(F=a.some(function(G){return function(E){return g.areAVStreamsCompatible_(G.stream$jscomp$92,E)}}(D))))throw shaka.log.error("Unused stream in period-flattening!",D.stream$jscomp$92,a),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.PERIOD_FLATTENING_FAILED);return H.return(a)}})};
2102
2104
  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,
2103
2105
  c,d,e,f);return h.return(!0)})};
2104
2106
  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<
@@ -2158,11 +2160,11 @@ p);return q.return(p)})};
2158
2160
  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,
2159
2161
  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,
2160
2162
  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))})};
2161
- 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,D,y,A,C,F,H,G,E,I,L,J,M,K,O,Q,N,U,R,S,X,W,P,Y,T,V,ba,ca,Z,da,ha,fa,ia,ea,na,ja,ka,la,ma;return $jscomp.asyncExecutePromiseGeneratorProgram(function(aa){switch(aa.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,
2163
+ 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,C,y,A,D,F,H,G,E,I,L,J,M,K,O,Q,N,U,R,S,X,W,P,Y,T,V,ba,ca,Z,da,ha,fa,ia,ea,na,ja,ka,la,ma;return $jscomp.asyncExecutePromiseGeneratorProgram(function(aa){switch(aa.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,
2162
2164
  "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=
2163
2165
  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),
2164
- 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())D=B.value,y=g.get(D),c.contentSteeringManager_.addLocation("Location",D,y)}A=d.findChildren(a,"BaseURL");C=!1;if(c.contentSteeringManager_)for(F=$jscomp.makeIterator(A),H=F.next();!H.done;H=
2165
- F.next())G=H.value,E=G.attributes.serviceLocation,I=d.getContents(G),E&&I&&(c.contentSteeringManager_.addLocation("BaseURL",E,I),C=!0);c.lastCalculatedBaseUris_=null;C&&c.contentSteeringManager_||(L=A.map(d.getContents),c.lastCalculatedBaseUris_=shaka.util.ManifestParserUtils.resolveUris(e,L));J=function(){return c.contentSteeringManager_&&C?c.contentSteeringManager_.getLocations("BaseURL"):c.lastCalculatedBaseUris_?c.lastCalculatedBaseUris_:[]};c.manifestPatchContext_.getBaseUris=J;M=0;A&&A.length&&
2166
+ 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())C=B.value,y=g.get(C),c.contentSteeringManager_.addLocation("Location",C,y)}A=d.findChildren(a,"BaseURL");D=!1;if(c.contentSteeringManager_)for(F=$jscomp.makeIterator(A),H=F.next();!H.done;H=
2167
+ F.next())G=H.value,E=G.attributes.serviceLocation,I=d.getContents(G),E&&I&&(c.contentSteeringManager_.addLocation("BaseURL",E,I),D=!0);c.lastCalculatedBaseUris_=null;D&&c.contentSteeringManager_||(L=A.map(d.getContents),c.lastCalculatedBaseUris_=shaka.util.ManifestParserUtils.resolveUris(e,L));J=function(){return c.contentSteeringManager_&&D?c.contentSteeringManager_.getLocations("BaseURL"):c.lastCalculatedBaseUris_?c.lastCalculatedBaseUris_:[]};c.manifestPatchContext_.getBaseUris=J;M=0;A&&A.length&&
2166
2168
  (M=d.parseAttr(A[0],"availabilityTimeOffset",d.parseFloat)||0);c.manifestPatchContext_.availabilityTimeOffset=M;K=c.config_.dash.ignoreMinBufferTime;O=0;K||(O=d.parseAttr(a,"minBufferTime",d.parseDuration)||0);c.updatePeriod_=d.parseAttr(a,"minimumUpdatePeriod",d.parseDuration,-1);Q=d.parseAttr(a,"availabilityStartTime",d.parseDate);N=d.parseAttr(a,"timeShiftBufferDepth",d.parseDuration);U=c.config_.dash.ignoreSuggestedPresentationDelay;R=null;U||(R=d.parseAttr(a,"suggestedPresentationDelay",d.parseDuration));
2167
2169
  S=c.config_.dash.ignoreMaxSegmentDuration;X=null;S||(X=d.parseAttr(a,"maxSegmentDuration",d.parseDuration));W=a.attributes.type||"static";c.manifest_&&c.manifest_.presentationTimeline&&(c.isTransitionFromDynamicToStatic_=c.manifest_.presentationTimeline.isLive()&&"static"==W);c.manifestPatchContext_.type=W;if(c.manifest_)for(P=c.manifest_.presentationTimeline,Y=$jscomp.makeIterator(Object.values(c.streamMap_)),T=Y.next();!T.done;T=Y.next())V=T.value,V.segmentIndex&&V.segmentIndex.evict(P.getSegmentAvailabilityStart());
2168
2170
  else ba=c.config_.defaultPresentationDelay||1.5*O,ca=null!=R?R:ba,P=new shaka.media.PresentationTimeline(Q,ca,c.config_.dash.autoCorrectDrift);P.setStatic("static"==W);(Z=P.isLive())&&!isNaN(c.config_.availabilityWindowOverride)&&(N=c.config_.availabilityWindowOverride);null==N&&(N=Infinity);P.setSegmentAvailabilityDuration(N);da=a.attributes.profiles||"";c.manifestPatchContext_.profiles=da.split(",");ha={dynamic:"static"!=W,presentationTimeline:P,period:null,periodInfo:null,adaptationSet:null,representation:null,
@@ -2171,10 +2173,10 @@ c.lowLatencyMode_&&P.setAvailabilityTimeOffset(c.minTotalAvailabilityTimeOffset_
2171
2173
  {presentationTimeline:P,variants:c.periodCombiner_.getVariants(),textStreams:c.periodCombiner_.getTextStreams(),imageStreams:c.periodCombiner_.getImageStreams(),offlineSessionIds:[],minBufferTime:O||0,sequenceMode:c.config_.dash.sequenceMode,ignoreManifestTimestampsInSegmentsMode:!1,type:shaka.media.ManifestParser.DASH,serviceDescription:c.parseServiceDescription_(a),nextUrl:c.parseMpdChaining_(a),periodCount:ea.length,gapCount:c.gapCount_,isLowLatency:c.isLowLatency_,startTime:null};if(!P.usingPresentationStartTime()){aa.jumpTo(7);
2172
2174
  break}ka=shaka.util.TXml;la=ka.findChildren(a,"UTCTiming");return aa.yield(c.parseUtcTiming_(J,la),8);case 8:ma=aa.yieldResult;if(!c.playerInterface_)return aa.return();P.setClockOffset(ma);case 7:P.lockStartTime();case 4:c.playerInterface_.makeTextStreamsForClosedCaptions(c.manifest_),c.cleanStreamMap_(),aa.jumpToEnd()}})};
2173
2175
  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()})};
2174
- 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,D,y,A,C,F,H,G,E,I;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,
2176
+ 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,C,y,A,D,F,H,G,E,I;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,
2175
2177
  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===
2176
- 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),D=B.next();!D.done;D=B.next())y=D.value,
2177
- h.add(y);else n=!1;n||shaka.log.warning("Unhandled "+m.tagName+" operation",m.attributes.sel)}A=$jscomp.makeIterator(h);for(C=A.next();!C.done;C=A.next())F=C.value,b.parsePatchSegment_(F);H=$jscomp.makeIterator(g);for(G=H.next();!G.done;G=H.next())E=G.value,f.push.apply(f,$jscomp.arrayFromIterable(b.parsePatchPeriod_(E)));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&&
2178
+ 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),C=B.next();!C.done;C=B.next())y=C.value,
2179
+ h.add(y);else n=!1;n||shaka.log.warning("Unhandled "+m.tagName+" operation",m.attributes.sel)}A=$jscomp.makeIterator(h);for(D=A.next();!D.done;D=A.next())F=D.value,b.parsePatchSegment_(F);H=$jscomp.makeIterator(g);for(G=H.next();!G.done;G=H.next())E=G.value,f.push.apply(f,$jscomp.arrayFromIterable(b.parsePatchPeriod_(E)));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&&
2178
2180
  (I=b.manifestPatchContext_.mediaPresentationDuration,b.manifest_.presentationTimeline.setDuration(I||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)};
2179
2181
  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}};
2180
2182
  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,
@@ -2193,8 +2195,8 @@ shaka.dash.DashParser.prototype.parsePeriods_=function(a,b,c,d){var e=shaka.util
2193
2195
  !this.lastManifestUpdatePeriodIds_.includes(q)&&l+1!=c.length)shaka.log.debug("Skipping Period with ID "+q+" as its start time is smaller than the largest period start time that has been seen, and ID is unseen before");else{null!==p&&(null===this.largestPeriodStartTime_||p>this.largestPeriodStartTime_)&&(this.largestPeriodStartTime_=p);k=this.parsePeriod_(a,b,{start:p,duration:t,node:m,isLastPeriod:null==t||!n});h.push(k);a.period.id&&t&&(this.periodDurations_[a.period.id]=t);if(null==t){n&&shaka.log.warning("Skipping Period",
2194
2196
  l+1,"and any subsequent Periods:","Period",l+1,"does not have a valid start time.",n);k=null;break}k=p+t}}if(d)for(a=$jscomp.makeIterator(h),b=a.next();!b.done;b=a.next())b=b.value.id,this.lastManifestUpdatePeriodIds_.includes(b)||this.lastManifestUpdatePeriodIds_.push(b);else this.lastManifestUpdatePeriodIds_=h.map(function(v){return v.id});return null!=f?(null!=k&&Math.abs(k-g-f)>shaka.util.ManifestParserUtils.GAP_OVERLAP_TOLERANCE_SECONDS&&shaka.log.warning("@mediaPresentationDuration does not match the total duration ",
2195
2197
  "of all Periods."),{periods:h,duration:f+g,durationDerivedFromPeriods:!1}):{periods:h,duration:k,durationDerivedFromPeriods:!0}};
2196
- shaka.dash.DashParser.prototype.cleanStreamMap_=function(){var a=this,b=Object.keys(this.indexStreamMap_).filter(function(h){return!a.lastManifestUpdatePeriodIds_.includes(h)});b=$jscomp.makeIterator(b);for(var c=b.next();!c.done;c=b.next()){c=c.value;for(var d=!0,e=$jscomp.makeIterator(this.indexStreamMap_[c]),f=e.next();!f.done;f=e.next()){f=f.value;var g=this.streamMap_[f];g.segmentIndex&&!g.segmentIndex.isEmpty()?d=!1:(this.periodCombiner_&&this.periodCombiner_.deleteStream(this.streamMap_[f],
2197
- c),delete this.streamMap_[f])}d&&delete this.indexStreamMap_[c]}};
2198
+ shaka.dash.DashParser.prototype.cleanStreamMap_=function(){var a=this,b=Object.keys(this.indexStreamMap_).filter(function(h){return!a.lastManifestUpdatePeriodIds_.includes(h)});b=$jscomp.makeIterator(b);for(var c=b.next();!c.done;c=b.next()){c=c.value;for(var d=!0,e=$jscomp.makeIterator(this.indexStreamMap_[c]),f=e.next();!f.done;f=e.next()){f=f.value;var g=this.streamMap_[f];g&&(g.segmentIndex&&!g.segmentIndex.isEmpty()?d=!1:(this.periodCombiner_&&this.periodCombiner_.deleteStream(this.streamMap_[f],
2199
+ c),delete this.streamMap_[f]))}d&&delete this.indexStreamMap_[c]}};
2198
2200
  shaka.dash.DashParser.prototype.parsePeriod_=function(a,b,c){var d=this,e=shaka.util.Functional,f=shaka.util.TXml,g=shaka.util.ManifestParserUtils.ContentType;goog.asserts.assert(c.node,"periodInfo.node should exist");a.period=this.createFrame_(c.node,null,b);a.periodInfo=c;a.period.availabilityTimeOffset=a.availabilityTimeOffset;a.period.id||(shaka.log.info("No Period ID given for Period with start time "+c.start+", Assigning a default"),a.period.id="__shaka_period_"+c.start);var h=f.findChildren(c.node,
2199
2201
  "EventStream");b=a.presentationTimeline.getSegmentAvailabilityStart();h=$jscomp.makeIterator(h);for(var k=h.next();!k.done;k=h.next())this.parseEventStream_(c.start,c.duration,k.value,b);b=f.findChildren(c.node,"SupplementalProperty");b=$jscomp.makeIterator(b);for(h=b.next();!h.done;h=b.next())if(h=h.value,"urn:mpeg:dash:urlparam:2014"==h.attributes.schemeIdUri&&(h=this.getURLParametersFunction_(h)))a.urlParams=h;e=f.findChildren(c.node,"AdaptationSet").map(function(m,n){return d.parseAdaptationSet_(a,
2200
2202
  n,m)}).filter(e.isNotNull);if(a.dynamic){c=[];f=$jscomp.makeIterator(e);for(b=f.next();!b.done;b=f.next())for(b=$jscomp.makeIterator(b.value.representationIds),h=b.next();!h.done;h=b.next())c.push(h.value);f=new Set(c);if(c.length!=f.size)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_DUPLICATE_REPRESENTATION_ID);}c=e.filter(function(m){return!m.trickModeFor});e=e.filter(function(m){return m.trickModeFor});if(!this.config_.disableIFrames)for(e=
@@ -2204,11 +2206,11 @@ shaka.dash.DashParser.prototype.getStreamsFromSets_=function(a,b,c){return a||!b
2204
2206
  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(E){return E.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=
2205
2207
  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(E){switch(E){case 1:case 6:case 13:case 14:case 15:return"SDR";case 16:return"PQ";case 18:return"HLG"}};q=function(E){switch(E){case 1:case 5:case 6:case 7:return"srgb";case 9:return"rec2020";case 11:case 12:return"p3"}};var r=function(E){var I=E.attributes["dvb:fontFamily"];E=E.attributes["dvb:url"];I&&E&&
2206
2208
  (E=shaka.util.ManifestParserUtils.resolveUris(a.adaptationSet.getBaseUris(),[E],a.urlParams()),d.playerInterface_.addFont(I,E[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"==
2207
- z)var D=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"==
2208
- 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?D=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 A=new Map;q=$jscomp.makeIterator(q);for(r=q.next();!r.done;r=q.next())if(v=r.value,r=v.attributes.schemeIdUri,
2209
+ z)var C=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"==
2210
+ 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?C=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 A=new Map;q=$jscomp.makeIterator(q);for(r=q.next();!r.done;r=q.next())if(v=r.value,r=v.attributes.schemeIdUri,
2209
2211
  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),A.set(t,m.normalize(z));else A.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=
2210
- 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),A.set(w,m.normalize(x));else A.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 C=shaka.media.ManifestParser.AccessibilityPurpose.VISUALLY_IMPAIRED;else"2"==v&&(C=shaka.media.ManifestParser.AccessibilityPurpose.HARD_OF_HEARING);
2211
- g=e.findChildren(c,"ContentProtection");var F=k.parseFromAdaptationSet(g,this.config_.dash.ignoreDrmInfo,this.config_.dash.keySystemsByURI),H=shaka.util.LanguageUtils.normalize(a.adaptationSet.language||"und"),G=a.adaptationSet.label;e=e.findChildren(c,"Representation");c=e.map(function(E){if(E=d.parseRepresentation_(a,F,p,H,G,l,n,A,E,C,y))E.hdr=E.hdr||B,E.colorGamut=E.colorGamut||D,E.fastSwitching=u;return E}).filter(function(E){return!!E});if(0==c.length){f=a.adaptationSet.contentType==h.IMAGE;
2212
+ 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),A.set(w,m.normalize(x));else A.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);
2213
+ g=e.findChildren(c,"ContentProtection");var F=k.parseFromAdaptationSet(g,this.config_.dash.ignoreDrmInfo,this.config_.dash.keySystemsByURI),H=shaka.util.LanguageUtils.normalize(a.adaptationSet.language||"und"),G=a.adaptationSet.label;e=e.findChildren(c,"Representation");c=e.map(function(E){if(E=d.parseRepresentation_(a,F,p,H,G,l,n,A,E,D,y))E.hdr=E.hdr||B,E.colorGamut=E.colorGamut||C,E.fastSwitching=u;return E}).filter(function(E){return!!E});if(0==c.length){f=a.adaptationSet.contentType==h.IMAGE;
2212
2214
  if(this.config_.dash.ignoreEmptyAdaptationSet||b||f)return null;throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,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_(c[0].mimeType,c[0].codecs),h=$jscomp.makeIterator(c),b=h.next();!b.done;b=h.next())b.value.type=a.adaptationSet.contentType;h=a.adaptationSet.id||
2213
2215
  "__fake__"+this.globalId_++;b=$jscomp.makeIterator(c);for(k=b.next();!k.done;k=b.next()){k=k.value;g=$jscomp.makeIterator(F.drmInfos);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=e.map(function(E){return E.attributes.id}).filter(shaka.util.Functional.isNotNull);return{id:h,contentType:a.adaptationSet.contentType,language:H,main:l,streams:c,drmInfos:F.drmInfos,
2214
2216
  trickModeFor:f,representationIds:b}};
@@ -2216,7 +2218,7 @@ shaka.dash.DashParser.prototype.getURLParametersFunction_=function(a){var b=this
2216
2218
  if(g.length)return f+"="+g[0]}return e}).join("&")}}return null};
2217
2219
  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),
2218
2220
  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(K){return"urn:mpeg:dash:urlparam:2014"==K.attributes.schemeIdUri});x?w=this.getURLParametersFunction_(x):(x=u.find(function(K){return"urn:mpeg:dash:urlparam:2014"==K.attributes.schemeIdUri}))&&(w=this.getURLParametersFunction_(x));w&&(a.urlParams=w);x=a.representation.contentType;w=x==q.TEXT||
2219
- x==q.APPLICATION;q=x==q.IMAGE;try{var z=void 0;if(b.aes128Info){var B=a.representation.getBaseUris,D=a.urlParams,y=shaka.util.ManifestParserUtils.resolveUris(B(),[b.aes128Info.keyUri],D()),A=shaka.net.NetworkingEngine.RequestType.KEY,C=shaka.net.NetworkingEngine.makeRequest(y,this.config_.retryParameters);z={bitsKey:128,blockCipherMode:"CBC",iv:b.aes128Info.iv,firstMediaSequenceNumber:0,fetchKey:function(){var K,O,Q;return $jscomp.asyncExecutePromiseGeneratorProgram(function(N){if(1==N.nextAddress)return N.yield(n.makeNetworkRequest_(C,
2221
+ x==q.APPLICATION;q=x==q.IMAGE;try{var z=void 0;if(b.aes128Info){var B=a.representation.getBaseUris,C=a.urlParams,y=shaka.util.ManifestParserUtils.resolveUris(B(),[b.aes128Info.keyUri],C()),A=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 K,O,Q;return $jscomp.asyncExecutePromiseGeneratorProgram(function(N){if(1==N.nextAddress)return N.yield(n.makeNetworkRequest_(D,
2220
2222
  A),2);if(3!=N.nextAddress){K=N.yieldResult;if(!K.data||16!=K.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);O={name:"AES-CBC"};Q=z;return N.yield(window.crypto.subtle.importKey("raw",K.data,O,!0,["decrypt"]),3)}Q.cryptoKey=N.yieldResult;z.fetchKey=void 0;N.jumpToEnd()})}}}a.representation.aesKey=z;B=function(K,O,Q,N){return n.requestSegment_(K,O,Q,N)};if(a.representation.segmentBase)var F=
2221
2223
  shaka.dash.SegmentBase.createStreamInfo(a,B,z);else if(a.representation.segmentList)F=shaka.dash.SegmentList.createStreamInfo(a,this.streamMap_,z);else if(a.representation.segmentTemplate)F=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 H=a.periodInfo.duration||0,G=a.representation.getBaseUris,E=a.representation.mimeType,
2222
2224
  I=a.representation.codecs;F={generateSegmentIndex:function(){var K=shaka.media.SegmentIndex.forSingleSegment(t,H,G());K.forEachTopLevelReference(function(O){O.mimeType=E;O.codecs=I});return Promise.resolve(K)}}}}catch(K){if((w||q)&&K.code==shaka.util.Error.Code.DASH_NO_SEGMENT_INFO)return null;throw K;}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]:[]);m=!1;u.some(function(K){return"tag:dolby.com,2018:dash:EC3_ExtensionType:2018"==
@@ -2232,8 +2234,8 @@ shaka.dash.DashParser.prototype.setUpdateTimer_=function(a){if(!(0>this.updatePe
2232
2234
  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.dash.DashParser.SCTE214_,f=shaka.media.SegmentUtils,g=shaka.util.ManifestParserUtils,h=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 k=h.parseNonNegativeInt,l=
2233
2235
  h.evalDivision,m=a.attributes.id,n=h.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=h.getContents(u);t&&u&&(this.contentSteeringManager_.addLocation(m,t,u),q=!0)}q&&this.contentSteeringManager_||(p=n.map(h.getContents));r=a.attributes.contentType||b.contentType;t=a.attributes.mimeType||b.mimeType;u=[a.attributes.codecs||b.codecs];(e=h.getAttributeNS(a,e,"supplementalCodecs"))&&
2234
2236
  u.push(e);f=f.codecsFiltering(u).join(",");l=h.parseAttr(a,"frameRate",l)||b.frameRate;e=a.attributes.sar||b.pixelAspectRatio;u=this.emsgSchemeIdUris_(h.findChildren(a,"InbandEventStream"),b.emsgSchemeIdUris);var v=h.findChildren(a,"AudioChannelConfiguration");v=this.parseAudioChannels_(v)||b.numChannels;var w=h.parseAttr(a,"audioSamplingRate",k)||b.audioSamplingRate;r||(r=shaka.dash.DashParser.guessContentType_(t,f));var x=h.findChild(a,"SegmentBase"),z=h.findChild(a,"SegmentTemplate"),B=x?h.parseAttr(x,
2235
- "availabilityTimeOffset",h.parseFloat)||0:0,D=z?h.parseAttr(z,"availabilityTimeOffset",h.parseFloat)||0:0,y=n&&n.length?h.parseAttr(n[0],"availabilityTimeOffset",h.parseFloat)||0:0;B=b.availabilityTimeOffset+y+B+D;D=null;(y=h.findChild(a,"SegmentSequenceProperties"))&&(y=h.findChild(y,"SAP"))&&(D=h.parseAttr(y,"cadence",h.parseInt));y=a.attributes.label;var A=h.findChildren(a,"Label");A&&A.length&&(A=A[0],h.getTextContents(A)&&(y=h.getTextContents(A)));return{getBaseUris:function(){return g.resolveUris(c(),
2236
- n.length?d.contentSteeringManager_&&q?d.contentSteeringManager_.getLocations(m):p?p:[]:[])},segmentBase:x||b.segmentBase,segmentList:h.findChild(a,"SegmentList")||b.segmentList,segmentTemplate:z||b.segmentTemplate,width:h.parseAttr(a,"width",k)||b.width,height:h.parseAttr(a,"height",k)||b.height,contentType:r,mimeType:t,codecs:f,frameRate:l,pixelAspectRatio:e,emsgSchemeIdUris:u,id:m,language:a.attributes.lang,numChannels:v,audioSamplingRate:w,availabilityTimeOffset:B,initialization:null,segmentSequenceCadence:D||
2237
+ "availabilityTimeOffset",h.parseFloat)||0:0,C=z?h.parseAttr(z,"availabilityTimeOffset",h.parseFloat)||0:0,y=n&&n.length?h.parseAttr(n[0],"availabilityTimeOffset",h.parseFloat)||0:0;B=b.availabilityTimeOffset+y+B+C;C=null;(y=h.findChild(a,"SegmentSequenceProperties"))&&(y=h.findChild(y,"SAP"))&&(C=h.parseAttr(y,"cadence",h.parseInt));y=a.attributes.label;var A=h.findChildren(a,"Label");A&&A.length&&(A=A[0],h.getTextContents(A)&&(y=h.getTextContents(A)));return{getBaseUris:function(){return g.resolveUris(c(),
2238
+ n.length?d.contentSteeringManager_&&q?d.contentSteeringManager_.getLocations(m):p?p:[]:[])},segmentBase:x||b.segmentBase,segmentList:h.findChild(a,"SegmentList")||b.segmentList,segmentTemplate:z||b.segmentTemplate,width:h.parseAttr(a,"width",k)||b.width,height:h.parseAttr(a,"height",k)||b.height,contentType:r,mimeType:t,codecs:f,frameRate:l,pixelAspectRatio:e,emsgSchemeIdUris:u,id:m,language:a.attributes.lang,numChannels:v,audioSamplingRate:w,availabilityTimeOffset:B,initialization:null,segmentSequenceCadence:C||
2237
2239
  b.segmentSequenceCadence,label:y||null}};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};
2238
2240
  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",
2239
2241
  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",
@@ -2280,10 +2282,10 @@ this.aesKeyInfoMap_.clear();this.aesKeyMap_.clear();this.identityKeyMap_.clear()
2280
2282
  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}));
2281
2283
  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);
2282
2284
  q.jumpToEnd()})};shaka.hls.HlsParser.prototype.getMediaSequenceToStartTimeFor_=function(a){return this.isLive_()?this.mediaSequenceToStartTimeByType_.get(a.type):a.mediaSequenceToStartTime};
2283
- 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,D,y,A,C,F,H,G,E,I,L,J,M,K,O,Q;return $jscomp.asyncExecutePromiseGeneratorProgram(function(N){switch(N.nextAddress){case 1:if(a.stream.isAudioMuxedInVideo)return N.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&&
2285
+ 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,C,y,A,D,F,H,G,E,I,L,J,M,K,O,Q;return $jscomp.asyncExecutePromiseGeneratorProgram(function(N){switch(N.nextAddress){case 1:if(a.stream.isAudioMuxedInVideo)return N.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&&
2284
2286
  h.add("_HLS_part",String(a.nextPart))),a.canSkipSegments&&h.add("_HLS_skip","YES"),h.getCount()&&g.setQueryData(h),c.push(g.toString());N.setCatchFinallyBlocks(2);return N.yield(b.requestManifest_(c,!0).promise,4);case 4:k=N.yieldResult;N.leaveTryBlock(3);break;case 2:throw l=N.enterCatchBlock(),b.playerInterface_&&b.playerInterface_.disableStream(a.stream),l;case 3:if(!a.stream.segmentIndex)return N.return();m=b.manifestTextParser_.parsePlaylist(k.data);if(m.type!=shaka.hls.PlaylistType.MEDIA)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
2285
2287
  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 N.yield(b.parseDrmInfo_(m,r.mimeType,a.getUris,q),5);case 5:u=N.yieldResult;v=u.keyIds;w=u.drmInfos;x=function(U,R){return U.size===R.size&&[].concat($jscomp.arrayFromIterable(U)).every(function(S){return R.has(S)})};
2286
- 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(D=z.bandwidth)r.bandwidth=D;y=shaka.media.QualityObserver.createQualityInfo(r);A=$jscomp.makeIterator(B);for(C=A.next();!C.done;C=A.next())F=C.value,F.initSegmentReference&&(F.initSegmentReference.mediaQuality=y);r.segmentIndex.mergeAndEvict(B,b.presentationTimeline_.getSegmentAvailabilityStart());B.length&&(H=shaka.hls.Utils.getFirstTagWithNameAsNumber(m.tags,"EXT-X-MEDIA-SEQUENCE",
2288
+ 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(C=z.bandwidth)r.bandwidth=C;y=shaka.media.QualityObserver.createQualityInfo(r);A=$jscomp.makeIterator(B);for(D=A.next();!D.done;D=A.next())F=D.value,F.initSegmentReference&&(F.initSegmentReference.mediaQuality=y);r.segmentIndex.mergeAndEvict(B,b.presentationTimeline_.getSegmentAvailabilityStart());B.length&&(H=shaka.hls.Utils.getFirstTagWithNameAsNumber(m.tags,"EXT-X-MEDIA-SEQUENCE",
2287
2289
  0),E=(G=shaka.hls.Utils.getFirstTagWithName(m.tags,"EXT-X-SKIP"))?Number(G.getAttributeValue("SKIPPED-SEGMENTS")):0,I=b.getNextMediaSequenceAndPart_(H,B),L=I.nextMediaSequence,J=I.nextPart,a.nextMediaSequence=L+E,a.nextPart=J,M=t.get(H),r.segmentIndex.evict(M));if(K=r.segmentIndex.earliestReference())a.minTimestamp=K.startTime,O=B[B.length-1],goog.asserts.assert(O,"Should have segments!"),a.maxTimestamp=O.endTime;if(Q=shaka.hls.Utils.getFirstTagWithName(m.tags,"EXT-X-ENDLIST"))a.hasEndList=!0;b.determineLastTargetDuration_(m);
2288
2290
  b.processDateRangeTags_(m.tags,r.type,q,a.getUris);N.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};
2289
2291
  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);
@@ -2292,18 +2294,18 @@ this.minSequenceNumber_-c.firstSequenceNumber,0<e&&(d.dropFirstReferences(e),d=d
2292
2294
  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());
2293
2295
  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)}}}};
2294
2296
  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())};
2295
- 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,D,y,A,C,F,H,G,E,I,L,J,M,K,O,Q;return $jscomp.asyncExecutePromiseGeneratorProgram(function(N){switch(N.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");h=[];k=[];l=[];goog.asserts.assert(null==
2296
- 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,B=shaka.hls.Utils.filterTagsByName(f.tags,"EXT-X-DEFINE"),p=c.parseMediaVariables_(B,c.masterPlaylistUri_),n=e.VIDEO,D="",y=new Map,N.yield(c.convertParsedPlaylistIntoStreamInfo_(c.globalId_++,p,f,m,b,"",n,D,
2297
+ 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,C,y,A,D,F,H,G,E,I,L,J,M,K,O,Q;return $jscomp.asyncExecutePromiseGeneratorProgram(function(N){switch(N.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");h=[];k=[];l=[];goog.asserts.assert(null==
2298
+ 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,B=shaka.hls.Utils.filterTagsByName(f.tags,"EXT-X-DEFINE"),p=c.parseMediaVariables_(B,c.masterPlaylistUri_),n=e.VIDEO,C="",y=new Map,N.yield(c.convertParsedPlaylistIntoStreamInfo_(c.globalId_++,p,f,m,b,"",n,C,
2297
2299
  !0,"Media Playlist",null,y,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 N.yield(c.processContentSteering_(x),4);case 4:return c.parseCodecs_(r),
2298
- c.parseClosedCaptions_(q),z=c.parseIFrames_(u),N.yield(c.createVariantsForTags_(r,v,q,m,c.globalVariables_,z),5);case 5:return h=N.yieldResult,k=c.parseTexts_(q),N.yield(c.parseImages_(t,u),6);case 6:l=N.yieldResult;N.jumpTo(3);break;case 7:A=N.yieldResult,c.uriToStreamInfosMap_.set(b,A),A.stream&&(C=shaka.media.QualityObserver.createQualityInfo(A.stream),A.stream.segmentIndex.forEachTopLevelReference(function(U){U.initSegmentReference&&(U.initSegmentReference.mediaQuality=C)})),n=A.stream.type,h.push({id:0,
2299
- language:c.getLanguage_(D),disabledUntilTime:0,primary:!0,audio:"audio"==n?A.stream:null,video:"video"==n?A.stream:null,bandwidth:A.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&&(c.isLive_()&&(c.changePresentationTimelineToLive_(f),F=
2300
+ c.parseClosedCaptions_(q),z=c.parseIFrames_(u),N.yield(c.createVariantsForTags_(r,v,q,m,c.globalVariables_,z),5);case 5:return h=N.yieldResult,k=c.parseTexts_(q),N.yield(c.parseImages_(t,u),6);case 6:l=N.yieldResult;N.jumpTo(3);break;case 7:A=N.yieldResult,c.uriToStreamInfosMap_.set(b,A),A.stream&&(D=shaka.media.QualityObserver.createQualityInfo(A.stream),A.stream.segmentIndex.forEachTopLevelReference(function(U){U.initSegmentReference&&(U.initSegmentReference.mediaQuality=D)})),n=A.stream.type,h.push({id:0,
2301
+ language:c.getLanguage_(C),disabledUntilTime:0,primary:!0,audio:"audio"==n?A.stream:null,video:"video"==n?A.stream:null,bandwidth:A.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&&(c.isLive_()&&(c.changePresentationTimelineToLive_(f),F=
2300
2302
  c.getUpdatePlaylistDelay_(),c.updatePlaylistTimer_.tickAfter(F)),H=Array.from(c.uriToStreamInfosMap_.values()),c.finalizeStreams_(H),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:[],minBufferTime:0,sequenceMode:c.config_.hls.sequenceMode,ignoreManifestTimestampsInSegmentsMode:c.config_.hls.ignoreManifestTimestampsInSegmentsMode,
2301
2303
  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){N.jumpTo(8);break}G=[];E=$jscomp.makeIterator(c.manifest_.variants);for(I=E.next();!I.done;I=E.next())L=I.value,L.audio&&""===L.audio.codecs&&G.push(L.audio.createSegmentIndex()),L.video&&""===L.video.codecs&&G.push(L.video.createSegmentIndex());return N.yield(Promise.all(G),8);case 8:c.playerInterface_.makeTextStreamsForClosedCaptions(c.manifest_);
2302
2304
  if(1==h.length){J=[];M=h[0];K=$jscomp.makeIterator([M.video,M.audio]);for(O=K.next();!O.done;O=K.next())(Q=O.value)&&!Q.segmentIndex&&J.push(Q.createSegmentIndex());if(0<J.length)return N.yield(Promise.all(J),0)}N.jumpTo(0)}})};
2303
- 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,D,y,A,C,F,H;return $jscomp.asyncExecutePromiseGeneratorProgram(function(G){switch(G.nextAddress){case 1:c=shaka.hls.HlsParser;d=shaka.media.SegmentUtils.getBasicInfoFromMimeType(b.config_.hls.mediaPlaylistFullMimeType);if(!a.length)return G.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=
2305
+ 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,C,y,A,D,F,H;return $jscomp.asyncExecutePromiseGeneratorProgram(function(G){switch(G.nextAddress){case 1:c=shaka.hls.HlsParser;d=shaka.media.SegmentUtils.getBasicInfoFromMimeType(b.config_.hls.mediaPlaylistFullMimeType);if(!a.length)return G.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=
2304
2306
  c.RAW_FORMATS_TO_MIME_TYPES_[m])return G.return(shaka.media.SegmentUtils.getBasicInfoFromMimeType(n));p=shaka.net.NetworkingEngine.RequestType.SEGMENT;r=q=null;t=f.initSegmentReference;if(!t){G.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 G.yield(b.makeNetworkRequest_(u,p,{type:v}).promise,3);case 3:w=G.yieldResult;q=w.data;if(!t.aesKey){G.jumpTo(4);
2305
- break}return G.yield(shaka.media.SegmentUtils.aesDecrypt(q,t.aesKey,0),5);case 5:q=G.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,G.yield(b.makeNetworkRequest_(x,p,{type:z}).promise,6);case 6:B=G.yieldResult;D=B.data;if(!f.aesKey){G.jumpTo(7);break}return G.yield(shaka.media.SegmentUtils.aesDecrypt(D,
2306
- f.aesKey,g),8);case 8:D=G.yieldResult;case 7:(y=B.headers["content-type"])&&(y=y.split(";")[0].toLowerCase());A="mp4 mp4a m4s m4i m4a m4f cmfa mp4v m4v cmfv fmp4".split(" ");C=["audio/mp4","video/mp4","video/iso.segment"];if(shaka.util.TsParser.probe(shaka.util.BufferUtils.toUint8(D))){if(F=shaka.media.SegmentUtils.getBasicInfoFromTs(D))return G.return(F)}else if(A.includes(m)||C.includes(y)||r&&C.includes(r))if(H=shaka.media.SegmentUtils.getBasicInfoFromMp4(q,D))return G.return(H);return y?G.return(shaka.media.SegmentUtils.getBasicInfoFromMimeType(y)):
2307
+ break}return G.yield(shaka.media.SegmentUtils.aesDecrypt(q,t.aesKey,0),5);case 5:q=G.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,G.yield(b.makeNetworkRequest_(x,p,{type:z}).promise,6);case 6:B=G.yieldResult;C=B.data;if(!f.aesKey){G.jumpTo(7);break}return G.yield(shaka.media.SegmentUtils.aesDecrypt(C,
2308
+ f.aesKey,g),8);case 8:C=G.yieldResult;case 7:(y=B.headers["content-type"])&&(y=y.split(";")[0].toLowerCase());A="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(C))){if(F=shaka.media.SegmentUtils.getBasicInfoFromTs(C))return G.return(F)}else if(A.includes(m)||D.includes(y)||r&&D.includes(r))if(H=shaka.media.SegmentUtils.getBasicInfoFromMp4(q,C))return G.return(H);return y?G.return(shaka.media.SegmentUtils.getBasicInfoFromMimeType(y)):
2307
2309
  r?G.return(shaka.media.SegmentUtils.getBasicInfoFromMimeType(r)):G.return(d)}})};
2308
2310
  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=
2309
2311
  $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!")};
@@ -2321,9 +2323,9 @@ shaka.hls.HlsParser.prototype.parseImages_=function(a,b){var c=this,d,e;return $
2321
2323
  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}))})};
2322
2324
  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)};
2323
2325
  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})};
2324
- 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,D,y,A,C,F,H,G,E,I,L,J,M,K,O,Q,N,U,R,S,X,W;return $jscomp.asyncExecutePromiseGeneratorProgram(function(P){switch(P.nextAddress){case 1:h=[];k=new Set;if(!(0<b.length)){P.jumpTo(2);break}l=$jscomp.makeIterator(b);m=l.next();case 3:if(m.done){P.jumpTo(2);break}n=m.value;p=n.getRequiredAttrValue("METHOD");q=n.getAttributeValue("KEYFORMAT")||"identity";r=null;if("NONE"==p){P.jumpTo(4);break}if(g.isAesMethod_(p)){t=
2326
+ 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,C,y,A,D,F,H,G,E,I,L,J,M,K,O,Q,N,U,R,S,X,W;return $jscomp.asyncExecutePromiseGeneratorProgram(function(P){switch(P.nextAddress){case 1:h=[];k=new Set;if(!(0<b.length)){P.jumpTo(2);break}l=$jscomp.makeIterator(b);m=l.next();case 3:if(m.done){P.jumpTo(2);break}n=m.value;p=n.getRequiredAttrValue("METHOD");q=n.getAttributeValue("KEYFORMAT")||"identity";r=null;if("NONE"==p){P.jumpTo(4);break}if(g.isAesMethod_(p)){t=
2325
2327
  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));P.jumpTo(4);break}if("identity"!=q){r=(z=shaka.hls.HlsParser.KEYFORMATS_TO_DRM_PARSERS_[q])?z(n,""):null;P.jumpTo(6);break}return P.yield(g.identityDrmParser_(n,"",d,null,e),9);case 9:r=P.yieldResult;case 6:if(r){if(r.keyIds)for(B=
2326
- $jscomp.makeIterator(r.keyIds),D=B.next();!D.done;D=B.next())y=D.value,k.add(y);h.push(r)}else shaka.log.warning("Unsupported HLS KEYFORMAT",q);case 4:m=l.next();P.jumpTo(3);break;case 2:A={};C=$jscomp.makeIterator(a);for(F=C.next();!F.done;F=C.next())H=F.value,G=H.getTagKey(!g.contentSteeringManager_),A[G]?A[G].push(H):A[G]=[H];E=[];for(I in A)L=A[I],J=L[0],M=J.getAttributeValue("FRAME-RATE"),K=Number(J.getAttributeValue("AVERAGE-BANDWIDTH"))||Number(J.getRequiredAttrValue("BANDWIDTH")),O=J.getAttributeValue("RESOLUTION"),
2328
+ $jscomp.makeIterator(r.keyIds),C=B.next();!C.done;C=B.next())y=C.value,k.add(y);h.push(r)}else shaka.log.warning("Unsupported HLS KEYFORMAT",q);case 4:m=l.next();P.jumpTo(3);break;case 2:A={};D=$jscomp.makeIterator(a);for(F=D.next();!F.done;F=D.next())H=F.value,G=H.getTagKey(!g.contentSteeringManager_),A[G]?A[G].push(H):A[G]=[H];E=[];for(I in A)L=A[I],J=L[0],M=J.getAttributeValue("FRAME-RATE"),K=Number(J.getAttributeValue("AVERAGE-BANDWIDTH"))||Number(J.getRequiredAttrValue("BANDWIDTH")),O=J.getAttributeValue("RESOLUTION"),
2327
2329
  Q=$jscomp.makeIterator(O?O.split("x"):[null,null]),N=Q.next().value,U=Q.next().value,R=J.getAttributeValue("VIDEO-RANGE"),(S=J.getAttributeValue("REQ-VIDEO-LAYOUT"))&&S.includes(",")&&(X=S.split(",").filter(function(Y){return"CH-STEREO"==Y||"CH-MONO"==Y}),S=X[0]),S=S||"CH-MONO",W=g.createStreamInfosForVariantTags_(L,c,O,M),goog.asserts.assert(W.audio.length||W.video.length,"We should have created a stream!"),E.push.apply(E,$jscomp.arrayFromIterable(g.createVariants_(W.audio,W.video,K,N,U,M,R,S,h,
2328
2330
  k,f)));return P.return(E.filter(function(Y){return null!=Y}))}})};
2329
2331
  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,
@@ -2351,33 +2353,33 @@ a.getAttributeValue("CHARACTERISTICS");b=this.createStreamInfo_(this.globalId_++
2351
2353
  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(",");if(this.uriToStreamInfosMap_.has(f))return this.uriToStreamInfosMap_.get(f);
2352
2354
  a=this.getClosedCaptions_(a[0],c);b=shaka.util.ManifestParserUtils.guessCodecs(c,b);c=this.createStreamInfo_(d,e,b,c,null,!1,null,null,a,null,!1,null,!1);this.uriToStreamInfosMap_.set(f,c);return c};
2353
2355
  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=[],u=function(){return q.contentSteeringManager_&&1<b.length?q.contentSteeringManager_.getLocations(a):t.concat(shaka.hls.Utils.constructUris([q.masterPlaylistUri_],b,q.globalVariables_))},v={stream:r,type:d,redirectUris:t,
2354
- getUris:u,minTimestamp:0,maxTimestamp:0,mediaSequenceToStartTime:new Map,canSkipSegments:!1,canBlockReload:!1,hasEndList:!1,firstSequenceNumber:-1,nextMediaSequence:-1,nextPart:-1,loadedOnce:!1},w=function(B){var D,y,A,C,F,H,G,E,I,L,J,M,K,O,Q,N,U,R,S,X,W,P,Y;return $jscomp.asyncExecutePromiseGeneratorProgram(function(T){switch(T.nextAddress){case 1:return D=shaka.util.ManifestParserUtils.ContentType,T.setCatchFinallyBlocks(2),y=v.getUris(),T.yield(B.promise,4);case 4:A=T.yieldResult;if(B.aborted)return T.return();
2355
- C=A.uri;C==A.originalUri||y.includes(C)||t.push(C);F=q.manifestTextParser_.parsePlaylist(A.data);if(F.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);H=shaka.hls.Utils.filterTagsByName(F.tags,"EXT-X-DEFINE");G=q.parseMediaVariables_(H,C);E=!1;(!q.codecInfoInManifest_&&q.config_.hls.disableCodecGuessing||q.needsClosedCaptionsDetection_&&d==D.VIDEO&&!q.config_.hls.disableClosedCaptionsDetection)&&
2356
- 0<F.segments.length&&(q.needsClosedCaptionsDetection_=!1,E=!0);I=!q.codecInfoInManifest_&&q.config_.hls.disableCodecGuessing;L=q.isLive_();return T.yield(q.convertParsedPlaylistIntoStreamInfo_(a,G,F,u,C,c,d,e,f,g,h,k,l,m,n,p,void 0,E,I),5);case 5:J=T.yieldResult;if(B.aborted)return T.return();M=J.stream;q.determineStartTime_(F);q.isLive_()&&!L&&q.changePresentationTimelineToLive_(F);v.minTimestamp=J.minTimestamp;v.maxTimestamp=J.maxTimestamp;v.canSkipSegments=J.canSkipSegments;v.canBlockReload=J.canBlockReload;
2356
+ getUris:u,minTimestamp:0,maxTimestamp:0,mediaSequenceToStartTime:new Map,canSkipSegments:!1,canBlockReload:!1,hasEndList:!1,firstSequenceNumber:-1,nextMediaSequence:-1,nextPart:-1,loadedOnce:!1},w=function(B){var C,y,A,D,F,H,G,E,I,L,J,M,K,O,Q,N,U,R,S,X,W,P,Y;return $jscomp.asyncExecutePromiseGeneratorProgram(function(T){switch(T.nextAddress){case 1:return C=shaka.util.ManifestParserUtils.ContentType,T.setCatchFinallyBlocks(2),y=v.getUris(),T.yield(B.promise,4);case 4:A=T.yieldResult;if(B.aborted)return T.return();
2357
+ D=A.uri;D==A.originalUri||y.includes(D)||t.push(D);F=q.manifestTextParser_.parsePlaylist(A.data);if(F.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);H=shaka.hls.Utils.filterTagsByName(F.tags,"EXT-X-DEFINE");G=q.parseMediaVariables_(H,D);E=!1;(!q.codecInfoInManifest_&&q.config_.hls.disableCodecGuessing||q.needsClosedCaptionsDetection_&&d==C.VIDEO&&!q.config_.hls.disableClosedCaptionsDetection)&&
2358
+ 0<F.segments.length&&(q.needsClosedCaptionsDetection_=!1,E=!0);I=!q.codecInfoInManifest_&&q.config_.hls.disableCodecGuessing;L=q.isLive_();return T.yield(q.convertParsedPlaylistIntoStreamInfo_(a,G,F,u,D,c,d,e,f,g,h,k,l,m,n,p,void 0,E,I),5);case 5:J=T.yieldResult;if(B.aborted)return T.return();M=J.stream;q.determineStartTime_(F);q.isLive_()&&!L&&q.changePresentationTimelineToLive_(F);v.minTimestamp=J.minTimestamp;v.maxTimestamp=J.maxTimestamp;v.canSkipSegments=J.canSkipSegments;v.canBlockReload=J.canBlockReload;
2357
2359
  v.hasEndList=J.hasEndList;v.mediaSequenceToStartTime=J.mediaSequenceToStartTime;v.nextMediaSequence=J.nextMediaSequence;v.nextPart=J.nextPart;v.loadedOnce=!0;r.segmentIndex=M.segmentIndex;r.encrypted=M.encrypted;r.drmInfos=M.drmInfos;r.keyIds=M.keyIds;r.mimeType=M.mimeType;r.bandwidth=r.bandwidth||M.bandwidth;r.codecs=r.codecs||M.codecs;r.closedCaptions=r.closedCaptions||M.closedCaptions;r.width=r.width||M.width;r.height=r.height||M.height;r.hdr=r.hdr||M.hdr;r.colorGamut=r.colorGamut||M.colorGamut;
2358
- r.frameRate=r.frameRate||M.frameRate;"und"==r.language&&"und"!=M.language&&(r.language=M.language);r.language=r.language||M.language;r.channelsCount=r.channelsCount||M.channelsCount;r.audioSamplingRate=r.audioSamplingRate||M.audioSamplingRate;q.setFullTypeForStream_(r);r.drmInfos.length&&q.playerInterface_.newDrmInfo(r);K=!1;if(!k&&r.closedCaptions||k&&r.closedCaptions&&k.size!=r.closedCaptions.size)K=!0;q.manifest_&&K&&q.playerInterface_.makeTextStreamsForClosedCaptions(q.manifest_);if(d==D.VIDEO||
2359
- d==D.AUDIO)for(O=$jscomp.makeIterator(q.uriToStreamInfosMap_.values()),Q=O.next();!Q.done;Q=O.next())N=Q.value,N.loadedOnce||N.type!=d||(N.stream.mimeType=M.mimeType,q.setFullTypeForStream_(N.stream));d==D.TEXT&&(U=M.segmentIndex.earliestReference())&&U.initSegmentReference&&(r.mimeType="application/mp4",q.setFullTypeForStream_(r));R=shaka.media.QualityObserver.createQualityInfo(r);r.segmentIndex.forEachTopLevelReference(function(V){V.initSegmentReference&&(V.initSegmentReference.mediaQuality=R)});
2360
+ r.frameRate=r.frameRate||M.frameRate;"und"==r.language&&"und"!=M.language&&(r.language=M.language);r.language=r.language||M.language;r.channelsCount=r.channelsCount||M.channelsCount;r.audioSamplingRate=r.audioSamplingRate||M.audioSamplingRate;q.setFullTypeForStream_(r);r.drmInfos.length&&q.playerInterface_.newDrmInfo(r);K=!1;if(!k&&r.closedCaptions||k&&r.closedCaptions&&k.size!=r.closedCaptions.size)K=!0;q.manifest_&&K&&q.playerInterface_.makeTextStreamsForClosedCaptions(q.manifest_);if(d==C.VIDEO||
2361
+ d==C.AUDIO)for(O=$jscomp.makeIterator(q.uriToStreamInfosMap_.values()),Q=O.next();!Q.done;Q=O.next())N=Q.value,N.loadedOnce||N.type!=d||(N.stream.mimeType=M.mimeType,q.setFullTypeForStream_(N.stream));d==C.TEXT&&(U=M.segmentIndex.earliestReference())&&U.initSegmentReference&&(r.mimeType="application/mp4",q.setFullTypeForStream_(r));R=shaka.media.QualityObserver.createQualityInfo(r);r.segmentIndex.forEachTopLevelReference(function(V){V.initSegmentReference&&(V.initSegmentReference.mediaQuality=R)});
2360
2362
  q.hasEnoughInfoToFinalizeStreams_()&&(q.streamsFinalized_?q.finalizeStreams_([v]):(q.streamsFinalized_=!0,S=Array.from(q.uriToStreamInfosMap_.values()),X=S.filter(function(V){return V.stream.segmentIndex}),q.finalizeStreams_(X),q.determineDuration_(),W=q.getUpdatePlaylistDelay_(),0<W&&q.updatePlaylistTimer_.tickAfter(W)));q.processDateRangeTags_(F.tags,r.type,G,u);q.manifest_&&(q.manifest_.startTime=q.startTime_);T.leaveTryBlock(0);break;case 2:P=T.enterCatchBlock();r.closeSegmentIndex();if(P.code===
2361
- shaka.util.Error.Code.OPERATION_ABORTED)return T.return();Y=q.playerInterface_.disableStream(r);if(!Y)throw P;T.jumpToEnd()}})},x=null,z;r.createSegmentIndex=function(){if(x)return x;if(r.isAudioMuxedInVideo){var B=new shaka.media.SegmentIndex([]);r.segmentIndex=B;return Promise.resolve()}z=q.requestManifest_(v.getUris(),!0);return x=new Promise(function(D){D(w(z))})};r.closeSegmentIndex=function(){x&&!r.segmentIndex&&z.abort();r.segmentIndex&&(r.segmentIndex.release(),r.segmentIndex=null);x=null};
2363
+ shaka.util.Error.Code.OPERATION_ABORTED)return T.return();Y=q.playerInterface_.disableStream(r);if(!Y)throw P;T.jumpToEnd()}})},x=null,z;r.createSegmentIndex=function(){if(x)return x;if(r.isAudioMuxedInVideo){var B=new shaka.media.SegmentIndex([]);r.segmentIndex=B;return Promise.resolve()}z=q.requestManifest_(v.getUris(),!0);return x=new Promise(function(C){C(w(z))})};r.closeSegmentIndex=function(){x&&!r.segmentIndex&&z.abort();r.segmentIndex&&(r.segmentIndex.release(),r.segmentIndex=null);x=null};
2362
2364
  return v};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};
2363
2365
  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};
2364
2366
  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)};
2365
2367
  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(e){return e.stream}));b=this.isLive_()&&!this.usesProgramDateTime_;this.config_.hls.ignoreManifestProgramDateTime||b?this.syncStreamsWithSequenceNumber_(a,b):(this.syncStreamsWithProgramDateTime_(a),0<this.config_.hls.ignoreManifestProgramDateTimeForTypes.length&&
2366
2368
  this.syncStreamsWithSequenceNumber_(a))};shaka.hls.HlsParser.prototype.ignoreManifestProgramDateTimeFor_=function(a){return this.config_.hls.ignoreManifestProgramDateTime?!0:this.config_.hls.ignoreManifestProgramDateTimeForTypes.includes(a)};
2367
2369
  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};
2368
- 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,D,y,A,C,F,H,G,E,I,L,J,M,K,O,Q,N,U,R,S,X,W,P,Y,T,V,ba,ca;return $jscomp.asyncExecutePromiseGeneratorProgram(function(Z){switch(Z.nextAddress){case 1:z=c.segments||[];B=z.every(function(da){return shaka.hls.Utils.getFirstTagWithName(da.tags,"EXT-X-GAP")?!0:!1});if(!z.length||B)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
2369
- shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_EMPTY_MEDIA_PLAYLIST);x.determinePresentationType_(c);x.isLive_()&&x.determineLastTargetDuration_(c);D=x.isLive_()?x.mediaSequenceToStartTimeByType_.get(g):new Map;y=x.createSegments_(c,D,b,d,g);A=y.segments;C=y.bandwidth;I=E=G=H=F=null;if(!(0<A.length&&v)){Z.jumpTo(2);break}return Z.yield(x.getBasicInfoFromSegments_(A),3);case 3:L=Z.yieldResult,g=L.type,h=L.language,m=L.channelCount,r=L.sampleRate,x.config_.disableText||(n=L.closedCaptions),
2370
+ 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,C,y,A,D,F,H,G,E,I,L,J,M,K,O,Q,N,U,R,S,X,W,P,Y,T,V,ba,ca;return $jscomp.asyncExecutePromiseGeneratorProgram(function(Z){switch(Z.nextAddress){case 1:z=c.segments||[];B=z.every(function(da){return shaka.hls.Utils.getFirstTagWithName(da.tags,"EXT-X-GAP")?!0:!1});if(!z.length||B)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
2371
+ shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_EMPTY_MEDIA_PLAYLIST);x.determinePresentationType_(c);x.isLive_()&&x.determineLastTargetDuration_(c);C=x.isLive_()?x.mediaSequenceToStartTimeByType_.get(g):new Map;y=x.createSegments_(c,C,b,d,g);A=y.segments;D=y.bandwidth;I=E=G=H=F=null;if(!(0<A.length&&v)){Z.jumpTo(2);break}return Z.yield(x.getBasicInfoFromSegments_(A),3);case 3:L=Z.yieldResult,g=L.type,h=L.language,m=L.channelCount,r=L.sampleRate,x.config_.disableText||(n=L.closedCaptions),
2370
2372
  H=L.height,F=L.width,G=L.videoRange,E=L.colorGamut,I=L.frameRate,w&&(u=L.mimeType,f=L.codecs);case 2:if(u){Z.jumpTo(4);break}return Z.yield(x.guessMimeType_(g,f,A),5);case 5:u=Z.yieldResult;case 4:return Z.yield(x.parseDrmInfo_(c,u,d,b),6);case 6:J=Z.yieldResult;M=J.drmInfos;K=J.keyIds;O=J.encrypted;Q=J.aesEncrypted;if(O&&!M.length&&!Q)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_KEYFORMATS_NOT_SUPPORTED);N=x.makeStreamObject_(a,
2371
- f,g,h,k,l,m,n,p,q,r,t);N.encrypted=O;N.drmInfos=M;N.keyIds=K;N.mimeType=u;C&&(N.bandwidth=C);x.setFullTypeForStream_(N);g==shaka.util.ManifestParserUtils.ContentType.VIDEO&&(F||H||G||E)&&x.addVideoAttributes_(N,F,H,I,G,null,E);x.isLive_()&&x.determineLastTargetDuration_(c);U=A[0].startTime;R=A[A.length-1];S=R.endTime;X=new shaka.media.SegmentIndex(A);N.segmentIndex=X;P=(W=shaka.hls.Utils.getFirstTagWithName(c.tags,"EXT-X-SERVER-CONTROL"))?null!=W.getAttribute("CAN-SKIP-UNTIL"):!1;Y=W?null!=W.getAttribute("CAN-BLOCK-RELOAD"):
2372
- !1;T=shaka.hls.Utils.getFirstTagWithNameAsNumber(c.tags,"EXT-X-MEDIA-SEQUENCE",0);V=x.getNextMediaSequenceAndPart_(T,A);ba=V.nextMediaSequence;ca=V.nextPart;return Z.return({stream:N,type:g,redirectUris:[],getUris:d,minTimestamp:U,maxTimestamp:S,canSkipSegments:P,canBlockReload:Y,hasEndList:!1,firstSequenceNumber:-1,nextMediaSequence:ba,nextPart:ca,mediaSequenceToStartTime:D,loadedOnce:!1})}})};
2373
+ f,g,h,k,l,m,n,p,q,r,t);N.encrypted=O;N.drmInfos=M;N.keyIds=K;N.mimeType=u;D&&(N.bandwidth=D);x.setFullTypeForStream_(N);g==shaka.util.ManifestParserUtils.ContentType.VIDEO&&(F||H||G||E)&&x.addVideoAttributes_(N,F,H,I,G,null,E);x.isLive_()&&x.determineLastTargetDuration_(c);U=A[0].startTime;R=A[A.length-1];S=R.endTime;X=new shaka.media.SegmentIndex(A);N.segmentIndex=X;P=(W=shaka.hls.Utils.getFirstTagWithName(c.tags,"EXT-X-SERVER-CONTROL"))?null!=W.getAttribute("CAN-SKIP-UNTIL"):!1;Y=W?null!=W.getAttribute("CAN-BLOCK-RELOAD"):
2374
+ !1;T=shaka.hls.Utils.getFirstTagWithNameAsNumber(c.tags,"EXT-X-MEDIA-SEQUENCE",0);V=x.getNextMediaSequenceAndPart_(T,A);ba=V.nextMediaSequence;ca=V.nextPart;return Z.return({stream:N,type:g,redirectUris:[],getUris:d,minTimestamp:U,maxTimestamp:S,canSkipSegments:P,canBlockReload:Y,hasEndList:!1,firstSequenceNumber:-1,nextMediaSequence:ba,nextPart:ca,mediaSequenceToStartTime:C,loadedOnce:!1})}})};
2373
2375
  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}};
2374
2376
  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:
2375
2377
  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?
2376
2378
  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,
2377
2379
  fullMimeTypes:new Set,isAudioMuxedInVideo:!1};this.setFullTypeForStream_(b);return b};
2378
- 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,D,y,A,C,F,H,G,E,I,L,J;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=
2379
- 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);D=B.next().value;y=B.next().value;A=D;C=y;F=A.getRequiredAttrValue("METHOD");if("NONE"==F){M.jumpTo(3);break}r=!0;H=A.getAttributeValue("KEYFORMAT")||"identity";G=null;if(e.isAesMethod_(F)){t=!0;M.jumpTo(3);break}if("identity"!=H){G=(E=shaka.hls.HlsParser.KEYFORMATS_TO_DRM_PARSERS_[H])?E(A,b):null;M.jumpTo(6);break}return M.yield(e.identityDrmParser_(A,
2380
- b,c,C,d),8);case 8:G=M.yieldResult;case 6:if(G){if(G.keyIds)for(I=$jscomp.makeIterator(G.keyIds),L=I.next();!L.done;L=I.next())J=L.value,v.add(J);u.push(G)}else shaka.log.warning("Unsupported HLS KEYFORMAT",H);case 3:x=w.next();M.jumpTo(2);break;case 4:return M.return({drmInfos:u,keyIds:v,encrypted:r,aesEncrypted:t})}})};
2380
+ 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,C,y,A,D,F,H,G,E,I,L,J;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=
2381
+ 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);C=B.next().value;y=B.next().value;A=C;D=y;F=A.getRequiredAttrValue("METHOD");if("NONE"==F){M.jumpTo(3);break}r=!0;H=A.getAttributeValue("KEYFORMAT")||"identity";G=null;if(e.isAesMethod_(F)){t=!0;M.jumpTo(3);break}if("identity"!=H){G=(E=shaka.hls.HlsParser.KEYFORMATS_TO_DRM_PARSERS_[H])?E(A,b):null;M.jumpTo(6);break}return M.yield(e.identityDrmParser_(A,
2382
+ b,c,D,d),8);case 8:G=M.yieldResult;case 6:if(G){if(G.keyIds)for(I=$jscomp.makeIterator(G.keyIds),L=I.next();!L.done;L=I.next())J=L.value,v.add(J);u.push(G)}else shaka.log.warning("Unsupported HLS KEYFORMAT",H);case 3:x=w.next();M.jumpTo(2);break;case 4:return M.return({drmInfos:u,keyIds:v,encrypted:r,aesEncrypted:t})}})};
2381
2383
  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,
2382
2384
  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);b=a.toString()+"-"+f;if(!this.aesKeyInfoMap_.has(b)){var k={bitsKey:128,blockCipherMode:"CBC",iv:h,firstMediaSequenceNumber:f};switch(a.getRequiredAttrValue("METHOD")){case "AES-256":k.bitsKey=256;break;case "AES-256-CTR":k.bitsKey=256,k.blockCipherMode="CTR"}k.fetchKey=function(){var l,m,n,p,q,r,t;return $jscomp.asyncExecutePromiseGeneratorProgram(function(u){if(1==
2383
2385
  u.nextAddress)return l=shaka.hls.Utils.constructSegmentUris(c(),a.getRequiredAttrValue("URI"),d),m=l.sort().join(""),e.aesKeyMap_.has(m)||(n=shaka.net.NetworkingEngine.RequestType.KEY,p=shaka.net.NetworkingEngine.makeRequest(l,e.config_.retryParameters),q=e.makeNetworkRequest_(p,n).promise,e.aesKeyMap_.set(m,q)),u.yield(e.aesKeyMap_.get(m),2);if(3!=u.nextAddress){r=u.yieldResult;if(!r.data||r.data.byteLength!=k.bitsKey/8)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,
@@ -2393,16 +2395,16 @@ l.id<e.id&&(h=this.parseAESDrmTag_(l,a,c,d)):"EXT-X-BYTERANGE"==l.name&&l.id<e.i
2393
2395
  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)};
2394
2396
  shaka.hls.HlsParser.prototype.createSegmentReference_=function(a,b,c,d,e,f,g,h,k){var l=shaka.hls.HlsParser;f=function(K){K=(new goog.Uri(K)).getPath().split(".").pop();var O=l.EXTENSION_MAP_BY_CONTENT_TYPE_[g][K];O||(O=l.RAW_FORMATS_TO_MIME_TYPES_[K]);return O};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,
2395
2397
  "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,
2396
- "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 D=t,y={},A=0;A<c.partialSegments.length;y={uris$jscomp$25:void 0,pUri:void 0},A++){var C=c.partialSegments[A],F=0==A?b:w[w.length-1],H=0==A?d:F.endTime,G=Number(C.getAttributeValue("DURATION"))||this.partialTargetDuration_;if(G){var E=H+G,I=0,L=null;"EXT-X-PRELOAD-HINT"==C.name?
2397
- (I=(I=C.getAttributeValue("BYTERANGE-START"))?Number(I):0,(F=C.getAttributeValue("BYTERANGE-LENGTH"))?L=I+Number(F)-1:I&&(L=Number.MAX_SAFE_INTEGER)):(I=C.getAttributeValue("BYTERANGE"),L=$jscomp.makeIterator(this.parseByteRange_(F,I)),I=L.next().value,L=L.next().value);y.pUri=C.getAttributeValue("URI");if(y.pUri){F=shaka.media.SegmentReference.Status.AVAILABLE;"YES"==C.getAttributeValue("GAP")&&(this.manifest_.gapCount++,F=shaka.media.SegmentReference.Status.MISSING,z=!0);y.uris$jscomp$25=null;var J=
2398
- function(K){return function(){null==K.uris$jscomp$25&&(goog.asserts.assert(K.pUri,"Partial uri should be defined!"),K.uris$jscomp$25=shaka.hls.Utils.constructSegmentUris(h(),K.pUri,e));return K.uris$jscomp$25}}(y);p&&0<=I&&null!=L&&(x=J,u=!0);H=new shaka.media.SegmentReference(H,E,J,I,L,a,0,0,Infinity,[],"",null,D,F,k);"EXT-X-PRELOAD-HINT"==C.name&&(H.markAsPreload(),B=!0);"YES"!=C.getAttributeValue("INDEPENDENT")&&0<A&&H.markAsNonIndependent();if(y=f(y.pUri))H.mimeType=y,l.MIME_TYPES_WITHOUT_INIT_SEGMENT_.has(y)&&
2399
- (H.initSegmentReference=null);w.push(H);D&&(D+=G)}}}}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",
2398
+ "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 C=t,y={},A=0;A<c.partialSegments.length;y={uris$jscomp$25:void 0,pUri:void 0},A++){var D=c.partialSegments[A],F=0==A?b:w[w.length-1],H=0==A?d:F.endTime,G=Number(D.getAttributeValue("DURATION"))||this.partialTargetDuration_;if(G){var E=H+G,I=0,L=null;"EXT-X-PRELOAD-HINT"==D.name?
2399
+ (I=(I=D.getAttributeValue("BYTERANGE-START"))?Number(I):0,(F=D.getAttributeValue("BYTERANGE-LENGTH"))?L=I+Number(F)-1:I&&(L=Number.MAX_SAFE_INTEGER)):(I=D.getAttributeValue("BYTERANGE"),L=$jscomp.makeIterator(this.parseByteRange_(F,I)),I=L.next().value,L=L.next().value);y.pUri=D.getAttributeValue("URI");if(y.pUri){F=shaka.media.SegmentReference.Status.AVAILABLE;"YES"==D.getAttributeValue("GAP")&&(this.manifest_.gapCount++,F=shaka.media.SegmentReference.Status.MISSING,z=!0);y.uris$jscomp$25=null;var J=
2400
+ function(K){return function(){null==K.uris$jscomp$25&&(goog.asserts.assert(K.pUri,"Partial uri should be defined!"),K.uris$jscomp$25=shaka.hls.Utils.constructSegmentUris(h(),K.pUri,e));return K.uris$jscomp$25}}(y);p&&0<=I&&null!=L&&(x=J,u=!0);H=new shaka.media.SegmentReference(H,E,J,I,L,a,0,0,Infinity,[],"",null,C,F,k);"EXT-X-PRELOAD-HINT"==D.name&&(H.markAsPreload(),B=!0);"YES"!=D.getAttributeValue("INDEPENDENT")&&0<A&&H.markAsNonIndependent();if(y=f(y.pUri))H.mimeType=y,l.MIME_TYPES_WITHOUT_INIT_SEGMENT_.has(y)&&
2401
+ (H.initSegmentReference=null);w.push(H);C&&(C+=G)}}}}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",
2400
2402
  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_=
2401
2403
  !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]};
2402
2404
  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.sort(function(H,G){H=H.getRequiredAttrValue("START-DATE");G=G.getRequiredAttrValue("START-DATE");return H<G?-1:H>G?1:0}),b=0;b<a.length;b++){var g=a[b];try{var h=g.getRequiredAttrValue("ID");
2403
2405
  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")||g.getAttributeValue("PLANNED-DURATION");if(r){var t=parseFloat(r);
2404
- 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","DURATION","END-ON-NEXT"];for(var D=[],y=$jscomp.makeIterator(g.attributes),
2405
- A=y.next();!A.done;A=y.next()){var C=A.value;if(!w.includes(C.name)){var F=e.variableSubstitution(C.value,c);if("X-ASSET-URI"==C.name||"X-ASSET-LIST"==C.name)F=e.constructSegmentUris(d(),C.value,c)[0];D.push({key:C.name,description:"",data:F,mimeType:null,pictureType:null})}}if(1<D.length)this.playerInterface_.onMetadata(u,m,n,D);this.dateRangeIdsEmitted_.add(h)}}}catch(H){shaka.log.warning("Ignorando DATERANGE con errores",g.toString())}}}};
2406
+ 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","DURATION","END-ON-NEXT"];for(var C=[],y=$jscomp.makeIterator(g.attributes),
2407
+ A=y.next();!A.done;A=y.next()){var D=A.value;if(!w.includes(D.name)){var F=e.variableSubstitution(D.value,c);if("X-ASSET-URI"==D.name||"X-ASSET-LIST"==D.name)F=e.constructSegmentUris(d(),D.value,c)[0];C.push({key:D.name,description:"",data:F,mimeType:null,pictureType:null})}}if(1<C.length)this.playerInterface_.onMetadata(u,m,n,C);this.dateRangeIdsEmitted_.add(h)}}}catch(H){shaka.log.warning("Ignorando DATERANGE con errores",g.toString())}}}};
2406
2408
  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_==
2407
2409
  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"))?
2408
2410
  this.parseAESDrmTag_(x,a,d,c):void 0);b.set(n,v);w=this.getInitSegmentReference_(a,u.tags,d,c);!this.lowLatencyMode_&&this.playerInterface_.isAutoLowLatencyMode()&&(this.playerInterface_.enableLowLatencyMode(),this.lowLatencyMode_=this.playerInterface_.isLowLatencyMode());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,
@@ -2427,10 +2429,10 @@ shaka.hls.HlsParser.widevineDrmParser_=function(a){var b=a.getRequiredAttrValue(
2427
2429
  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};
2428
2430
  shaka.hls.HlsParser.playreadyDrmParser_=function(a){var b=a.getRequiredAttrValue("METHOD"),c=["SAMPLE-AES","SAMPLE-AES-CTR"];if(!c.includes(b))return shaka.log.error("PlayReady in HLS is only supported with [",c.join(", "),"], not",b),null;c="cenc";"SAMPLE-AES"==b&&(c="cbcs");a=a.getRequiredAttrValue("URI");a=shaka.net.DataUriPlugin.parseRaw(a.split("?")[0]);a=shaka.util.BufferUtils.toUint8(a.data);b=new Uint8Array([154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149]);var d=new Set;a=shaka.util.Pssh.createPssh(a,
2429
2431
  b,d,0);return shaka.util.ManifestParserUtils.createDrmInfo("com.microsoft.playready",c,[{initDataType:"cenc",initData:a}])};
2430
- 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,D;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())throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,
2432
+ 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,C;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())throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,
2431
2433
  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()));
2432
2434
  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(),
2433
- 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),D="cenc","SAMPLE-AES"==g&&(D="cbcs"),y.return(shaka.util.ManifestParserUtils.createDrmInfoFromClearKeys(B,D))}})};
2435
+ 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),C="cenc","SAMPLE-AES"==g&&(C="cbcs"),y.return(shaka.util.ManifestParserUtils.createDrmInfoFromClearKeys(B,C))}})};
2434
2436
  goog.exportSymbol("shaka.hls.HlsParser",shaka.hls.HlsParser);shaka.hls.HlsParser.RAW_FORMATS_TO_MIME_TYPES_={aac:"audio/aac",ac3:"audio/ac3",ec3:"audio/ec3",mp3:"audio/mpeg"};shaka.hls.HlsParser.AUDIO_EXTENSIONS_TO_MIME_TYPES_={mp4:"audio/mp4",mp4a:"audio/mp4",m4s:"audio/mp4",m4i:"audio/mp4",m4a:"audio/mp4",m4f:"audio/mp4",cmfa:"audio/mp4",ts:"video/mp2t",tsa:"video/mp2t"};
2435
2437
  shaka.hls.HlsParser.VIDEO_EXTENSIONS_TO_MIME_TYPES_={mp4:"video/mp4",mp4v:"video/mp4",m4s:"video/mp4",m4i:"video/mp4",m4v:"video/mp4",m4f:"video/mp4",cmfv:"video/mp4",ts:"video/mp2t",tsv:"video/mp2t"};shaka.hls.HlsParser.TEXT_EXTENSIONS_TO_MIME_TYPES_={mp4:"application/mp4",m4s:"application/mp4",m4i:"application/mp4",m4f:"application/mp4",cmft:"application/mp4",vtt:"text/vtt",webvtt:"text/vtt",ttml:"application/ttml+xml"};
2436
2438
  shaka.hls.HlsParser.IMAGE_EXTENSIONS_TO_MIME_TYPES_={jpg:"image/jpeg",png:"image/png",svg:"image/svg+xml",webp:"image/webp",avif:"image/avif"};shaka.hls.HlsParser.EXTENSION_MAP_BY_CONTENT_TYPE_={audio:shaka.hls.HlsParser.AUDIO_EXTENSIONS_TO_MIME_TYPES_,video:shaka.hls.HlsParser.VIDEO_EXTENSIONS_TO_MIME_TYPES_,text:shaka.hls.HlsParser.TEXT_EXTENSIONS_TO_MIME_TYPES_,image:shaka.hls.HlsParser.IMAGE_EXTENSIONS_TO_MIME_TYPES_};shaka.hls.HlsParser.MIME_TYPES_WITHOUT_INIT_SEGMENT_=new Set(["video/mp2t"].concat($jscomp.arrayFromIterable(shaka.util.MimeUtils.RAW_FORMATS)));
@@ -2524,8 +2526,8 @@ shaka.net.HttpPluginUtils.makeResponse=function(a,b,c,d,e,f){if(200<=c&&299>=c&&
2524
2526
  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,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,
2525
2527
  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};
2526
2528
  shaka.net.HttpFetchPlugin.request_=function(a,b,c,d,e,f,g,h){var k,l,m,n,p,q,r,t,u,v,w,x,z;return $jscomp.asyncExecutePromiseGeneratorProgram(function(B){switch(B.nextAddress){case 1:return k=shaka.net.HttpFetchPlugin.fetch_,l=shaka.net.HttpFetchPlugin.ReadableStream_,q=p=0,r=Date.now(),B.setCatchFinallyBlocks(2),B.yield(k(a,c),4);case 4:m=B.yieldResult;f(shaka.net.HttpFetchPlugin.headersToGenericObject_(m.headers));if("HEAD"==c.method){B.jumpTo(5);break}goog.asserts.assert(m.body,"non-HEAD responses should have a body");
2527
- t=m.clone().body.getReader();v=(u=m.headers.get("Content-Length"))?parseInt(u,10):0;w=function(D){var y=function(){var A,C,F,H,G;return $jscomp.asyncExecutePromiseGeneratorProgram(function(E){switch(E.nextAddress){case 1:return E.setCatchFinallyBlocks(2),E.yield(t.read(),4);case 4:A=E.yieldResult;E.leaveTryBlock(3);break;case 2:return C=E.enterCatchBlock(),shaka.log.v1("error reading from stream",C.message),E.return();case 3:if(A.done){E.jumpTo(5);break}p+=A.value.byteLength;if(!g){E.jumpTo(5);break}return E.yield(g(A.value),
2528
- 5);case 5:F=Date.now();H=p-q;if(100<F-r&&H>=h||A.done)G=A.done?0:v-p,e(F-r,H,G),q=p,r=F;A.done?(goog.asserts.assert(!A.value,'readObj should be unset when "done" is true.'),D.close()):(D.enqueue(A.value),y());E.jumpToEnd()}})};y()};new l({start:w});return B.yield(m.arrayBuffer(),6);case 6:n=B.yieldResult;case 5:B.leaveTryBlock(3);break;case 2:x=B.enterCatchBlock();if(d.canceled)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.OPERATION_ABORTED,
2529
+ t=m.clone().body.getReader();v=(u=m.headers.get("Content-Length"))?parseInt(u,10):0;w=function(C){var y=function(){var A,D,F,H,G;return $jscomp.asyncExecutePromiseGeneratorProgram(function(E){switch(E.nextAddress){case 1:return E.setCatchFinallyBlocks(2),E.yield(t.read(),4);case 4:A=E.yieldResult;E.leaveTryBlock(3);break;case 2:return D=E.enterCatchBlock(),shaka.log.v1("error reading from stream",D.message),E.return();case 3:if(A.done){E.jumpTo(5);break}p+=A.value.byteLength;if(!g){E.jumpTo(5);break}return E.yield(g(A.value),
2530
+ 5);case 5:F=Date.now();H=p-q;if(100<F-r&&H>=h||A.done)G=A.done?0:v-p,e(F-r,H,G),q=p,r=F;A.done?(goog.asserts.assert(!A.value,'readObj should be unset when "done" is true.'),C.close()):(C.enqueue(A.value),y());E.jumpToEnd()}})};y()};new l({start:w});return B.yield(m.arrayBuffer(),6);case 6:n=B.yieldResult;case 5:B.leaveTryBlock(3);break;case 2:x=B.enterCatchBlock();if(d.canceled)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.OPERATION_ABORTED,
2529
2531
  a,b);if(d.timedOut)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.TIMEOUT,a,b);throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.HTTP_ERROR,a,x,b);case 3:return z=shaka.net.HttpFetchPlugin.headersToGenericObject_(m.headers),B.return(shaka.net.HttpPluginUtils.makeResponse(z,n,m.status,a,m.url,b))}})};
2530
2532
  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);
2531
2533
  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;
@@ -2554,9 +2556,9 @@ shaka.offline.indexeddb.BaseStorageCell.prototype.getAllManifests=function(){var
2554
2556
  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))};
2555
2557
  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))};
2556
2558
  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$56:void 0},h=g.next())l=h.value,k.request$jscomp$56=e.add(l),k.request$jscomp$56.onsuccess=function(n){return function(p){f.push(n.request$jscomp$56.result)}}(k);return m.yield(d.promise(),2)}return m.return(f)})};
2557
- 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$144:void 0},e=b.next())f.key$jscomp$144=e.value,d.delete(f.key$jscomp$144).onsuccess=function(g){return function(){return c(g.key$jscomp$144)}}(f);return a.promise()};
2558
- 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$57:void 0,key$jscomp$145:void 0},k=h.next())l.key$jscomp$145=k.value,l.request$jscomp$57=e.get(l.key$jscomp$145),l.request$jscomp$57.onsuccess=function(n){return function(){void 0==n.request$jscomp$57.result&&
2559
- g.push(n.key$jscomp$145);f[n.key$jscomp$145]=n.request$jscomp$57.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()};
2559
+ 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$143:void 0},e=b.next())f.key$jscomp$143=e.value,d.delete(f.key$jscomp$143).onsuccess=function(g){return function(){return c(g.key$jscomp$143)}}(f);return a.promise()};
2560
+ 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$57:void 0,key$jscomp$144:void 0},k=h.next())l.key$jscomp$144=k.value,l.request$jscomp$57=e.get(l.key$jscomp$144),l.request$jscomp$57.onsuccess=function(n){return function(){void 0==n.request$jscomp$57.result&&
2561
+ g.push(n.key$jscomp$144);f[n.key$jscomp$144]=n.request$jscomp$57.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()};
2560
2562
  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)})};
2561
2563
  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()};
2562
2564
  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)};
@@ -2641,21 +2643,21 @@ shaka.offline.Storage.prototype.configure=function(a,b){goog.asserts.assert("obj
2641
2643
  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_};
2642
2644
  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|"),
2643
2645
  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)};
2644
- 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,D,y,A,C,F,H,G,E;return $jscomp.asyncExecutePromiseGeneratorProgram(function(I){switch(I.nextAddress){case 1:return h.requireSupport_(),l=k=null,m=new shaka.offline.StorageMuxer,q=p=n=null,I.setCatchFinallyBlocks(2,3),I.yield(e(),5);case 5:return k=I.yieldResult,I.yield(h.parseManifest(a,k,f),6);case 6:r=I.yieldResult;h.ensureNotDestroyed_();t=!r.presentationTimeline.isLive()&&!r.presentationTimeline.isInProgress();
2646
+ 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,C,y,A,D,F,H,G,E;return $jscomp.asyncExecutePromiseGeneratorProgram(function(I){switch(I.nextAddress){case 1:return h.requireSupport_(),l=k=null,m=new shaka.offline.StorageMuxer,q=p=n=null,I.setCatchFinallyBlocks(2,3),I.yield(e(),5);case 5:return k=I.yieldResult,I.yield(h.parseManifest(a,k,f),6);case 6:r=I.yieldResult;h.ensureNotDestroyed_();t=!r.presentationTimeline.isLive()&&!r.presentationTimeline.isInProgress();
2645
2647
  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){I.jumpTo(9);break}w=v.value;return I.yield(h.createExternalImageStream_(w,r),10);case 10:x=I.yieldResult;r.imageStreams.push(x);h.ensureNotDestroyed_();v=u.next();I.jumpTo(7);break;case 9:z=$jscomp.makeIterator(d),B=z.next();case 11:if(B.done)return I.yield(h.createDrmEngine(r,function(L){q=q||
2646
- L},f),15);D=B.value;return I.yield(h.createExternalTextStream_(r,D.uri,D.language,D.kind,D.mime,D.codecs),14);case 14:y=I.yieldResult;r.textStreams.push(y);h.ensureNotDestroyed_();B=z.next();I.jumpTo(11);break;case 15:l=I.yieldResult;h.ensureNotDestroyed_();if(q)throw q;return I.yield(h.filterManifest_(r,l,f),16);case 16:return I.yield(m.init(),17);case 17:return h.ensureNotDestroyed_(),I.yield(m.getActive(),18);case 18:return n=I.yieldResult,h.ensureNotDestroyed_(),goog.asserts.assert(l,"drmEngine should be non-null here."),
2647
- A=h.makeManifestDB_(l,r,a,b,f,g),C=A.manifestDB,F=A.toDownload,I.yield(n.cell.addManifests([C]),19);case 19:H=I.yieldResult;h.ensureNotDestroyed_();p=H[0];goog.asserts.assert(l,"drmEngine should be non-null here.");h.ensureNotDestroyed_();if(q)throw q;return I.yield(h.downloadSegments_(F,p,C,g,f,n.cell,r,l),20);case 20:return h.ensureNotDestroyed_(),h.setManifestDrmFields_(r,C,l,f),I.yield(n.cell.updateManifest(p,C),21);case 21:return h.ensureNotDestroyed_(),G=shaka.offline.OfflineUri.manifest(n.path.mechanism,
2648
- n.path.cell,p),I.return(shaka.offline.StoredContentUtils.fromManifestDB(G,C));case 3:return I.enterFinallyBlock(),I.yield(m.destroy(),22);case 22:if(!k){I.jumpTo(23);break}return I.yield(k.stop(),23);case 23:if(!l){I.jumpTo(25);break}return I.yield(l.destroy(),25);case 25:I.leaveFinallyBlock(0);break;case 2:E=I.enterCatchBlock();if(null==p){I.jumpTo(27);break}return I.yield(shaka.offline.Storage.cleanStoredManifest(p),27);case 27:throw q||E;}})};
2649
- shaka.offline.Storage.prototype.downloadSegments_=function(a,b,c,d,e,f,g,h){var k=this,l,m,n,p,q,r,t,u,v,w;return $jscomp.asyncExecutePromiseGeneratorProgram(function(x){switch(x.nextAddress){case 1:l={};m=0;n=function(z,B){var D,y,A,C,F,H,G;return $jscomp.asyncExecutePromiseGeneratorProgram(function(E){if(1==E.nextAddress){D=$jscomp.makeIterator(z);y=D.next();for(A={};!y.done;A={download$jscomp$1:void 0},y=D.next())A.download$jscomp$1=y.value,C=A.download$jscomp$1.makeSegmentRequest(e),F=A.download$jscomp$1.estimateId,
2650
- H=A.download$jscomp$1.isInitSegment,G=function(I){return function(L){var J,M,K;return $jscomp.asyncExecutePromiseGeneratorProgram(function(O){if(1==O.nextAddress)return O.yield(f.addSegments([{data:L}]),2);J=O.yieldResult;k.ensureNotDestroyed_();M=I.download$jscomp$1.ref;K=shaka.offline.DownloadInfo.idForSegmentRef(M);l[K]=J[0];m+=L.byteLength;O.jumpToEnd()})}}(A),d.queue(A.download$jscomp$1.groupId,C,F,H,G);return E.yield(d.waitToFinish(),2)}if(!B)return E.jumpTo(0);k.ensureNotDestroyed_();k.setManifestDrmFields_(g,
2648
+ L},f),15);C=B.value;return I.yield(h.createExternalTextStream_(r,C.uri,C.language,C.kind,C.mime,C.codecs),14);case 14:y=I.yieldResult;r.textStreams.push(y);h.ensureNotDestroyed_();B=z.next();I.jumpTo(11);break;case 15:l=I.yieldResult;h.ensureNotDestroyed_();if(q)throw q;return I.yield(h.filterManifest_(r,l,f),16);case 16:return I.yield(m.init(),17);case 17:return h.ensureNotDestroyed_(),I.yield(m.getActive(),18);case 18:return n=I.yieldResult,h.ensureNotDestroyed_(),goog.asserts.assert(l,"drmEngine should be non-null here."),
2649
+ A=h.makeManifestDB_(l,r,a,b,f,g),D=A.manifestDB,F=A.toDownload,I.yield(n.cell.addManifests([D]),19);case 19:H=I.yieldResult;h.ensureNotDestroyed_();p=H[0];goog.asserts.assert(l,"drmEngine should be non-null here.");h.ensureNotDestroyed_();if(q)throw q;return I.yield(h.downloadSegments_(F,p,D,g,f,n.cell,r,l),20);case 20:return h.ensureNotDestroyed_(),h.setManifestDrmFields_(r,D,l,f),I.yield(n.cell.updateManifest(p,D),21);case 21:return h.ensureNotDestroyed_(),G=shaka.offline.OfflineUri.manifest(n.path.mechanism,
2650
+ n.path.cell,p),I.return(shaka.offline.StoredContentUtils.fromManifestDB(G,D));case 3:return I.enterFinallyBlock(),I.yield(m.destroy(),22);case 22:if(!k){I.jumpTo(23);break}return I.yield(k.stop(),23);case 23:if(!l){I.jumpTo(25);break}return I.yield(l.destroy(),25);case 25:I.leaveFinallyBlock(0);break;case 2:E=I.enterCatchBlock();if(null==p){I.jumpTo(27);break}return I.yield(shaka.offline.Storage.cleanStoredManifest(p),27);case 27:throw q||E;}})};
2651
+ shaka.offline.Storage.prototype.downloadSegments_=function(a,b,c,d,e,f,g,h){var k=this,l,m,n,p,q,r,t,u,v,w;return $jscomp.asyncExecutePromiseGeneratorProgram(function(x){switch(x.nextAddress){case 1:l={};m=0;n=function(z,B){var C,y,A,D,F,H,G;return $jscomp.asyncExecutePromiseGeneratorProgram(function(E){if(1==E.nextAddress){C=$jscomp.makeIterator(z);y=C.next();for(A={};!y.done;A={download$jscomp$1:void 0},y=C.next())A.download$jscomp$1=y.value,D=A.download$jscomp$1.makeSegmentRequest(e),F=A.download$jscomp$1.estimateId,
2652
+ H=A.download$jscomp$1.isInitSegment,G=function(I){return function(L){var J,M,K;return $jscomp.asyncExecutePromiseGeneratorProgram(function(O){if(1==O.nextAddress)return O.yield(f.addSegments([{data:L}]),2);J=O.yieldResult;k.ensureNotDestroyed_();M=I.download$jscomp$1.ref;K=shaka.offline.DownloadInfo.idForSegmentRef(M);l[K]=J[0];m+=L.byteLength;O.jumpToEnd()})}}(A),d.queue(A.download$jscomp$1.groupId,D,F,H,G);return E.yield(d.waitToFinish(),2)}if(!B)return E.jumpTo(0);k.ensureNotDestroyed_();k.setManifestDrmFields_(g,
2651
2653
  c,h,e);return E.yield(f.updateManifest(b,c),0)})};p=!1;x.setCatchFinallyBlocks(2);if(!k.getManifestIsEncrypted_(g)||!p||k.getManifestIncludesInitData_(g)){x.jumpTo(4);break}return x.yield(n(a.filter(function(z){return z.isInitSegment}),!0),5);case 5:return k.ensureNotDestroyed_(),a=a.filter(function(z){return!z.isInitSegment}),q=l,r=m,l={},m=0,x.yield(shaka.offline.Storage.assignSegmentsToManifest(f,b,c,q,r,function(){return k.ensureNotDestroyed_()}),6);case 6:k.ensureNotDestroyed_();case 4:if(p){x.jumpTo(7);
2652
2654
  break}return x.yield(n(a,!1),8);case 8:return k.ensureNotDestroyed_(),t=l,u=m,l={},m=0,x.yield(shaka.offline.Storage.assignSegmentsToManifest(f,b,c,t,u,function(){return k.ensureNotDestroyed_()}),9);case 9:k.ensureNotDestroyed_(),goog.asserts.assert(!c.isIncomplete,"The manifest should be complete by now");case 7:x.leaveTryBlock(0);break;case 2:return v=x.enterCatchBlock(),w=Object.values(l),x.yield(f.removeSegments(w,function(z){}),10);case 10:throw v;}})};
2653
2655
  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)}})};
2654
2656
  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?
2655
2657
  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;}})};
2656
- shaka.offline.Storage.prototype.filterManifest_=function(a,b,c){var d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z,B,D,y,A,C,F,H,G,E,I,L,J;return $jscomp.asyncExecutePromiseGeneratorProgram(function(M){switch(M.nextAddress){case 1:return d={width:Infinity,height:Infinity},shaka.util.StreamUtils.filterByRestrictions(a,c.restrictions,d),M.yield(shaka.util.StreamUtils.filterManifestByMediaCapabilities(b,a,c.offline.usePersistentLicense,c.drm.preferredKeySystems),2);case 2:e=[];f=c.preferredDecodingAttributes;g=
2657
- c.preferredVideoCodecs;h=c.preferredAudioCodecs;k=c.preferredTextFormats;shaka.util.StreamUtils.chooseCodecsAndFilterManifest(a,g,h,f,k);l=$jscomp.makeIterator(a.variants);for(m=l.next();!m.done;m=l.next())n=m.value,goog.asserts.assert(shaka.util.StreamUtils.isPlayable(n),'We should have already filtered by "is playable"'),e.push(shaka.util.StreamUtils.variantToTrack(n));p=$jscomp.makeIterator(a.textStreams);for(q=p.next();!q.done;q=p.next())r=q.value,e.push(shaka.util.StreamUtils.textStreamToTrack(r));
2658
- t=$jscomp.makeIterator(a.imageStreams);for(u=t.next();!u.done;u=t.next())v=u.value,e.push(shaka.util.StreamUtils.imageStreamToTrack(v));return M.yield(c.offline.trackSelectionCallback(e),3);case 3:w=M.yieldResult;x=a.presentationTimeline.getDuration();z=0;B=$jscomp.makeIterator(w);for(D=B.next();!D.done;D=B.next())y=D.value,A=y.bandwidth*x/8,z+=A;M.setCatchFinallyBlocks(4);return M.yield(c.offline.downloadSizeCallback(z),6);case 6:C=M.yieldResult;if(!C)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
2658
+ shaka.offline.Storage.prototype.filterManifest_=function(a,b,c){var d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z,B,C,y,A,D,F,H,G,E,I,L,J;return $jscomp.asyncExecutePromiseGeneratorProgram(function(M){switch(M.nextAddress){case 1:return d={width:Infinity,height:Infinity},shaka.util.StreamUtils.filterByRestrictions(a,c.restrictions,d),M.yield(shaka.util.StreamUtils.filterManifestByMediaCapabilities(b,a,c.offline.usePersistentLicense,c.drm.preferredKeySystems,c.drm.keySystemsMapping),2);case 2:e=[];f=c.preferredDecodingAttributes;
2659
+ g=c.preferredVideoCodecs;h=c.preferredAudioCodecs;k=c.preferredTextFormats;shaka.util.StreamUtils.chooseCodecsAndFilterManifest(a,g,h,f,k);l=$jscomp.makeIterator(a.variants);for(m=l.next();!m.done;m=l.next())n=m.value,goog.asserts.assert(shaka.util.StreamUtils.isPlayable(n),'We should have already filtered by "is playable"'),e.push(shaka.util.StreamUtils.variantToTrack(n));p=$jscomp.makeIterator(a.textStreams);for(q=p.next();!q.done;q=p.next())r=q.value,e.push(shaka.util.StreamUtils.textStreamToTrack(r));
2660
+ t=$jscomp.makeIterator(a.imageStreams);for(u=t.next();!u.done;u=t.next())v=u.value,e.push(shaka.util.StreamUtils.imageStreamToTrack(v));return M.yield(c.offline.trackSelectionCallback(e),3);case 3:w=M.yieldResult;x=a.presentationTimeline.getDuration();z=0;B=$jscomp.makeIterator(w);for(C=B.next();!C.done;C=B.next())y=C.value,A=y.bandwidth*x/8,z+=A;M.setCatchFinallyBlocks(4);return M.yield(c.offline.downloadSizeCallback(z),6);case 6:D=M.yieldResult;if(!D)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
2659
2661
  shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.STORAGE_LIMIT_REACHED);M.leaveTryBlock(5);break;case 4:F=M.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;G=new Set;E=new Set;I=$jscomp.makeIterator(w);for(L=I.next();!L.done;L=I.next())J=L.value,
2660
2662
  "variant"==J.type&&H.add(J.id),"text"==J.type&&G.add(J.id),"image"==J.type&&E.add(J.id);a.variants=a.variants.filter(function(K){return H.has(K.id)});a.textStreams=a.textStreams.filter(function(K){return G.has(K.id)});a.imageStreams=a.imageStreams.filter(function(K){return E.has(K.id)});shaka.offline.Storage.validateManifest_(a);M.jumpToEnd()}})};
2661
2663
  shaka.offline.Storage.prototype.makeManifestDB_=function(a,b,c,d,e,f){var g=shaka.offline.StoredContentUtils.fromManifest(c,b,0,d),h=e.offline.progressCallback;f.setCallbacks(function(q,r){g.size=r;h(g,q)},function(q,r){k&&e.offline.usePersistentLicense&&l==r&&a.newInitData("cenc",q)});var k=this.getManifestIsEncrypted_(b)&&!this.getManifestIncludesInitData_(b),l=null;if(k){var m=a.getDrmInfo();l=shaka.offline.Storage.defaultSystemIds_.get(m.keySystem)}m=new shaka.offline.StreamBandwidthEstimator;
@@ -2832,7 +2834,7 @@ g,"subFrameRate"),p=f.getAttributeNSList(l,g,"frameRateMultiplier"),q=f.getAttri
2832
2834
  "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};
2833
2835
  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());
2834
2836
  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),
2835
- D=B.next();!D.done;D=B.next())(D=shaka.text.TtmlTextParser.parseCue_(D.value,b,c,d,e,f,g,x,k,u,m,n,p))&&h.push(D);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;
2837
+ C=B.next();!C.done;C=B.next())(C=shaka.text.TtmlTextParser.parseCue_(C.value,b,c,d,e,f,g,x,k,u,m,n,p))&&h.push(C);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;
2836
2838
  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);
2837
2839
  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(A){return A.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};
2838
2840
  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&&
@@ -2961,14 +2963,14 @@ generalProfileSpace:a.generalProfileSpace,generalTierFlag:a.generalTierFlag,gene
2961
2963
  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});
2962
2964
  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}};
2963
2965
  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=[],
2964
- B=[],D=0;D<f;D++)z.push(a.readBoolean()),B.push(a.readBoolean());if(0<f)for(D=f;8>D;D++)a.readBits(2);for(D=0;D<f;D++)z[D]&&a.readBits(88),B[D]&&a.readUnsignedByte();a.readUnsignedExpGolomb();z=a.readUnsignedExpGolomb();3==z&&a.readBits(1);B=a.readUnsignedExpGolomb();D=a.readUnsignedExpGolomb();a.readBoolean()&&(b+=a.readUnsignedExpGolomb(),c+=a.readUnsignedExpGolomb(),d+=a.readUnsignedExpGolomb(),e+=a.readUnsignedExpGolomb());var y=a.readUnsignedExpGolomb(),A=a.readUnsignedExpGolomb(),C=a.readUnsignedExpGolomb();
2966
+ B=[],C=0;C<f;C++)z.push(a.readBoolean()),B.push(a.readBoolean());if(0<f)for(C=f;8>C;C++)a.readBits(2);for(C=0;C<f;C++)z[C]&&a.readBits(88),B[C]&&a.readUnsignedByte();a.readUnsignedExpGolomb();z=a.readUnsignedExpGolomb();3==z&&a.readBits(1);B=a.readUnsignedExpGolomb();C=a.readUnsignedExpGolomb();a.readBoolean()&&(b+=a.readUnsignedExpGolomb(),c+=a.readUnsignedExpGolomb(),d+=a.readUnsignedExpGolomb(),e+=a.readUnsignedExpGolomb());var y=a.readUnsignedExpGolomb(),A=a.readUnsignedExpGolomb(),D=a.readUnsignedExpGolomb();
2965
2967
  if(a.readBoolean())for(var F=0;F<=f;F++)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(F=0;4>F;F++)for(var H=0;H<(3===F?2:6);H++)if(a.readBoolean()){var G=Math.min(64,1<<4+(F<<1));1<F&&a.readExpGolomb();
2966
2968
  for(var E=0;E<G;E++)a.readExpGolomb()}else a.readUnsignedExpGolomb();a.readBoolean();a.readBoolean();a.readBoolean()&&(a.readUnsignedByte(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readBoolean());F=a.readUnsignedExpGolomb();for(G=H=0;G<F;G++)if(E=!1,0!==G&&(E=a.readBoolean()),E){G===F&&a.readUnsignedExpGolomb();a.readBoolean();a.readUnsignedExpGolomb();for(var I=E=0;I<=H;I++){var L=a.readBoolean(),J=!1;L||(J=a.readBoolean());(L||J)&&E++}H=E}else{I=a.readUnsignedExpGolomb();E=a.readUnsignedExpGolomb();
2967
- H=I+E;for(L=0;L<I;L++)a.readUnsignedExpGolomb(),a.readBoolean();for(I=0;I<E;I++)a.readUnsignedExpGolomb(),a.readBoolean()}if(a.readBoolean())for(F=a.readUnsignedExpGolomb(),H=0;H<F;H++){for(G=0;G<C+4;G++)a.readBits(1);a.readBits(1)}F=C=1;H=0;a.readBoolean();a.readBoolean();if(a.readBoolean()){a.readBoolean()&&(G=a.readUnsignedByte(),E=[1,12,10,16,40,24,20,32,80,18,15,64,160,4,3,2],I=[1,11,11,11,33,11,11,11,33,11,11,33,99,3,2,1],0<G&&16>=G?(C=E[G-1],F=I[G-1]):255===G&&(C=a.readBits(16),F=a.readBits(16)));
2969
+ H=I+E;for(L=0;L<I;L++)a.readUnsignedExpGolomb(),a.readBoolean();for(I=0;I<E;I++)a.readUnsignedExpGolomb(),a.readBoolean()}if(a.readBoolean())for(F=a.readUnsignedExpGolomb(),H=0;H<F;H++){for(G=0;G<D+4;G++)a.readBits(1);a.readBits(1)}F=D=1;H=0;a.readBoolean();a.readBoolean();if(a.readBoolean()){a.readBoolean()&&(G=a.readUnsignedByte(),E=[1,12,10,16,40,24,20,32,80,18,15,64,160,4,3,2],I=[1,11,11,11,33,11,11,11,33,11,11,33,99,3,2,1],0<G&&16>=G?(D=E[G-1],F=I[G-1]):255===G&&(D=a.readBits(16),F=a.readBits(16)));
2968
2970
  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(G=a.readBoolean())a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb();if(a.readBoolean()&&(a.readBits(32),a.readBits(32),a.readBoolean()&&a.readUnsignedExpGolomb(),
2969
2971
  a.readBoolean())){I=!1;G=a.readBoolean();E=a.readBoolean();if(G||E){if(I=a.readBoolean())a.readUnsignedByte(),a.readBits(5),a.readBoolean(),a.readBits(5);a.readBits(4);a.readBits(4);I&&a.readBits(4);a.readBits(5);a.readBits(5);a.readBits(5)}for(L=0;L<=f;L++){var M=!0;J=1;a.readBoolean()||(M=a.readBoolean());var K=!1;M?a.readUnsignedExpGolomb():K=a.readBoolean();K||(J=a.readUnsignedExpGolomb()+1);if(G){for(M=0;M<J;M++)a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),I&&(a.readUnsignedExpGolomb(),
2970
2972
  a.readUnsignedExpGolomb());a.readBoolean()}if(E){for(M=0;M<J;M++)a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),I&&(a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb());a.readBoolean()}}}a.readBoolean()&&(a.readBoolean(),a.readBoolean(),a.readBoolean(),H=a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb())}return{generalLevelIdc:x,generalProfileSpace:g,generalTierFlag:h,generalProfileIdc:k,generalProfileCompatibilityFlags1:l,
2971
- generalProfileCompatibilityFlags2:m,generalProfileCompatibilityFlags3:n,generalProfileCompatibilityFlags4:p,generalConstraintIndicatorFlags1:q,generalConstraintIndicatorFlags2:r,generalConstraintIndicatorFlags3:t,generalConstraintIndicatorFlags4:u,generalConstraintIndicatorFlags5:v,generalConstraintIndicatorFlags6:w,minSpatialSegmentationIdc:H,constantFrameRate:0,chromaFormatIdc:z,bitDepthLumaMinus8:y,bitDepthChromaMinus8:A,width:B-(b+c)*(1===z||2===z?2:1),height:D-(d+e)*(1===z?2:1),sarWidth:C,sarHeight:F}};
2973
+ generalProfileCompatibilityFlags2:m,generalProfileCompatibilityFlags3:n,generalProfileCompatibilityFlags4:p,generalConstraintIndicatorFlags1:q,generalConstraintIndicatorFlags2:r,generalConstraintIndicatorFlags3:t,generalConstraintIndicatorFlags4:u,generalConstraintIndicatorFlags5:v,generalConstraintIndicatorFlags6:w,minSpatialSegmentationIdc:H,constantFrameRate:0,chromaFormatIdc:z,bitDepthLumaMinus8:y,bitDepthChromaMinus8:A,width:B-(b+c)*(1===z||2===z?2:1),height:C-(d+e)*(1===z?2:1),sarWidth:D,sarHeight:F}};
2972
2974
  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();
2973
2975
  b=b.readBoolean();var c=1;b&&a?c=0:b?c=3:a&&(c=2);return{parallelismType:c}};
2974
2976
  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]=