shaka-player 3.1.5 → 3.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/build_and_test.yaml +73 -0
- package/.github/workflows/release.yaml +53 -0
- package/CHANGELOG.md +13 -1
- package/build/checkversion.py +1 -1
- package/build/test.py +6 -0
- package/dist/controls.css +1 -1
- package/dist/deps.js +3 -3
- package/dist/locales.js +29 -29
- package/dist/shaka-player.compiled.d.ts +2 -1
- package/dist/shaka-player.compiled.debug.d.ts +2 -1
- package/dist/shaka-player.compiled.debug.externs.js +5 -0
- package/dist/shaka-player.compiled.debug.js +200 -198
- package/dist/shaka-player.compiled.debug.map +3 -3
- package/dist/shaka-player.compiled.externs.js +5 -0
- package/dist/shaka-player.compiled.js +609 -608
- package/dist/shaka-player.compiled.map +3 -3
- package/dist/shaka-player.ui.d.ts +4 -12
- package/dist/shaka-player.ui.debug.d.ts +4 -12
- package/dist/shaka-player.ui.debug.externs.js +19 -23
- package/dist/shaka-player.ui.debug.js +77 -76
- package/dist/shaka-player.ui.debug.map +4 -4
- package/dist/shaka-player.ui.externs.js +19 -23
- package/dist/shaka-player.ui.js +901 -901
- package/dist/shaka-player.ui.map +2 -2
- package/karma.conf.js +19 -15
- package/lib/ads/ad_manager.js +1 -0
- package/lib/cast/cast_proxy.js +3 -0
- package/lib/cast/cast_receiver.js +3 -0
- package/lib/dash/dash_parser.js +31 -19
- package/lib/hls/manifest_text_parser.js +1 -0
- package/lib/media/region_observer.js +39 -33
- package/lib/media/region_timeline.js +17 -19
- package/lib/media/streaming_engine.js +1 -1
- package/lib/net/networking_engine.js +4 -0
- package/lib/offline/storage.js +10 -11
- package/lib/player.js +25 -9
- package/lib/util/fake_event_target.js +21 -1
- package/package.json +3 -6
- package/test/dash/dash_parser_live_unit.js +43 -0
- package/test/dash/dash_parser_manifest_unit.js +2 -1
- package/test/hls/hls_parser_unit.js +74 -0
- package/test/media/region_observer_unit.js +40 -5
- package/test/media/region_timeline_unit.js +40 -22
- package/test/test/util/util.js +10 -7
- package/test/ui/text_displayer_layout_unit.js +8 -7
- package/ui/controls.js +3 -0
- package/ui/localization.js +12 -36
|
@@ -147,10 +147,10 @@ shaka.log.Level={NONE:0,ERROR:1,WARNING:2,INFO:3,DEBUG:4,V1:5,V2:6};shaka.log.MA
|
|
|
147
147
|
if(window.console&&window.console.log.bind){var $jscomp$compprop0={};shaka.log.logMap_=($jscomp$compprop0[shaka.log.Level.ERROR]=console.error.bind(console),$jscomp$compprop0[shaka.log.Level.WARNING]=console.warn.bind(console),$jscomp$compprop0[shaka.log.Level.INFO]=console.info.bind(console),$jscomp$compprop0[shaka.log.Level.DEBUG]=console.log.bind(console),$jscomp$compprop0[shaka.log.Level.V1]=console.debug.bind(console),$jscomp$compprop0[shaka.log.Level.V2]=console.debug.bind(console),$jscomp$compprop0);
|
|
148
148
|
shaka.log.alwaysWarn=shaka.log.logMap_[shaka.log.Level.WARNING];shaka.log.alwaysError=shaka.log.logMap_[shaka.log.Level.ERROR];goog.DEBUG?(goog.exportSymbol("shaka.log",shaka.log),shaka.log.setLevel=function(a){var b=function(c){return c<=a?(goog.asserts.assert(shaka.log.logMap_[c],"Unexpected log level"),shaka.log.logMap_[c]):function(){}};shaka.log.currentLevel=a;shaka.log.error=b(shaka.log.Level.ERROR);shaka.log.warning=b(shaka.log.Level.WARNING);shaka.log.info=b(shaka.log.Level.INFO);shaka.log.debug=
|
|
149
149
|
b(shaka.log.Level.DEBUG);shaka.log.v1=b(shaka.log.Level.V1);shaka.log.v2=b(shaka.log.Level.V2)},shaka.log.setLevel(shaka.log.MAX_LOG_LEVEL)):(shaka.log.MAX_LOG_LEVEL>=shaka.log.Level.ERROR&&(shaka.log.error=shaka.log.logMap_[shaka.log.Level.ERROR]),shaka.log.MAX_LOG_LEVEL>=shaka.log.Level.WARNING&&(shaka.log.warning=shaka.log.logMap_[shaka.log.Level.WARNING]),shaka.log.MAX_LOG_LEVEL>=shaka.log.Level.INFO&&(shaka.log.info=shaka.log.logMap_[shaka.log.Level.INFO]),shaka.log.MAX_LOG_LEVEL>=shaka.log.Level.DEBUG&&
|
|
150
|
-
(shaka.log.debug=shaka.log.logMap_[shaka.log.Level.DEBUG]),shaka.log.MAX_LOG_LEVEL>=shaka.log.Level.V1&&(shaka.log.v1=shaka.log.logMap_[shaka.log.Level.V1]),shaka.log.MAX_LOG_LEVEL>=shaka.log.Level.V2&&(shaka.log.v2=shaka.log.logMap_[shaka.log.Level.V2]))};shaka.util.MultiMap=function(){this.map_={}};shaka.util.MultiMap.prototype.push=function(a,b){this.map_.hasOwnProperty(a)?this.map_[a].push(b):this.map_[a]=[b]};shaka.util.MultiMap.prototype.get=function(a){return(a=this.map_[a])?a.slice():null};shaka.util.MultiMap.prototype.getAll=function(){var a=[],b;for(b in this.map_)a.push.apply(a,$jscomp.arrayFromIterable(this.map_[b]));return a};
|
|
151
|
-
shaka.util.MultiMap.prototype.remove=function(a,b){a in this.map_&&(this.map_[a]=this.map_[a].filter(function(c){return c!=b}),0==this.map_[a].length&&delete this.map_[a])};shaka.util.MultiMap.prototype.clear=function(){this.map_={}};shaka.util.MultiMap.prototype.forEach=function(a){for(var b in this.map_)a(b,this.map_[b])};shaka.util.MultiMap.prototype.size=function(){return Object.keys(this.map_).length};shaka.util.FakeEventTarget=function(){this.listeners_=new shaka.util.MultiMap;this.dispatchTarget=this};shaka.util.FakeEventTarget.prototype.addEventListener=function(a,b,c){this.listeners_.push(a,b)};shaka.util.FakeEventTarget.prototype.listenToAllEvents=function(a){this.addEventListener(shaka.util.FakeEventTarget.ALL_EVENTS_,a)};shaka.util.FakeEventTarget.prototype.removeEventListener=function(a,b,c){this.listeners_.remove(a,b)};
|
|
152
|
-
shaka.util.FakeEventTarget.prototype.dispatchEvent=function(a){goog.asserts.assert(a instanceof shaka.util.FakeEvent,"FakeEventTarget can only dispatch FakeEvents!");var b=this.listeners_.get(a.type)||[],c=this.listeners_.get(shaka.util.FakeEventTarget.ALL_EVENTS_);c&&(b=b.concat(c));b=$jscomp.makeIterator(b);for(c=b.next();!c.done;c=b.next()){c=c.value;a.target=this.dispatchTarget;a.currentTarget=this.dispatchTarget;try{c.handleEvent?c.handleEvent(a):c.call(this,a)}catch(d){shaka.log.error("Uncaught exception in event handler",
|
|
153
|
-
d,d?d.message:null,d?d.stack:null)}if(a.stopped)break}return a.defaultPrevented};shaka.util.FakeEventTarget.ALL_EVENTS_="All";shaka.util.Iterables=function(){};shaka.util.Iterables.map=function(a,b){for(var c=[],d=$jscomp.makeIterator(a),e=d.next();!e.done;e=d.next())c.push(b(e.value));return c};shaka.util.Iterables.every=function(a,b){for(var c=$jscomp.makeIterator(a),d=c.next();!d.done;d=c.next())if(!b(d.value))return!1;return!0};shaka.util.Iterables.some=function(a,b){for(var c=$jscomp.makeIterator(a),d=c.next();!d.done;d=c.next())if(b(d.value))return!0;return!1};
|
|
150
|
+
(shaka.log.debug=shaka.log.logMap_[shaka.log.Level.DEBUG]),shaka.log.MAX_LOG_LEVEL>=shaka.log.Level.V1&&(shaka.log.v1=shaka.log.logMap_[shaka.log.Level.V1]),shaka.log.MAX_LOG_LEVEL>=shaka.log.Level.V2&&(shaka.log.v2=shaka.log.logMap_[shaka.log.Level.V2]))};shaka.util.IReleasable=function(){};shaka.util.IReleasable.prototype.release=function(){};shaka.util.MultiMap=function(){this.map_={}};shaka.util.MultiMap.prototype.push=function(a,b){this.map_.hasOwnProperty(a)?this.map_[a].push(b):this.map_[a]=[b]};shaka.util.MultiMap.prototype.get=function(a){return(a=this.map_[a])?a.slice():null};shaka.util.MultiMap.prototype.getAll=function(){var a=[],b;for(b in this.map_)a.push.apply(a,$jscomp.arrayFromIterable(this.map_[b]));return a};
|
|
151
|
+
shaka.util.MultiMap.prototype.remove=function(a,b){a in this.map_&&(this.map_[a]=this.map_[a].filter(function(c){return c!=b}),0==this.map_[a].length&&delete this.map_[a])};shaka.util.MultiMap.prototype.clear=function(){this.map_={}};shaka.util.MultiMap.prototype.forEach=function(a){for(var b in this.map_)a(b,this.map_[b])};shaka.util.MultiMap.prototype.size=function(){return Object.keys(this.map_).length};shaka.util.FakeEventTarget=function(){this.listeners_=new shaka.util.MultiMap;this.dispatchTarget=this};shaka.util.FakeEventTarget.prototype.addEventListener=function(a,b,c){this.listeners_&&this.listeners_.push(a,b)};shaka.util.FakeEventTarget.prototype.listenToAllEvents=function(a){this.addEventListener(shaka.util.FakeEventTarget.ALL_EVENTS_,a)};shaka.util.FakeEventTarget.prototype.removeEventListener=function(a,b,c){this.listeners_&&this.listeners_.remove(a,b)};
|
|
152
|
+
shaka.util.FakeEventTarget.prototype.dispatchEvent=function(a){goog.asserts.assert(a instanceof shaka.util.FakeEvent,"FakeEventTarget can only dispatch FakeEvents!");if(!this.listeners_)return!0;var b=this.listeners_.get(a.type)||[],c=this.listeners_.get(shaka.util.FakeEventTarget.ALL_EVENTS_);c&&(b=b.concat(c));b=$jscomp.makeIterator(b);for(c=b.next();!c.done;c=b.next()){c=c.value;a.target=this.dispatchTarget;a.currentTarget=this.dispatchTarget;try{c.handleEvent?c.handleEvent(a):c.call(this,a)}catch(d){shaka.log.error("Uncaught exception in event handler",
|
|
153
|
+
d,d?d.message:null,d?d.stack:null)}if(a.stopped)break}return a.defaultPrevented};shaka.util.FakeEventTarget.prototype.release=function(){this.listeners_=null};shaka.util.FakeEventTarget.ALL_EVENTS_="All";shaka.util.Iterables=function(){};shaka.util.Iterables.map=function(a,b){for(var c=[],d=$jscomp.makeIterator(a),e=d.next();!e.done;e=d.next())c.push(b(e.value));return c};shaka.util.Iterables.every=function(a,b){for(var c=$jscomp.makeIterator(a),d=c.next();!d.done;d=c.next())if(!b(d.value))return!1;return!0};shaka.util.Iterables.some=function(a,b){for(var c=$jscomp.makeIterator(a),d=c.next();!d.done;d=c.next())if(b(d.value))return!0;return!1};
|
|
154
154
|
shaka.util.Iterables.filter=function(a,b){for(var c=[],d=$jscomp.makeIterator(a),e=d.next();!e.done;e=d.next())e=e.value,b(e)&&c.push(e);return c};shaka.util.Iterables.range=function $jscomp$generator$function(a){var c;return $jscomp.generator.createGenerator($jscomp$generator$function,function(d){1==d.nextAddress&&(c=0);if(3!=d.nextAddress)return c<a?d.yield(c,3):d.jumpTo(0);c++;return d.jumpTo(2)})};
|
|
155
155
|
shaka.util.Iterables.enumerate=function $jscomp$generator$function(a){var c,d,e,f,g,h;return $jscomp.generator.createGenerator($jscomp$generator$function,function(k){1==k.nextAddress&&(c=-1,e=d=void 0,f=$jscomp.makeIterator(a),g=f.next());if(5!=k.nextAddress){if(g.done)return-1==c?k.jumpTo(0):k.yield({i:c,prev:d,item:e,next:void 0},0);h=g.value;return 0<=c?k.yield({i:c,item:e,prev:d,next:h},5):k.jumpTo(5)}c++;d=e;e=h;g=f.next();return k.jumpTo(2)})};/*
|
|
156
156
|
@license
|
|
@@ -209,19 +209,18 @@ shaka.util.LanguageUtils.isoMap_=new Map([["aar","aa"],["abk","ab"],["afr","af"]
|
|
|
209
209
|
"hy"],["ibo","ig"],["ice","is"],["ido","io"],["iii","ii"],["iku","iu"],["ile","ie"],["ina","ia"],["ind","id"],["ipk","ik"],["isl","is"],["ita","it"],["jav","jv"],["jpn","ja"],["kal","kl"],["kan","kn"],["kas","ks"],["kat","ka"],["kau","kr"],["kaz","kk"],["khm","km"],["kik","ki"],["kin","rw"],["kir","ky"],["kom","kv"],["kon","kg"],["kor","ko"],["kua","kj"],["kur","ku"],["lao","lo"],["lat","la"],["lav","lv"],["lim","li"],["lin","ln"],["lit","lt"],["ltz","lb"],["lub","lu"],["lug","lg"],["mac","mk"],["mah",
|
|
210
210
|
"mh"],["mal","ml"],["mao","mi"],["mar","mr"],["may","ms"],["mkd","mk"],["mlg","mg"],["mlt","mt"],["mon","mn"],["mri","mi"],["msa","ms"],["mya","my"],["nau","na"],["nav","nv"],["nbl","nr"],["nde","nd"],["ndo","ng"],["nep","ne"],["nld","nl"],["nno","nn"],["nob","nb"],["nor","no"],["nya","ny"],["oci","oc"],["oji","oj"],["ori","or"],["orm","om"],["oss","os"],["pan","pa"],["per","fa"],["pli","pi"],["pol","pl"],["por","pt"],["pus","ps"],["que","qu"],["roh","rm"],["ron","ro"],["rum","ro"],["run","rn"],["rus",
|
|
211
211
|
"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",
|
|
212
|
-
"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.ui={};shaka.ui.Localization=function(a){this.fallbackLocale_=shaka.util.LanguageUtils.normalize(a);this.currentMap_=new Map;this.currentLocales_=new Set;this.localizations_=new Map
|
|
213
|
-
shaka.ui.Localization.prototype.changeLocale=function(a){var b=this,c=shaka.ui.Localization;this.currentLocales_.clear();a=$jscomp.makeIterator(a);for(var d=a.next();!d.done;d=a.next())this.currentLocales_.add(shaka.util.LanguageUtils.normalize(d.value));this.updateCurrentMap_();a=shaka.util.Iterables.filter(this.currentLocales_,function(e){return!b.localizations_.has(e)});a.length&&this.
|
|
214
|
-
function(e){return b.localizations_.has(e)});a=(new Map).set("locales",a.length?a:[this.fallbackLocale_]);this.
|
|
215
|
-
shaka.ui.Localization.prototype.insert=function(a,b,c){var d=shaka.ui.Localization,e=shaka.ui.Localization.ConflictResolution,f=shaka.util.FakeEvent;a=shaka.util.LanguageUtils.normalize(a);void 0===c&&(c=e.USE_NEW);var g=this.localizations_.get(a)||new Map;b.forEach(function(h,k){g.has(k)&&c!=e.USE_NEW||g.set(k,h)});this.localizations_.set(a,g);this.updateCurrentMap_();this.
|
|
216
|
-
shaka.ui.Localization.prototype.resolveDictionary=function(a){for(var b=$jscomp.makeIterator(a.keys()),c=b.next();!c.done;c=b.next())c=c.value,a.set(c,this.resolve(c))};shaka.ui.Localization.prototype.resolve=function(a){var b=shaka.ui.Localization,c=shaka.util.FakeEvent,d=this.currentMap_.get(a);if(d)return d;a=(new Map).set("locales",Array.from(this.currentLocales_)).set("missing",a);this.
|
|
212
|
+
"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.ui={};shaka.ui.Localization=function(a){shaka.util.FakeEventTarget.call(this);this.fallbackLocale_=shaka.util.LanguageUtils.normalize(a);this.currentMap_=new Map;this.currentLocales_=new Set;this.localizations_=new Map};$jscomp.inherits(shaka.ui.Localization,shaka.util.FakeEventTarget);shaka.ui.Localization.prototype.release=function(){shaka.util.FakeEventTarget.prototype.release.call(this)};
|
|
213
|
+
shaka.ui.Localization.prototype.changeLocale=function(a){var b=this,c=shaka.ui.Localization;this.currentLocales_.clear();a=$jscomp.makeIterator(a);for(var d=a.next();!d.done;d=a.next())this.currentLocales_.add(shaka.util.LanguageUtils.normalize(d.value));this.updateCurrentMap_();a=shaka.util.Iterables.filter(this.currentLocales_,function(e){return!b.localizations_.has(e)});a.length&&this.dispatchEvent(new shaka.util.FakeEvent(c.UNKNOWN_LOCALES,(new Map).set("locales",a)));a=shaka.util.Iterables.filter(this.currentLocales_,
|
|
214
|
+
function(e){return b.localizations_.has(e)});a=(new Map).set("locales",a.length?a:[this.fallbackLocale_]);this.dispatchEvent(new shaka.util.FakeEvent(c.LOCALE_CHANGED,a))};
|
|
215
|
+
shaka.ui.Localization.prototype.insert=function(a,b,c){var d=shaka.ui.Localization,e=shaka.ui.Localization.ConflictResolution,f=shaka.util.FakeEvent;a=shaka.util.LanguageUtils.normalize(a);void 0===c&&(c=e.USE_NEW);var g=this.localizations_.get(a)||new Map;b.forEach(function(h,k){g.has(k)&&c!=e.USE_NEW||g.set(k,h)});this.localizations_.set(a,g);this.updateCurrentMap_();this.dispatchEvent(new f(d.LOCALE_UPDATED));return this};
|
|
216
|
+
shaka.ui.Localization.prototype.resolveDictionary=function(a){for(var b=$jscomp.makeIterator(a.keys()),c=b.next();!c.done;c=b.next())c=c.value,a.set(c,this.resolve(c))};shaka.ui.Localization.prototype.resolve=function(a){var b=shaka.ui.Localization,c=shaka.util.FakeEvent,d=this.currentMap_.get(a);if(d)return d;a=(new Map).set("locales",Array.from(this.currentLocales_)).set("missing",a);this.dispatchEvent(new c(b.UNKNOWN_LOCALIZATION,a));return""};
|
|
217
217
|
shaka.ui.Localization.prototype.updateCurrentMap_=function(){for(var a=this,b=shaka.util.LanguageUtils,c=this.localizations_,d=this.fallbackLocale_,e=this.currentLocales_,f=new Set,g={},h=$jscomp.makeIterator(e),k=h.next();!k.done;g={$jscomp$loop$prop$locale$630:g.$jscomp$loop$prop$locale$630},k=h.next()){g.$jscomp$loop$prop$locale$630=k.value;f.add(g.$jscomp$loop$prop$locale$630);f.add(b.getBase(g.$jscomp$loop$prop$locale$630));k=shaka.util.Iterables.filter(c.keys(),function(m){return function(n){return b.areSiblings(n,
|
|
218
218
|
m.$jscomp$loop$prop$locale$630)}}(g));k.sort();var l=$jscomp.makeIterator(k);for(k=l.next();!k.done;k=l.next())f.add(k.value);k=shaka.util.Iterables.filter(c.keys(),function(m){return function(n){return b.getBase(n)==m.$jscomp$loop$prop$locale$630}}(g));k.sort();l=$jscomp.makeIterator(k);for(k=l.next();!k.done;k=l.next())f.add(k.value)}f.add(d);d=[];f=$jscomp.makeIterator(f);for(k=f.next();!k.done;k=f.next())(k=c.get(k.value))&&d.push(k);d.reverse();this.currentMap_.clear();c=$jscomp.makeIterator(d);
|
|
219
|
-
for(k=c.next();!k.done;k=c.next())k.value.forEach(function(m,n){a.currentMap_.set(n,m)});c=this.currentMap_.keys();f=new Set;d=$jscomp.makeIterator(this.currentLocales_);for(k=d.next();!k.done;k=d.next())k=this.localizations_.get(k.value)||new Map,shaka.ui.Localization.findMissingKeys_(k,c,f);0<f.size&&(e=(new Map).set("locales",Array.from(e)).set("missing",Array.from(f)),this.
|
|
219
|
+
for(k=c.next();!k.done;k=c.next())k.value.forEach(function(m,n){a.currentMap_.set(n,m)});c=this.currentMap_.keys();f=new Set;d=$jscomp.makeIterator(this.currentLocales_);for(k=d.next();!k.done;k=d.next())k=this.localizations_.get(k.value)||new Map,shaka.ui.Localization.findMissingKeys_(k,c,f);0<f.size&&(e=(new Map).set("locales",Array.from(e)).set("missing",Array.from(f)),this.dispatchEvent(new shaka.util.FakeEvent(shaka.ui.Localization.MISSING_LOCALIZATIONS,e)))};
|
|
220
220
|
shaka.ui.Localization.findMissingKeys_=function(a,b,c){b=$jscomp.makeIterator(b);for(var d=b.next();!d.done;d=b.next())d=d.value,a.get(d)||c.add(d)};goog.exportSymbol("shaka.ui.Localization",shaka.ui.Localization);goog.exportProperty(shaka.ui.Localization.prototype,"resolve",shaka.ui.Localization.prototype.resolve);goog.exportProperty(shaka.ui.Localization.prototype,"resolveDictionary",shaka.ui.Localization.prototype.resolveDictionary);
|
|
221
|
-
goog.exportProperty(shaka.ui.Localization.prototype,"insert",shaka.ui.Localization.prototype.insert);goog.exportProperty(shaka.ui.Localization.prototype,"changeLocale",shaka.ui.Localization.prototype.changeLocale);goog.exportProperty(shaka.ui.Localization.prototype,"
|
|
222
|
-
goog.exportProperty(shaka.ui.Localization
|
|
223
|
-
|
|
224
|
-
goog.exportProperty(shaka.ui.Localization,"LOCALE_UPDATED",shaka.ui.Localization.LOCALE_UPDATED);shaka.ui.Locales={};
|
|
221
|
+
goog.exportProperty(shaka.ui.Localization.prototype,"insert",shaka.ui.Localization.prototype.insert);goog.exportProperty(shaka.ui.Localization.prototype,"changeLocale",shaka.ui.Localization.prototype.changeLocale);goog.exportProperty(shaka.ui.Localization.prototype,"release",shaka.ui.Localization.prototype.release);shaka.ui.Localization.ConflictResolution={USE_OLD:0,USE_NEW:1};goog.exportProperty(shaka.ui.Localization,"ConflictResolution",shaka.ui.Localization.ConflictResolution);
|
|
222
|
+
shaka.ui.Localization.UNKNOWN_LOCALES="unknown-locales";goog.exportProperty(shaka.ui.Localization,"UNKNOWN_LOCALES",shaka.ui.Localization.UNKNOWN_LOCALES);shaka.ui.Localization.UNKNOWN_LOCALIZATION="unknown-localization";goog.exportProperty(shaka.ui.Localization,"UNKNOWN_LOCALIZATION",shaka.ui.Localization.UNKNOWN_LOCALIZATION);shaka.ui.Localization.MISSING_LOCALIZATIONS="missing-localizations";goog.exportProperty(shaka.ui.Localization,"MISSING_LOCALIZATIONS",shaka.ui.Localization.MISSING_LOCALIZATIONS);
|
|
223
|
+
shaka.ui.Localization.LOCALE_CHANGED="locale-changed";goog.exportProperty(shaka.ui.Localization,"LOCALE_CHANGED",shaka.ui.Localization.LOCALE_CHANGED);shaka.ui.Localization.LOCALE_UPDATED="locale-updated";goog.exportProperty(shaka.ui.Localization,"LOCALE_UPDATED",shaka.ui.Localization.LOCALE_UPDATED);shaka.ui.Locales={};
|
|
225
224
|
shaka.ui.Locales.addTo=function(a){a.insert("ar",new Map([["AD_DURATION","\u0645\u062f\u0629 \u0627\u0644\u0625\u0639\u0644\u0627\u0646"],["AD_PROGRESS","\u0627\u0644\u0625\u0639\u0644\u0627\u0646 [AD_ON] \u0645\u0646 [NUM_ADS]"],["AD_TIME","\u0627\u0644\u0625\u0639\u0644\u0627\u0646: [AD_TIME]"],["AUTO_QUALITY","\u062a\u0644\u0642\u0627\u0626\u064a"],["BACK","\u0631\u062c\u0648\u0639"],["CAPTIONS","\u0627\u0644\u062a\u0631\u062c\u0645\u0629 \u0648\u0627\u0644\u0634\u0631\u062d"],["CAST","\u0625\u0631\u0633\u0627\u0644..."],
|
|
226
225
|
["ENTER_LOOP_MODE","\u062a\u0643\u0631\u0627\u0631 \u0627\u0644\u0641\u064a\u062f\u064a\u0648 \u0627\u0644\u062d\u0627\u0644\u064a"],["ENTER_PICTURE_IN_PICTURE",'\u0627\u0644\u062f\u062e\u0648\u0644 \u0641\u064a \u0648\u0636\u0639 "\u0646\u0627\u0641\u0630\u0629 \u0636\u0645\u0646 \u0646\u0627\u0641\u0630\u0629"'],["EXIT_FULL_SCREEN","\u0625\u0646\u0647\u0627\u0621 \u0648\u0636\u0639 \u0645\u0644\u0621 \u0627\u0644\u0634\u0627\u0634\u0629"],["EXIT_LOOP_MODE","\u0625\u064a\u0642\u0627\u0641 \u062a\u0643\u0631\u0627\u0631 \u0627\u0644\u0641\u064a\u062f\u064a\u0648 \u0627\u0644\u062d\u0627\u0644\u064a"],
|
|
227
226
|
["EXIT_PICTURE_IN_PICTURE",'\u0627\u0644\u062e\u0631\u0648\u062c \u0645\u0646 \u0648\u0636\u0639 "\u0646\u0627\u0641\u0630\u0629 \u0636\u0645\u0646 \u0646\u0627\u0641\u0630\u0629"'],["FAST_FORWARD","\u062a\u0642\u062f\u064a\u0645 \u0633\u0631\u064a\u0639"],["FULL_SCREEN","\u0645\u0644\u0621 \u0627\u0644\u0634\u0627\u0634\u0629"],["LANGUAGE","\u0627\u0644\u0644\u063a\u0629"],["LIVE","\u0645\u0628\u0627\u0634\u0631"],["LOOP","\u062a\u0643\u0631\u0627\u0631"],["MORE_SETTINGS","\u0645\u0632\u064a\u062f \u0645\u0646 \u0627\u0644\u0625\u0639\u062f\u0627\u062f\u0627\u062a"],
|
|
@@ -281,8 +280,8 @@ shaka.ui.Locales.addTo=function(a){a.insert("ar",new Map([["AD_DURATION","\u0645
|
|
|
281
280
|
"\u5ee3\u544a [AD_ON]/[NUM_ADS]"],["AD_TIME","\u5ee3\u544a\uff1a[AD_TIME]"],["AUTO_QUALITY","\u81ea\u52d5"],["BACK","\u8fd4\u56de"],["CAPTIONS","\u5b57\u5e55"],["CAST","\u6295\u653e..."],["ENTER_LOOP_MODE","\u5faa\u74b0\u64ad\u653e\u76ee\u524d\u7684\u5f71\u7247"],["ENTER_PICTURE_IN_PICTURE","\u9032\u5165\u5b50\u6bcd\u756b\u9762"],["EXIT_FULL_SCREEN","\u9000\u51fa\u5168\u87a2\u5e55\u6a21\u5f0f"],["EXIT_LOOP_MODE","\u505c\u6b62\u5faa\u74b0\u64ad\u653e\u76ee\u524d\u7684\u5f71\u7247"],["EXIT_PICTURE_IN_PICTURE",
|
|
282
281
|
"\u96e2\u958b\u5b50\u6bcd\u756b\u9762"],["FAST_FORWARD","\u5feb\u8f49"],["FULL_SCREEN","\u5168\u87a2\u5e55"],["LANGUAGE","\u8a9e\u8a00"],["LIVE","\u76f4\u64ad"],["LOOP","\u5faa\u74b0\u64ad\u653e"],["MORE_SETTINGS","\u986f\u793a\u66f4\u591a\u8a2d\u5b9a"],["MULTIPLE_LANGUAGES","\u591a\u7a2e\u8a9e\u8a00"],["MUTE","\u975c\u97f3"],["NOT_APPLICABLE","\u4e0d\u9069\u7528"],["OFF","\u95dc\u9589"],["ON","\u958b\u555f"],["PAUSE","\u66ab\u505c"],["PICTURE_IN_PICTURE","\u5b50\u6bcd\u756b\u9762"],["PLAY","\u64ad\u653e"],
|
|
283
282
|
["PLAYBACK_RATE","\u64ad\u653e\u901f\u5ea6"],["RESOLUTION","\u89e3\u6790\u5ea6"],["REWIND","\u5012\u8f49"],["SEEK","\u641c\u5c0b"],["SKIP_AD","\u7565\u904e\u5ee3\u544a"],["SKIP_TO_LIVE","\u8df3\u81f3\u5f53\u524d\u76f4\u64ad"],["UNDETERMINED_LANGUAGE","\u4e0d\u660e"],["UNMUTE","\u53d6\u6d88\u975c\u97f3"],["UNRECOGNIZED_LANGUAGE","\u7121\u6cd5\u8fa8\u8b58"],["VOLUME","\u97f3\u91cf"]]))};
|
|
284
|
-
shaka.ui.Locales.Ids={
|
|
285
|
-
|
|
283
|
+
shaka.ui.Locales.Ids={LIVE:"LIVE",BACK:"BACK",EXIT_FULL_SCREEN:"EXIT_FULL_SCREEN",MUTE:"MUTE",REPLAY:"REPLAY",MORE_SETTINGS:"MORE_SETTINGS",SUBTITLE_FORCED:"SUBTITLE_FORCED",OFF:"OFF",UNRECOGNIZED_LANGUAGE:"UNRECOGNIZED_LANGUAGE",UNMUTE:"UNMUTE",CAST:"CAST",PICTURE_IN_PICTURE:"PICTURE_IN_PICTURE",FULL_SCREEN:"FULL_SCREEN",ENTER_PICTURE_IN_PICTURE:"ENTER_PICTURE_IN_PICTURE",ON:"ON",CAPTIONS:"CAPTIONS",SEEK:"SEEK",AD_DURATION:"AD_DURATION",EXIT_PICTURE_IN_PICTURE:"EXIT_PICTURE_IN_PICTURE",PLAYBACK_RATE:"PLAYBACK_RATE",
|
|
284
|
+
AD_TIME:"AD_TIME",AUTO_QUALITY:"AUTO_QUALITY",AD_PROGRESS:"AD_PROGRESS",PLAY:"PLAY",RESOLUTION:"RESOLUTION",SKIP_TO_LIVE:"SKIP_TO_LIVE",UNDETERMINED_LANGUAGE:"UNDETERMINED_LANGUAGE",NOT_APPLICABLE:"NOT_APPLICABLE",AIRPLAY:"AIRPLAY",LANGUAGE:"LANGUAGE",EXIT_LOOP_MODE:"EXIT_LOOP_MODE",ENTER_LOOP_MODE:"ENTER_LOOP_MODE",REWIND:"REWIND",SKIP_AD:"SKIP_AD",VOLUME:"VOLUME",FAST_FORWARD:"FAST_FORWARD",PAUSE:"PAUSE",LOOP:"LOOP",MULTIPLE_LANGUAGES:"MULTIPLE_LANGUAGES"};shaka.abr={};shaka.abr.Ewma=function(a){goog.asserts.assert(0<a,"expected halfLife to be positive");this.alpha_=Math.exp(Math.log(.5)/a);this.totalWeight_=this.estimate_=0};shaka.abr.Ewma.prototype.sample=function(a,b){var c=Math.pow(this.alpha_,a);c=b*(1-c)+c*this.estimate_;isNaN(c)||(this.estimate_=c,this.totalWeight_+=a)};shaka.abr.Ewma.prototype.getEstimate=function(){return this.estimate_/(1-Math.pow(this.alpha_,this.totalWeight_))};shaka.abr.EwmaBandwidthEstimator=function(){this.fast_=new shaka.abr.Ewma(2);this.slow_=new shaka.abr.Ewma(5);this.bytesSampled_=0;this.minTotalBytes_=128E3;this.minBytes_=16E3};shaka.abr.EwmaBandwidthEstimator.prototype.sample=function(a,b){if(!(b<this.minBytes_)){var c=8E3*b/a,d=a/1E3;this.bytesSampled_+=b;this.fast_.sample(d,c);this.slow_.sample(d,c)}};
|
|
286
285
|
shaka.abr.EwmaBandwidthEstimator.prototype.getBandwidthEstimate=function(a){return this.bytesSampled_<this.minTotalBytes_?a:Math.min(this.fast_.getEstimate(),this.slow_.getEstimate())};shaka.abr.EwmaBandwidthEstimator.prototype.hasGoodEstimate=function(){return this.bytesSampled_>=this.minTotalBytes_};shaka.util.BufferUtils=function(){};shaka.util.BufferUtils.equal=function(a,b){var c=shaka.util.BufferUtils;if(!a&&!b)return!0;if(!a||!b||a.byteLength!=b.byteLength)return!1;if(c.unsafeGetArrayBuffer_(a)==c.unsafeGetArrayBuffer_(b)&&(a.byteOffset||0)==(b.byteOffset||0))return!0;c=shaka.util.BufferUtils.toUint8(a);for(var d=shaka.util.BufferUtils.toUint8(b),e=$jscomp.makeIterator(shaka.util.Iterables.range(a.byteLength)),f=e.next();!f.done;f=e.next())if(f=f.value,c[f]!=d[f])return!1;return!0};
|
|
287
286
|
shaka.util.BufferUtils.unsafeGetArrayBuffer_=function(a){return a instanceof ArrayBuffer?a:a.buffer};shaka.util.BufferUtils.toArrayBuffer=function(a){return a instanceof ArrayBuffer?a:0==a.byteOffset&&a.byteLength==a.buffer.byteLength?a.buffer:(new Uint8Array(a)).buffer};shaka.util.BufferUtils.toUint8=function(a,b,c){c=void 0===c?Infinity:c;return shaka.util.BufferUtils.view_(a,void 0===b?0:b,c,Uint8Array)};
|
|
288
287
|
shaka.util.BufferUtils.toDataView=function(a,b,c){c=void 0===c?Infinity:c;return shaka.util.BufferUtils.view_(a,void 0===b?0:b,c,DataView)};shaka.util.BufferUtils.view_=function(a,b,c,d){var e=shaka.util.BufferUtils.unsafeGetArrayBuffer_(a),f=(a.byteOffset||0)+a.byteLength;a=Math.max(0,Math.min((a.byteOffset||0)+b,f));return new d(e,a,Math.min(a+Math.max(c,0),f)-a)};goog.exportSymbol("shaka.util.BufferUtils",shaka.util.BufferUtils);goog.exportProperty(shaka.util.BufferUtils,"toDataView",shaka.util.BufferUtils.toDataView);
|
|
@@ -455,7 +454,7 @@ shaka.text.TextEngine.prototype.storeAndAppendClosedCaptions=function(a,b,c,d){v
|
|
|
455
454
|
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_))};
|
|
456
455
|
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);
|
|
457
456
|
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.Destroyer=function(a){this.destroyed_=!1;this.waitOnDestroy_=new shaka.util.PublicPromise;this.onDestroy_=a};shaka.util.Destroyer.prototype.destroyed=function(){return this.destroyed_};shaka.util.Destroyer.prototype.destroy=function(){var a=this;if(this.destroyed_)return this.waitOnDestroy_;this.destroyed_=!0;return this.onDestroy_().then(function(){a.waitOnDestroy_.resolve()},function(){a.waitOnDestroy_.resolve()})};
|
|
458
|
-
shaka.util.Destroyer.prototype.ensureNotDestroyed=function(a){if(this.destroyed_){if(a instanceof shaka.util.Error&&a.code==shaka.util.Error.Code.OBJECT_DESTROYED)throw a;throw shaka.util.Destroyer.destroyedError(a);}};shaka.util.Destroyer.destroyedError=function(a){return new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.OBJECT_DESTROYED,a)};shaka.util.
|
|
457
|
+
shaka.util.Destroyer.prototype.ensureNotDestroyed=function(a){if(this.destroyed_){if(a instanceof shaka.util.Error&&a.code==shaka.util.Error.Code.OBJECT_DESTROYED)throw a;throw shaka.util.Destroyer.destroyedError(a);}};shaka.util.Destroyer.destroyedError=function(a){return new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.OBJECT_DESTROYED,a)};shaka.util.EventManager=function(){this.bindingMap_=new shaka.util.MultiMap};shaka.util.EventManager.prototype.release=function(){this.removeAll();this.bindingMap_=null};shaka.util.EventManager.prototype.listen=function(a,b,c,d){this.bindingMap_&&(a=new shaka.util.EventManager.Binding_(a,b,c,d),this.bindingMap_.push(b,a))};shaka.util.EventManager.prototype.listenOnce=function(a,b,c,d){var e=this,f=function(g){e.unlisten(a,b,f);c(g)};this.listen(a,b,f,d)};
|
|
459
458
|
shaka.util.EventManager.prototype.unlisten=function(a,b,c){if(this.bindingMap_){var d=this.bindingMap_.get(b)||[];d=$jscomp.makeIterator(d);for(var e=d.next();!e.done;e=d.next())e=e.value,e.target!=a||c!=e.listener&&c||(e.unlisten(),this.bindingMap_.remove(b,e))}};shaka.util.EventManager.prototype.removeAll=function(){if(this.bindingMap_){var a=this.bindingMap_.getAll();a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next())b.value.unlisten();this.bindingMap_.clear()}};
|
|
460
459
|
goog.exportSymbol("shaka.util.EventManager",shaka.util.EventManager);goog.exportProperty(shaka.util.EventManager.prototype,"removeAll",shaka.util.EventManager.prototype.removeAll);goog.exportProperty(shaka.util.EventManager.prototype,"unlisten",shaka.util.EventManager.prototype.unlisten);goog.exportProperty(shaka.util.EventManager.prototype,"listenOnce",shaka.util.EventManager.prototype.listenOnce);goog.exportProperty(shaka.util.EventManager.prototype,"listen",shaka.util.EventManager.prototype.listen);
|
|
461
460
|
goog.exportProperty(shaka.util.EventManager.prototype,"release",shaka.util.EventManager.prototype.release);shaka.util.EventManager.Binding_=function(a,b,c,d){this.target=a;this.type=b;this.listener=c;this.options=shaka.util.EventManager.Binding_.convertOptions_(a,d);this.target.addEventListener(b,c,this.options)};
|
|
@@ -577,7 +576,7 @@ shaka.util.ObjectUtils.shallowCloneObject=function(a){var b={},c;for(c in a)b[c]
|
|
|
577
576
|
shaka.net.NetworkingEngine.registerScheme=function(a,b,c,d){d=void 0===d?!1:d;goog.asserts.assert(void 0==c||0<c,"explicit priority must be > 0");c=c||shaka.net.NetworkingEngine.PluginPriority.APPLICATION;var e=shaka.net.NetworkingEngine.schemes_[a];if(!e||c>=e.priority)shaka.net.NetworkingEngine.schemes_[a]={priority:c,plugin:b,progressSupport:d}};shaka.net.NetworkingEngine.unregisterScheme=function(a){delete shaka.net.NetworkingEngine.schemes_[a]};
|
|
578
577
|
shaka.net.NetworkingEngine.prototype.registerRequestFilter=function(a){this.requestFilters_.add(a)};shaka.net.NetworkingEngine.prototype.unregisterRequestFilter=function(a){this.requestFilters_["delete"](a)};shaka.net.NetworkingEngine.prototype.clearAllRequestFilters=function(){this.requestFilters_.clear()};shaka.net.NetworkingEngine.prototype.registerResponseFilter=function(a){this.responseFilters_.add(a)};shaka.net.NetworkingEngine.prototype.unregisterResponseFilter=function(a){this.responseFilters_["delete"](a)};
|
|
579
578
|
shaka.net.NetworkingEngine.prototype.clearAllResponseFilters=function(){this.responseFilters_.clear()};shaka.net.NetworkingEngine.defaultRetryParameters=function(){return shaka.net.Backoff.defaultRetryParameters()};shaka.net.NetworkingEngine.makeRequest=function(a,b,c){return{uris:a,method:"GET",body:null,headers:{},allowCrossSiteCredentials:!1,retryParameters:b,licenseRequestType:null,sessionId:null,streamDataCallback:void 0===c?null:c}};
|
|
580
|
-
shaka.net.NetworkingEngine.prototype.destroy=function(){this.destroyed_=!0;this.requestFilters_.clear();this.responseFilters_.clear();return this.operationManager_.destroy()};
|
|
579
|
+
shaka.net.NetworkingEngine.prototype.destroy=function(){this.destroyed_=!0;this.requestFilters_.clear();this.responseFilters_.clear();shaka.util.FakeEventTarget.prototype.release.call(this);return this.operationManager_.destroy()};
|
|
581
580
|
shaka.net.NetworkingEngine.prototype.request=function(a,b){var c=this,d=shaka.util.ObjectUtils,e=new shaka.net.NetworkingEngine.NumBytesRemainingClass;if(this.destroyed_)return d=Promise.reject(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.OPERATION_ABORTED)),d["catch"](function(){}),new shaka.net.NetworkingEngine.PendingRequest(d,function(){return Promise.resolve()},e);goog.asserts.assert(b.uris&&b.uris.length,"Request without URIs!");
|
|
582
581
|
b.method=b.method||"GET";b.headers=b.headers||{};b.retryParameters=b.retryParameters?d.cloneObject(b.retryParameters):shaka.net.NetworkingEngine.defaultRetryParameters();b.uris=d.cloneObject(b.uris);d=this.filterRequest_(a,b);var f=d.chain(function(){return c.makeRequestWithRetry_(a,b,e)}),g=f.chain(function(n){return c.filterResponse_(a,n)}),h=Date.now(),k=0;d.promise.then(function(){k=Date.now()-h},function(){});var l=0;f.promise.then(function(){l=Date.now()},function(){});var m=g.chain(function(n){var p=
|
|
583
582
|
Date.now()-l,q=n.response;q.timeMs+=k;q.timeMs+=p;if(!n.gotProgress&&c.onProgressUpdated_&&!q.fromCache&&a==shaka.net.NetworkingEngine.RequestType.SEGMENT)c.onProgressUpdated_(q.timeMs,q.data.byteLength);return q},function(n){n&&(goog.asserts.assert(n instanceof shaka.util.Error,"Wrong error type"),n.severity=shaka.util.Error.Severity.CRITICAL);throw n;});d=new shaka.net.NetworkingEngine.PendingRequest(m.promise,function(){return m.abort()},e);this.operationManager_.manage(d);return d};
|
|
@@ -767,12 +766,13 @@ goog.exportProperty(shaka.media.MetaSegmentIndex.prototype,"get",shaka.media.Met
|
|
|
767
766
|
shaka.media.PlayRateController.prototype.set=function(a){goog.asserts.assert(0!=a,"Should never set rate of 0 explicitly!");this.rate_=a;this.apply_()};shaka.media.PlayRateController.prototype.getRealRate=function(){return this.rate_};shaka.media.PlayRateController.prototype.getDefaultRate=function(){return this.harness_.getDefaultRate()};
|
|
768
767
|
shaka.media.PlayRateController.prototype.apply_=function(){this.timer_.stop();var a=this.calculateCurrentRate_();shaka.log.v1("Changing effective playback rate to",a);if(0<=a)try{this.applyRate_(a);return}catch(b){}this.timer_.tickEvery(this.pollRate_);this.applyRate_(0)};shaka.media.PlayRateController.prototype.calculateCurrentRate_=function(){return this.isBuffering_?0:this.rate_};
|
|
769
768
|
shaka.media.PlayRateController.prototype.applyRate_=function(a){var b=this.harness_.getRate();b!=a&&this.harness_.setRate(a);return b!=a};shaka.media.IPlayheadObserver=function(){};shaka.media.IPlayheadObserver.prototype.poll=function(a,b){};shaka.media.PlayheadObserverManager=function(a){var b=this;this.mediaElement_=a;this.observers_=new Set;this.pollingLoop_=(new shaka.util.Timer(function(){b.pollAllObservers_(!1)})).tickEvery(.25)};shaka.media.PlayheadObserverManager.prototype.release=function(){this.pollingLoop_.stop();for(var a=$jscomp.makeIterator(this.observers_),b=a.next();!b.done;b=a.next())b.value.release();this.observers_.clear()};
|
|
770
|
-
shaka.media.PlayheadObserverManager.prototype.manage=function(a){this.observers_.add(a)};shaka.media.PlayheadObserverManager.prototype.notifyOfSeek=function(){this.pollAllObservers_(!0)};shaka.media.PlayheadObserverManager.prototype.pollAllObservers_=function(a){for(var b=$jscomp.makeIterator(this.observers_),c=b.next();!c.done;c=b.next())c.value.poll(this.mediaElement_.currentTime,a)};shaka.media.RegionTimeline=function(a){var b=this;this.
|
|
771
|
-
shaka.media.RegionTimeline.prototype.addRegion=function(a){null==this.findSimilarRegion_(a)&&(this.regions_.add(a),this.
|
|
772
|
-
shaka.media.RegionTimeline.prototype.findSimilarRegion_=function(a){for(var b=$jscomp.makeIterator(this.regions_),c=b.next();!c.done;c=b.next())if(c=c.value,c.schemeIdUri==a.schemeIdUri&&c.id==a.id&&c.startTime==a.startTime&&c.endTime==a.endTime)return c;return null};shaka.media.RegionTimeline.prototype.regions=function(){return this.regions_};shaka.media.RegionTimeline.REGION_FILTER_INTERVAL=2;shaka.media.RegionObserver=function(a){var b=this;this.timeline_=a;this.oldPosition_=new Map;
|
|
773
|
-
|
|
769
|
+
shaka.media.PlayheadObserverManager.prototype.manage=function(a){this.observers_.add(a)};shaka.media.PlayheadObserverManager.prototype.notifyOfSeek=function(){this.pollAllObservers_(!0)};shaka.media.PlayheadObserverManager.prototype.pollAllObservers_=function(a){for(var b=$jscomp.makeIterator(this.observers_),c=b.next();!c.done;c=b.next())c.value.poll(this.mediaElement_.currentTime,a)};shaka.media.RegionTimeline=function(a){shaka.util.FakeEventTarget.call(this);var b=this;this.regions_=new Set;this.getSeekRange_=a;this.filterTimer_=(new shaka.util.Timer(function(){b.filterBySeekRange_()})).tickEvery(shaka.media.RegionTimeline.REGION_FILTER_INTERVAL)};$jscomp.inherits(shaka.media.RegionTimeline,shaka.util.FakeEventTarget);shaka.media.RegionTimeline.prototype.release=function(){this.regions_.clear();this.filterTimer_.stop();shaka.util.FakeEventTarget.prototype.release.call(this)};
|
|
770
|
+
shaka.media.RegionTimeline.prototype.addRegion=function(a){null==this.findSimilarRegion_(a)&&(this.regions_.add(a),a=new shaka.util.FakeEvent("regionadd",new Map([["region",a]])),this.dispatchEvent(a))};shaka.media.RegionTimeline.prototype.filterBySeekRange_=function(){for(var a=this.getSeekRange_(),b=$jscomp.makeIterator(this.regions_),c=b.next();!c.done;c=b.next())c=c.value,c.endTime<a.start&&(this.regions_["delete"](c),c=new shaka.util.FakeEvent("regionremove",new Map([["region",c]])),this.dispatchEvent(c))};
|
|
771
|
+
shaka.media.RegionTimeline.prototype.findSimilarRegion_=function(a){for(var b=$jscomp.makeIterator(this.regions_),c=b.next();!c.done;c=b.next())if(c=c.value,c.schemeIdUri==a.schemeIdUri&&c.id==a.id&&c.startTime==a.startTime&&c.endTime==a.endTime)return c;return null};shaka.media.RegionTimeline.prototype.regions=function(){return this.regions_};shaka.media.RegionTimeline.REGION_FILTER_INTERVAL=2;shaka.media.RegionObserver=function(a){shaka.util.FakeEventTarget.call(this);var b=this;this.timeline_=a;this.oldPosition_=new Map;var c=shaka.media.RegionObserver.RelativePosition_;a=c.BEFORE_THE_REGION;var d=c.IN_THE_REGION;c=c.AFTER_THE_REGION;this.rules_=[{weWere:null,weAre:d,invoke:function(e,f){return b.onEvent_("enter",e,f)}},{weWere:a,weAre:d,invoke:function(e,f){return b.onEvent_("enter",e,f)}},{weWere:c,weAre:d,invoke:function(e,f){return b.onEvent_("enter",e,f)}},{weWere:d,weAre:a,invoke:function(e,
|
|
772
|
+
f){return b.onEvent_("exit",e,f)}},{weWere:d,weAre:c,invoke:function(e,f){return b.onEvent_("exit",e,f)}},{weWere:a,weAre:c,invoke:function(e,f){return b.onEvent_("skip",e,f)}},{weWere:c,weAre:a,invoke:function(e,f){return b.onEvent_("skip",e,f)}}];this.eventManager_=new shaka.util.EventManager;this.eventManager_.listen(this.timeline_,"regionremove",function(e){b.oldPosition_["delete"](e.region)})};$jscomp.inherits(shaka.media.RegionObserver,shaka.util.FakeEventTarget);
|
|
773
|
+
shaka.media.RegionObserver.prototype.release=function(){this.timeline_=null;this.oldPosition_.clear();this.eventManager_.release();this.eventManager_=null;shaka.util.FakeEventTarget.prototype.release.call(this)};
|
|
774
774
|
shaka.media.RegionObserver.prototype.poll=function(a,b){for(var c=shaka.media.RegionObserver,d=$jscomp.makeIterator(this.timeline_.regions()),e=d.next();!e.done;e=d.next()){e=e.value;var f=this.oldPosition_.get(e),g=c.determinePositionRelativeTo_(e,a);this.oldPosition_.set(e,g);for(var h=$jscomp.makeIterator(this.rules_),k=h.next();!k.done;k=h.next())k=k.value,k.weWere==f&&k.weAre==g&&k.invoke(e,b)}};
|
|
775
|
-
shaka.media.RegionObserver.prototype.
|
|
775
|
+
shaka.media.RegionObserver.prototype.onEvent_=function(a,b,c){a=new shaka.util.FakeEvent(a,new Map([["region",b],["seeking",c]]));this.dispatchEvent(a)};shaka.media.RegionObserver.determinePositionRelativeTo_=function(a,b){var c=shaka.media.RegionObserver.RelativePosition_;return b<a.startTime?c.BEFORE_THE_REGION:b>a.endTime?c.AFTER_THE_REGION:c.IN_THE_REGION};shaka.media.RegionObserver.RelativePosition_={BEFORE_THE_REGION:1,IN_THE_REGION:2,AFTER_THE_REGION:3};shaka.util.Networking=function(){};shaka.util.Networking.createSegmentRequest=function(a,b,c,d,e){a=shaka.net.NetworkingEngine.makeRequest(a,d,e);if(0!=b||null!=c)a.headers.Range=c?"bytes="+b+"-"+c:"bytes="+b+"-";return a};shaka.media.StreamingEngine=function(a,b){var c=this;this.playerInterface_=b;this.manifest_=a;this.config_=null;this.bufferingGoalScale_=1;this.currentTextStream_=this.currentVariant_=null;this.mediaStates_=new Map;this.startupComplete_=!1;this.failureCallbackBackoff_=null;this.fatalError_=!1;this.destroyer_=new shaka.util.Destroyer(function(){return c.doDestroy_()})};shaka.media.StreamingEngine.prototype.destroy=function(){return this.destroyer_.destroy()};
|
|
776
776
|
shaka.media.StreamingEngine.prototype.doDestroy_=function(){var a=this,b,c,d,e;return $jscomp.asyncExecutePromiseGeneratorProgram(function(f){if(1==f.nextAddress){b=[];c=$jscomp.makeIterator(a.mediaStates_.values());for(d=c.next();!d.done;d=c.next())e=d.value,a.cancelUpdate_(e),b.push(a.abortOperations_(e));return f.yield(Promise.all(b),2)}a.mediaStates_.clear();a.playerInterface_=null;a.manifest_=null;a.config_=null;f.jumpToEnd()})};
|
|
777
777
|
shaka.media.StreamingEngine.prototype.configure=function(a){this.config_=a;this.failureCallbackBackoff_=new shaka.net.Backoff({maxAttempts:Math.max(a.retryParameters.maxAttempts,2),baseDelay:a.retryParameters.baseDelay,backoffFactor:a.retryParameters.backoffFactor,fuzzFactor:a.retryParameters.fuzzFactor,timeout:0,stallTimeout:0,connectionTimeout:0},!0)};
|
|
778
778
|
shaka.media.StreamingEngine.prototype.start=function(){var a=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(b){if(1==b.nextAddress)return goog.asserts.assert(a.config_,"StreamingEngine configure() must be called before init()!"),b.yield(a.initStreams_(),2);a.destroyer_.ensureNotDestroyed();shaka.log.debug("init: completed initial Stream setup");a.startupComplete_=!0;b.jumpToEnd()})};shaka.media.StreamingEngine.prototype.getCurrentVariant=function(){return this.currentVariant_};
|
|
@@ -828,7 +828,7 @@ shaka.log.v1(e,"appending init segment"),r=a.stream.closedCaptions&&0<a.stream.c
|
|
|
828
828
|
shaka.media.StreamingEngine.prototype.append_=function(a,b,c,d,e){var f=this,g,h;return $jscomp.asyncExecutePromiseGeneratorProgram(function(k){if(1==k.nextAddress)return g=shaka.media.StreamingEngine.logPrefix_(a),h=c.closedCaptions&&0<c.closedCaptions.size,null!=c.emsgSchemeIdUris&&0<c.emsgSchemeIdUris.length&&(new shaka.util.Mp4Parser).fullBox("emsg",function(l){return f.parseEMSG_(d,c.emsgSchemeIdUris,l)}).parse(e),k.yield(f.evict_(a,b),2);if(3!=k.nextAddress)return f.destroyer_.ensureNotDestroyed(),
|
|
829
829
|
shaka.log.v1(g,"appending media segment"),k.yield(f.playerInterface_.mediaSourceEngine.appendBuffer(a.type,e,d.startTime,d.endTime,h),3);f.destroyer_.ensureNotDestroyed();shaka.log.v2(g,"appended media segment");k.jumpToEnd()})};
|
|
830
830
|
shaka.media.StreamingEngine.prototype.parseEMSG_=function(a,b,c){if(0===c.version){var d=c.reader.readTerminatedString();var e=c.reader.readTerminatedString();var f=c.reader.readUint32();var g=c.reader.readUint32();var h=c.reader.readUint32();var k=c.reader.readUint32();var l=a.startTime+g/f}else f=c.reader.readUint32(),l=c.reader.readUint64()/f+a.timestampOffset,g=l-a.startTime,h=c.reader.readUint32(),k=c.reader.readUint32(),d=c.reader.readTerminatedString(),e=c.reader.readTerminatedString();a=c.reader.readBytes(c.reader.getLength()-
|
|
831
|
-
c.reader.getPosition());if(b.includes(d))if("urn:mpeg:dash:event:2012"==d)this.playerInterface_.onManifestUpdate();else f={startTime:l,endTime:l+h/f,schemeIdUri:d,value:e,timescale:f,presentationTimeDelta:g,eventDuration:h,id:k,messageData:a},b=shaka.Player.EventName.Emsg,f=(new Map).set("detail",f),b=new shaka.util.FakeEvent(b,f),this.playerInterface_.onEvent(b)};
|
|
831
|
+
c.reader.getPosition());if(b&&b.includes(d))if("urn:mpeg:dash:event:2012"==d)this.playerInterface_.onManifestUpdate();else f={startTime:l,endTime:l+h/f,schemeIdUri:d,value:e,timescale:f,presentationTimeDelta:g,eventDuration:h,id:k,messageData:a},b=shaka.Player.EventName.Emsg,f=(new Map).set("detail",f),b=new shaka.util.FakeEvent(b,f),this.playerInterface_.onEvent(b)};
|
|
832
832
|
shaka.media.StreamingEngine.prototype.evict_=function(a,b){var c=this,d,e,f,g,h;return $jscomp.asyncExecutePromiseGeneratorProgram(function(k){if(1==k.nextAddress){d=shaka.media.StreamingEngine.logPrefix_(a);shaka.log.v2(d,"checking buffer length");e=Math.max(c.config_.bufferBehind,c.manifest_.presentationTimeline.getMaxSegmentDuration());f=c.playerInterface_.mediaSourceEngine.bufferStart(a.type);if(null==f)return shaka.log.v2(d,"buffer behind okay because nothing buffered:","presentationTime="+b,
|
|
833
833
|
"bufferBehind="+e),k["return"]();g=b-f;h=g-e;if(.01>=h)return shaka.log.v2(d,"buffer behind okay:","presentationTime="+b,"bufferedBehind="+g,"bufferBehind="+e,"underflow="+Math.abs(h)),k["return"]();shaka.log.v1(d,"buffer behind too large:","presentationTime="+b,"bufferedBehind="+g,"bufferBehind="+e,"overflow="+h);return k.yield(c.playerInterface_.mediaSourceEngine.remove(a.type,f,f+h),2)}c.destroyer_.ensureNotDestroyed();shaka.log.v1(d,"evicted "+h+" seconds");k.jumpToEnd()})};
|
|
834
834
|
shaka.media.StreamingEngine.isEmbeddedText_=function(a){var b=shaka.util.MimeUtils,c=b.CEA608_CLOSED_CAPTION_MIMETYPE;b=b.CEA708_CLOSED_CAPTION_MIMETYPE;return a&&a.type==shaka.util.ManifestParserUtils.ContentType.TEXT&&(a.stream.mimeType==c||a.stream.mimeType==b)};
|
|
@@ -917,7 +917,7 @@ h.nextAddress?(shaka.log.warning("The walker saw an error:"),g instanceof shaka.
|
|
|
917
917
|
$jscomp.inherits(shaka.Player,shaka.util.FakeEventTarget);shaka.Player.prototype.makeEvent_=function(a,b){return new shaka.util.FakeEvent(a,b)};
|
|
918
918
|
shaka.Player.prototype.destroy=function(){var a=this,b;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){switch(c.nextAddress){case 1:if(a.loadMode_==shaka.Player.LoadMode.DESTROYED)return c["return"]();a.loadMode_=shaka.Player.LoadMode.DESTROYED;b=a.walker_.startNewRoute(function(d){return{node:a.detachNode_,payload:shaka.Player.createEmptyPayload_(),interruptible:!1}});return c.yield(new Promise(function(d){b.onStart=function(){shaka.log.info("Preparing to destroy walker...")};b.onEnd=
|
|
919
919
|
function(){d()};b.onCancel=function(){goog.asserts.assert(!1,"Our final detach call should never be cancelled.");d()};b.onError=function(){goog.asserts.assert(!1,"Our final detach call should never see an error");d()};b.onSkip=function(){goog.asserts.assert(!1,"Our final detach call should never be skipped");d()}}),2);case 2:return c.yield(a.walker_.destroy(),3);case 3:a.eventManager_&&(a.eventManager_.release(),a.eventManager_=null);a.abrManagerFactory_=null;a.abrManager_=null;a.config_=null;a.stats_=
|
|
920
|
-
null;a.videoContainer_=null;if(!a.networkingEngine_){c.jumpTo(
|
|
920
|
+
null;a.videoContainer_=null;if(!a.networkingEngine_){c.jumpTo(4);break}return c.yield(a.networkingEngine_.destroy(),5);case 5:a.networkingEngine_=null;case 4:shaka.util.FakeEventTarget.prototype.release.call(a),c.jumpToEnd()}})};shaka.Player.registerSupportPlugin=function(a,b){shaka.Player.supportPlugins_[a]=b};shaka.Player.setAdManagerFactory=function(a){shaka.Player.adManagerFactory_=a};
|
|
921
921
|
shaka.Player.isBrowserSupported=function(){window.Promise||shaka.log.alwaysWarn("A Promise implementation or polyfill is required");window.TextDecoder&&window.TextEncoder||shaka.log.alwaysWarn("A TextDecoder/TextEncoder implementation or polyfill is required");if(!(window.Promise&&window.Uint8Array&&window.TextDecoder&&window.TextEncoder&&Array.prototype.forEach)||shaka.util.Platform.isIE())return!1;var a=shaka.util.Platform.safariVersion();return a&&12>a||!shaka.media.DrmEngine.isBrowserSupported()?
|
|
922
922
|
!1:shaka.util.Platform.supportsMediaSource()?!0:shaka.util.Platform.supportsMediaType("application/x-mpegurl")};
|
|
923
923
|
shaka.Player.probeSupport=function(a){a=void 0===a?!0:a;var b,c,d,e,f,g;return $jscomp.asyncExecutePromiseGeneratorProgram(function(h){if(1==h.nextAddress)return goog.asserts.assert(shaka.Player.isBrowserSupported(),"Must have basic support"),b={},a?h.yield(shaka.media.DrmEngine.probeSupport(),3):h.jumpTo(2);2!=h.nextAddress&&(b=h.yieldResult);c=shaka.media.ManifestParser.probeSupport();d=shaka.media.MediaSourceEngine.probeSupport();e={manifest:c,media:d,drm:b};f=shaka.Player.supportPlugins_;for(g in f)e[g]=
|
|
@@ -944,10 +944,10 @@ shaka.Player.prototype.onInitializeParser_=function(a,b){var c=this,d,e,f,g;retu
|
|
|
944
944
|
"Need player config when initializing the parser."),a.mimeType=b.mimeType,a.uri=b.uri,goog.asserts.assert(a.uri,"We should have an asset uri when initializing the parsing."),d=a.uri,e=c.networkingEngine_,c.assetUri_=d,f=c,h.yield(shaka.media.ManifestParser.getFactory(d,e,c.config_.manifest.retryParameters,a.mimeType),2);f.parserFactory_=h.yieldResult;goog.asserts.assert(c.parserFactory_,"Must have manifest parser");c.parser_=shaka.util.Functional.callFactory(c.parserFactory_);g=shaka.util.ObjectUtils.cloneObject(c.config_.manifest);
|
|
945
945
|
b.mediaElement&&"AUDIO"===b.mediaElement.nodeName&&(g.disableVideo=!0);c.parser_.configure(g);h.jumpToEnd()})};
|
|
946
946
|
shaka.Player.prototype.onParseManifest_=function(a,b){var c=this;goog.asserts.assert(a.mimeType==b.mimeType,"|has| and |wants| should have the same mime type when parsing.");goog.asserts.assert(a.uri==b.uri,"|has| and |wants| should have the same uri when parsing.");goog.asserts.assert(a.uri,"|has| should have a valid uri when parsing.");goog.asserts.assert(a.uri==this.assetUri_,"|has.uri| should match the cached asset uri.");goog.asserts.assert(this.networkingEngine_,"Need networking engine to parse manifest.");
|
|
947
|
-
goog.asserts.assert(this.config_,"Need player config to parse manifest.");goog.asserts.assert(this.parser_,"|this.parser_| should have been set in an earlier step.");var d=a.uri,e=this.networkingEngine_;this.regionTimeline_=new shaka.media.RegionTimeline(function(){return c.seekRange()});this.regionTimeline_.
|
|
948
|
-
makeTextStreamsForClosedCaptions:function(h){return c.makeTextStreamsForClosedCaptions_(h)},onTimelineRegionAdded:function(h){return c.regionTimeline_.addRegion(h)},onEvent:function(h){return c.dispatchEvent(h)},onError:function(h){return c.onError_(h)},isLowLatencyMode:function(){return c.isLowLatencyMode_()},isAutoLowLatencyMode:function(){return c.isAutoLowLatencyMode_()},
|
|
949
|
-
k,l,m;return $jscomp.asyncExecutePromiseGeneratorProgram(function(n){if(1==n.nextAddress)return h=c,n.yield(c.parser_.start(d,f),2);h.manifest_=n.yieldResult;k=c.makeEvent_(shaka.Player.EventName.ManifestParsed);c.dispatchEvent(k);if(0==c.manifest_.variants.length)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,
|
|
950
|
-
function(){shaka.log.info("Aborting parser step...");return c.parser_.stop()})};
|
|
947
|
+
goog.asserts.assert(this.config_,"Need player config to parse manifest.");goog.asserts.assert(this.parser_,"|this.parser_| should have been set in an earlier step.");var d=a.uri,e=this.networkingEngine_;this.regionTimeline_=new shaka.media.RegionTimeline(function(){return c.seekRange()});this.regionTimeline_.addEventListener("regionadd",function(h){h=h.region;c.onRegionEvent_(shaka.Player.EventName.TimelineRegionAdded,h);if(c.adManager_)c.adManager_.onDashTimedMetadata(h)});var f={networkingEngine:e,
|
|
948
|
+
filter:function(h){return $jscomp.asyncExecutePromiseGeneratorProgram(function(k){return k["return"](c.filterManifest_(h))})},makeTextStreamsForClosedCaptions:function(h){return c.makeTextStreamsForClosedCaptions_(h)},onTimelineRegionAdded:function(h){return c.regionTimeline_.addRegion(h)},onEvent:function(h){return c.dispatchEvent(h)},onError:function(h){return c.onError_(h)},isLowLatencyMode:function(){return c.isLowLatencyMode_()},isAutoLowLatencyMode:function(){return c.isAutoLowLatencyMode_()},
|
|
949
|
+
enableLowLatencyMode:function(){c.configure("streaming.lowLatencyMode",!0)}},g=Date.now()/1E3;return new shaka.util.AbortableOperation(function(){var h,k,l,m;return $jscomp.asyncExecutePromiseGeneratorProgram(function(n){if(1==n.nextAddress)return h=c,n.yield(c.parser_.start(d,f),2);h.manifest_=n.yieldResult;k=c.makeEvent_(shaka.Player.EventName.ManifestParsed);c.dispatchEvent(k);if(0==c.manifest_.variants.length)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,
|
|
950
|
+
shaka.util.Error.Code.NO_VARIANTS);shaka.Player.filterForAVVariants_(c.manifest_);l=Date.now()/1E3;m=l-g;c.stats_.setManifestTime(m);n.jumpToEnd()})}(),function(){shaka.log.info("Aborting parser step...");return c.parser_.stop()})};
|
|
951
951
|
shaka.Player.prototype.onInitializeDrm_=function(a,b){var c=this,d,e;return $jscomp.asyncExecutePromiseGeneratorProgram(function(f){return 1==f.nextAddress?(goog.asserts.assert(a.mimeType==b.mimeType,"The load graph should have ensured the mime types matched."),goog.asserts.assert(a.uri==b.uri,"The load graph should have ensured the uris matched"),goog.asserts.assert(c.networkingEngine_,"|onInitializeDrm_| should never be called after |destroy|"),goog.asserts.assert(c.config_,"|onInitializeDrm_| should never be called after |destroy|"),
|
|
952
952
|
goog.asserts.assert(c.manifest_,"|this.manifest_| should have been set in an earlier step."),goog.asserts.assert(a.mediaElement,"We should have a media element when initializing the DRM Engine."),d=Date.now()/1E3,e=!0,c.drmEngine_=c.createDrmEngine({netEngine:c.networkingEngine_,onError:function(g){c.onError_(g)},onKeyStatus:function(g){c.onKeyStatus_(g)},onExpirationUpdated:function(g,h){c.onExpirationUpdated_(g,h)},onEvent:function(g){c.dispatchEvent(g);g.type==shaka.Player.EventName.DrmSessionUpdate&&
|
|
953
953
|
e&&(e=!1,g=Date.now()/1E3-d,c.stats_.setDrmTime(g))}}),c.config_.useMediaCapabilities||shaka.util.StreamUtils.filterManifestByMediaSource(c.manifest_),c.drmEngine_.configure(c.config_.drm),f.yield(c.drmEngine_.initForPlayback(c.manifest_.variants,c.manifest_.offlineSessionIds,c.config_.useMediaCapabilities),2)):3!=f.nextAddress?f.yield(c.drmEngine_.attach(a.mediaElement),3):f.yield(c.filterManifest_(c.manifest_),0)})};
|
|
@@ -977,8 +977,8 @@ d=$jscomp.makeIterator(d);for(var e=d.next();!e.done;e=d.next())e.value.mode="hi
|
|
|
977
977
|
shaka.Player.prototype.dispatchMetadataEvent_=function(a,b,c,d){goog.asserts.assert(!b||a<=b,"Metadata start time should be less or equal to the end time!");var e=shaka.Player.EventName.Metadata;a=(new Map).set("startTime",a).set("endTime",b).set("metadataType",c).set("payload",d);this.dispatchEvent(this.makeEvent_(e,a))};
|
|
978
978
|
shaka.Player.filterForAVVariants_=function(a){var b=function(c){return c.video&&c.audio||c.video&&c.video.codecs.includes(",")};a.variants.some(b)&&(shaka.log.debug("Found variant with audio and video content, so filtering out audio-only content."),a.variants=a.variants.filter(b))};shaka.Player.prototype.createDrmEngine=function(a){return new shaka.media.DrmEngine(a,this.config_.drm.updateExpirationTime)};
|
|
979
979
|
shaka.Player.prototype.createNetworkingEngine=function(){var a=this;return new shaka.net.NetworkingEngine(function(b,c){a.abrManager_&&a.abrManager_.segmentDownloaded(b,c)})};shaka.Player.prototype.createPlayhead=function(a){var b=this;goog.asserts.assert(this.manifest_,"Must have manifest");goog.asserts.assert(this.video_,"Must have video");return new shaka.media.MediaSourcePlayhead(this.video_,this.manifest_,this.config_.streaming,a,function(){return b.onSeek_()},function(c){return b.dispatchEvent(c)})};
|
|
980
|
-
shaka.Player.prototype.createPlayheadObserversForMSE_=function(){var a=this;goog.asserts.assert(this.manifest_,"Must have manifest");goog.asserts.assert(this.regionTimeline_,"Must have region timeline");goog.asserts.assert(this.video_,"Must have video element");var b=new shaka.media.RegionObserver(this.regionTimeline_);b.
|
|
981
|
-
|
|
980
|
+
shaka.Player.prototype.createPlayheadObserversForMSE_=function(){var a=this;goog.asserts.assert(this.manifest_,"Must have manifest");goog.asserts.assert(this.regionTimeline_,"Must have region timeline");goog.asserts.assert(this.video_,"Must have video element");var b=new shaka.media.RegionObserver(this.regionTimeline_);b.addEventListener("enter",function(d){a.onRegionEvent_(shaka.Player.EventName.TimelineRegionEnter,d.region)});b.addEventListener("exit",function(d){a.onRegionEvent_(shaka.Player.EventName.TimelineRegionExit,
|
|
981
|
+
d.region)});b.addEventListener("skip",function(d){var e=d.region;d.seeking||(a.onRegionEvent_(shaka.Player.EventName.TimelineRegionEnter,e),a.onRegionEvent_(shaka.Player.EventName.TimelineRegionExit,e))});var c=new shaka.media.PlayheadObserverManager(this.video_);c.manage(b);return c};
|
|
982
982
|
shaka.Player.prototype.startBufferManagement_=function(a){var b=this;goog.asserts.assert(!this.bufferObserver_,"No buffering observer should exist before initialization.");goog.asserts.assert(!this.bufferPoller_,"No buffer timer should exist before initialization.");this.bufferObserver_=new shaka.media.BufferingObserver(1,2);this.bufferObserver_.setState(shaka.media.BufferingObserver.State.STARVING);this.updateBufferingSettings_(a);this.updateBufferState_();this.bufferPoller_=(new shaka.util.Timer(function(){b.pollBufferState_()})).tickEvery(.25)};
|
|
983
983
|
shaka.Player.prototype.updateBufferingSettings_=function(a){this.bufferObserver_.setThresholds(a,Math.min(shaka.Player.TYPICAL_BUFFERING_THRESHOLD_,a/2))};
|
|
984
984
|
shaka.Player.prototype.pollBufferState_=function(){goog.asserts.assert(this.video_,"Need a media element to update the buffering observer");goog.asserts.assert(this.bufferObserver_,"Need a buffering observer to update");switch(this.loadMode_){case shaka.Player.LoadMode.SRC_EQUALS:var a=this.isBufferedToEndSrc_();break;case shaka.Player.LoadMode.MEDIA_SOURCE:a=this.isBufferedToEndMS_();break;default:a=!1}var b=shaka.media.TimeRangesUtils.bufferedAheadOf(this.video_.buffered,this.video_.currentTime);
|
|
@@ -1105,7 +1105,7 @@ goog.exportProperty(shaka.Player.prototype,"getAssetUri",shaka.Player.prototype.
|
|
|
1105
1105
|
goog.exportProperty(shaka.Player.prototype,"getConfiguration",shaka.Player.prototype.getConfiguration);goog.exportProperty(shaka.Player.prototype,"configure",shaka.Player.prototype.configure);goog.exportProperty(shaka.Player.prototype,"load",shaka.Player.prototype.load);goog.exportProperty(shaka.Player.prototype,"unload",shaka.Player.prototype.unload);goog.exportProperty(shaka.Player.prototype,"detach",shaka.Player.prototype.detach);goog.exportProperty(shaka.Player.prototype,"attach",shaka.Player.prototype.attach);
|
|
1106
1106
|
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);goog.exportProperty(shaka.Player.prototype,"destroy",shaka.Player.prototype.destroy);
|
|
1107
1107
|
shaka.Player.EventName={AbrStatusChanged:"abrstatuschanged",Adaptation:"adaptation",Buffering:"buffering",DrmSessionUpdate:"drmsessionupdate",Emsg:"emsg",Error:"error",ExpirationUpdated:"expirationupdated",LargeGap:"largegap",Loaded:"loaded",Loading:"loading",ManifestParsed:"manifestparsed",Metadata:"metadata",OnStateChange:"onstatechange",OnStateIdle:"onstateidle",RateChange:"ratechange",SessionDataEvent:"sessiondata",Streaming:"streaming",TextChanged:"textchanged",TextTrackVisibility:"texttrackvisibility",
|
|
1108
|
-
TimelineRegionAdded:"timelineregionadded",TimelineRegionEnter:"timelineregionenter",TimelineRegionExit:"timelineregionexit",TracksChanged:"trackschanged",Unloading:"unloading",VariantChanged:"variantchanged"};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="v3.1.
|
|
1108
|
+
TimelineRegionAdded:"timelineregionadded",TimelineRegionEnter:"timelineregionenter",TimelineRegionExit:"timelineregionexit",TracksChanged:"trackschanged",Unloading:"unloading",VariantChanged:"variantchanged"};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="v3.1.6-debug";goog.exportProperty(shaka.Player,"version",shaka.Player.version);shaka.Deprecate.init(shaka.Player.version);
|
|
1109
1109
|
shaka.Player.restrictedStatuses_=["output-restricted","internal-error"];shaka.Player.supportPlugins_={};shaka.Player.adManagerFactory_=null;shaka.Player.TextTrackLabel="Shaka Player TextTrack";shaka.ads={};shaka.ads.AdsStats=function(){this.loadTimes_=[];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_++};
|
|
1110
1110
|
shaka.ads.AdsStats.prototype.getBlob=function(){return{loadTimes:this.loadTimes_,started:this.started_,playedCompletely:this.playedCompletely_,skipped:this.skipped_}};shaka.ads.ClientSideAd=function(a,b){var c=this;this.ad_=a;this.manager_=b;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(){c.isPaused_=!0});this.eventManager_.listen(this.manager_,google.ima.AdEvent.Type.RESUMED,function(){c.isPaused_=!1})};shaka.ads.ClientSideAd.prototype.getDuration=function(){return this.ad_.getDuration()};
|
|
1111
1111
|
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_};shaka.ads.ClientSideAd.prototype.isSkippable=function(){return 0<=this.ad_.getSkipTimeOffset()};
|
|
@@ -1157,7 +1157,7 @@ shaka.ads.ServerSideAdManager.prototype.onLoaded_=function(a){var b=this,c=Date.
|
|
|
1157
1157
|
shaka.ads.ServerSideAdManager.prototype.onError_=function(){this.backupUrl_.length?(shaka.log.warning("IMA stream request returned an error. Falling back to the backup asset uri."),this.streamPromise_.resolve(this.backupUrl_)):this.streamPromise_.reject("IMA Stream request returned an error and there was no backup asset uri provided.");this.streamPromise_=null};shaka.ads.ServerSideAdManager.prototype.onAdProgress_=function(a){this.adProgressData_=a.getStreamData().adProgressData;this.ad_&&this.ad_.setProgressData(this.adProgressData_)};
|
|
1158
1158
|
shaka.ads.ServerSideAdManager.prototype.onCuePointsChanged_=function(a){var b=a.getStreamData();a=[];b=$jscomp.makeIterator(b.cuepoints);for(var c=b.next();!c.done;c=b.next())c=c.value,c=new shaka.ads.CuePoint(c.start,c.end),a.push(c);this.onEvent_(new shaka.util.FakeEvent(shaka.ads.AdManager.CUEPOINTS_CHANGED,(new Map).set("cuepoints",a)))};shaka.ads.AdManager=function(){shaka.util.FakeEventTarget.call(this);this.ssAdManager_=this.csAdManager_=null;this.stats_=new shaka.ads.AdsStats;this.locale_=navigator.language};$jscomp.inherits(shaka.ads.AdManager,shaka.util.FakeEventTarget);shaka.ads.AdManager.prototype.setLocale=function(a){this.locale_=a};
|
|
1159
1159
|
shaka.ads.AdManager.prototype.initClientSide=function(a,b){var c=this;if(!window.google||!google.ima||!google.ima.AdsLoader)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.ADS,shaka.util.Error.Code.CS_IMA_SDK_MISSING);this.csAdManager_&&this.csAdManager_.release();this.csAdManager_=new shaka.ads.ClientSideAdManager(a,b,this.locale_,function(d){if(d&&d.type)switch(d.type){case shaka.ads.AdManager.ADS_LOADED:c.stats_.addLoadTime(d.loadTime);break;case shaka.ads.AdManager.AD_STARTED:c.stats_.incrementStarted();
|
|
1160
|
-
break;case shaka.ads.AdManager.AD_COMPLETE:c.stats_.incrementPlayedCompletely();break;case shaka.ads.AdManager.AD_SKIPPED:c.stats_.incrementSkipped()}c.dispatchEvent(d)})};shaka.ads.AdManager.prototype.release=function(){this.csAdManager_&&(this.csAdManager_.release(),this.csAdManager_=null);this.ssAdManager_&&(this.ssAdManager_.release(),this.ssAdManager_=null)};
|
|
1160
|
+
break;case shaka.ads.AdManager.AD_COMPLETE:c.stats_.incrementPlayedCompletely();break;case shaka.ads.AdManager.AD_SKIPPED:c.stats_.incrementSkipped()}c.dispatchEvent(d)})};shaka.ads.AdManager.prototype.release=function(){this.csAdManager_&&(this.csAdManager_.release(),this.csAdManager_=null);this.ssAdManager_&&(this.ssAdManager_.release(),this.ssAdManager_=null);shaka.util.FakeEventTarget.prototype.release.call(this)};
|
|
1161
1161
|
shaka.ads.AdManager.prototype.onAssetUnload=function(){this.csAdManager_&&this.csAdManager_.stop();this.ssAdManager_&&this.ssAdManager_.stop();this.dispatchEvent(new shaka.util.FakeEvent(shaka.ads.AdManager.AD_STOPPED));this.stats_=new shaka.ads.AdsStats};shaka.ads.AdManager.prototype.requestClientSideAds=function(a){if(!this.csAdManager_)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.ADS,shaka.util.Error.Code.CS_AD_MANAGER_NOT_INITIALIZED);this.csAdManager_.requestAds(a)};
|
|
1162
1162
|
shaka.ads.AdManager.prototype.initServerSide=function(a,b){var c=this;if(!window.google||!google.ima||!google.ima.dai)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.ADS,shaka.util.Error.Code.SS_IMA_SDK_MISSING);this.ssAdManager_&&this.ssAdManager_.release();this.ssAdManager_=new shaka.ads.ServerSideAdManager(a,b,this.locale_,function(d){if(d&&d.type)switch(d.type){case shaka.ads.AdManager.ADS_LOADED:c.stats_.addLoadTime(d.loadTime);break;case shaka.ads.AdManager.AD_STARTED:c.stats_.incrementStarted();
|
|
1163
1163
|
break;case shaka.ads.AdManager.AD_COMPLETE:c.stats_.incrementPlayedCompletely();break;case shaka.ads.AdManager.AD_SKIPPED:c.stats_.incrementSkipped()}c.dispatchEvent(d)})};
|
|
@@ -1212,8 +1212,9 @@ shaka.cast.CastSender.prototype.onMessageReceived_=function(a,b){var c=shaka.cas
|
|
|
1212
1212
|
c.id,c=c.error,f=this.asyncCallPromises_[e],delete this.asyncCallPromises_[e],goog.asserts.assert(f,"Unexpected async id"),f)if(c){e=new shaka.util.Error(c.severity,c.category,c.code);for(d in c)e[d]=c[d];f.reject(e)}else f.resolve()}};
|
|
1213
1213
|
shaka.cast.CastSender.prototype.sendMessage_=function(a){a=shaka.cast.CastUtils.serialize(a);var b=shaka.cast.CastSender.session_;try{b.sendMessage(shaka.cast.CastUtils.SHAKA_MESSAGE_NAMESPACE,a,function(){},shaka.log.error)}catch(c){throw shaka.log.error("Cast session sendMessage threw",c),a=new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.CAST,shaka.util.Error.Code.CAST_CONNECTION_TIMED_OUT,c),b=new shaka.util.FakeEvent("error",(new Map).set("detail",a)),this.onRemoteEvent_("player",
|
|
1214
1214
|
b),this.forceDisconnect(),a;}};shaka.cast.CastSender.STATUS_DELAY=.02;shaka.cast.CastSender.hasReceivers_=!1;shaka.cast.CastSender.session_=null;shaka.cast.CastSender.instances_=new Set;shaka.cast.CastSender.onSdkLoaded_=function(a){if(a){a=$jscomp.makeIterator(shaka.cast.CastSender.instances_);for(var b=a.next();!b.done;b=a.next())b.value.init()}};shaka.cast.CastProxy=function(a,b,c){shaka.util.FakeEventTarget.call(this);var d=this;this.localVideo_=a;this.localPlayer_=b;this.eventManager_=this.playerEventTarget_=this.videoEventTarget_=this.playerProxy_=this.videoProxy_=null;this.receiverAppId_=c;this.compiledToExternNames_=new Map;this.sender_=new shaka.cast.CastSender(c,function(){return d.onCastStatusChanged_()},function(){return d.onFirstCastStateUpdate_()},function(e,f){return d.onRemoteEvent_(e,f)},function(){return d.onResumeLocal_()},
|
|
1215
|
-
function(){return d.getInitState_()});this.init_()};$jscomp.inherits(shaka.cast.CastProxy,shaka.util.FakeEventTarget);
|
|
1216
|
-
shaka.cast.CastProxy.prototype.
|
|
1215
|
+
function(){return d.getInitState_()});this.init_()};$jscomp.inherits(shaka.cast.CastProxy,shaka.util.FakeEventTarget);
|
|
1216
|
+
shaka.cast.CastProxy.prototype.destroy=function(a){a&&this.sender_.forceDisconnect();this.eventManager_&&(this.eventManager_.release(),this.eventManager_=null);a=[];this.localPlayer_&&(a.push(this.localPlayer_.destroy()),this.localPlayer_=null);this.sender_&&(a.push(this.sender_.destroy()),this.sender_=null);this.playerProxy_=this.videoProxy_=this.localVideo_=null;shaka.util.FakeEventTarget.prototype.release.call(this);return Promise.all(a)};shaka.cast.CastProxy.prototype.getVideo=function(){return this.videoProxy_};
|
|
1217
|
+
shaka.cast.CastProxy.prototype.getPlayer=function(){return this.playerProxy_};shaka.cast.CastProxy.prototype.canCast=function(){return this.sender_.apiReady()&&this.sender_.hasReceivers()};shaka.cast.CastProxy.prototype.isCasting=function(){return this.sender_.isCasting()};shaka.cast.CastProxy.prototype.receiverName=function(){return this.sender_.receiverName()};
|
|
1217
1218
|
shaka.cast.CastProxy.prototype.cast=function(){var a=this,b;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){return 1==c.nextAddress?(b=a.getInitState_(),c.yield(a.sender_.cast(b),2)):a.localPlayer_?c.yield(a.localPlayer_.unload(),0):c["return"]()})};shaka.cast.CastProxy.prototype.setAppData=function(a){this.sender_.setAppData(a)};shaka.cast.CastProxy.prototype.suggestDisconnect=function(){this.sender_.showDisconnectDialog()};shaka.cast.CastProxy.prototype.forceDisconnect=function(){this.sender_.forceDisconnect()};
|
|
1218
1219
|
shaka.cast.CastProxy.prototype.changeReceiverId=function(a){var b=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){if(1==c.nextAddress){if(a==b.receiverAppId_)return c["return"]();b.receiverAppId_=a;b.sender_.forceDisconnect();return c.yield(b.sender_.destroy(),2)}b.sender_=null;b.sender_=new shaka.cast.CastSender(a,function(){return b.onCastStatusChanged_()},function(){return b.onFirstCastStateUpdate_()},function(d,e){return b.onRemoteEvent_(d,e)},function(){return b.onResumeLocal_()},
|
|
1219
1220
|
function(){return b.getInitState_()});b.sender_.init();c.jumpToEnd()})};
|
|
@@ -1241,8 +1242,8 @@ goog.exportProperty(shaka.cast.CastProxy.prototype,"destroy",shaka.cast.CastProx
|
|
|
1241
1242
|
this.init_()};$jscomp.inherits(shaka.cast.CastReceiver,shaka.util.FakeEventTarget);shaka.cast.CastReceiver.prototype.isConnected=function(){return this.isConnected_};shaka.cast.CastReceiver.prototype.isIdle=function(){return this.isIdle_};shaka.cast.CastReceiver.prototype.setContentMetadata=function(a){this.metadata_=a};shaka.cast.CastReceiver.prototype.clearContentMetadata=function(){this.metadata_=null};
|
|
1242
1243
|
shaka.cast.CastReceiver.prototype.setContentTitle=function(a){this.metadata_||(this.metadata_={metadataType:cast.receiver.media.MetadataType.GENERIC});this.metadata_.title=a};shaka.cast.CastReceiver.prototype.setContentImage=function(a){this.metadata_||(this.metadata_={metadataType:cast.receiver.media.MetadataType.GENERIC});this.metadata_.images=[{url:a}]};
|
|
1243
1244
|
shaka.cast.CastReceiver.prototype.setContentArtist=function(a){this.metadata_||(this.metadata_={});this.metadata_.artist=a;this.metadata_.metadataType=cast.receiver.media.MetadataType.MUSIC_TRACK};
|
|
1244
|
-
shaka.cast.CastReceiver.prototype.destroy=function(){var a=this,b,c;return $jscomp.asyncExecutePromiseGeneratorProgram(function(d){if(1==d.nextAddress)return a.eventManager_&&(a.eventManager_.release(),a.eventManager_=null),b=[],a.player_&&(b.push(a.player_.destroy()),a.player_=null),a.pollTimer_&&(a.pollTimer_.stop(),a.pollTimer_=null),a.video_=null,a.targets_=null,a.appDataCallback_=null,a.isConnected_=!1,a.isIdle_=!0,a.shakaBus_=null,a.genericBus_=null,
|
|
1245
|
-
c.stop();d.jumpToEnd()})};
|
|
1245
|
+
shaka.cast.CastReceiver.prototype.destroy=function(){var a=this,b,c;return $jscomp.asyncExecutePromiseGeneratorProgram(function(d){if(1==d.nextAddress)return a.eventManager_&&(a.eventManager_.release(),a.eventManager_=null),b=[],a.player_&&(b.push(a.player_.destroy()),a.player_=null),a.pollTimer_&&(a.pollTimer_.stop(),a.pollTimer_=null),a.video_=null,a.targets_=null,a.appDataCallback_=null,a.isConnected_=!1,a.isIdle_=!0,a.shakaBus_=null,a.genericBus_=null,shaka.util.FakeEventTarget.prototype.release.call(a),
|
|
1246
|
+
d.yield(Promise.all(b),2);c=cast.receiver.CastReceiverManager.getInstance();c.stop();d.jumpToEnd()})};
|
|
1246
1247
|
shaka.cast.CastReceiver.prototype.init_=function(){var a=this,b=cast.receiver.CastReceiverManager.getInstance();b.onSenderConnected=function(){return a.onSendersChanged_()};b.onSenderDisconnected=function(){return a.onSendersChanged_()};b.onSystemVolumeChanged=function(){return a.fakeVolumeChangeEvent_()};this.genericBus_=b.getCastMessageBus(shaka.cast.CastUtils.GENERIC_MESSAGE_NAMESPACE);this.genericBus_.onMessage=function(e){return a.onGenericMessage_(e)};this.shakaBus_=b.getCastMessageBus(shaka.cast.CastUtils.SHAKA_MESSAGE_NAMESPACE);
|
|
1247
1248
|
this.shakaBus_.onMessage=function(e){return a.onShakaMessage_(e)};goog.DEBUG?shaka.util.Platform.isChromecast()&&b.start():b.start();b=$jscomp.makeIterator(shaka.cast.CastUtils.VideoEvents);for(var c=b.next();!c.done;c=b.next())this.eventManager_.listen(this.video_,c.value,function(e){return a.proxyEvent_("video",e)});for(var d in shaka.Player.EventName)this.eventManager_.listen(this.player_,shaka.Player.EventName[d],function(e){return a.proxyEvent_("player",e)});cast.__platform__&&cast.__platform__.canDisplayType('video/mp4; codecs="avc1.640028"; width=3840; height=2160')?
|
|
1248
1249
|
this.player_.setMaxHardwareResolution(3840,2160):this.player_.setMaxHardwareResolution(1920,1080);this.eventManager_.listen(this.video_,"loadeddata",function(){a.startUpdatingUpdateNumber_=!0});this.eventManager_.listen(this.player_,"loading",function(){a.isIdle_=!1;a.onCastStatusChanged_()});this.eventManager_.listen(this.video_,"playing",function(){a.isIdle_=!1;a.onCastStatusChanged_()});this.eventManager_.listen(this.video_,"pause",function(){a.onCastStatusChanged_()});this.eventManager_.listen(this.player_,
|
|
@@ -1368,8 +1369,8 @@ a.representation),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.
|
|
|
1368
1369
|
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,a.bandwidth||null,null);f=f.resolveUris(a.representation.baseUris,[e]);return shaka.dash.SegmentBase.generateSegmentIndexFromUris(a,b,c,f,0,null,d.scaledPresentationTimeOffset)};
|
|
1369
1370
|
shaka.dash.SegmentTemplate.generateSegmentIndexFromDuration_=function(a,b,c,d,e){goog.asserts.assert(b.mediaTemplate,"There should be a media template with duration");var f=shaka.dash.MpdUtils,g=shaka.util.ManifestParserUtils,h=a.presentationTimeline,k=a.periodInfo.start,l=a.period.id,m=a.periodInfo.duration,n=function(){var E=null!=l&&e[l]||m;return E?k+E:Infinity},p=b.segmentDuration;goog.asserts.assert(null!=p,"Segment duration must not be null!");var q=b.startNumber,r=b.timescale,u=b.mediaTemplate,
|
|
1370
1371
|
v=a.bandwidth||null,t=a.representation.id,y=a.representation.baseUris,w=k-b.scaledPresentationTimeOffset,x=function(){var E=[Math.max(h.getSegmentAvailabilityStart(),k),Math.min(h.getSegmentAvailabilityEnd(),n())];goog.asserts.assert(E.every(isFinite),"Available presentation times must be finite!");goog.asserts.assert(E.every(function(C){return 0<=C}),"Available presentation times must be positive!");goog.asserts.assert(null!=p,"Segment duration must not be null!");E=E.map(function(C){return C-k});
|
|
1371
|
-
return[Math.ceil(E[0]/p),Math.ceil(E[1]/p)-1].map(function(C){return C+q})},z=x();a=a.dynamic?Math.max(z[0],z[1]-c+1):z[0];z=z[1];c=[];for(var A=function(E){goog.asserts.assert(null!=p,"Segment duration must not be null!");var C=(E-q)*p,
|
|
1372
|
-
w,k,n());
|
|
1372
|
+
return[Math.ceil(E[0]/p),Math.ceil(E[1]/p)-1].map(function(C){return C+q})},z=x();a=a.dynamic?Math.max(z[0],z[1]-c+1):z[0];z=z[1];c=[];for(var A=function(E){goog.asserts.assert(null!=p,"Segment duration must not be null!");var C=(E-q)*p,H=C+b.scaledPresentationTimeOffset,I=C+k;C=I+p;var L=Math.min(C,n());goog.asserts.assert(I<L,"Generated a segment outside of the period!");I=new shaka.media.SegmentReference(I,L,function(){var J=f.fillUriTemplate(u,t,E,v,H*r);return g.resolveUris(y,[J])},0,null,d,
|
|
1373
|
+
w,k,n());I.trueEndTime=C;return I},B=a;B<=z;++B){var F=A(B);c.push(F)}var G=new shaka.media.SegmentIndex(c);c=h.getSegmentAvailabilityEnd()<n();B=h.isLive();if(c||B){var D=Math.max(a,z+1);G.updateEvery(p,function(){var E=h.getSegmentAvailabilityStart();G.evict(E);var C=$jscomp.makeIterator(x());C.next();C=C.next().value;for(var H=[];D<=C;){var I=A(D);H.push(I);D++}return E>n()&&!H.length?null:H})}return Promise.resolve(G)};
|
|
1373
1374
|
shaka.dash.SegmentTemplate.createFromTimeline_=function(a,b,c){var d=shaka.dash.MpdUtils,e=shaka.util.ManifestParserUtils,f=a.periodInfo.start,g=a.periodInfo.duration,h=f-b.scaledPresentationTimeOffset;g=g?f+g:Infinity;for(var k=[],l={},m=$jscomp.makeIterator(shaka.util.Iterables.enumerate(b.timeline)),n=m.next();!n.done;l={$jscomp$loop$prop$mediaTemplate$662:l.$jscomp$loop$prop$mediaTemplate$662,$jscomp$loop$prop$repId$663:l.$jscomp$loop$prop$repId$663,$jscomp$loop$prop$segmentReplacement$664:l.$jscomp$loop$prop$segmentReplacement$664,
|
|
1374
1375
|
$jscomp$loop$prop$bandwidth$665:l.$jscomp$loop$prop$bandwidth$665,$jscomp$loop$prop$timeReplacement$666:l.$jscomp$loop$prop$timeReplacement$666,$jscomp$loop$prop$baseUris$667:l.$jscomp$loop$prop$baseUris$667},n=m.next()){var p=n.value,q=p.item;n=q.start;var r=q.unscaledStart;q=q.end;l.$jscomp$loop$prop$segmentReplacement$664=p.i+b.startNumber;l.$jscomp$loop$prop$timeReplacement$666=r+b.unscaledPresentationTimeOffset;l.$jscomp$loop$prop$repId$663=a.representation.id;l.$jscomp$loop$prop$bandwidth$665=
|
|
1375
1376
|
a.bandwidth||null;l.$jscomp$loop$prop$mediaTemplate$662=b.mediaTemplate;l.$jscomp$loop$prop$baseUris$667=a.representation.baseUris;p=function(u){return function(){goog.asserts.assert(u.$jscomp$loop$prop$mediaTemplate$662,"There should be a media template with a timeline");var v=d.fillUriTemplate(u.$jscomp$loop$prop$mediaTemplate$662,u.$jscomp$loop$prop$repId$663,u.$jscomp$loop$prop$segmentReplacement$664,u.$jscomp$loop$prop$bandwidth$665||null,u.$jscomp$loop$prop$timeReplacement$666);return e.resolveUris(u.$jscomp$loop$prop$baseUris$667,
|
|
@@ -1377,12 +1378,12 @@ a.bandwidth||null;l.$jscomp$loop$prop$mediaTemplate$662=b.mediaTemplate;l.$jscom
|
|
|
1377
1378
|
shaka.dash.SegmentTemplate.createInitSegment_=function(a){var b=shaka.dash.MpdUtils,c=shaka.util.ManifestParserUtils,d=b.inheritAttribute(a,shaka.dash.SegmentTemplate.fromInheritance_,"initialization");if(!d)return null;var e=a.representation.id,f=a.bandwidth||null,g=a.representation.baseUris;return new shaka.media.InitSegmentReference(function(){goog.asserts.assert(d,"Should have returned earler");var h=b.fillUriTemplate(d,e,null,f,null);return c.resolveUris(g,[h])},0,null)};shaka.util.PeriodCombiner=function(){this.variants_=[];this.audioStreams_=[];this.videoStreams_=[];this.textStreams_=[];this.imageStreams_=[];this.usedPeriodIds_=new Set};
|
|
1378
1379
|
shaka.util.PeriodCombiner.prototype.release=function(){var a=this.audioStreams_.concat(this.videoStreams_,this.textStreams_,this.imageStreams_);a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next())b=b.value,b.segmentIndex&&b.segmentIndex.release();this.audioStreams_=[];this.videoStreams_=[];this.textStreams_=[];this.imageStreams_=[];this.variants_=[]};shaka.util.PeriodCombiner.prototype.getVariants=function(){return this.variants_};shaka.util.PeriodCombiner.prototype.getTextStreams=function(){return this.textStreams_.slice()};
|
|
1379
1380
|
shaka.util.PeriodCombiner.prototype.getImageStreams=function(){return this.imageStreams_};
|
|
1380
|
-
shaka.util.PeriodCombiner.prototype.combinePeriods=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,u,v,t,y,w,x,z,A,B,F,G,D,E,C,I,
|
|
1381
|
+
shaka.util.PeriodCombiner.prototype.combinePeriods=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,u,v,t,y,w,x,z,A,B,F,G,D,E,C,H,I,L,J,K,N,O,Q,M;return $jscomp.asyncExecutePromiseGeneratorProgram(function(P){switch(P.nextAddress){case 1:d=shaka.util.ManifestParserUtils.ContentType;e=shaka.util.Iterables;shaka.util.PeriodCombiner.filterOutAudioStreamDuplicates_(a);shaka.util.PeriodCombiner.filterOutVideoStreamDuplicates_(a);shaka.util.PeriodCombiner.filterOutTextStreamDuplicates_(a);shaka.util.PeriodCombiner.filterOutImageStreamDuplicates_(a);
|
|
1381
1382
|
if(!b&&1==a.length){f=a[0];c.audioStreams_=f.audioStreams;c.videoStreams_=f.videoStreams;c.textStreams_=f.textStreams;c.imageStreams_=f.imageStreams;P.jumpTo(2);break}g=-1;h=$jscomp.makeIterator(e.enumerate(a));for(k=h.next();!k.done;k=h.next())m=l=k.value,n=m.i,p=m.item,c.usedPeriodIds_.has(p.id)||(c.usedPeriodIds_.add(p.id),-1==g&&(g=n));if(-1==g)return P["return"]();q=a.map(function(R){return R.audioStreams});r=a.map(function(R){return R.videoStreams});u=a.map(function(R){return R.textStreams});
|
|
1382
1383
|
v=a.map(function(R){return R.imageStreams});t=$jscomp.makeIterator(u);for(y=t.next();!y.done;y=t.next())w=y.value,w.push(shaka.util.PeriodCombiner.dummyStream_(d.TEXT));x=$jscomp.makeIterator(v);for(z=x.next();!z.done;z=x.next())A=z.value,A.push(shaka.util.PeriodCombiner.dummyStream_(d.IMAGE));return P.yield(shaka.util.PeriodCombiner.combine_(c.audioStreams_,q,g,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_),3);case 3:return P.yield(shaka.util.PeriodCombiner.combine_(c.videoStreams_,
|
|
1383
|
-
r,g,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_),4);case 4:return P.yield(shaka.util.PeriodCombiner.combine_(c.textStreams_,u,g,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_),5);case 5:return P.yield(shaka.util.PeriodCombiner.combine_(c.imageStreams_,v,g,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_),2);case 2:B=0;F=[];if(c.videoStreams_.length&&c.audioStreams_.length)for(
|
|
1384
|
-
L=
|
|
1385
|
-
else for(G=c.videoStreams_.concat(c.audioStreams_),D=$jscomp.makeIterator(G),E=D.next();!E.done;E=D.next())C=E.value,
|
|
1384
|
+
r,g,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_),4);case 4:return P.yield(shaka.util.PeriodCombiner.combine_(c.textStreams_,u,g,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_),5);case 5:return P.yield(shaka.util.PeriodCombiner.combine_(c.imageStreams_,v,g,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_),2);case 2:B=0;F=[];if(c.videoStreams_.length&&c.audioStreams_.length)for(I=$jscomp.makeIterator(c.audioStreams_),
|
|
1385
|
+
L=I.next();!L.done;L=I.next())for(J=L.value,K=$jscomp.makeIterator(c.videoStreams_),N=K.next();!N.done;N=K.next())O=N.value,Q=shaka.media.DrmEngine.getCommonDrmInfos(J.drmInfos,O.drmInfos),J.drmInfos.length&&O.drmInfos.length&&!Q.length?shaka.log.warning("Incompatible DRM in audio & video, skipping variant creation.",J,O):(M=B++,F.push({id:M,language:J.language,primary:J.primary,audio:J,video:O,bandwidth:(J.bandwidth||0)+(O.bandwidth||0),drmInfos:Q,allowedByApplication:!0,allowedByKeySystem:!0,decodingInfos:[]}));
|
|
1386
|
+
else for(G=c.videoStreams_.concat(c.audioStreams_),D=$jscomp.makeIterator(G),E=D.next();!E.done;E=D.next())C=E.value,H=B++,F.push({id:H,language:C.language,primary:C.primary,audio:C.type==d.AUDIO?C:null,video:C.type==d.VIDEO?C:null,bandwidth:C.bandwidth||0,drmInfos:C.drmInfos,allowedByApplication:!0,allowedByKeySystem:!0,decodingInfos:[]});c.variants_=F;P.jumpToEnd()}})};
|
|
1386
1387
|
shaka.util.PeriodCombiner.filterOutAudioStreamDuplicates_=function(a){var b=shaka.util.ArrayUtils;a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next()){c=c.value;for(var d=[],e=$jscomp.makeIterator(c.audioStreams),f=e.next();!f.done;f=e.next()){f=f.value;for(var g=!1,h=$jscomp.makeIterator(d),k=h.next();!k.done;k=h.next())k=k.value,f.id!=k.id&&f.channelsCount==k.channelsCount&&f.language==k.language&&f.bandwidth==k.bandwidth&&f.label==k.label&&f.codecs==k.codecs&&f.mimeType==k.mimeType&&
|
|
1387
1388
|
b.hasSameElements(f.roles,k.roles)&&f.audioSamplingRate==k.audioSamplingRate&&f.primary==k.primary&&(g=!0);g||d.push(f)}c.audioStreams=d}};
|
|
1388
1389
|
shaka.util.PeriodCombiner.filterOutTextStreamDuplicates_=function(a){var b=shaka.util.ArrayUtils;a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next()){c=c.value;for(var d=[],e=$jscomp.makeIterator(c.textStreams),f=e.next();!f.done;f=e.next()){f=f.value;for(var g=!1,h=$jscomp.makeIterator(d),k=h.next();!k.done;k=h.next())k=k.value,f.id!=k.id&&f.language==k.language&&f.label==k.label&&f.codecs==k.codecs&&f.mimeType==k.mimeType&&b.hasSameElements(f.roles,k.roles)&&(g=!0);g||d.push(f)}c.textStreams=
|
|
@@ -1390,14 +1391,14 @@ d}};
|
|
|
1390
1391
|
shaka.util.PeriodCombiner.filterOutVideoStreamDuplicates_=function(a){var b=shaka.util.ArrayUtils,c=shaka.util.MapUtils;a=$jscomp.makeIterator(a);for(var d=a.next();!d.done;d=a.next()){d=d.value;for(var e=[],f=$jscomp.makeIterator(d.videoStreams),g=f.next();!g.done;g=f.next()){g=g.value;for(var h=!1,k=$jscomp.makeIterator(e),l=k.next();!l.done;l=k.next())l=l.value,g.id!=l.id&&g.width==l.width&&g.frameRate==l.frameRate&&g.codecs==l.codecs&&g.mimeType==l.mimeType&&g.label==l.label&&b.hasSameElements(g.roles,l.roles)&&
|
|
1391
1392
|
c.hasSameElements(g.closedCaptions,l.closedCaptions)&&g.bandwidth==l.bandwidth&&(h=!0);h||e.push(g)}d.videoStreams=e}};
|
|
1392
1393
|
shaka.util.PeriodCombiner.filterOutImageStreamDuplicates_=function(a){a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next()){b=b.value;for(var c=[],d=$jscomp.makeIterator(b.imageStreams),e=d.next();!e.done;e=d.next()){e=e.value;for(var f=!1,g=$jscomp.makeIterator(c),h=g.next();!h.done;h=g.next())h=h.value,e.id!=h.id&&e.width==h.width&&e.codecs==h.codecs&&e.mimeType==h.mimeType&&(f=!0);f||c.push(e)}b.imageStreams=c}};
|
|
1393
|
-
shaka.util.PeriodCombiner.combineDbStreams=function(a){var b,c,d,e,f,g,h,k,l,m,n,p,q,r,u,v,t,y,w,x,z,A,B,F,G,D,E;return $jscomp.asyncExecutePromiseGeneratorProgram(function(C){switch(C.nextAddress){case 1:b=shaka.util.ManifestParserUtils.ContentType;if(1==a.length)return C["return"](a[0]);c=a.map(function(
|
|
1394
|
-
b.TEXT})});f=a.map(function(
|
|
1394
|
+
shaka.util.PeriodCombiner.combineDbStreams=function(a){var b,c,d,e,f,g,h,k,l,m,n,p,q,r,u,v,t,y,w,x,z,A,B,F,G,D,E;return $jscomp.asyncExecutePromiseGeneratorProgram(function(C){switch(C.nextAddress){case 1:b=shaka.util.ManifestParserUtils.ContentType;if(1==a.length)return C["return"](a[0]);c=a.map(function(H){return H.filter(function(I){return I.type==b.AUDIO})});d=a.map(function(H){return H.filter(function(I){return I.type==b.VIDEO})});e=a.map(function(H){return H.filter(function(I){return I.type==
|
|
1395
|
+
b.TEXT})});f=a.map(function(H){return H.filter(function(I){return I.type==b.IMAGE})});g=$jscomp.makeIterator(e);for(h=g.next();!h.done;h=g.next())k=h.value,k.push(shaka.util.PeriodCombiner.dummyStreamDB_(b.TEXT));l=$jscomp.makeIterator(f);for(m=l.next();!m.done;m=l.next())n=m.value,n.push(shaka.util.PeriodCombiner.dummyStreamDB_(b.IMAGE));return C.yield(shaka.util.PeriodCombiner.combine_([],c,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_),2);case 2:return p=
|
|
1395
1396
|
C.yieldResult,C.yield(shaka.util.PeriodCombiner.combine_([],d,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_),3);case 3:return q=C.yieldResult,C.yield(shaka.util.PeriodCombiner.combine_([],e,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_),4);case 4:return r=C.yieldResult,C.yield(shaka.util.PeriodCombiner.combine_([],f,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_),5);
|
|
1396
1397
|
case 5:u=C.yieldResult;v=0;if(q.length&&p.length)for(z=$jscomp.makeIterator(p),A=z.next();!A.done;A=z.next())for(B=A.value,F=$jscomp.makeIterator(q),G=F.next();!G.done;G=F.next())D=G.value,E=v++,D.variantIds.push(E),B.variantIds.push(E);else for(t=q.concat(p),y=$jscomp.makeIterator(t),w=y.next();!w.done;w=y.next())x=w.value,x.variantIds=[v++];return C["return"](q.concat(p).concat(r).concat(u))}})};
|
|
1397
|
-
shaka.util.PeriodCombiner.combine_=function(a,b,c,d,e){var f,g,h,k,l,m,n,p,q,r,u,v,t,y,w,x,z,A,B,F,G,D,E,C,I,
|
|
1398
|
+
shaka.util.PeriodCombiner.combine_=function(a,b,c,d,e){var f,g,h,k,l,m,n,p,q,r,u,v,t,y,w,x,z,A,B,F,G,D,E,C,H,I,L;return $jscomp.asyncExecutePromiseGeneratorProgram(function(J){switch(J.nextAddress){case 1:f=shaka.util.ManifestParserUtils.ContentType;g=shaka.util.Iterables;h=[];k=$jscomp.makeIterator(g.enumerate(b));for(l=k.next();!l.done;l=k.next())n=m=l.value,p=n.i,q=n.item,p>=c?h.push(new Set(q)):h.push(new Set);r=$jscomp.makeIterator(a);u=r.next();case 2:if(u.done){J.jumpTo(4);break}v=u.value;
|
|
1398
1399
|
return J.yield(shaka.util.PeriodCombiner.extendExistingOutputStream_(v,b,c,e,h),5);case 5:t=J.yieldResult;if(!t)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.PERIOD_FLATTENING_FAILED);u=r.next();J.jumpTo(2);break;case 4:y=$jscomp.makeIterator(h),w=y.next();case 6:if(w.done){J.jumpTo(8);break}x=w.value;z=$jscomp.makeIterator(x);A=z.next();case 9:if(A.done){w=y.next();J.jumpTo(6);break}B=A.value;return J.yield(shaka.util.PeriodCombiner.createNewOutputStream_(B,
|
|
1399
|
-
b,d,e,h),12);case 12:(F=J.yieldResult)&&a.push(F);A=z.next();J.jumpTo(9);break;case 8:G=$jscomp.makeIterator(h);for(w=G.next();!w.done;w=G.next())for(D=w.value,E={},C=$jscomp.makeIterator(D),A=C.next();!A.done;E={$jscomp$loop$prop$stream$551$669:E.$jscomp$loop$prop$stream$551$669},A=C.next())if(E.$jscomp$loop$prop$stream$551$669=A.value,
|
|
1400
|
-
!I
|
|
1400
|
+
b,d,e,h),12);case 12:(F=J.yieldResult)&&a.push(F);A=z.next();J.jumpTo(9);break;case 8:G=$jscomp.makeIterator(h);for(w=G.next();!w.done;w=G.next())for(D=w.value,E={},C=$jscomp.makeIterator(D),A=C.next();!A.done;E={$jscomp$loop$prop$stream$551$669:E.$jscomp$loop$prop$stream$551$669},A=C.next())if(E.$jscomp$loop$prop$stream$551$669=A.value,H=E.$jscomp$loop$prop$stream$551$669.type==f.TEXT&&!E.$jscomp$loop$prop$stream$551$669.language,I=E.$jscomp$loop$prop$stream$551$669.type==f.IMAGE&&!E.$jscomp$loop$prop$stream$551$669.tilesLayout,
|
|
1401
|
+
!H&&!I&&(L=a.some(function(K){return function(N){return N.mimeType==K.$jscomp$loop$prop$stream$551$669.mimeType&&shaka.util.MimeUtils.getCodecBase(N.codecs)==shaka.util.MimeUtils.getCodecBase(K.$jscomp$loop$prop$stream$551$669.codecs)}}(E))))throw shaka.log.error("Unused stream in period-flattening!",E.$jscomp$loop$prop$stream$551$669,a),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.PERIOD_FLATTENING_FAILED);return J["return"](a)}})};
|
|
1401
1402
|
shaka.util.PeriodCombiner.extendExistingOutputStream_=function(a,b,c,d,e){var f;return $jscomp.asyncExecutePromiseGeneratorProgram(function(g){if(1==g.nextAddress){f=shaka.util.PeriodCombiner.findMatchesInAllPeriods_(b,a);if(!f)return shaka.log.error("No matches extending output stream!",a,b),g["return"](!1);goog.asserts.assert(a.createSegmentIndex,"outputStream should be a Stream type!");return g.yield(shaka.util.PeriodCombiner.createSegmentIndexes_(f),2)}goog.asserts.assert(f,"Matches should be non-null");
|
|
1402
1403
|
shaka.util.PeriodCombiner.extendOutputStream_(a,f,c,d,e);return g["return"](!0)})};shaka.util.PeriodCombiner.createSegmentIndexes_=function(a){var b=[];a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next())c=c.value,b.push(c.createSegmentIndex()),c.trickModeVideo&&!c.trickModeVideo.segmentIndex&&b.push(c.trickModeVideo.createSegmentIndex());return Promise.all(b)};
|
|
1403
1404
|
shaka.util.PeriodCombiner.createNewOutputStream_=function(a,b,c,d,e){var f,g;return $jscomp.asyncExecutePromiseGeneratorProgram(function(h){if(1==h.nextAddress)return f=c(a),(g=shaka.util.PeriodCombiner.findMatchesInAllPeriods_(b,f))?f.createSegmentIndex?h.yield(shaka.util.PeriodCombiner.createSegmentIndexes_(g),2):h.jumpTo(2):h["return"](null);goog.asserts.assert(g,"Matches should be non-null");shaka.util.PeriodCombiner.extendOutputStream_(f,g,0,d,e);return h["return"](f)})};
|
|
@@ -1433,23 +1434,23 @@ shaka.dash.DashParser.prototype.requestManifest_=function(){var a=this,b,c,d,e,f
|
|
|
1433
1434
|
g.uri&&!a.manifestUris_.includes(g.uri)&&a.manifestUris_.unshift(g.uri);return l.yield(a.parseManifest_(g.data,g.uri),3)}h=Date.now();k=(h-e)/1E3;a.averageUpdateDuration_.sample(1,k);return l["return"](k)})};
|
|
1434
1435
|
shaka.dash.DashParser.prototype.parseManifest_=function(a,b){var c=this,d,e,f,g,h,k,l;return $jscomp.asyncExecutePromiseGeneratorProgram(function(m){if(1==m.nextAddress){d=shaka.util.Error;e=shaka.dash.MpdUtils;f=shaka.util.XmlUtils.parseXml(a,"MPD");if(!f)throw new d(d.Severity.CRITICAL,d.Category.MANIFEST,d.Code.DASH_INVALID_XML,b);if(g=c.config_.dash.disableXlinkProcessing)return m["return"](c.processManifest_(f,b));h=c.config_.dash.xlinkFailGracefully;k=e.processXlinks(f,c.config_.retryParameters,
|
|
1435
1436
|
h,b,c.playerInterface_.networkingEngine);c.operationManager_.manage(k);return m.yield(k.promise,2)}l=m.yieldResult;return m["return"](c.processManifest_(l,b))})};
|
|
1436
|
-
shaka.dash.DashParser.prototype.processManifest_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,u,v,t,y,w,x,z,A,B,F,G,D,E,C,I,
|
|
1437
|
+
shaka.dash.DashParser.prototype.processManifest_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,u,v,t,y,w,x,z,A,B,F,G,D,E,C,H,I,L,J,K,N,O,Q;return $jscomp.asyncExecutePromiseGeneratorProgram(function(M){switch(M.nextAddress){case 1:d=shaka.util.Functional;e=shaka.util.XmlUtils;f=[b];g=e.findChildren(a,"Location").map(e.getContents).filter(d.isNotNull);0<g.length&&(h=shaka.util.ManifestParserUtils.resolveUris(f,g),f=c.manifestUris_=h);k=e.findChildren(a,"BaseURL");l=k.map(e.getContents);m=shaka.util.ManifestParserUtils.resolveUris(f,
|
|
1437
1438
|
l);n=0;k&&k.length&&(n=e.parseAttr(k[0],"availabilityTimeOffset",e.parseFloat)||0);p=c.config_.dash.ignoreMinBufferTime;q=0;p||(q=e.parseAttr(a,"minBufferTime",e.parseDuration)||0);c.updatePeriod_=e.parseAttr(a,"minimumUpdatePeriod",e.parseDuration,-1);r=e.parseAttr(a,"availabilityStartTime",e.parseDate);u=e.parseAttr(a,"timeShiftBufferDepth",e.parseDuration);v=c.config_.dash.ignoreSuggestedPresentationDelay;t=null;v||(t=e.parseAttr(a,"suggestedPresentationDelay",e.parseDuration));y=c.config_.dash.ignoreMaxSegmentDuration;
|
|
1438
|
-
w=null;y||(w=e.parseAttr(a,"maxSegmentDuration",e.parseDuration));x=a.getAttribute("type")||"static";if(c.manifest_)for(z=c.manifest_.presentationTimeline,A=$jscomp.makeIterator(Object.values(c.segmentIndexMap_)),B=A.next();!B.done;B=A.next())F=B.value,F.evict(z.getSegmentAvailabilityStart());else G=c.config_.defaultPresentationDelay||1.5*q,D=null!=t?t:G,z=new shaka.media.PresentationTimeline(r,D,c.config_.dash.autoCorrectDrift);
|
|
1439
|
-
period:null,periodInfo:null,adaptationSet:null,representation:null,bandwidth:0,indexRangeWarningGiven:!1,availabilityTimeOffset:n,profiles:
|
|
1440
|
-
z.setAvailabilityTimeOffset(c.minTotalAvailabilityTimeOffset_):c.minTotalAvailabilityTimeOffset_&&shaka.log.alwaysWarn("Low-latency DASH 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.");
|
|
1441
|
-
1);goog.DEBUG&&z.assertIsValid();return M.yield(c.periodCombiner_.combinePeriods(
|
|
1439
|
+
w=null;y||(w=e.parseAttr(a,"maxSegmentDuration",e.parseDuration));x=a.getAttribute("type")||"static";if(c.manifest_)for(z=c.manifest_.presentationTimeline,A=$jscomp.makeIterator(Object.values(c.segmentIndexMap_)),B=A.next();!B.done;B=A.next())F=B.value,F.evict(z.getSegmentAvailabilityStart());else G=c.config_.defaultPresentationDelay||1.5*q,D=null!=t?t:G,z=new shaka.media.PresentationTimeline(r,D,c.config_.dash.autoCorrectDrift);z.setStatic("static"==x);(E=z.isLive())&&!isNaN(c.config_.availabilityWindowOverride)&&
|
|
1440
|
+
(u=c.config_.availabilityWindowOverride);null==u&&(u=Infinity);z.setSegmentAvailabilityDuration(u);C=a.getAttribute("profiles")||"";H={dynamic:"static"!=x,presentationTimeline:z,period:null,periodInfo:null,adaptationSet:null,representation:null,bandwidth:0,indexRangeWarningGiven:!1,availabilityTimeOffset:n,profiles:C.split(",")};I=c.parsePeriods_(H,m,a);L=I.duration;J=I.periods;"static"!=x&&I.durationDerivedFromPeriods||z.setDuration(L||Infinity);c.minTotalAvailabilityTimeOffset_&&!c.lowLatencyMode_&&
|
|
1441
|
+
(K=c.playerInterface_.isAutoLowLatencyMode())&&(c.playerInterface_.enableLowLatencyMode(),c.lowLatencyMode_=c.playerInterface_.isLowLatencyMode());c.lowLatencyMode_?z.setAvailabilityTimeOffset(c.minTotalAvailabilityTimeOffset_):c.minTotalAvailabilityTimeOffset_&&shaka.log.alwaysWarn("Low-latency DASH 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.");z.notifyMaxSegmentDuration(w||
|
|
1442
|
+
1);goog.DEBUG&&z.assertIsValid();return M.yield(c.periodCombiner_.combinePeriods(J,H.dynamic),2);case 2:if(c.manifest_){c.manifest_.variants=c.periodCombiner_.getVariants();c.manifest_.textStreams=c.periodCombiner_.getTextStreams();c.manifest_.imageStreams=c.periodCombiner_.getImageStreams();c.playerInterface_.filter(c.manifest_);M.jumpTo(3);break}c.manifest_={presentationTimeline:z,variants:c.periodCombiner_.getVariants(),textStreams:c.periodCombiner_.getTextStreams(),imageStreams:c.periodCombiner_.getImageStreams(),
|
|
1442
1443
|
offlineSessionIds:[],minBufferTime:q||0};if(!z.usingPresentationStartTime()){M.jumpTo(3);break}N=shaka.util.XmlUtils;O=N.findChildren(a,"UTCTiming");return M.yield(c.parseUtcTiming_(m,O),5);case 5:Q=M.yieldResult;if(!c.playerInterface_)return M["return"]();z.setClockOffset(Q);case 3:c.playerInterface_.makeTextStreamsForClosedCaptions(c.manifest_),M.jumpToEnd()}})};
|
|
1443
1444
|
shaka.dash.DashParser.prototype.parsePeriods_=function(a,b,c){var d=shaka.util.XmlUtils,e=d.parseAttr(c,"mediaPresentationDuration",d.parseDuration),f=[],g=0;c=d.findChildren(c,"Period");for(var h=$jscomp.makeIterator(shaka.util.Iterables.enumerate(c)),k=h.next();!k.done;k=h.next()){var l=k.value;k=l.i;var m=l.item;l=l.next;var n=d.parseAttr(m,"start",d.parseDuration,g),p=m.id,q=d.parseAttr(m,"duration",d.parseDuration),r=null;if(l){var u=d.parseAttr(l,"start",d.parseDuration);null!=u&&(r=u-n)}else null!=
|
|
1444
1445
|
e&&(r=e-n);u=shaka.util.ManifestParserUtils.GAP_OVERLAP_TOLERANCE_SECONDS;r&&q&&Math.abs(r-q)>u&&shaka.log.warning("There is a gap/overlap between Periods",m);null==r&&(r=q);if(null!==this.largestPeriodStartTime_&&null!==p&&null!==n&&n<this.largestPeriodStartTime_&&!this.lastManifestUpdatePeriodIds_.includes(p)&&k+1!=c.length)shaka.log.debug("Skipping Period with ID "+p+" as its start time is smaller than the largest period start time that has been seen, and ID is unseen before");else{null!==n&&(null===
|
|
1445
1446
|
this.largestPeriodStartTime_||n>this.largestPeriodStartTime_)&&(this.largestPeriodStartTime_=n);g=this.parsePeriod_(a,b,{start:n,duration:r,node:m,isLastPeriod:null==r||!l});f.push(g);a.period.id&&r&&(this.periodDurations_[a.period.id]=r);if(null==r){l&&shaka.log.warning("Skipping Period",k+1,"and any subsequent Periods:","Period",k+1,"does not have a valid start time.",l);g=null;break}g=n+r}}this.lastManifestUpdatePeriodIds_=f.map(function(v){return v.id});return null!=e?(g!=e&&shaka.log.warning("@mediaPresentationDuration does not match the total duration of ",
|
|
1446
1447
|
"all Periods."),{periods:f,duration:e,durationDerivedFromPeriods:!1}):{periods:f,duration:g,durationDerivedFromPeriods:!0}};
|
|
1447
|
-
shaka.dash.DashParser.prototype.parsePeriod_=function(a,b,c){var d=this,e=shaka.util.Functional,f=shaka.util.XmlUtils,g=shaka.util.ManifestParserUtils.ContentType;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);
|
|
1448
|
-
|
|
1449
|
-
shaka.util.Error.Code.DASH_DUPLICATE_REPRESENTATION_ID);}c=e.filter(function(n){return!n.trickModeFor});e=e.filter(function(n){return n.trickModeFor});e=$jscomp.makeIterator(e);for(f=e.next();!f.done;f=e.next())
|
|
1450
|
-
m.value,k.$jscomp$loop$prop$stream$671.trickModeVideo=f.streams.find(function(n){return function(p){return shaka.util.MimeUtils.getCodecBase(n.$jscomp$loop$prop$stream$671.codecs)==shaka.util.MimeUtils.getCodecBase(p.codecs)}}(k))}}
|
|
1451
|
-
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_EMPTY_PERIOD);g=[];f=$jscomp.makeIterator(f);for(h=f.next();!h.done;h=f.next())g.push.apply(g,$jscomp.arrayFromIterable(h.value.streams));f=[];b=$jscomp.makeIterator(b);for(h=b.next();!h.done;h=b.next())f.push.apply(f,$jscomp.arrayFromIterable(h.value.streams));b=[];e=$jscomp.makeIterator(e);for(h=e.next();!h.done;h=e.next())b.push.apply(b,$jscomp.arrayFromIterable(h.value.streams));
|
|
1452
|
-
c.next())e.push.apply(e,$jscomp.arrayFromIterable(h.value.streams));return{id:a.period.id,audioStreams:g,videoStreams:f,textStreams:b,imageStreams:e}};shaka.dash.DashParser.prototype.getSetsOfType_=function(a,b){return a.filter(function(c){return c.contentType==b})};
|
|
1448
|
+
shaka.dash.DashParser.prototype.parsePeriod_=function(a,b,c){var d=this,e=shaka.util.Functional,f=shaka.util.XmlUtils,g=shaka.util.ManifestParserUtils.ContentType;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,"EventStream");b=a.presentationTimeline.getSegmentAvailabilityStart();
|
|
1449
|
+
h=$jscomp.makeIterator(h);for(var k=h.next();!k.done;k=h.next())this.parseEventStream_(c.start,c.duration,k.value,b);e=f.findChildren(c.node,"AdaptationSet").map(function(n){return d.parseAdaptationSet_(a,n)}).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,
|
|
1450
|
+
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_DUPLICATE_REPRESENTATION_ID);}c=e.filter(function(n){return!n.trickModeFor});e=e.filter(function(n){return n.trickModeFor});e=$jscomp.makeIterator(e);for(f=e.next();!f.done;f=e.next())for(f=f.value,b=f.trickModeFor.split(" "),h=$jscomp.makeIterator(c),k=h.next();!k.done;k=h.next()){var l=k.value;if(b.includes(l.id)){k={};l=$jscomp.makeIterator(l.streams);for(var m=l.next();!m.done;k={$jscomp$loop$prop$stream$671:k.$jscomp$loop$prop$stream$671},
|
|
1451
|
+
m=l.next())k.$jscomp$loop$prop$stream$671=m.value,k.$jscomp$loop$prop$stream$671.trickModeVideo=f.streams.find(function(n){return function(p){return shaka.util.MimeUtils.getCodecBase(n.$jscomp$loop$prop$stream$671.codecs)==shaka.util.MimeUtils.getCodecBase(p.codecs)}}(k))}}f=this.config_.disableAudio?[]:this.getSetsOfType_(c,g.AUDIO);b=this.config_.disableVideo?[]:this.getSetsOfType_(c,g.VIDEO);e=this.config_.disableText?[]:this.getSetsOfType_(c,g.TEXT);c=this.config_.disableThumbnails?[]:this.getSetsOfType_(c,
|
|
1452
|
+
g.IMAGE);if(!b.length&&!f.length)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_EMPTY_PERIOD);g=[];f=$jscomp.makeIterator(f);for(h=f.next();!h.done;h=f.next())g.push.apply(g,$jscomp.arrayFromIterable(h.value.streams));f=[];b=$jscomp.makeIterator(b);for(h=b.next();!h.done;h=b.next())f.push.apply(f,$jscomp.arrayFromIterable(h.value.streams));b=[];e=$jscomp.makeIterator(e);for(h=e.next();!h.done;h=e.next())b.push.apply(b,$jscomp.arrayFromIterable(h.value.streams));
|
|
1453
|
+
e=[];c=$jscomp.makeIterator(c);for(h=c.next();!h.done;h=c.next())e.push.apply(e,$jscomp.arrayFromIterable(h.value.streams));return{id:a.period.id,audioStreams:g,videoStreams:f,textStreams:b,imageStreams:e}};shaka.dash.DashParser.prototype.getSetsOfType_=function(a,b){return a.filter(function(c){return c.contentType==b})};
|
|
1453
1454
|
shaka.dash.DashParser.prototype.parseAdaptationSet_=function(a,b){var c=this,d=shaka.util.XmlUtils,e=shaka.util.Functional,f=shaka.util.ManifestParserUtils,g=f.ContentType,h=shaka.dash.ContentProtection;a.adaptationSet=this.createFrame_(b,a.period,null);var k=!1,l=d.findChildren(b,"Role"),m=l.map(function(D){return D.getAttribute("value")}).filter(e.isNotNull),n=void 0;if(e=a.adaptationSet.contentType==g.TEXT)n=f.TextStreamKind.SUBTITLE;l=$jscomp.makeIterator(l);for(var p=l.next();!p.done;p=l.next()){p=
|
|
1454
1455
|
p.value;var q=p.getAttribute("schemeIdUri");if(null==q||"urn:mpeg:dash:role:2011"==q)switch(p=p.getAttribute("value"),p){case "main":k=!0;break;case "caption":case "subtitle":n=p}}var r;q=function(D){switch(D){case 1:case 6:case 13:case 14:case 15:return"SDR";case 16:return"PQ";case 18:return"HLG"}};var u=d.findChildren(b,"EssentialProperty");l=null;p=!1;u=$jscomp.makeIterator(u);for(var v=u.next();!v.done;v=u.next()){v=v.value;var t=v.getAttribute("schemeIdUri");"http://dashif.org/guidelines/trickmode"==
|
|
1455
1456
|
t?l=v.getAttribute("value"):"urn:mpeg:mpegB:cicp:TransferCharacteristics"==t?r=q(parseInt(v.getAttribute("value"),10)):p=!0}u=d.findChildren(b,"SupplementalProperty");u=$jscomp.makeIterator(u);for(v=u.next();!v.done;v=u.next())v=v.value,"urn:mpeg:mpegB:cicp:TransferCharacteristics"==v.getAttribute("schemeIdUri")&&(r=q(parseInt(v.getAttribute("value"),10)));u=d.findChildren(b,"Accessibility");q=shaka.util.LanguageUtils;var y=new Map;u=$jscomp.makeIterator(u);for(v=u.next();!v.done;v=u.next())if(t=
|
|
@@ -1482,8 +1483,8 @@ shaka.dash.DashParser.prototype.parseUtcTiming_=function(a,b){var c=this,d,e,f,g
|
|
|
1482
1483
|
l=h.value;switch(k){case "urn:mpeg:dash:utc:http-head:2014":case "urn:mpeg:dash:utc:http-head:2012":return p.jumpTo(7);case "urn:mpeg:dash:utc:http-xsdate:2014":case "urn:mpeg:dash:utc:http-iso:2014":case "urn:mpeg:dash:utc:http-xsdate:2012":case "urn:mpeg:dash:utc:http-iso:2012":return p.jumpTo(8);case "urn:mpeg:dash:utc:direct:2014":case "urn:mpeg:dash:utc:direct:2012":return m=Date.parse(l),p["return"](isNaN(m)?0:m-Date.now());case "urn:mpeg:dash:utc:http-ntp:2014":case "urn:mpeg:dash:utc:ntp:2014":case "urn:mpeg:dash:utc:sntp:2014":shaka.log.alwaysWarn("NTP UTCTiming scheme is not supported");
|
|
1483
1484
|
break;default:shaka.log.alwaysWarn("Unrecognized scheme in UTCTiming element",k)}p.jumpTo(9);break;case 7:return p.yield(c.requestForTiming_(a,l,"HEAD"),10);case 10:return p["return"](p.yieldResult);case 8:return p.yield(c.requestForTiming_(a,l,"GET"),11);case 11:return p["return"](p.yieldResult);case 9:p.leaveTryBlock(3);break;case 5:n=p.enterCatchBlock(),shaka.log.warning("Error fetching time from UTCTiming elem",n.message);case 3:g=f.next();p.jumpTo(2);break;case 4:return shaka.log.alwaysWarn("A UTCTiming element should always be given in live manifests! This content may not play on clients with bad clocks!"),
|
|
1484
1485
|
p["return"](0)}})};
|
|
1485
|
-
shaka.dash.DashParser.prototype.parseEventStream_=function(a,b,c){var
|
|
1486
|
-
id:
|
|
1486
|
+
shaka.dash.DashParser.prototype.parseEventStream_=function(a,b,c,d){var e=shaka.util.XmlUtils,f=e.parseNonNegativeInt,g=c.getAttribute("schemeIdUri")||"",h=c.getAttribute("value")||"",k=e.parseAttr(c,"timescale",f)||1;c=$jscomp.makeIterator(e.findChildren(c,"Event"));for(var l=c.next();!l.done;l=c.next()){l=l.value;var m=e.parseAttr(l,"presentationTime",f)||0,n=e.parseAttr(l,"duration",f)||0;m=m/k+a;n=m+n/k;null!=b&&(m=Math.min(m,a+b),n=Math.min(n,a+b));n<d||(l={schemeIdUri:g,value:h,startTime:m,
|
|
1487
|
+
endTime:n,id:l.getAttribute("id")||"",eventElement:l},this.playerInterface_.onTimelineRegionAdded(l))}};
|
|
1487
1488
|
shaka.dash.DashParser.prototype.requestInitSegment_=function(a,b,c){var d=this,e,f,g,h,k;return $jscomp.asyncExecutePromiseGeneratorProgram(function(l){if(1==l.nextAddress)return e=shaka.net.NetworkingEngine.RequestType.SEGMENT,f=shaka.util.Networking.createSegmentRequest(a,b,c,d.config_.retryParameters),g=d.playerInterface_.networkingEngine,h=g.request(e,f),d.operationManager_.manage(h),l.yield(h.promise,2);k=l.yieldResult;return l["return"](k.data)})};
|
|
1488
1489
|
shaka.dash.DashParser.guessContentType_=function(a,b){var c=shaka.util.MimeUtils.getFullType(a,b);return shaka.text.TextEngine.isTypeSupported(c)?shaka.util.ManifestParserUtils.ContentType.TEXT:a.split("/")[0]};goog.exportSymbol("shaka.dash.DashParser",shaka.dash.DashParser);shaka.dash.DashParser.MIN_UPDATE_PERIOD_=3;shaka.media.ManifestParser.registerParserByExtension("mpd",function(){return new shaka.dash.DashParser});shaka.media.ManifestParser.registerParserByMime("application/dash+xml",function(){return new shaka.dash.DashParser});
|
|
1489
1490
|
shaka.media.ManifestParser.registerParserByMime("video/vnd.mpeg.dash.mpd",function(){return new shaka.dash.DashParser});shaka.hls={};shaka.hls.Playlist=function(a,b,c,d){this.absoluteUri=a;this.type=b;this.tags=c;this.segments=d||null};shaka.hls.PlaylistType={MASTER:0,MEDIA:1};shaka.hls.Tag=function(a,b,c,d){this.id=a;this.name=b;this.attributes=c;this.value=void 0===d?null:d};
|
|
@@ -1498,7 +1499,7 @@ shaka.hls.ManifestTextParser.prototype.parsePlaylist=function(a,b){var c=shaka.h
|
|
|
1498
1499
|
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_INVALID_PLAYLIST_HIERARCHY);d=f.splice(k,f.length-k);d=this.parseSegments_(b,d,c);return new shaka.hls.Playlist(b,e,c,d)}c.push(m);"EXT-X-STREAM-INF"==m.name&&(g=new shaka.hls.Attribute("URI",l),m.addAttribute(g),g=!0)}}return new shaka.hls.Playlist(b,e,c)};
|
|
1499
1500
|
shaka.hls.ManifestTextParser.prototype.parseSegments_=function(a,b,c){var d=[],e=[],f=[],g=null;b=$jscomp.makeIterator(b);for(var h=b.next();!h.done;h=b.next())h=h.value,/^(#EXT)/.test(h)?(h=this.parseTag_(h),shaka.hls.ManifestTextParser.MEDIA_PLAYLIST_TAGS.includes(h.name)?c.push(h):"EXT-X-MAP"==h.name?g=h:"EXT-X-PART"==h.name?f.push(h):"EXT-X-PRELOAD-HINT"==h.name?"PART"==h.getAttributeValue("TYPE")?f.push(h):"MAP"==h.getAttributeValue("TYPE")&&(h.setName("EXT-X-MAP"),g=h):e.push(h)):shaka.hls.Utils.isComment(h)||
|
|
1500
1501
|
(h=h.trim(),h=shaka.hls.Utils.constructAbsoluteUri(a,h),g&&e.push(g),e=new shaka.hls.Segment(h,e,f),d.push(e),e=[],f=[]);f.length&&(g&&e.push(g),a=new shaka.hls.Segment("",e,f),d.push(a));return d};shaka.hls.ManifestTextParser.prototype.parseTag_=function(a){return shaka.hls.ManifestTextParser.parseTag(this.globalId_++,a)};
|
|
1501
|
-
shaka.hls.ManifestTextParser.parseTag=function(a,b){var c=b.match(/^#(EXT[^:]*)(?::(.*))?$/);if(!c)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.INVALID_HLS_TAG,b);var d=c[1],e=c[2];c=[];var f;if(e){e=new shaka.util.TextParser(e);var g,h=e.readRegex(/^([^,=]+)(?:,|$)/g);h&&(f=h[1]);for(h=/([^=]+)=(?:"([^"]*)"|([^",]*))(?:,|$)/g;g=e.readRegex(h);)g=new shaka.hls.Attribute(g[1],g[2]||g[3]),c.push(g)}return new shaka.hls.Tag(a,
|
|
1502
|
+
shaka.hls.ManifestTextParser.parseTag=function(a,b){var c=b.match(/^#(EXT[^:]*)(?::(.*))?$/);if(!c)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.INVALID_HLS_TAG,b);var d=c[1],e=c[2];c=[];var f;if(e){e=new shaka.util.TextParser(e);var g,h=e.readRegex(/^([^,=]+)(?:,|$)/g);h&&(f=h[1]);for(h=/([^=]+)=(?:"([^"]*)"|([^",]*))(?:,|$)/g;g=e.readRegex(h);)g=new shaka.hls.Attribute(g[1],g[2]||g[3]),c.push(g),e.skipWhitespace()}return new shaka.hls.Tag(a,
|
|
1502
1503
|
d,c,f)};shaka.hls.ManifestTextParser.MEDIA_PLAYLIST_TAGS="EXT-X-TARGETDURATION EXT-X-MEDIA-SEQUENCE EXT-X-DISCONTINUITY-SEQUENCE EXT-X-PLAYLIST-TYPE EXT-X-I-FRAMES-ONLY EXT-X-ENDLIST EXT-X-SERVER-CONTROL EXT-X-SKIP".split(" ");shaka.hls.ManifestTextParser.SEGMENT_TAGS="EXTINF EXT-X-BYTERANGE EXT-X-DISCONTINUITY EXT-X-PROGRAM-DATE-TIME EXT-X-KEY EXT-X-DATERANGE EXT-X-MAP".split(" ");shaka.net.DataUriPlugin=function(){};shaka.net.DataUriPlugin.parse=function(a,b,c,d){try{var e=shaka.net.DataUriPlugin.parseRaw(a);return shaka.util.AbortableOperation.completed({uri:a,originalUri:a,data:e.data,headers:{"content-type":e.contentType}})}catch(f){return shaka.util.AbortableOperation.failed(f)}};
|
|
1503
1504
|
shaka.net.DataUriPlugin.parseRaw=function(a){var b=a.split(":");if(2>b.length||"data"!=b[0])throw shaka.log.error("Bad data URI, failed to parse scheme"),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.MALFORMED_DATA_URI,a);b=b.slice(1).join(":").split(",");if(2>b.length)throw shaka.log.error("Bad data URI, failed to extract encoding and MIME type"),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.NETWORK,
|
|
1504
1505
|
shaka.util.Error.Code.MALFORMED_DATA_URI,a);var c=b[0];a=window.decodeURIComponent(b.slice(1).join(","));b=c.split(";");c=b[0];var d=!1;1<b.length&&"base64"==b[b.length-1]&&(d=!0,b.pop());return{data:d?shaka.util.Uint8ArrayUtils.fromBase64(a):shaka.util.StringUtils.toUTF8(a),contentType:c}};goog.exportSymbol("shaka.net.DataUriPlugin",shaka.net.DataUriPlugin);goog.exportProperty(shaka.net.DataUriPlugin,"parse",shaka.net.DataUriPlugin.parse);shaka.net.NetworkingEngine.registerScheme("data",shaka.net.DataUriPlugin.parse);shaka.hls.HlsParser=function(){var a=this;this.config_=this.playerInterface_=null;this.globalId_=1;this.globalVariables_=new Map;this.groupIdToStreamInfosMap_=new Map;this.variantUriSet_=new Set;this.uriToStreamInfosMap_=new Map;this.presentationTimeline_=null;this.masterPlaylistUri_="";this.manifestTextParser_=new shaka.hls.ManifestTextParser;this.updatePlaylistDelay_=0;this.updatePlaylistTimer_=new shaka.util.Timer(function(){a.onUpdate_()});this.presentationType_=shaka.hls.HlsParser.PresentationType_.VOD;
|
|
@@ -1511,12 +1512,12 @@ shaka.hls.HlsParser.prototype.update=function(){var a=this,b,c,d;return $jscomp.
|
|
|
1511
1512
|
shaka.hls.HlsParser.prototype.updateStream_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r;return $jscomp.asyncExecutePromiseGeneratorProgram(function(u){if(1==u.nextAddress)return c=shaka.hls.HlsParser.PresentationType_,d=a.absoluteMediaPlaylistUri,e=new goog.Uri(d),b.lowLatencyMode_&&a.canSkipSegments&&e.setQueryData(new goog.Uri.QueryData("_HLS_skip=YES")),u.yield(b.requestManifest_(e.toString()),2);if(3!=u.nextAddress){f=u.yieldResult;g=b.manifestTextParser_.parsePlaylist(f.data,f.uri);if(g.type!=
|
|
1512
1513
|
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(g.tags,"EXT-X-DEFINE");k=b.parseMediaVariables_(h);l=a.stream;return u.yield(b.createSegments_(a.verbatimMediaPlaylistUri,g,l.type,l.mimeType,a.mediaSequenceToStartTime,k,a.discontinuityToMediaSequence),3)}m=u.yieldResult;l.segmentIndex.mergeAndEvict(m,b.presentationTimeline_.getSegmentAvailabilityStart());
|
|
1513
1514
|
m.length&&(n=shaka.hls.Utils.getFirstTagWithNameAsNumber(g.tags,"EXT-X-MEDIA-SEQUENCE",0),p=a.mediaSequenceToStartTime.get(n),l.segmentIndex.evict(p));q=m[m.length-1];goog.asserts.assert(q,"Should have segments!");if(r=shaka.hls.Utils.getFirstTagWithName(g.tags,"EXT-X-ENDLIST"))b.setPresentationType_(c.VOD),b.presentationTimeline_.setDuration(q.endTime);u.jumpToEnd()})};shaka.hls.HlsParser.prototype.onExpirationUpdated=function(a,b){};
|
|
1514
|
-
shaka.hls.HlsParser.prototype.parseManifest_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,u,v,t,y,w,x,z,A,B,F,G,D,E,C,I,
|
|
1515
|
+
shaka.hls.HlsParser.prototype.parseManifest_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,u,v,t,y,w,x,z,A,B,F,G,D,E,C,H,I,L,J,K,N,O,Q;return $jscomp.asyncExecutePromiseGeneratorProgram(function(M){switch(M.nextAddress){case 1:c=shaka.hls.Utils;goog.asserts.assert(b.masterPlaylistUri_,"Master playlist URI must be set before calling parseManifest_!");d=b.manifestTextParser_.parsePlaylist(a,b.masterPlaylistUri_);if(d.type!=shaka.hls.PlaylistType.MASTER)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
1515
1516
|
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_MASTER_PLAYLIST_NOT_PROVIDED);e=c.filterTagsByName(d.tags,"EXT-X-DEFINE");b.parseMasterVariables_(e);f=c.filterTagsByName(d.tags,"EXT-X-MEDIA");g=c.filterTagsByName(d.tags,"EXT-X-STREAM-INF");b.parseCodecs_(g);h=c.filterTagsByName(d.tags,"EXT-X-SESSION-DATA");k=$jscomp.makeIterator(h);for(l=k.next();!l.done;l=k.next())if(m=l.value,n=m.getAttributeValue("DATA-ID"),p=m.getAttributeValue("URI"),q=m.getAttributeValue("LANGUAGE"),r=m.getAttributeValue("VALUE"),
|
|
1516
1517
|
u=(new Map).set("id",n),p&&u.set("uri",shaka.hls.Utils.constructAbsoluteUri(b.masterPlaylistUri_,p)),q&&u.set("language",q),r&&u.set("value",r),v=new shaka.util.FakeEvent("sessiondata",u),b.playerInterface_)b.playerInterface_.onEvent(v);return M.yield(b.createStreamInfosFromMediaTags_(f),2);case 2:return b.parseClosedCaptions_(f),M.yield(b.createVariantsForTags_(g),3);case 3:return t=M.yieldResult,M.yield(b.parseTexts_(f),4);case 4:y=M.yieldResult;if(!b.playerInterface_)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
1517
1518
|
shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.OPERATION_ABORTED);if(b.aesEncrypted_&&0==t.length)throw shaka.log.info("No stream is created, because we don't support AES-128","encryption yet"),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_AES_128_ENCRYPTION_NOT_SUPPORTED);x=w=Infinity;z=$jscomp.makeIterator(b.uriToStreamInfosMap_.values());for(A=z.next();!A.done;A=z.next())B=A.value,w=Math.min(w,B.minTimestamp),"text"!=
|
|
1518
1519
|
B.stream.type&&(x=Math.min(x,B.maxTimestamp-B.minTimestamp));goog.asserts.assert(null==b.presentationTimeline_,"Presentation timeline created early!");b.createPresentationTimeline_();goog.asserts.assert(b.presentationTimeline_,"Presentation timeline not created!");if(b.isLive_())b.updatePlaylistDelay_=b.minTargetDuration_,F=shaka.hls.HlsParser.PresentationType_,b.presentationType_==F.LIVE&&(G=b.presentationTimeline_.getDelay(),isNaN(b.config_.availabilityWindowOverride)||(G=b.config_.availabilityWindowOverride),
|
|
1519
|
-
b.presentationTimeline_.setSegmentAvailabilityDuration(G));else for(b.presentationTimeline_.setDuration(x),b.presentationTimeline_.offset(-w),D=$jscomp.makeIterator(b.uriToStreamInfosMap_.values()),A=D.next();!A.done;A=D.next())E=A.value,E.stream.segmentIndex.offset(-w),E.stream.segmentIndex.fit(0,x);b.segmentsToNotifyByStream_=[];C=[];
|
|
1520
|
+
b.presentationTimeline_.setSegmentAvailabilityDuration(G));else for(b.presentationTimeline_.setDuration(x),b.presentationTimeline_.offset(-w),D=$jscomp.makeIterator(b.uriToStreamInfosMap_.values()),A=D.next();!A.done;A=D.next())E=A.value,E.stream.segmentIndex.offset(-w),E.stream.segmentIndex.fit(0,x);b.segmentsToNotifyByStream_=[];C=[];H=$jscomp.makeIterator(t);for(I=H.next();!I.done;I=H.next())for(L=I.value,J=$jscomp.makeIterator([L.video,L.audio]),K=J.next();!K.done;K=J.next())(N=K.value)&&C.push(N);
|
|
1520
1521
|
return M.yield(Promise.all(C.map(function(P){return $jscomp.asyncExecutePromiseGeneratorProgram(function(R){return R.yield(P.createSegmentIndex(),0)})})),5);case 5:O=$jscomp.makeIterator(C);for(K=O.next();!K.done;K=O.next())Q=K.value,b.segmentsToNotifyByStream_.push(Q.segmentIndex.references);b.notifySegments_();goog.asserts.assert(!b.presentationTimeline_.usingPresentationStartTime(),"We should not be using the presentation start time in HLS!");b.manifest_={presentationTimeline:b.presentationTimeline_,
|
|
1521
1522
|
variants:t,textStreams:y,imageStreams:[],offlineSessionIds:[],minBufferTime:0};b.playerInterface_.makeTextStreamsForClosedCaptions(b.manifest_);M.jumpToEnd()}})};shaka.hls.HlsParser.prototype.parseMasterVariables_=function(a){a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next()){var c=b.value;b=c.getAttributeValue("NAME");c=c.getAttributeValue("VALUE");b&&c&&(this.globalVariables_.has(b)||this.globalVariables_.set(b,c))}};
|
|
1522
1523
|
shaka.hls.HlsParser.prototype.parseMediaVariables_=function(a){var b=new Map;a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next()){var d=c.value;c=d.getAttributeValue("NAME");var e=d.getAttributeValue("VALUE");d=d.getAttributeValue("IMPORT");c&&e&&b.set(c,e);d&&(c=this.globalVariables_.get(d))&&b.set(d,c)}return b};
|
|
@@ -1545,9 +1546,9 @@ if(b.uriToStreamInfosMap_.has(f))return v["return"](b.uriToStreamInfosMap_.get(f
|
|
|
1545
1546
|
[u]);if(null==u)return v["return"](null);if(b.uriToStreamInfosMap_.has(f))return v["return"](b.uriToStreamInfosMap_.get(f));b.uriToStreamInfosMap_.set(f,u);return v["return"](u)})};
|
|
1546
1547
|
shaka.hls.HlsParser.prototype.createStreamInfoFromVariantTag_=function(a,b,c){var d=this,e,f,g,h;return $jscomp.asyncExecutePromiseGeneratorProgram(function(k){if(1==k.nextAddress){goog.asserts.assert("EXT-X-STREAM-INF"==a.name,"Should only be called on variant tags!");e=d.variableSubstitution_(a.getRequiredAttrValue("URI"),d.globalVariables_);if(d.uriToStreamInfosMap_.has(e))return k["return"](d.uriToStreamInfosMap_.get(e));f=d.getClosedCaptions_(a,c);g=shaka.util.ManifestParserUtils.guessCodecs(c,
|
|
1547
1548
|
b);return k.yield(d.createStreamInfo_(e,g,c,"und",!1,null,null,f,null,!1,!1),2)}h=k.yieldResult;if(null==h)return k["return"](null);if(d.uriToStreamInfosMap_.has(e))return k["return"](d.uriToStreamInfosMap_.get(e));d.uriToStreamInfosMap_.set(e,h);return k["return"](h)})};
|
|
1548
|
-
shaka.hls.HlsParser.prototype.createStreamInfo_=function(a,b,c,d,e,f,g,h,k,l,m){var n=this,p,q,r,u,v,t,y,w,x,z,A,B,F,G,D,E,C,I,
|
|
1549
|
+
shaka.hls.HlsParser.prototype.createStreamInfo_=function(a,b,c,d,e,f,g,h,k,l,m){var n=this,p,q,r,u,v,t,y,w,x,z,A,B,F,G,D,E,C,H,I,L,J,K,N,O,Q,M,P,R,W,X,Y,Z,U,V,T,aa,ba,ca,da;return $jscomp.asyncExecutePromiseGeneratorProgram(function(S){switch(S.nextAddress){case 1:return p=shaka.hls.Utils.constructAbsoluteUri(n.masterPlaylistUri_,a),S.yield(n.requestManifest_(p),2);case 2:q=S.yieldResult;p=q.uri;r=n.manifestTextParser_.parsePlaylist(q.data,p);if(r.type!=shaka.hls.PlaylistType.MEDIA)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
1549
1550
|
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_INVALID_PLAYLIST_HIERARCHY);u=[];if(r.segments)for(v=$jscomp.makeIterator(r.segments),t=v.next();!t.done;t=v.next())y=t.value,w=shaka.hls.Utils.filterTagsByName(y.tags,"EXT-X-KEY"),u.push.apply(u,$jscomp.arrayFromIterable(w));x=!1;z=[];A=new Set;B=$jscomp.makeIterator(u);for(F=B.next();!F.done;F=B.next())if(G=F.value,D=G.getRequiredAttrValue("METHOD"),"NONE"!=D){x=!0;if("AES-128"==D)return shaka.log.warning("Unsupported HLS Encryption",
|
|
1550
|
-
D),n.aesEncrypted_=!0,S["return"](null);E=G.getRequiredAttrValue("KEYFORMAT");if(
|
|
1551
|
+
D),n.aesEncrypted_=!0,S["return"](null);E=G.getRequiredAttrValue("KEYFORMAT");if(H=(C=shaka.hls.HlsParser.KEYFORMATS_TO_DRM_PARSERS_[E])?C(G):null){if(H.keyIds)for(I=$jscomp.makeIterator(H.keyIds),L=I.next();!L.done;L=I.next())J=L.value,A.add(J);z.push(H)}else shaka.log.warning("Unsupported HLS KEYFORMAT",E)}if(x&&!z.length)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_KEYFORMATS_NOT_SUPPORTED);K=shaka.hls.Utils.filterTagsByName(r.tags,
|
|
1551
1552
|
"EXT-X-DEFINE");N=n.parseMediaVariables_(K);goog.asserts.assert(null!=r.segments,"Media playlist should have segments!");n.determinePresentationType_(r);return S.yield(n.guessMimeType_(c,b,r,N),3);case 3:return O=S.yieldResult,shaka.hls.HlsParser.RAW_FORMATS_.includes(O)&&(b=""),Q=new Map,M=new Map,S.setCatchFinallyBlocks(4),S.yield(n.createSegments_(a,r,c,O,Q,N,M),6);case 6:P=S.yieldResult;S.leaveTryBlock(5);break;case 4:R=S.enterCatchBlock();if(R.code==shaka.util.Error.Code.HLS_INTERNAL_SKIP_STREAM)return shaka.log.alwaysWarn("Skipping unsupported HLS stream",
|
|
1552
1553
|
O,a),S["return"](null);throw R;case 5:W=P[0].startTime;X=P[P.length-1].endTime;Y=new shaka.media.SegmentIndex(P);Z=c==shaka.util.ManifestParserUtils.ContentType.TEXT?shaka.util.ManifestParserUtils.TextStreamKind.SUBTITLE:void 0;U=[];if(k)for(V=$jscomp.makeIterator(k.split(",")),T=V.next();!T.done;T=V.next())aa=T.value,U.push(aa);ca=(ba=shaka.hls.Utils.getFirstTagWithName(r.tags,"EXT-X-SERVER-CONTROL"))?null!=ba.getAttribute("CAN-SKIP-UNTIL"):!1;da={id:n.globalId_++,originalId:f,createSegmentIndex:function(){return Promise.resolve()},
|
|
1553
1554
|
segmentIndex:Y,mimeType:O,codecs:b,kind:Z,encrypted:x,drmInfos:z,keyIds:A,language: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:U,forced:l,channelsCount:g,audioSamplingRate:null,spatialAudio:m,closedCaptions:h,hdr:void 0,tilesLayout:void 0};return S["return"]({stream:da,verbatimMediaPlaylistUri:a,absoluteMediaPlaylistUri:p,minTimestamp:W,maxTimestamp:X,mediaSequenceToStartTime:Q,discontinuityToMediaSequence:M,
|
|
@@ -1562,10 +1563,10 @@ shaka.hls.HlsParser.prototype.createSegmentReference_=function(a,b,c,d,e,f,g){va
|
|
|
1562
1563
|
t,y,a,e,0,Infinity);p.push(q)}}else if(!l)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_REQUIRED_TAG_MISSING,"EXTINF");l?(g=l.value.split(","),m=d+Number(g[0])):m=p[p.length-1].endTime;(h=shaka.hls.Utils.getFirstTagWithName(h,"EXT-X-BYTERANGE"))?(b=$jscomp.makeIterator(this.parseByteRange_(b,h.value)),f=b.next().value,n=b.next().value):p.length&&(f=p[0].startByte,n=p[p.length-1].endByte);return new shaka.media.SegmentReference(d,
|
|
1563
1564
|
m,function(){return k.length?[k]:[]},f,n,a,e,0,Infinity,p)};shaka.hls.HlsParser.prototype.parseByteRange_=function(a,b){var c=0,d=null;b&&(c=b.split("@"),d=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+d-1);return[c,d]};
|
|
1564
1565
|
shaka.hls.HlsParser.prototype.notifySegments_=function(){if(this.presentationTimeline_){for(var a=$jscomp.makeIterator(this.segmentsToNotifyByStream_),b=a.next();!b.done;b=a.next())this.presentationTimeline_.notifySegments(b.value);this.segmentsToNotifyByStream_=[]}};
|
|
1565
|
-
shaka.hls.HlsParser.prototype.createSegments_=function(a,b,c,d,e,f,g){var h=this,k,l,m,n,p,q,r,u,v,t,y,w,x,z,A,B,F,G,D,E,C,I,
|
|
1566
|
+
shaka.hls.HlsParser.prototype.createSegments_=function(a,b,c,d,e,f,g){var h=this,k,l,m,n,p,q,r,u,v,t,y,w,x,z,A,B,F,G,D,E,C,H,I,L,J;return $jscomp.asyncExecutePromiseGeneratorProgram(function(K){switch(K.nextAddress){case 1:k=b.segments;goog.asserts.assert(k.length,"Playlist should have segments!");m=shaka.hls.Utils.getFirstTagWithNameAsNumber(b.tags,"EXT-X-MEDIA-SEQUENCE",0);p=(n=shaka.hls.Utils.getFirstTagWithName(b.tags,"EXT-X-SKIP"))?Number(n.getAttributeValue("SKIPPED-SEGMENTS")):0;q=m+p;if(h.isLive_()&&
|
|
1566
1567
|
e.has(q)){r=e.get(q);K.jumpTo(2);break}if(null!=h.playlistStartTime_){K.jumpTo(3);break}l=h.getInitSegmentReference_(b.absoluteUri,k[0].tags,f);goog.asserts.assert(c!=shaka.util.ManifestParserUtils.ContentType.TEXT,"Should only get start time from audio or video streams");u=h;return K.yield(h.getStartTime_(a,l,d,q,!1,k[0],f),4);case 4:u.playlistStartTime_=K.yieldResult;case 3:r=h.playlistStartTime_;case 2:v=k[0].absoluteUri;shaka.log.debug("First segment",v.split("/").pop(),"starts at",r);t=shaka.hls.Utils.getFirstTagWithNameAsNumber(b.tags,
|
|
1567
|
-
"EXT-X-DISCONTINUITY-SEQUENCE");if(h.lowLatencyMode_&&(g.has(t)||g.set(t,q),p))for(;g.has(t+1)&&g.get(t+1)<q;)t++;y=h.discontinuityToTso_.get(t)||0;w=[];x=function(N){return shaka.util.Iterables.enumerate(N)};z=$jscomp.makeIterator(x(k));A=z.next();case 5:if(A.done){K.jumpTo(7);break}F=B=A.value;G=F.i;D=F.item;E=w[w.length-1];C=0==G?r:E.endTime;q=m+p+G;e.set(q,C);l=h.getInitSegmentReference_(b.absoluteUri,D.tags,f);
|
|
1568
|
-
break}t++;g.set(t,q);return K.yield(h.getTimestampOffset_(t,a,l,d,q,D,f,C),9);case 9:y=K.yieldResult;case 8:!h.lowLatencyMode_&&(
|
|
1568
|
+
"EXT-X-DISCONTINUITY-SEQUENCE");if(h.lowLatencyMode_&&(g.has(t)||g.set(t,q),p))for(;g.has(t+1)&&g.get(t+1)<q;)t++;y=h.discontinuityToTso_.get(t)||0;w=[];x=function(N){return shaka.util.Iterables.enumerate(N)};z=$jscomp.makeIterator(x(k));A=z.next();case 5:if(A.done){K.jumpTo(7);break}F=B=A.value;G=F.i;D=F.item;E=w[w.length-1];C=0==G?r:E.endTime;q=m+p+G;e.set(q,C);l=h.getInitSegmentReference_(b.absoluteUri,D.tags,f);H=shaka.hls.Utils.getFirstTagWithName(D.tags,"EXT-X-DISCONTINUITY");if(!H){K.jumpTo(8);
|
|
1569
|
+
break}t++;g.set(t,q);return K.yield(h.getTimestampOffset_(t,a,l,d,q,D,f,C),9);case 9:y=K.yieldResult;case 8:!h.lowLatencyMode_&&(I=h.playerInterface_.isAutoLowLatencyMode())&&(h.playerInterface_.enableLowLatencyMode(),h.lowLatencyMode_=h.playerInterface_.isLowLatencyMode());L=shaka.hls.Utils.getFirstTagWithName(D.tags,"EXTINF");h.lowLatencyMode_||L?(J=h.createSegmentReference_(l,E,D,C,y,f,b.absoluteUri),w.push(J)):h.lowLatencyMode_||shaka.log.alwaysWarn("Low-latency HLS 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.");
|
|
1569
1570
|
A=z.next();K.jumpTo(5);break;case 7:return K["return"](w)}})};shaka.hls.HlsParser.prototype.getTimestampOffset_=function(a,b,c,d,e,f,g,h){var k=this,l,m;return $jscomp.asyncExecutePromiseGeneratorProgram(function(n){if(1==n.nextAddress)return l=0,k.discontinuityToTso_.has(a)?(l=k.discontinuityToTso_.get(a),n.jumpTo(2)):n.yield(k.getStartTime_(b,c,d,e,!0,f,g),3);2!=n.nextAddress&&(m=n.yieldResult,l=h-m,shaka.log.v1("Segment timestampOffset =",l),k.discontinuityToTso_.set(a,l));return n["return"](l)})};
|
|
1570
1571
|
shaka.hls.HlsParser.prototype.fetchStartOfSegment_=function(a){var b=this,c,d,e,f,g,h;return $jscomp.asyncExecutePromiseGeneratorProgram(function(k){switch(k.nextAddress){case 1:c=shaka.net.NetworkingEngine.RequestType.SEGMENT;d=shaka.util.Networking.createSegmentRequest(a.getUris(),a.startByte,a.endByte,b.config_.retryParameters);if(b.config_.hls.useFullSegmentsForStartTime)return k["return"](b.makeNetworkRequest_(d,c));e=shaka.util.Networking.createSegmentRequest(a.getUris(),a.startByte,a.startByte+
|
|
1571
1572
|
shaka.hls.HlsParser.START_OF_SEGMENT_SIZE_-1,b.config_.retryParameters);k.setCatchFinallyBlocks(2);return k.yield(b.makeNetworkRequest_(e,c),4);case 4:return f=k.yieldResult,k["return"](f);case 2:g=k.enterCatchBlock();if(g.code==shaka.util.Error.Code.OPERATION_ABORTED)throw g;shaka.log.alwaysWarn("Unable to fetch the starting part of HLS segment! Falling back to a full segment request, which is expensive! Your server should support Range requests and CORS preflights.",e.uris[0]);return k.yield(b.makeNetworkRequest_(d,
|
|
@@ -1715,11 +1716,11 @@ shaka.offline.Storage.prototype.store_=function(a,b,c,d,e){var f=this,g,h,k,l,m,
|
|
|
1715
1716
|
shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.CANNOT_STORE_LIVE_OFFLINE,a);return t.yield(f.createDrmEngine(n,function(y){m=m||y},d),7);case 7:h=t.yieldResult;f.ensureNotDestroyed_();if(m)throw m;return t.yield(f.filterManifest_(n,h,d),8);case 8:return t.yield(k.init(),9);case 9:return f.ensureNotDestroyed_(),t.yield(k.getActive(),10);case 10:return l=t.yieldResult,f.ensureNotDestroyed_(),goog.asserts.assert(h,"drmEngine should be non-null here."),t.yield(f.downloadManifest_(l.cell,h,n,
|
|
1716
1717
|
a,b,d,e),11);case 11:q=t.yieldResult;f.ensureNotDestroyed_();if(m)throw m;return t.yield(l.cell.addManifests([q]),12);case 12:return r=t.yieldResult,f.ensureNotDestroyed_(),u=shaka.offline.OfflineUri.manifest(l.path.mechanism,l.path.cell,r[0]),t["return"](shaka.offline.StoredContentUtils.fromManifestDB(u,q));case 3:return t.enterFinallyBlock(),f.segmentsFromStore_=[],t.yield(k.destroy(),13);case 13:if(!g){t.jumpTo(14);break}return t.yield(g.stop(),14);case 14:if(!h){t.jumpTo(16);break}return t.yield(h.destroy(),
|
|
1717
1718
|
16);case 16:t.leaveFinallyBlock(0);break;case 2:v=t.enterCatchBlock();if(!l){t.jumpTo(18);break}return t.yield(l.cell.removeSegments(f.segmentsFromStore_,function(){}),18);case 18:throw m||v;}})};
|
|
1718
|
-
shaka.offline.Storage.prototype.filterManifest_=function(a,b,c){var d,e,f,g,h,k,l,m,n,p,q,r,u,v,t,y,w,x,z,A,B,F,G,D,E,C
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
shaka.log.warning("downloadSizeCallback has produced an unexpected error",
|
|
1722
|
-
a.imageStreams=a.imageStreams.filter(function(
|
|
1719
|
+
shaka.offline.Storage.prototype.filterManifest_=function(a,b,c){var d,e,f,g,h,k,l,m,n,p,q,r,u,v,t,y,w,x,z,A,B,F,G,D,E,C;return $jscomp.asyncExecutePromiseGeneratorProgram(function(H){switch(H.nextAddress){case 1:d={width:Infinity,height:Infinity};shaka.util.StreamUtils.filterByRestrictions(a,c.restrictions,d);if(!c.useMediaCapabilities){shaka.util.StreamUtils.filterManifestByMediaSource(a);shaka.util.StreamUtils.filterManifestByDrm(a,b);H.jumpTo(2);break}return H.yield(shaka.util.StreamUtils.filterManifestByMediaCapabilities(a,
|
|
1720
|
+
c.offline.usePersistentLicense),2);case 2:e=[];f=c.preferredAudioChannelCount;shaka.util.StreamUtils.chooseCodecsAndFilterManifest(a,f);g=$jscomp.makeIterator(a.variants);for(h=g.next();!h.done;h=g.next())k=h.value,goog.asserts.assert(shaka.util.StreamUtils.isPlayable(k),'We should have already filtered by "is playable"'),e.push(shaka.util.StreamUtils.variantToTrack(k));l=$jscomp.makeIterator(a.textStreams);for(m=l.next();!m.done;m=l.next())n=m.value,e.push(shaka.util.StreamUtils.textStreamToTrack(n));
|
|
1721
|
+
p=$jscomp.makeIterator(a.imageStreams);for(q=p.next();!q.done;q=p.next())r=q.value,e.push(shaka.util.StreamUtils.imageStreamToTrack(r));return H.yield(c.offline.trackSelectionCallback(e),4);case 4:u=H.yieldResult;v=a.presentationTimeline.getDuration();t=0;y=$jscomp.makeIterator(u);for(w=y.next();!w.done;w=y.next())x=w.value,z=x.bandwidth*v/8,t+=z;H.setCatchFinallyBlocks(5);return H.yield(c.offline.downloadSizeCallback(t),7);case 7:A=H.yieldResult;if(!A)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
1722
|
+
shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.STORAGE_LIMIT_REACHED);H.leaveTryBlock(6);break;case 5:B=H.enterCatchBlock();if(B instanceof shaka.util.Error)throw B;shaka.log.warning("downloadSizeCallback has produced an unexpected error",B);throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.DOWNLOAD_SIZE_CALLBACK_ERROR);case 6:F=new Set;G=new Set;D=new Set;E=$jscomp.makeIterator(u);for(w=E.next();!w.done;w=E.next())C=w.value,
|
|
1723
|
+
"variant"==C.type&&F.add(C.id),"text"==C.type&&G.add(C.id),"image"==C.type&&D.add(C.id);a.variants=a.variants.filter(function(I){return F.has(I.id)});a.textStreams=a.textStreams.filter(function(I){return G.has(I.id)});a.imageStreams=a.imageStreams.filter(function(I){return D.has(I.id)});shaka.offline.Storage.validateManifest_(a);H.jumpToEnd()}})};
|
|
1723
1724
|
shaka.offline.Storage.prototype.downloadManifest_=function(a,b,c,d,e,f,g){var h=this,k,l,m,n,p,q,r,u,v,t,y,w;return $jscomp.asyncExecutePromiseGeneratorProgram(function(x){switch(x.nextAddress){case 1:return k=shaka.offline.StoredContentUtils.fromManifest(d,c,0,e),l=f.offline.progressCallback,m=function(z,A){k.size=A;l(k,z)},n=function(z,A){r&&f.offline.usePersistentLicense&&u==A&&b.newInitData("cenc",z)},g.setCallbacks(m,n),p=c.variants.some(function(z){var A=z.audio&&z.audio.encrypted;return z.video&&
|
|
1724
1725
|
z.video.encrypted||A}),q=c.variants.some(function(z){return(z.video?z.video.drmInfos:[]).concat(z.audio?z.audio.drmInfos:[]).some(function(A){return A.initData&&A.initData.length})}),r=p&&!q,u=null,r&&(v=b.getDrmInfo(),u=shaka.offline.Storage.defaultSystemIds_.get(v.keySystem)),x.setFinallyBlock(2),y=t=h.createOfflineManifest_(g,a,b,c,d,e,f),x.yield(g.waitToFinish(),4);case 4:y.size=x.yieldResult;t.expiration=b.getExpiration();w=b.getSessionIds();t.sessionIds=f.offline.usePersistentLicense?w:[];if(p&&
|
|
1725
1726
|
f.offline.usePersistentLicense&&!w.length)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.NO_INIT_DATA_FOR_OFFLINE);return x["return"](t);case 2:return x.enterFinallyBlock(),x.yield(g.destroy(),5);case 5:x.leaveFinallyBlock(0)}})};shaka.offline.Storage.prototype.remove=function(a){return this.startOperation_(this.remove_(a))};
|
|
@@ -2090,8 +2091,8 @@ shaka.ui.Controls=function(a,b,c,d){shaka.util.FakeEventTarget.call(this);var e=
|
|
|
2090
2091
|
null;this.elements_=[];this.localization_=shaka.ui.Controls.createLocalization_();this.eventManager_=new shaka.util.EventManager;this.configure(this.config_);this.addEventListeners_();this.pressedKeys_=new Set;this.onCastStatusChange_();this.timeAndSeekRangeTimer_.tickEvery(.125);this.eventManager_.listen(this.localization_,shaka.ui.Localization.LOCALE_CHANGED,function(f){e.adManager_.setLocale(f.locales[0])})};$jscomp.inherits(shaka.ui.Controls,shaka.util.FakeEventTarget);
|
|
2091
2092
|
shaka.ui.Controls.prototype.destroy=function(){var a=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(b){switch(b.nextAddress){case 1:if(document.pictureInPictureElement!=a.localVideo_){b.jumpTo(2);break}return b.yield(document.exitPictureInPicture(),2);case 2:a.eventManager_&&(a.eventManager_.release(),a.eventManager_=null);a.mouseStillTimer_&&(a.mouseStillTimer_.stop(),a.mouseStillTimer_=null);a.fadeControlsTimer_&&(a.fadeControlsTimer_.stop(),a.fadeControlsTimer_=null);a.hideSettingsMenusTimer_&&
|
|
2092
2093
|
(a.hideSettingsMenusTimer_.stop(),a.hideSettingsMenusTimer_=null);a.timeAndSeekRangeTimer_&&(a.timeAndSeekRangeTimer_.stop(),a.timeAndSeekRangeTimer_=null);a.releaseChildElements_();a.controlsContainer_&&(a.videoContainer_.removeChild(a.controlsContainer_),a.controlsContainer_=null);if(!a.castProxy_){b.jumpTo(4);break}return b.yield(a.castProxy_.destroy(),5);case 5:a.castProxy_=null;case 4:if(!a.localPlayer_){b.jumpTo(6);break}return b.yield(a.localPlayer_.destroy(),7);case 7:a.localPlayer_=null;
|
|
2093
|
-
case 6:a.player_=null,a.localVideo_=null,a.video_=null,a.localization_=null,a.pressedKeys_.clear(),b.jumpToEnd()}})};shaka.ui.Controls.prototype.releaseChildElements_=function(){for(var a=$jscomp.makeIterator(this.elements_),b=a.next();!b.done;b=a.next())b.value.release();this.elements_=[]};shaka.ui.Controls.registerElement=function(a,b){shaka.ui.ControlsPanel.elementNamesToFactories_.set(a,b)};
|
|
2094
|
-
shaka.ui.Controls.prototype.allowCast=function(a){this.castAllowed_=a;this.onCastStatusChange_()};shaka.ui.Controls.prototype.loadComplete=function(){this.onPlayStateChange_()};
|
|
2094
|
+
case 6:a.player_=null,a.localVideo_=null,a.video_=null,a.localization_=null,a.pressedKeys_.clear(),shaka.util.FakeEventTarget.prototype.release.call(a),b.jumpToEnd()}})};shaka.ui.Controls.prototype.releaseChildElements_=function(){for(var a=$jscomp.makeIterator(this.elements_),b=a.next();!b.done;b=a.next())b.value.release();this.elements_=[]};shaka.ui.Controls.registerElement=function(a,b){shaka.ui.ControlsPanel.elementNamesToFactories_.set(a,b)};
|
|
2095
|
+
shaka.ui.Controls.registerSeekBar=function(a){shaka.ui.ControlsPanel.seekBarFactory_=a};shaka.ui.Controls.prototype.allowCast=function(a){this.castAllowed_=a;this.onCastStatusChange_()};shaka.ui.Controls.prototype.loadComplete=function(){this.onPlayStateChange_()};
|
|
2095
2096
|
shaka.ui.Controls.prototype.configure=function(a){this.config_=a;this.castProxy_.changeReceiverId(a.castReceiverAppId);this.seekBar_&&(this.seekBar_=null);this.playButton_&&(this.playButton_=null);this.controlsContainer_?(shaka.util.Dom.removeAllChildren(this.controlsContainer_),this.releaseChildElements_()):(this.addControlsContainer_(),this.addClientAdContainer_());this.createDOM_();this.onPlayStateChange_();a=this.videoContainer_.getElementsByClassName("shaka-no-propagation");a=$jscomp.makeIterator(a);
|
|
2096
2097
|
for(var b=a.next();!b.done;b=a.next()){b=b.value;var c=function(d){return d.stopPropagation()};this.eventManager_.listen(b,"click",c);this.eventManager_.listen(b,"dblclick",c)}};shaka.ui.Controls.prototype.setEnabledShakaControls=function(a){(this.enabled_=a)?(this.videoContainer_.setAttribute("shaka-controls","true"),this.localVideo_.tabIndex=-1,this.localVideo_.controls=!1):this.videoContainer_.removeAttribute("shaka-controls");this.onPlayStateChange_()};
|
|
2097
2098
|
shaka.ui.Controls.prototype.setEnabledNativeControls=function(a){this.localVideo_.controls=a;this.localVideo_.tabIndex=a?0:-1;a&&this.setEnabledShakaControls(!1)};shaka.ui.Controls.prototype.getAd=function(){return this.ad_};shaka.ui.Controls.prototype.getCastProxy=function(){return this.castProxy_};shaka.ui.Controls.prototype.getLocalization=function(){return this.localization_};shaka.ui.Controls.prototype.getVideoContainer=function(){return this.videoContainer_};
|